diff --git a/config.yaml b/config.yaml index 8e937278e..da28c3bb5 100644 --- a/config.yaml +++ b/config.yaml @@ -2,7 +2,7 @@ # should be ignored. packages: - googleapis: - version: 12.0.0 + version: 13.0.0 repository: https://github.com/google/googleapis.dart/tree/master/generated/googleapis readme: resources/README.md license: resources/LICENSE @@ -40,6 +40,7 @@ packages: - apigeeregistry:v1 - apikeys:v2 - appengine:v1 # https://cloud.google.com/appengine/docs/admin-api/ + - apphub:v1 - artifactregistry:v1 - assuredworkloads:v1 - authorizedbuyersmarketplace:v1 @@ -49,6 +50,7 @@ packages: - beyondcorp:v1 - biglake:v1 - bigquery:v2 # https://developers.google.com/bigquery/ + - bigqueryconnection:v1 - bigquerydatapolicy:v1 - bigquerydatatransfer:v1 # https://cloud.google.com/bigquery/transfer/ - bigqueryreservation:v1 @@ -113,7 +115,6 @@ packages: - dialogflow:v3 # https://cloud.google.com/dialogflow-enterprise/ - digitalassetlinks:v1 # https://developers.google.com/digital-asset-links/ - discovery:v1 # https://developers.google.com/discovery/ - - displayvideo:v1 - displayvideo:v2 - displayvideo:v3 - dlp:v2 # https://cloud.google.com/dlp/ @@ -271,12 +272,14 @@ packages: - vmmigration:v1 - vmwareengine:v1 - vpcaccess:v1 + - walletobjects:v1 - webfonts:v1 # https://developers.google.com/fonts/docs/developer_api - webrisk:v1 - websecurityscanner:v1 - workflowexecutions:v1 - workflows:v1 - workloadmanager:v1 + - workspaceevents:v1 - workstations:v1 - youtube:v3 # https://developers.google.com/youtube/ - youtubeAnalytics:v2 # https://developers.google.com/youtube/analytics/ @@ -323,7 +326,6 @@ additional_apis: # APIs that we do not wish to include in this package skipped_apis: -- accesscontextmanager:v1beta - admob:v1beta #v1 included - aiplatform:v1beta1 - alloydb:v1alpha @@ -333,6 +335,7 @@ skipped_apis: - apigateway:v1beta # v1 included - appengine:v1alpha # v1 included - appengine:v1beta +- apphub:v1alpha - artifactregistry:v1beta1 #v1 included - artifactregistry:v1beta2 #v1 included - assuredworkloads:v1beta1 @@ -367,6 +370,7 @@ skipped_apis: - dataform:v1beta1 - datafusion:v1beta1 # v1 included - datamigration:v1beta1 +- dataportability:v1beta - datastore:v1beta1 # v1 included - datastore:v1beta3 # v1 included - deploymentmanager:alpha # v2beta # v1 included @@ -383,6 +387,7 @@ skipped_apis: - drivelabels:v2beta - eventarc:v1beta1 # v1 included - file:v1beta1 +- firebaseappdistribution:v1alpha - firebasehosting:v1beta1 # v1 included - firebaseml:v1beta2 - firestore:v1beta1 # v1 included @@ -423,7 +428,6 @@ skipped_apis: - policysimulator:v1alpha - policysimulator:v1beta - policytroubleshooter:v1beta # v1 included -- poly:v1 # https://support.google.com/poly/answer/10192635 poly.google.com is shut down! - privateca:v1beta1 - publicca:v1alpha1 - publicca:v1beta1 diff --git a/discovery/googleapis/abusiveexperiencereport__v1.json b/discovery/googleapis/abusiveexperiencereport__v1.json index 25e7c78da..7ca332e63 100644 --- a/discovery/googleapis/abusiveexperiencereport__v1.json +++ b/discovery/googleapis/abusiveexperiencereport__v1.json @@ -16,7 +16,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231106", + "revision": "20240207", "rootUrl": "https://abusiveexperiencereport.googleapis.com/", "servicePath": "", "title": "Abusive Experience Report API", diff --git a/discovery/googleapis/acceleratedmobilepageurl__v1.json b/discovery/googleapis/acceleratedmobilepageurl__v1.json index bd9fb2af4..6ca0bc006 100644 --- a/discovery/googleapis/acceleratedmobilepageurl__v1.json +++ b/discovery/googleapis/acceleratedmobilepageurl__v1.json @@ -16,7 +16,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240226", "rootUrl": "https://acceleratedmobilepageurl.googleapis.com/", "servicePath": "", "title": "Accelerated Mobile Pages (AMP) URL API", diff --git a/discovery/googleapis/accessapproval__v1.json b/discovery/googleapis/accessapproval__v1.json index 9de608734..86fd46009 100644 --- a/discovery/googleapis/accessapproval__v1.json +++ b/discovery/googleapis/accessapproval__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231110", + "revision": "20240223", "rootUrl": "https://accessapproval.googleapis.com/", "servicePath": "", "title": "Access Approval API", @@ -1020,7 +1020,8 @@ "GOOGLE_INITIATED_SERVICE", "GOOGLE_INITIATED_REVIEW", "THIRD_PARTY_DATA_REQUEST", - "GOOGLE_RESPONSE_TO_PRODUCTION_ALERT" + "GOOGLE_RESPONSE_TO_PRODUCTION_ALERT", + "CLOUD_INITIATED_ACCESS" ], "enumDescriptions": [ "Default value for proto, shouldn't be used.", @@ -1028,7 +1029,8 @@ "The principal accessed customer data in order to diagnose or resolve a suspected issue in services. Often this access is used to confirm that customers are not affected by a suspected service issue or to remediate a reversible system issue.", "Google initiated service for security, fraud, abuse, or compliance purposes.", "The principal was compelled to access customer data in order to respond to a legal third party data request or process, including legal processes from customers themselves.", - "The principal accessed customer data in order to diagnose or resolve a suspected issue in services or a known outage." + "The principal accessed customer data in order to diagnose or resolve a suspected issue in services or a known outage.", + "Similar to 'GOOGLE_INITIATED_SERVICE' or 'GOOGLE_INITIATED_REVIEW', but with universe agnostic naming. The principal accessed customer data in order to diagnose or resolve a suspected issue in services or a known outage, or for security, fraud, abuse, or compliance review purposes." ], "type": "string" } @@ -1304,7 +1306,7 @@ "type": "string" }, "serializedApprovalRequest": { - "description": "The serialized ApprovalRequest message without the approve.signature_info field. This to allow the customer to verify signatures if they want to.", + "description": "The ApprovalRequest that is serialized without the SignatureInfo message field. This data is used with the hashing algorithm to generate the digital signature, and it can be used for signature verification.", "format": "byte", "type": "string" }, diff --git a/discovery/googleapis/accesscontextmanager__v1.json b/discovery/googleapis/accesscontextmanager__v1.json index dd9a2db15..b0d361a4e 100644 --- a/discovery/googleapis/accesscontextmanager__v1.json +++ b/discovery/googleapis/accesscontextmanager__v1.json @@ -12,7 +12,7 @@ "baseUrl": "https://accesscontextmanager.googleapis.com/", "batchPath": "batch", "canonicalName": "Access Context Manager", - "description": "An API for setting attribute based access control to requests to Google Cloud services.", + "description": "An API for setting attribute based access control to requests to Google Cloud services. *Warning:* Do not mix *v1alpha* and *v1* API usage in the same access policy. The v1alpha API supports new Access Context Manager features, which may have different attributes or behaviors that are not supported by v1. The practice of mixed API usage within a policy may result in the inability to update that policy, including any access levels or service perimeters belonging to it. It is not recommended to use both v1 and v1alpha for modifying policies with critical service perimeters. Modifications using v1alpha should be limited to policies with non-production/non-critical service perimeters.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/access-context-manager/docs/reference/rest/", "icons": { @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231113", + "revision": "20240221", "rootUrl": "https://accesscontextmanager.googleapis.com/", "servicePath": "", "title": "Access Context Manager API", @@ -1237,6 +1237,61 @@ } } } + }, + "services": { + "methods": { + "get": { + "description": "Returns a VPC-SC supported service based on the service name.", + "flatPath": "v1/services/{name}", + "httpMethod": "GET", + "id": "accesscontextmanager.services.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the service to get information about. The names must be in the same format as used in defining a service perimeter, for example, `storage.googleapis.com`.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "v1/services/{name}", + "response": { + "$ref": "SupportedService" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all VPC-SC supported services.", + "flatPath": "v1/services", + "httpMethod": "GET", + "id": "accesscontextmanager.services.list", + "parameterOrder": [], + "parameters": { + "pageSize": { + "description": "This flag specifies the maximum number of services to return per page. Default is 100.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Token to start on a later page. Default is the first page.", + "location": "query", + "type": "string" + } + }, + "path": "v1/services", + "response": { + "$ref": "ListSupportedServicesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } } }, "schemas": { @@ -1462,14 +1517,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -1636,7 +1691,7 @@ "id": "EgressFrom", "properties": { "identities": { - "description": "A list of identities that are allowed access through this [EgressPolicy]. Should be in the format of email address. The email address should represent individual user or service account only.", + "description": "A list of identities that are allowed access through this [EgressPolicy], in the format of `user:{email_id}` or `serviceAccount:{email_id}`.", "items": { "type": "string" }, @@ -1828,7 +1883,7 @@ "id": "IngressFrom", "properties": { "identities": { - "description": "A list of identities that are allowed access through this ingress policy. Should be in the format of email address. The email address should represent individual user or service account only.", + "description": "A list of identities that are allowed access through this ingress policy, in the format of `user:{email_id}` or `serviceAccount:{email_id}`.", "items": { "type": "string" }, @@ -2019,16 +2074,34 @@ }, "type": "object" }, + "ListSupportedServicesResponse": { + "description": "A response to `ListSupportedServicesRequest`.", + "id": "ListSupportedServicesResponse", + "properties": { + "nextPageToken": { + "description": "The pagination token to retrieve the next page of results. If the value is empty, no further results remain.", + "type": "string" + }, + "supportedServices": { + "description": "List of services supported by VPC Service Controls instances.", + "items": { + "$ref": "SupportedService" + }, + "type": "array" + } + }, + "type": "object" + }, "MethodSelector": { "description": "An allowed method or permission of a service specified in ApiOperation.", "id": "MethodSelector", "properties": { "method": { - "description": "Value for `method` should be a valid method name for the corresponding `service_name` in ApiOperation. If `*` used as value for `method`, then ALL methods and permissions are allowed.", + "description": "A valid method name for the corresponding `service_name` in ApiOperation. If `*` is used as the value for the `method`, then ALL methods and permissions are allowed.", "type": "string" }, "permission": { - "description": "Value for `permission` should be a valid Cloud IAM permission for the corresponding `service_name` in ApiOperation.", + "description": "A valid Cloud IAM permission for the corresponding `service_name` in ApiOperation.", "type": "string" } }, @@ -2333,6 +2406,60 @@ }, "type": "object" }, + "SupportedService": { + "description": "`SupportedService` specifies the VPC Service Controls and its properties.", + "id": "SupportedService", + "properties": { + "availableOnRestrictedVip": { + "description": "True if the service is available on the restricted VIP. Services on the restricted VIP typically either support VPC Service Controls or are core infrastructure services required for the functioning of Google Cloud.", + "type": "boolean" + }, + "knownLimitations": { + "description": "True if the service is supported with some limitations. Check [documentation](https://cloud.google.com/vpc-service-controls/docs/supported-products) for details.", + "type": "boolean" + }, + "name": { + "description": "The service name or address of the supported service, such as `service.googleapis.com`.", + "type": "string" + }, + "supportStage": { + "description": "The support stage of the service.", + "enum": [ + "LAUNCH_STAGE_UNSPECIFIED", + "UNIMPLEMENTED", + "PRELAUNCH", + "EARLY_ACCESS", + "ALPHA", + "BETA", + "GA", + "DEPRECATED" + ], + "enumDescriptions": [ + "Do not use this default value.", + "The feature is not yet implemented. Users can not use it.", + "Prelaunch features are hidden from users and are only visible internally.", + "Early Access features are limited to a closed group of testers. To use these features, you must sign up in advance and sign a Trusted Tester agreement (which includes confidentiality provisions). These features may be unstable, changed in backward-incompatible ways, and are not guaranteed to be released.", + "Alpha is a limited availability test for releases before they are cleared for widespread use. By Alpha, all significant design issues are resolved and we are in the process of verifying functionality. Alpha customers need to apply for access, agree to applicable terms, and have their projects allowlisted. Alpha releases don't have to be feature complete, no SLAs are provided, and there are no technical support obligations, but they will be far enough along that customers can actually use them in test environments or for limited-use tests -- just like they would in normal production cases.", + "Beta is the point at which we are ready to open a release for any customer to use. There are no SLA or technical support obligations in a Beta release. Products will be complete from a feature perspective, but may have some open outstanding issues. Beta releases are suitable for limited production use cases.", + "GA features are open to all developers and are considered stable and fully qualified for production use.", + "Deprecated features are scheduled to be shut down and removed. For more information, see the \"Deprecation Policy\" section of our [Terms of Service](https://cloud.google.com/terms/) and the [Google Cloud Platform Subject to the Deprecation Policy](https://cloud.google.com/terms/deprecation) documentation." + ], + "type": "string" + }, + "supportedMethods": { + "description": "The list of the supported methods. This field exists only in response to GetSupportedService", + "items": { + "$ref": "MethodSelector" + }, + "type": "array" + }, + "title": { + "description": "The name of the supported product, such as 'Cloud Product API'.", + "type": "string" + } + }, + "type": "object" + }, "TestIamPermissionsRequest": { "description": "Request message for `TestIamPermissions` method.", "id": "TestIamPermissionsRequest", diff --git a/discovery/googleapis/acmedns__v1.json b/discovery/googleapis/acmedns__v1.json index 6ac149920..9ed8a26c8 100644 --- a/discovery/googleapis/acmedns__v1.json +++ b/discovery/googleapis/acmedns__v1.json @@ -16,7 +16,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240226", "rootUrl": "https://acmedns.googleapis.com/", "servicePath": "", "title": "ACME DNS API", diff --git a/discovery/googleapis/adexperiencereport__v1.json b/discovery/googleapis/adexperiencereport__v1.json index bbb8ebf41..f553d2959 100644 --- a/discovery/googleapis/adexperiencereport__v1.json +++ b/discovery/googleapis/adexperiencereport__v1.json @@ -16,7 +16,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231106", + "revision": "20240207", "rootUrl": "https://adexperiencereport.googleapis.com/", "servicePath": "", "title": "Ad Experience Report API", diff --git a/discovery/googleapis/admin__datatransfer_v1.json b/discovery/googleapis/admin__datatransfer_v1.json index 6844f0053..93d6f0e4c 100644 --- a/discovery/googleapis/admin__datatransfer_v1.json +++ b/discovery/googleapis/admin__datatransfer_v1.json @@ -29,7 +29,7 @@ "ownerName": "Google", "packagePath": "admin", "protocol": "rest", - "revision": "20231127", + "revision": "20240220", "rootUrl": "https://admin.googleapis.com/", "servicePath": "", "title": "Admin SDK API", diff --git a/discovery/googleapis/admin__directory_v1.json b/discovery/googleapis/admin__directory_v1.json index 7dd76e531..b8ac977f9 100644 --- a/discovery/googleapis/admin__directory_v1.json +++ b/discovery/googleapis/admin__directory_v1.json @@ -110,7 +110,7 @@ "ownerName": "Google", "packagePath": "admin", "protocol": "rest", - "revision": "20231127", + "revision": "20240220", "rootUrl": "https://admin.googleapis.com/", "servicePath": "", "title": "Admin SDK API", @@ -308,7 +308,8 @@ "chromeosdevices": { "methods": { "action": { - "description": "Takes an action that affects a Chrome OS Device. This includes deprovisioning, disabling, and re-enabling devices. *Warning:* * Deprovisioning a device will stop device policy syncing and remove device-level printers. After a device is deprovisioned, it must be wiped before it can be re-enrolled. * Lost or stolen devices should use the disable action. * Re-enabling a disabled device will consume a device license. If you do not have sufficient licenses available when completing the re-enable action, you will receive an error. For more information about deprovisioning and disabling devices, visit the [help center](https://support.google.com/chrome/a/answer/3523633).", + "deprecated": true, + "description": "Use [BatchChangeChromeOsDeviceStatus](/admin-sdk/directory/reference/rest/v1/customer.devices.chromeos/batchChangeStatus) instead. Takes an action that affects a Chrome OS Device. This includes deprovisioning, disabling, and re-enabling devices. *Warning:* * Deprovisioning a device will stop device policy syncing and remove device-level printers. After a device is deprovisioned, it must be wiped before it can be re-enrolled. * Lost or stolen devices should use the disable action. * Re-enabling a disabled device will consume a device license. If you do not have sufficient licenses available when completing the re-enable action, you will receive an error. For more information about deprovisioning and disabling devices, visit the [help center](https://support.google.com/chrome/a/answer/3523633).", "flatPath": "admin/directory/v1/customer/{customerId}/devices/chromeos/{resourceId}/action", "httpMethod": "POST", "id": "directory.chromeosdevices.action", @@ -616,6 +617,33 @@ "resources": { "chromeos": { "methods": { + "batchChangeStatus": { + "description": "Changes the status of a batch of ChromeOS devices. For more information about changing a ChromeOS device state [Repair, repurpose, or retire ChromeOS devices](https://support.google.com/chrome/a/answer/3523633).", + "flatPath": "admin/directory/v1/customer/{customerId}/devices/chromeos:batchChangeStatus", + "httpMethod": "POST", + "id": "admin.customer.devices.chromeos.batchChangeStatus", + "parameterOrder": [ + "customerId" + ], + "parameters": { + "customerId": { + "description": "Required. Immutable ID of the Google Workspace account.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "admin/directory/v1/customer/{customerId}/devices/chromeos:batchChangeStatus", + "request": { + "$ref": "BatchChangeChromeOsDeviceStatusRequest" + }, + "response": { + "$ref": "BatchChangeChromeOsDeviceStatusResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/admin.directory.device.chromeos" + ] + }, "issueCommand": { "description": "Issues a command for the device to execute.", "flatPath": "admin/directory/v1/customer/{customerId}/devices/chromeos/{deviceId}:issueCommand", @@ -4783,6 +4811,93 @@ }, "type": "object" }, + "BatchChangeChromeOsDeviceStatusRequest": { + "description": "A request for changing the status of a batch of ChromeOS devices.", + "id": "BatchChangeChromeOsDeviceStatusRequest", + "properties": { + "changeChromeOsDeviceStatusAction": { + "description": "Required. The action to take on the ChromeOS device in order to change its status.", + "enum": [ + "CHANGE_CHROME_OS_DEVICE_STATUS_ACTION_UNSPECIFIED", + "CHANGE_CHROME_OS_DEVICE_STATUS_ACTION_DEPROVISION", + "CHANGE_CHROME_OS_DEVICE_STATUS_ACTION_DISABLE", + "CHANGE_CHROME_OS_DEVICE_STATUS_ACTION_REENABLE" + ], + "enumDescriptions": [ + "Default value. Value is unused.", + "Deprovisions a ChromeOS device. If you have ChromeOS devices that are no longer being used in your organization, you should deprovision them so that you’re no longer managing them. Deprovisioning the device removes all policies that were on the device as well as device-level printers and the ability to use the device as a kiosk. Depending on the upgrade that’s associated with the device this action might release the license back into the license pool; which allows you to use the license on a different device.", + "Disables a ChromeOS device. Use this action if a user loses their device or it’s stolen, this makes it such that the device is still managed, so it will still receive policies, but no one can use it. Depending on the upgrade that’s associated with the device this action might release the license back into the license pool; which allows you to use the license on a different device.", + "Reenables a ChromeOS device to be used after being disabled. Reenables the device once it's no longer lost or it's been recovered. This allows the device to be used again. Depending on the upgrade associated with the device this might consume one license from the license pool, meaning that if there aren't enough licenses available the operation will fail." + ], + "type": "string" + }, + "deprovisionReason": { + "description": "Optional. The reason behind a device deprovision. Must be provided if 'changeChromeOsDeviceStatusAction' is set to 'CHANGE_CHROME_OS_DEVICE_STATUS_ACTION_DEPROVISION'. Otherwise, omit this field.", + "enum": [ + "DEPROVISION_REASON_UNSPECIFIED", + "DEPROVISION_REASON_SAME_MODEL_REPLACEMENT", + "DEPROVISION_REASON_UPGRADE", + "DEPROVISION_REASON_DOMAIN_MOVE", + "DEPROVISION_REASON_SERVICE_EXPIRATION", + "DEPROVISION_REASON_OTHER", + "DEPROVISION_REASON_DIFFERENT_MODEL_REPLACEMENT", + "DEPROVISION_REASON_RETIRING_DEVICE", + "DEPROVISION_REASON_UPGRADE_TRANSFER", + "DEPROVISION_REASON_NOT_REQUIRED", + "DEPROVISION_REASON_REPAIR_CENTER" + ], + "enumDeprecated": [ + false, + false, + true, + true, + true, + true, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "The deprovision reason is unknown.", + "Same model replacement. You have return materials authorization (RMA) or you are replacing a malfunctioning device under warranty with the same device model.", + "The device was upgraded.", + "The device's domain was changed.", + "Service expired for the device.", + "The device was deprovisioned for a legacy reason that is no longer supported.", + "Different model replacement. You are replacing this device with an upgraded or newer device model.", + "Retiring from fleet. You are donating, discarding, or otherwise removing the device from use.", + "ChromeOS Flex upgrade transfer. This is a ChromeOS Flex device that you are replacing with a Chromebook within a year.", + "A reason was not required. For example, the licenses were returned to the customer's license pool.", + "The device was deprovisioned by the Repair Service Center. Can only be set by Repair Service Center during RMA." + ], + "type": "string" + }, + "deviceIds": { + "description": "Required. List of the IDs of the ChromeOS devices to change. Maximum 50.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "BatchChangeChromeOsDeviceStatusResponse": { + "description": "The response of changing the status of a batch of ChromeOS devices.", + "id": "BatchChangeChromeOsDeviceStatusResponse", + "properties": { + "changeChromeOsDeviceStatusResults": { + "description": "The results for each of the ChromeOS devices provided in the request.", + "items": { + "$ref": "ChangeChromeOsDeviceStatusResult" + }, + "type": "array" + } + }, + "type": "object" + }, "BatchCreatePrintServersRequest": { "description": "Request to add multiple new print servers in a batch.", "id": "BatchCreatePrintServersRequest", @@ -5152,6 +5267,31 @@ }, "type": "object" }, + "ChangeChromeOsDeviceStatusResult": { + "description": "The result of a single ChromeOS device for a Change state operation.", + "id": "ChangeChromeOsDeviceStatusResult", + "properties": { + "deviceId": { + "description": "The unique ID of the ChromeOS device.", + "type": "string" + }, + "error": { + "$ref": "Status", + "description": "The error result of the operation in case of failure." + }, + "response": { + "$ref": "ChangeChromeOsDeviceStatusSucceeded", + "description": "The device could change its status successfully." + } + }, + "type": "object" + }, + "ChangeChromeOsDeviceStatusSucceeded": { + "description": "Response for a successful ChromeOS device status change.", + "id": "ChangeChromeOsDeviceStatusSucceeded", + "properties": {}, + "type": "object" + }, "Channel": { "description": "An notification channel used to watch for resource changes.", "id": "Channel", @@ -6026,7 +6166,7 @@ "type": "string" }, "payload": { - "description": "The payload for the command, provide it only if command supports it. The following commands support adding payload: * `SET_VOLUME`: Payload is a stringified JSON object in the form: { \"volume\": 50 }. The volume has to be an integer in the range [0,100]. * `DEVICE_START_CRD_SESSION`: Payload is optionally a stringified JSON object in the form: { \"ackedUserPresence\": true }. `ackedUserPresence` is a boolean. By default, `ackedUserPresence` is set to `false`. To start a Chrome Remote Desktop session for an active device, set `ackedUserPresence` to `true`.", + "description": "The payload for the command, provide it only if command supports it. The following commands support adding payload: * `SET_VOLUME`: Payload is a stringified JSON object in the form: { \"volume\": 50 }. The volume has to be an integer in the range [0,100]. * `DEVICE_START_CRD_SESSION`: Payload is optionally a stringified JSON object in the form: { \"ackedUserPresence\": true }. `ackedUserPresence` is a boolean. By default, `ackedUserPresence` is set to `false`. To start a Chrome Remote Desktop session for an active device, set `ackedUserPresence` to `true`. * `REBOOT`: Payload is a stringified JSON object in the form: { \"user_session_delay_seconds\": 300 }. The delay has to be in the range [0, 300].", "type": "string" } }, @@ -7471,6 +7611,33 @@ }, "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", + "properties": { + "code": { + "description": "The status code, which should be an enum value of google.rpc.Code.", + "format": "int32", + "type": "integer" + }, + "details": { + "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", + "items": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "type": "object" + }, + "type": "array" + }, + "message": { + "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", + "type": "string" + } + }, + "type": "object" + }, "Token": { "description": "JSON template for token resource in Directory API.", "id": "Token", diff --git a/discovery/googleapis/admin__reports_v1.json b/discovery/googleapis/admin__reports_v1.json index fac0dc004..46f6f4856 100644 --- a/discovery/googleapis/admin__reports_v1.json +++ b/discovery/googleapis/admin__reports_v1.json @@ -29,7 +29,7 @@ "ownerName": "Google", "packagePath": "admin", "protocol": "rest", - "revision": "20231127", + "revision": "20240220", "rootUrl": "https://admin.googleapis.com/", "servicePath": "", "title": "Admin SDK API", @@ -152,7 +152,8 @@ "context_aware_access", "chrome", "data_studio", - "keep" + "keep", + "vault" ], "enumDescriptions": [ "The Google Workspace Access Transparency activity reports return information about different types of Access Transparency activity events.", @@ -175,10 +176,11 @@ "The Context-aware access activity reports return information about users' access denied events due to Context-aware access rules.", "The Chrome activity reports return information about Chrome browser and Chrome OS events.", "The Data Studio activity reports return information about various types of Data Studio activity events.", - "The Keep application's activity reports return information about various Google Keep activity events. The Keep activity report is only available for Google Workspace Business and Enterprise customers." + "The Keep application's activity reports return information about various Google Keep activity events. The Keep activity report is only available for Google Workspace Business and Enterprise customers.", + "The Vault activity reports return information about various types of Vault activity events." ], "location": "path", - "pattern": "(access_transparency)|(admin)|(calendar)|(chat)|(chrome)|(context_aware_access)|(data_studio)|(drive)|(gcp)|(gplus)|(groups)|(groups_enterprise)|(jamboard)|(keep)|(login)|(meet)|(mobile)|(rules)|(saml)|(token)|(user_accounts)", + "pattern": "(access_transparency)|(admin)|(calendar)|(chat)|(chrome)|(context_aware_access)|(data_studio)|(drive)|(gcp)|(gplus)|(groups)|(groups_enterprise)|(jamboard)|(keep)|(login)|(meet)|(mobile)|(rules)|(saml)|(token)|(user_accounts)|(vault)", "required": true, "type": "string" }, @@ -361,7 +363,8 @@ }, "orgUnitID": { "default": "", - "description": "ID of the organizational unit to report on. Activity records will be shown only for users who belong to the specified organizational unit. Data before Dec 17, 2018 doesn't appear in the filtered results.", + "deprecated": true, + "description": "`Deprecated`. This field is deprecated and is no longer supported. ID of the organizational unit to report on. Activity records will be shown only for users who belong to the specified organizational unit. Data before Dec 17, 2018 doesn't appear in the filtered results.", "location": "query", "pattern": "(id:[a-z0-9]+)", "type": "string" @@ -689,7 +692,7 @@ "items": { "properties": { "name": { - "description": "Name of the event. This is the specific name of the activity reported by the API. And each `eventName` is related to a specific Google Workspace service or feature which the API organizes into types of events. For `eventName` request parameters in general: - If no `eventName` is given, the report returns all possible instances of an `eventName`. - When you request an `eventName`, the API's response returns all activities which contain that `eventName`. It is possible that the returned activities will have other `eventName` properties in addition to the one requested. For more information about `eventName` properties, see the list of event names for various applications above in `applicationName`.", + "description": "Name of the event. This is the specific name of the activity reported by the API. And each `eventName` is related to a specific Google Workspace service or feature which the API organizes into types of events. For `eventName` request parameters in general: - If no `eventName` is given, the report returns all possible instances of an `eventName`. - When you request an `eventName`, the API's response returns all activities which contain that `eventName`. For more information about `eventName` properties, see the list of event names for various applications above in `applicationName`.", "type": "string" }, "parameters": { diff --git a/discovery/googleapis/admob__v1.json b/discovery/googleapis/admob__v1.json index 27a3edfcf..fdc02cdd7 100644 --- a/discovery/googleapis/admob__v1.json +++ b/discovery/googleapis/admob__v1.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231128", + "revision": "20240223", "rootUrl": "https://admob.googleapis.com/", "servicePath": "", "title": "AdMob API", diff --git a/discovery/googleapis/adsense__v2.json b/discovery/googleapis/adsense__v2.json index ca223e130..560e2cd15 100644 --- a/discovery/googleapis/adsense__v2.json +++ b/discovery/googleapis/adsense__v2.json @@ -27,7 +27,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231128", + "revision": "20240228", "rootUrl": "https://adsense.googleapis.com/", "servicePath": "", "title": "AdSense Management API", diff --git a/discovery/googleapis/advisorynotifications__v1.json b/discovery/googleapis/advisorynotifications__v1.json index 2a7ecdd51..ceace66c6 100644 --- a/discovery/googleapis/advisorynotifications__v1.json +++ b/discovery/googleapis/advisorynotifications__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231126", + "revision": "20240225", "rootUrl": "https://advisorynotifications.googleapis.com/", "servicePath": "", "title": "Advisory Notifications API", @@ -148,7 +148,7 @@ ], "parameters": { "name": { - "description": "Output only. The resource name of the settings to retrieve. Format: organizations/{organization}/locations/{location}/settings.", + "description": "Identifier. The resource name of the settings to retrieve. Format: organizations/{organization}/locations/{location}/settings.", "location": "path", "pattern": "^organizations/[^/]+/locations/[^/]+/settings$", "required": true, @@ -185,7 +185,7 @@ "type": "string" }, "name": { - "description": "Required. A name of the notification to retrieve. Format: organizations/{organization}/locations/{location}/notifications/{notification}.", + "description": "Required. A name of the notification to retrieve. Format: organizations/{organization}/locations/{location}/notifications/{notification} or projects/{projects}/locations/{location}/notifications/{notification}.", "location": "path", "pattern": "^organizations/[^/]+/locations/[^/]+/notifications/[^/]+$", "required": true, @@ -226,7 +226,7 @@ "type": "string" }, "parent": { - "description": "Required. The parent, which owns this collection of notifications. Must be of the form \"organizations/{organization}/locations/{location}\"", + "description": "Required. The parent, which owns this collection of notifications. Must be of the form \"organizations/{organization}/locations/{location}\" or \"projects/{project}/locations/{location}\"", "location": "path", "pattern": "^organizations/[^/]+/locations/[^/]+$", "required": true, @@ -261,6 +261,104 @@ } } } + }, + "projects": { + "resources": { + "locations": { + "resources": { + "notifications": { + "methods": { + "get": { + "description": "Gets a notification.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/notifications/{notificationsId}", + "httpMethod": "GET", + "id": "advisorynotifications.projects.locations.notifications.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "languageCode": { + "description": "ISO code for requested localization language. If unset, will be interpereted as \"en\". If the requested language is valid, but not supported for this notification, English will be returned with an \"Not applicable\" LocalizationState. If the ISO code is invalid (i.e. not a real language), this RPC will throw an error.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. A name of the notification to retrieve. Format: organizations/{organization}/locations/{location}/notifications/{notification} or projects/{projects}/locations/{location}/notifications/{notification}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/notifications/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudAdvisorynotificationsV1Notification" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists notifications under a given parent.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/notifications", + "httpMethod": "GET", + "id": "advisorynotifications.projects.locations.notifications.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "languageCode": { + "description": "ISO code for requested localization language. If unset, will be interpereted as \"en\". If the requested language is valid, but not supported for this notification, English will be returned with an \"Not applicable\" LocalizationState. If the ISO code is invalid (i.e. not a real language), this RPC will throw an error.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of notifications to return. The service may return fewer than this value. If unspecified or equal to 0, at most 50 notifications will be returned. The maximum value is 50; values above 50 will be coerced to 50.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token returned from a previous request. When paginating, all other parameters provided in the request must match the call that returned the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent, which owns this collection of notifications. Must be of the form \"organizations/{organization}/locations/{location}\" or \"projects/{project}/locations/{location}\"", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "view": { + "description": "Specifies which parts of the notification resource should be returned in the response.", + "enum": [ + "NOTIFICATION_VIEW_UNSPECIFIED", + "BASIC", + "FULL" + ], + "enumDescriptions": [ + "Not specified, equivalent to BASIC.", + "Server responses only include title, creation time and Notification ID. Note: for internal use responses also include the last update time, the latest message text and whether notification has attachments.", + "Include everything." + ], + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/notifications", + "response": { + "$ref": "GoogleCloudAdvisorynotificationsV1ListNotificationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + } + } } }, "schemas": { @@ -394,7 +492,7 @@ "type": "array" }, "name": { - "description": "The resource name of the notification. Format: organizations/{organization}/locations/{location}/notifications/{notification}.", + "description": "The resource name of the notification. Format: organizations/{organization}/locations/{location}/notifications/{notification} or projects/{project}/locations/{location}/notifications/{notification}.", "type": "string" }, "notificationType": { @@ -442,8 +540,7 @@ "type": "string" }, "name": { - "description": "Output only. The resource name of the settings to retrieve. Format: organizations/{organization}/locations/{location}/settings.", - "readOnly": true, + "description": "Identifier. The resource name of the settings to retrieve. Format: organizations/{organization}/locations/{location}/settings.", "type": "string" }, "notificationSettings": { diff --git a/discovery/googleapis/aiplatform__v1.json b/discovery/googleapis/aiplatform__v1.json index d5bcf3b28..a3053d10f 100644 --- a/discovery/googleapis/aiplatform__v1.json +++ b/discovery/googleapis/aiplatform__v1.json @@ -200,7 +200,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231121", + "revision": "20240224", "rootUrl": "https://aiplatform.googleapis.com/", "servicePath": "", "title": "Vertex AI API", @@ -3074,6 +3074,62 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "directPredict": { + "description": "Perform an unary online prediction request to a gRPC model server for Vertex first-party products and frameworks.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/endpoints/{endpointsId}:directPredict", + "httpMethod": "POST", + "id": "aiplatform.projects.locations.endpoints.directPredict", + "parameterOrder": [ + "endpoint" + ], + "parameters": { + "endpoint": { + "description": "Required. The name of the Endpoint requested to serve the prediction. Format: `projects/{project}/locations/{location}/endpoints/{endpoint}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/endpoints/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+endpoint}:directPredict", + "request": { + "$ref": "GoogleCloudAiplatformV1DirectPredictRequest" + }, + "response": { + "$ref": "GoogleCloudAiplatformV1DirectPredictResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "directRawPredict": { + "description": "Perform an unary online prediction request to a gRPC model server for custom containers.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/endpoints/{endpointsId}:directRawPredict", + "httpMethod": "POST", + "id": "aiplatform.projects.locations.endpoints.directRawPredict", + "parameterOrder": [ + "endpoint" + ], + "parameters": { + "endpoint": { + "description": "Required. The name of the Endpoint requested to serve the prediction. Format: `projects/{project}/locations/{location}/endpoints/{endpoint}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/endpoints/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+endpoint}:directRawPredict", + "request": { + "$ref": "GoogleCloudAiplatformV1DirectRawPredictRequest" + }, + "response": { + "$ref": "GoogleCloudAiplatformV1DirectRawPredictResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "explain": { "description": "Perform an online explanation. If deployed_model_id is specified, the corresponding DeployModel must have explanation_spec populated. If deployed_model_id is not specified, all DeployedModels must have explanation_spec populated.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/endpoints/{endpointsId}:explain", @@ -3102,6 +3158,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "generateContent": { + "description": "Generate content with multimodal inputs.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/endpoints/{endpointsId}:generateContent", + "httpMethod": "POST", + "id": "aiplatform.projects.locations.endpoints.generateContent", + "parameterOrder": [ + "model" + ], + "parameters": { + "model": { + "description": "Required. The name of the publisher model requested to serve the prediction. Format: `projects/{project}/locations/{location}/publishers/*/models/*`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/endpoints/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+model}:generateContent", + "request": { + "$ref": "GoogleCloudAiplatformV1GenerateContentRequest" + }, + "response": { + "$ref": "GoogleCloudAiplatformV1GenerateContentResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Gets an Endpoint.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/endpoints/{endpointsId}", @@ -3325,6 +3409,62 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "streamGenerateContent": { + "description": "Generate content with multimodal inputs with streaming support.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/endpoints/{endpointsId}:streamGenerateContent", + "httpMethod": "POST", + "id": "aiplatform.projects.locations.endpoints.streamGenerateContent", + "parameterOrder": [ + "model" + ], + "parameters": { + "model": { + "description": "Required. The name of the publisher model requested to serve the prediction. Format: `projects/{project}/locations/{location}/publishers/*/models/*`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/endpoints/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+model}:streamGenerateContent", + "request": { + "$ref": "GoogleCloudAiplatformV1GenerateContentRequest" + }, + "response": { + "$ref": "GoogleCloudAiplatformV1GenerateContentResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "streamRawPredict": { + "description": "Perform a streaming online prediction with an arbitrary HTTP payload.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/endpoints/{endpointsId}:streamRawPredict", + "httpMethod": "POST", + "id": "aiplatform.projects.locations.endpoints.streamRawPredict", + "parameterOrder": [ + "endpoint" + ], + "parameters": { + "endpoint": { + "description": "Required. The name of the Endpoint requested to serve the prediction. Format: `projects/{project}/locations/{location}/endpoints/{endpoint}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/endpoints/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+endpoint}:streamRawPredict", + "request": { + "$ref": "GoogleCloudAiplatformV1StreamRawPredictRequest" + }, + "response": { + "$ref": "GoogleApiHttpBody" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "undeployModel": { "description": "Undeploys a Model from an Endpoint, removing a DeployedModel from it, and freeing all resources it's using.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/endpoints/{endpointsId}:undeployModel", @@ -3654,7 +3794,7 @@ ], "parameters": { "name": { - "description": "Output only. Name of the FeatureGroup. Format: `projects/{project}/locations/{location}/featureGroups/{featureGroup}`", + "description": "Identifier. Name of the FeatureGroup. Format: `projects/{project}/locations/{location}/featureGroups/{featureGroup}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/featureGroups/[^/]+$", "required": true, @@ -3797,7 +3937,7 @@ "type": "integer" }, "pageToken": { - "description": "A page token, received from a previous FeaturestoreService.ListFeatures call or FeatureRegistryService.ListFeatures call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to FeaturestoreService.ListFeatures or or FeatureRegistryService.ListFeatures must match the call that provided the page token.", + "description": "A page token, received from a previous FeaturestoreService.ListFeatures call or FeatureRegistryService.ListFeatures call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to FeaturestoreService.ListFeatures or FeatureRegistryService.ListFeatures must match the call that provided the page token.", "location": "query", "type": "string" }, @@ -4132,7 +4272,7 @@ "type": "string" }, "parent": { - "description": "Required. The resource name of the Location to create FeatureOnlineStores. Format: `projects/{project}/locations/{location}'`", + "description": "Required. The resource name of the Location to create FeatureOnlineStores. Format: `projects/{project}/locations/{location}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -4261,14 +4401,14 @@ ], "parameters": { "name": { - "description": "Output only. Name of the FeatureOnlineStore. Format: `projects/{project}/locations/{location}/featureOnlineStores/{featureOnlineStore}`", + "description": "Identifier. Name of the FeatureOnlineStore. Format: `projects/{project}/locations/{location}/featureOnlineStores/{featureOnlineStore}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/featureOnlineStores/[^/]+$", "required": true, "type": "string" }, "updateMask": { - "description": "Field mask is used to specify the fields to be overwritten in the FeatureOnlineStore resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then only the non-empty fields present in the request will be overwritten. Set the update_mask to `*` to override all fields. Updatable fields: * `big_query_source` * `labels` * `sync_config`", + "description": "Field mask is used to specify the fields to be overwritten in the FeatureOnlineStore resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then only the non-empty fields present in the request will be overwritten. Set the update_mask to `*` to override all fields. Updatable fields: * `big_query_source` * `bigtable` * `labels` * `sync_config`", "format": "google-fieldmask", "location": "query", "type": "string" @@ -4461,14 +4601,14 @@ ], "parameters": { "name": { - "description": "Output only. Name of the FeatureView. Format: `projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}`", + "description": "Identifier. Name of the FeatureView. Format: `projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/featureOnlineStores/[^/]+/featureViews/[^/]+$", "required": true, "type": "string" }, "updateMask": { - "description": "Field mask is used to specify the fields to be overwritten in the FeatureView resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then only the non-empty fields present in the request will be overwritten. Set the update_mask to `*` to override all fields. Updatable fields: * `labels`", + "description": "Field mask is used to specify the fields to be overwritten in the FeatureView resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then only the non-empty fields present in the request will be overwritten. Set the update_mask to `*` to override all fields. Updatable fields: * `labels` * `serviceAgentType`", "format": "google-fieldmask", "location": "query", "type": "string" @@ -4485,6 +4625,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "searchNearestEntities": { + "description": "Search the nearest entities under a FeatureView. Search only works for indexable feature view; if a feature view isn't indexable, returns Invalid argument response.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/featureOnlineStores/{featureOnlineStoresId}/featureViews/{featureViewsId}:searchNearestEntities", + "httpMethod": "POST", + "id": "aiplatform.projects.locations.featureOnlineStores.featureViews.searchNearestEntities", + "parameterOrder": [ + "featureView" + ], + "parameters": { + "featureView": { + "description": "Required. FeatureView resource format `projects/{project}/locations/{location}/featureOnlineStores/{featureOnlineStore}/featureViews/{featureView}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/featureOnlineStores/[^/]+/featureViews/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+featureView}:searchNearestEntities", + "request": { + "$ref": "GoogleCloudAiplatformV1SearchNearestEntitiesRequest" + }, + "response": { + "$ref": "GoogleCloudAiplatformV1SearchNearestEntitiesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "sync": { "description": "Triggers on-demand sync for the FeatureView.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/featureOnlineStores/{featureOnlineStoresId}/featureViews/{featureViewsId}:sync", @@ -5764,7 +5932,7 @@ "type": "integer" }, "pageToken": { - "description": "A page token, received from a previous FeaturestoreService.ListFeatures call or FeatureRegistryService.ListFeatures call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to FeaturestoreService.ListFeatures or or FeatureRegistryService.ListFeatures must match the call that provided the page token.", + "description": "A page token, received from a previous FeaturestoreService.ListFeatures call or FeatureRegistryService.ListFeatures call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to FeaturestoreService.ListFeatures or FeatureRegistryService.ListFeatures must match the call that provided the page token.", "location": "query", "type": "string" }, @@ -7791,6 +7959,159 @@ "https://www.googleapis.com/auth/cloud-platform" ] } + }, + "resources": { + "operations": { + "methods": { + "cancel": { + "description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/metadataStores/{metadataStoresId}/artifacts/{artifactsId}/operations/{operationsId}:cancel", + "httpMethod": "POST", + "id": "aiplatform.projects.locations.metadataStores.artifacts.operations.cancel", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource to be cancelled.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/artifacts/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:cancel", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/metadataStores/{metadataStoresId}/artifacts/{artifactsId}/operations/{operationsId}", + "httpMethod": "DELETE", + "id": "aiplatform.projects.locations.metadataStores.artifacts.operations.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource to be deleted.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/artifacts/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/metadataStores/{metadataStoresId}/artifacts/{artifactsId}/operations/{operationsId}", + "httpMethod": "GET", + "id": "aiplatform.projects.locations.metadataStores.artifacts.operations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/artifacts/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/metadataStores/{metadataStoresId}/artifacts/{artifactsId}/operations", + "httpMethod": "GET", + "id": "aiplatform.projects.locations.metadataStores.artifacts.operations.list", + "parameterOrder": [ + "name" + ], + "parameters": { + "filter": { + "description": "The standard list filter.", + "location": "query", + "type": "string" + }, + "name": { + "description": "The name of the operation's parent resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/artifacts/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "The standard list page size.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The standard list page token.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}/operations", + "response": { + "$ref": "GoogleLongrunningListOperationsResponse" + }, + "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": "v1/projects/{projectsId}/locations/{locationsId}/metadataStores/{metadataStoresId}/artifacts/{artifactsId}/operations/{operationsId}:wait", + "httpMethod": "POST", + "id": "aiplatform.projects.locations.metadataStores.artifacts.operations.wait", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource to wait on.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/artifacts/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + }, + "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", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}:wait", + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } } }, "contexts": { @@ -8110,6 +8431,159 @@ "https://www.googleapis.com/auth/cloud-platform" ] } + }, + "resources": { + "operations": { + "methods": { + "cancel": { + "description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/metadataStores/{metadataStoresId}/contexts/{contextsId}/operations/{operationsId}:cancel", + "httpMethod": "POST", + "id": "aiplatform.projects.locations.metadataStores.contexts.operations.cancel", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource to be cancelled.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/contexts/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:cancel", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/metadataStores/{metadataStoresId}/contexts/{contextsId}/operations/{operationsId}", + "httpMethod": "DELETE", + "id": "aiplatform.projects.locations.metadataStores.contexts.operations.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource to be deleted.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/contexts/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/metadataStores/{metadataStoresId}/contexts/{contextsId}/operations/{operationsId}", + "httpMethod": "GET", + "id": "aiplatform.projects.locations.metadataStores.contexts.operations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/contexts/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/metadataStores/{metadataStoresId}/contexts/{contextsId}/operations", + "httpMethod": "GET", + "id": "aiplatform.projects.locations.metadataStores.contexts.operations.list", + "parameterOrder": [ + "name" + ], + "parameters": { + "filter": { + "description": "The standard list filter.", + "location": "query", + "type": "string" + }, + "name": { + "description": "The name of the operation's parent resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/contexts/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "The standard list page size.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The standard list page token.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}/operations", + "response": { + "$ref": "GoogleLongrunningListOperationsResponse" + }, + "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": "v1/projects/{projectsId}/locations/{locationsId}/metadataStores/{metadataStoresId}/contexts/{contextsId}/operations/{operationsId}:wait", + "httpMethod": "POST", + "id": "aiplatform.projects.locations.metadataStores.contexts.operations.wait", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource to wait on.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/contexts/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + }, + "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", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}:wait", + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } } }, "executions": { @@ -8368,6 +8842,159 @@ "https://www.googleapis.com/auth/cloud-platform" ] } + }, + "resources": { + "operations": { + "methods": { + "cancel": { + "description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/metadataStores/{metadataStoresId}/executions/{executionsId}/operations/{operationsId}:cancel", + "httpMethod": "POST", + "id": "aiplatform.projects.locations.metadataStores.executions.operations.cancel", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource to be cancelled.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/executions/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:cancel", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/metadataStores/{metadataStoresId}/executions/{executionsId}/operations/{operationsId}", + "httpMethod": "DELETE", + "id": "aiplatform.projects.locations.metadataStores.executions.operations.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource to be deleted.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/executions/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/metadataStores/{metadataStoresId}/executions/{executionsId}/operations/{operationsId}", + "httpMethod": "GET", + "id": "aiplatform.projects.locations.metadataStores.executions.operations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/executions/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/metadataStores/{metadataStoresId}/executions/{executionsId}/operations", + "httpMethod": "GET", + "id": "aiplatform.projects.locations.metadataStores.executions.operations.list", + "parameterOrder": [ + "name" + ], + "parameters": { + "filter": { + "description": "The standard list filter.", + "location": "query", + "type": "string" + }, + "name": { + "description": "The name of the operation's parent resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/executions/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "The standard list page size.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The standard list page token.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}/operations", + "response": { + "$ref": "GoogleLongrunningListOperationsResponse" + }, + "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": "v1/projects/{projectsId}/locations/{locationsId}/metadataStores/{metadataStoresId}/executions/{executionsId}/operations/{operationsId}:wait", + "httpMethod": "POST", + "id": "aiplatform.projects.locations.metadataStores.executions.operations.wait", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource to wait on.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/executions/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + }, + "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", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}:wait", + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } } }, "metadataSchemas": { @@ -8472,6 +9099,157 @@ ] } } + }, + "operations": { + "methods": { + "cancel": { + "description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/metadataStores/{metadataStoresId}/operations/{operationsId}:cancel", + "httpMethod": "POST", + "id": "aiplatform.projects.locations.metadataStores.operations.cancel", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource to be cancelled.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:cancel", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/metadataStores/{metadataStoresId}/operations/{operationsId}", + "httpMethod": "DELETE", + "id": "aiplatform.projects.locations.metadataStores.operations.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource to be deleted.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/metadataStores/{metadataStoresId}/operations/{operationsId}", + "httpMethod": "GET", + "id": "aiplatform.projects.locations.metadataStores.operations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/metadataStores/{metadataStoresId}/operations", + "httpMethod": "GET", + "id": "aiplatform.projects.locations.metadataStores.operations.list", + "parameterOrder": [ + "name" + ], + "parameters": { + "filter": { + "description": "The standard list filter.", + "location": "query", + "type": "string" + }, + "name": { + "description": "The name of the operation's parent resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "The standard list page size.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The standard list page token.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}/operations", + "response": { + "$ref": "GoogleLongrunningListOperationsResponse" + }, + "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": "v1/projects/{projectsId}/locations/{locationsId}/metadataStores/{metadataStoresId}/operations/{operationsId}:wait", + "httpMethod": "POST", + "id": "aiplatform.projects.locations.metadataStores.operations.wait", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource to wait on.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/metadataStores/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + }, + "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", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}:wait", + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } } } }, @@ -9221,6 +9999,37 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "getIamPolicy": { + "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/models/{modelsId}:getIamPolicy", + "httpMethod": "POST", + "id": "aiplatform.projects.locations.models.getIamPolicy", + "parameterOrder": [ + "resource" + ], + "parameters": { + "options.requestedPolicyVersion": { + "description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", + "format": "int32", + "location": "query", + "type": "integer" + }, + "resource": { + "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/models/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "response": { + "$ref": "GoogleIamV1Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "list": { "description": "Lists Models in a Location.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/models", @@ -9387,6 +10196,65 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "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}/locations/{locationsId}/models/{modelsId}:setIamPolicy", + "httpMethod": "POST", + "id": "aiplatform.projects.locations.models.setIamPolicy", + "parameterOrder": [ + "resource" + ], + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/models/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:setIamPolicy", + "request": { + "$ref": "GoogleIamV1SetIamPolicyRequest" + }, + "response": { + "$ref": "GoogleIamV1Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/models/{modelsId}:testIamPermissions", + "httpMethod": "POST", + "id": "aiplatform.projects.locations.models.testIamPermissions", + "parameterOrder": [ + "resource" + ], + "parameters": { + "permissions": { + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "location": "query", + "repeated": true, + "type": "string" + }, + "resource": { + "description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/models/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:testIamPermissions", + "response": { + "$ref": "GoogleIamV1TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "updateExplanationDataset": { "description": "Incrementally update the dataset used for an examples model.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/models/{modelsId}:updateExplanationDataset", @@ -10572,6 +11440,34 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "upgrade": { + "description": "Upgrades a NotebookRuntime.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/notebookRuntimes/{notebookRuntimesId}:upgrade", + "httpMethod": "POST", + "id": "aiplatform.projects.locations.notebookRuntimes.upgrade", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the NotebookRuntime resource to be upgrade. Instead of checking whether the name is in valid NotebookRuntime resource name format, directly throw NotFound exception if there is no such NotebookRuntime in spanner.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/notebookRuntimes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:upgrade", + "request": { + "$ref": "GoogleCloudAiplatformV1UpgradeNotebookRuntimeRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } }, @@ -11106,6 +12002,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "generateContent": { + "description": "Generate content with multimodal inputs.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/publishers/{publishersId}/models/{modelsId}:generateContent", + "httpMethod": "POST", + "id": "aiplatform.projects.locations.publishers.models.generateContent", + "parameterOrder": [ + "model" + ], + "parameters": { + "model": { + "description": "Required. The name of the publisher model requested to serve the prediction. Format: `projects/{project}/locations/{location}/publishers/*/models/*`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/publishers/[^/]+/models/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+model}:generateContent", + "request": { + "$ref": "GoogleCloudAiplatformV1GenerateContentRequest" + }, + "response": { + "$ref": "GoogleCloudAiplatformV1GenerateContentResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "predict": { "description": "Perform an online prediction.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/publishers/{publishersId}/models/{modelsId}:predict", @@ -11189,6 +12113,62 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "streamGenerateContent": { + "description": "Generate content with multimodal inputs with streaming support.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/publishers/{publishersId}/models/{modelsId}:streamGenerateContent", + "httpMethod": "POST", + "id": "aiplatform.projects.locations.publishers.models.streamGenerateContent", + "parameterOrder": [ + "model" + ], + "parameters": { + "model": { + "description": "Required. The name of the publisher model requested to serve the prediction. Format: `projects/{project}/locations/{location}/publishers/*/models/*`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/publishers/[^/]+/models/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+model}:streamGenerateContent", + "request": { + "$ref": "GoogleCloudAiplatformV1GenerateContentRequest" + }, + "response": { + "$ref": "GoogleCloudAiplatformV1GenerateContentResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "streamRawPredict": { + "description": "Perform a streaming online prediction with an arbitrary HTTP payload.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/publishers/{publishersId}/models/{modelsId}:streamRawPredict", + "httpMethod": "POST", + "id": "aiplatform.projects.locations.publishers.models.streamRawPredict", + "parameterOrder": [ + "endpoint" + ], + "parameters": { + "endpoint": { + "description": "Required. The name of the Endpoint requested to serve the prediction. Format: `projects/{project}/locations/{location}/endpoints/{endpoint}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/publishers/[^/]+/models/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+endpoint}:streamRawPredict", + "request": { + "$ref": "GoogleCloudAiplatformV1StreamRawPredictRequest" + }, + "response": { + "$ref": "GoogleApiHttpBody" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } } @@ -12621,6 +13601,37 @@ }, "tensorboards": { "methods": { + "batchRead": { + "description": "Reads multiple TensorboardTimeSeries' data. The data point number limit is 1000 for scalars, 100 for tensors and blob references. If the number of data points stored is less than the limit, all data is returned. Otherwise, the number limit of data points is randomly selected from this time series and returned.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/tensorboards/{tensorboardsId}:batchRead", + "httpMethod": "GET", + "id": "aiplatform.projects.locations.tensorboards.batchRead", + "parameterOrder": [ + "tensorboard" + ], + "parameters": { + "tensorboard": { + "description": "Required. The resource name of the Tensorboard containing TensorboardTimeSeries to read data from. Format: `projects/{project}/locations/{location}/tensorboards/{tensorboard}`. The TensorboardTimeSeries referenced by time_series must be sub resources of this Tensorboard.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+$", + "required": true, + "type": "string" + }, + "timeSeries": { + "description": "Required. The resource names of the TensorboardTimeSeries to read data from. Format: `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}`", + "location": "query", + "repeated": true, + "type": "string" + } + }, + "path": "v1/{+tensorboard}:batchRead", + "response": { + "$ref": "GoogleCloudAiplatformV1BatchReadTensorboardTimeSeriesDataResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "create": { "description": "Creates a Tensorboard.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/tensorboards", @@ -12841,6 +13852,34 @@ "resources": { "experiments": { "methods": { + "batchCreate": { + "description": "Batch create TensorboardTimeSeries that belong to a TensorboardExperiment.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/tensorboards/{tensorboardsId}/experiments/{experimentsId}:batchCreate", + "httpMethod": "POST", + "id": "aiplatform.projects.locations.tensorboards.experiments.batchCreate", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The resource name of the TensorboardExperiment to create the TensorboardTimeSeries in. Format: `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}` The TensorboardRuns referenced by the parent fields in the CreateTensorboardTimeSeriesRequest messages must be sub resources of this TensorboardExperiment.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}:batchCreate", + "request": { + "$ref": "GoogleCloudAiplatformV1BatchCreateTensorboardTimeSeriesRequest" + }, + "response": { + "$ref": "GoogleCloudAiplatformV1BatchCreateTensorboardTimeSeriesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "create": { "description": "Creates a TensorboardExperiment.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/tensorboards/{tensorboardsId}/experiments", @@ -13577,83 +14616,6 @@ }, "timeSeries": { "methods": { - "batchCreate": { - "description": "Batch create TensorboardTimeSeries that belong to a TensorboardExperiment.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/tensorboards/{tensorboardsId}/experiments/{experimentsId}/runs/{runsId}/timeSeries:batchCreate", - "httpMethod": "POST", - "id": "aiplatform.projects.locations.tensorboards.experiments.runs.timeSeries.batchCreate", - "parameterOrder": [ - "parent", - "runsId" - ], - "parameters": { - "parent": { - "description": "Required. The resource name of the TensorboardExperiment to create the TensorboardTimeSeries in. Format: `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}` The TensorboardRuns referenced by the parent fields in the CreateTensorboardTimeSeriesRequest messages must be sub resources of this TensorboardExperiment.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+/experiments/[^/]+$", - "required": true, - "type": "string" - }, - "runsId": { - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "v1/{+parent}/runs/{runsId}/timeSeries:batchCreate", - "request": { - "$ref": "GoogleCloudAiplatformV1BatchCreateTensorboardTimeSeriesRequest" - }, - "response": { - "$ref": "GoogleCloudAiplatformV1BatchCreateTensorboardTimeSeriesResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "batchRead": { - "description": "Reads multiple TensorboardTimeSeries' data. The data point number limit is 1000 for scalars, 100 for tensors and blob references. If the number of data points stored is less than the limit, all data is returned. Otherwise, the number limit of data points is randomly selected from this time series and returned.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/tensorboards/{tensorboardsId}/experiments/{experimentsId}/runs/{runsId}/timeSeries:batchRead", - "httpMethod": "GET", - "id": "aiplatform.projects.locations.tensorboards.experiments.runs.timeSeries.batchRead", - "parameterOrder": [ - "tensorboard", - "experimentsId", - "runsId" - ], - "parameters": { - "experimentsId": { - "location": "path", - "required": true, - "type": "string" - }, - "runsId": { - "location": "path", - "required": true, - "type": "string" - }, - "tensorboard": { - "description": "Required. The resource name of the Tensorboard containing TensorboardTimeSeries to read data from. Format: `projects/{project}/locations/{location}/tensorboards/{tensorboard}`. The TensorboardTimeSeries referenced by time_series must be sub resources of this Tensorboard.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/tensorboards/[^/]+$", - "required": true, - "type": "string" - }, - "timeSeries": { - "description": "Required. The resource names of the TensorboardTimeSeries to read data from. Format: `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}`", - "location": "query", - "repeated": true, - "type": "string" - } - }, - "path": "v1/{+tensorboard}/experiments/{experimentsId}/runs/{runsId}/timeSeries:batchRead", - "response": { - "$ref": "GoogleCloudAiplatformV1BatchReadTensorboardTimeSeriesDataResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, "create": { "description": "Creates a TensorboardTimeSeries.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/tensorboards/{tensorboardsId}/experiments/{experimentsId}/runs/{runsId}/timeSeries", @@ -14605,1323 +15567,1843 @@ } }, "schemas": { - "GoogleApiHttpBody": { - "description": "Message that represents an arbitrary HTTP body. It should only be used for payload formats that can't be represented as JSON, such as raw binary or an HTML page. This message can be used both in streaming and non-streaming API methods in the request as well as the response. It can be used as a top-level request field, which is convenient if one wants to extract parameters from either the URL or HTTP template into the request fields and also want access to the raw HTTP body. Example: message GetResourceRequest { // A unique request id. string request_id = 1; // The raw HTTP body is bound to this field. google.api.HttpBody http_body = 2; } service ResourceService { rpc GetResource(GetResourceRequest) returns (google.api.HttpBody); rpc UpdateResource(google.api.HttpBody) returns (google.protobuf.Empty); } Example with streaming methods: service CaldavService { rpc GetCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); rpc UpdateCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); } Use of this type only changes how the request and response bodies are handled, all other features will continue to work unchanged.", - "id": "GoogleApiHttpBody", + "CloudAiLargeModelsVisionEmbedVideoResponse": { + "description": "Video embedding response.", + "id": "CloudAiLargeModelsVisionEmbedVideoResponse", "properties": { - "contentType": { - "description": "The HTTP Content-Type header value specifying the content type of the body.", + "videoEmbeddings": { + "description": "The embedding vector for the video.", + "items": { + "type": "any" + }, + "type": "array" + } + }, + "type": "object" + }, + "CloudAiLargeModelsVisionFilteredText": { + "description": "Details for filtered input text.", + "id": "CloudAiLargeModelsVisionFilteredText", + "properties": { + "category": { + "description": "Confidence level", + "enum": [ + "RAI_CATEGORY_UNSPECIFIED", + "OBSCENE", + "SEXUALLY_EXPLICIT", + "IDENTITY_ATTACK", + "VIOLENCE_ABUSE", + "CSAI", + "SPII", + "CELEBRITY", + "FACE_IMG", + "WATERMARK_IMG", + "MEMORIZATION_IMG", + "CSAI_IMG", + "PORN_IMG", + "VIOLENCE_IMG", + "CHILD_IMG", + "TOXIC", + "SENSITIVE_WORD", + "PERSON_IMG", + "ICA_IMG", + "SEXUAL_IMG", + "IU_IMG", + "RACY_IMG", + "PEDO_IMG", + "DEATH_HARM_TRAGEDY", + "HEALTH", + "FIREARMS_WEAPONS", + "RELIGIOUS_BELIEF", + "ILLICIT_DRUGS", + "WAR_CONFLICT", + "POLITICS", + "HATE_SYMBOL_IMG", + "CHILD_TEXT", + "DANGEROUS_CONTENT", + "RECITATION_TEXT", + "CELEBRITY_IMG" + ], + "enumDescriptions": [ + "", + "", + "Porn", + "Hate", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "SafetyAttributes returned but not filtered on", + "", + "", + "", + "", + "", + "", + "End of list", + "", + "Text category from SafetyCat v3", + "", + "" + ], "type": "string" }, - "data": { - "description": "The HTTP request/response body as raw binary.", - "format": "byte", + "confidence": { + "description": "Filtered category", + "enum": [ + "CONFIDENCE_UNSPECIFIED", + "CONFIDENCE_LOW", + "CONFIDENCE_MEDIUM", + "CONFIDENCE_HIGH" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], "type": "string" }, - "extensions": { - "description": "Application specific response metadata. Must be set in the first response for streaming APIs.", + "prompt": { + "description": "Input prompt", + "type": "string" + }, + "score": { + "description": "Score for category", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "CloudAiLargeModelsVisionGenerateVideoResponse": { + "description": "Generate video response.", + "id": "CloudAiLargeModelsVisionGenerateVideoResponse", + "properties": { + "generatedSamples": { + "description": "The generates samples.", "items": { - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - }, - "type": "object" + "$ref": "CloudAiLargeModelsVisionMedia" + }, + "type": "array" + }, + "raiMediaFilteredCount": { + "description": "Returns if any videos were filtered due to RAI policies.", + "format": "int32", + "type": "integer" + }, + "raiMediaFilteredReasons": { + "description": "Returns rai failure reasons if any.", + "items": { + "type": "string" }, "type": "array" + }, + "raiTextFilteredReason": { + "$ref": "CloudAiLargeModelsVisionFilteredText", + "description": "Returns filtered text rai info." } }, "type": "object" }, - "GoogleCloudAiplatformV1ActiveLearningConfig": { - "description": "Parameters that configure the active learning pipeline. Active learning will label the data incrementally by several iterations. For every iteration, it will select a batch of data based on the sampling strategy.", - "id": "GoogleCloudAiplatformV1ActiveLearningConfig", + "CloudAiLargeModelsVisionImage": { + "description": "Image.", + "id": "CloudAiLargeModelsVisionImage", "properties": { - "maxDataItemCount": { - "description": "Max number of human labeled DataItems.", - "format": "int64", + "encoding": { + "description": "Image encoding, encoded as \"image/png\" or \"image/jpg\".", "type": "string" }, - "maxDataItemPercentage": { - "description": "Max percent of total DataItems for human labeling.", - "format": "int32", - "type": "integer" + "image": { + "description": "Raw bytes.", + "format": "byte", + "type": "string" }, - "sampleConfig": { - "$ref": "GoogleCloudAiplatformV1SampleConfig", - "description": "Active learning data sampling config. For every active learning labeling iteration, it will select a batch of data based on the sampling strategy." + "imageRaiScores": { + "$ref": "CloudAiLargeModelsVisionImageRAIScores", + "description": "RAI scores for generated image." }, - "trainingConfig": { - "$ref": "GoogleCloudAiplatformV1TrainingConfig", - "description": "CMLE training config. For every active learning labeling iteration, system will train a machine learning model on CMLE. The trained model will be used by data sampling algorithm to select DataItems." + "raiInfo": { + "$ref": "CloudAiLargeModelsVisionRaiInfo", + "description": "RAI info for image." + }, + "semanticFilterResponse": { + "$ref": "CloudAiLargeModelsVisionSemanticFilterResponse", + "description": "Semantic filter info for image." + }, + "text": { + "description": "Text/Expanded text input for imagen.", + "type": "string" + }, + "uri": { + "description": "Path to another storage (typically Google Cloud Storage).", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1AddContextArtifactsAndExecutionsRequest": { - "description": "Request message for MetadataService.AddContextArtifactsAndExecutions.", - "id": "GoogleCloudAiplatformV1AddContextArtifactsAndExecutionsRequest", + "CloudAiLargeModelsVisionImageRAIScores": { + "description": "RAI scores for generated image returned.", + "id": "CloudAiLargeModelsVisionImageRAIScores", "properties": { - "artifacts": { - "description": "The resource names of the Artifacts to attribute to the Context. Format: `projects/{project}/locations/{location}/metadataStores/{metadatastore}/artifacts/{artifact}`", + "agileWatermarkDetectionScore": { + "description": "Agile watermark score for image.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "CloudAiLargeModelsVisionMedia": { + "description": "Media.", + "id": "CloudAiLargeModelsVisionMedia", + "properties": { + "image": { + "$ref": "CloudAiLargeModelsVisionImage", + "description": "Image." + }, + "video": { + "$ref": "CloudAiLargeModelsVisionVideo", + "description": "Video" + } + }, + "type": "object" + }, + "CloudAiLargeModelsVisionMediaGenerateContentResponse": { + "description": "Generate media content response", + "id": "CloudAiLargeModelsVisionMediaGenerateContentResponse", + "properties": { + "response": { + "$ref": "CloudAiNlLlmProtoServiceGenerateMultiModalResponse", + "description": "Response to the user's request." + } + }, + "type": "object" + }, + "CloudAiLargeModelsVisionNamedBoundingBox": { + "id": "CloudAiLargeModelsVisionNamedBoundingBox", + "properties": { + "classes": { "items": { "type": "string" }, "type": "array" }, - "executions": { - "description": "The resource names of the Executions to associate with the Context. Format: `projects/{project}/locations/{location}/metadataStores/{metadatastore}/executions/{execution}`", + "entities": { "items": { "type": "string" }, "type": "array" + }, + "scores": { + "items": { + "format": "float", + "type": "number" + }, + "type": "array" + }, + "x1": { + "format": "float", + "type": "number" + }, + "x2": { + "format": "float", + "type": "number" + }, + "y1": { + "format": "float", + "type": "number" + }, + "y2": { + "format": "float", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1AddContextArtifactsAndExecutionsResponse": { - "description": "Response message for MetadataService.AddContextArtifactsAndExecutions.", - "id": "GoogleCloudAiplatformV1AddContextArtifactsAndExecutionsResponse", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1AddContextChildrenRequest": { - "description": "Request message for MetadataService.AddContextChildren.", - "id": "GoogleCloudAiplatformV1AddContextChildrenRequest", + "CloudAiLargeModelsVisionRaiInfo": { + "id": "CloudAiLargeModelsVisionRaiInfo", "properties": { - "childContexts": { - "description": "The resource names of the child Contexts.", + "raiCategories": { + "description": "List of rai categories' information to return", "items": { "type": "string" }, "type": "array" + }, + "scores": { + "description": "List of rai scores mapping to the rai categories. Rounded to 1 decimal place.", + "items": { + "format": "float", + "type": "number" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1AddContextChildrenResponse": { - "description": "Response message for MetadataService.AddContextChildren.", - "id": "GoogleCloudAiplatformV1AddContextChildrenResponse", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1AddExecutionEventsRequest": { - "description": "Request message for MetadataService.AddExecutionEvents.", - "id": "GoogleCloudAiplatformV1AddExecutionEventsRequest", + "CloudAiLargeModelsVisionReasonVideoResponse": { + "description": "Video reasoning response.", + "id": "CloudAiLargeModelsVisionReasonVideoResponse", "properties": { - "events": { - "description": "The Events to create and add.", + "responses": { + "description": "Generated text responses. The generated responses for different segments within the same video.", "items": { - "$ref": "GoogleCloudAiplatformV1Event" + "$ref": "CloudAiLargeModelsVisionReasonVideoResponseTextResponse" }, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1AddExecutionEventsResponse": { - "description": "Response message for MetadataService.AddExecutionEvents.", - "id": "GoogleCloudAiplatformV1AddExecutionEventsResponse", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1AddTrialMeasurementRequest": { - "description": "Request message for VizierService.AddTrialMeasurement.", - "id": "GoogleCloudAiplatformV1AddTrialMeasurementRequest", + "CloudAiLargeModelsVisionReasonVideoResponseTextResponse": { + "description": "Contains text that is the response of the video captioning.", + "id": "CloudAiLargeModelsVisionReasonVideoResponseTextResponse", "properties": { - "measurement": { - "$ref": "GoogleCloudAiplatformV1Measurement", - "description": "Required. The measurement to be added to a Trial." + "relativeTemporalPartition": { + "$ref": "CloudAiLargeModelsVisionRelativeTemporalPartition", + "description": "Partition of the caption's video in time. This field is intended for video captioning. To represent the start time and end time of the caption's video." + }, + "text": { + "description": "Text information", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1Annotation": { - "description": "Used to assign specific AnnotationSpec to a particular area of a DataItem or the whole part of the DataItem.", - "id": "GoogleCloudAiplatformV1Annotation", + "CloudAiLargeModelsVisionRelativeTemporalPartition": { + "description": "For ease of use, assume that the start_offset is inclusive and the end_offset is exclusive. In mathematical terms, the partition would be written as [start_offset, end_offset).", + "id": "CloudAiLargeModelsVisionRelativeTemporalPartition", "properties": { - "annotationSource": { - "$ref": "GoogleCloudAiplatformV1UserActionReference", - "description": "Output only. The source of the Annotation.", - "readOnly": true - }, - "createTime": { - "description": "Output only. Timestamp when this Annotation was created.", - "format": "google-datetime", - "readOnly": true, + "endOffset": { + "description": "End time offset of the partition.", + "format": "google-duration", "type": "string" }, - "etag": { - "description": "Optional. Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "startOffset": { + "description": "Start time offset of the partition.", + "format": "google-duration", "type": "string" - }, - "labels": { - "additionalProperties": { - "type": "string" + } + }, + "type": "object" + }, + "CloudAiLargeModelsVisionSemanticFilterResponse": { + "id": "CloudAiLargeModelsVisionSemanticFilterResponse", + "properties": { + "namedBoundingBoxes": { + "description": "Class labels of the bounding boxes that failed the semantic filtering. Bounding box coordinates.", + "items": { + "$ref": "CloudAiLargeModelsVisionNamedBoundingBox" }, - "description": "Optional. The labels with user-defined metadata to organize your Annotations. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. No more than 64 user labels can be associated with one Annotation(System labels are excluded). See https://goo.gl/xmQnxf for more information and examples of labels. System reserved label keys are prefixed with \"aiplatform.googleapis.com/\" and are immutable. Following system labels exist for each Annotation: * \"aiplatform.googleapis.com/annotation_set_name\": optional, name of the UI's annotation set this Annotation belongs to. If not set, the Annotation is not visible in the UI. * \"aiplatform.googleapis.com/payload_schema\": output only, its value is the payload_schema's title.", - "type": "object" - }, - "name": { - "description": "Output only. Resource name of the Annotation.", - "readOnly": true, - "type": "string" - }, - "payload": { - "description": "Required. The schema of the payload can be found in payload_schema.", - "type": "any" + "type": "array" }, - "payloadSchemaUri": { - "description": "Required. Google Cloud Storage URI points to a YAML file describing payload. The schema is defined as an [OpenAPI 3.0.2 Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). The schema files that can be used here are found in gs://google-cloud-aiplatform/schema/dataset/annotation/, note that the chosen schema must be consistent with the parent Dataset's metadata.", + "passedSemanticFilter": { + "description": "This response is added when semantic filter config is turned on in EditConfig. It reports if this image is passed semantic filter response. If passed_semantic_filter is false, the bounding box information will be populated for user to check what caused the semantic filter to fail.", + "type": "boolean" + } + }, + "type": "object" + }, + "CloudAiLargeModelsVisionVideo": { + "description": "Video", + "id": "CloudAiLargeModelsVisionVideo", + "properties": { + "uri": { + "description": "Path to another storage (typically Google Cloud Storage).", "type": "string" }, - "updateTime": { - "description": "Output only. Timestamp when this Annotation was last updated.", - "format": "google-datetime", - "readOnly": true, + "video": { + "description": "Raw bytes.", + "format": "byte", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1AnnotationSpec": { - "description": "Identifies a concept with which DataItems may be annotated with.", - "id": "GoogleCloudAiplatformV1AnnotationSpec", + "CloudAiNlLlmProtoServiceCandidate": { + "id": "CloudAiNlLlmProtoServiceCandidate", "properties": { - "createTime": { - "description": "Output only. Timestamp when this AnnotationSpec was created.", - "format": "google-datetime", - "readOnly": true, - "type": "string" + "citationMetadata": { + "$ref": "CloudAiNlLlmProtoServiceCitationMetadata", + "description": "Source attribution of the generated content." }, - "displayName": { - "description": "Required. The user-defined name of the AnnotationSpec. The name can be up to 128 characters long and can consist of any UTF-8 characters.", - "type": "string" + "content": { + "$ref": "CloudAiNlLlmProtoServiceContent", + "description": "Content of the candidate." }, - "etag": { - "description": "Optional. Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "finishMessage": { + "description": "A string that describes the filtering behavior in more detail. Only filled when reason is set.", "type": "string" }, - "name": { - "description": "Output only. Resource name of the AnnotationSpec.", - "readOnly": true, + "finishReason": { + "description": "The reason why the model stopped generating tokens.", + "enum": [ + "FINISH_REASON_UNSPECIFIED", + "FINISH_REASON_STOP", + "FINISH_REASON_MAX_TOKENS", + "FINISH_REASON_SAFETY", + "FINISH_REASON_RECITATION", + "FINISH_REASON_OTHER" + ], + "enumDescriptions": [ + "The finish reason is unspecified.", + "Natural stop point of the model or provided stop sequence.", + "The maximum number of tokens as specified in the request was reached.", + "The token generation was stopped as the response was flagged for safety reasons. NOTE: When streaming the Candidate.content will be empty if content filters blocked the output.", + "The token generation was stopped as the response was flagged for unauthorized citations.", + "All other reasons that stopped the token generation." + ], "type": "string" }, - "updateTime": { - "description": "Output only. Timestamp when AnnotationSpec was last updated.", - "format": "google-datetime", - "readOnly": true, - "type": "string" + "groundingMetadata": { + "$ref": "LearningGenaiRootGroundingMetadata", + "description": "Grounding metadata. Combine with the facts list from response to generate grounding citations for this choice." + }, + "index": { + "description": "Index of the candidate.", + "format": "int32", + "type": "integer" + }, + "safetyRatings": { + "description": "Safety ratings of the generated content.", + "items": { + "$ref": "CloudAiNlLlmProtoServiceSafetyRating" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1Artifact": { - "description": "Instance of a general artifact.", - "id": "GoogleCloudAiplatformV1Artifact", + "CloudAiNlLlmProtoServiceCitation": { + "description": "Source attributions for content.", + "id": "CloudAiNlLlmProtoServiceCitation", "properties": { - "createTime": { - "description": "Output only. Timestamp when this Artifact was created.", - "format": "google-datetime", - "readOnly": true, - "type": "string" + "endIndex": { + "description": "End index into the content.", + "format": "int32", + "type": "integer" }, - "description": { - "description": "Description of the Artifact", + "license": { + "description": "License of the attribution.", "type": "string" }, - "displayName": { - "description": "User provided display name of the Artifact. May be up to 128 Unicode characters.", - "type": "string" + "publicationDate": { + "$ref": "GoogleTypeDate", + "description": "Publication date of the attribution." }, - "etag": { - "description": "An eTag used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "startIndex": { + "description": "Start index into the content.", + "format": "int32", + "type": "integer" + }, + "title": { + "description": "Title of the attribution.", "type": "string" }, - "labels": { - "additionalProperties": { - "type": "string" + "uri": { + "description": "Url reference of the attribution.", + "type": "string" + } + }, + "type": "object" + }, + "CloudAiNlLlmProtoServiceCitationMetadata": { + "description": "A collection of source attributions for a piece of content.", + "id": "CloudAiNlLlmProtoServiceCitationMetadata", + "properties": { + "citations": { + "description": "List of citations.", + "items": { + "$ref": "CloudAiNlLlmProtoServiceCitation" }, - "description": "The labels with user-defined metadata to organize your Artifacts. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. No more than 64 user labels can be associated with one Artifact (System labels are excluded).", - "type": "object" - }, - "metadata": { - "additionalProperties": { - "description": "Properties of the object.", - "type": "any" + "type": "array" + } + }, + "type": "object" + }, + "CloudAiNlLlmProtoServiceContent": { + "description": "The content of a single message from a participant.", + "id": "CloudAiNlLlmProtoServiceContent", + "properties": { + "parts": { + "description": "The parts of the message.", + "items": { + "$ref": "CloudAiNlLlmProtoServicePart" }, - "description": "Properties of the Artifact. Top level metadata keys' heading and trailing spaces will be trimmed. The size of this field should not exceed 200KB.", - "type": "object" - }, - "name": { - "description": "Output only. The resource name of the Artifact.", - "readOnly": true, - "type": "string" + "type": "array" }, - "schemaTitle": { - "description": "The title of the schema describing the metadata. Schema title and version is expected to be registered in earlier Create Schema calls. And both are used together as unique identifiers to identify schemas within the local metadata store.", + "role": { + "description": "The role of the current conversation participant.", "type": "string" - }, - "schemaVersion": { - "description": "The version of the schema in schema_name to use. Schema title and version is expected to be registered in earlier Create Schema calls. And both are used together as unique identifiers to identify schemas within the local metadata store.", + } + }, + "type": "object" + }, + "CloudAiNlLlmProtoServiceFact": { + "description": "A condense version of WorldFact (assistant/boq/lamda/factuality/proto/factuality.proto) to propagate the essential information about the fact used in factuality to the upstream caller.", + "id": "CloudAiNlLlmProtoServiceFact", + "properties": { + "query": { + "description": "Query that is used to retrieve this fact.", "type": "string" }, - "state": { - "description": "The state of this Artifact. This is a property of the Artifact, and does not imply or capture any ongoing process. This property is managed by clients (such as Vertex AI Pipelines), and the system does not prescribe or check the validity of state transitions.", - "enum": [ - "STATE_UNSPECIFIED", - "PENDING", - "LIVE" - ], - "enumDescriptions": [ - "Unspecified state for the Artifact.", - "A state used by systems like Vertex AI Pipelines to indicate that the underlying data item represented by this Artifact is being created.", - "A state indicating that the Artifact should exist, unless something external to the system deletes it." - ], + "summary": { + "description": "If present, the summary/snippet of the fact.", "type": "string" }, - "updateTime": { - "description": "Output only. Timestamp when this Artifact was last updated.", - "format": "google-datetime", - "readOnly": true, + "title": { + "description": "If present, it refers to the title of this fact.", "type": "string" }, - "uri": { - "description": "The uniform resource identifier of the artifact file. May be empty if there is no actual artifact file.", + "url": { + "description": "If present, this URL links to the webpage of the fact.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1AssignNotebookRuntimeOperationMetadata": { - "description": "Metadata information for NotebookService.AssignNotebookRuntime.", - "id": "GoogleCloudAiplatformV1AssignNotebookRuntimeOperationMetadata", + "CloudAiNlLlmProtoServiceFunctionCall": { + "description": "Function call details.", + "id": "CloudAiNlLlmProtoServiceFunctionCall", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "The operation generic information." + "args": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "The function parameters and values in JSON format.", + "type": "object" }, - "progressMessage": { - "description": "A human-readable message that shows the intermediate progress details of NotebookRuntime.", + "name": { + "description": "Required. The name of the function to call.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1AssignNotebookRuntimeRequest": { - "description": "Request message for NotebookService.AssignNotebookRuntime.", - "id": "GoogleCloudAiplatformV1AssignNotebookRuntimeRequest", + "CloudAiNlLlmProtoServiceFunctionResponse": { + "description": "Function response details.", + "id": "CloudAiNlLlmProtoServiceFunctionResponse", "properties": { - "notebookRuntime": { - "$ref": "GoogleCloudAiplatformV1NotebookRuntime", - "description": "Required. Provide runtime specific information (e.g. runtime owner, notebook id) used for NotebookRuntime assignment." - }, - "notebookRuntimeId": { - "description": "Optional. User specified ID for the notebook runtime.", + "name": { + "description": "Required. The name of the function to call.", "type": "string" }, - "notebookRuntimeTemplate": { - "description": "Required. The resource name of the NotebookRuntimeTemplate based on which a NotebookRuntime will be assigned (reuse or create a new one).", - "type": "string" + "response": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Required. The function response in JSON object format.", + "type": "object" } }, "type": "object" }, - "GoogleCloudAiplatformV1Attribution": { - "description": "Attribution that explains a particular prediction output.", - "id": "GoogleCloudAiplatformV1Attribution", + "CloudAiNlLlmProtoServiceGenerateMultiModalResponse": { + "id": "CloudAiNlLlmProtoServiceGenerateMultiModalResponse", "properties": { - "approximationError": { - "description": "Output only. Error of feature_attributions caused by approximation used in the explanation method. Lower value means more precise attributions. * For Sampled Shapley attribution, increasing path_count might reduce the error. * For Integrated Gradients attribution, increasing step_count might reduce the error. * For XRAI attribution, increasing step_count might reduce the error. See [this introduction](/vertex-ai/docs/explainable-ai/overview) for more information.", - "format": "double", - "readOnly": true, - "type": "number" - }, - "baselineOutputValue": { - "description": "Output only. Model predicted output if the input instance is constructed from the baselines of all the features defined in ExplanationMetadata.inputs. The field name of the output is determined by the key in ExplanationMetadata.outputs. If the Model's predicted output has multiple dimensions (rank > 1), this is the value in the output located by output_index. If there are multiple baselines, their output values are averaged.", - "format": "double", - "readOnly": true, - "type": "number" - }, - "featureAttributions": { - "description": "Output only. Attributions of each explained feature. Features are extracted from the prediction instances according to explanation metadata for inputs. The value is a struct, whose keys are the name of the feature. The values are how much the feature in the instance contributed to the predicted result. The format of the value is determined by the feature's input format: * If the feature is a scalar value, the attribution value is a floating number. * If the feature is an array of scalar values, the attribution value is an array. * If the feature is a struct, the attribution value is a struct. The keys in the attribution value struct are the same as the keys in the feature struct. The formats of the values in the attribution struct are determined by the formats of the values in the feature struct. The ExplanationMetadata.feature_attributions_schema_uri field, pointed to by the ExplanationSpec field of the Endpoint.deployed_models object, points to the schema file that describes the features and their attribution values (if it is populated).", - "readOnly": true, - "type": "any" - }, - "instanceOutputValue": { - "description": "Output only. Model predicted output on the corresponding explanation instance. The field name of the output is determined by the key in ExplanationMetadata.outputs. If the Model predicted output has multiple dimensions, this is the value in the output located by output_index.", - "format": "double", - "readOnly": true, - "type": "number" + "candidates": { + "description": "Possible candidate responses to the conversation up until this point.", + "items": { + "$ref": "CloudAiNlLlmProtoServiceCandidate" + }, + "type": "array" }, - "outputDisplayName": { - "description": "Output only. The display name of the output identified by output_index. For example, the predicted class name by a multi-classification Model. This field is only populated iff the Model predicts display names as a separate field along with the explained output. The predicted display name must has the same shape of the explained output, and can be located using output_index.", - "readOnly": true, - "type": "string" + "debugMetadata": { + "$ref": "CloudAiNlLlmProtoServiceMessageMetadata", + "description": "Debug information containing message metadata. Clients should not consume this field, and this is only populated for Flow Runner path." }, - "outputIndex": { - "description": "Output only. The index that locates the explained prediction output. If the prediction output is a scalar value, output_index is not populated. If the prediction output has multiple dimensions, the length of the output_index list is the same as the number of dimensions of the output. The i-th element in output_index is the element index of the i-th dimension of the output vector. Indices start from 0.", + "facts": { + "description": "External facts retrieved for factuality/grounding.", "items": { - "format": "int32", - "type": "integer" + "$ref": "CloudAiNlLlmProtoServiceFact" }, - "readOnly": true, "type": "array" }, - "outputName": { - "description": "Output only. Name of the explain output. Specified as the key in ExplanationMetadata.outputs.", - "readOnly": true, - "type": "string" + "promptFeedback": { + "$ref": "CloudAiNlLlmProtoServicePromptFeedback", + "description": "Content filter results for a prompt sent in the request. Note: Sent only in the first stream chunk. Only happens when no candidates were generated due to content violations." + }, + "reportingMetrics": { + "$ref": "IntelligenceCloudAutomlXpsReportingMetrics", + "description": "Billable prediction metrics." + }, + "usageMetadata": { + "$ref": "CloudAiNlLlmProtoServiceUsageMetadata", + "description": "Usage metadata about the response(s)." } }, "type": "object" }, - "GoogleCloudAiplatformV1AutomaticResources": { - "description": "A description of resources that to large degree are decided by Vertex AI, and require only a modest additional configuration. Each Model supporting these resources documents its specific guidelines.", - "id": "GoogleCloudAiplatformV1AutomaticResources", + "CloudAiNlLlmProtoServiceMessageMetadata": { + "id": "CloudAiNlLlmProtoServiceMessageMetadata", "properties": { - "maxReplicaCount": { - "description": "Immutable. The maximum number of replicas this DeployedModel may be deployed on when the traffic against it increases. If the requested value is too large, the deployment will error, but if deployment succeeds then the ability to scale the model to that many replicas is guaranteed (barring service outages). If traffic against the DeployedModel increases beyond what its replicas at maximum may handle, a portion of the traffic will be dropped. If this value is not provided, a no upper bound for scaling under heavy traffic will be assume, though Vertex AI may be unable to scale beyond certain replica number.", - "format": "int32", - "type": "integer" + "inputFilterInfo": { + "$ref": "LearningServingLlmMessageMetadata", + "description": "Filter metadata of the input messages." }, - "minReplicaCount": { - "description": "Immutable. The minimum number of replicas this DeployedModel will be always deployed on. If traffic against it increases, it may dynamically be deployed onto more replicas up to max_replica_count, and as traffic decreases, some of these extra replicas may be freed. If the requested value is too large, the deployment will error.", - "format": "int32", - "type": "integer" + "modelRoutingDecision": { + "$ref": "LearningGenaiRootRoutingDecision", + "description": "This score is generated by the router model to decide which model to use" + }, + "outputFilterInfo": { + "description": "Filter metadata of the output messages.", + "items": { + "$ref": "LearningServingLlmMessageMetadata" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1AutoscalingMetricSpec": { - "description": "The metric specification that defines the target resource utilization (CPU utilization, accelerator's duty cycle, and so on) for calculating the desired replica count.", - "id": "GoogleCloudAiplatformV1AutoscalingMetricSpec", + "CloudAiNlLlmProtoServicePart": { + "description": "A single part of a message.", + "id": "CloudAiNlLlmProtoServicePart", "properties": { - "metricName": { - "description": "Required. The resource metric name. Supported metrics: * For Online Prediction: * `aiplatform.googleapis.com/prediction/online/accelerator/duty_cycle` * `aiplatform.googleapis.com/prediction/online/cpu/utilization`", + "fileData": { + "$ref": "CloudAiNlLlmProtoServicePartFileData", + "description": "URI-based data." + }, + "functionCall": { + "$ref": "CloudAiNlLlmProtoServiceFunctionCall", + "description": "Function call data." + }, + "functionResponse": { + "$ref": "CloudAiNlLlmProtoServiceFunctionResponse", + "description": "Function response data." + }, + "inlineData": { + "$ref": "CloudAiNlLlmProtoServicePartBlob", + "description": "Inline bytes data" + }, + "text": { + "description": "Text input.", "type": "string" }, - "target": { - "description": "The target resource utilization in percentage (1% - 100%) for the given metric; once the real usage deviates from the target by a certain percentage, the machine replicas change. The default value is 60 (representing 60%) if not provided.", - "format": "int32", - "type": "integer" + "videoMetadata": { + "$ref": "CloudAiNlLlmProtoServicePartVideoMetadata", + "description": "Video metadata. The metadata should only be specified while the video data is presented in inline_data or file_data." } }, "type": "object" }, - "GoogleCloudAiplatformV1AvroSource": { - "description": "The storage details for Avro input content.", - "id": "GoogleCloudAiplatformV1AvroSource", + "CloudAiNlLlmProtoServicePartBlob": { + "description": "Represents arbitrary blob data input.", + "id": "CloudAiNlLlmProtoServicePartBlob", "properties": { - "gcsSource": { - "$ref": "GoogleCloudAiplatformV1GcsSource", - "description": "Required. Google Cloud Storage location." + "data": { + "description": "Inline data.", + "format": "byte", + "type": "string" + }, + "mimeType": { + "description": "The mime type corresponding to this input.", + "type": "string" + }, + "originalFileData": { + "$ref": "CloudAiNlLlmProtoServicePartFileData", + "description": "Original file data where the blob comes from." } }, "type": "object" }, - "GoogleCloudAiplatformV1BatchCreateFeaturesOperationMetadata": { - "description": "Details of operations that perform batch create Features.", - "id": "GoogleCloudAiplatformV1BatchCreateFeaturesOperationMetadata", + "CloudAiNlLlmProtoServicePartFileData": { + "description": "Represents file data.", + "id": "CloudAiNlLlmProtoServicePartFileData", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "Operation metadata for Feature." + "fileUri": { + "description": "Inline data.", + "type": "string" + }, + "mimeType": { + "description": "The mime type corresponding to this input.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1BatchCreateFeaturesRequest": { - "description": "Request message for FeaturestoreService.BatchCreateFeatures.", - "id": "GoogleCloudAiplatformV1BatchCreateFeaturesRequest", + "CloudAiNlLlmProtoServicePartVideoMetadata": { + "description": "Metadata describes the input video content.", + "id": "CloudAiNlLlmProtoServicePartVideoMetadata", "properties": { - "requests": { - "description": "Required. The request message specifying the Features to create. All Features must be created under the same parent EntityType. The `parent` field in each child request message can be omitted. If `parent` is set in a child request, then the value must match the `parent` value in this request message.", - "items": { - "$ref": "GoogleCloudAiplatformV1CreateFeatureRequest" - }, - "type": "array" + "endOffset": { + "description": "The end offset of the video.", + "format": "google-duration", + "type": "string" + }, + "startOffset": { + "description": "The start offset of the video.", + "format": "google-duration", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1BatchCreateFeaturesResponse": { - "description": "Response message for FeaturestoreService.BatchCreateFeatures.", - "id": "GoogleCloudAiplatformV1BatchCreateFeaturesResponse", + "CloudAiNlLlmProtoServicePromptFeedback": { + "description": "Content filter results for a prompt sent in the request.", + "id": "CloudAiNlLlmProtoServicePromptFeedback", "properties": { - "features": { - "description": "The Features created.", + "blockReason": { + "description": "Blocked reason.", + "enum": [ + "BLOCKED_REASON_UNSPECIFIED", + "SAFETY", + "OTHER" + ], + "enumDescriptions": [ + "Unspecified blocked reason.", + "Candidates blocked due to safety.", + "Candidates blocked due to other reason." + ], + "type": "string" + }, + "blockReasonMessage": { + "description": "A readable block reason message.", + "type": "string" + }, + "safetyRatings": { + "description": "Safety ratings.", "items": { - "$ref": "GoogleCloudAiplatformV1Feature" + "$ref": "CloudAiNlLlmProtoServiceSafetyRating" }, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1BatchCreateTensorboardRunsRequest": { - "description": "Request message for TensorboardService.BatchCreateTensorboardRuns.", - "id": "GoogleCloudAiplatformV1BatchCreateTensorboardRunsRequest", + "CloudAiNlLlmProtoServiceRaiResult": { + "description": "The RAI results for a given text.", + "id": "CloudAiNlLlmProtoServiceRaiResult", "properties": { - "requests": { - "description": "Required. The request message specifying the TensorboardRuns to create. A maximum of 1000 TensorboardRuns can be created in a batch.", + "aidaRecitationResult": { + "$ref": "LanguageLabsAidaTrustRecitationProtoRecitationResult", + "description": "Recitation result from Aida recitation checker." + }, + "blocked": { + "deprecated": true, + "description": "Use `triggered_blocklist`.", + "type": "boolean" + }, + "errorCodes": { + "description": "The error codes indicate which RAI filters block the response.", "items": { - "$ref": "GoogleCloudAiplatformV1CreateTensorboardRunRequest" + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "filtered": { + "description": "Whether the text should be filtered and not shown to the end user. This is determined based on a combination of `triggered_recitation`, `triggered_blocklist`, `language_filter_result`, and `triggered_safety_filter`.", + "type": "boolean" + }, + "languageFilterResult": { + "$ref": "LearningGenaiRootLanguageFilterResult", + "description": "Language filter result from SAFT LangId." + }, + "raiSignals": { + "description": "The RAI signals for the text.", + "items": { + "$ref": "CloudAiNlLlmProtoServiceRaiSignal" }, "type": "array" + }, + "triggeredBlocklist": { + "description": "Whether the text triggered the blocklist.", + "type": "boolean" + }, + "triggeredRecitation": { + "description": "Whether the text should be blocked by the recitation result from Aida recitation checker. It is determined from aida_recitation_result.", + "type": "boolean" + }, + "triggeredSafetyFilter": { + "description": "Whether the text triggered the safety filter. Currently, this is due to CSAI triggering or one of four categories (derogatory, sexual, toxic, violent) having a score over the filter threshold.", + "type": "boolean" } }, "type": "object" }, - "GoogleCloudAiplatformV1BatchCreateTensorboardRunsResponse": { - "description": "Response message for TensorboardService.BatchCreateTensorboardRuns.", - "id": "GoogleCloudAiplatformV1BatchCreateTensorboardRunsResponse", + "CloudAiNlLlmProtoServiceRaiSignal": { + "description": "An RAI signal for a single category.", + "id": "CloudAiNlLlmProtoServiceRaiSignal", "properties": { - "tensorboardRuns": { - "description": "The created TensorboardRuns.", - "items": { - "$ref": "GoogleCloudAiplatformV1TensorboardRun" - }, - "type": "array" + "confidence": { + "description": "The confidence level for the RAI category.", + "enum": [ + "CONFIDENCE_UNSPECIFIED", + "CONFIDENCE_NONE", + "CONFIDENCE_LOW", + "CONFIDENCE_MEDIUM", + "CONFIDENCE_HIGH" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "flagged": { + "description": "Whether the category is flagged as being present. Currently, this is set to true if score >= 0.5.", + "type": "boolean" + }, + "raiCategory": { + "description": "The RAI category.", + "enum": [ + "RAI_CATEGORY_UNSPECIFIED", + "TOXIC", + "SEXUALLY_EXPLICIT", + "HATE_SPEECH", + "VIOLENT", + "PROFANITY", + "HARASSMENT", + "DEATH_HARM_TRAGEDY", + "FIREARMS_WEAPONS", + "PUBLIC_SAFETY", + "HEALTH", + "RELIGIOUS_BELIEF", + "ILLICIT_DRUGS", + "WAR_CONFLICT", + "POLITICS", + "FINANCE", + "LEGAL", + "CSAI", + "FRINGE", + "THREAT", + "SEVERE_TOXICITY", + "TOXICITY", + "SEXUAL", + "INSULT", + "DEROGATORY", + "IDENTITY_ATTACK", + "VIOLENCE_ABUSE", + "OBSCENE", + "DRUGS", + "CSAM", + "SPII", + "DANGEROUS_CONTENT", + "DANGEROUS_CONTENT_SEVERITY", + "INSULT_SEVERITY", + "DEROGATORY_SEVERITY", + "SEXUAL_SEVERITY" + ], + "enumDescriptions": [ + "", + "SafetyCat categories.", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "GRAIL categories that can't be exposed to end users.", + "", + "Unused categories.", + "", + "Old category names.", + "", + "", + "", + "", + "", + "", + "", + "CSAM V2", + "SPII", + "New SafetyCat v3 categories", + "", + "", + "", + "" + ], + "type": "string" + }, + "score": { + "description": "The score for the category, in the range [0.0, 1.0].", + "format": "float", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1BatchCreateTensorboardTimeSeriesRequest": { - "description": "Request message for TensorboardService.BatchCreateTensorboardTimeSeries.", - "id": "GoogleCloudAiplatformV1BatchCreateTensorboardTimeSeriesRequest", + "CloudAiNlLlmProtoServiceSafetyRating": { + "description": "Safety rating corresponding to the generated content.", + "id": "CloudAiNlLlmProtoServiceSafetyRating", "properties": { - "requests": { - "description": "Required. The request message specifying the TensorboardTimeSeries to create. A maximum of 1000 TensorboardTimeSeries can be created in a batch.", + "blocked": { + "description": "Indicates whether the content was filtered out because of this rating.", + "type": "boolean" + }, + "category": { + "description": "Harm category.", + "enum": [ + "HARM_CATEGORY_UNSPECIFIED", + "HARM_CATEGORY_HATE_SPEECH", + "HARM_CATEGORY_DANGEROUS_CONTENT", + "HARM_CATEGORY_HARASSMENT", + "HARM_CATEGORY_SEXUALLY_EXPLICIT" + ], + "enumDescriptions": [ + "The harm category is unspecified.", + "The harm category is hate speech.", + "The harm category is dengerous content.", + "The harm category is harassment.", + "The harm category is sexually explicit." + ], + "type": "string" + }, + "influentialTerms": { + "description": "The influential terms that could potentially block the response.", "items": { - "$ref": "GoogleCloudAiplatformV1CreateTensorboardTimeSeriesRequest" + "$ref": "CloudAiNlLlmProtoServiceSafetyRatingInfluentialTerm" }, "type": "array" + }, + "probability": { + "description": "Harm probability levels in the content.", + "enum": [ + "HARM_PROBABILITY_UNSPECIFIED", + "NEGLIGIBLE", + "LOW", + "MEDIUM", + "HIGH" + ], + "enumDescriptions": [ + "Harm probability unspecified.", + "Negligible level of harm.", + "Low level of harm.", + "Medium level of harm.", + "High level of harm." + ], + "type": "string" + }, + "probabilityScore": { + "description": "Harm probability score.", + "format": "float", + "type": "number" + }, + "severity": { + "description": "Harm severity levels in the content.", + "enum": [ + "HARM_SEVERITY_UNSPECIFIED", + "HARM_SEVERITY_NEGLIGIBLE", + "HARM_SEVERITY_LOW", + "HARM_SEVERITY_MEDIUM", + "HARM_SEVERITY_HIGH" + ], + "enumDescriptions": [ + "Harm severity unspecified.", + "Negligible level of harm severity.", + "Low level of harm severity.", + "Medium level of harm severity.", + "High level of harm severity." + ], + "type": "string" + }, + "severityScore": { + "description": "Harm severity score.", + "format": "float", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1BatchCreateTensorboardTimeSeriesResponse": { - "description": "Response message for TensorboardService.BatchCreateTensorboardTimeSeries.", - "id": "GoogleCloudAiplatformV1BatchCreateTensorboardTimeSeriesResponse", + "CloudAiNlLlmProtoServiceSafetyRatingInfluentialTerm": { + "description": "The influential term that could potentially block the response.", + "id": "CloudAiNlLlmProtoServiceSafetyRatingInfluentialTerm", "properties": { - "tensorboardTimeSeries": { - "description": "The created TensorboardTimeSeries.", - "items": { - "$ref": "GoogleCloudAiplatformV1TensorboardTimeSeries" - }, - "type": "array" + "beginOffset": { + "description": "The beginning offset of the influential term.", + "format": "int32", + "type": "integer" + }, + "confidence": { + "description": "The confidence score of the influential term.", + "format": "float", + "type": "number" + }, + "source": { + "description": "The source of the influential term, prompt or response.", + "enum": [ + "SOURCE_UNSPECIFIED", + "PROMPT", + "RESPONSE" + ], + "enumDescriptions": [ + "Unspecified source.", + "The influential term comes from the prompt.", + "The influential term comes from the response." + ], + "type": "string" + }, + "term": { + "description": "The influential term.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1BatchDedicatedResources": { - "description": "A description of resources that are used for performing batch operations, are dedicated to a Model, and need manual configuration.", - "id": "GoogleCloudAiplatformV1BatchDedicatedResources", + "CloudAiNlLlmProtoServiceUsageMetadata": { + "description": "Usage metadata about response(s).", + "id": "CloudAiNlLlmProtoServiceUsageMetadata", "properties": { - "machineSpec": { - "$ref": "GoogleCloudAiplatformV1MachineSpec", - "description": "Required. Immutable. The specification of a single machine." + "candidatesTokenCount": { + "description": "Number of tokens in the response(s).", + "format": "int32", + "type": "integer" }, - "maxReplicaCount": { - "description": "Immutable. The maximum number of machine replicas the batch operation may be scaled to. The default value is 10.", + "promptTokenCount": { + "description": "Number of tokens in the request.", "format": "int32", "type": "integer" }, - "startingReplicaCount": { - "description": "Immutable. The number of machine replicas used at the start of the batch operation. If not set, Vertex AI decides starting number, not greater than max_replica_count", + "totalTokenCount": { "format": "int32", "type": "integer" } }, "type": "object" }, - "GoogleCloudAiplatformV1BatchImportEvaluatedAnnotationsRequest": { - "description": "Request message for ModelService.BatchImportEvaluatedAnnotations", - "id": "GoogleCloudAiplatformV1BatchImportEvaluatedAnnotationsRequest", + "GoogleApiHttpBody": { + "description": "Message that represents an arbitrary HTTP body. It should only be used for payload formats that can't be represented as JSON, such as raw binary or an HTML page. This message can be used both in streaming and non-streaming API methods in the request as well as the response. It can be used as a top-level request field, which is convenient if one wants to extract parameters from either the URL or HTTP template into the request fields and also want access to the raw HTTP body. Example: message GetResourceRequest { // A unique request id. string request_id = 1; // The raw HTTP body is bound to this field. google.api.HttpBody http_body = 2; } service ResourceService { rpc GetResource(GetResourceRequest) returns (google.api.HttpBody); rpc UpdateResource(google.api.HttpBody) returns (google.protobuf.Empty); } Example with streaming methods: service CaldavService { rpc GetCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); rpc UpdateCalendar(stream google.api.HttpBody) returns (stream google.api.HttpBody); } Use of this type only changes how the request and response bodies are handled, all other features will continue to work unchanged.", + "id": "GoogleApiHttpBody", "properties": { - "evaluatedAnnotations": { - "description": "Required. Evaluated annotations resource to be imported.", + "contentType": { + "description": "The HTTP Content-Type header value specifying the content type of the body.", + "type": "string" + }, + "data": { + "description": "The HTTP request/response body as raw binary.", + "format": "byte", + "type": "string" + }, + "extensions": { + "description": "Application specific response metadata. Must be set in the first response for streaming APIs.", "items": { - "$ref": "GoogleCloudAiplatformV1EvaluatedAnnotation" + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "type": "object" }, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1BatchImportEvaluatedAnnotationsResponse": { - "description": "Response message for ModelService.BatchImportEvaluatedAnnotations", - "id": "GoogleCloudAiplatformV1BatchImportEvaluatedAnnotationsResponse", + "GoogleCloudAiplatformV1ActiveLearningConfig": { + "description": "Parameters that configure the active learning pipeline. Active learning will label the data incrementally by several iterations. For every iteration, it will select a batch of data based on the sampling strategy.", + "id": "GoogleCloudAiplatformV1ActiveLearningConfig", "properties": { - "importedEvaluatedAnnotationsCount": { - "description": "Output only. Number of EvaluatedAnnotations imported.", + "maxDataItemCount": { + "description": "Max number of human labeled DataItems.", + "format": "int64", + "type": "string" + }, + "maxDataItemPercentage": { + "description": "Max percent of total DataItems for human labeling.", "format": "int32", - "readOnly": true, "type": "integer" + }, + "sampleConfig": { + "$ref": "GoogleCloudAiplatformV1SampleConfig", + "description": "Active learning data sampling config. For every active learning labeling iteration, it will select a batch of data based on the sampling strategy." + }, + "trainingConfig": { + "$ref": "GoogleCloudAiplatformV1TrainingConfig", + "description": "CMLE training config. For every active learning labeling iteration, system will train a machine learning model on CMLE. The trained model will be used by data sampling algorithm to select DataItems." } }, "type": "object" }, - "GoogleCloudAiplatformV1BatchImportModelEvaluationSlicesRequest": { - "description": "Request message for ModelService.BatchImportModelEvaluationSlices", - "id": "GoogleCloudAiplatformV1BatchImportModelEvaluationSlicesRequest", + "GoogleCloudAiplatformV1AddContextArtifactsAndExecutionsRequest": { + "description": "Request message for MetadataService.AddContextArtifactsAndExecutions.", + "id": "GoogleCloudAiplatformV1AddContextArtifactsAndExecutionsRequest", "properties": { - "modelEvaluationSlices": { - "description": "Required. Model evaluation slice resource to be imported.", + "artifacts": { + "description": "The resource names of the Artifacts to attribute to the Context. Format: `projects/{project}/locations/{location}/metadataStores/{metadatastore}/artifacts/{artifact}`", "items": { - "$ref": "GoogleCloudAiplatformV1ModelEvaluationSlice" + "type": "string" }, "type": "array" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1BatchImportModelEvaluationSlicesResponse": { - "description": "Response message for ModelService.BatchImportModelEvaluationSlices", - "id": "GoogleCloudAiplatformV1BatchImportModelEvaluationSlicesResponse", - "properties": { - "importedModelEvaluationSlices": { - "description": "Output only. List of imported ModelEvaluationSlice.name.", + }, + "executions": { + "description": "The resource names of the Executions to associate with the Context. Format: `projects/{project}/locations/{location}/metadataStores/{metadatastore}/executions/{execution}`", "items": { "type": "string" }, - "readOnly": true, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1BatchMigrateResourcesOperationMetadata": { - "description": "Runtime operation information for MigrationService.BatchMigrateResources.", - "id": "GoogleCloudAiplatformV1BatchMigrateResourcesOperationMetadata", + "GoogleCloudAiplatformV1AddContextArtifactsAndExecutionsResponse": { + "description": "Response message for MetadataService.AddContextArtifactsAndExecutions.", + "id": "GoogleCloudAiplatformV1AddContextArtifactsAndExecutionsResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudAiplatformV1AddContextChildrenRequest": { + "description": "Request message for MetadataService.AddContextChildren.", + "id": "GoogleCloudAiplatformV1AddContextChildrenRequest", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "The common part of the operation metadata." - }, - "partialResults": { - "description": "Partial results that reflect the latest migration operation progress.", + "childContexts": { + "description": "The resource names of the child Contexts.", "items": { - "$ref": "GoogleCloudAiplatformV1BatchMigrateResourcesOperationMetadataPartialResult" + "type": "string" }, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1BatchMigrateResourcesOperationMetadataPartialResult": { - "description": "Represents a partial result in batch migration operation for one MigrateResourceRequest.", - "id": "GoogleCloudAiplatformV1BatchMigrateResourcesOperationMetadataPartialResult", - "properties": { - "dataset": { - "description": "Migrated dataset resource name.", - "type": "string" - }, - "error": { - "$ref": "GoogleRpcStatus", - "description": "The error result of the migration request in case of failure." - }, - "model": { - "description": "Migrated model resource name.", - "type": "string" - }, - "request": { - "$ref": "GoogleCloudAiplatformV1MigrateResourceRequest", - "description": "It's the same as the value in MigrateResourceRequest.migrate_resource_requests." - } - }, + "GoogleCloudAiplatformV1AddContextChildrenResponse": { + "description": "Response message for MetadataService.AddContextChildren.", + "id": "GoogleCloudAiplatformV1AddContextChildrenResponse", + "properties": {}, "type": "object" }, - "GoogleCloudAiplatformV1BatchMigrateResourcesRequest": { - "description": "Request message for MigrationService.BatchMigrateResources.", - "id": "GoogleCloudAiplatformV1BatchMigrateResourcesRequest", + "GoogleCloudAiplatformV1AddExecutionEventsRequest": { + "description": "Request message for MetadataService.AddExecutionEvents.", + "id": "GoogleCloudAiplatformV1AddExecutionEventsRequest", "properties": { - "migrateResourceRequests": { - "description": "Required. The request messages specifying the resources to migrate. They must be in the same location as the destination. Up to 50 resources can be migrated in one batch.", + "events": { + "description": "The Events to create and add.", "items": { - "$ref": "GoogleCloudAiplatformV1MigrateResourceRequest" + "$ref": "GoogleCloudAiplatformV1Event" }, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1BatchMigrateResourcesResponse": { - "description": "Response message for MigrationService.BatchMigrateResources.", - "id": "GoogleCloudAiplatformV1BatchMigrateResourcesResponse", + "GoogleCloudAiplatformV1AddExecutionEventsResponse": { + "description": "Response message for MetadataService.AddExecutionEvents.", + "id": "GoogleCloudAiplatformV1AddExecutionEventsResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudAiplatformV1AddTrialMeasurementRequest": { + "description": "Request message for VizierService.AddTrialMeasurement.", + "id": "GoogleCloudAiplatformV1AddTrialMeasurementRequest", "properties": { - "migrateResourceResponses": { - "description": "Successfully migrated resources.", - "items": { - "$ref": "GoogleCloudAiplatformV1MigrateResourceResponse" - }, - "type": "array" + "measurement": { + "$ref": "GoogleCloudAiplatformV1Measurement", + "description": "Required. The measurement to be added to a Trial." } }, "type": "object" }, - "GoogleCloudAiplatformV1BatchPredictionJob": { - "description": "A job that uses a Model to produce predictions on multiple input instances. If predictions for significant portion of the instances fail, the job may finish without attempting predictions for all remaining instances.", - "id": "GoogleCloudAiplatformV1BatchPredictionJob", + "GoogleCloudAiplatformV1Annotation": { + "description": "Used to assign specific AnnotationSpec to a particular area of a DataItem or the whole part of the DataItem.", + "id": "GoogleCloudAiplatformV1Annotation", "properties": { - "completionStats": { - "$ref": "GoogleCloudAiplatformV1CompletionStats", - "description": "Output only. Statistics on completed and failed prediction instances.", + "annotationSource": { + "$ref": "GoogleCloudAiplatformV1UserActionReference", + "description": "Output only. The source of the Annotation.", "readOnly": true }, "createTime": { - "description": "Output only. Time when the BatchPredictionJob was created.", + "description": "Output only. Timestamp when this Annotation was created.", "format": "google-datetime", "readOnly": true, "type": "string" }, - "dedicatedResources": { - "$ref": "GoogleCloudAiplatformV1BatchDedicatedResources", - "description": "The config of resources used by the Model during the batch prediction. If the Model supports DEDICATED_RESOURCES this config may be provided (and the job will use these resources), if the Model doesn't support AUTOMATIC_RESOURCES, this config must be provided." + "etag": { + "description": "Optional. Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "type": "string" }, - "disableContainerLogging": { - "description": "For custom-trained Models and AutoML Tabular Models, the container of the DeployedModel instances will send `stderr` and `stdout` streams to Cloud Logging by default. Please note that the logs incur cost, which are subject to [Cloud Logging pricing](https://cloud.google.com/logging/pricing). User can disable container logging by setting this flag to true.", - "type": "boolean" + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. The labels with user-defined metadata to organize your Annotations. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. No more than 64 user labels can be associated with one Annotation(System labels are excluded). See https://goo.gl/xmQnxf for more information and examples of labels. System reserved label keys are prefixed with \"aiplatform.googleapis.com/\" and are immutable. Following system labels exist for each Annotation: * \"aiplatform.googleapis.com/annotation_set_name\": optional, name of the UI's annotation set this Annotation belongs to. If not set, the Annotation is not visible in the UI. * \"aiplatform.googleapis.com/payload_schema\": output only, its value is the payload_schema's title.", + "type": "object" }, - "displayName": { - "description": "Required. The user-defined name of this BatchPredictionJob.", + "name": { + "description": "Output only. Resource name of the Annotation.", + "readOnly": true, "type": "string" }, - "encryptionSpec": { - "$ref": "GoogleCloudAiplatformV1EncryptionSpec", - "description": "Customer-managed encryption key options for a BatchPredictionJob. If this is set, then all resources created by the BatchPredictionJob will be encrypted with the provided encryption key." + "payload": { + "description": "Required. The schema of the payload can be found in payload_schema.", + "type": "any" }, - "endTime": { - "description": "Output only. Time when the BatchPredictionJob entered any of the following states: `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED`, `JOB_STATE_CANCELLED`.", + "payloadSchemaUri": { + "description": "Required. Google Cloud Storage URI points to a YAML file describing payload. The schema is defined as an [OpenAPI 3.0.2 Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). The schema files that can be used here are found in gs://google-cloud-aiplatform/schema/dataset/annotation/, note that the chosen schema must be consistent with the parent Dataset's metadata.", + "type": "string" + }, + "updateTime": { + "description": "Output only. Timestamp when this Annotation was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1AnnotationSpec": { + "description": "Identifies a concept with which DataItems may be annotated with.", + "id": "GoogleCloudAiplatformV1AnnotationSpec", + "properties": { + "createTime": { + "description": "Output only. Timestamp when this AnnotationSpec was created.", "format": "google-datetime", "readOnly": true, "type": "string" }, - "error": { - "$ref": "GoogleRpcStatus", - "description": "Output only. Only populated when the job's state is JOB_STATE_FAILED or JOB_STATE_CANCELLED.", - "readOnly": true + "displayName": { + "description": "Required. The user-defined name of the AnnotationSpec. The name can be up to 128 characters long and can consist of any UTF-8 characters.", + "type": "string" }, - "explanationSpec": { - "$ref": "GoogleCloudAiplatformV1ExplanationSpec", - "description": "Explanation configuration for this BatchPredictionJob. Can be specified only if generate_explanation is set to `true`. This value overrides the value of Model.explanation_spec. All fields of explanation_spec are optional in the request. If a field of the explanation_spec object is not populated, the corresponding field of the Model.explanation_spec object is inherited." + "etag": { + "description": "Optional. Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "type": "string" }, - "generateExplanation": { - "description": "Generate explanation with the batch prediction results. When set to `true`, the batch prediction output changes based on the `predictions_format` field of the BatchPredictionJob.output_config object: * `bigquery`: output includes a column named `explanation`. The value is a struct that conforms to the Explanation object. * `jsonl`: The JSON objects on each line include an additional entry keyed `explanation`. The value of the entry is a JSON object that conforms to the Explanation object. * `csv`: Generating explanations for CSV format is not supported. If this field is set to true, either the Model.explanation_spec or explanation_spec must be populated.", - "type": "boolean" + "name": { + "description": "Output only. Resource name of the AnnotationSpec.", + "readOnly": true, + "type": "string" }, - "inputConfig": { - "$ref": "GoogleCloudAiplatformV1BatchPredictionJobInputConfig", - "description": "Required. Input configuration of the instances on which predictions are performed. The schema of any single instance may be specified via the Model's PredictSchemata's instance_schema_uri." + "updateTime": { + "description": "Output only. Timestamp when AnnotationSpec was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1Artifact": { + "description": "Instance of a general artifact.", + "id": "GoogleCloudAiplatformV1Artifact", + "properties": { + "createTime": { + "description": "Output only. Timestamp when this Artifact was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" }, - "instanceConfig": { - "$ref": "GoogleCloudAiplatformV1BatchPredictionJobInstanceConfig", - "description": "Configuration for how to convert batch prediction input instances to the prediction instances that are sent to the Model." + "description": { + "description": "Description of the Artifact", + "type": "string" + }, + "displayName": { + "description": "User provided display name of the Artifact. May be up to 128 Unicode characters.", + "type": "string" + }, + "etag": { + "description": "An eTag used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "type": "string" }, "labels": { "additionalProperties": { "type": "string" }, - "description": "The labels with user-defined metadata to organize BatchPredictionJobs. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels.", + "description": "The labels with user-defined metadata to organize your Artifacts. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. No more than 64 user labels can be associated with one Artifact (System labels are excluded).", "type": "object" }, - "manualBatchTuningParameters": { - "$ref": "GoogleCloudAiplatformV1ManualBatchTuningParameters", - "description": "Immutable. Parameters configuring the batch behavior. Currently only applicable when dedicated_resources are used (in other cases Vertex AI does the tuning itself)." - }, - "model": { - "description": "The name of the Model resource that produces the predictions via this job, must share the same ancestor Location. Starting this job has no impact on any existing deployments of the Model and their resources. Exactly one of model and unmanaged_container_model must be set. The model resource name may contain version id or version alias to specify the version. Example: `projects/{project}/locations/{location}/models/{model}@2` or `projects/{project}/locations/{location}/models/{model}@golden` if no version is specified, the default version will be deployed. The model resource could also be a publisher model. Example: `publishers/{publisher}/models/{model}` or `projects/{project}/locations/{location}/publishers/{publisher}/models/{model}`", - "type": "string" - }, - "modelParameters": { - "description": "The parameters that govern the predictions. The schema of the parameters may be specified via the Model's PredictSchemata's parameters_schema_uri.", - "type": "any" - }, - "modelVersionId": { - "description": "Output only. The version ID of the Model that produces the predictions via this job.", - "readOnly": true, - "type": "string" + "metadata": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Properties of the Artifact. Top level metadata keys' heading and trailing spaces will be trimmed. The size of this field should not exceed 200KB.", + "type": "object" }, "name": { - "description": "Output only. Resource name of the BatchPredictionJob.", + "description": "Output only. The resource name of the Artifact.", "readOnly": true, "type": "string" }, - "outputConfig": { - "$ref": "GoogleCloudAiplatformV1BatchPredictionJobOutputConfig", - "description": "Required. The Configuration specifying where output predictions should be written. The schema of any single prediction may be specified as a concatenation of Model's PredictSchemata's instance_schema_uri and prediction_schema_uri." - }, - "outputInfo": { - "$ref": "GoogleCloudAiplatformV1BatchPredictionJobOutputInfo", - "description": "Output only. Information further describing the output of this job.", - "readOnly": true - }, - "partialFailures": { - "description": "Output only. Partial failures encountered. For example, single files that can't be read. This field never exceeds 20 entries. Status details fields contain standard Google Cloud error details.", - "items": { - "$ref": "GoogleRpcStatus" - }, - "readOnly": true, - "type": "array" - }, - "resourcesConsumed": { - "$ref": "GoogleCloudAiplatformV1ResourcesConsumed", - "description": "Output only. Information about resources that had been consumed by this job. Provided in real time at best effort basis, as well as a final value once the job completes. Note: This field currently may be not populated for batch predictions that use AutoML Models.", - "readOnly": true - }, - "serviceAccount": { - "description": "The service account that the DeployedModel's container runs as. If not specified, a system generated one will be used, which has minimal permissions and the custom container, if used, may not have enough permission to access other Google Cloud resources. Users deploying the Model must have the `iam.serviceAccounts.actAs` permission on this service account.", + "schemaTitle": { + "description": "The title of the schema describing the metadata. Schema title and version is expected to be registered in earlier Create Schema calls. And both are used together as unique identifiers to identify schemas within the local metadata store.", "type": "string" }, - "startTime": { - "description": "Output only. Time when the BatchPredictionJob for the first time entered the `JOB_STATE_RUNNING` state.", - "format": "google-datetime", - "readOnly": true, + "schemaVersion": { + "description": "The version of the schema in schema_name to use. Schema title and version is expected to be registered in earlier Create Schema calls. And both are used together as unique identifiers to identify schemas within the local metadata store.", "type": "string" }, "state": { - "description": "Output only. The detailed state of the job.", + "description": "The state of this Artifact. This is a property of the Artifact, and does not imply or capture any ongoing process. This property is managed by clients (such as Vertex AI Pipelines), and the system does not prescribe or check the validity of state transitions.", "enum": [ - "JOB_STATE_UNSPECIFIED", - "JOB_STATE_QUEUED", - "JOB_STATE_PENDING", - "JOB_STATE_RUNNING", - "JOB_STATE_SUCCEEDED", - "JOB_STATE_FAILED", - "JOB_STATE_CANCELLING", - "JOB_STATE_CANCELLED", - "JOB_STATE_PAUSED", - "JOB_STATE_EXPIRED", - "JOB_STATE_UPDATING", - "JOB_STATE_PARTIALLY_SUCCEEDED" + "STATE_UNSPECIFIED", + "PENDING", + "LIVE" ], "enumDescriptions": [ - "The job state is unspecified.", - "The job has been just created or resumed and processing has not yet begun.", - "The service is preparing to run the job.", - "The job is in progress.", - "The job completed successfully.", - "The job failed.", - "The job is being cancelled. From this state the job may only go to either `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED` or `JOB_STATE_CANCELLED`.", - "The job has been cancelled.", - "The job has been stopped, and can be resumed.", - "The job has expired.", - "The job is being updated. Only jobs in the `RUNNING` state can be updated. After updating, the job goes back to the `RUNNING` state.", - "The job is partially succeeded, some results may be missing due to errors." + "Unspecified state for the Artifact.", + "A state used by systems like Vertex AI Pipelines to indicate that the underlying data item represented by this Artifact is being created.", + "A state indicating that the Artifact should exist, unless something external to the system deletes it." ], - "readOnly": true, "type": "string" }, - "unmanagedContainerModel": { - "$ref": "GoogleCloudAiplatformV1UnmanagedContainerModel", - "description": "Contains model information necessary to perform batch prediction without requiring uploading to model registry. Exactly one of model and unmanaged_container_model must be set." - }, "updateTime": { - "description": "Output only. Time when the BatchPredictionJob was most recently updated.", + "description": "Output only. Timestamp when this Artifact was last updated.", "format": "google-datetime", "readOnly": true, "type": "string" + }, + "uri": { + "description": "The uniform resource identifier of the artifact file. May be empty if there is no actual artifact file.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1BatchPredictionJobInputConfig": { - "description": "Configures the input to BatchPredictionJob. See Model.supported_input_storage_formats for Model's supported input formats, and how instances should be expressed via any of them.", - "id": "GoogleCloudAiplatformV1BatchPredictionJobInputConfig", + "GoogleCloudAiplatformV1AssignNotebookRuntimeOperationMetadata": { + "description": "Metadata information for NotebookService.AssignNotebookRuntime.", + "id": "GoogleCloudAiplatformV1AssignNotebookRuntimeOperationMetadata", "properties": { - "bigquerySource": { - "$ref": "GoogleCloudAiplatformV1BigQuerySource", - "description": "The BigQuery location of the input table. The schema of the table should be in the format described by the given context OpenAPI Schema, if one is provided. The table may contain additional columns that are not described by the schema, and they will be ignored." - }, - "gcsSource": { - "$ref": "GoogleCloudAiplatformV1GcsSource", - "description": "The Cloud Storage location for the input instances." + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "The operation generic information." }, - "instancesFormat": { - "description": "Required. The format in which instances are given, must be one of the Model's supported_input_storage_formats.", + "progressMessage": { + "description": "A human-readable message that shows the intermediate progress details of NotebookRuntime.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1BatchPredictionJobInstanceConfig": { - "description": "Configuration defining how to transform batch prediction input instances to the instances that the Model accepts.", - "id": "GoogleCloudAiplatformV1BatchPredictionJobInstanceConfig", + "GoogleCloudAiplatformV1AssignNotebookRuntimeRequest": { + "description": "Request message for NotebookService.AssignNotebookRuntime.", + "id": "GoogleCloudAiplatformV1AssignNotebookRuntimeRequest", "properties": { - "excludedFields": { - "description": "Fields that will be excluded in the prediction instance that is sent to the Model. Excluded will be attached to the batch prediction output if key_field is not specified. When excluded_fields is populated, included_fields must be empty. The input must be JSONL with objects at each line, CSV, BigQuery or TfRecord.", - "items": { - "type": "string" - }, - "type": "array" - }, - "includedFields": { - "description": "Fields that will be included in the prediction instance that is sent to the Model. If instance_type is `array`, the order of field names in included_fields also determines the order of the values in the array. When included_fields is populated, excluded_fields must be empty. The input must be JSONL with objects at each line, CSV, BigQuery or TfRecord.", - "items": { - "type": "string" - }, - "type": "array" + "notebookRuntime": { + "$ref": "GoogleCloudAiplatformV1NotebookRuntime", + "description": "Required. Provide runtime specific information (e.g. runtime owner, notebook id) used for NotebookRuntime assignment." }, - "instanceType": { - "description": "The format of the instance that the Model accepts. Vertex AI will convert compatible batch prediction input instance formats to the specified format. Supported values are: * `object`: Each input is converted to JSON object format. * For `bigquery`, each row is converted to an object. * For `jsonl`, each line of the JSONL input must be an object. * Does not apply to `csv`, `file-list`, `tf-record`, or `tf-record-gzip`. * `array`: Each input is converted to JSON array format. * For `bigquery`, each row is converted to an array. The order of columns is determined by the BigQuery column order, unless included_fields is populated. included_fields must be populated for specifying field orders. * For `jsonl`, if each line of the JSONL input is an object, included_fields must be populated for specifying field orders. * Does not apply to `csv`, `file-list`, `tf-record`, or `tf-record-gzip`. If not specified, Vertex AI converts the batch prediction input as follows: * For `bigquery` and `csv`, the behavior is the same as `array`. The order of columns is the same as defined in the file or table, unless included_fields is populated. * For `jsonl`, the prediction instance format is determined by each line of the input. * For `tf-record`/`tf-record-gzip`, each record will be converted to an object in the format of `{\"b64\": }`, where `` is the Base64-encoded string of the content of the record. * For `file-list`, each file in the list will be converted to an object in the format of `{\"b64\": }`, where `` is the Base64-encoded string of the content of the file.", + "notebookRuntimeId": { + "description": "Optional. User specified ID for the notebook runtime.", "type": "string" }, - "keyField": { - "description": "The name of the field that is considered as a key. The values identified by the key field is not included in the transformed instances that is sent to the Model. This is similar to specifying this name of the field in excluded_fields. In addition, the batch prediction output will not include the instances. Instead the output will only include the value of the key field, in a field named `key` in the output: * For `jsonl` output format, the output will have a `key` field instead of the `instance` field. * For `csv`/`bigquery` output format, the output will have have a `key` column instead of the instance feature columns. The input must be JSONL with objects at each line, CSV, BigQuery or TfRecord.", + "notebookRuntimeTemplate": { + "description": "Required. The resource name of the NotebookRuntimeTemplate based on which a NotebookRuntime will be assigned (reuse or create a new one).", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1BatchPredictionJobOutputConfig": { - "description": "Configures the output of BatchPredictionJob. See Model.supported_output_storage_formats for supported output formats, and how predictions are expressed via any of them.", - "id": "GoogleCloudAiplatformV1BatchPredictionJobOutputConfig", + "GoogleCloudAiplatformV1Attribution": { + "description": "Attribution that explains a particular prediction output.", + "id": "GoogleCloudAiplatformV1Attribution", "properties": { - "bigqueryDestination": { - "$ref": "GoogleCloudAiplatformV1BigQueryDestination", - "description": "The BigQuery project or dataset location where the output is to be written to. If project is provided, a new dataset is created with name `prediction__` where is made BigQuery-dataset-name compatible (for example, most special characters become underscores), and timestamp is in YYYY_MM_DDThh_mm_ss_sssZ \"based on ISO-8601\" format. In the dataset two tables will be created, `predictions`, and `errors`. If the Model has both instance and prediction schemata defined then the tables have columns as follows: The `predictions` table contains instances for which the prediction succeeded, it has columns as per a concatenation of the Model's instance and prediction schemata. The `errors` table contains rows for which the prediction has failed, it has instance columns, as per the instance schema, followed by a single \"errors\" column, which as values has google.rpc.Status represented as a STRUCT, and containing only `code` and `message`." + "approximationError": { + "description": "Output only. Error of feature_attributions caused by approximation used in the explanation method. Lower value means more precise attributions. * For Sampled Shapley attribution, increasing path_count might reduce the error. * For Integrated Gradients attribution, increasing step_count might reduce the error. * For XRAI attribution, increasing step_count might reduce the error. See [this introduction](/vertex-ai/docs/explainable-ai/overview) for more information.", + "format": "double", + "readOnly": true, + "type": "number" }, - "gcsDestination": { - "$ref": "GoogleCloudAiplatformV1GcsDestination", - "description": "The Cloud Storage location of the directory where the output is to be written to. In the given directory a new directory is created. Its name is `prediction--`, where timestamp is in YYYY-MM-DDThh:mm:ss.sssZ ISO-8601 format. Inside of it files `predictions_0001.`, `predictions_0002.`, ..., `predictions_N.` are created where `` depends on chosen predictions_format, and N may equal 0001 and depends on the total number of successfully predicted instances. If the Model has both instance and prediction schemata defined then each such file contains predictions as per the predictions_format. If prediction for any instance failed (partially or completely), then an additional `errors_0001.`, `errors_0002.`,..., `errors_N.` files are created (N depends on total number of failed predictions). These files contain the failed instances, as per their schema, followed by an additional `error` field which as value has google.rpc.Status containing only `code` and `message` fields." + "baselineOutputValue": { + "description": "Output only. Model predicted output if the input instance is constructed from the baselines of all the features defined in ExplanationMetadata.inputs. The field name of the output is determined by the key in ExplanationMetadata.outputs. If the Model's predicted output has multiple dimensions (rank > 1), this is the value in the output located by output_index. If there are multiple baselines, their output values are averaged.", + "format": "double", + "readOnly": true, + "type": "number" }, - "predictionsFormat": { - "description": "Required. The format in which Vertex AI gives the predictions, must be one of the Model's supported_output_storage_formats.", + "featureAttributions": { + "description": "Output only. Attributions of each explained feature. Features are extracted from the prediction instances according to explanation metadata for inputs. The value is a struct, whose keys are the name of the feature. The values are how much the feature in the instance contributed to the predicted result. The format of the value is determined by the feature's input format: * If the feature is a scalar value, the attribution value is a floating number. * If the feature is an array of scalar values, the attribution value is an array. * If the feature is a struct, the attribution value is a struct. The keys in the attribution value struct are the same as the keys in the feature struct. The formats of the values in the attribution struct are determined by the formats of the values in the feature struct. The ExplanationMetadata.feature_attributions_schema_uri field, pointed to by the ExplanationSpec field of the Endpoint.deployed_models object, points to the schema file that describes the features and their attribution values (if it is populated).", + "readOnly": true, + "type": "any" + }, + "instanceOutputValue": { + "description": "Output only. Model predicted output on the corresponding explanation instance. The field name of the output is determined by the key in ExplanationMetadata.outputs. If the Model predicted output has multiple dimensions, this is the value in the output located by output_index.", + "format": "double", + "readOnly": true, + "type": "number" + }, + "outputDisplayName": { + "description": "Output only. The display name of the output identified by output_index. For example, the predicted class name by a multi-classification Model. This field is only populated iff the Model predicts display names as a separate field along with the explained output. The predicted display name must has the same shape of the explained output, and can be located using output_index.", + "readOnly": true, + "type": "string" + }, + "outputIndex": { + "description": "Output only. The index that locates the explained prediction output. If the prediction output is a scalar value, output_index is not populated. If the prediction output has multiple dimensions, the length of the output_index list is the same as the number of dimensions of the output. The i-th element in output_index is the element index of the i-th dimension of the output vector. Indices start from 0.", + "items": { + "format": "int32", + "type": "integer" + }, + "readOnly": true, + "type": "array" + }, + "outputName": { + "description": "Output only. Name of the explain output. Specified as the key in ExplanationMetadata.outputs.", + "readOnly": true, "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1BatchPredictionJobOutputInfo": { - "description": "Further describes this job's output. Supplements output_config.", - "id": "GoogleCloudAiplatformV1BatchPredictionJobOutputInfo", + "GoogleCloudAiplatformV1AutomaticResources": { + "description": "A description of resources that to large degree are decided by Vertex AI, and require only a modest additional configuration. Each Model supporting these resources documents its specific guidelines.", + "id": "GoogleCloudAiplatformV1AutomaticResources", "properties": { - "bigqueryOutputDataset": { - "description": "Output only. The path of the BigQuery dataset created, in `bq://projectId.bqDatasetId` format, into which the prediction output is written.", - "readOnly": true, - "type": "string" + "maxReplicaCount": { + "description": "Immutable. The maximum number of replicas this DeployedModel may be deployed on when the traffic against it increases. If the requested value is too large, the deployment will error, but if deployment succeeds then the ability to scale the model to that many replicas is guaranteed (barring service outages). If traffic against the DeployedModel increases beyond what its replicas at maximum may handle, a portion of the traffic will be dropped. If this value is not provided, a no upper bound for scaling under heavy traffic will be assume, though Vertex AI may be unable to scale beyond certain replica number.", + "format": "int32", + "type": "integer" }, - "bigqueryOutputTable": { - "description": "Output only. The name of the BigQuery table created, in `predictions_` format, into which the prediction output is written. Can be used by UI to generate the BigQuery output path, for example.", - "readOnly": true, + "minReplicaCount": { + "description": "Immutable. The minimum number of replicas this DeployedModel will be always deployed on. If traffic against it increases, it may dynamically be deployed onto more replicas up to max_replica_count, and as traffic decreases, some of these extra replicas may be freed. If the requested value is too large, the deployment will error.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1AutoscalingMetricSpec": { + "description": "The metric specification that defines the target resource utilization (CPU utilization, accelerator's duty cycle, and so on) for calculating the desired replica count.", + "id": "GoogleCloudAiplatformV1AutoscalingMetricSpec", + "properties": { + "metricName": { + "description": "Required. The resource metric name. Supported metrics: * For Online Prediction: * `aiplatform.googleapis.com/prediction/online/accelerator/duty_cycle` * `aiplatform.googleapis.com/prediction/online/cpu/utilization`", "type": "string" }, - "gcsOutputDirectory": { - "description": "Output only. The full path of the Cloud Storage directory created, into which the prediction output is written.", - "readOnly": true, - "type": "string" + "target": { + "description": "The target resource utilization in percentage (1% - 100%) for the given metric; once the real usage deviates from the target by a certain percentage, the machine replicas change. The default value is 60 (representing 60%) if not provided.", + "format": "int32", + "type": "integer" } }, "type": "object" }, - "GoogleCloudAiplatformV1BatchReadFeatureValuesOperationMetadata": { - "description": "Details of operations that batch reads Feature values.", - "id": "GoogleCloudAiplatformV1BatchReadFeatureValuesOperationMetadata", + "GoogleCloudAiplatformV1AvroSource": { + "description": "The storage details for Avro input content.", + "id": "GoogleCloudAiplatformV1AvroSource", + "properties": { + "gcsSource": { + "$ref": "GoogleCloudAiplatformV1GcsSource", + "description": "Required. Google Cloud Storage location." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1BatchCreateFeaturesOperationMetadata": { + "description": "Details of operations that perform batch create Features.", + "id": "GoogleCloudAiplatformV1BatchCreateFeaturesOperationMetadata", "properties": { "genericMetadata": { "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "Operation metadata for Featurestore batch read Features values." + "description": "Operation metadata for Feature." } }, "type": "object" }, - "GoogleCloudAiplatformV1BatchReadFeatureValuesRequest": { - "description": "Request message for FeaturestoreService.BatchReadFeatureValues.", - "id": "GoogleCloudAiplatformV1BatchReadFeatureValuesRequest", + "GoogleCloudAiplatformV1BatchCreateFeaturesRequest": { + "description": "Request message for FeaturestoreService.BatchCreateFeatures.", + "id": "GoogleCloudAiplatformV1BatchCreateFeaturesRequest", "properties": { - "bigqueryReadInstances": { - "$ref": "GoogleCloudAiplatformV1BigQuerySource", - "description": "Similar to csv_read_instances, but from BigQuery source." - }, - "csvReadInstances": { - "$ref": "GoogleCloudAiplatformV1CsvSource", - "description": "Each read instance consists of exactly one read timestamp and one or more entity IDs identifying entities of the corresponding EntityTypes whose Features are requested. Each output instance contains Feature values of requested entities concatenated together as of the read time. An example read instance may be `foo_entity_id, bar_entity_id, 2020-01-01T10:00:00.123Z`. An example output instance may be `foo_entity_id, bar_entity_id, 2020-01-01T10:00:00.123Z, foo_entity_feature1_value, bar_entity_feature2_value`. Timestamp in each read instance must be millisecond-aligned. `csv_read_instances` are read instances stored in a plain-text CSV file. The header should be: [ENTITY_TYPE_ID1], [ENTITY_TYPE_ID2], ..., timestamp The columns can be in any order. Values in the timestamp column must use the RFC 3339 format, e.g. `2012-07-30T10:43:17.123Z`." - }, - "destination": { - "$ref": "GoogleCloudAiplatformV1FeatureValueDestination", - "description": "Required. Specifies output location and format." - }, - "entityTypeSpecs": { - "description": "Required. Specifies EntityType grouping Features to read values of and settings.", - "items": { - "$ref": "GoogleCloudAiplatformV1BatchReadFeatureValuesRequestEntityTypeSpec" - }, - "type": "array" - }, - "passThroughFields": { - "description": "When not empty, the specified fields in the *_read_instances source will be joined as-is in the output, in addition to those fields from the Featurestore Entity. For BigQuery source, the type of the pass-through values will be automatically inferred. For CSV source, the pass-through values will be passed as opaque bytes.", + "requests": { + "description": "Required. The request message specifying the Features to create. All Features must be created under the same parent EntityType. The `parent` field in each child request message can be omitted. If `parent` is set in a child request, then the value must match the `parent` value in this request message.", "items": { - "$ref": "GoogleCloudAiplatformV1BatchReadFeatureValuesRequestPassThroughField" + "$ref": "GoogleCloudAiplatformV1CreateFeatureRequest" }, "type": "array" - }, - "startTime": { - "description": "Optional. Excludes Feature values with feature generation timestamp before this timestamp. If not set, retrieve oldest values kept in Feature Store. Timestamp, if present, must not have higher than millisecond precision.", - "format": "google-datetime", - "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1BatchReadFeatureValuesRequestEntityTypeSpec": { - "description": "Selects Features of an EntityType to read values of and specifies read settings.", - "id": "GoogleCloudAiplatformV1BatchReadFeatureValuesRequestEntityTypeSpec", + "GoogleCloudAiplatformV1BatchCreateFeaturesResponse": { + "description": "Response message for FeaturestoreService.BatchCreateFeatures.", + "id": "GoogleCloudAiplatformV1BatchCreateFeaturesResponse", "properties": { - "entityTypeId": { - "description": "Required. ID of the EntityType to select Features. The EntityType id is the entity_type_id specified during EntityType creation.", - "type": "string" - }, - "featureSelector": { - "$ref": "GoogleCloudAiplatformV1FeatureSelector", - "description": "Required. Selectors choosing which Feature values to read from the EntityType." - }, - "settings": { - "description": "Per-Feature settings for the batch read.", + "features": { + "description": "The Features created.", "items": { - "$ref": "GoogleCloudAiplatformV1DestinationFeatureSetting" + "$ref": "GoogleCloudAiplatformV1Feature" }, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1BatchReadFeatureValuesRequestPassThroughField": { - "description": "Describe pass-through fields in read_instance source.", - "id": "GoogleCloudAiplatformV1BatchReadFeatureValuesRequestPassThroughField", - "properties": { - "fieldName": { - "description": "Required. The name of the field in the CSV header or the name of the column in BigQuery table. The naming restriction is the same as Feature.name.", - "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1BatchReadFeatureValuesResponse": { - "description": "Response message for FeaturestoreService.BatchReadFeatureValues.", - "id": "GoogleCloudAiplatformV1BatchReadFeatureValuesResponse", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1BatchReadTensorboardTimeSeriesDataResponse": { - "description": "Response message for TensorboardService.BatchReadTensorboardTimeSeriesData.", - "id": "GoogleCloudAiplatformV1BatchReadTensorboardTimeSeriesDataResponse", + "GoogleCloudAiplatformV1BatchCreateTensorboardRunsRequest": { + "description": "Request message for TensorboardService.BatchCreateTensorboardRuns.", + "id": "GoogleCloudAiplatformV1BatchCreateTensorboardRunsRequest", "properties": { - "timeSeriesData": { - "description": "The returned time series data.", + "requests": { + "description": "Required. The request message specifying the TensorboardRuns to create. A maximum of 1000 TensorboardRuns can be created in a batch.", "items": { - "$ref": "GoogleCloudAiplatformV1TimeSeriesData" + "$ref": "GoogleCloudAiplatformV1CreateTensorboardRunRequest" }, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1BigQueryDestination": { - "description": "The BigQuery location for the output content.", - "id": "GoogleCloudAiplatformV1BigQueryDestination", - "properties": { - "outputUri": { - "description": "Required. BigQuery URI to a project or table, up to 2000 characters long. When only the project is specified, the Dataset and Table is created. When the full table reference is specified, the Dataset must exist and table must not exist. Accepted forms: * BigQuery path. For example: `bq://projectId` or `bq://projectId.bqDatasetId` or `bq://projectId.bqDatasetId.bqTableId`.", - "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1BigQuerySource": { - "description": "The BigQuery location for the input content.", - "id": "GoogleCloudAiplatformV1BigQuerySource", + "GoogleCloudAiplatformV1BatchCreateTensorboardRunsResponse": { + "description": "Response message for TensorboardService.BatchCreateTensorboardRuns.", + "id": "GoogleCloudAiplatformV1BatchCreateTensorboardRunsResponse", "properties": { - "inputUri": { - "description": "Required. BigQuery URI to a table, up to 2000 characters long. Accepted forms: * BigQuery path. For example: `bq://projectId.bqDatasetId.bqTableId`.", - "type": "string" + "tensorboardRuns": { + "description": "The created TensorboardRuns.", + "items": { + "$ref": "GoogleCloudAiplatformV1TensorboardRun" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1BlurBaselineConfig": { - "description": "Config for blur baseline. When enabled, a linear path from the maximally blurred image to the input image is created. Using a blurred baseline instead of zero (black image) is motivated by the BlurIG approach explained here: https://arxiv.org/abs/2004.03383", - "id": "GoogleCloudAiplatformV1BlurBaselineConfig", + "GoogleCloudAiplatformV1BatchCreateTensorboardTimeSeriesRequest": { + "description": "Request message for TensorboardService.BatchCreateTensorboardTimeSeries.", + "id": "GoogleCloudAiplatformV1BatchCreateTensorboardTimeSeriesRequest", "properties": { - "maxBlurSigma": { - "description": "The standard deviation of the blur kernel for the blurred baseline. The same blurring parameter is used for both the height and the width dimension. If not set, the method defaults to the zero (i.e. black for images) baseline.", - "format": "float", - "type": "number" + "requests": { + "description": "Required. The request message specifying the TensorboardTimeSeries to create. A maximum of 1000 TensorboardTimeSeries can be created in a batch.", + "items": { + "$ref": "GoogleCloudAiplatformV1CreateTensorboardTimeSeriesRequest" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1BoolArray": { - "description": "A list of boolean values.", - "id": "GoogleCloudAiplatformV1BoolArray", + "GoogleCloudAiplatformV1BatchCreateTensorboardTimeSeriesResponse": { + "description": "Response message for TensorboardService.BatchCreateTensorboardTimeSeries.", + "id": "GoogleCloudAiplatformV1BatchCreateTensorboardTimeSeriesResponse", "properties": { - "values": { - "description": "A list of bool values.", + "tensorboardTimeSeries": { + "description": "The created TensorboardTimeSeries.", "items": { - "type": "boolean" + "$ref": "GoogleCloudAiplatformV1TensorboardTimeSeries" }, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1CancelBatchPredictionJobRequest": { - "description": "Request message for JobService.CancelBatchPredictionJob.", - "id": "GoogleCloudAiplatformV1CancelBatchPredictionJobRequest", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1CancelCustomJobRequest": { - "description": "Request message for JobService.CancelCustomJob.", - "id": "GoogleCloudAiplatformV1CancelCustomJobRequest", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1CancelDataLabelingJobRequest": { - "description": "Request message for JobService.CancelDataLabelingJob.", - "id": "GoogleCloudAiplatformV1CancelDataLabelingJobRequest", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1CancelHyperparameterTuningJobRequest": { - "description": "Request message for JobService.CancelHyperparameterTuningJob.", - "id": "GoogleCloudAiplatformV1CancelHyperparameterTuningJobRequest", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1CancelNasJobRequest": { - "description": "Request message for JobService.CancelNasJob.", - "id": "GoogleCloudAiplatformV1CancelNasJobRequest", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1CancelPipelineJobRequest": { - "description": "Request message for PipelineService.CancelPipelineJob.", - "id": "GoogleCloudAiplatformV1CancelPipelineJobRequest", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1CancelTrainingPipelineRequest": { - "description": "Request message for PipelineService.CancelTrainingPipeline.", - "id": "GoogleCloudAiplatformV1CancelTrainingPipelineRequest", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1CheckTrialEarlyStoppingStateMetatdata": { - "description": "This message will be placed in the metadata field of a google.longrunning.Operation associated with a CheckTrialEarlyStoppingState request.", - "id": "GoogleCloudAiplatformV1CheckTrialEarlyStoppingStateMetatdata", + "GoogleCloudAiplatformV1BatchDedicatedResources": { + "description": "A description of resources that are used for performing batch operations, are dedicated to a Model, and need manual configuration.", + "id": "GoogleCloudAiplatformV1BatchDedicatedResources", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "Operation metadata for suggesting Trials." + "machineSpec": { + "$ref": "GoogleCloudAiplatformV1MachineSpec", + "description": "Required. Immutable. The specification of a single machine." }, - "study": { - "description": "The name of the Study that the Trial belongs to.", - "type": "string" + "maxReplicaCount": { + "description": "Immutable. The maximum number of machine replicas the batch operation may be scaled to. The default value is 10.", + "format": "int32", + "type": "integer" }, - "trial": { - "description": "The Trial name.", - "type": "string" + "startingReplicaCount": { + "description": "Immutable. The number of machine replicas used at the start of the batch operation. If not set, Vertex AI decides starting number, not greater than max_replica_count", + "format": "int32", + "type": "integer" } }, "type": "object" }, - "GoogleCloudAiplatformV1CheckTrialEarlyStoppingStateRequest": { - "description": "Request message for VizierService.CheckTrialEarlyStoppingState.", - "id": "GoogleCloudAiplatformV1CheckTrialEarlyStoppingStateRequest", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1CheckTrialEarlyStoppingStateResponse": { - "description": "Response message for VizierService.CheckTrialEarlyStoppingState.", - "id": "GoogleCloudAiplatformV1CheckTrialEarlyStoppingStateResponse", + "GoogleCloudAiplatformV1BatchImportEvaluatedAnnotationsRequest": { + "description": "Request message for ModelService.BatchImportEvaluatedAnnotations", + "id": "GoogleCloudAiplatformV1BatchImportEvaluatedAnnotationsRequest", "properties": { - "shouldStop": { - "description": "True if the Trial should stop.", - "type": "boolean" + "evaluatedAnnotations": { + "description": "Required. Evaluated annotations resource to be imported.", + "items": { + "$ref": "GoogleCloudAiplatformV1EvaluatedAnnotation" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1CompleteTrialRequest": { - "description": "Request message for VizierService.CompleteTrial.", - "id": "GoogleCloudAiplatformV1CompleteTrialRequest", + "GoogleCloudAiplatformV1BatchImportEvaluatedAnnotationsResponse": { + "description": "Response message for ModelService.BatchImportEvaluatedAnnotations", + "id": "GoogleCloudAiplatformV1BatchImportEvaluatedAnnotationsResponse", "properties": { - "finalMeasurement": { - "$ref": "GoogleCloudAiplatformV1Measurement", - "description": "Optional. If provided, it will be used as the completed Trial's final_measurement; Otherwise, the service will auto-select a previously reported measurement as the final-measurement" - }, - "infeasibleReason": { - "description": "Optional. A human readable reason why the trial was infeasible. This should only be provided if `trial_infeasible` is true.", - "type": "string" - }, - "trialInfeasible": { - "description": "Optional. True if the Trial cannot be run with the given Parameter, and final_measurement will be ignored.", - "type": "boolean" + "importedEvaluatedAnnotationsCount": { + "description": "Output only. Number of EvaluatedAnnotations imported.", + "format": "int32", + "readOnly": true, + "type": "integer" } }, "type": "object" }, - "GoogleCloudAiplatformV1CompletionStats": { - "description": "Success and error statistics of processing multiple entities (for example, DataItems or structured data rows) in batch.", - "id": "GoogleCloudAiplatformV1CompletionStats", + "GoogleCloudAiplatformV1BatchImportModelEvaluationSlicesRequest": { + "description": "Request message for ModelService.BatchImportModelEvaluationSlices", + "id": "GoogleCloudAiplatformV1BatchImportModelEvaluationSlicesRequest", "properties": { - "failedCount": { - "description": "Output only. The number of entities for which any error was encountered.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "incompleteCount": { - "description": "Output only. In cases when enough errors are encountered a job, pipeline, or operation may be failed as a whole. Below is the number of entities for which the processing had not been finished (either in successful or failed state). Set to -1 if the number is unknown (for example, the operation failed before the total entity number could be collected).", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "successfulCount": { - "description": "Output only. The number of entities that had been processed successfully.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "successfulForecastPointCount": { - "description": "Output only. The number of the successful forecast points that are generated by the forecasting model. This is ONLY used by the forecasting batch prediction.", - "format": "int64", - "readOnly": true, - "type": "string" + "modelEvaluationSlices": { + "description": "Required. Model evaluation slice resource to be imported.", + "items": { + "$ref": "GoogleCloudAiplatformV1ModelEvaluationSlice" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1ComputeTokensRequest": { - "description": "Request message for ComputeTokens RPC call.", - "id": "GoogleCloudAiplatformV1ComputeTokensRequest", + "GoogleCloudAiplatformV1BatchImportModelEvaluationSlicesResponse": { + "description": "Response message for ModelService.BatchImportModelEvaluationSlices", + "id": "GoogleCloudAiplatformV1BatchImportModelEvaluationSlicesResponse", "properties": { - "instances": { - "description": "Required. The instances that are the input to token computing API call. Schema is identical to the prediction schema of the text model, even for the non-text models, like chat models, or Codey models.", + "importedModelEvaluationSlices": { + "description": "Output only. List of imported ModelEvaluationSlice.name.", "items": { - "type": "any" + "type": "string" }, + "readOnly": true, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1ComputeTokensResponse": { - "description": "Response message for ComputeTokens RPC call.", - "id": "GoogleCloudAiplatformV1ComputeTokensResponse", + "GoogleCloudAiplatformV1BatchMigrateResourcesOperationMetadata": { + "description": "Runtime operation information for MigrationService.BatchMigrateResources.", + "id": "GoogleCloudAiplatformV1BatchMigrateResourcesOperationMetadata", "properties": { - "tokensInfo": { - "description": "Lists of tokens info from the input. A ComputeTokensRequest could have multiple instances with a prompt in each instance. We also need to return lists of tokens info for the request with multiple instances.", + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "The common part of the operation metadata." + }, + "partialResults": { + "description": "Partial results that reflect the latest migration operation progress.", "items": { - "$ref": "GoogleCloudAiplatformV1TokensInfo" + "$ref": "GoogleCloudAiplatformV1BatchMigrateResourcesOperationMetadataPartialResult" }, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1ContainerRegistryDestination": { - "description": "The Container Registry location for the container image.", - "id": "GoogleCloudAiplatformV1ContainerRegistryDestination", + "GoogleCloudAiplatformV1BatchMigrateResourcesOperationMetadataPartialResult": { + "description": "Represents a partial result in batch migration operation for one MigrateResourceRequest.", + "id": "GoogleCloudAiplatformV1BatchMigrateResourcesOperationMetadataPartialResult", "properties": { - "outputUri": { - "description": "Required. Container Registry URI of a container image. Only Google Container Registry and Artifact Registry are supported now. Accepted forms: * Google Container Registry path. For example: `gcr.io/projectId/imageName:tag`. * Artifact Registry path. For example: `us-central1-docker.pkg.dev/projectId/repoName/imageName:tag`. If a tag is not specified, \"latest\" will be used as the default tag.", + "dataset": { + "description": "Migrated dataset resource name.", + "type": "string" + }, + "error": { + "$ref": "GoogleRpcStatus", + "description": "The error result of the migration request in case of failure." + }, + "model": { + "description": "Migrated model resource name.", "type": "string" + }, + "request": { + "$ref": "GoogleCloudAiplatformV1MigrateResourceRequest", + "description": "It's the same as the value in MigrateResourceRequest.migrate_resource_requests." } }, "type": "object" }, - "GoogleCloudAiplatformV1ContainerSpec": { - "description": "The spec of a Container.", - "id": "GoogleCloudAiplatformV1ContainerSpec", + "GoogleCloudAiplatformV1BatchMigrateResourcesRequest": { + "description": "Request message for MigrationService.BatchMigrateResources.", + "id": "GoogleCloudAiplatformV1BatchMigrateResourcesRequest", "properties": { - "args": { - "description": "The arguments to be passed when starting the container.", - "items": { - "type": "string" - }, - "type": "array" - }, - "command": { - "description": "The command to be invoked when the container is started. It overrides the entrypoint instruction in Dockerfile when provided.", + "migrateResourceRequests": { + "description": "Required. The request messages specifying the resources to migrate. They must be in the same location as the destination. Up to 50 resources can be migrated in one batch.", "items": { - "type": "string" + "$ref": "GoogleCloudAiplatformV1MigrateResourceRequest" }, "type": "array" - }, - "env": { - "description": "Environment variables to be passed to the container. Maximum limit is 100.", + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1BatchMigrateResourcesResponse": { + "description": "Response message for MigrationService.BatchMigrateResources.", + "id": "GoogleCloudAiplatformV1BatchMigrateResourcesResponse", + "properties": { + "migrateResourceResponses": { + "description": "Successfully migrated resources.", "items": { - "$ref": "GoogleCloudAiplatformV1EnvVar" + "$ref": "GoogleCloudAiplatformV1MigrateResourceResponse" }, "type": "array" - }, - "imageUri": { - "description": "Required. The URI of a container image in the Container Registry that is to be run on each worker replica.", - "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1Context": { - "description": "Instance of a general context.", - "id": "GoogleCloudAiplatformV1Context", + "GoogleCloudAiplatformV1BatchPredictionJob": { + "description": "A job that uses a Model to produce predictions on multiple input instances. If predictions for significant portion of the instances fail, the job may finish without attempting predictions for all remaining instances.", + "id": "GoogleCloudAiplatformV1BatchPredictionJob", "properties": { + "completionStats": { + "$ref": "GoogleCloudAiplatformV1CompletionStats", + "description": "Output only. Statistics on completed and failed prediction instances.", + "readOnly": true + }, "createTime": { - "description": "Output only. Timestamp when this Context was created.", + "description": "Output only. Time when the BatchPredictionJob was created.", "format": "google-datetime", "readOnly": true, "type": "string" }, - "description": { - "description": "Description of the Context", - "type": "string" + "dedicatedResources": { + "$ref": "GoogleCloudAiplatformV1BatchDedicatedResources", + "description": "The config of resources used by the Model during the batch prediction. If the Model supports DEDICATED_RESOURCES this config may be provided (and the job will use these resources), if the Model doesn't support AUTOMATIC_RESOURCES, this config must be provided." + }, + "disableContainerLogging": { + "description": "For custom-trained Models and AutoML Tabular Models, the container of the DeployedModel instances will send `stderr` and `stdout` streams to Cloud Logging by default. Please note that the logs incur cost, which are subject to [Cloud Logging pricing](https://cloud.google.com/logging/pricing). User can disable container logging by setting this flag to true.", + "type": "boolean" }, "displayName": { - "description": "User provided display name of the Context. May be up to 128 Unicode characters.", + "description": "Required. The user-defined name of this BatchPredictionJob.", "type": "string" }, - "etag": { - "description": "An eTag used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "encryptionSpec": { + "$ref": "GoogleCloudAiplatformV1EncryptionSpec", + "description": "Customer-managed encryption key options for a BatchPredictionJob. If this is set, then all resources created by the BatchPredictionJob will be encrypted with the provided encryption key." + }, + "endTime": { + "description": "Output only. Time when the BatchPredictionJob entered any of the following states: `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED`, `JOB_STATE_CANCELLED`.", + "format": "google-datetime", + "readOnly": true, "type": "string" }, + "error": { + "$ref": "GoogleRpcStatus", + "description": "Output only. Only populated when the job's state is JOB_STATE_FAILED or JOB_STATE_CANCELLED.", + "readOnly": true + }, + "explanationSpec": { + "$ref": "GoogleCloudAiplatformV1ExplanationSpec", + "description": "Explanation configuration for this BatchPredictionJob. Can be specified only if generate_explanation is set to `true`. This value overrides the value of Model.explanation_spec. All fields of explanation_spec are optional in the request. If a field of the explanation_spec object is not populated, the corresponding field of the Model.explanation_spec object is inherited." + }, + "generateExplanation": { + "description": "Generate explanation with the batch prediction results. When set to `true`, the batch prediction output changes based on the `predictions_format` field of the BatchPredictionJob.output_config object: * `bigquery`: output includes a column named `explanation`. The value is a struct that conforms to the Explanation object. * `jsonl`: The JSON objects on each line include an additional entry keyed `explanation`. The value of the entry is a JSON object that conforms to the Explanation object. * `csv`: Generating explanations for CSV format is not supported. If this field is set to true, either the Model.explanation_spec or explanation_spec must be populated.", + "type": "boolean" + }, + "inputConfig": { + "$ref": "GoogleCloudAiplatformV1BatchPredictionJobInputConfig", + "description": "Required. Input configuration of the instances on which predictions are performed. The schema of any single instance may be specified via the Model's PredictSchemata's instance_schema_uri." + }, + "instanceConfig": { + "$ref": "GoogleCloudAiplatformV1BatchPredictionJobInstanceConfig", + "description": "Configuration for how to convert batch prediction input instances to the prediction instances that are sent to the Model." + }, "labels": { "additionalProperties": { "type": "string" }, - "description": "The labels with user-defined metadata to organize your Contexts. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. No more than 64 user labels can be associated with one Context (System labels are excluded).", + "description": "The labels with user-defined metadata to organize BatchPredictionJobs. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels.", "type": "object" }, - "metadata": { - "additionalProperties": { - "description": "Properties of the object.", - "type": "any" - }, - "description": "Properties of the Context. Top level metadata keys' heading and trailing spaces will be trimmed. The size of this field should not exceed 200KB.", - "type": "object" + "manualBatchTuningParameters": { + "$ref": "GoogleCloudAiplatformV1ManualBatchTuningParameters", + "description": "Immutable. Parameters configuring the batch behavior. Currently only applicable when dedicated_resources are used (in other cases Vertex AI does the tuning itself)." + }, + "model": { + "description": "The name of the Model resource that produces the predictions via this job, must share the same ancestor Location. Starting this job has no impact on any existing deployments of the Model and their resources. Exactly one of model and unmanaged_container_model must be set. The model resource name may contain version id or version alias to specify the version. Example: `projects/{project}/locations/{location}/models/{model}@2` or `projects/{project}/locations/{location}/models/{model}@golden` if no version is specified, the default version will be deployed. The model resource could also be a publisher model. Example: `publishers/{publisher}/models/{model}` or `projects/{project}/locations/{location}/publishers/{publisher}/models/{model}`", + "type": "string" + }, + "modelParameters": { + "description": "The parameters that govern the predictions. The schema of the parameters may be specified via the Model's PredictSchemata's parameters_schema_uri.", + "type": "any" + }, + "modelVersionId": { + "description": "Output only. The version ID of the Model that produces the predictions via this job.", + "readOnly": true, + "type": "string" }, "name": { - "description": "Immutable. The resource name of the Context.", + "description": "Output only. Resource name of the BatchPredictionJob.", + "readOnly": true, "type": "string" }, - "parentContexts": { - "description": "Output only. A list of resource names of Contexts that are parents of this Context. A Context may have at most 10 parent_contexts.", + "outputConfig": { + "$ref": "GoogleCloudAiplatformV1BatchPredictionJobOutputConfig", + "description": "Required. The Configuration specifying where output predictions should be written. The schema of any single prediction may be specified as a concatenation of Model's PredictSchemata's instance_schema_uri and prediction_schema_uri." + }, + "outputInfo": { + "$ref": "GoogleCloudAiplatformV1BatchPredictionJobOutputInfo", + "description": "Output only. Information further describing the output of this job.", + "readOnly": true + }, + "partialFailures": { + "description": "Output only. Partial failures encountered. For example, single files that can't be read. This field never exceeds 20 entries. Status details fields contain standard Google Cloud error details.", "items": { - "type": "string" + "$ref": "GoogleRpcStatus" }, "readOnly": true, "type": "array" }, - "schemaTitle": { - "description": "The title of the schema describing the metadata. Schema title and version is expected to be registered in earlier Create Schema calls. And both are used together as unique identifiers to identify schemas within the local metadata store.", + "resourcesConsumed": { + "$ref": "GoogleCloudAiplatformV1ResourcesConsumed", + "description": "Output only. Information about resources that had been consumed by this job. Provided in real time at best effort basis, as well as a final value once the job completes. Note: This field currently may be not populated for batch predictions that use AutoML Models.", + "readOnly": true + }, + "serviceAccount": { + "description": "The service account that the DeployedModel's container runs as. If not specified, a system generated one will be used, which has minimal permissions and the custom container, if used, may not have enough permission to access other Google Cloud resources. Users deploying the Model must have the `iam.serviceAccounts.actAs` permission on this service account.", "type": "string" }, - "schemaVersion": { - "description": "The version of the schema in schema_name to use. Schema title and version is expected to be registered in earlier Create Schema calls. And both are used together as unique identifiers to identify schemas within the local metadata store.", + "startTime": { + "description": "Output only. Time when the BatchPredictionJob for the first time entered the `JOB_STATE_RUNNING` state.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The detailed state of the job.", + "enum": [ + "JOB_STATE_UNSPECIFIED", + "JOB_STATE_QUEUED", + "JOB_STATE_PENDING", + "JOB_STATE_RUNNING", + "JOB_STATE_SUCCEEDED", + "JOB_STATE_FAILED", + "JOB_STATE_CANCELLING", + "JOB_STATE_CANCELLED", + "JOB_STATE_PAUSED", + "JOB_STATE_EXPIRED", + "JOB_STATE_UPDATING", + "JOB_STATE_PARTIALLY_SUCCEEDED" + ], + "enumDescriptions": [ + "The job state is unspecified.", + "The job has been just created or resumed and processing has not yet begun.", + "The service is preparing to run the job.", + "The job is in progress.", + "The job completed successfully.", + "The job failed.", + "The job is being cancelled. From this state the job may only go to either `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED` or `JOB_STATE_CANCELLED`.", + "The job has been cancelled.", + "The job has been stopped, and can be resumed.", + "The job has expired.", + "The job is being updated. Only jobs in the `RUNNING` state can be updated. After updating, the job goes back to the `RUNNING` state.", + "The job is partially succeeded, some results may be missing due to errors." + ], + "readOnly": true, "type": "string" }, + "unmanagedContainerModel": { + "$ref": "GoogleCloudAiplatformV1UnmanagedContainerModel", + "description": "Contains model information necessary to perform batch prediction without requiring uploading to model registry. Exactly one of model and unmanaged_container_model must be set." + }, "updateTime": { - "description": "Output only. Timestamp when this Context was last updated.", + "description": "Output only. Time when the BatchPredictionJob was most recently updated.", "format": "google-datetime", "readOnly": true, "type": "string" @@ -15929,810 +17411,653 @@ }, "type": "object" }, - "GoogleCloudAiplatformV1CopyModelOperationMetadata": { - "description": "Details of ModelService.CopyModel operation.", - "id": "GoogleCloudAiplatformV1CopyModelOperationMetadata", - "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "The common part of the operation metadata." - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1CopyModelRequest": { - "description": "Request message for ModelService.CopyModel.", - "id": "GoogleCloudAiplatformV1CopyModelRequest", + "GoogleCloudAiplatformV1BatchPredictionJobInputConfig": { + "description": "Configures the input to BatchPredictionJob. See Model.supported_input_storage_formats for Model's supported input formats, and how instances should be expressed via any of them.", + "id": "GoogleCloudAiplatformV1BatchPredictionJobInputConfig", "properties": { - "encryptionSpec": { - "$ref": "GoogleCloudAiplatformV1EncryptionSpec", - "description": "Customer-managed encryption key options. If this is set, then the Model copy will be encrypted with the provided encryption key." - }, - "modelId": { - "description": "Optional. Copy source_model into a new Model with this ID. The ID will become the final component of the model resource name. This value may be up to 63 characters, and valid characters are `[a-z0-9_-]`. The first character cannot be a number or hyphen.", - "type": "string" + "bigquerySource": { + "$ref": "GoogleCloudAiplatformV1BigQuerySource", + "description": "The BigQuery location of the input table. The schema of the table should be in the format described by the given context OpenAPI Schema, if one is provided. The table may contain additional columns that are not described by the schema, and they will be ignored." }, - "parentModel": { - "description": "Optional. Specify this field to copy source_model into this existing Model as a new version. Format: `projects/{project}/locations/{location}/models/{model}`", - "type": "string" + "gcsSource": { + "$ref": "GoogleCloudAiplatformV1GcsSource", + "description": "The Cloud Storage location for the input instances." }, - "sourceModel": { - "description": "Required. The resource name of the Model to copy. That Model must be in the same Project. Format: `projects/{project}/locations/{location}/models/{model}`", + "instancesFormat": { + "description": "Required. The format in which instances are given, must be one of the Model's supported_input_storage_formats.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1CopyModelResponse": { - "description": "Response message of ModelService.CopyModel operation.", - "id": "GoogleCloudAiplatformV1CopyModelResponse", + "GoogleCloudAiplatformV1BatchPredictionJobInstanceConfig": { + "description": "Configuration defining how to transform batch prediction input instances to the instances that the Model accepts.", + "id": "GoogleCloudAiplatformV1BatchPredictionJobInstanceConfig", "properties": { - "model": { - "description": "The name of the copied Model resource. Format: `projects/{project}/locations/{location}/models/{model}`", - "type": "string" + "excludedFields": { + "description": "Fields that will be excluded in the prediction instance that is sent to the Model. Excluded will be attached to the batch prediction output if key_field is not specified. When excluded_fields is populated, included_fields must be empty. The input must be JSONL with objects at each line, BigQuery or TfRecord.", + "items": { + "type": "string" + }, + "type": "array" }, - "modelVersionId": { - "description": "Output only. The version ID of the model that is copied.", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1CountTokensRequest": { - "description": "Request message for PredictionService.CountTokens.", - "id": "GoogleCloudAiplatformV1CountTokensRequest", - "properties": { - "instances": { - "description": "Required. The instances that are the input to token counting call. Schema is identical to the prediction schema of the underlying model.", + "includedFields": { + "description": "Fields that will be included in the prediction instance that is sent to the Model. If instance_type is `array`, the order of field names in included_fields also determines the order of the values in the array. When included_fields is populated, excluded_fields must be empty. The input must be JSONL with objects at each line, BigQuery or TfRecord.", "items": { - "type": "any" + "type": "string" }, "type": "array" + }, + "instanceType": { + "description": "The format of the instance that the Model accepts. Vertex AI will convert compatible batch prediction input instance formats to the specified format. Supported values are: * `object`: Each input is converted to JSON object format. * For `bigquery`, each row is converted to an object. * For `jsonl`, each line of the JSONL input must be an object. * Does not apply to `csv`, `file-list`, `tf-record`, or `tf-record-gzip`. * `array`: Each input is converted to JSON array format. * For `bigquery`, each row is converted to an array. The order of columns is determined by the BigQuery column order, unless included_fields is populated. included_fields must be populated for specifying field orders. * For `jsonl`, if each line of the JSONL input is an object, included_fields must be populated for specifying field orders. * Does not apply to `csv`, `file-list`, `tf-record`, or `tf-record-gzip`. If not specified, Vertex AI converts the batch prediction input as follows: * For `bigquery` and `csv`, the behavior is the same as `array`. The order of columns is the same as defined in the file or table, unless included_fields is populated. * For `jsonl`, the prediction instance format is determined by each line of the input. * For `tf-record`/`tf-record-gzip`, each record will be converted to an object in the format of `{\"b64\": }`, where `` is the Base64-encoded string of the content of the record. * For `file-list`, each file in the list will be converted to an object in the format of `{\"b64\": }`, where `` is the Base64-encoded string of the content of the file.", + "type": "string" + }, + "keyField": { + "description": "The name of the field that is considered as a key. The values identified by the key field is not included in the transformed instances that is sent to the Model. This is similar to specifying this name of the field in excluded_fields. In addition, the batch prediction output will not include the instances. Instead the output will only include the value of the key field, in a field named `key` in the output: * For `jsonl` output format, the output will have a `key` field instead of the `instance` field. * For `csv`/`bigquery` output format, the output will have have a `key` column instead of the instance feature columns. The input must be JSONL with objects at each line, CSV, BigQuery or TfRecord.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1CountTokensResponse": { - "description": "Response message for PredictionService.CountTokens.", - "id": "GoogleCloudAiplatformV1CountTokensResponse", + "GoogleCloudAiplatformV1BatchPredictionJobOutputConfig": { + "description": "Configures the output of BatchPredictionJob. See Model.supported_output_storage_formats for supported output formats, and how predictions are expressed via any of them.", + "id": "GoogleCloudAiplatformV1BatchPredictionJobOutputConfig", "properties": { - "totalBillableCharacters": { - "description": "The total number of billable characters counted across all instances from the request.", - "format": "int32", - "type": "integer" + "bigqueryDestination": { + "$ref": "GoogleCloudAiplatformV1BigQueryDestination", + "description": "The BigQuery project or dataset location where the output is to be written to. If project is provided, a new dataset is created with name `prediction__` where is made BigQuery-dataset-name compatible (for example, most special characters become underscores), and timestamp is in YYYY_MM_DDThh_mm_ss_sssZ \"based on ISO-8601\" format. In the dataset two tables will be created, `predictions`, and `errors`. If the Model has both instance and prediction schemata defined then the tables have columns as follows: The `predictions` table contains instances for which the prediction succeeded, it has columns as per a concatenation of the Model's instance and prediction schemata. The `errors` table contains rows for which the prediction has failed, it has instance columns, as per the instance schema, followed by a single \"errors\" column, which as values has google.rpc.Status represented as a STRUCT, and containing only `code` and `message`." }, - "totalTokens": { - "description": "The total number of tokens counted across all instances from the request.", - "format": "int32", - "type": "integer" + "gcsDestination": { + "$ref": "GoogleCloudAiplatformV1GcsDestination", + "description": "The Cloud Storage location of the directory where the output is to be written to. In the given directory a new directory is created. Its name is `prediction--`, where timestamp is in YYYY-MM-DDThh:mm:ss.sssZ ISO-8601 format. Inside of it files `predictions_0001.`, `predictions_0002.`, ..., `predictions_N.` are created where `` depends on chosen predictions_format, and N may equal 0001 and depends on the total number of successfully predicted instances. If the Model has both instance and prediction schemata defined then each such file contains predictions as per the predictions_format. If prediction for any instance failed (partially or completely), then an additional `errors_0001.`, `errors_0002.`,..., `errors_N.` files are created (N depends on total number of failed predictions). These files contain the failed instances, as per their schema, followed by an additional `error` field which as value has google.rpc.Status containing only `code` and `message` fields." + }, + "predictionsFormat": { + "description": "Required. The format in which Vertex AI gives the predictions, must be one of the Model's supported_output_storage_formats.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1CreateDatasetOperationMetadata": { - "description": "Runtime operation information for DatasetService.CreateDataset.", - "id": "GoogleCloudAiplatformV1CreateDatasetOperationMetadata", + "GoogleCloudAiplatformV1BatchPredictionJobOutputInfo": { + "description": "Further describes this job's output. Supplements output_config.", + "id": "GoogleCloudAiplatformV1BatchPredictionJobOutputInfo", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "The operation generic information." + "bigqueryOutputDataset": { + "description": "Output only. The path of the BigQuery dataset created, in `bq://projectId.bqDatasetId` format, into which the prediction output is written.", + "readOnly": true, + "type": "string" + }, + "bigqueryOutputTable": { + "description": "Output only. The name of the BigQuery table created, in `predictions_` format, into which the prediction output is written. Can be used by UI to generate the BigQuery output path, for example.", + "readOnly": true, + "type": "string" + }, + "gcsOutputDirectory": { + "description": "Output only. The full path of the Cloud Storage directory created, into which the prediction output is written.", + "readOnly": true, + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1CreateDatasetVersionOperationMetadata": { - "description": "Runtime operation information for DatasetService.CreateDatasetVersion.", - "id": "GoogleCloudAiplatformV1CreateDatasetVersionOperationMetadata", + "GoogleCloudAiplatformV1BatchReadFeatureValuesOperationMetadata": { + "description": "Details of operations that batch reads Feature values.", + "id": "GoogleCloudAiplatformV1BatchReadFeatureValuesOperationMetadata", "properties": { "genericMetadata": { "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "The common part of the operation metadata." + "description": "Operation metadata for Featurestore batch read Features values." } }, "type": "object" }, - "GoogleCloudAiplatformV1CreateDeploymentResourcePoolOperationMetadata": { - "description": "Runtime operation information for CreateDeploymentResourcePool method.", - "id": "GoogleCloudAiplatformV1CreateDeploymentResourcePoolOperationMetadata", + "GoogleCloudAiplatformV1BatchReadFeatureValuesRequest": { + "description": "Request message for FeaturestoreService.BatchReadFeatureValues.", + "id": "GoogleCloudAiplatformV1BatchReadFeatureValuesRequest", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "The operation generic information." + "bigqueryReadInstances": { + "$ref": "GoogleCloudAiplatformV1BigQuerySource", + "description": "Similar to csv_read_instances, but from BigQuery source." + }, + "csvReadInstances": { + "$ref": "GoogleCloudAiplatformV1CsvSource", + "description": "Each read instance consists of exactly one read timestamp and one or more entity IDs identifying entities of the corresponding EntityTypes whose Features are requested. Each output instance contains Feature values of requested entities concatenated together as of the read time. An example read instance may be `foo_entity_id, bar_entity_id, 2020-01-01T10:00:00.123Z`. An example output instance may be `foo_entity_id, bar_entity_id, 2020-01-01T10:00:00.123Z, foo_entity_feature1_value, bar_entity_feature2_value`. Timestamp in each read instance must be millisecond-aligned. `csv_read_instances` are read instances stored in a plain-text CSV file. The header should be: [ENTITY_TYPE_ID1], [ENTITY_TYPE_ID2], ..., timestamp The columns can be in any order. Values in the timestamp column must use the RFC 3339 format, e.g. `2012-07-30T10:43:17.123Z`." + }, + "destination": { + "$ref": "GoogleCloudAiplatformV1FeatureValueDestination", + "description": "Required. Specifies output location and format." + }, + "entityTypeSpecs": { + "description": "Required. Specifies EntityType grouping Features to read values of and settings.", + "items": { + "$ref": "GoogleCloudAiplatformV1BatchReadFeatureValuesRequestEntityTypeSpec" + }, + "type": "array" + }, + "passThroughFields": { + "description": "When not empty, the specified fields in the *_read_instances source will be joined as-is in the output, in addition to those fields from the Featurestore Entity. For BigQuery source, the type of the pass-through values will be automatically inferred. For CSV source, the pass-through values will be passed as opaque bytes.", + "items": { + "$ref": "GoogleCloudAiplatformV1BatchReadFeatureValuesRequestPassThroughField" + }, + "type": "array" + }, + "startTime": { + "description": "Optional. Excludes Feature values with feature generation timestamp before this timestamp. If not set, retrieve oldest values kept in Feature Store. Timestamp, if present, must not have higher than millisecond precision.", + "format": "google-datetime", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1CreateDeploymentResourcePoolRequest": { - "description": "Request message for CreateDeploymentResourcePool method.", - "id": "GoogleCloudAiplatformV1CreateDeploymentResourcePoolRequest", + "GoogleCloudAiplatformV1BatchReadFeatureValuesRequestEntityTypeSpec": { + "description": "Selects Features of an EntityType to read values of and specifies read settings.", + "id": "GoogleCloudAiplatformV1BatchReadFeatureValuesRequestEntityTypeSpec", "properties": { - "deploymentResourcePool": { - "$ref": "GoogleCloudAiplatformV1DeploymentResourcePool", - "description": "Required. The DeploymentResourcePool to create." - }, - "deploymentResourcePoolId": { - "description": "Required. The ID to use for the DeploymentResourcePool, which will become the final component of the DeploymentResourcePool's resource name. The maximum length is 63 characters, and valid characters are `/^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$/`.", + "entityTypeId": { + "description": "Required. ID of the EntityType to select Features. The EntityType id is the entity_type_id specified during EntityType creation.", "type": "string" + }, + "featureSelector": { + "$ref": "GoogleCloudAiplatformV1FeatureSelector", + "description": "Required. Selectors choosing which Feature values to read from the EntityType." + }, + "settings": { + "description": "Per-Feature settings for the batch read.", + "items": { + "$ref": "GoogleCloudAiplatformV1DestinationFeatureSetting" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1CreateEndpointOperationMetadata": { - "description": "Runtime operation information for EndpointService.CreateEndpoint.", - "id": "GoogleCloudAiplatformV1CreateEndpointOperationMetadata", + "GoogleCloudAiplatformV1BatchReadFeatureValuesRequestPassThroughField": { + "description": "Describe pass-through fields in read_instance source.", + "id": "GoogleCloudAiplatformV1BatchReadFeatureValuesRequestPassThroughField", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "The operation generic information." + "fieldName": { + "description": "Required. The name of the field in the CSV header or the name of the column in BigQuery table. The naming restriction is the same as Feature.name.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1CreateEntityTypeOperationMetadata": { - "description": "Details of operations that perform create EntityType.", - "id": "GoogleCloudAiplatformV1CreateEntityTypeOperationMetadata", - "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "Operation metadata for EntityType." - } - }, + "GoogleCloudAiplatformV1BatchReadFeatureValuesResponse": { + "description": "Response message for FeaturestoreService.BatchReadFeatureValues.", + "id": "GoogleCloudAiplatformV1BatchReadFeatureValuesResponse", + "properties": {}, "type": "object" }, - "GoogleCloudAiplatformV1CreateFeatureGroupOperationMetadata": { - "description": "Details of operations that perform create FeatureGroup.", - "id": "GoogleCloudAiplatformV1CreateFeatureGroupOperationMetadata", + "GoogleCloudAiplatformV1BatchReadTensorboardTimeSeriesDataResponse": { + "description": "Response message for TensorboardService.BatchReadTensorboardTimeSeriesData.", + "id": "GoogleCloudAiplatformV1BatchReadTensorboardTimeSeriesDataResponse", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "Operation metadata for FeatureGroup." + "timeSeriesData": { + "description": "The returned time series data.", + "items": { + "$ref": "GoogleCloudAiplatformV1TimeSeriesData" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1CreateFeatureOnlineStoreOperationMetadata": { - "description": "Details of operations that perform create FeatureOnlineStore.", - "id": "GoogleCloudAiplatformV1CreateFeatureOnlineStoreOperationMetadata", + "GoogleCloudAiplatformV1BigQueryDestination": { + "description": "The BigQuery location for the output content.", + "id": "GoogleCloudAiplatformV1BigQueryDestination", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "Operation metadata for FeatureOnlineStore." + "outputUri": { + "description": "Required. BigQuery URI to a project or table, up to 2000 characters long. When only the project is specified, the Dataset and Table is created. When the full table reference is specified, the Dataset must exist and table must not exist. Accepted forms: * BigQuery path. For example: `bq://projectId` or `bq://projectId.bqDatasetId` or `bq://projectId.bqDatasetId.bqTableId`.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1CreateFeatureOperationMetadata": { - "description": "Details of operations that perform create Feature.", - "id": "GoogleCloudAiplatformV1CreateFeatureOperationMetadata", + "GoogleCloudAiplatformV1BigQuerySource": { + "description": "The BigQuery location for the input content.", + "id": "GoogleCloudAiplatformV1BigQuerySource", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "Operation metadata for Feature." + "inputUri": { + "description": "Required. BigQuery URI to a table, up to 2000 characters long. Accepted forms: * BigQuery path. For example: `bq://projectId.bqDatasetId.bqTableId`.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1CreateFeatureRequest": { - "description": "Request message for FeaturestoreService.CreateFeature. Request message for FeatureRegistryService.CreateFeature.", - "id": "GoogleCloudAiplatformV1CreateFeatureRequest", + "GoogleCloudAiplatformV1Blob": { + "description": "Raw media bytes. Text should not be sent as raw bytes, use the 'text' field.", + "id": "GoogleCloudAiplatformV1Blob", "properties": { - "feature": { - "$ref": "GoogleCloudAiplatformV1Feature", - "description": "Required. The Feature to create." - }, - "featureId": { - "description": "Required. The ID to use for the Feature, which will become the final component of the Feature's resource name. This value may be up to 128 characters, and valid characters are `[a-z0-9_]`. The first character cannot be a number. The value must be unique within an EntityType/FeatureGroup.", + "data": { + "description": "Required. Raw bytes for media formats.", + "format": "byte", "type": "string" }, - "parent": { - "description": "Required. The resource name of the EntityType or FeatureGroup to create a Feature. Format for entity_type as parent: `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` Format for feature_group as parent: `projects/{project}/locations/{location}/featureGroups/{feature_group}`", + "mimeType": { + "description": "Required. The IANA standard MIME type of the source data.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1CreateFeatureViewOperationMetadata": { - "description": "Details of operations that perform create FeatureView.", - "id": "GoogleCloudAiplatformV1CreateFeatureViewOperationMetadata", + "GoogleCloudAiplatformV1BlurBaselineConfig": { + "description": "Config for blur baseline. When enabled, a linear path from the maximally blurred image to the input image is created. Using a blurred baseline instead of zero (black image) is motivated by the BlurIG approach explained here: https://arxiv.org/abs/2004.03383", + "id": "GoogleCloudAiplatformV1BlurBaselineConfig", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "Operation metadata for FeatureView Create." + "maxBlurSigma": { + "description": "The standard deviation of the blur kernel for the blurred baseline. The same blurring parameter is used for both the height and the width dimension. If not set, the method defaults to the zero (i.e. black for images) baseline.", + "format": "float", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1CreateFeaturestoreOperationMetadata": { - "description": "Details of operations that perform create Featurestore.", - "id": "GoogleCloudAiplatformV1CreateFeaturestoreOperationMetadata", + "GoogleCloudAiplatformV1BoolArray": { + "description": "A list of boolean values.", + "id": "GoogleCloudAiplatformV1BoolArray", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "Operation metadata for Featurestore." + "values": { + "description": "A list of bool values.", + "items": { + "type": "boolean" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1CreateIndexEndpointOperationMetadata": { - "description": "Runtime operation information for IndexEndpointService.CreateIndexEndpoint.", - "id": "GoogleCloudAiplatformV1CreateIndexEndpointOperationMetadata", - "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "The operation generic information." - } - }, + "GoogleCloudAiplatformV1CancelBatchPredictionJobRequest": { + "description": "Request message for JobService.CancelBatchPredictionJob.", + "id": "GoogleCloudAiplatformV1CancelBatchPredictionJobRequest", + "properties": {}, "type": "object" }, - "GoogleCloudAiplatformV1CreateIndexOperationMetadata": { - "description": "Runtime operation information for IndexService.CreateIndex.", - "id": "GoogleCloudAiplatformV1CreateIndexOperationMetadata", - "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "The operation generic information." - }, - "nearestNeighborSearchOperationMetadata": { - "$ref": "GoogleCloudAiplatformV1NearestNeighborSearchOperationMetadata", - "description": "The operation metadata with regard to Matching Engine Index operation." - } - }, + "GoogleCloudAiplatformV1CancelCustomJobRequest": { + "description": "Request message for JobService.CancelCustomJob.", + "id": "GoogleCloudAiplatformV1CancelCustomJobRequest", + "properties": {}, "type": "object" }, - "GoogleCloudAiplatformV1CreateMetadataStoreOperationMetadata": { - "description": "Details of operations that perform MetadataService.CreateMetadataStore.", - "id": "GoogleCloudAiplatformV1CreateMetadataStoreOperationMetadata", - "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "Operation metadata for creating a MetadataStore." - } - }, + "GoogleCloudAiplatformV1CancelDataLabelingJobRequest": { + "description": "Request message for JobService.CancelDataLabelingJob.", + "id": "GoogleCloudAiplatformV1CancelDataLabelingJobRequest", + "properties": {}, "type": "object" }, - "GoogleCloudAiplatformV1CreateNotebookRuntimeTemplateOperationMetadata": { - "description": "Metadata information for NotebookService.CreateNotebookRuntimeTemplate.", - "id": "GoogleCloudAiplatformV1CreateNotebookRuntimeTemplateOperationMetadata", - "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "The operation generic information." - } - }, + "GoogleCloudAiplatformV1CancelHyperparameterTuningJobRequest": { + "description": "Request message for JobService.CancelHyperparameterTuningJob.", + "id": "GoogleCloudAiplatformV1CancelHyperparameterTuningJobRequest", + "properties": {}, "type": "object" }, - "GoogleCloudAiplatformV1CreatePipelineJobRequest": { - "description": "Request message for PipelineService.CreatePipelineJob.", - "id": "GoogleCloudAiplatformV1CreatePipelineJobRequest", + "GoogleCloudAiplatformV1CancelNasJobRequest": { + "description": "Request message for JobService.CancelNasJob.", + "id": "GoogleCloudAiplatformV1CancelNasJobRequest", + "properties": {}, + "type": "object" + }, + "GoogleCloudAiplatformV1CancelPipelineJobRequest": { + "description": "Request message for PipelineService.CancelPipelineJob.", + "id": "GoogleCloudAiplatformV1CancelPipelineJobRequest", + "properties": {}, + "type": "object" + }, + "GoogleCloudAiplatformV1CancelTrainingPipelineRequest": { + "description": "Request message for PipelineService.CancelTrainingPipeline.", + "id": "GoogleCloudAiplatformV1CancelTrainingPipelineRequest", + "properties": {}, + "type": "object" + }, + "GoogleCloudAiplatformV1Candidate": { + "description": "A response candidate generated from the model.", + "id": "GoogleCloudAiplatformV1Candidate", "properties": { - "parent": { - "description": "Required. The resource name of the Location to create the PipelineJob in. Format: `projects/{project}/locations/{location}`", - "type": "string" + "citationMetadata": { + "$ref": "GoogleCloudAiplatformV1CitationMetadata", + "description": "Output only. Source attribution of the generated content.", + "readOnly": true }, - "pipelineJob": { - "$ref": "GoogleCloudAiplatformV1PipelineJob", - "description": "Required. The PipelineJob to create." + "content": { + "$ref": "GoogleCloudAiplatformV1Content", + "description": "Output only. Content parts of the candidate.", + "readOnly": true }, - "pipelineJobId": { - "description": "The ID to use for the PipelineJob, which will become the final component of the PipelineJob name. If not provided, an ID will be automatically generated. This value should be less than 128 characters, and valid characters are `/a-z-/`.", + "finishMessage": { + "description": "Output only. Describes the reason the mode stopped generating tokens in more detail. This is only filled when `finish_reason` is set.", + "readOnly": true, + "type": "string" + }, + "finishReason": { + "description": "Output only. The reason why the model stopped generating tokens. If empty, the model has not stopped generating the tokens.", + "enum": [ + "FINISH_REASON_UNSPECIFIED", + "STOP", + "MAX_TOKENS", + "SAFETY", + "RECITATION", + "OTHER" + ], + "enumDescriptions": [ + "The finish reason is unspecified.", + "Natural stop point of the model or provided stop sequence.", + "The maximum number of tokens as specified in the request was reached.", + "The token generation was stopped as the response was flagged for safety reasons. NOTE: When streaming the Candidate.content will be empty if content filters blocked the output.", + "The token generation was stopped as the response was flagged for unauthorized citations.", + "All other reasons that stopped the token generation" + ], + "readOnly": true, "type": "string" + }, + "groundingMetadata": { + "$ref": "GoogleCloudAiplatformV1GroundingMetadata", + "description": "Output only. Metadata specifies sources used to ground generated content.", + "readOnly": true + }, + "index": { + "description": "Output only. Index of the candidate.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "safetyRatings": { + "description": "Output only. List of ratings for the safety of a response candidate. There is at most one rating per category.", + "items": { + "$ref": "GoogleCloudAiplatformV1SafetyRating" + }, + "readOnly": true, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1CreateRegistryFeatureOperationMetadata": { - "description": "Details of operations that perform create FeatureGroup.", - "id": "GoogleCloudAiplatformV1CreateRegistryFeatureOperationMetadata", + "GoogleCloudAiplatformV1CheckTrialEarlyStoppingStateMetatdata": { + "description": "This message will be placed in the metadata field of a google.longrunning.Operation associated with a CheckTrialEarlyStoppingState request.", + "id": "GoogleCloudAiplatformV1CheckTrialEarlyStoppingStateMetatdata", "properties": { "genericMetadata": { "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "Operation metadata for Feature." + "description": "Operation metadata for suggesting Trials." + }, + "study": { + "description": "The name of the Study that the Trial belongs to.", + "type": "string" + }, + "trial": { + "description": "The Trial name.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1CreateSpecialistPoolOperationMetadata": { - "description": "Runtime operation information for SpecialistPoolService.CreateSpecialistPool.", - "id": "GoogleCloudAiplatformV1CreateSpecialistPoolOperationMetadata", - "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "The operation generic information." - } - }, + "GoogleCloudAiplatformV1CheckTrialEarlyStoppingStateRequest": { + "description": "Request message for VizierService.CheckTrialEarlyStoppingState.", + "id": "GoogleCloudAiplatformV1CheckTrialEarlyStoppingStateRequest", + "properties": {}, "type": "object" }, - "GoogleCloudAiplatformV1CreateTensorboardOperationMetadata": { - "description": "Details of operations that perform create Tensorboard.", - "id": "GoogleCloudAiplatformV1CreateTensorboardOperationMetadata", + "GoogleCloudAiplatformV1CheckTrialEarlyStoppingStateResponse": { + "description": "Response message for VizierService.CheckTrialEarlyStoppingState.", + "id": "GoogleCloudAiplatformV1CheckTrialEarlyStoppingStateResponse", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "Operation metadata for Tensorboard." + "shouldStop": { + "description": "True if the Trial should stop.", + "type": "boolean" } }, "type": "object" }, - "GoogleCloudAiplatformV1CreateTensorboardRunRequest": { - "description": "Request message for TensorboardService.CreateTensorboardRun.", - "id": "GoogleCloudAiplatformV1CreateTensorboardRunRequest", + "GoogleCloudAiplatformV1Citation": { + "description": "Source attributions for content.", + "id": "GoogleCloudAiplatformV1Citation", "properties": { - "parent": { - "description": "Required. The resource name of the TensorboardExperiment to create the TensorboardRun in. Format: `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}`", + "endIndex": { + "description": "Output only. End index into the content.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "license": { + "description": "Output only. License of the attribution.", + "readOnly": true, "type": "string" }, - "tensorboardRun": { - "$ref": "GoogleCloudAiplatformV1TensorboardRun", - "description": "Required. The TensorboardRun to create." + "publicationDate": { + "$ref": "GoogleTypeDate", + "description": "Output only. Publication date of the attribution.", + "readOnly": true }, - "tensorboardRunId": { - "description": "Required. The ID to use for the Tensorboard run, which becomes the final component of the Tensorboard run's resource name. This value should be 1-128 characters, and valid characters are `/a-z-/`.", - "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1CreateTensorboardTimeSeriesRequest": { - "description": "Request message for TensorboardService.CreateTensorboardTimeSeries.", - "id": "GoogleCloudAiplatformV1CreateTensorboardTimeSeriesRequest", - "properties": { - "parent": { - "description": "Required. The resource name of the TensorboardRun to create the TensorboardTimeSeries in. Format: `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}`", - "type": "string" + "startIndex": { + "description": "Output only. Start index into the content.", + "format": "int32", + "readOnly": true, + "type": "integer" }, - "tensorboardTimeSeries": { - "$ref": "GoogleCloudAiplatformV1TensorboardTimeSeries", - "description": "Required. The TensorboardTimeSeries to create." + "title": { + "description": "Output only. Title of the attribution.", + "readOnly": true, + "type": "string" }, - "tensorboardTimeSeriesId": { - "description": "Optional. The user specified unique ID to use for the TensorboardTimeSeries, which becomes the final component of the TensorboardTimeSeries's resource name. This value should match \"a-z0-9{0, 127}\"", + "uri": { + "description": "Output only. Url reference of the attribution.", + "readOnly": true, "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1CsvDestination": { - "description": "The storage details for CSV output content.", - "id": "GoogleCloudAiplatformV1CsvDestination", + "GoogleCloudAiplatformV1CitationMetadata": { + "description": "A collection of source attributions for a piece of content.", + "id": "GoogleCloudAiplatformV1CitationMetadata", "properties": { - "gcsDestination": { - "$ref": "GoogleCloudAiplatformV1GcsDestination", - "description": "Required. Google Cloud Storage location." + "citations": { + "description": "Output only. List of citations.", + "items": { + "$ref": "GoogleCloudAiplatformV1Citation" + }, + "readOnly": true, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1CsvSource": { - "description": "The storage details for CSV input content.", - "id": "GoogleCloudAiplatformV1CsvSource", + "GoogleCloudAiplatformV1CompleteTrialRequest": { + "description": "Request message for VizierService.CompleteTrial.", + "id": "GoogleCloudAiplatformV1CompleteTrialRequest", "properties": { - "gcsSource": { - "$ref": "GoogleCloudAiplatformV1GcsSource", - "description": "Required. Google Cloud Storage location." + "finalMeasurement": { + "$ref": "GoogleCloudAiplatformV1Measurement", + "description": "Optional. If provided, it will be used as the completed Trial's final_measurement; Otherwise, the service will auto-select a previously reported measurement as the final-measurement" + }, + "infeasibleReason": { + "description": "Optional. A human readable reason why the trial was infeasible. This should only be provided if `trial_infeasible` is true.", + "type": "string" + }, + "trialInfeasible": { + "description": "Optional. True if the Trial cannot be run with the given Parameter, and final_measurement will be ignored.", + "type": "boolean" } }, "type": "object" }, - "GoogleCloudAiplatformV1CustomJob": { - "description": "Represents a job that runs custom workloads such as a Docker container or a Python package. A CustomJob can have multiple worker pools and each worker pool can have its own machine and input spec. A CustomJob will be cleaned up once the job enters terminal state (failed or succeeded).", - "id": "GoogleCloudAiplatformV1CustomJob", + "GoogleCloudAiplatformV1CompletionStats": { + "description": "Success and error statistics of processing multiple entities (for example, DataItems or structured data rows) in batch.", + "id": "GoogleCloudAiplatformV1CompletionStats", "properties": { - "createTime": { - "description": "Output only. Time when the CustomJob was created.", - "format": "google-datetime", + "failedCount": { + "description": "Output only. The number of entities for which any error was encountered.", + "format": "int64", "readOnly": true, "type": "string" }, - "displayName": { - "description": "Required. The display name of the CustomJob. The name can be up to 128 characters long and can consist of any UTF-8 characters.", + "incompleteCount": { + "description": "Output only. In cases when enough errors are encountered a job, pipeline, or operation may be failed as a whole. Below is the number of entities for which the processing had not been finished (either in successful or failed state). Set to -1 if the number is unknown (for example, the operation failed before the total entity number could be collected).", + "format": "int64", + "readOnly": true, "type": "string" }, - "encryptionSpec": { - "$ref": "GoogleCloudAiplatformV1EncryptionSpec", - "description": "Customer-managed encryption key options for a CustomJob. If this is set, then all resources created by the CustomJob will be encrypted with the provided encryption key." - }, - "endTime": { - "description": "Output only. Time when the CustomJob entered any of the following states: `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED`, `JOB_STATE_CANCELLED`.", - "format": "google-datetime", + "successfulCount": { + "description": "Output only. The number of entities that had been processed successfully.", + "format": "int64", "readOnly": true, "type": "string" }, - "error": { - "$ref": "GoogleRpcStatus", - "description": "Output only. Only populated when job's state is `JOB_STATE_FAILED` or `JOB_STATE_CANCELLED`.", - "readOnly": true - }, - "jobSpec": { - "$ref": "GoogleCloudAiplatformV1CustomJobSpec", - "description": "Required. Job spec." - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "The labels with user-defined metadata to organize CustomJobs. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels.", - "type": "object" - }, - "name": { - "description": "Output only. Resource name of a CustomJob.", - "readOnly": true, - "type": "string" - }, - "startTime": { - "description": "Output only. Time when the CustomJob for the first time entered the `JOB_STATE_RUNNING` state.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "state": { - "description": "Output only. The detailed state of the job.", - "enum": [ - "JOB_STATE_UNSPECIFIED", - "JOB_STATE_QUEUED", - "JOB_STATE_PENDING", - "JOB_STATE_RUNNING", - "JOB_STATE_SUCCEEDED", - "JOB_STATE_FAILED", - "JOB_STATE_CANCELLING", - "JOB_STATE_CANCELLED", - "JOB_STATE_PAUSED", - "JOB_STATE_EXPIRED", - "JOB_STATE_UPDATING", - "JOB_STATE_PARTIALLY_SUCCEEDED" - ], - "enumDescriptions": [ - "The job state is unspecified.", - "The job has been just created or resumed and processing has not yet begun.", - "The service is preparing to run the job.", - "The job is in progress.", - "The job completed successfully.", - "The job failed.", - "The job is being cancelled. From this state the job may only go to either `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED` or `JOB_STATE_CANCELLED`.", - "The job has been cancelled.", - "The job has been stopped, and can be resumed.", - "The job has expired.", - "The job is being updated. Only jobs in the `RUNNING` state can be updated. After updating, the job goes back to the `RUNNING` state.", - "The job is partially succeeded, some results may be missing due to errors." - ], - "readOnly": true, - "type": "string" - }, - "updateTime": { - "description": "Output only. Time when the CustomJob was most recently updated.", - "format": "google-datetime", + "successfulForecastPointCount": { + "description": "Output only. The number of the successful forecast points that are generated by the forecasting model. This is ONLY used by the forecasting batch prediction.", + "format": "int64", "readOnly": true, "type": "string" - }, - "webAccessUris": { - "additionalProperties": { - "type": "string" - }, - "description": "Output only. URIs for accessing [interactive shells](https://cloud.google.com/vertex-ai/docs/training/monitor-debug-interactive-shell) (one URI for each training node). Only available if job_spec.enable_web_access is `true`. The keys are names of each node in the training job; for example, `workerpool0-0` for the primary node, `workerpool1-0` for the first node in the second worker pool, and `workerpool1-1` for the second node in the second worker pool. The values are the URIs for each node's interactive shell.", - "readOnly": true, - "type": "object" } }, "type": "object" }, - "GoogleCloudAiplatformV1CustomJobSpec": { - "description": "Represents the spec of a CustomJob.", - "id": "GoogleCloudAiplatformV1CustomJobSpec", + "GoogleCloudAiplatformV1ComputeTokensRequest": { + "description": "Request message for ComputeTokens RPC call.", + "id": "GoogleCloudAiplatformV1ComputeTokensRequest", "properties": { - "baseOutputDirectory": { - "$ref": "GoogleCloudAiplatformV1GcsDestination", - "description": "The Cloud Storage location to store the output of this CustomJob or HyperparameterTuningJob. For HyperparameterTuningJob, the baseOutputDirectory of each child CustomJob backing a Trial is set to a subdirectory of name id under its parent HyperparameterTuningJob's baseOutputDirectory. The following Vertex AI environment variables will be passed to containers or python modules when this field is set: For CustomJob: * AIP_MODEL_DIR = `/model/` * AIP_CHECKPOINT_DIR = `/checkpoints/` * AIP_TENSORBOARD_LOG_DIR = `/logs/` For CustomJob backing a Trial of HyperparameterTuningJob: * AIP_MODEL_DIR = `//model/` * AIP_CHECKPOINT_DIR = `//checkpoints/` * AIP_TENSORBOARD_LOG_DIR = `//logs/`" - }, - "enableDashboardAccess": { - "description": "Optional. Whether you want Vertex AI to enable access to the customized dashboard in training chief container. If set to `true`, you can access the dashboard at the URIs given by CustomJob.web_access_uris or Trial.web_access_uris (within HyperparameterTuningJob.trials).", - "type": "boolean" - }, - "enableWebAccess": { - "description": "Optional. Whether you want Vertex AI to enable [interactive shell access](https://cloud.google.com/vertex-ai/docs/training/monitor-debug-interactive-shell) to training containers. If set to `true`, you can access interactive shells at the URIs given by CustomJob.web_access_uris or Trial.web_access_uris (within HyperparameterTuningJob.trials).", - "type": "boolean" - }, - "experiment": { - "description": "Optional. The Experiment associated with this job. Format: `projects/{project}/locations/{location}/metadataStores/{metadataStores}/contexts/{experiment-name}`", - "type": "string" - }, - "experimentRun": { - "description": "Optional. The Experiment Run associated with this job. Format: `projects/{project}/locations/{location}/metadataStores/{metadataStores}/contexts/{experiment-name}-{experiment-run-name}`", - "type": "string" - }, - "network": { - "description": "Optional. The full name of the Compute Engine [network](/compute/docs/networks-and-firewalls#networks) to which the Job should be peered. For example, `projects/12345/global/networks/myVPC`. [Format](/compute/docs/reference/rest/v1/networks/insert) is of the form `projects/{project}/global/networks/{network}`. Where {project} is a project number, as in `12345`, and {network} is a network name. To specify this field, you must have already [configured VPC Network Peering for Vertex AI](https://cloud.google.com/vertex-ai/docs/general/vpc-peering). If this field is left unspecified, the job is not peered with any network.", - "type": "string" - }, - "protectedArtifactLocationId": { - "description": "The ID of the location to store protected artifacts. e.g. us-central1. Populate only when the location is different than CustomJob location. List of supported locations: https://cloud.google.com/vertex-ai/docs/general/locations", - "type": "string" - }, - "reservedIpRanges": { - "description": "Optional. A list of names for the reserved ip ranges under the VPC network that can be used for this job. If set, we will deploy the job within the provided ip ranges. Otherwise, the job will be deployed to any ip ranges under the provided VPC network. Example: ['vertex-ai-ip-range'].", - "items": { - "type": "string" - }, - "type": "array" - }, - "scheduling": { - "$ref": "GoogleCloudAiplatformV1Scheduling", - "description": "Scheduling options for a CustomJob." - }, - "serviceAccount": { - "description": "Specifies the service account for workload run-as account. Users submitting jobs must have act-as permission on this run-as account. If unspecified, the [Vertex AI Custom Code Service Agent](https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) for the CustomJob's project is used.", - "type": "string" - }, - "tensorboard": { - "description": "Optional. The name of a Vertex AI Tensorboard resource to which this CustomJob will upload Tensorboard logs. Format: `projects/{project}/locations/{location}/tensorboards/{tensorboard}`", - "type": "string" - }, - "workerPoolSpecs": { - "description": "Required. The spec of the worker pools including machine type and Docker image. All worker pools except the first one are optional and can be skipped by providing an empty value.", + "instances": { + "description": "Required. The instances that are the input to token computing API call. Schema is identical to the prediction schema of the text model, even for the non-text models, like chat models, or Codey models.", "items": { - "$ref": "GoogleCloudAiplatformV1WorkerPoolSpec" + "type": "any" }, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1DataItem": { - "description": "A piece of data in a Dataset. Could be an image, a video, a document or plain text.", - "id": "GoogleCloudAiplatformV1DataItem", + "GoogleCloudAiplatformV1ComputeTokensResponse": { + "description": "Response message for ComputeTokens RPC call.", + "id": "GoogleCloudAiplatformV1ComputeTokensResponse", "properties": { - "createTime": { - "description": "Output only. Timestamp when this DataItem was created.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "etag": { - "description": "Optional. Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", - "type": "string" - }, - "labels": { - "additionalProperties": { - "type": "string" + "tokensInfo": { + "description": "Lists of tokens info from the input. A ComputeTokensRequest could have multiple instances with a prompt in each instance. We also need to return lists of tokens info for the request with multiple instances.", + "items": { + "$ref": "GoogleCloudAiplatformV1TokensInfo" }, - "description": "Optional. The labels with user-defined metadata to organize your DataItems. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. No more than 64 user labels can be associated with one DataItem(System labels are excluded). See https://goo.gl/xmQnxf for more information and examples of labels. System reserved label keys are prefixed with \"aiplatform.googleapis.com/\" and are immutable.", - "type": "object" - }, - "name": { - "description": "Output only. The resource name of the DataItem.", - "readOnly": true, - "type": "string" - }, - "payload": { - "description": "Required. The data that the DataItem represents (for example, an image or a text snippet). The schema of the payload is stored in the parent Dataset's metadata schema's dataItemSchemaUri field.", - "type": "any" - }, - "updateTime": { - "description": "Output only. Timestamp when this DataItem was last updated.", - "format": "google-datetime", - "readOnly": true, - "type": "string" + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1DataItemView": { - "description": "A container for a single DataItem and Annotations on it.", - "id": "GoogleCloudAiplatformV1DataItemView", + "GoogleCloudAiplatformV1ContainerRegistryDestination": { + "description": "The Container Registry location for the container image.", + "id": "GoogleCloudAiplatformV1ContainerRegistryDestination", "properties": { - "annotations": { - "description": "The Annotations on the DataItem. If too many Annotations should be returned for the DataItem, this field will be truncated per annotations_limit in request. If it was, then the has_truncated_annotations will be set to true.", - "items": { - "$ref": "GoogleCloudAiplatformV1Annotation" - }, - "type": "array" - }, - "dataItem": { - "$ref": "GoogleCloudAiplatformV1DataItem", - "description": "The DataItem." - }, - "hasTruncatedAnnotations": { - "description": "True if and only if the Annotations field has been truncated. It happens if more Annotations for this DataItem met the request's annotation_filter than are allowed to be returned by annotations_limit. Note that if Annotations field is not being returned due to field mask, then this field will not be set to true no matter how many Annotations are there.", - "type": "boolean" + "outputUri": { + "description": "Required. Container Registry URI of a container image. Only Google Container Registry and Artifact Registry are supported now. Accepted forms: * Google Container Registry path. For example: `gcr.io/projectId/imageName:tag`. * Artifact Registry path. For example: `us-central1-docker.pkg.dev/projectId/repoName/imageName:tag`. If a tag is not specified, \"latest\" will be used as the default tag.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1DataLabelingJob": { - "description": "DataLabelingJob is used to trigger a human labeling job on unlabeled data from the following Dataset:", - "id": "GoogleCloudAiplatformV1DataLabelingJob", + "GoogleCloudAiplatformV1ContainerSpec": { + "description": "The spec of a Container.", + "id": "GoogleCloudAiplatformV1ContainerSpec", "properties": { - "activeLearningConfig": { - "$ref": "GoogleCloudAiplatformV1ActiveLearningConfig", - "description": "Parameters that configure the active learning pipeline. Active learning will label the data incrementally via several iterations. For every iteration, it will select a batch of data based on the sampling strategy." - }, - "annotationLabels": { - "additionalProperties": { + "args": { + "description": "The arguments to be passed when starting the container.", + "items": { "type": "string" }, - "description": "Labels to assign to annotations generated by this DataLabelingJob. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels. System reserved label keys are prefixed with \"aiplatform.googleapis.com/\" and are immutable.", - "type": "object" - }, - "createTime": { - "description": "Output only. Timestamp when this DataLabelingJob was created.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "currentSpend": { - "$ref": "GoogleTypeMoney", - "description": "Output only. Estimated cost(in US dollars) that the DataLabelingJob has incurred to date.", - "readOnly": true + "type": "array" }, - "datasets": { - "description": "Required. Dataset resource names. Right now we only support labeling from a single Dataset. Format: `projects/{project}/locations/{location}/datasets/{dataset}`", + "command": { + "description": "The command to be invoked when the container is started. It overrides the entrypoint instruction in Dockerfile when provided.", "items": { "type": "string" }, "type": "array" }, - "displayName": { - "description": "Required. The user-defined name of the DataLabelingJob. The name can be up to 128 characters long and can consist of any UTF-8 characters. Display name of a DataLabelingJob.", - "type": "string" - }, - "encryptionSpec": { - "$ref": "GoogleCloudAiplatformV1EncryptionSpec", - "description": "Customer-managed encryption key spec for a DataLabelingJob. If set, this DataLabelingJob will be secured by this key. Note: Annotations created in the DataLabelingJob are associated with the EncryptionSpec of the Dataset they are exported to." - }, - "error": { - "$ref": "GoogleRpcStatus", - "description": "Output only. DataLabelingJob errors. It is only populated when job's state is `JOB_STATE_FAILED` or `JOB_STATE_CANCELLED`.", - "readOnly": true - }, - "inputs": { - "description": "Required. Input config parameters for the DataLabelingJob.", - "type": "any" - }, - "inputsSchemaUri": { - "description": "Required. Points to a YAML file stored on Google Cloud Storage describing the config for a specific type of DataLabelingJob. The schema files that can be used here are found in the https://storage.googleapis.com/google-cloud-aiplatform bucket in the /schema/datalabelingjob/inputs/ folder.", - "type": "string" - }, - "instructionUri": { - "description": "Required. The Google Cloud Storage location of the instruction pdf. This pdf is shared with labelers, and provides detailed description on how to label DataItems in Datasets.", - "type": "string" - }, - "labelerCount": { - "description": "Required. Number of labelers to work on each DataItem.", - "format": "int32", - "type": "integer" - }, - "labelingProgress": { - "description": "Output only. Current labeling job progress percentage scaled in interval [0, 100], indicating the percentage of DataItems that has been finished.", - "format": "int32", - "readOnly": true, - "type": "integer" - }, - "labels": { - "additionalProperties": { - "type": "string" + "env": { + "description": "Environment variables to be passed to the container. Maximum limit is 100.", + "items": { + "$ref": "GoogleCloudAiplatformV1EnvVar" }, - "description": "The labels with user-defined metadata to organize your DataLabelingJobs. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels. System reserved label keys are prefixed with \"aiplatform.googleapis.com/\" and are immutable. Following system labels exist for each DataLabelingJob: * \"aiplatform.googleapis.com/schema\": output only, its value is the inputs_schema's title.", - "type": "object" + "type": "array" }, - "name": { - "description": "Output only. Resource name of the DataLabelingJob.", - "readOnly": true, + "imageUri": { + "description": "Required. The URI of a container image in the Container Registry that is to be run on each worker replica.", "type": "string" - }, - "specialistPools": { - "description": "The SpecialistPools' resource names associated with this job.", + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1Content": { + "description": "The base structured datatype containing multi-part content of a message. A `Content` includes a `role` field designating the producer of the `Content` and a `parts` field containing multi-part data that contains the content of the message turn.", + "id": "GoogleCloudAiplatformV1Content", + "properties": { + "parts": { + "description": "Required. Ordered `Parts` that constitute a single message. Parts may have different IANA MIME types.", "items": { - "type": "string" + "$ref": "GoogleCloudAiplatformV1Part" }, "type": "array" }, - "state": { - "description": "Output only. The detailed state of the job.", - "enum": [ - "JOB_STATE_UNSPECIFIED", - "JOB_STATE_QUEUED", - "JOB_STATE_PENDING", - "JOB_STATE_RUNNING", - "JOB_STATE_SUCCEEDED", - "JOB_STATE_FAILED", - "JOB_STATE_CANCELLING", - "JOB_STATE_CANCELLED", - "JOB_STATE_PAUSED", - "JOB_STATE_EXPIRED", - "JOB_STATE_UPDATING", - "JOB_STATE_PARTIALLY_SUCCEEDED" - ], - "enumDescriptions": [ - "The job state is unspecified.", - "The job has been just created or resumed and processing has not yet begun.", - "The service is preparing to run the job.", - "The job is in progress.", - "The job completed successfully.", - "The job failed.", - "The job is being cancelled. From this state the job may only go to either `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED` or `JOB_STATE_CANCELLED`.", - "The job has been cancelled.", - "The job has been stopped, and can be resumed.", - "The job has expired.", - "The job is being updated. Only jobs in the `RUNNING` state can be updated. After updating, the job goes back to the `RUNNING` state.", - "The job is partially succeeded, some results may be missing due to errors." - ], - "readOnly": true, - "type": "string" - }, - "updateTime": { - "description": "Output only. Timestamp when this DataLabelingJob was updated most recently.", - "format": "google-datetime", - "readOnly": true, + "role": { + "description": "Optional. The producer of the content. Must be either 'user' or 'model'. Useful to set for multi-turn conversations, otherwise can be left blank or unset.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1Dataset": { - "description": "A collection of DataItems and Annotations on them.", - "id": "GoogleCloudAiplatformV1Dataset", + "GoogleCloudAiplatformV1Context": { + "description": "Instance of a general context.", + "id": "GoogleCloudAiplatformV1Context", "properties": { "createTime": { - "description": "Output only. Timestamp when this Dataset was created.", + "description": "Output only. Timestamp when this Context was created.", "format": "google-datetime", "readOnly": true, "type": "string" }, - "dataItemCount": { - "description": "Output only. The number of DataItems in this Dataset. Only apply for non-structured Dataset.", - "format": "int64", - "readOnly": true, - "type": "string" - }, "description": { - "description": "The description of the Dataset.", + "description": "Description of the Context", "type": "string" }, "displayName": { - "description": "Required. The user-defined name of the Dataset. The name can be up to 128 characters long and can consist of any UTF-8 characters.", + "description": "User provided display name of the Context. May be up to 128 Unicode characters.", "type": "string" }, - "encryptionSpec": { - "$ref": "GoogleCloudAiplatformV1EncryptionSpec", - "description": "Customer-managed encryption key spec for a Dataset. If set, this Dataset and all sub-resources of this Dataset will be secured by this key." - }, "etag": { - "description": "Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "description": "An eTag used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", "type": "string" }, "labels": { "additionalProperties": { "type": "string" }, - "description": "The labels with user-defined metadata to organize your Datasets. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. No more than 64 user labels can be associated with one Dataset (System labels are excluded). See https://goo.gl/xmQnxf for more information and examples of labels. System reserved label keys are prefixed with \"aiplatform.googleapis.com/\" and are immutable. Following system labels exist for each Dataset: * \"aiplatform.googleapis.com/dataset_metadata_schema\": output only, its value is the metadata_schema's title.", + "description": "The labels with user-defined metadata to organize your Contexts. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. No more than 64 user labels can be associated with one Context (System labels are excluded).", "type": "object" }, "metadata": { - "description": "Required. Additional information about the Dataset.", - "type": "any" - }, - "metadataArtifact": { - "description": "Output only. The resource name of the Artifact that was created in MetadataStore when creating the Dataset. The Artifact resource name pattern is `projects/{project}/locations/{location}/metadataStores/{metadata_store}/artifacts/{artifact}`.", - "readOnly": true, - "type": "string" - }, - "metadataSchemaUri": { - "description": "Required. Points to a YAML file stored on Google Cloud Storage describing additional information about the Dataset. The schema is defined as an OpenAPI 3.0.2 Schema Object. The schema files that can be used here are found in gs://google-cloud-aiplatform/schema/dataset/metadata/.", - "type": "string" + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Properties of the Context. Top level metadata keys' heading and trailing spaces will be trimmed. The size of this field should not exceed 200KB.", + "type": "object" }, "name": { - "description": "Output only. The resource name of the Dataset.", - "readOnly": true, + "description": "Immutable. The resource name of the Context.", "type": "string" }, - "savedQueries": { - "description": "All SavedQueries belong to the Dataset will be returned in List/Get Dataset response. The annotation_specs field will not be populated except for UI cases which will only use annotation_spec_count. In CreateDataset request, a SavedQuery is created together if this field is set, up to one SavedQuery can be set in CreateDatasetRequest. The SavedQuery should not contain any AnnotationSpec.", + "parentContexts": { + "description": "Output only. A list of resource names of Contexts that are parents of this Context. A Context may have at most 10 parent_contexts.", "items": { - "$ref": "GoogleCloudAiplatformV1SavedQuery" + "type": "string" }, + "readOnly": true, "type": "array" }, + "schemaTitle": { + "description": "The title of the schema describing the metadata. Schema title and version is expected to be registered in earlier Create Schema calls. And both are used together as unique identifiers to identify schemas within the local metadata store.", + "type": "string" + }, + "schemaVersion": { + "description": "The version of the schema in schema_name to use. Schema title and version is expected to be registered in earlier Create Schema calls. And both are used together as unique identifiers to identify schemas within the local metadata store.", + "type": "string" + }, "updateTime": { - "description": "Output only. Timestamp when this Dataset was last updated.", + "description": "Output only. Timestamp when this Context was last updated.", "format": "google-datetime", "readOnly": true, "type": "string" @@ -16740,239 +18065,245 @@ }, "type": "object" }, - "GoogleCloudAiplatformV1DatasetVersion": { - "description": "Describes the dataset version.", - "id": "GoogleCloudAiplatformV1DatasetVersion", + "GoogleCloudAiplatformV1CopyModelOperationMetadata": { + "description": "Details of ModelService.CopyModel operation.", + "id": "GoogleCloudAiplatformV1CopyModelOperationMetadata", "properties": { - "bigQueryDatasetName": { - "description": "Output only. Name of the associated BigQuery dataset.", - "readOnly": true, - "type": "string" + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "The common part of the operation metadata." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1CopyModelRequest": { + "description": "Request message for ModelService.CopyModel.", + "id": "GoogleCloudAiplatformV1CopyModelRequest", + "properties": { + "encryptionSpec": { + "$ref": "GoogleCloudAiplatformV1EncryptionSpec", + "description": "Customer-managed encryption key options. If this is set, then the Model copy will be encrypted with the provided encryption key." }, - "createTime": { - "description": "Output only. Timestamp when this DatasetVersion was created.", - "format": "google-datetime", - "readOnly": true, + "modelId": { + "description": "Optional. Copy source_model into a new Model with this ID. The ID will become the final component of the model resource name. This value may be up to 63 characters, and valid characters are `[a-z0-9_-]`. The first character cannot be a number or hyphen.", "type": "string" }, - "etag": { - "description": "Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "parentModel": { + "description": "Optional. Specify this field to copy source_model into this existing Model as a new version. Format: `projects/{project}/locations/{location}/models/{model}`", "type": "string" }, - "name": { - "description": "Output only. The resource name of the DatasetVersion.", - "readOnly": true, + "sourceModel": { + "description": "Required. The resource name of the Model to copy. That Model must be in the same Project. Format: `projects/{project}/locations/{location}/models/{model}`", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1CopyModelResponse": { + "description": "Response message of ModelService.CopyModel operation.", + "id": "GoogleCloudAiplatformV1CopyModelResponse", + "properties": { + "model": { + "description": "The name of the copied Model resource. Format: `projects/{project}/locations/{location}/models/{model}`", "type": "string" }, - "updateTime": { - "description": "Output only. Timestamp when this DatasetVersion was last updated.", - "format": "google-datetime", + "modelVersionId": { + "description": "Output only. The version ID of the model that is copied.", "readOnly": true, "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1DedicatedResources": { - "description": "A description of resources that are dedicated to a DeployedModel, and that need a higher degree of manual configuration.", - "id": "GoogleCloudAiplatformV1DedicatedResources", + "GoogleCloudAiplatformV1CountTokensRequest": { + "description": "Request message for PredictionService.CountTokens.", + "id": "GoogleCloudAiplatformV1CountTokensRequest", "properties": { - "autoscalingMetricSpecs": { - "description": "Immutable. The metric specifications that overrides a resource utilization metric (CPU utilization, accelerator's duty cycle, and so on) target value (default to 60 if not set). At most one entry is allowed per metric. If machine_spec.accelerator_count is above 0, the autoscaling will be based on both CPU utilization and accelerator's duty cycle metrics and scale up when either metrics exceeds its target value while scale down if both metrics are under their target value. The default target value is 60 for both metrics. If machine_spec.accelerator_count is 0, the autoscaling will be based on CPU utilization metric only with default target value 60 if not explicitly set. For example, in the case of Online Prediction, if you want to override target CPU utilization to 80, you should set autoscaling_metric_specs.metric_name to `aiplatform.googleapis.com/prediction/online/cpu/utilization` and autoscaling_metric_specs.target to `80`.", + "contents": { + "description": "Required. Input content.", "items": { - "$ref": "GoogleCloudAiplatformV1AutoscalingMetricSpec" + "$ref": "GoogleCloudAiplatformV1Content" }, "type": "array" }, - "machineSpec": { - "$ref": "GoogleCloudAiplatformV1MachineSpec", - "description": "Required. Immutable. The specification of a single machine used by the prediction." + "instances": { + "description": "Required. The instances that are the input to token counting call. Schema is identical to the prediction schema of the underlying model.", + "items": { + "type": "any" + }, + "type": "array" }, - "maxReplicaCount": { - "description": "Immutable. The maximum number of replicas this DeployedModel may be deployed on when the traffic against it increases. If the requested value is too large, the deployment will error, but if deployment succeeds then the ability to scale the model to that many replicas is guaranteed (barring service outages). If traffic against the DeployedModel increases beyond what its replicas at maximum may handle, a portion of the traffic will be dropped. If this value is not provided, will use min_replica_count as the default value. The value of this field impacts the charge against Vertex CPU and GPU quotas. Specifically, you will be charged for (max_replica_count * number of cores in the selected machine type) and (max_replica_count * number of GPUs per replica in the selected machine type).", + "model": { + "description": "Required. The name of the publisher model requested to serve the prediction. Format: `projects/{project}/locations/{location}/publishers/*/models/*`", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1CountTokensResponse": { + "description": "Response message for PredictionService.CountTokens.", + "id": "GoogleCloudAiplatformV1CountTokensResponse", + "properties": { + "totalBillableCharacters": { + "description": "The total number of billable characters counted across all instances from the request.", "format": "int32", "type": "integer" }, - "minReplicaCount": { - "description": "Required. Immutable. The minimum number of machine replicas this DeployedModel will be always deployed on. This value must be greater than or equal to 1. If traffic against the DeployedModel increases, it may dynamically be deployed onto more replicas, and as traffic decreases, some of these extra replicas may be freed.", + "totalTokens": { + "description": "The total number of tokens counted across all instances from the request.", "format": "int32", "type": "integer" } }, "type": "object" }, - "GoogleCloudAiplatformV1DeleteFeatureValuesOperationMetadata": { - "description": "Details of operations that delete Feature values.", - "id": "GoogleCloudAiplatformV1DeleteFeatureValuesOperationMetadata", + "GoogleCloudAiplatformV1CreateDatasetOperationMetadata": { + "description": "Runtime operation information for DatasetService.CreateDataset.", + "id": "GoogleCloudAiplatformV1CreateDatasetOperationMetadata", "properties": { "genericMetadata": { "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "Operation metadata for Featurestore delete Features values." + "description": "The operation generic information." } }, "type": "object" }, - "GoogleCloudAiplatformV1DeleteFeatureValuesRequest": { - "description": "Request message for FeaturestoreService.DeleteFeatureValues.", - "id": "GoogleCloudAiplatformV1DeleteFeatureValuesRequest", + "GoogleCloudAiplatformV1CreateDatasetVersionOperationMetadata": { + "description": "Runtime operation information for DatasetService.CreateDatasetVersion.", + "id": "GoogleCloudAiplatformV1CreateDatasetVersionOperationMetadata", "properties": { - "selectEntity": { - "$ref": "GoogleCloudAiplatformV1DeleteFeatureValuesRequestSelectEntity", - "description": "Select feature values to be deleted by specifying entities." - }, - "selectTimeRangeAndFeature": { - "$ref": "GoogleCloudAiplatformV1DeleteFeatureValuesRequestSelectTimeRangeAndFeature", - "description": "Select feature values to be deleted by specifying time range and features." + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "The common part of the operation metadata." } }, "type": "object" }, - "GoogleCloudAiplatformV1DeleteFeatureValuesRequestSelectEntity": { - "description": "Message to select entity. If an entity id is selected, all the feature values corresponding to the entity id will be deleted, including the entityId.", - "id": "GoogleCloudAiplatformV1DeleteFeatureValuesRequestSelectEntity", + "GoogleCloudAiplatformV1CreateDeploymentResourcePoolOperationMetadata": { + "description": "Runtime operation information for CreateDeploymentResourcePool method.", + "id": "GoogleCloudAiplatformV1CreateDeploymentResourcePoolOperationMetadata", "properties": { - "entityIdSelector": { - "$ref": "GoogleCloudAiplatformV1EntityIdSelector", - "description": "Required. Selectors choosing feature values of which entity id to be deleted from the EntityType." + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "The operation generic information." } }, "type": "object" }, - "GoogleCloudAiplatformV1DeleteFeatureValuesRequestSelectTimeRangeAndFeature": { - "description": "Message to select time range and feature. Values of the selected feature generated within an inclusive time range will be deleted. Using this option permanently deletes the feature values from the specified feature IDs within the specified time range. This might include data from the online storage. If you want to retain any deleted historical data in the online storage, you must re-ingest it.", - "id": "GoogleCloudAiplatformV1DeleteFeatureValuesRequestSelectTimeRangeAndFeature", + "GoogleCloudAiplatformV1CreateDeploymentResourcePoolRequest": { + "description": "Request message for CreateDeploymentResourcePool method.", + "id": "GoogleCloudAiplatformV1CreateDeploymentResourcePoolRequest", "properties": { - "featureSelector": { - "$ref": "GoogleCloudAiplatformV1FeatureSelector", - "description": "Required. Selectors choosing which feature values to be deleted from the EntityType." - }, - "skipOnlineStorageDelete": { - "description": "If set, data will not be deleted from online storage. When time range is older than the data in online storage, setting this to be true will make the deletion have no impact on online serving.", - "type": "boolean" + "deploymentResourcePool": { + "$ref": "GoogleCloudAiplatformV1DeploymentResourcePool", + "description": "Required. The DeploymentResourcePool to create." }, - "timeRange": { - "$ref": "GoogleTypeInterval", - "description": "Required. Select feature generated within a half-inclusive time range. The time range is lower inclusive and upper exclusive." + "deploymentResourcePoolId": { + "description": "Required. The ID to use for the DeploymentResourcePool, which will become the final component of the DeploymentResourcePool's resource name. The maximum length is 63 characters, and valid characters are `/^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$/`.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1DeleteFeatureValuesResponse": { - "description": "Response message for FeaturestoreService.DeleteFeatureValues.", - "id": "GoogleCloudAiplatformV1DeleteFeatureValuesResponse", + "GoogleCloudAiplatformV1CreateEndpointOperationMetadata": { + "description": "Runtime operation information for EndpointService.CreateEndpoint.", + "id": "GoogleCloudAiplatformV1CreateEndpointOperationMetadata", "properties": { - "selectEntity": { - "$ref": "GoogleCloudAiplatformV1DeleteFeatureValuesResponseSelectEntity", - "description": "Response for request specifying the entities to delete" - }, - "selectTimeRangeAndFeature": { - "$ref": "GoogleCloudAiplatformV1DeleteFeatureValuesResponseSelectTimeRangeAndFeature", - "description": "Response for request specifying time range and feature" + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "The operation generic information." } }, "type": "object" }, - "GoogleCloudAiplatformV1DeleteFeatureValuesResponseSelectEntity": { - "description": "Response message if the request uses the SelectEntity option.", - "id": "GoogleCloudAiplatformV1DeleteFeatureValuesResponseSelectEntity", + "GoogleCloudAiplatformV1CreateEntityTypeOperationMetadata": { + "description": "Details of operations that perform create EntityType.", + "id": "GoogleCloudAiplatformV1CreateEntityTypeOperationMetadata", "properties": { - "offlineStorageDeletedEntityRowCount": { - "description": "The count of deleted entity rows in the offline storage. Each row corresponds to the combination of an entity ID and a timestamp. One entity ID can have multiple rows in the offline storage.", - "format": "int64", - "type": "string" - }, - "onlineStorageDeletedEntityCount": { - "description": "The count of deleted entities in the online storage. Each entity ID corresponds to one entity.", - "format": "int64", - "type": "string" + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "Operation metadata for EntityType." } }, "type": "object" }, - "GoogleCloudAiplatformV1DeleteFeatureValuesResponseSelectTimeRangeAndFeature": { - "description": "Response message if the request uses the SelectTimeRangeAndFeature option.", - "id": "GoogleCloudAiplatformV1DeleteFeatureValuesResponseSelectTimeRangeAndFeature", + "GoogleCloudAiplatformV1CreateFeatureGroupOperationMetadata": { + "description": "Details of operations that perform create FeatureGroup.", + "id": "GoogleCloudAiplatformV1CreateFeatureGroupOperationMetadata", "properties": { - "impactedFeatureCount": { - "description": "The count of the features or columns impacted. This is the same as the feature count in the request.", - "format": "int64", - "type": "string" - }, - "offlineStorageModifiedEntityRowCount": { - "description": "The count of modified entity rows in the offline storage. Each row corresponds to the combination of an entity ID and a timestamp. One entity ID can have multiple rows in the offline storage. Within each row, only the features specified in the request are deleted.", - "format": "int64", - "type": "string" - }, - "onlineStorageModifiedEntityCount": { - "description": "The count of modified entities in the online storage. Each entity ID corresponds to one entity. Within each entity, only the features specified in the request are deleted.", - "format": "int64", - "type": "string" + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "Operation metadata for FeatureGroup." } }, "type": "object" }, - "GoogleCloudAiplatformV1DeleteMetadataStoreOperationMetadata": { - "description": "Details of operations that perform MetadataService.DeleteMetadataStore.", - "id": "GoogleCloudAiplatformV1DeleteMetadataStoreOperationMetadata", + "GoogleCloudAiplatformV1CreateFeatureOnlineStoreOperationMetadata": { + "description": "Details of operations that perform create FeatureOnlineStore.", + "id": "GoogleCloudAiplatformV1CreateFeatureOnlineStoreOperationMetadata", "properties": { "genericMetadata": { "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "Operation metadata for deleting a MetadataStore." + "description": "Operation metadata for FeatureOnlineStore." } }, "type": "object" }, - "GoogleCloudAiplatformV1DeleteOperationMetadata": { - "description": "Details of operations that perform deletes of any entities.", - "id": "GoogleCloudAiplatformV1DeleteOperationMetadata", + "GoogleCloudAiplatformV1CreateFeatureOperationMetadata": { + "description": "Details of operations that perform create Feature.", + "id": "GoogleCloudAiplatformV1CreateFeatureOperationMetadata", "properties": { "genericMetadata": { "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "The common part of the operation metadata." + "description": "Operation metadata for Feature." } }, "type": "object" }, - "GoogleCloudAiplatformV1DeployIndexOperationMetadata": { - "description": "Runtime operation information for IndexEndpointService.DeployIndex.", - "id": "GoogleCloudAiplatformV1DeployIndexOperationMetadata", + "GoogleCloudAiplatformV1CreateFeatureRequest": { + "description": "Request message for FeaturestoreService.CreateFeature. Request message for FeatureRegistryService.CreateFeature.", + "id": "GoogleCloudAiplatformV1CreateFeatureRequest", "properties": { - "deployedIndexId": { - "description": "The unique index id specified by user", + "feature": { + "$ref": "GoogleCloudAiplatformV1Feature", + "description": "Required. The Feature to create." + }, + "featureId": { + "description": "Required. The ID to use for the Feature, which will become the final component of the Feature's resource name. This value may be up to 128 characters, and valid characters are `[a-z0-9_]`. The first character cannot be a number. The value must be unique within an EntityType/FeatureGroup.", "type": "string" }, - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "The operation generic information." + "parent": { + "description": "Required. The resource name of the EntityType or FeatureGroup to create a Feature. Format for entity_type as parent: `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` Format for feature_group as parent: `projects/{project}/locations/{location}/featureGroups/{feature_group}`", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1DeployIndexRequest": { - "description": "Request message for IndexEndpointService.DeployIndex.", - "id": "GoogleCloudAiplatformV1DeployIndexRequest", + "GoogleCloudAiplatformV1CreateFeatureViewOperationMetadata": { + "description": "Details of operations that perform create FeatureView.", + "id": "GoogleCloudAiplatformV1CreateFeatureViewOperationMetadata", "properties": { - "deployedIndex": { - "$ref": "GoogleCloudAiplatformV1DeployedIndex", - "description": "Required. The DeployedIndex to be created within the IndexEndpoint." + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "Operation metadata for FeatureView Create." } }, "type": "object" }, - "GoogleCloudAiplatformV1DeployIndexResponse": { - "description": "Response message for IndexEndpointService.DeployIndex.", - "id": "GoogleCloudAiplatformV1DeployIndexResponse", + "GoogleCloudAiplatformV1CreateFeaturestoreOperationMetadata": { + "description": "Details of operations that perform create Featurestore.", + "id": "GoogleCloudAiplatformV1CreateFeaturestoreOperationMetadata", "properties": { - "deployedIndex": { - "$ref": "GoogleCloudAiplatformV1DeployedIndex", - "description": "The DeployedIndex that had been deployed in the IndexEndpoint." + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "Operation metadata for Featurestore." } }, "type": "object" }, - "GoogleCloudAiplatformV1DeployModelOperationMetadata": { - "description": "Runtime operation information for EndpointService.DeployModel.", - "id": "GoogleCloudAiplatformV1DeployModelOperationMetadata", + "GoogleCloudAiplatformV1CreateIndexEndpointOperationMetadata": { + "description": "Runtime operation information for IndexEndpointService.CreateIndexEndpoint.", + "id": "GoogleCloudAiplatformV1CreateIndexEndpointOperationMetadata", "properties": { "genericMetadata": { "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", @@ -16981,433 +18312,356 @@ }, "type": "object" }, - "GoogleCloudAiplatformV1DeployModelRequest": { - "description": "Request message for EndpointService.DeployModel.", - "id": "GoogleCloudAiplatformV1DeployModelRequest", + "GoogleCloudAiplatformV1CreateIndexOperationMetadata": { + "description": "Runtime operation information for IndexService.CreateIndex.", + "id": "GoogleCloudAiplatformV1CreateIndexOperationMetadata", "properties": { - "deployedModel": { - "$ref": "GoogleCloudAiplatformV1DeployedModel", - "description": "Required. The DeployedModel to be created within the Endpoint. Note that Endpoint.traffic_split must be updated for the DeployedModel to start receiving traffic, either as part of this call, or via EndpointService.UpdateEndpoint." + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "The operation generic information." }, - "trafficSplit": { - "additionalProperties": { - "format": "int32", - "type": "integer" - }, - "description": "A map from a DeployedModel's ID to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. If this field is non-empty, then the Endpoint's traffic_split will be overwritten with it. To refer to the ID of the just being deployed Model, a \"0\" should be used, and the actual ID of the new DeployedModel will be filled in its place by this method. The traffic percentage values must add up to 100. If this field is empty, then the Endpoint's traffic_split is not updated.", - "type": "object" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1DeployModelResponse": { - "description": "Response message for EndpointService.DeployModel.", - "id": "GoogleCloudAiplatformV1DeployModelResponse", - "properties": { - "deployedModel": { - "$ref": "GoogleCloudAiplatformV1DeployedModel", - "description": "The DeployedModel that had been deployed in the Endpoint." + "nearestNeighborSearchOperationMetadata": { + "$ref": "GoogleCloudAiplatformV1NearestNeighborSearchOperationMetadata", + "description": "The operation metadata with regard to Matching Engine Index operation." } }, "type": "object" }, - "GoogleCloudAiplatformV1DeployedIndex": { - "description": "A deployment of an Index. IndexEndpoints contain one or more DeployedIndexes.", - "id": "GoogleCloudAiplatformV1DeployedIndex", + "GoogleCloudAiplatformV1CreateMetadataStoreOperationMetadata": { + "description": "Details of operations that perform MetadataService.CreateMetadataStore.", + "id": "GoogleCloudAiplatformV1CreateMetadataStoreOperationMetadata", "properties": { - "automaticResources": { - "$ref": "GoogleCloudAiplatformV1AutomaticResources", - "description": "Optional. A description of resources that the DeployedIndex uses, which to large degree are decided by Vertex AI, and optionally allows only a modest additional configuration. If min_replica_count is not set, the default value is 2 (we don't provide SLA when min_replica_count=1). If max_replica_count is not set, the default value is min_replica_count. The max allowed replica count is 1000." - }, - "createTime": { - "description": "Output only. Timestamp when the DeployedIndex was created.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "dedicatedResources": { - "$ref": "GoogleCloudAiplatformV1DedicatedResources", - "description": "Optional. A description of resources that are dedicated to the DeployedIndex, and that need a higher degree of manual configuration. The field min_replica_count must be set to a value strictly greater than 0, or else validation will fail. We don't provide SLA when min_replica_count=1. If max_replica_count is not set, the default value is min_replica_count. The max allowed replica count is 1000. Available machine types for SMALL shard: e2-standard-2 and all machine types available for MEDIUM and LARGE shard. Available machine types for MEDIUM shard: e2-standard-16 and all machine types available for LARGE shard. Available machine types for LARGE shard: e2-highmem-16, n2d-standard-32. n1-standard-16 and n1-standard-32 are still available, but we recommend e2-standard-16 and e2-highmem-16 for cost efficiency." - }, - "deployedIndexAuthConfig": { - "$ref": "GoogleCloudAiplatformV1DeployedIndexAuthConfig", - "description": "Optional. If set, the authentication is enabled for the private endpoint." - }, - "deploymentGroup": { - "description": "Optional. The deployment group can be no longer than 64 characters (eg: 'test', 'prod'). If not set, we will use the 'default' deployment group. Creating `deployment_groups` with `reserved_ip_ranges` is a recommended practice when the peered network has multiple peering ranges. This creates your deployments from predictable IP spaces for easier traffic administration. Also, one deployment_group (except 'default') can only be used with the same reserved_ip_ranges which means if the deployment_group has been used with reserved_ip_ranges: [a, b, c], using it with [a, b] or [d, e] is disallowed. Note: we only support up to 5 deployment groups(not including 'default').", - "type": "string" - }, - "displayName": { - "description": "The display name of the DeployedIndex. If not provided upon creation, the Index's display_name is used.", - "type": "string" - }, - "enableAccessLogging": { - "description": "Optional. If true, private endpoint's access logs are sent to Cloud Logging. These logs are like standard server access logs, containing information like timestamp and latency for each MatchRequest. Note that logs may incur a cost, especially if the deployed index receives a high queries per second rate (QPS). Estimate your costs before enabling this option.", - "type": "boolean" - }, - "id": { - "description": "Required. The user specified ID of the DeployedIndex. The ID can be up to 128 characters long and must start with a letter and only contain letters, numbers, and underscores. The ID must be unique within the project it is created in.", - "type": "string" - }, - "index": { - "description": "Required. The name of the Index this is the deployment of. We may refer to this Index as the DeployedIndex's \"original\" Index.", - "type": "string" - }, - "indexSyncTime": { - "description": "Output only. The DeployedIndex may depend on various data on its original Index. Additionally when certain changes to the original Index are being done (e.g. when what the Index contains is being changed) the DeployedIndex may be asynchronously updated in the background to reflect these changes. If this timestamp's value is at least the Index.update_time of the original Index, it means that this DeployedIndex and the original Index are in sync. If this timestamp is older, then to see which updates this DeployedIndex already contains (and which it does not), one must list the operations that are running on the original Index. Only the successfully completed Operations with update_time equal or before this sync time are contained in this DeployedIndex.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "privateEndpoints": { - "$ref": "GoogleCloudAiplatformV1IndexPrivateEndpoints", - "description": "Output only. Provides paths for users to send requests directly to the deployed index services running on Cloud via private services access. This field is populated if network is configured.", - "readOnly": true - }, - "reservedIpRanges": { - "description": "Optional. A list of reserved ip ranges under the VPC network that can be used for this DeployedIndex. If set, we will deploy the index within the provided ip ranges. Otherwise, the index might be deployed to any ip ranges under the provided VPC network. The value should be the name of the address (https://cloud.google.com/compute/docs/reference/rest/v1/addresses) Example: ['vertex-ai-ip-range']. For more information about subnets and network IP ranges, please see https://cloud.google.com/vpc/docs/subnets#manually_created_subnet_ip_ranges.", - "items": { - "type": "string" - }, - "type": "array" + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "Operation metadata for creating a MetadataStore." } }, "type": "object" }, - "GoogleCloudAiplatformV1DeployedIndexAuthConfig": { - "description": "Used to set up the auth on the DeployedIndex's private endpoint.", - "id": "GoogleCloudAiplatformV1DeployedIndexAuthConfig", + "GoogleCloudAiplatformV1CreateNotebookRuntimeTemplateOperationMetadata": { + "description": "Metadata information for NotebookService.CreateNotebookRuntimeTemplate.", + "id": "GoogleCloudAiplatformV1CreateNotebookRuntimeTemplateOperationMetadata", "properties": { - "authProvider": { - "$ref": "GoogleCloudAiplatformV1DeployedIndexAuthConfigAuthProvider", - "description": "Defines the authentication provider that the DeployedIndex uses." + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "The operation generic information." } }, "type": "object" }, - "GoogleCloudAiplatformV1DeployedIndexAuthConfigAuthProvider": { - "description": "Configuration for an authentication provider, including support for [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).", - "id": "GoogleCloudAiplatformV1DeployedIndexAuthConfigAuthProvider", + "GoogleCloudAiplatformV1CreatePipelineJobRequest": { + "description": "Request message for PipelineService.CreatePipelineJob.", + "id": "GoogleCloudAiplatformV1CreatePipelineJobRequest", "properties": { - "allowedIssuers": { - "description": "A list of allowed JWT issuers. Each entry must be a valid Google service account, in the following format: `service-account-name@project-id.iam.gserviceaccount.com`", - "items": { - "type": "string" - }, - "type": "array" + "parent": { + "description": "Required. The resource name of the Location to create the PipelineJob in. Format: `projects/{project}/locations/{location}`", + "type": "string" }, - "audiences": { - "description": "The list of JWT [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). that are allowed to access. A JWT containing any of these audiences will be accepted.", - "items": { - "type": "string" - }, - "type": "array" + "pipelineJob": { + "$ref": "GoogleCloudAiplatformV1PipelineJob", + "description": "Required. The PipelineJob to create." + }, + "pipelineJobId": { + "description": "The ID to use for the PipelineJob, which will become the final component of the PipelineJob name. If not provided, an ID will be automatically generated. This value should be less than 128 characters, and valid characters are `/a-z-/`.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1DeployedIndexRef": { - "description": "Points to a DeployedIndex.", - "id": "GoogleCloudAiplatformV1DeployedIndexRef", + "GoogleCloudAiplatformV1CreateRegistryFeatureOperationMetadata": { + "description": "Details of operations that perform create FeatureGroup.", + "id": "GoogleCloudAiplatformV1CreateRegistryFeatureOperationMetadata", "properties": { - "deployedIndexId": { - "description": "Immutable. The ID of the DeployedIndex in the above IndexEndpoint.", - "type": "string" - }, - "indexEndpoint": { - "description": "Immutable. A resource name of the IndexEndpoint.", - "type": "string" + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "Operation metadata for Feature." } }, "type": "object" }, - "GoogleCloudAiplatformV1DeployedModel": { - "description": "A deployment of a Model. Endpoints contain one or more DeployedModels.", - "id": "GoogleCloudAiplatformV1DeployedModel", + "GoogleCloudAiplatformV1CreateSpecialistPoolOperationMetadata": { + "description": "Runtime operation information for SpecialistPoolService.CreateSpecialistPool.", + "id": "GoogleCloudAiplatformV1CreateSpecialistPoolOperationMetadata", "properties": { - "automaticResources": { - "$ref": "GoogleCloudAiplatformV1AutomaticResources", - "description": "A description of resources that to large degree are decided by Vertex AI, and require only a modest additional configuration." - }, - "createTime": { - "description": "Output only. Timestamp when the DeployedModel was created.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "dedicatedResources": { - "$ref": "GoogleCloudAiplatformV1DedicatedResources", - "description": "A description of resources that are dedicated to the DeployedModel, and that need a higher degree of manual configuration." - }, - "disableContainerLogging": { - "description": "For custom-trained Models and AutoML Tabular Models, the container of the DeployedModel instances will send `stderr` and `stdout` streams to Cloud Logging by default. Please note that the logs incur cost, which are subject to [Cloud Logging pricing](https://cloud.google.com/logging/pricing). User can disable container logging by setting this flag to true.", - "type": "boolean" - }, - "displayName": { - "description": "The display name of the DeployedModel. If not provided upon creation, the Model's display_name is used.", - "type": "string" - }, - "enableAccessLogging": { - "description": "If true, online prediction access logs are sent to Cloud Logging. These logs are like standard server access logs, containing information like timestamp and latency for each prediction request. Note that logs may incur a cost, especially if your project receives prediction requests at a high queries per second rate (QPS). Estimate your costs before enabling this option.", - "type": "boolean" - }, - "explanationSpec": { - "$ref": "GoogleCloudAiplatformV1ExplanationSpec", - "description": "Explanation configuration for this DeployedModel. When deploying a Model using EndpointService.DeployModel, this value overrides the value of Model.explanation_spec. All fields of explanation_spec are optional in the request. If a field of explanation_spec is not populated, the value of the same field of Model.explanation_spec is inherited. If the corresponding Model.explanation_spec is not populated, all fields of the explanation_spec will be used for the explanation configuration." - }, - "id": { - "description": "Immutable. The ID of the DeployedModel. If not provided upon deployment, Vertex AI will generate a value for this ID. This value should be 1-10 characters, and valid characters are `/[0-9]/`.", - "type": "string" - }, - "model": { - "description": "Required. The resource name of the Model that this is the deployment of. Note that the Model may be in a different location than the DeployedModel's Endpoint. The resource name may contain version id or version alias to specify the version. Example: `projects/{project}/locations/{location}/models/{model}@2` or `projects/{project}/locations/{location}/models/{model}@golden` if no version is specified, the default version will be deployed.", - "type": "string" - }, - "modelVersionId": { - "description": "Output only. The version ID of the model that is deployed.", - "readOnly": true, - "type": "string" - }, - "privateEndpoints": { - "$ref": "GoogleCloudAiplatformV1PrivateEndpoints", - "description": "Output only. Provide paths for users to send predict/explain/health requests directly to the deployed model services running on Cloud via private services access. This field is populated if network is configured.", - "readOnly": true - }, - "serviceAccount": { - "description": "The service account that the DeployedModel's container runs as. Specify the email address of the service account. If this service account is not specified, the container runs as a service account that doesn't have access to the resource project. Users deploying the Model must have the `iam.serviceAccounts.actAs` permission on this service account.", - "type": "string" + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "The operation generic information." } }, "type": "object" }, - "GoogleCloudAiplatformV1DeployedModelRef": { - "description": "Points to a DeployedModel.", - "id": "GoogleCloudAiplatformV1DeployedModelRef", + "GoogleCloudAiplatformV1CreateTensorboardOperationMetadata": { + "description": "Details of operations that perform create Tensorboard.", + "id": "GoogleCloudAiplatformV1CreateTensorboardOperationMetadata", "properties": { - "deployedModelId": { - "description": "Immutable. An ID of a DeployedModel in the above Endpoint.", - "type": "string" - }, - "endpoint": { - "description": "Immutable. A resource name of an Endpoint.", - "type": "string" + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "Operation metadata for Tensorboard." } }, "type": "object" }, - "GoogleCloudAiplatformV1DeploymentResourcePool": { - "description": "A description of resources that can be shared by multiple DeployedModels, whose underlying specification consists of a DedicatedResources.", - "id": "GoogleCloudAiplatformV1DeploymentResourcePool", + "GoogleCloudAiplatformV1CreateTensorboardRunRequest": { + "description": "Request message for TensorboardService.CreateTensorboardRun.", + "id": "GoogleCloudAiplatformV1CreateTensorboardRunRequest", "properties": { - "createTime": { - "description": "Output only. Timestamp when this DeploymentResourcePool was created.", - "format": "google-datetime", - "readOnly": true, + "parent": { + "description": "Required. The resource name of the TensorboardExperiment to create the TensorboardRun in. Format: `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}`", "type": "string" }, - "dedicatedResources": { - "$ref": "GoogleCloudAiplatformV1DedicatedResources", - "description": "Required. The underlying DedicatedResources that the DeploymentResourcePool uses." + "tensorboardRun": { + "$ref": "GoogleCloudAiplatformV1TensorboardRun", + "description": "Required. The TensorboardRun to create." }, - "name": { - "description": "Immutable. The resource name of the DeploymentResourcePool. Format: `projects/{project}/locations/{location}/deploymentResourcePools/{deployment_resource_pool}`", + "tensorboardRunId": { + "description": "Required. The ID to use for the Tensorboard run, which becomes the final component of the Tensorboard run's resource name. This value should be 1-128 characters, and valid characters are `/a-z-/`.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1DestinationFeatureSetting": { - "id": "GoogleCloudAiplatformV1DestinationFeatureSetting", + "GoogleCloudAiplatformV1CreateTensorboardTimeSeriesRequest": { + "description": "Request message for TensorboardService.CreateTensorboardTimeSeries.", + "id": "GoogleCloudAiplatformV1CreateTensorboardTimeSeriesRequest", "properties": { - "destinationField": { - "description": "Specify the field name in the export destination. If not specified, Feature ID is used.", + "parent": { + "description": "Required. The resource name of the TensorboardRun to create the TensorboardTimeSeries in. Format: `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}`", "type": "string" }, - "featureId": { - "description": "Required. The ID of the Feature to apply the setting to.", - "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1DiskSpec": { - "description": "Represents the spec of disk options.", - "id": "GoogleCloudAiplatformV1DiskSpec", - "properties": { - "bootDiskSizeGb": { - "description": "Size in GB of the boot disk (default is 100GB).", - "format": "int32", - "type": "integer" + "tensorboardTimeSeries": { + "$ref": "GoogleCloudAiplatformV1TensorboardTimeSeries", + "description": "Required. The TensorboardTimeSeries to create." }, - "bootDiskType": { - "description": "Type of the boot disk (default is \"pd-ssd\"). Valid values: \"pd-ssd\" (Persistent Disk Solid State Drive) or \"pd-standard\" (Persistent Disk Hard Disk Drive).", + "tensorboardTimeSeriesId": { + "description": "Optional. The user specified unique ID to use for the TensorboardTimeSeries, which becomes the final component of the TensorboardTimeSeries's resource name. This value should match \"a-z0-9{0, 127}\"", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1DoubleArray": { - "description": "A list of double values.", - "id": "GoogleCloudAiplatformV1DoubleArray", + "GoogleCloudAiplatformV1CsvDestination": { + "description": "The storage details for CSV output content.", + "id": "GoogleCloudAiplatformV1CsvDestination", "properties": { - "values": { - "description": "A list of double values.", - "items": { - "format": "double", - "type": "number" - }, - "type": "array" + "gcsDestination": { + "$ref": "GoogleCloudAiplatformV1GcsDestination", + "description": "Required. Google Cloud Storage location." } }, "type": "object" }, - "GoogleCloudAiplatformV1EncryptionSpec": { - "description": "Represents a customer-managed encryption key spec that can be applied to a top-level resource.", - "id": "GoogleCloudAiplatformV1EncryptionSpec", + "GoogleCloudAiplatformV1CsvSource": { + "description": "The storage details for CSV input content.", + "id": "GoogleCloudAiplatformV1CsvSource", "properties": { - "kmsKeyName": { - "description": "Required. The Cloud KMS resource identifier of the customer managed encryption key used to protect a resource. Has the form: `projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key`. The key needs to be in the same region as where the compute resource is created.", - "type": "string" + "gcsSource": { + "$ref": "GoogleCloudAiplatformV1GcsSource", + "description": "Required. Google Cloud Storage location." } }, "type": "object" }, - "GoogleCloudAiplatformV1Endpoint": { - "description": "Models are deployed into it, and afterwards Endpoint is called to obtain predictions and explanations.", - "id": "GoogleCloudAiplatformV1Endpoint", + "GoogleCloudAiplatformV1CustomJob": { + "description": "Represents a job that runs custom workloads such as a Docker container or a Python package. A CustomJob can have multiple worker pools and each worker pool can have its own machine and input spec. A CustomJob will be cleaned up once the job enters terminal state (failed or succeeded).", + "id": "GoogleCloudAiplatformV1CustomJob", "properties": { "createTime": { - "description": "Output only. Timestamp when this Endpoint was created.", + "description": "Output only. Time when the CustomJob was created.", "format": "google-datetime", "readOnly": true, "type": "string" }, - "deployedModels": { - "description": "Output only. The models deployed in this Endpoint. To add or remove DeployedModels use EndpointService.DeployModel and EndpointService.UndeployModel respectively.", - "items": { - "$ref": "GoogleCloudAiplatformV1DeployedModel" - }, - "readOnly": true, - "type": "array" - }, - "description": { - "description": "The description of the Endpoint.", - "type": "string" - }, "displayName": { - "description": "Required. The display name of the Endpoint. The name can be up to 128 characters long and can consist of any UTF-8 characters.", + "description": "Required. The display name of the CustomJob. The name can be up to 128 characters long and can consist of any UTF-8 characters.", "type": "string" }, - "enablePrivateServiceConnect": { - "deprecated": true, - "description": "Deprecated: If true, expose the Endpoint via private service connect. Only one of the fields, network or enable_private_service_connect, can be set.", - "type": "boolean" - }, "encryptionSpec": { "$ref": "GoogleCloudAiplatformV1EncryptionSpec", - "description": "Customer-managed encryption key spec for an Endpoint. If set, this Endpoint and all sub-resources of this Endpoint will be secured by this key." + "description": "Customer-managed encryption key options for a CustomJob. If this is set, then all resources created by the CustomJob will be encrypted with the provided encryption key." }, - "etag": { - "description": "Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "endTime": { + "description": "Output only. Time when the CustomJob entered any of the following states: `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED`, `JOB_STATE_CANCELLED`.", + "format": "google-datetime", + "readOnly": true, "type": "string" }, + "error": { + "$ref": "GoogleRpcStatus", + "description": "Output only. Only populated when job's state is `JOB_STATE_FAILED` or `JOB_STATE_CANCELLED`.", + "readOnly": true + }, + "jobSpec": { + "$ref": "GoogleCloudAiplatformV1CustomJobSpec", + "description": "Required. Job spec." + }, "labels": { "additionalProperties": { "type": "string" }, - "description": "The labels with user-defined metadata to organize your Endpoints. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels.", + "description": "The labels with user-defined metadata to organize CustomJobs. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels.", "type": "object" }, - "modelDeploymentMonitoringJob": { - "description": "Output only. Resource name of the Model Monitoring job associated with this Endpoint if monitoring is enabled by JobService.CreateModelDeploymentMonitoringJob. Format: `projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}`", + "name": { + "description": "Output only. Resource name of a CustomJob.", "readOnly": true, "type": "string" }, - "name": { - "description": "Output only. The resource name of the Endpoint.", + "startTime": { + "description": "Output only. Time when the CustomJob for the first time entered the `JOB_STATE_RUNNING` state.", + "format": "google-datetime", "readOnly": true, "type": "string" }, - "network": { - "description": "Optional. The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name.", + "state": { + "description": "Output only. The detailed state of the job.", + "enum": [ + "JOB_STATE_UNSPECIFIED", + "JOB_STATE_QUEUED", + "JOB_STATE_PENDING", + "JOB_STATE_RUNNING", + "JOB_STATE_SUCCEEDED", + "JOB_STATE_FAILED", + "JOB_STATE_CANCELLING", + "JOB_STATE_CANCELLED", + "JOB_STATE_PAUSED", + "JOB_STATE_EXPIRED", + "JOB_STATE_UPDATING", + "JOB_STATE_PARTIALLY_SUCCEEDED" + ], + "enumDescriptions": [ + "The job state is unspecified.", + "The job has been just created or resumed and processing has not yet begun.", + "The service is preparing to run the job.", + "The job is in progress.", + "The job completed successfully.", + "The job failed.", + "The job is being cancelled. From this state the job may only go to either `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED` or `JOB_STATE_CANCELLED`.", + "The job has been cancelled.", + "The job has been stopped, and can be resumed.", + "The job has expired.", + "The job is being updated. Only jobs in the `RUNNING` state can be updated. After updating, the job goes back to the `RUNNING` state.", + "The job is partially succeeded, some results may be missing due to errors." + ], + "readOnly": true, "type": "string" }, - "predictRequestResponseLoggingConfig": { - "$ref": "GoogleCloudAiplatformV1PredictRequestResponseLoggingConfig", - "description": "Configures the request-response logging for online prediction." - }, - "trafficSplit": { - "additionalProperties": { - "format": "int32", - "type": "integer" - }, - "description": "A map from a DeployedModel's ID to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. If a DeployedModel's ID is not listed in this map, then it receives no traffic. The traffic percentage values must add up to 100, or map must be empty if the Endpoint is to not accept any traffic at a moment.", - "type": "object" - }, "updateTime": { - "description": "Output only. Timestamp when this Endpoint was last updated.", + "description": "Output only. Time when the CustomJob was most recently updated.", "format": "google-datetime", "readOnly": true, "type": "string" + }, + "webAccessUris": { + "additionalProperties": { + "type": "string" + }, + "description": "Output only. URIs for accessing [interactive shells](https://cloud.google.com/vertex-ai/docs/training/monitor-debug-interactive-shell) (one URI for each training node). Only available if job_spec.enable_web_access is `true`. The keys are names of each node in the training job; for example, `workerpool0-0` for the primary node, `workerpool1-0` for the first node in the second worker pool, and `workerpool1-1` for the second node in the second worker pool. The values are the URIs for each node's interactive shell.", + "readOnly": true, + "type": "object" } }, "type": "object" }, - "GoogleCloudAiplatformV1EntityIdSelector": { - "description": "Selector for entityId. Getting ids from the given source.", - "id": "GoogleCloudAiplatformV1EntityIdSelector", + "GoogleCloudAiplatformV1CustomJobSpec": { + "description": "Represents the spec of a CustomJob.", + "id": "GoogleCloudAiplatformV1CustomJobSpec", "properties": { - "csvSource": { - "$ref": "GoogleCloudAiplatformV1CsvSource", - "description": "Source of Csv" + "baseOutputDirectory": { + "$ref": "GoogleCloudAiplatformV1GcsDestination", + "description": "The Cloud Storage location to store the output of this CustomJob or HyperparameterTuningJob. For HyperparameterTuningJob, the baseOutputDirectory of each child CustomJob backing a Trial is set to a subdirectory of name id under its parent HyperparameterTuningJob's baseOutputDirectory. The following Vertex AI environment variables will be passed to containers or python modules when this field is set: For CustomJob: * AIP_MODEL_DIR = `/model/` * AIP_CHECKPOINT_DIR = `/checkpoints/` * AIP_TENSORBOARD_LOG_DIR = `/logs/` For CustomJob backing a Trial of HyperparameterTuningJob: * AIP_MODEL_DIR = `//model/` * AIP_CHECKPOINT_DIR = `//checkpoints/` * AIP_TENSORBOARD_LOG_DIR = `//logs/`" }, - "entityIdField": { - "description": "Source column that holds entity IDs. If not provided, entity IDs are extracted from the column named entity_id.", + "enableDashboardAccess": { + "description": "Optional. Whether you want Vertex AI to enable access to the customized dashboard in training chief container. If set to `true`, you can access the dashboard at the URIs given by CustomJob.web_access_uris or Trial.web_access_uris (within HyperparameterTuningJob.trials).", + "type": "boolean" + }, + "enableWebAccess": { + "description": "Optional. Whether you want Vertex AI to enable [interactive shell access](https://cloud.google.com/vertex-ai/docs/training/monitor-debug-interactive-shell) to training containers. If set to `true`, you can access interactive shells at the URIs given by CustomJob.web_access_uris or Trial.web_access_uris (within HyperparameterTuningJob.trials).", + "type": "boolean" + }, + "experiment": { + "description": "Optional. The Experiment associated with this job. Format: `projects/{project}/locations/{location}/metadataStores/{metadataStores}/contexts/{experiment-name}`", + "type": "string" + }, + "experimentRun": { + "description": "Optional. The Experiment Run associated with this job. Format: `projects/{project}/locations/{location}/metadataStores/{metadataStores}/contexts/{experiment-name}-{experiment-run-name}`", + "type": "string" + }, + "models": { + "description": "Optional. The name of the Model resources for which to generate a mapping to artifact URIs. Applicable only to some of the Google-provided custom jobs. Format: `projects/{project}/locations/{location}/models/{model}` In order to retrieve a specific version of the model, also provide the version ID or version alias. Example: `projects/{project}/locations/{location}/models/{model}@2` or `projects/{project}/locations/{location}/models/{model}@golden` If no version ID or alias is specified, the \"default\" version will be returned. The \"default\" version alias is created for the first version of the model, and can be moved to other versions later on. There will be exactly one default version.", + "items": { + "type": "string" + }, + "type": "array" + }, + "network": { + "description": "Optional. The full name of the Compute Engine [network](/compute/docs/networks-and-firewalls#networks) to which the Job should be peered. For example, `projects/12345/global/networks/myVPC`. [Format](/compute/docs/reference/rest/v1/networks/insert) is of the form `projects/{project}/global/networks/{network}`. Where {project} is a project number, as in `12345`, and {network} is a network name. To specify this field, you must have already [configured VPC Network Peering for Vertex AI](https://cloud.google.com/vertex-ai/docs/general/vpc-peering). If this field is left unspecified, the job is not peered with any network.", + "type": "string" + }, + "protectedArtifactLocationId": { + "description": "The ID of the location to store protected artifacts. e.g. us-central1. Populate only when the location is different than CustomJob location. List of supported locations: https://cloud.google.com/vertex-ai/docs/general/locations", + "type": "string" + }, + "reservedIpRanges": { + "description": "Optional. A list of names for the reserved ip ranges under the VPC network that can be used for this job. If set, we will deploy the job within the provided ip ranges. Otherwise, the job will be deployed to any ip ranges under the provided VPC network. Example: ['vertex-ai-ip-range'].", + "items": { + "type": "string" + }, + "type": "array" + }, + "scheduling": { + "$ref": "GoogleCloudAiplatformV1Scheduling", + "description": "Scheduling options for a CustomJob." + }, + "serviceAccount": { + "description": "Specifies the service account for workload run-as account. Users submitting jobs must have act-as permission on this run-as account. If unspecified, the [Vertex AI Custom Code Service Agent](https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) for the CustomJob's project is used.", + "type": "string" + }, + "tensorboard": { + "description": "Optional. The name of a Vertex AI Tensorboard resource to which this CustomJob will upload Tensorboard logs. Format: `projects/{project}/locations/{location}/tensorboards/{tensorboard}`", "type": "string" + }, + "workerPoolSpecs": { + "description": "Required. The spec of the worker pools including machine type and Docker image. All worker pools except the first one are optional and can be skipped by providing an empty value.", + "items": { + "$ref": "GoogleCloudAiplatformV1WorkerPoolSpec" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1EntityType": { - "description": "An entity type is a type of object in a system that needs to be modeled and have stored information about. For example, driver is an entity type, and driver0 is an instance of an entity type driver.", - "id": "GoogleCloudAiplatformV1EntityType", + "GoogleCloudAiplatformV1DataItem": { + "description": "A piece of data in a Dataset. Could be an image, a video, a document or plain text.", + "id": "GoogleCloudAiplatformV1DataItem", "properties": { "createTime": { - "description": "Output only. Timestamp when this EntityType was created.", + "description": "Output only. Timestamp when this DataItem was created.", "format": "google-datetime", "readOnly": true, "type": "string" }, - "description": { - "description": "Optional. Description of the EntityType.", - "type": "string" - }, "etag": { - "description": "Optional. Used to perform a consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "description": "Optional. Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", "type": "string" }, "labels": { "additionalProperties": { "type": "string" }, - "description": "Optional. The labels with user-defined metadata to organize your EntityTypes. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information on and examples of labels. No more than 64 user labels can be associated with one EntityType (System labels are excluded).\" System reserved label keys are prefixed with \"aiplatform.googleapis.com/\" and are immutable.", + "description": "Optional. The labels with user-defined metadata to organize your DataItems. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. No more than 64 user labels can be associated with one DataItem(System labels are excluded). See https://goo.gl/xmQnxf for more information and examples of labels. System reserved label keys are prefixed with \"aiplatform.googleapis.com/\" and are immutable.", "type": "object" }, - "monitoringConfig": { - "$ref": "GoogleCloudAiplatformV1FeaturestoreMonitoringConfig", - "description": "Optional. The default monitoring configuration for all Features with value type (Feature.ValueType) BOOL, STRING, DOUBLE or INT64 under this EntityType. If this is populated with [FeaturestoreMonitoringConfig.monitoring_interval] specified, snapshot analysis monitoring is enabled. Otherwise, snapshot analysis monitoring is disabled." - }, "name": { - "description": "Immutable. Name of the EntityType. Format: `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` The last part entity_type is assigned by the client. The entity_type can be up to 64 characters long and can consist only of ASCII Latin letters A-Z and a-z and underscore(_), and ASCII digits 0-9 starting with a letter. The value will be unique given a featurestore.", + "description": "Output only. The resource name of the DataItem.", + "readOnly": true, "type": "string" }, - "offlineStorageTtlDays": { - "description": "Optional. Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline storage. The Feature Store offline storage periodically removes obsolete feature values older than `offline_storage_ttl_days` since the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL.", - "format": "int32", - "type": "integer" + "payload": { + "description": "Required. The data that the DataItem represents (for example, an image or a text snippet). The schema of the payload is stored in the parent Dataset's metadata schema's dataItemSchemaUri field.", + "type": "any" }, "updateTime": { - "description": "Output only. Timestamp when this EntityType was most recently updated.", + "description": "Output only. Timestamp when this DataItem was last updated.", "format": "google-datetime", "readOnly": true, "type": "string" @@ -17415,1329 +18669,1372 @@ }, "type": "object" }, - "GoogleCloudAiplatformV1EnvVar": { - "description": "Represents an environment variable present in a Container or Python Module.", - "id": "GoogleCloudAiplatformV1EnvVar", - "properties": { - "name": { - "description": "Required. Name of the environment variable. Must be a valid C identifier.", - "type": "string" - }, - "value": { - "description": "Required. Variables that reference a $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not.", - "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1ErrorAnalysisAnnotation": { - "description": "Model error analysis for each annotation.", - "id": "GoogleCloudAiplatformV1ErrorAnalysisAnnotation", + "GoogleCloudAiplatformV1DataItemView": { + "description": "A container for a single DataItem and Annotations on it.", + "id": "GoogleCloudAiplatformV1DataItemView", "properties": { - "attributedItems": { - "description": "Attributed items for a given annotation, typically representing neighbors from the training sets constrained by the query type.", + "annotations": { + "description": "The Annotations on the DataItem. If too many Annotations should be returned for the DataItem, this field will be truncated per annotations_limit in request. If it was, then the has_truncated_annotations will be set to true.", "items": { - "$ref": "GoogleCloudAiplatformV1ErrorAnalysisAnnotationAttributedItem" + "$ref": "GoogleCloudAiplatformV1Annotation" }, "type": "array" }, - "outlierScore": { - "description": "The outlier score of this annotated item. Usually defined as the min of all distances from attributed items.", - "format": "double", - "type": "number" - }, - "outlierThreshold": { - "description": "The threshold used to determine if this annotation is an outlier or not.", - "format": "double", - "type": "number" - }, - "queryType": { - "description": "The query type used for finding the attributed items.", - "enum": [ - "QUERY_TYPE_UNSPECIFIED", - "ALL_SIMILAR", - "SAME_CLASS_SIMILAR", - "SAME_CLASS_DISSIMILAR" - ], - "enumDescriptions": [ - "Unspecified query type for model error analysis.", - "Query similar samples across all classes in the dataset.", - "Query similar samples from the same class of the input sample.", - "Query dissimilar samples from the same class of the input sample." - ], - "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1ErrorAnalysisAnnotationAttributedItem": { - "description": "Attributed items for a given annotation, typically representing neighbors from the training sets constrained by the query type.", - "id": "GoogleCloudAiplatformV1ErrorAnalysisAnnotationAttributedItem", - "properties": { - "annotationResourceName": { - "description": "The unique ID for each annotation. Used by FE to allocate the annotation in DB.", - "type": "string" + "dataItem": { + "$ref": "GoogleCloudAiplatformV1DataItem", + "description": "The DataItem." }, - "distance": { - "description": "The distance of this item to the annotation.", - "format": "double", - "type": "number" + "hasTruncatedAnnotations": { + "description": "True if and only if the Annotations field has been truncated. It happens if more Annotations for this DataItem met the request's annotation_filter than are allowed to be returned by annotations_limit. Note that if Annotations field is not being returned due to field mask, then this field will not be set to true no matter how many Annotations are there.", + "type": "boolean" } }, "type": "object" }, - "GoogleCloudAiplatformV1EvaluatedAnnotation": { - "description": "True positive, false positive, or false negative. EvaluatedAnnotation is only available under ModelEvaluationSlice with slice of `annotationSpec` dimension.", - "id": "GoogleCloudAiplatformV1EvaluatedAnnotation", + "GoogleCloudAiplatformV1DataLabelingJob": { + "description": "DataLabelingJob is used to trigger a human labeling job on unlabeled data from the following Dataset:", + "id": "GoogleCloudAiplatformV1DataLabelingJob", "properties": { - "dataItemPayload": { - "description": "Output only. The data item payload that the Model predicted this EvaluatedAnnotation on.", - "readOnly": true, - "type": "any" + "activeLearningConfig": { + "$ref": "GoogleCloudAiplatformV1ActiveLearningConfig", + "description": "Parameters that configure the active learning pipeline. Active learning will label the data incrementally via several iterations. For every iteration, it will select a batch of data based on the sampling strategy." }, - "errorAnalysisAnnotations": { - "description": "Annotations of model error analysis results.", - "items": { - "$ref": "GoogleCloudAiplatformV1ErrorAnalysisAnnotation" + "annotationLabels": { + "additionalProperties": { + "type": "string" }, - "type": "array" + "description": "Labels to assign to annotations generated by this DataLabelingJob. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels. System reserved label keys are prefixed with \"aiplatform.googleapis.com/\" and are immutable.", + "type": "object" }, - "evaluatedDataItemViewId": { - "description": "Output only. ID of the EvaluatedDataItemView under the same ancestor ModelEvaluation. The EvaluatedDataItemView consists of all ground truths and predictions on data_item_payload.", + "createTime": { + "description": "Output only. Timestamp when this DataLabelingJob was created.", + "format": "google-datetime", "readOnly": true, "type": "string" }, - "explanations": { - "description": "Explanations of predictions. Each element of the explanations indicates the explanation for one explanation Method. The attributions list in the EvaluatedAnnotationExplanation.explanation object corresponds to the predictions list. For example, the second element in the attributions list explains the second element in the predictions list.", + "currentSpend": { + "$ref": "GoogleTypeMoney", + "description": "Output only. Estimated cost(in US dollars) that the DataLabelingJob has incurred to date.", + "readOnly": true + }, + "datasets": { + "description": "Required. Dataset resource names. Right now we only support labeling from a single Dataset. Format: `projects/{project}/locations/{location}/datasets/{dataset}`", "items": { - "$ref": "GoogleCloudAiplatformV1EvaluatedAnnotationExplanation" + "type": "string" }, "type": "array" }, - "groundTruths": { - "description": "Output only. The ground truth Annotations, i.e. the Annotations that exist in the test data the Model is evaluated on. For true positive, there is one and only one ground truth annotation, which matches the only prediction in predictions. For false positive, there are zero or more ground truth annotations that are similar to the only prediction in predictions, but not enough for a match. For false negative, there is one and only one ground truth annotation, which doesn't match any predictions created by the model. The schema of the ground truth is stored in ModelEvaluation.annotation_schema_uri", - "items": { - "type": "any" + "displayName": { + "description": "Required. The user-defined name of the DataLabelingJob. The name can be up to 128 characters long and can consist of any UTF-8 characters. Display name of a DataLabelingJob.", + "type": "string" + }, + "encryptionSpec": { + "$ref": "GoogleCloudAiplatformV1EncryptionSpec", + "description": "Customer-managed encryption key spec for a DataLabelingJob. If set, this DataLabelingJob will be secured by this key. Note: Annotations created in the DataLabelingJob are associated with the EncryptionSpec of the Dataset they are exported to." + }, + "error": { + "$ref": "GoogleRpcStatus", + "description": "Output only. DataLabelingJob errors. It is only populated when job's state is `JOB_STATE_FAILED` or `JOB_STATE_CANCELLED`.", + "readOnly": true + }, + "inputs": { + "description": "Required. Input config parameters for the DataLabelingJob.", + "type": "any" + }, + "inputsSchemaUri": { + "description": "Required. Points to a YAML file stored on Google Cloud Storage describing the config for a specific type of DataLabelingJob. The schema files that can be used here are found in the https://storage.googleapis.com/google-cloud-aiplatform bucket in the /schema/datalabelingjob/inputs/ folder.", + "type": "string" + }, + "instructionUri": { + "description": "Required. The Google Cloud Storage location of the instruction pdf. This pdf is shared with labelers, and provides detailed description on how to label DataItems in Datasets.", + "type": "string" + }, + "labelerCount": { + "description": "Required. Number of labelers to work on each DataItem.", + "format": "int32", + "type": "integer" + }, + "labelingProgress": { + "description": "Output only. Current labeling job progress percentage scaled in interval [0, 100], indicating the percentage of DataItems that has been finished.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "labels": { + "additionalProperties": { + "type": "string" }, + "description": "The labels with user-defined metadata to organize your DataLabelingJobs. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels. System reserved label keys are prefixed with \"aiplatform.googleapis.com/\" and are immutable. Following system labels exist for each DataLabelingJob: * \"aiplatform.googleapis.com/schema\": output only, its value is the inputs_schema's title.", + "type": "object" + }, + "name": { + "description": "Output only. Resource name of the DataLabelingJob.", "readOnly": true, - "type": "array" + "type": "string" }, - "predictions": { - "description": "Output only. The model predicted annotations. For true positive, there is one and only one prediction, which matches the only one ground truth annotation in ground_truths. For false positive, there is one and only one prediction, which doesn't match any ground truth annotation of the corresponding data_item_view_id. For false negative, there are zero or more predictions which are similar to the only ground truth annotation in ground_truths but not enough for a match. The schema of the prediction is stored in ModelEvaluation.annotation_schema_uri", + "specialistPools": { + "description": "The SpecialistPools' resource names associated with this job.", "items": { - "type": "any" + "type": "string" }, - "readOnly": true, "type": "array" }, - "type": { - "description": "Output only. Type of the EvaluatedAnnotation.", + "state": { + "description": "Output only. The detailed state of the job.", "enum": [ - "EVALUATED_ANNOTATION_TYPE_UNSPECIFIED", - "TRUE_POSITIVE", - "FALSE_POSITIVE", - "FALSE_NEGATIVE" + "JOB_STATE_UNSPECIFIED", + "JOB_STATE_QUEUED", + "JOB_STATE_PENDING", + "JOB_STATE_RUNNING", + "JOB_STATE_SUCCEEDED", + "JOB_STATE_FAILED", + "JOB_STATE_CANCELLING", + "JOB_STATE_CANCELLED", + "JOB_STATE_PAUSED", + "JOB_STATE_EXPIRED", + "JOB_STATE_UPDATING", + "JOB_STATE_PARTIALLY_SUCCEEDED" ], "enumDescriptions": [ - "Invalid value.", - "The EvaluatedAnnotation is a true positive. It has a prediction created by the Model and a ground truth Annotation which the prediction matches.", - "The EvaluatedAnnotation is false positive. It has a prediction created by the Model which does not match any ground truth annotation.", - "The EvaluatedAnnotation is false negative. It has a ground truth annotation which is not matched by any of the model created predictions." + "The job state is unspecified.", + "The job has been just created or resumed and processing has not yet begun.", + "The service is preparing to run the job.", + "The job is in progress.", + "The job completed successfully.", + "The job failed.", + "The job is being cancelled. From this state the job may only go to either `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED` or `JOB_STATE_CANCELLED`.", + "The job has been cancelled.", + "The job has been stopped, and can be resumed.", + "The job has expired.", + "The job is being updated. Only jobs in the `RUNNING` state can be updated. After updating, the job goes back to the `RUNNING` state.", + "The job is partially succeeded, some results may be missing due to errors." ], "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1EvaluatedAnnotationExplanation": { - "description": "Explanation result of the prediction produced by the Model.", - "id": "GoogleCloudAiplatformV1EvaluatedAnnotationExplanation", - "properties": { - "explanation": { - "$ref": "GoogleCloudAiplatformV1Explanation", - "description": "Explanation attribution response details." }, - "explanationType": { - "description": "Explanation type. For AutoML Image Classification models, possible values are: * `image-integrated-gradients` * `image-xrai`", + "updateTime": { + "description": "Output only. Timestamp when this DataLabelingJob was updated most recently.", + "format": "google-datetime", + "readOnly": true, "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1Event": { - "description": "An edge describing the relationship between an Artifact and an Execution in a lineage graph.", - "id": "GoogleCloudAiplatformV1Event", + "GoogleCloudAiplatformV1Dataset": { + "description": "A collection of DataItems and Annotations on them.", + "id": "GoogleCloudAiplatformV1Dataset", "properties": { - "artifact": { - "description": "Required. The relative resource name of the Artifact in the Event.", - "type": "string" - }, - "eventTime": { - "description": "Output only. Time the Event occurred.", + "createTime": { + "description": "Output only. Timestamp when this Dataset was created.", "format": "google-datetime", "readOnly": true, "type": "string" }, - "execution": { - "description": "Output only. The relative resource name of the Execution in the Event.", + "dataItemCount": { + "description": "Output only. The number of DataItems in this Dataset. Only apply for non-structured Dataset.", + "format": "int64", "readOnly": true, "type": "string" }, + "description": { + "description": "The description of the Dataset.", + "type": "string" + }, + "displayName": { + "description": "Required. The user-defined name of the Dataset. The name can be up to 128 characters long and can consist of any UTF-8 characters.", + "type": "string" + }, + "encryptionSpec": { + "$ref": "GoogleCloudAiplatformV1EncryptionSpec", + "description": "Customer-managed encryption key spec for a Dataset. If set, this Dataset and all sub-resources of this Dataset will be secured by this key." + }, + "etag": { + "description": "Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "type": "string" + }, "labels": { "additionalProperties": { "type": "string" }, - "description": "The labels with user-defined metadata to annotate Events. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. No more than 64 user labels can be associated with one Event (System labels are excluded). See https://goo.gl/xmQnxf for more information and examples of labels. System reserved label keys are prefixed with \"aiplatform.googleapis.com/\" and are immutable.", + "description": "The labels with user-defined metadata to organize your Datasets. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. No more than 64 user labels can be associated with one Dataset (System labels are excluded). See https://goo.gl/xmQnxf for more information and examples of labels. System reserved label keys are prefixed with \"aiplatform.googleapis.com/\" and are immutable. Following system labels exist for each Dataset: * \"aiplatform.googleapis.com/dataset_metadata_schema\": output only, its value is the metadata_schema's title.", "type": "object" }, - "type": { - "description": "Required. The type of the Event.", - "enum": [ - "TYPE_UNSPECIFIED", - "INPUT", - "OUTPUT" - ], - "enumDescriptions": [ - "Unspecified whether input or output of the Execution.", - "An input of the Execution.", - "An output of the Execution." - ], + "metadata": { + "description": "Required. Additional information about the Dataset.", + "type": "any" + }, + "metadataArtifact": { + "description": "Output only. The resource name of the Artifact that was created in MetadataStore when creating the Dataset. The Artifact resource name pattern is `projects/{project}/locations/{location}/metadataStores/{metadata_store}/artifacts/{artifact}`.", + "readOnly": true, + "type": "string" + }, + "metadataSchemaUri": { + "description": "Required. Points to a YAML file stored on Google Cloud Storage describing additional information about the Dataset. The schema is defined as an OpenAPI 3.0.2 Schema Object. The schema files that can be used here are found in gs://google-cloud-aiplatform/schema/dataset/metadata/.", + "type": "string" + }, + "name": { + "description": "Output only. The resource name of the Dataset.", + "readOnly": true, + "type": "string" + }, + "savedQueries": { + "description": "All SavedQueries belong to the Dataset will be returned in List/Get Dataset response. The annotation_specs field will not be populated except for UI cases which will only use annotation_spec_count. In CreateDataset request, a SavedQuery is created together if this field is set, up to one SavedQuery can be set in CreateDatasetRequest. The SavedQuery should not contain any AnnotationSpec.", + "items": { + "$ref": "GoogleCloudAiplatformV1SavedQuery" + }, + "type": "array" + }, + "updateTime": { + "description": "Output only. Timestamp when this Dataset was last updated.", + "format": "google-datetime", + "readOnly": true, "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1Examples": { - "description": "Example-based explainability that returns the nearest neighbors from the provided dataset.", - "id": "GoogleCloudAiplatformV1Examples", + "GoogleCloudAiplatformV1DatasetVersion": { + "description": "Describes the dataset version.", + "id": "GoogleCloudAiplatformV1DatasetVersion", "properties": { - "exampleGcsSource": { - "$ref": "GoogleCloudAiplatformV1ExamplesExampleGcsSource", - "description": "The Cloud Storage input instances." + "bigQueryDatasetName": { + "description": "Output only. Name of the associated BigQuery dataset.", + "readOnly": true, + "type": "string" }, - "nearestNeighborSearchConfig": { - "description": "The full configuration for the generated index, the semantics are the same as metadata and should match [NearestNeighborSearchConfig](https://cloud.google.com/vertex-ai/docs/explainable-ai/configuring-explanations-example-based#nearest-neighbor-search-config).", + "createTime": { + "description": "Output only. Timestamp when this DatasetVersion was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "The user-defined name of the DatasetVersion. The name can be up to 128 characters long and can consist of any UTF-8 characters.", + "type": "string" + }, + "etag": { + "description": "Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "type": "string" + }, + "metadata": { + "description": "Required. Additional information about the DatasetVersion.", "type": "any" }, - "neighborCount": { - "description": "The number of neighbors to return when querying for examples.", - "format": "int32", - "type": "integer" + "name": { + "description": "Output only. The resource name of the DatasetVersion.", + "readOnly": true, + "type": "string" }, - "presets": { - "$ref": "GoogleCloudAiplatformV1Presets", - "description": "Simplified preset configuration, which automatically sets configuration values based on the desired query speed-precision trade-off and modality." + "updateTime": { + "description": "Output only. Timestamp when this DatasetVersion was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ExamplesExampleGcsSource": { - "description": "The Cloud Storage input instances.", - "id": "GoogleCloudAiplatformV1ExamplesExampleGcsSource", + "GoogleCloudAiplatformV1DedicatedResources": { + "description": "A description of resources that are dedicated to a DeployedModel, and that need a higher degree of manual configuration.", + "id": "GoogleCloudAiplatformV1DedicatedResources", "properties": { - "dataFormat": { - "description": "The format in which instances are given, if not specified, assume it's JSONL format. Currently only JSONL format is supported.", - "enum": [ - "DATA_FORMAT_UNSPECIFIED", - "JSONL" - ], - "enumDescriptions": [ - "Format unspecified, used when unset.", - "Examples are stored in JSONL files." - ], - "type": "string" + "autoscalingMetricSpecs": { + "description": "Immutable. The metric specifications that overrides a resource utilization metric (CPU utilization, accelerator's duty cycle, and so on) target value (default to 60 if not set). At most one entry is allowed per metric. If machine_spec.accelerator_count is above 0, the autoscaling will be based on both CPU utilization and accelerator's duty cycle metrics and scale up when either metrics exceeds its target value while scale down if both metrics are under their target value. The default target value is 60 for both metrics. If machine_spec.accelerator_count is 0, the autoscaling will be based on CPU utilization metric only with default target value 60 if not explicitly set. For example, in the case of Online Prediction, if you want to override target CPU utilization to 80, you should set autoscaling_metric_specs.metric_name to `aiplatform.googleapis.com/prediction/online/cpu/utilization` and autoscaling_metric_specs.target to `80`.", + "items": { + "$ref": "GoogleCloudAiplatformV1AutoscalingMetricSpec" + }, + "type": "array" }, - "gcsSource": { - "$ref": "GoogleCloudAiplatformV1GcsSource", - "description": "The Cloud Storage location for the input instances." - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1ExamplesOverride": { - "description": "Overrides for example-based explanations.", - "id": "GoogleCloudAiplatformV1ExamplesOverride", - "properties": { - "crowdingCount": { - "description": "The number of neighbors to return that have the same crowding tag.", + "machineSpec": { + "$ref": "GoogleCloudAiplatformV1MachineSpec", + "description": "Required. Immutable. The specification of a single machine used by the prediction." + }, + "maxReplicaCount": { + "description": "Immutable. The maximum number of replicas this DeployedModel may be deployed on when the traffic against it increases. If the requested value is too large, the deployment will error, but if deployment succeeds then the ability to scale the model to that many replicas is guaranteed (barring service outages). If traffic against the DeployedModel increases beyond what its replicas at maximum may handle, a portion of the traffic will be dropped. If this value is not provided, will use min_replica_count as the default value. The value of this field impacts the charge against Vertex CPU and GPU quotas. Specifically, you will be charged for (max_replica_count * number of cores in the selected machine type) and (max_replica_count * number of GPUs per replica in the selected machine type).", "format": "int32", "type": "integer" }, - "dataFormat": { - "description": "The format of the data being provided with each call.", - "enum": [ - "DATA_FORMAT_UNSPECIFIED", - "INSTANCES", - "EMBEDDINGS" - ], - "enumDescriptions": [ - "Unspecified format. Must not be used.", - "Provided data is a set of model inputs.", - "Provided data is a set of embeddings." - ], - "type": "string" - }, - "neighborCount": { - "description": "The number of neighbors to return.", + "minReplicaCount": { + "description": "Required. Immutable. The minimum number of machine replicas this DeployedModel will be always deployed on. This value must be greater than or equal to 1. If traffic against the DeployedModel increases, it may dynamically be deployed onto more replicas, and as traffic decreases, some of these extra replicas may be freed.", "format": "int32", "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1DeleteFeatureValuesOperationMetadata": { + "description": "Details of operations that delete Feature values.", + "id": "GoogleCloudAiplatformV1DeleteFeatureValuesOperationMetadata", + "properties": { + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "Operation metadata for Featurestore delete Features values." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1DeleteFeatureValuesRequest": { + "description": "Request message for FeaturestoreService.DeleteFeatureValues.", + "id": "GoogleCloudAiplatformV1DeleteFeatureValuesRequest", + "properties": { + "selectEntity": { + "$ref": "GoogleCloudAiplatformV1DeleteFeatureValuesRequestSelectEntity", + "description": "Select feature values to be deleted by specifying entities." }, - "restrictions": { - "description": "Restrict the resulting nearest neighbors to respect these constraints.", - "items": { - "$ref": "GoogleCloudAiplatformV1ExamplesRestrictionsNamespace" - }, - "type": "array" + "selectTimeRangeAndFeature": { + "$ref": "GoogleCloudAiplatformV1DeleteFeatureValuesRequestSelectTimeRangeAndFeature", + "description": "Select feature values to be deleted by specifying time range and features." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1DeleteFeatureValuesRequestSelectEntity": { + "description": "Message to select entity. If an entity id is selected, all the feature values corresponding to the entity id will be deleted, including the entityId.", + "id": "GoogleCloudAiplatformV1DeleteFeatureValuesRequestSelectEntity", + "properties": { + "entityIdSelector": { + "$ref": "GoogleCloudAiplatformV1EntityIdSelector", + "description": "Required. Selectors choosing feature values of which entity id to be deleted from the EntityType." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1DeleteFeatureValuesRequestSelectTimeRangeAndFeature": { + "description": "Message to select time range and feature. Values of the selected feature generated within an inclusive time range will be deleted. Using this option permanently deletes the feature values from the specified feature IDs within the specified time range. This might include data from the online storage. If you want to retain any deleted historical data in the online storage, you must re-ingest it.", + "id": "GoogleCloudAiplatformV1DeleteFeatureValuesRequestSelectTimeRangeAndFeature", + "properties": { + "featureSelector": { + "$ref": "GoogleCloudAiplatformV1FeatureSelector", + "description": "Required. Selectors choosing which feature values to be deleted from the EntityType." }, - "returnEmbeddings": { - "description": "If true, return the embeddings instead of neighbors.", + "skipOnlineStorageDelete": { + "description": "If set, data will not be deleted from online storage. When time range is older than the data in online storage, setting this to be true will make the deletion have no impact on online serving.", "type": "boolean" + }, + "timeRange": { + "$ref": "GoogleTypeInterval", + "description": "Required. Select feature generated within a half-inclusive time range. The time range is lower inclusive and upper exclusive." } }, "type": "object" }, - "GoogleCloudAiplatformV1ExamplesRestrictionsNamespace": { - "description": "Restrictions namespace for example-based explanations overrides.", - "id": "GoogleCloudAiplatformV1ExamplesRestrictionsNamespace", + "GoogleCloudAiplatformV1DeleteFeatureValuesResponse": { + "description": "Response message for FeaturestoreService.DeleteFeatureValues.", + "id": "GoogleCloudAiplatformV1DeleteFeatureValuesResponse", "properties": { - "allow": { - "description": "The list of allowed tags.", - "items": { - "type": "string" - }, - "type": "array" + "selectEntity": { + "$ref": "GoogleCloudAiplatformV1DeleteFeatureValuesResponseSelectEntity", + "description": "Response for request specifying the entities to delete" }, - "deny": { - "description": "The list of deny tags.", - "items": { - "type": "string" - }, - "type": "array" + "selectTimeRangeAndFeature": { + "$ref": "GoogleCloudAiplatformV1DeleteFeatureValuesResponseSelectTimeRangeAndFeature", + "description": "Response for request specifying time range and feature" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1DeleteFeatureValuesResponseSelectEntity": { + "description": "Response message if the request uses the SelectEntity option.", + "id": "GoogleCloudAiplatformV1DeleteFeatureValuesResponseSelectEntity", + "properties": { + "offlineStorageDeletedEntityRowCount": { + "description": "The count of deleted entity rows in the offline storage. Each row corresponds to the combination of an entity ID and a timestamp. One entity ID can have multiple rows in the offline storage.", + "format": "int64", + "type": "string" }, - "namespaceName": { - "description": "The namespace name.", + "onlineStorageDeletedEntityCount": { + "description": "The count of deleted entities in the online storage. Each entity ID corresponds to one entity.", + "format": "int64", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1Execution": { - "description": "Instance of a general execution.", - "id": "GoogleCloudAiplatformV1Execution", + "GoogleCloudAiplatformV1DeleteFeatureValuesResponseSelectTimeRangeAndFeature": { + "description": "Response message if the request uses the SelectTimeRangeAndFeature option.", + "id": "GoogleCloudAiplatformV1DeleteFeatureValuesResponseSelectTimeRangeAndFeature", "properties": { - "createTime": { - "description": "Output only. Timestamp when this Execution was created.", - "format": "google-datetime", - "readOnly": true, + "impactedFeatureCount": { + "description": "The count of the features or columns impacted. This is the same as the feature count in the request.", + "format": "int64", "type": "string" }, - "description": { - "description": "Description of the Execution", + "offlineStorageModifiedEntityRowCount": { + "description": "The count of modified entity rows in the offline storage. Each row corresponds to the combination of an entity ID and a timestamp. One entity ID can have multiple rows in the offline storage. Within each row, only the features specified in the request are deleted.", + "format": "int64", "type": "string" }, - "displayName": { - "description": "User provided display name of the Execution. May be up to 128 Unicode characters.", + "onlineStorageModifiedEntityCount": { + "description": "The count of modified entities in the online storage. Each entity ID corresponds to one entity. Within each entity, only the features specified in the request are deleted.", + "format": "int64", "type": "string" - }, - "etag": { - "description": "An eTag used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1DeleteMetadataStoreOperationMetadata": { + "description": "Details of operations that perform MetadataService.DeleteMetadataStore.", + "id": "GoogleCloudAiplatformV1DeleteMetadataStoreOperationMetadata", + "properties": { + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "Operation metadata for deleting a MetadataStore." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1DeleteOperationMetadata": { + "description": "Details of operations that perform deletes of any entities.", + "id": "GoogleCloudAiplatformV1DeleteOperationMetadata", + "properties": { + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "The common part of the operation metadata." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1DeployIndexOperationMetadata": { + "description": "Runtime operation information for IndexEndpointService.DeployIndex.", + "id": "GoogleCloudAiplatformV1DeployIndexOperationMetadata", + "properties": { + "deployedIndexId": { + "description": "The unique index id specified by user", "type": "string" }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "The labels with user-defined metadata to organize your Executions. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. No more than 64 user labels can be associated with one Execution (System labels are excluded).", - "type": "object" + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "The operation generic information." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1DeployIndexRequest": { + "description": "Request message for IndexEndpointService.DeployIndex.", + "id": "GoogleCloudAiplatformV1DeployIndexRequest", + "properties": { + "deployedIndex": { + "$ref": "GoogleCloudAiplatformV1DeployedIndex", + "description": "Required. The DeployedIndex to be created within the IndexEndpoint." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1DeployIndexResponse": { + "description": "Response message for IndexEndpointService.DeployIndex.", + "id": "GoogleCloudAiplatformV1DeployIndexResponse", + "properties": { + "deployedIndex": { + "$ref": "GoogleCloudAiplatformV1DeployedIndex", + "description": "The DeployedIndex that had been deployed in the IndexEndpoint." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1DeployModelOperationMetadata": { + "description": "Runtime operation information for EndpointService.DeployModel.", + "id": "GoogleCloudAiplatformV1DeployModelOperationMetadata", + "properties": { + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "The operation generic information." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1DeployModelRequest": { + "description": "Request message for EndpointService.DeployModel.", + "id": "GoogleCloudAiplatformV1DeployModelRequest", + "properties": { + "deployedModel": { + "$ref": "GoogleCloudAiplatformV1DeployedModel", + "description": "Required. The DeployedModel to be created within the Endpoint. Note that Endpoint.traffic_split must be updated for the DeployedModel to start receiving traffic, either as part of this call, or via EndpointService.UpdateEndpoint." }, - "metadata": { + "trafficSplit": { "additionalProperties": { - "description": "Properties of the object.", - "type": "any" + "format": "int32", + "type": "integer" }, - "description": "Properties of the Execution. Top level metadata keys' heading and trailing spaces will be trimmed. The size of this field should not exceed 200KB.", + "description": "A map from a DeployedModel's ID to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. If this field is non-empty, then the Endpoint's traffic_split will be overwritten with it. To refer to the ID of the just being deployed Model, a \"0\" should be used, and the actual ID of the new DeployedModel will be filled in its place by this method. The traffic percentage values must add up to 100. If this field is empty, then the Endpoint's traffic_split is not updated.", "type": "object" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1DeployModelResponse": { + "description": "Response message for EndpointService.DeployModel.", + "id": "GoogleCloudAiplatformV1DeployModelResponse", + "properties": { + "deployedModel": { + "$ref": "GoogleCloudAiplatformV1DeployedModel", + "description": "The DeployedModel that had been deployed in the Endpoint." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1DeployedIndex": { + "description": "A deployment of an Index. IndexEndpoints contain one or more DeployedIndexes.", + "id": "GoogleCloudAiplatformV1DeployedIndex", + "properties": { + "automaticResources": { + "$ref": "GoogleCloudAiplatformV1AutomaticResources", + "description": "Optional. A description of resources that the DeployedIndex uses, which to large degree are decided by Vertex AI, and optionally allows only a modest additional configuration. If min_replica_count is not set, the default value is 2 (we don't provide SLA when min_replica_count=1). If max_replica_count is not set, the default value is min_replica_count. The max allowed replica count is 1000." }, - "name": { - "description": "Output only. The resource name of the Execution.", + "createTime": { + "description": "Output only. Timestamp when the DeployedIndex was created.", + "format": "google-datetime", "readOnly": true, "type": "string" }, - "schemaTitle": { - "description": "The title of the schema describing the metadata. Schema title and version is expected to be registered in earlier Create Schema calls. And both are used together as unique identifiers to identify schemas within the local metadata store.", + "dedicatedResources": { + "$ref": "GoogleCloudAiplatformV1DedicatedResources", + "description": "Optional. A description of resources that are dedicated to the DeployedIndex, and that need a higher degree of manual configuration. The field min_replica_count must be set to a value strictly greater than 0, or else validation will fail. We don't provide SLA when min_replica_count=1. If max_replica_count is not set, the default value is min_replica_count. The max allowed replica count is 1000. Available machine types for SMALL shard: e2-standard-2 and all machine types available for MEDIUM and LARGE shard. Available machine types for MEDIUM shard: e2-standard-16 and all machine types available for LARGE shard. Available machine types for LARGE shard: e2-highmem-16, n2d-standard-32. n1-standard-16 and n1-standard-32 are still available, but we recommend e2-standard-16 and e2-highmem-16 for cost efficiency." + }, + "deployedIndexAuthConfig": { + "$ref": "GoogleCloudAiplatformV1DeployedIndexAuthConfig", + "description": "Optional. If set, the authentication is enabled for the private endpoint." + }, + "deploymentGroup": { + "description": "Optional. The deployment group can be no longer than 64 characters (eg: 'test', 'prod'). If not set, we will use the 'default' deployment group. Creating `deployment_groups` with `reserved_ip_ranges` is a recommended practice when the peered network has multiple peering ranges. This creates your deployments from predictable IP spaces for easier traffic administration. Also, one deployment_group (except 'default') can only be used with the same reserved_ip_ranges which means if the deployment_group has been used with reserved_ip_ranges: [a, b, c], using it with [a, b] or [d, e] is disallowed. Note: we only support up to 5 deployment groups(not including 'default').", "type": "string" }, - "schemaVersion": { - "description": "The version of the schema in `schema_title` to use. Schema title and version is expected to be registered in earlier Create Schema calls. And both are used together as unique identifiers to identify schemas within the local metadata store.", + "displayName": { + "description": "The display name of the DeployedIndex. If not provided upon creation, the Index's display_name is used.", "type": "string" }, - "state": { - "description": "The state of this Execution. This is a property of the Execution, and does not imply or capture any ongoing process. This property is managed by clients (such as Vertex AI Pipelines) and the system does not prescribe or check the validity of state transitions.", - "enum": [ - "STATE_UNSPECIFIED", - "NEW", - "RUNNING", - "COMPLETE", - "FAILED", - "CACHED", - "CANCELLED" - ], - "enumDescriptions": [ - "Unspecified Execution state", - "The Execution is new", - "The Execution is running", - "The Execution has finished running", - "The Execution has failed", - "The Execution completed through Cache hit.", - "The Execution was cancelled." - ], + "enableAccessLogging": { + "description": "Optional. If true, private endpoint's access logs are sent to Cloud Logging. These logs are like standard server access logs, containing information like timestamp and latency for each MatchRequest. Note that logs may incur a cost, especially if the deployed index receives a high queries per second rate (QPS). Estimate your costs before enabling this option.", + "type": "boolean" + }, + "id": { + "description": "Required. The user specified ID of the DeployedIndex. The ID can be up to 128 characters long and must start with a letter and only contain letters, numbers, and underscores. The ID must be unique within the project it is created in.", "type": "string" }, - "updateTime": { - "description": "Output only. Timestamp when this Execution was last updated.", + "index": { + "description": "Required. The name of the Index this is the deployment of. We may refer to this Index as the DeployedIndex's \"original\" Index.", + "type": "string" + }, + "indexSyncTime": { + "description": "Output only. The DeployedIndex may depend on various data on its original Index. Additionally when certain changes to the original Index are being done (e.g. when what the Index contains is being changed) the DeployedIndex may be asynchronously updated in the background to reflect these changes. If this timestamp's value is at least the Index.update_time of the original Index, it means that this DeployedIndex and the original Index are in sync. If this timestamp is older, then to see which updates this DeployedIndex already contains (and which it does not), one must list the operations that are running on the original Index. Only the successfully completed Operations with update_time equal or before this sync time are contained in this DeployedIndex.", "format": "google-datetime", "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1ExplainRequest": { - "description": "Request message for PredictionService.Explain.", - "id": "GoogleCloudAiplatformV1ExplainRequest", - "properties": { - "deployedModelId": { - "description": "If specified, this ExplainRequest will be served by the chosen DeployedModel, overriding Endpoint.traffic_split.", - "type": "string" }, - "explanationSpecOverride": { - "$ref": "GoogleCloudAiplatformV1ExplanationSpecOverride", - "description": "If specified, overrides the explanation_spec of the DeployedModel. Can be used for explaining prediction results with different configurations, such as: - Explaining top-5 predictions results as opposed to top-1; - Increasing path count or step count of the attribution methods to reduce approximate errors; - Using different baselines for explaining the prediction results." + "privateEndpoints": { + "$ref": "GoogleCloudAiplatformV1IndexPrivateEndpoints", + "description": "Output only. Provides paths for users to send requests directly to the deployed index services running on Cloud via private services access. This field is populated if network is configured.", + "readOnly": true }, - "instances": { - "description": "Required. The instances that are the input to the explanation call. A DeployedModel may have an upper limit on the number of instances it supports per request, and when it is exceeded the explanation call errors in case of AutoML Models, or, in case of customer created Models, the behaviour is as documented by that Model. The schema of any single instance may be specified via Endpoint's DeployedModels' Model's PredictSchemata's instance_schema_uri.", + "reservedIpRanges": { + "description": "Optional. A list of reserved ip ranges under the VPC network that can be used for this DeployedIndex. If set, we will deploy the index within the provided ip ranges. Otherwise, the index might be deployed to any ip ranges under the provided VPC network. The value should be the name of the address (https://cloud.google.com/compute/docs/reference/rest/v1/addresses) Example: ['vertex-ai-ip-range']. For more information about subnets and network IP ranges, please see https://cloud.google.com/vpc/docs/subnets#manually_created_subnet_ip_ranges.", "items": { - "type": "any" + "type": "string" }, "type": "array" - }, - "parameters": { - "description": "The parameters that govern the prediction. The schema of the parameters may be specified via Endpoint's DeployedModels' Model's PredictSchemata's parameters_schema_uri.", - "type": "any" } }, "type": "object" }, - "GoogleCloudAiplatformV1ExplainResponse": { - "description": "Response message for PredictionService.Explain.", - "id": "GoogleCloudAiplatformV1ExplainResponse", + "GoogleCloudAiplatformV1DeployedIndexAuthConfig": { + "description": "Used to set up the auth on the DeployedIndex's private endpoint.", + "id": "GoogleCloudAiplatformV1DeployedIndexAuthConfig", "properties": { - "deployedModelId": { - "description": "ID of the Endpoint's DeployedModel that served this explanation.", - "type": "string" - }, - "explanations": { - "description": "The explanations of the Model's PredictResponse.predictions. It has the same number of elements as instances to be explained.", - "items": { - "$ref": "GoogleCloudAiplatformV1Explanation" - }, - "type": "array" - }, - "predictions": { - "description": "The predictions that are the output of the predictions call. Same as PredictResponse.predictions.", - "items": { - "type": "any" - }, - "type": "array" + "authProvider": { + "$ref": "GoogleCloudAiplatformV1DeployedIndexAuthConfigAuthProvider", + "description": "Defines the authentication provider that the DeployedIndex uses." } }, "type": "object" }, - "GoogleCloudAiplatformV1Explanation": { - "description": "Explanation of a prediction (provided in PredictResponse.predictions) produced by the Model on a given instance.", - "id": "GoogleCloudAiplatformV1Explanation", + "GoogleCloudAiplatformV1DeployedIndexAuthConfigAuthProvider": { + "description": "Configuration for an authentication provider, including support for [JSON Web Token (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).", + "id": "GoogleCloudAiplatformV1DeployedIndexAuthConfigAuthProvider", "properties": { - "attributions": { - "description": "Output only. Feature attributions grouped by predicted outputs. For Models that predict only one output, such as regression Models that predict only one score, there is only one attibution that explains the predicted output. For Models that predict multiple outputs, such as multiclass Models that predict multiple classes, each element explains one specific item. Attribution.output_index can be used to identify which output this attribution is explaining. If users set ExplanationParameters.top_k, the attributions are sorted by instance_output_value in descending order. If ExplanationParameters.output_indices is specified, the attributions are stored by Attribution.output_index in the same order as they appear in the output_indices.", + "allowedIssuers": { + "description": "A list of allowed JWT issuers. Each entry must be a valid Google service account, in the following format: `service-account-name@project-id.iam.gserviceaccount.com`", "items": { - "$ref": "GoogleCloudAiplatformV1Attribution" + "type": "string" }, - "readOnly": true, "type": "array" }, - "neighbors": { - "description": "Output only. List of the nearest neighbors for example-based explanations. For models deployed with the examples explanations feature enabled, the attributions field is empty and instead the neighbors field is populated.", + "audiences": { + "description": "The list of JWT [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3). that are allowed to access. A JWT containing any of these audiences will be accepted.", "items": { - "$ref": "GoogleCloudAiplatformV1Neighbor" + "type": "string" }, - "readOnly": true, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1ExplanationMetadata": { - "description": "Metadata describing the Model's input and output for explanation.", - "id": "GoogleCloudAiplatformV1ExplanationMetadata", + "GoogleCloudAiplatformV1DeployedIndexRef": { + "description": "Points to a DeployedIndex.", + "id": "GoogleCloudAiplatformV1DeployedIndexRef", "properties": { - "featureAttributionsSchemaUri": { - "description": "Points to a YAML file stored on Google Cloud Storage describing the format of the feature attributions. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). AutoML tabular Models always have this field populated by Vertex AI. Note: The URI given on output may be different, including the URI scheme, than the one given on input. The output URI will point to a location where the user only has a read access.", + "deployedIndexId": { + "description": "Immutable. The ID of the DeployedIndex in the above IndexEndpoint.", "type": "string" }, - "inputs": { - "additionalProperties": { - "$ref": "GoogleCloudAiplatformV1ExplanationMetadataInputMetadata" - }, - "description": "Required. Map from feature names to feature input metadata. Keys are the name of the features. Values are the specification of the feature. An empty InputMetadata is valid. It describes a text feature which has the name specified as the key in ExplanationMetadata.inputs. The baseline of the empty feature is chosen by Vertex AI. For Vertex AI-provided Tensorflow images, the key can be any friendly name of the feature. Once specified, featureAttributions are keyed by this key (if not grouped with another feature). For custom images, the key must match with the key in instance.", - "type": "object" - }, - "latentSpaceSource": { - "description": "Name of the source to generate embeddings for example based explanations.", + "displayName": { + "description": "Output only. The display name of the DeployedIndex.", + "readOnly": true, "type": "string" }, - "outputs": { - "additionalProperties": { - "$ref": "GoogleCloudAiplatformV1ExplanationMetadataOutputMetadata" - }, - "description": "Required. Map from output names to output metadata. For Vertex AI-provided Tensorflow images, keys can be any user defined string that consists of any UTF-8 characters. For custom images, keys are the name of the output field in the prediction to be explained. Currently only one key is allowed.", - "type": "object" + "indexEndpoint": { + "description": "Immutable. A resource name of the IndexEndpoint.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ExplanationMetadataInputMetadata": { - "description": "Metadata of the input of a feature. Fields other than InputMetadata.input_baselines are applicable only for Models that are using Vertex AI-provided images for Tensorflow.", - "id": "GoogleCloudAiplatformV1ExplanationMetadataInputMetadata", + "GoogleCloudAiplatformV1DeployedModel": { + "description": "A deployment of a Model. Endpoints contain one or more DeployedModels.", + "id": "GoogleCloudAiplatformV1DeployedModel", "properties": { - "denseShapeTensorName": { - "description": "Specifies the shape of the values of the input if the input is a sparse representation. Refer to Tensorflow documentation for more details: https://www.tensorflow.org/api_docs/python/tf/sparse/SparseTensor.", + "automaticResources": { + "$ref": "GoogleCloudAiplatformV1AutomaticResources", + "description": "A description of resources that to large degree are decided by Vertex AI, and require only a modest additional configuration." + }, + "createTime": { + "description": "Output only. Timestamp when the DeployedModel was created.", + "format": "google-datetime", + "readOnly": true, "type": "string" }, - "encodedBaselines": { - "description": "A list of baselines for the encoded tensor. The shape of each baseline should match the shape of the encoded tensor. If a scalar is provided, Vertex AI broadcasts to the same shape as the encoded tensor.", - "items": { - "type": "any" - }, - "type": "array" + "dedicatedResources": { + "$ref": "GoogleCloudAiplatformV1DedicatedResources", + "description": "A description of resources that are dedicated to the DeployedModel, and that need a higher degree of manual configuration." }, - "encodedTensorName": { - "description": "Encoded tensor is a transformation of the input tensor. Must be provided if choosing Integrated Gradients attribution or XRAI attribution and the input tensor is not differentiable. An encoded tensor is generated if the input tensor is encoded by a lookup table.", - "type": "string" + "disableContainerLogging": { + "description": "For custom-trained Models and AutoML Tabular Models, the container of the DeployedModel instances will send `stderr` and `stdout` streams to Cloud Logging by default. Please note that the logs incur cost, which are subject to [Cloud Logging pricing](https://cloud.google.com/logging/pricing). User can disable container logging by setting this flag to true.", + "type": "boolean" }, - "encoding": { - "description": "Defines how the feature is encoded into the input tensor. Defaults to IDENTITY.", - "enum": [ - "ENCODING_UNSPECIFIED", - "IDENTITY", - "BAG_OF_FEATURES", - "BAG_OF_FEATURES_SPARSE", - "INDICATOR", - "COMBINED_EMBEDDING", - "CONCAT_EMBEDDING" - ], - "enumDescriptions": [ - "Default value. This is the same as IDENTITY.", - "The tensor represents one feature.", - "The tensor represents a bag of features where each index maps to a feature. InputMetadata.index_feature_mapping must be provided for this encoding. For example: ``` input = [27, 6.0, 150] index_feature_mapping = [\"age\", \"height\", \"weight\"] ```", - "The tensor represents a bag of features where each index maps to a feature. Zero values in the tensor indicates feature being non-existent. InputMetadata.index_feature_mapping must be provided for this encoding. For example: ``` input = [2, 0, 5, 0, 1] index_feature_mapping = [\"a\", \"b\", \"c\", \"d\", \"e\"] ```", - "The tensor is a list of binaries representing whether a feature exists or not (1 indicates existence). InputMetadata.index_feature_mapping must be provided for this encoding. For example: ``` input = [1, 0, 1, 0, 1] index_feature_mapping = [\"a\", \"b\", \"c\", \"d\", \"e\"] ```", - "The tensor is encoded into a 1-dimensional array represented by an encoded tensor. InputMetadata.encoded_tensor_name must be provided for this encoding. For example: ``` input = [\"This\", \"is\", \"a\", \"test\", \".\"] encoded = [0.1, 0.2, 0.3, 0.4, 0.5] ```", - "Select this encoding when the input tensor is encoded into a 2-dimensional array represented by an encoded tensor. InputMetadata.encoded_tensor_name must be provided for this encoding. The first dimension of the encoded tensor's shape is the same as the input tensor's shape. For example: ``` input = [\"This\", \"is\", \"a\", \"test\", \".\"] encoded = [[0.1, 0.2, 0.3, 0.4, 0.5], [0.2, 0.1, 0.4, 0.3, 0.5], [0.5, 0.1, 0.3, 0.5, 0.4], [0.5, 0.3, 0.1, 0.2, 0.4], [0.4, 0.3, 0.2, 0.5, 0.1]] ```" - ], + "displayName": { + "description": "The display name of the DeployedModel. If not provided upon creation, the Model's display_name is used.", "type": "string" }, - "featureValueDomain": { - "$ref": "GoogleCloudAiplatformV1ExplanationMetadataInputMetadataFeatureValueDomain", - "description": "The domain details of the input feature value. Like min/max, original mean or standard deviation if normalized." + "enableAccessLogging": { + "description": "If true, online prediction access logs are sent to Cloud Logging. These logs are like standard server access logs, containing information like timestamp and latency for each prediction request. Note that logs may incur a cost, especially if your project receives prediction requests at a high queries per second rate (QPS). Estimate your costs before enabling this option.", + "type": "boolean" }, - "groupName": { - "description": "Name of the group that the input belongs to. Features with the same group name will be treated as one feature when computing attributions. Features grouped together can have different shapes in value. If provided, there will be one single attribution generated in Attribution.feature_attributions, keyed by the group name.", - "type": "string" + "explanationSpec": { + "$ref": "GoogleCloudAiplatformV1ExplanationSpec", + "description": "Explanation configuration for this DeployedModel. When deploying a Model using EndpointService.DeployModel, this value overrides the value of Model.explanation_spec. All fields of explanation_spec are optional in the request. If a field of explanation_spec is not populated, the value of the same field of Model.explanation_spec is inherited. If the corresponding Model.explanation_spec is not populated, all fields of the explanation_spec will be used for the explanation configuration." }, - "indexFeatureMapping": { - "description": "A list of feature names for each index in the input tensor. Required when the input InputMetadata.encoding is BAG_OF_FEATURES, BAG_OF_FEATURES_SPARSE, INDICATOR.", - "items": { - "type": "string" - }, - "type": "array" - }, - "indicesTensorName": { - "description": "Specifies the index of the values of the input tensor. Required when the input tensor is a sparse representation. Refer to Tensorflow documentation for more details: https://www.tensorflow.org/api_docs/python/tf/sparse/SparseTensor.", + "id": { + "description": "Immutable. The ID of the DeployedModel. If not provided upon deployment, Vertex AI will generate a value for this ID. This value should be 1-10 characters, and valid characters are `/[0-9]/`.", "type": "string" }, - "inputBaselines": { - "description": "Baseline inputs for this feature. If no baseline is specified, Vertex AI chooses the baseline for this feature. If multiple baselines are specified, Vertex AI returns the average attributions across them in Attribution.feature_attributions. For Vertex AI-provided Tensorflow images (both 1.x and 2.x), the shape of each baseline must match the shape of the input tensor. If a scalar is provided, we broadcast to the same shape as the input tensor. For custom images, the element of the baselines must be in the same format as the feature's input in the instance[]. The schema of any single instance may be specified via Endpoint's DeployedModels' Model's PredictSchemata's instance_schema_uri.", - "items": { - "type": "any" - }, - "type": "array" + "model": { + "description": "Required. The resource name of the Model that this is the deployment of. Note that the Model may be in a different location than the DeployedModel's Endpoint. The resource name may contain version id or version alias to specify the version. Example: `projects/{project}/locations/{location}/models/{model}@2` or `projects/{project}/locations/{location}/models/{model}@golden` if no version is specified, the default version will be deployed.", + "type": "string" }, - "inputTensorName": { - "description": "Name of the input tensor for this feature. Required and is only applicable to Vertex AI-provided images for Tensorflow.", + "modelVersionId": { + "description": "Output only. The version ID of the model that is deployed.", + "readOnly": true, "type": "string" }, - "modality": { - "description": "Modality of the feature. Valid values are: numeric, image. Defaults to numeric.", + "privateEndpoints": { + "$ref": "GoogleCloudAiplatformV1PrivateEndpoints", + "description": "Output only. Provide paths for users to send predict/explain/health requests directly to the deployed model services running on Cloud via private services access. This field is populated if network is configured.", + "readOnly": true + }, + "serviceAccount": { + "description": "The service account that the DeployedModel's container runs as. Specify the email address of the service account. If this service account is not specified, the container runs as a service account that doesn't have access to the resource project. Users deploying the Model must have the `iam.serviceAccounts.actAs` permission on this service account.", "type": "string" }, - "visualization": { - "$ref": "GoogleCloudAiplatformV1ExplanationMetadataInputMetadataVisualization", - "description": "Visualization configurations for image explanation." + "sharedResources": { + "description": "The resource name of the shared DeploymentResourcePool to deploy on. Format: `projects/{project}/locations/{location}/deploymentResourcePools/{deployment_resource_pool}`", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ExplanationMetadataInputMetadataFeatureValueDomain": { - "description": "Domain details of the input feature value. Provides numeric information about the feature, such as its range (min, max). If the feature has been pre-processed, for example with z-scoring, then it provides information about how to recover the original feature. For example, if the input feature is an image and it has been pre-processed to obtain 0-mean and stddev = 1 values, then original_mean, and original_stddev refer to the mean and stddev of the original feature (e.g. image tensor) from which input feature (with mean = 0 and stddev = 1) was obtained.", - "id": "GoogleCloudAiplatformV1ExplanationMetadataInputMetadataFeatureValueDomain", + "GoogleCloudAiplatformV1DeployedModelRef": { + "description": "Points to a DeployedModel.", + "id": "GoogleCloudAiplatformV1DeployedModelRef", "properties": { - "maxValue": { - "description": "The maximum permissible value for this feature.", - "format": "float", - "type": "number" - }, - "minValue": { - "description": "The minimum permissible value for this feature.", - "format": "float", - "type": "number" - }, - "originalMean": { - "description": "If this input feature has been normalized to a mean value of 0, the original_mean specifies the mean value of the domain prior to normalization.", - "format": "float", - "type": "number" + "deployedModelId": { + "description": "Immutable. An ID of a DeployedModel in the above Endpoint.", + "type": "string" }, - "originalStddev": { - "description": "If this input feature has been normalized to a standard deviation of 1.0, the original_stddev specifies the standard deviation of the domain prior to normalization.", - "format": "float", - "type": "number" + "endpoint": { + "description": "Immutable. A resource name of an Endpoint.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ExplanationMetadataInputMetadataVisualization": { - "description": "Visualization configurations for image explanation.", - "id": "GoogleCloudAiplatformV1ExplanationMetadataInputMetadataVisualization", + "GoogleCloudAiplatformV1DeploymentResourcePool": { + "description": "A description of resources that can be shared by multiple DeployedModels, whose underlying specification consists of a DedicatedResources.", + "id": "GoogleCloudAiplatformV1DeploymentResourcePool", "properties": { - "clipPercentLowerbound": { - "description": "Excludes attributions below the specified percentile, from the highlighted areas. Defaults to 62.", - "format": "float", - "type": "number" - }, - "clipPercentUpperbound": { - "description": "Excludes attributions above the specified percentile from the highlighted areas. Using the clip_percent_upperbound and clip_percent_lowerbound together can be useful for filtering out noise and making it easier to see areas of strong attribution. Defaults to 99.9.", - "format": "float", - "type": "number" - }, - "colorMap": { - "description": "The color scheme used for the highlighted areas. Defaults to PINK_GREEN for Integrated Gradients attribution, which shows positive attributions in green and negative in pink. Defaults to VIRIDIS for XRAI attribution, which highlights the most influential regions in yellow and the least influential in blue.", - "enum": [ - "COLOR_MAP_UNSPECIFIED", - "PINK_GREEN", - "VIRIDIS", - "RED", - "GREEN", - "RED_GREEN", - "PINK_WHITE_GREEN" - ], - "enumDescriptions": [ - "Should not be used.", - "Positive: green. Negative: pink.", - "Viridis color map: A perceptually uniform color mapping which is easier to see by those with colorblindness and progresses from yellow to green to blue. Positive: yellow. Negative: blue.", - "Positive: red. Negative: red.", - "Positive: green. Negative: green.", - "Positive: green. Negative: red.", - "PiYG palette." - ], - "type": "string" - }, - "overlayType": { - "description": "How the original image is displayed in the visualization. Adjusting the overlay can help increase visual clarity if the original image makes it difficult to view the visualization. Defaults to NONE.", - "enum": [ - "OVERLAY_TYPE_UNSPECIFIED", - "NONE", - "ORIGINAL", - "GRAYSCALE", - "MASK_BLACK" - ], - "enumDescriptions": [ - "Default value. This is the same as NONE.", - "No overlay.", - "The attributions are shown on top of the original image.", - "The attributions are shown on top of grayscaled version of the original image.", - "The attributions are used as a mask to reveal predictive parts of the image and hide the un-predictive parts." - ], + "createTime": { + "description": "Output only. Timestamp when this DeploymentResourcePool was created.", + "format": "google-datetime", + "readOnly": true, "type": "string" }, - "polarity": { - "description": "Whether to only highlight pixels with positive contributions, negative or both. Defaults to POSITIVE.", - "enum": [ - "POLARITY_UNSPECIFIED", - "POSITIVE", - "NEGATIVE", - "BOTH" - ], - "enumDescriptions": [ - "Default value. This is the same as POSITIVE.", - "Highlights the pixels/outlines that were most influential to the model's prediction.", - "Setting polarity to negative highlights areas that does not lead to the models's current prediction.", - "Shows both positive and negative attributions." - ], - "type": "string" + "dedicatedResources": { + "$ref": "GoogleCloudAiplatformV1DedicatedResources", + "description": "Required. The underlying DedicatedResources that the DeploymentResourcePool uses." }, - "type": { - "description": "Type of the image visualization. Only applicable to Integrated Gradients attribution. OUTLINES shows regions of attribution, while PIXELS shows per-pixel attribution. Defaults to OUTLINES.", - "enum": [ - "TYPE_UNSPECIFIED", - "PIXELS", - "OUTLINES" - ], - "enumDescriptions": [ - "Should not be used.", - "Shows which pixel contributed to the image prediction.", - "Shows which region contributed to the image prediction by outlining the region." - ], + "name": { + "description": "Immutable. The resource name of the DeploymentResourcePool. Format: `projects/{project}/locations/{location}/deploymentResourcePools/{deployment_resource_pool}`", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ExplanationMetadataOutputMetadata": { - "description": "Metadata of the prediction output to be explained.", - "id": "GoogleCloudAiplatformV1ExplanationMetadataOutputMetadata", + "GoogleCloudAiplatformV1DestinationFeatureSetting": { + "id": "GoogleCloudAiplatformV1DestinationFeatureSetting", "properties": { - "displayNameMappingKey": { - "description": "Specify a field name in the prediction to look for the display name. Use this if the prediction contains the display names for the outputs. The display names in the prediction must have the same shape of the outputs, so that it can be located by Attribution.output_index for a specific output.", + "destinationField": { + "description": "Specify the field name in the export destination. If not specified, Feature ID is used.", "type": "string" }, - "indexDisplayNameMapping": { - "description": "Static mapping between the index and display name. Use this if the outputs are a deterministic n-dimensional array, e.g. a list of scores of all the classes in a pre-defined order for a multi-classification Model. It's not feasible if the outputs are non-deterministic, e.g. the Model produces top-k classes or sort the outputs by their values. The shape of the value must be an n-dimensional array of strings. The number of dimensions must match that of the outputs to be explained. The Attribution.output_display_name is populated by locating in the mapping with Attribution.output_index.", - "type": "any" - }, - "outputTensorName": { - "description": "Name of the output tensor. Required and is only applicable to Vertex AI provided images for Tensorflow.", + "featureId": { + "description": "Required. The ID of the Feature to apply the setting to.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ExplanationMetadataOverride": { - "description": "The ExplanationMetadata entries that can be overridden at online explanation time.", - "id": "GoogleCloudAiplatformV1ExplanationMetadataOverride", + "GoogleCloudAiplatformV1DirectPredictRequest": { + "description": "Request message for PredictionService.DirectPredict.", + "id": "GoogleCloudAiplatformV1DirectPredictRequest", "properties": { "inputs": { - "additionalProperties": { - "$ref": "GoogleCloudAiplatformV1ExplanationMetadataOverrideInputMetadataOverride" - }, - "description": "Required. Overrides the input metadata of the features. The key is the name of the feature to be overridden. The keys specified here must exist in the input metadata to be overridden. If a feature is not specified here, the corresponding feature's input metadata is not overridden.", - "type": "object" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1ExplanationMetadataOverrideInputMetadataOverride": { - "description": "The input metadata entries to be overridden.", - "id": "GoogleCloudAiplatformV1ExplanationMetadataOverrideInputMetadataOverride", - "properties": { - "inputBaselines": { - "description": "Baseline inputs for this feature. This overrides the `input_baseline` field of the ExplanationMetadata.InputMetadata object of the corresponding feature's input metadata. If it's not specified, the original baselines are not overridden.", + "description": "The prediction input.", "items": { - "type": "any" + "$ref": "GoogleCloudAiplatformV1Tensor" }, "type": "array" + }, + "parameters": { + "$ref": "GoogleCloudAiplatformV1Tensor", + "description": "The parameters that govern the prediction." } }, "type": "object" }, - "GoogleCloudAiplatformV1ExplanationParameters": { - "description": "Parameters to configure explaining for Model's predictions.", - "id": "GoogleCloudAiplatformV1ExplanationParameters", + "GoogleCloudAiplatformV1DirectPredictResponse": { + "description": "Response message for PredictionService.DirectPredict.", + "id": "GoogleCloudAiplatformV1DirectPredictResponse", "properties": { - "examples": { - "$ref": "GoogleCloudAiplatformV1Examples", - "description": "Example-based explanations that returns the nearest neighbors from the provided dataset." - }, - "integratedGradientsAttribution": { - "$ref": "GoogleCloudAiplatformV1IntegratedGradientsAttribution", - "description": "An attribution method that computes Aumann-Shapley values taking advantage of the model's fully differentiable structure. Refer to this paper for more details: https://arxiv.org/abs/1703.01365" - }, - "outputIndices": { - "description": "If populated, only returns attributions that have output_index contained in output_indices. It must be an ndarray of integers, with the same shape of the output it's explaining. If not populated, returns attributions for top_k indices of outputs. If neither top_k nor output_indices is populated, returns the argmax index of the outputs. Only applicable to Models that predict multiple outputs (e,g, multi-class Models that predict multiple classes).", + "outputs": { + "description": "The prediction output.", "items": { - "type": "any" + "$ref": "GoogleCloudAiplatformV1Tensor" }, "type": "array" }, - "sampledShapleyAttribution": { - "$ref": "GoogleCloudAiplatformV1SampledShapleyAttribution", - "description": "An attribution method that approximates Shapley values for features that contribute to the label being predicted. A sampling strategy is used to approximate the value rather than considering all subsets of features. Refer to this paper for model details: https://arxiv.org/abs/1306.4265." - }, - "topK": { - "description": "If populated, returns attributions for top K indices of outputs (defaults to 1). Only applies to Models that predicts more than one outputs (e,g, multi-class Models). When set to -1, returns explanations for all outputs.", - "format": "int32", - "type": "integer" - }, - "xraiAttribution": { - "$ref": "GoogleCloudAiplatformV1XraiAttribution", - "description": "An attribution method that redistributes Integrated Gradients attribution to segmented regions, taking advantage of the model's fully differentiable structure. Refer to this paper for more details: https://arxiv.org/abs/1906.02825 XRAI currently performs better on natural images, like a picture of a house or an animal. If the images are taken in artificial environments, like a lab or manufacturing line, or from diagnostic equipment, like x-rays or quality-control cameras, use Integrated Gradients instead." + "parameters": { + "$ref": "GoogleCloudAiplatformV1Tensor", + "description": "The parameters that govern the prediction." } }, "type": "object" }, - "GoogleCloudAiplatformV1ExplanationSpec": { - "description": "Specification of Model explanation.", - "id": "GoogleCloudAiplatformV1ExplanationSpec", + "GoogleCloudAiplatformV1DirectRawPredictRequest": { + "description": "Request message for PredictionService.DirectRawPredict.", + "id": "GoogleCloudAiplatformV1DirectRawPredictRequest", "properties": { - "metadata": { - "$ref": "GoogleCloudAiplatformV1ExplanationMetadata", - "description": "Optional. Metadata describing the Model's input and output for explanation." + "input": { + "description": "The prediction input.", + "format": "byte", + "type": "string" }, - "parameters": { - "$ref": "GoogleCloudAiplatformV1ExplanationParameters", - "description": "Required. Parameters that configure explaining of the Model's predictions." + "methodName": { + "description": "Fully qualified name of the API method being invoked to perform predictions. Format: `/namespace.Service/Method/` Example: `/tensorflow.serving.PredictionService/Predict`", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ExplanationSpecOverride": { - "description": "The ExplanationSpec entries that can be overridden at online explanation time.", - "id": "GoogleCloudAiplatformV1ExplanationSpecOverride", + "GoogleCloudAiplatformV1DirectRawPredictResponse": { + "description": "Response message for PredictionService.DirectRawPredict.", + "id": "GoogleCloudAiplatformV1DirectRawPredictResponse", "properties": { - "examplesOverride": { - "$ref": "GoogleCloudAiplatformV1ExamplesOverride", - "description": "The example-based explanations parameter overrides." - }, - "metadata": { - "$ref": "GoogleCloudAiplatformV1ExplanationMetadataOverride", - "description": "The metadata to be overridden. If not specified, no metadata is overridden." - }, - "parameters": { - "$ref": "GoogleCloudAiplatformV1ExplanationParameters", - "description": "The parameters to be overridden. Note that the attribution method cannot be changed. If not specified, no parameter is overridden." + "output": { + "description": "The prediction output.", + "format": "byte", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ExportDataConfig": { - "description": "Describes what part of the Dataset is to be exported, the destination of the export and how to export.", - "id": "GoogleCloudAiplatformV1ExportDataConfig", + "GoogleCloudAiplatformV1DiskSpec": { + "description": "Represents the spec of disk options.", + "id": "GoogleCloudAiplatformV1DiskSpec", "properties": { - "annotationsFilter": { - "description": "An expression for filtering what part of the Dataset is to be exported. Only Annotations that match this filter will be exported. The filter syntax is the same as in ListAnnotations.", - "type": "string" - }, - "fractionSplit": { - "$ref": "GoogleCloudAiplatformV1ExportFractionSplit", - "description": "Split based on fractions defining the size of each set." + "bootDiskSizeGb": { + "description": "Size in GB of the boot disk (default is 100GB).", + "format": "int32", + "type": "integer" }, - "gcsDestination": { - "$ref": "GoogleCloudAiplatformV1GcsDestination", - "description": "The Google Cloud Storage location where the output is to be written to. In the given directory a new directory will be created with name: `export-data--` where timestamp is in YYYY-MM-DDThh:mm:ss.sssZ ISO-8601 format. All export output will be written into that directory. Inside that directory, annotations with the same schema will be grouped into sub directories which are named with the corresponding annotations' schema title. Inside these sub directories, a schema.yaml will be created to describe the output format." + "bootDiskType": { + "description": "Type of the boot disk (default is \"pd-ssd\"). Valid values: \"pd-ssd\" (Persistent Disk Solid State Drive) or \"pd-standard\" (Persistent Disk Hard Disk Drive).", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ExportDataOperationMetadata": { - "description": "Runtime operation information for DatasetService.ExportData.", - "id": "GoogleCloudAiplatformV1ExportDataOperationMetadata", + "GoogleCloudAiplatformV1DoubleArray": { + "description": "A list of double values.", + "id": "GoogleCloudAiplatformV1DoubleArray", "properties": { - "gcsOutputDirectory": { - "description": "A Google Cloud Storage directory which path ends with '/'. The exported data is stored in the directory.", - "type": "string" - }, - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "The common part of the operation metadata." + "values": { + "description": "A list of double values.", + "items": { + "format": "double", + "type": "number" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1ExportDataRequest": { - "description": "Request message for DatasetService.ExportData.", - "id": "GoogleCloudAiplatformV1ExportDataRequest", + "GoogleCloudAiplatformV1EncryptionSpec": { + "description": "Represents a customer-managed encryption key spec that can be applied to a top-level resource.", + "id": "GoogleCloudAiplatformV1EncryptionSpec", "properties": { - "exportConfig": { - "$ref": "GoogleCloudAiplatformV1ExportDataConfig", - "description": "Required. The desired output location." + "kmsKeyName": { + "description": "Required. The Cloud KMS resource identifier of the customer managed encryption key used to protect a resource. Has the form: `projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key`. The key needs to be in the same region as where the compute resource is created.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ExportDataResponse": { - "description": "Response message for DatasetService.ExportData.", - "id": "GoogleCloudAiplatformV1ExportDataResponse", + "GoogleCloudAiplatformV1Endpoint": { + "description": "Models are deployed into it, and afterwards Endpoint is called to obtain predictions and explanations.", + "id": "GoogleCloudAiplatformV1Endpoint", "properties": { - "exportedFiles": { - "description": "All of the files that are exported in this export operation.", + "createTime": { + "description": "Output only. Timestamp when this Endpoint was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "deployedModels": { + "description": "Output only. The models deployed in this Endpoint. To add or remove DeployedModels use EndpointService.DeployModel and EndpointService.UndeployModel respectively.", "items": { - "type": "string" + "$ref": "GoogleCloudAiplatformV1DeployedModel" }, + "readOnly": true, "type": "array" + }, + "description": { + "description": "The description of the Endpoint.", + "type": "string" + }, + "displayName": { + "description": "Required. The display name of the Endpoint. The name can be up to 128 characters long and can consist of any UTF-8 characters.", + "type": "string" + }, + "enablePrivateServiceConnect": { + "deprecated": true, + "description": "Deprecated: If true, expose the Endpoint via private service connect. Only one of the fields, network or enable_private_service_connect, can be set.", + "type": "boolean" + }, + "encryptionSpec": { + "$ref": "GoogleCloudAiplatformV1EncryptionSpec", + "description": "Customer-managed encryption key spec for an Endpoint. If set, this Endpoint and all sub-resources of this Endpoint will be secured by this key." + }, + "etag": { + "description": "Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "The labels with user-defined metadata to organize your Endpoints. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels.", + "type": "object" + }, + "modelDeploymentMonitoringJob": { + "description": "Output only. Resource name of the Model Monitoring job associated with this Endpoint if monitoring is enabled by JobService.CreateModelDeploymentMonitoringJob. Format: `projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}`", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. The resource name of the Endpoint.", + "readOnly": true, + "type": "string" + }, + "network": { + "description": "Optional. The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks) to which the Endpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. Only one of the fields, network or enable_private_service_connect, can be set. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where `{project}` is a project number, as in `12345`, and `{network}` is network name.", + "type": "string" + }, + "predictRequestResponseLoggingConfig": { + "$ref": "GoogleCloudAiplatformV1PredictRequestResponseLoggingConfig", + "description": "Configures the request-response logging for online prediction." + }, + "privateServiceConnectConfig": { + "$ref": "GoogleCloudAiplatformV1PrivateServiceConnectConfig", + "description": "Optional. Configuration for private service connect. network and private_service_connect_config are mutually exclusive." + }, + "trafficSplit": { + "additionalProperties": { + "format": "int32", + "type": "integer" + }, + "description": "A map from a DeployedModel's ID to the percentage of this Endpoint's traffic that should be forwarded to that DeployedModel. If a DeployedModel's ID is not listed in this map, then it receives no traffic. The traffic percentage values must add up to 100, or map must be empty if the Endpoint is to not accept any traffic at a moment.", + "type": "object" + }, + "updateTime": { + "description": "Output only. Timestamp when this Endpoint was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ExportFeatureValuesOperationMetadata": { - "description": "Details of operations that exports Features values.", - "id": "GoogleCloudAiplatformV1ExportFeatureValuesOperationMetadata", + "GoogleCloudAiplatformV1EntityIdSelector": { + "description": "Selector for entityId. Getting ids from the given source.", + "id": "GoogleCloudAiplatformV1EntityIdSelector", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "Operation metadata for Featurestore export Feature values." + "csvSource": { + "$ref": "GoogleCloudAiplatformV1CsvSource", + "description": "Source of Csv" + }, + "entityIdField": { + "description": "Source column that holds entity IDs. If not provided, entity IDs are extracted from the column named entity_id.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ExportFeatureValuesRequest": { - "description": "Request message for FeaturestoreService.ExportFeatureValues.", - "id": "GoogleCloudAiplatformV1ExportFeatureValuesRequest", + "GoogleCloudAiplatformV1EntityType": { + "description": "An entity type is a type of object in a system that needs to be modeled and have stored information about. For example, driver is an entity type, and driver0 is an instance of an entity type driver.", + "id": "GoogleCloudAiplatformV1EntityType", "properties": { - "destination": { - "$ref": "GoogleCloudAiplatformV1FeatureValueDestination", - "description": "Required. Specifies destination location and format." + "createTime": { + "description": "Output only. Timestamp when this EntityType was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" }, - "featureSelector": { - "$ref": "GoogleCloudAiplatformV1FeatureSelector", - "description": "Required. Selects Features to export values of." + "description": { + "description": "Optional. Description of the EntityType.", + "type": "string" }, - "fullExport": { - "$ref": "GoogleCloudAiplatformV1ExportFeatureValuesRequestFullExport", - "description": "Exports all historical values of all entities of the EntityType within a time range" + "etag": { + "description": "Optional. Used to perform a consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "type": "string" }, - "settings": { - "description": "Per-Feature export settings.", - "items": { - "$ref": "GoogleCloudAiplatformV1DestinationFeatureSetting" + "labels": { + "additionalProperties": { + "type": "string" }, - "type": "array" + "description": "Optional. The labels with user-defined metadata to organize your EntityTypes. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information on and examples of labels. No more than 64 user labels can be associated with one EntityType (System labels are excluded).\" System reserved label keys are prefixed with \"aiplatform.googleapis.com/\" and are immutable.", + "type": "object" }, - "snapshotExport": { - "$ref": "GoogleCloudAiplatformV1ExportFeatureValuesRequestSnapshotExport", - "description": "Exports the latest Feature values of all entities of the EntityType within a time range." - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1ExportFeatureValuesRequestFullExport": { - "description": "Describes exporting all historical Feature values of all entities of the EntityType between [start_time, end_time].", - "id": "GoogleCloudAiplatformV1ExportFeatureValuesRequestFullExport", - "properties": { - "endTime": { - "description": "Exports Feature values as of this timestamp. If not set, retrieve values as of now. Timestamp, if present, must not have higher than millisecond precision.", - "format": "google-datetime", + "monitoringConfig": { + "$ref": "GoogleCloudAiplatformV1FeaturestoreMonitoringConfig", + "description": "Optional. The default monitoring configuration for all Features with value type (Feature.ValueType) BOOL, STRING, DOUBLE or INT64 under this EntityType. If this is populated with [FeaturestoreMonitoringConfig.monitoring_interval] specified, snapshot analysis monitoring is enabled. Otherwise, snapshot analysis monitoring is disabled." + }, + "name": { + "description": "Immutable. Name of the EntityType. Format: `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` The last part entity_type is assigned by the client. The entity_type can be up to 64 characters long and can consist only of ASCII Latin letters A-Z and a-z and underscore(_), and ASCII digits 0-9 starting with a letter. The value will be unique given a featurestore.", "type": "string" }, - "startTime": { - "description": "Excludes Feature values with feature generation timestamp before this timestamp. If not set, retrieve oldest values kept in Feature Store. Timestamp, if present, must not have higher than millisecond precision.", + "offlineStorageTtlDays": { + "description": "Optional. Config for data retention policy in offline storage. TTL in days for feature values that will be stored in offline storage. The Feature Store offline storage periodically removes obsolete feature values older than `offline_storage_ttl_days` since the feature generation time. If unset (or explicitly set to 0), default to 4000 days TTL.", + "format": "int32", + "type": "integer" + }, + "updateTime": { + "description": "Output only. Timestamp when this EntityType was most recently updated.", "format": "google-datetime", + "readOnly": true, "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ExportFeatureValuesRequestSnapshotExport": { - "description": "Describes exporting the latest Feature values of all entities of the EntityType between [start_time, snapshot_time].", - "id": "GoogleCloudAiplatformV1ExportFeatureValuesRequestSnapshotExport", + "GoogleCloudAiplatformV1EnvVar": { + "description": "Represents an environment variable present in a Container or Python Module.", + "id": "GoogleCloudAiplatformV1EnvVar", "properties": { - "snapshotTime": { - "description": "Exports Feature values as of this timestamp. If not set, retrieve values as of now. Timestamp, if present, must not have higher than millisecond precision.", - "format": "google-datetime", + "name": { + "description": "Required. Name of the environment variable. Must be a valid C identifier.", "type": "string" }, - "startTime": { - "description": "Excludes Feature values with feature generation timestamp before this timestamp. If not set, retrieve oldest values kept in Feature Store. Timestamp, if present, must not have higher than millisecond precision.", - "format": "google-datetime", + "value": { + "description": "Required. Variables that reference a $(VAR_NAME) are expanded using the previous defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ExportFeatureValuesResponse": { - "description": "Response message for FeaturestoreService.ExportFeatureValues.", - "id": "GoogleCloudAiplatformV1ExportFeatureValuesResponse", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1ExportFractionSplit": { - "description": "Assigns the input data to training, validation, and test sets as per the given fractions. Any of `training_fraction`, `validation_fraction` and `test_fraction` may optionally be provided, they must sum to up to 1. If the provided ones sum to less than 1, the remainder is assigned to sets as decided by Vertex AI. If none of the fractions are set, by default roughly 80% of data is used for training, 10% for validation, and 10% for test.", - "id": "GoogleCloudAiplatformV1ExportFractionSplit", + "GoogleCloudAiplatformV1ErrorAnalysisAnnotation": { + "description": "Model error analysis for each annotation.", + "id": "GoogleCloudAiplatformV1ErrorAnalysisAnnotation", "properties": { - "testFraction": { - "description": "The fraction of the input data that is to be used to evaluate the Model.", - "format": "double", - "type": "number" + "attributedItems": { + "description": "Attributed items for a given annotation, typically representing neighbors from the training sets constrained by the query type.", + "items": { + "$ref": "GoogleCloudAiplatformV1ErrorAnalysisAnnotationAttributedItem" + }, + "type": "array" }, - "trainingFraction": { - "description": "The fraction of the input data that is to be used to train the Model.", + "outlierScore": { + "description": "The outlier score of this annotated item. Usually defined as the min of all distances from attributed items.", "format": "double", "type": "number" }, - "validationFraction": { - "description": "The fraction of the input data that is to be used to validate the Model.", + "outlierThreshold": { + "description": "The threshold used to determine if this annotation is an outlier or not.", "format": "double", "type": "number" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1ExportModelOperationMetadata": { - "description": "Details of ModelService.ExportModel operation.", - "id": "GoogleCloudAiplatformV1ExportModelOperationMetadata", - "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "The common part of the operation metadata." - }, - "outputInfo": { - "$ref": "GoogleCloudAiplatformV1ExportModelOperationMetadataOutputInfo", - "description": "Output only. Information further describing the output of this Model export.", - "readOnly": true - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1ExportModelOperationMetadataOutputInfo": { - "description": "Further describes the output of the ExportModel. Supplements ExportModelRequest.OutputConfig.", - "id": "GoogleCloudAiplatformV1ExportModelOperationMetadataOutputInfo", - "properties": { - "artifactOutputUri": { - "description": "Output only. If the Model artifact is being exported to Google Cloud Storage this is the full path of the directory created, into which the Model files are being written to.", - "readOnly": true, - "type": "string" - }, - "imageOutputUri": { - "description": "Output only. If the Model image is being exported to Google Container Registry or Artifact Registry this is the full path of the image created.", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1ExportModelRequest": { - "description": "Request message for ModelService.ExportModel.", - "id": "GoogleCloudAiplatformV1ExportModelRequest", - "properties": { - "outputConfig": { - "$ref": "GoogleCloudAiplatformV1ExportModelRequestOutputConfig", - "description": "Required. The desired output location and configuration." - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1ExportModelRequestOutputConfig": { - "description": "Output configuration for the Model export.", - "id": "GoogleCloudAiplatformV1ExportModelRequestOutputConfig", - "properties": { - "artifactDestination": { - "$ref": "GoogleCloudAiplatformV1GcsDestination", - "description": "The Cloud Storage location where the Model artifact is to be written to. Under the directory given as the destination a new one with name \"`model-export--`\", where timestamp is in YYYY-MM-DDThh:mm:ss.sssZ ISO-8601 format, will be created. Inside, the Model and any of its supporting files will be written. This field should only be set when the `exportableContent` field of the [Model.supported_export_formats] object contains `ARTIFACT`." }, - "exportFormatId": { - "description": "The ID of the format in which the Model must be exported. Each Model lists the export formats it supports. If no value is provided here, then the first from the list of the Model's supported formats is used by default.", + "queryType": { + "description": "The query type used for finding the attributed items.", + "enum": [ + "QUERY_TYPE_UNSPECIFIED", + "ALL_SIMILAR", + "SAME_CLASS_SIMILAR", + "SAME_CLASS_DISSIMILAR" + ], + "enumDescriptions": [ + "Unspecified query type for model error analysis.", + "Query similar samples across all classes in the dataset.", + "Query similar samples from the same class of the input sample.", + "Query dissimilar samples from the same class of the input sample." + ], "type": "string" - }, - "imageDestination": { - "$ref": "GoogleCloudAiplatformV1ContainerRegistryDestination", - "description": "The Google Container Registry or Artifact Registry uri where the Model container image will be copied to. This field should only be set when the `exportableContent` field of the [Model.supported_export_formats] object contains `IMAGE`." } }, "type": "object" }, - "GoogleCloudAiplatformV1ExportModelResponse": { - "description": "Response message of ModelService.ExportModel operation.", - "id": "GoogleCloudAiplatformV1ExportModelResponse", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1ExportTensorboardTimeSeriesDataRequest": { - "description": "Request message for TensorboardService.ExportTensorboardTimeSeriesData.", - "id": "GoogleCloudAiplatformV1ExportTensorboardTimeSeriesDataRequest", + "GoogleCloudAiplatformV1ErrorAnalysisAnnotationAttributedItem": { + "description": "Attributed items for a given annotation, typically representing neighbors from the training sets constrained by the query type.", + "id": "GoogleCloudAiplatformV1ErrorAnalysisAnnotationAttributedItem", "properties": { - "filter": { - "description": "Exports the TensorboardTimeSeries' data that match the filter expression.", - "type": "string" - }, - "orderBy": { - "description": "Field to use to sort the TensorboardTimeSeries' data. By default, TensorboardTimeSeries' data is returned in a pseudo random order.", + "annotationResourceName": { + "description": "The unique ID for each annotation. Used by FE to allocate the annotation in DB.", "type": "string" }, - "pageSize": { - "description": "The maximum number of data points to return per page. The default page_size is 1000. Values must be between 1 and 10000. Values above 10000 are coerced to 10000.", - "format": "int32", - "type": "integer" - }, - "pageToken": { - "description": "A page token, received from a previous ExportTensorboardTimeSeriesData call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ExportTensorboardTimeSeriesData must match the call that provided the page token.", - "type": "string" + "distance": { + "description": "The distance of this item to the annotation.", + "format": "double", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1ExportTensorboardTimeSeriesDataResponse": { - "description": "Response message for TensorboardService.ExportTensorboardTimeSeriesData.", - "id": "GoogleCloudAiplatformV1ExportTensorboardTimeSeriesDataResponse", + "GoogleCloudAiplatformV1EvaluatedAnnotation": { + "description": "True positive, false positive, or false negative. EvaluatedAnnotation is only available under ModelEvaluationSlice with slice of `annotationSpec` dimension.", + "id": "GoogleCloudAiplatformV1EvaluatedAnnotation", "properties": { - "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" + "dataItemPayload": { + "description": "Output only. The data item payload that the Model predicted this EvaluatedAnnotation on.", + "readOnly": true, + "type": "any" }, - "timeSeriesDataPoints": { - "description": "The returned time series data points.", + "errorAnalysisAnnotations": { + "description": "Annotations of model error analysis results.", "items": { - "$ref": "GoogleCloudAiplatformV1TimeSeriesDataPoint" + "$ref": "GoogleCloudAiplatformV1ErrorAnalysisAnnotation" }, "type": "array" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1Feature": { - "description": "Feature Metadata information. For example, color is a feature that describes an apple.", - "id": "GoogleCloudAiplatformV1Feature", - "properties": { - "createTime": { - "description": "Output only. Only applicable for Vertex AI Feature Store (Legacy). Timestamp when this EntityType was created.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "description": { - "description": "Description of the Feature.", - "type": "string" }, - "disableMonitoring": { - "description": "Optional. Only applicable for Vertex AI Feature Store (Legacy). If not set, use the monitoring_config defined for the EntityType this Feature belongs to. Only Features with type (Feature.ValueType) BOOL, STRING, DOUBLE or INT64 can enable monitoring. If set to true, all types of data monitoring are disabled despite the config on EntityType.", - "type": "boolean" - }, - "etag": { - "description": "Used to perform a consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "evaluatedDataItemViewId": { + "description": "Output only. ID of the EvaluatedDataItemView under the same ancestor ModelEvaluation. The EvaluatedDataItemView consists of all ground truths and predictions on data_item_payload.", + "readOnly": true, "type": "string" }, - "labels": { - "additionalProperties": { - "type": "string" + "explanations": { + "description": "Explanations of predictions. Each element of the explanations indicates the explanation for one explanation Method. The attributions list in the EvaluatedAnnotationExplanation.explanation object corresponds to the predictions list. For example, the second element in the attributions list explains the second element in the predictions list.", + "items": { + "$ref": "GoogleCloudAiplatformV1EvaluatedAnnotationExplanation" }, - "description": "Optional. The labels with user-defined metadata to organize your Features. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information on and examples of labels. No more than 64 user labels can be associated with one Feature (System labels are excluded).\" System reserved label keys are prefixed with \"aiplatform.googleapis.com/\" and are immutable.", - "type": "object" + "type": "array" }, - "monitoringStatsAnomalies": { - "description": "Output only. Only applicable for Vertex AI Feature Store (Legacy). The list of historical stats and anomalies with specified objectives.", + "groundTruths": { + "description": "Output only. The ground truth Annotations, i.e. the Annotations that exist in the test data the Model is evaluated on. For true positive, there is one and only one ground truth annotation, which matches the only prediction in predictions. For false positive, there are zero or more ground truth annotations that are similar to the only prediction in predictions, but not enough for a match. For false negative, there is one and only one ground truth annotation, which doesn't match any predictions created by the model. The schema of the ground truth is stored in ModelEvaluation.annotation_schema_uri", "items": { - "$ref": "GoogleCloudAiplatformV1FeatureMonitoringStatsAnomaly" + "type": "any" }, "readOnly": true, "type": "array" }, - "name": { - "description": "Immutable. Name of the Feature. Format: `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}/features/{feature}` `projects/{project}/locations/{location}/featureGroups/{feature_group}/features/{feature}` The last part feature is assigned by the client. The feature can be up to 64 characters long and can consist only of ASCII Latin letters A-Z and a-z, underscore(_), and ASCII digits 0-9 starting with a letter. The value will be unique given an entity type.", - "type": "string" - }, - "updateTime": { - "description": "Output only. Only applicable for Vertex AI Feature Store (Legacy). Timestamp when this EntityType was most recently updated.", - "format": "google-datetime", + "predictions": { + "description": "Output only. The model predicted annotations. For true positive, there is one and only one prediction, which matches the only one ground truth annotation in ground_truths. For false positive, there is one and only one prediction, which doesn't match any ground truth annotation of the corresponding data_item_view_id. For false negative, there are zero or more predictions which are similar to the only ground truth annotation in ground_truths but not enough for a match. The schema of the prediction is stored in ModelEvaluation.annotation_schema_uri", + "items": { + "type": "any" + }, "readOnly": true, - "type": "string" + "type": "array" }, - "valueType": { - "description": "Immutable. Only applicable for Vertex AI Feature Store (Legacy). Type of Feature value.", + "type": { + "description": "Output only. Type of the EvaluatedAnnotation.", "enum": [ - "VALUE_TYPE_UNSPECIFIED", - "BOOL", - "BOOL_ARRAY", - "DOUBLE", - "DOUBLE_ARRAY", - "INT64", - "INT64_ARRAY", - "STRING", - "STRING_ARRAY", - "BYTES" + "EVALUATED_ANNOTATION_TYPE_UNSPECIFIED", + "TRUE_POSITIVE", + "FALSE_POSITIVE", + "FALSE_NEGATIVE" ], "enumDescriptions": [ - "The value type is unspecified.", - "Used for Feature that is a boolean.", - "Used for Feature that is a list of boolean.", - "Used for Feature that is double.", - "Used for Feature that is a list of double.", - "Used for Feature that is INT64.", - "Used for Feature that is a list of INT64.", - "Used for Feature that is string.", - "Used for Feature that is a list of String.", - "Used for Feature that is bytes." + "Invalid value.", + "The EvaluatedAnnotation is a true positive. It has a prediction created by the Model and a ground truth Annotation which the prediction matches.", + "The EvaluatedAnnotation is false positive. It has a prediction created by the Model which does not match any ground truth annotation.", + "The EvaluatedAnnotation is false negative. It has a ground truth annotation which is not matched by any of the model created predictions." ], + "readOnly": true, "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1EvaluatedAnnotationExplanation": { + "description": "Explanation result of the prediction produced by the Model.", + "id": "GoogleCloudAiplatformV1EvaluatedAnnotationExplanation", + "properties": { + "explanation": { + "$ref": "GoogleCloudAiplatformV1Explanation", + "description": "Explanation attribution response details." }, - "versionColumnName": { - "description": "Only applicable for Vertex AI Feature Store. The name of the BigQuery Table/View columnn hosting data for this version. If no value is provided, will use feature_id.", + "explanationType": { + "description": "Explanation type. For AutoML Image Classification models, possible values are: * `image-integrated-gradients` * `image-xrai`", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1FeatureGroup": { - "description": "Vertex AI Feature Group.", - "id": "GoogleCloudAiplatformV1FeatureGroup", + "GoogleCloudAiplatformV1Event": { + "description": "An edge describing the relationship between an Artifact and an Execution in a lineage graph.", + "id": "GoogleCloudAiplatformV1Event", "properties": { - "bigQuery": { - "$ref": "GoogleCloudAiplatformV1FeatureGroupBigQuery", - "description": "Indicates that features for this group come from BigQuery Table/View. By default treats the source as a sparse time series source, which is required to have an entity_id and a feature_timestamp column in the source." + "artifact": { + "description": "Required. The relative resource name of the Artifact in the Event.", + "type": "string" }, - "createTime": { - "description": "Output only. Timestamp when this FeatureGroup was created.", + "eventTime": { + "description": "Output only. Time the Event occurred.", "format": "google-datetime", "readOnly": true, "type": "string" }, - "description": { - "description": "Optional. Description of the FeatureGroup.", - "type": "string" - }, - "etag": { - "description": "Optional. Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "execution": { + "description": "Output only. The relative resource name of the Execution in the Event.", + "readOnly": true, "type": "string" }, "labels": { "additionalProperties": { "type": "string" }, - "description": "Optional. The labels with user-defined metadata to organize your FeatureGroup. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information on and examples of labels. No more than 64 user labels can be associated with one FeatureGroup(System labels are excluded).\" System reserved label keys are prefixed with \"aiplatform.googleapis.com/\" and are immutable.", + "description": "The labels with user-defined metadata to annotate Events. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. No more than 64 user labels can be associated with one Event (System labels are excluded). See https://goo.gl/xmQnxf for more information and examples of labels. System reserved label keys are prefixed with \"aiplatform.googleapis.com/\" and are immutable.", "type": "object" }, - "name": { - "description": "Output only. Name of the FeatureGroup. Format: `projects/{project}/locations/{location}/featureGroups/{featureGroup}`", - "readOnly": true, - "type": "string" - }, - "updateTime": { - "description": "Output only. Timestamp when this FeatureGroup was last updated.", - "format": "google-datetime", - "readOnly": true, + "type": { + "description": "Required. The type of the Event.", + "enum": [ + "TYPE_UNSPECIFIED", + "INPUT", + "OUTPUT" + ], + "enumDescriptions": [ + "Unspecified whether input or output of the Execution.", + "An input of the Execution.", + "An output of the Execution." + ], "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1FeatureGroupBigQuery": { - "description": "Input source type for BigQuery Tables and Views.", - "id": "GoogleCloudAiplatformV1FeatureGroupBigQuery", + "GoogleCloudAiplatformV1Examples": { + "description": "Example-based explainability that returns the nearest neighbors from the provided dataset.", + "id": "GoogleCloudAiplatformV1Examples", "properties": { - "bigQuerySource": { - "$ref": "GoogleCloudAiplatformV1BigQuerySource", - "description": "Required. Immutable. The BigQuery source URI that points to either a BigQuery Table or View." + "exampleGcsSource": { + "$ref": "GoogleCloudAiplatformV1ExamplesExampleGcsSource", + "description": "The Cloud Storage input instances." }, - "entityIdColumns": { - "description": "Optional. Columns to construct entity_id / row keys. Currently only supports 1 entity_id_column. If not provided defaults to `entity_id`.", - "items": { - "type": "string" - }, - "type": "array" + "nearestNeighborSearchConfig": { + "description": "The full configuration for the generated index, the semantics are the same as metadata and should match [NearestNeighborSearchConfig](https://cloud.google.com/vertex-ai/docs/explainable-ai/configuring-explanations-example-based#nearest-neighbor-search-config).", + "type": "any" + }, + "neighborCount": { + "description": "The number of neighbors to return when querying for examples.", + "format": "int32", + "type": "integer" + }, + "presets": { + "$ref": "GoogleCloudAiplatformV1Presets", + "description": "Simplified preset configuration, which automatically sets configuration values based on the desired query speed-precision trade-off and modality." } }, "type": "object" }, - "GoogleCloudAiplatformV1FeatureMonitoringStatsAnomaly": { - "description": "A list of historical SnapshotAnalysis or ImportFeaturesAnalysis stats requested by user, sorted by FeatureStatsAnomaly.start_time descending.", - "id": "GoogleCloudAiplatformV1FeatureMonitoringStatsAnomaly", + "GoogleCloudAiplatformV1ExamplesExampleGcsSource": { + "description": "The Cloud Storage input instances.", + "id": "GoogleCloudAiplatformV1ExamplesExampleGcsSource", "properties": { - "featureStatsAnomaly": { - "$ref": "GoogleCloudAiplatformV1FeatureStatsAnomaly", - "description": "Output only. The stats and anomalies generated at specific timestamp.", - "readOnly": true - }, - "objective": { - "description": "Output only. The objective for each stats.", + "dataFormat": { + "description": "The format in which instances are given, if not specified, assume it's JSONL format. Currently only JSONL format is supported.", "enum": [ - "OBJECTIVE_UNSPECIFIED", - "IMPORT_FEATURE_ANALYSIS", - "SNAPSHOT_ANALYSIS" + "DATA_FORMAT_UNSPECIFIED", + "JSONL" ], "enumDescriptions": [ - "If it's OBJECTIVE_UNSPECIFIED, monitoring_stats will be empty.", - "Stats are generated by Import Feature Analysis.", - "Stats are generated by Snapshot Analysis." + "Format unspecified, used when unset.", + "Examples are stored in JSONL files." ], - "readOnly": true, "type": "string" + }, + "gcsSource": { + "$ref": "GoogleCloudAiplatformV1GcsSource", + "description": "The Cloud Storage location for the input instances." } }, "type": "object" }, - "GoogleCloudAiplatformV1FeatureNoiseSigma": { - "description": "Noise sigma by features. Noise sigma represents the standard deviation of the gaussian kernel that will be used to add noise to interpolated inputs prior to computing gradients.", - "id": "GoogleCloudAiplatformV1FeatureNoiseSigma", + "GoogleCloudAiplatformV1ExamplesOverride": { + "description": "Overrides for example-based explanations.", + "id": "GoogleCloudAiplatformV1ExamplesOverride", "properties": { - "noiseSigma": { - "description": "Noise sigma per feature. No noise is added to features that are not set.", + "crowdingCount": { + "description": "The number of neighbors to return that have the same crowding tag.", + "format": "int32", + "type": "integer" + }, + "dataFormat": { + "description": "The format of the data being provided with each call.", + "enum": [ + "DATA_FORMAT_UNSPECIFIED", + "INSTANCES", + "EMBEDDINGS" + ], + "enumDescriptions": [ + "Unspecified format. Must not be used.", + "Provided data is a set of model inputs.", + "Provided data is a set of embeddings." + ], + "type": "string" + }, + "neighborCount": { + "description": "The number of neighbors to return.", + "format": "int32", + "type": "integer" + }, + "restrictions": { + "description": "Restrict the resulting nearest neighbors to respect these constraints.", "items": { - "$ref": "GoogleCloudAiplatformV1FeatureNoiseSigmaNoiseSigmaForFeature" + "$ref": "GoogleCloudAiplatformV1ExamplesRestrictionsNamespace" }, "type": "array" + }, + "returnEmbeddings": { + "description": "If true, return the embeddings instead of neighbors.", + "type": "boolean" } }, "type": "object" }, - "GoogleCloudAiplatformV1FeatureNoiseSigmaNoiseSigmaForFeature": { - "description": "Noise sigma for a single feature.", - "id": "GoogleCloudAiplatformV1FeatureNoiseSigmaNoiseSigmaForFeature", + "GoogleCloudAiplatformV1ExamplesRestrictionsNamespace": { + "description": "Restrictions namespace for example-based explanations overrides.", + "id": "GoogleCloudAiplatformV1ExamplesRestrictionsNamespace", "properties": { - "name": { - "description": "The name of the input feature for which noise sigma is provided. The features are defined in explanation metadata inputs.", - "type": "string" + "allow": { + "description": "The list of allowed tags.", + "items": { + "type": "string" + }, + "type": "array" }, - "sigma": { - "description": "This represents the standard deviation of the Gaussian kernel that will be used to add noise to the feature prior to computing gradients. Similar to noise_sigma but represents the noise added to the current feature. Defaults to 0.1.", - "format": "float", - "type": "number" + "deny": { + "description": "The list of deny tags.", + "items": { + "type": "string" + }, + "type": "array" + }, + "namespaceName": { + "description": "The namespace name.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1FeatureOnlineStore": { - "description": "Vertex AI Feature Online Store provides a centralized repository for serving ML features and embedding indexes at low latency. The Feature Online Store is a top-level container.", - "id": "GoogleCloudAiplatformV1FeatureOnlineStore", + "GoogleCloudAiplatformV1Execution": { + "description": "Instance of a general execution.", + "id": "GoogleCloudAiplatformV1Execution", "properties": { - "bigtable": { - "$ref": "GoogleCloudAiplatformV1FeatureOnlineStoreBigtable", - "description": "Contains settings for the Cloud Bigtable instance that will be created to serve featureValues for all FeatureViews under this FeatureOnlineStore." - }, "createTime": { - "description": "Output only. Timestamp when this FeatureOnlineStore was created.", + "description": "Output only. Timestamp when this Execution was created.", "format": "google-datetime", "readOnly": true, "type": "string" }, + "description": { + "description": "Description of the Execution", + "type": "string" + }, + "displayName": { + "description": "User provided display name of the Execution. May be up to 128 Unicode characters.", + "type": "string" + }, "etag": { - "description": "Optional. Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "description": "An eTag used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", "type": "string" }, "labels": { "additionalProperties": { "type": "string" }, - "description": "Optional. The labels with user-defined metadata to organize your FeatureOnlineStore. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information on and examples of labels. No more than 64 user labels can be associated with one FeatureOnlineStore(System labels are excluded).\" System reserved label keys are prefixed with \"aiplatform.googleapis.com/\" and are immutable.", + "description": "The labels with user-defined metadata to organize your Executions. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. No more than 64 user labels can be associated with one Execution (System labels are excluded).", + "type": "object" + }, + "metadata": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Properties of the Execution. Top level metadata keys' heading and trailing spaces will be trimmed. The size of this field should not exceed 200KB.", "type": "object" }, "name": { - "description": "Output only. Name of the FeatureOnlineStore. Format: `projects/{project}/locations/{location}/featureOnlineStores/{featureOnlineStore}`", + "description": "Output only. The resource name of the Execution.", "readOnly": true, "type": "string" }, + "schemaTitle": { + "description": "The title of the schema describing the metadata. Schema title and version is expected to be registered in earlier Create Schema calls. And both are used together as unique identifiers to identify schemas within the local metadata store.", + "type": "string" + }, + "schemaVersion": { + "description": "The version of the schema in `schema_title` to use. Schema title and version is expected to be registered in earlier Create Schema calls. And both are used together as unique identifiers to identify schemas within the local metadata store.", + "type": "string" + }, "state": { - "description": "Output only. State of the featureOnlineStore.", + "description": "The state of this Execution. This is a property of the Execution, and does not imply or capture any ongoing process. This property is managed by clients (such as Vertex AI Pipelines) and the system does not prescribe or check the validity of state transitions.", "enum": [ "STATE_UNSPECIFIED", - "STABLE", - "UPDATING" + "NEW", + "RUNNING", + "COMPLETE", + "FAILED", + "CACHED", + "CANCELLED" ], "enumDescriptions": [ - "Default value. This value is unused.", - "State when the featureOnlineStore configuration is not being updated and the fields reflect the current configuration of the featureOnlineStore. The featureOnlineStore is usable in this state.", - "The state of the featureOnlineStore configuration when it is being updated. During an update, the fields reflect either the original configuration or the updated configuration of the featureOnlineStore. The featureOnlineStore is still usable in this state." + "Unspecified Execution state", + "The Execution is new", + "The Execution is running", + "The Execution has finished running", + "The Execution has failed", + "The Execution completed through Cache hit.", + "The Execution was cancelled." ], - "readOnly": true, "type": "string" }, "updateTime": { - "description": "Output only. Timestamp when this FeatureOnlineStore was last updated.", + "description": "Output only. Timestamp when this Execution was last updated.", "format": "google-datetime", "readOnly": true, "type": "string" @@ -18745,600 +20042,592 @@ }, "type": "object" }, - "GoogleCloudAiplatformV1FeatureOnlineStoreBigtable": { - "id": "GoogleCloudAiplatformV1FeatureOnlineStoreBigtable", + "GoogleCloudAiplatformV1ExplainRequest": { + "description": "Request message for PredictionService.Explain.", + "id": "GoogleCloudAiplatformV1ExplainRequest", "properties": { - "autoScaling": { - "$ref": "GoogleCloudAiplatformV1FeatureOnlineStoreBigtableAutoScaling", - "description": "Required. Autoscaling config applied to Bigtable Instance." + "deployedModelId": { + "description": "If specified, this ExplainRequest will be served by the chosen DeployedModel, overriding Endpoint.traffic_split.", + "type": "string" + }, + "explanationSpecOverride": { + "$ref": "GoogleCloudAiplatformV1ExplanationSpecOverride", + "description": "If specified, overrides the explanation_spec of the DeployedModel. Can be used for explaining prediction results with different configurations, such as: - Explaining top-5 predictions results as opposed to top-1; - Increasing path count or step count of the attribution methods to reduce approximate errors; - Using different baselines for explaining the prediction results." + }, + "instances": { + "description": "Required. The instances that are the input to the explanation call. A DeployedModel may have an upper limit on the number of instances it supports per request, and when it is exceeded the explanation call errors in case of AutoML Models, or, in case of customer created Models, the behaviour is as documented by that Model. The schema of any single instance may be specified via Endpoint's DeployedModels' Model's PredictSchemata's instance_schema_uri.", + "items": { + "type": "any" + }, + "type": "array" + }, + "parameters": { + "description": "The parameters that govern the prediction. The schema of the parameters may be specified via Endpoint's DeployedModels' Model's PredictSchemata's parameters_schema_uri.", + "type": "any" } }, "type": "object" }, - "GoogleCloudAiplatformV1FeatureOnlineStoreBigtableAutoScaling": { - "id": "GoogleCloudAiplatformV1FeatureOnlineStoreBigtableAutoScaling", + "GoogleCloudAiplatformV1ExplainResponse": { + "description": "Response message for PredictionService.Explain.", + "id": "GoogleCloudAiplatformV1ExplainResponse", "properties": { - "cpuUtilizationTarget": { - "description": "Optional. A percentage of the cluster's CPU capacity. Can be from 10% to 80%. When a cluster's CPU utilization exceeds the target that you have set, Bigtable immediately adds nodes to the cluster. When CPU utilization is substantially lower than the target, Bigtable removes nodes. If not set will default to 50%.", - "format": "int32", - "type": "integer" + "deployedModelId": { + "description": "ID of the Endpoint's DeployedModel that served this explanation.", + "type": "string" }, - "maxNodeCount": { - "description": "Required. The maximum number of nodes to scale up to. Must be greater than or equal to min_node_count, and less than or equal to 10 times of 'min_node_count'.", - "format": "int32", - "type": "integer" + "explanations": { + "description": "The explanations of the Model's PredictResponse.predictions. It has the same number of elements as instances to be explained.", + "items": { + "$ref": "GoogleCloudAiplatformV1Explanation" + }, + "type": "array" }, - "minNodeCount": { - "description": "Required. The minimum number of nodes to scale down to. Must be greater than or equal to 1.", - "format": "int32", - "type": "integer" + "predictions": { + "description": "The predictions that are the output of the predictions call. Same as PredictResponse.predictions.", + "items": { + "type": "any" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1FeatureSelector": { - "description": "Selector for Features of an EntityType.", - "id": "GoogleCloudAiplatformV1FeatureSelector", + "GoogleCloudAiplatformV1Explanation": { + "description": "Explanation of a prediction (provided in PredictResponse.predictions) produced by the Model on a given instance.", + "id": "GoogleCloudAiplatformV1Explanation", "properties": { - "idMatcher": { - "$ref": "GoogleCloudAiplatformV1IdMatcher", - "description": "Required. Matches Features based on ID." + "attributions": { + "description": "Output only. Feature attributions grouped by predicted outputs. For Models that predict only one output, such as regression Models that predict only one score, there is only one attibution that explains the predicted output. For Models that predict multiple outputs, such as multiclass Models that predict multiple classes, each element explains one specific item. Attribution.output_index can be used to identify which output this attribution is explaining. By default, we provide Shapley values for the predicted class. However, you can configure the explanation request to generate Shapley values for any other classes too. For example, if a model predicts a probability of `0.4` for approving a loan application, the model's decision is to reject the application since `p(reject) = 0.6 > p(approve) = 0.4`, and the default Shapley values would be computed for rejection decision and not approval, even though the latter might be the positive class. If users set ExplanationParameters.top_k, the attributions are sorted by instance_output_value in descending order. If ExplanationParameters.output_indices is specified, the attributions are stored by Attribution.output_index in the same order as they appear in the output_indices.", + "items": { + "$ref": "GoogleCloudAiplatformV1Attribution" + }, + "readOnly": true, + "type": "array" + }, + "neighbors": { + "description": "Output only. List of the nearest neighbors for example-based explanations. For models deployed with the examples explanations feature enabled, the attributions field is empty and instead the neighbors field is populated.", + "items": { + "$ref": "GoogleCloudAiplatformV1Neighbor" + }, + "readOnly": true, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1FeatureStatsAnomaly": { - "description": "Stats and Anomaly generated at specific timestamp for specific Feature. The start_time and end_time are used to define the time range of the dataset that current stats belongs to, e.g. prediction traffic is bucketed into prediction datasets by time window. If the Dataset is not defined by time window, start_time = end_time. Timestamp of the stats and anomalies always refers to end_time. Raw stats and anomalies are stored in stats_uri or anomaly_uri in the tensorflow defined protos. Field data_stats contains almost identical information with the raw stats in Vertex AI defined proto, for UI to display.", - "id": "GoogleCloudAiplatformV1FeatureStatsAnomaly", + "GoogleCloudAiplatformV1ExplanationMetadata": { + "description": "Metadata describing the Model's input and output for explanation.", + "id": "GoogleCloudAiplatformV1ExplanationMetadata", "properties": { - "anomalyDetectionThreshold": { - "description": "This is the threshold used when detecting anomalies. The threshold can be changed by user, so this one might be different from ThresholdConfig.value.", - "format": "double", - "type": "number" - }, - "anomalyUri": { - "description": "Path of the anomaly file for current feature values in Cloud Storage bucket. Format: gs:////anomalies. Example: gs://monitoring_bucket/feature_name/anomalies. Stats are stored as binary format with Protobuf message Anoamlies are stored as binary format with Protobuf message [tensorflow.metadata.v0.AnomalyInfo] (https://github.com/tensorflow/metadata/blob/master/tensorflow_metadata/proto/v0/anomalies.proto).", - "type": "string" - }, - "distributionDeviation": { - "description": "Deviation from the current stats to baseline stats. 1. For categorical feature, the distribution distance is calculated by L-inifinity norm. 2. For numerical feature, the distribution distance is calculated by Jensen–Shannon divergence.", - "format": "double", - "type": "number" - }, - "endTime": { - "description": "The end timestamp of window where stats were generated. For objectives where time window doesn't make sense (e.g. Featurestore Snapshot Monitoring), end_time indicates the timestamp of the data used to generate stats (e.g. timestamp we take snapshots for feature values).", - "format": "google-datetime", + "featureAttributionsSchemaUri": { + "description": "Points to a YAML file stored on Google Cloud Storage describing the format of the feature attributions. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). AutoML tabular Models always have this field populated by Vertex AI. Note: The URI given on output may be different, including the URI scheme, than the one given on input. The output URI will point to a location where the user only has a read access.", "type": "string" }, - "score": { - "description": "Feature importance score, only populated when cross-feature monitoring is enabled. For now only used to represent feature attribution score within range [0, 1] for ModelDeploymentMonitoringObjectiveType.FEATURE_ATTRIBUTION_SKEW and ModelDeploymentMonitoringObjectiveType.FEATURE_ATTRIBUTION_DRIFT.", - "format": "double", - "type": "number" + "inputs": { + "additionalProperties": { + "$ref": "GoogleCloudAiplatformV1ExplanationMetadataInputMetadata" + }, + "description": "Required. Map from feature names to feature input metadata. Keys are the name of the features. Values are the specification of the feature. An empty InputMetadata is valid. It describes a text feature which has the name specified as the key in ExplanationMetadata.inputs. The baseline of the empty feature is chosen by Vertex AI. For Vertex AI-provided Tensorflow images, the key can be any friendly name of the feature. Once specified, featureAttributions are keyed by this key (if not grouped with another feature). For custom images, the key must match with the key in instance.", + "type": "object" }, - "startTime": { - "description": "The start timestamp of window where stats were generated. For objectives where time window doesn't make sense (e.g. Featurestore Snapshot Monitoring), start_time is only used to indicate the monitoring intervals, so it always equals to (end_time - monitoring_interval).", - "format": "google-datetime", + "latentSpaceSource": { + "description": "Name of the source to generate embeddings for example based explanations.", "type": "string" }, - "statsUri": { - "description": "Path of the stats file for current feature values in Cloud Storage bucket. Format: gs:////stats. Example: gs://monitoring_bucket/feature_name/stats. Stats are stored as binary format with Protobuf message [tensorflow.metadata.v0.FeatureNameStatistics](https://github.com/tensorflow/metadata/blob/master/tensorflow_metadata/proto/v0/statistics.proto).", - "type": "string" + "outputs": { + "additionalProperties": { + "$ref": "GoogleCloudAiplatformV1ExplanationMetadataOutputMetadata" + }, + "description": "Required. Map from output names to output metadata. For Vertex AI-provided Tensorflow images, keys can be any user defined string that consists of any UTF-8 characters. For custom images, keys are the name of the output field in the prediction to be explained. Currently only one key is allowed.", + "type": "object" } }, "type": "object" }, - "GoogleCloudAiplatformV1FeatureValue": { - "description": "Value for a feature.", - "id": "GoogleCloudAiplatformV1FeatureValue", + "GoogleCloudAiplatformV1ExplanationMetadataInputMetadata": { + "description": "Metadata of the input of a feature. Fields other than InputMetadata.input_baselines are applicable only for Models that are using Vertex AI-provided images for Tensorflow.", + "id": "GoogleCloudAiplatformV1ExplanationMetadataInputMetadata", "properties": { - "boolArrayValue": { - "$ref": "GoogleCloudAiplatformV1BoolArray", - "description": "A list of bool type feature value." + "denseShapeTensorName": { + "description": "Specifies the shape of the values of the input if the input is a sparse representation. Refer to Tensorflow documentation for more details: https://www.tensorflow.org/api_docs/python/tf/sparse/SparseTensor.", + "type": "string" }, - "boolValue": { - "description": "Bool type feature value.", - "type": "boolean" + "encodedBaselines": { + "description": "A list of baselines for the encoded tensor. The shape of each baseline should match the shape of the encoded tensor. If a scalar is provided, Vertex AI broadcasts to the same shape as the encoded tensor.", + "items": { + "type": "any" + }, + "type": "array" }, - "bytesValue": { - "description": "Bytes feature value.", - "format": "byte", + "encodedTensorName": { + "description": "Encoded tensor is a transformation of the input tensor. Must be provided if choosing Integrated Gradients attribution or XRAI attribution and the input tensor is not differentiable. An encoded tensor is generated if the input tensor is encoded by a lookup table.", "type": "string" }, - "doubleArrayValue": { - "$ref": "GoogleCloudAiplatformV1DoubleArray", - "description": "A list of double type feature value." - }, - "doubleValue": { - "description": "Double type feature value.", - "format": "double", - "type": "number" + "encoding": { + "description": "Defines how the feature is encoded into the input tensor. Defaults to IDENTITY.", + "enum": [ + "ENCODING_UNSPECIFIED", + "IDENTITY", + "BAG_OF_FEATURES", + "BAG_OF_FEATURES_SPARSE", + "INDICATOR", + "COMBINED_EMBEDDING", + "CONCAT_EMBEDDING" + ], + "enumDescriptions": [ + "Default value. This is the same as IDENTITY.", + "The tensor represents one feature.", + "The tensor represents a bag of features where each index maps to a feature. InputMetadata.index_feature_mapping must be provided for this encoding. For example: ``` input = [27, 6.0, 150] index_feature_mapping = [\"age\", \"height\", \"weight\"] ```", + "The tensor represents a bag of features where each index maps to a feature. Zero values in the tensor indicates feature being non-existent. InputMetadata.index_feature_mapping must be provided for this encoding. For example: ``` input = [2, 0, 5, 0, 1] index_feature_mapping = [\"a\", \"b\", \"c\", \"d\", \"e\"] ```", + "The tensor is a list of binaries representing whether a feature exists or not (1 indicates existence). InputMetadata.index_feature_mapping must be provided for this encoding. For example: ``` input = [1, 0, 1, 0, 1] index_feature_mapping = [\"a\", \"b\", \"c\", \"d\", \"e\"] ```", + "The tensor is encoded into a 1-dimensional array represented by an encoded tensor. InputMetadata.encoded_tensor_name must be provided for this encoding. For example: ``` input = [\"This\", \"is\", \"a\", \"test\", \".\"] encoded = [0.1, 0.2, 0.3, 0.4, 0.5] ```", + "Select this encoding when the input tensor is encoded into a 2-dimensional array represented by an encoded tensor. InputMetadata.encoded_tensor_name must be provided for this encoding. The first dimension of the encoded tensor's shape is the same as the input tensor's shape. For example: ``` input = [\"This\", \"is\", \"a\", \"test\", \".\"] encoded = [[0.1, 0.2, 0.3, 0.4, 0.5], [0.2, 0.1, 0.4, 0.3, 0.5], [0.5, 0.1, 0.3, 0.5, 0.4], [0.5, 0.3, 0.1, 0.2, 0.4], [0.4, 0.3, 0.2, 0.5, 0.1]] ```" + ], + "type": "string" }, - "int64ArrayValue": { - "$ref": "GoogleCloudAiplatformV1Int64Array", - "description": "A list of int64 type feature value." + "featureValueDomain": { + "$ref": "GoogleCloudAiplatformV1ExplanationMetadataInputMetadataFeatureValueDomain", + "description": "The domain details of the input feature value. Like min/max, original mean or standard deviation if normalized." }, - "int64Value": { - "description": "Int64 feature value.", - "format": "int64", + "groupName": { + "description": "Name of the group that the input belongs to. Features with the same group name will be treated as one feature when computing attributions. Features grouped together can have different shapes in value. If provided, there will be one single attribution generated in Attribution.feature_attributions, keyed by the group name.", "type": "string" }, - "metadata": { - "$ref": "GoogleCloudAiplatformV1FeatureValueMetadata", - "description": "Metadata of feature value." - }, - "stringArrayValue": { - "$ref": "GoogleCloudAiplatformV1StringArray", - "description": "A list of string type feature value." + "indexFeatureMapping": { + "description": "A list of feature names for each index in the input tensor. Required when the input InputMetadata.encoding is BAG_OF_FEATURES, BAG_OF_FEATURES_SPARSE, INDICATOR.", + "items": { + "type": "string" + }, + "type": "array" }, - "stringValue": { - "description": "String feature value.", + "indicesTensorName": { + "description": "Specifies the index of the values of the input tensor. Required when the input tensor is a sparse representation. Refer to Tensorflow documentation for more details: https://www.tensorflow.org/api_docs/python/tf/sparse/SparseTensor.", "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1FeatureValueDestination": { - "description": "A destination location for Feature values and format.", - "id": "GoogleCloudAiplatformV1FeatureValueDestination", - "properties": { - "bigqueryDestination": { - "$ref": "GoogleCloudAiplatformV1BigQueryDestination", - "description": "Output in BigQuery format. BigQueryDestination.output_uri in FeatureValueDestination.bigquery_destination must refer to a table." - }, - "csvDestination": { - "$ref": "GoogleCloudAiplatformV1CsvDestination", - "description": "Output in CSV format. Array Feature value types are not allowed in CSV format." }, - "tfrecordDestination": { - "$ref": "GoogleCloudAiplatformV1TFRecordDestination", - "description": "Output in TFRecord format. Below are the mapping from Feature value type in Featurestore to Feature value type in TFRecord: Value type in Featurestore | Value type in TFRecord DOUBLE, DOUBLE_ARRAY | FLOAT_LIST INT64, INT64_ARRAY | INT64_LIST STRING, STRING_ARRAY, BYTES | BYTES_LIST true -> byte_string(\"true\"), false -> byte_string(\"false\") BOOL, BOOL_ARRAY (true, false) | BYTES_LIST" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1FeatureValueList": { - "description": "Container for list of values.", - "id": "GoogleCloudAiplatformV1FeatureValueList", - "properties": { - "values": { - "description": "A list of feature values. All of them should be the same data type.", + "inputBaselines": { + "description": "Baseline inputs for this feature. If no baseline is specified, Vertex AI chooses the baseline for this feature. If multiple baselines are specified, Vertex AI returns the average attributions across them in Attribution.feature_attributions. For Vertex AI-provided Tensorflow images (both 1.x and 2.x), the shape of each baseline must match the shape of the input tensor. If a scalar is provided, we broadcast to the same shape as the input tensor. For custom images, the element of the baselines must be in the same format as the feature's input in the instance[]. The schema of any single instance may be specified via Endpoint's DeployedModels' Model's PredictSchemata's instance_schema_uri.", "items": { - "$ref": "GoogleCloudAiplatformV1FeatureValue" + "type": "any" }, "type": "array" + }, + "inputTensorName": { + "description": "Name of the input tensor for this feature. Required and is only applicable to Vertex AI-provided images for Tensorflow.", + "type": "string" + }, + "modality": { + "description": "Modality of the feature. Valid values are: numeric, image. Defaults to numeric.", + "type": "string" + }, + "visualization": { + "$ref": "GoogleCloudAiplatformV1ExplanationMetadataInputMetadataVisualization", + "description": "Visualization configurations for image explanation." } }, "type": "object" }, - "GoogleCloudAiplatformV1FeatureValueMetadata": { - "description": "Metadata of feature value.", - "id": "GoogleCloudAiplatformV1FeatureValueMetadata", + "GoogleCloudAiplatformV1ExplanationMetadataInputMetadataFeatureValueDomain": { + "description": "Domain details of the input feature value. Provides numeric information about the feature, such as its range (min, max). If the feature has been pre-processed, for example with z-scoring, then it provides information about how to recover the original feature. For example, if the input feature is an image and it has been pre-processed to obtain 0-mean and stddev = 1 values, then original_mean, and original_stddev refer to the mean and stddev of the original feature (e.g. image tensor) from which input feature (with mean = 0 and stddev = 1) was obtained.", + "id": "GoogleCloudAiplatformV1ExplanationMetadataInputMetadataFeatureValueDomain", "properties": { - "generateTime": { - "description": "Feature generation timestamp. Typically, it is provided by user at feature ingestion time. If not, feature store will use the system timestamp when the data is ingested into feature store. For streaming ingestion, the time, aligned by days, must be no older than five years (1825 days) and no later than one year (366 days) in the future.", - "format": "google-datetime", - "type": "string" + "maxValue": { + "description": "The maximum permissible value for this feature.", + "format": "float", + "type": "number" + }, + "minValue": { + "description": "The minimum permissible value for this feature.", + "format": "float", + "type": "number" + }, + "originalMean": { + "description": "If this input feature has been normalized to a mean value of 0, the original_mean specifies the mean value of the domain prior to normalization.", + "format": "float", + "type": "number" + }, + "originalStddev": { + "description": "If this input feature has been normalized to a standard deviation of 1.0, the original_stddev specifies the standard deviation of the domain prior to normalization.", + "format": "float", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1FeatureView": { - "description": "FeatureView is representation of values that the FeatureOnlineStore will serve based on its syncConfig.", - "id": "GoogleCloudAiplatformV1FeatureView", + "GoogleCloudAiplatformV1ExplanationMetadataInputMetadataVisualization": { + "description": "Visualization configurations for image explanation.", + "id": "GoogleCloudAiplatformV1ExplanationMetadataInputMetadataVisualization", "properties": { - "bigQuerySource": { - "$ref": "GoogleCloudAiplatformV1FeatureViewBigQuerySource", - "description": "Optional. Configures how data is supposed to be extracted from a BigQuery source to be loaded onto the FeatureOnlineStore." + "clipPercentLowerbound": { + "description": "Excludes attributions below the specified percentile, from the highlighted areas. Defaults to 62.", + "format": "float", + "type": "number" }, - "createTime": { - "description": "Output only. Timestamp when this FeatureView was created.", - "format": "google-datetime", - "readOnly": true, - "type": "string" + "clipPercentUpperbound": { + "description": "Excludes attributions above the specified percentile from the highlighted areas. Using the clip_percent_upperbound and clip_percent_lowerbound together can be useful for filtering out noise and making it easier to see areas of strong attribution. Defaults to 99.9.", + "format": "float", + "type": "number" }, - "etag": { - "description": "Optional. Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "colorMap": { + "description": "The color scheme used for the highlighted areas. Defaults to PINK_GREEN for Integrated Gradients attribution, which shows positive attributions in green and negative in pink. Defaults to VIRIDIS for XRAI attribution, which highlights the most influential regions in yellow and the least influential in blue.", + "enum": [ + "COLOR_MAP_UNSPECIFIED", + "PINK_GREEN", + "VIRIDIS", + "RED", + "GREEN", + "RED_GREEN", + "PINK_WHITE_GREEN" + ], + "enumDescriptions": [ + "Should not be used.", + "Positive: green. Negative: pink.", + "Viridis color map: A perceptually uniform color mapping which is easier to see by those with colorblindness and progresses from yellow to green to blue. Positive: yellow. Negative: blue.", + "Positive: red. Negative: red.", + "Positive: green. Negative: green.", + "Positive: green. Negative: red.", + "PiYG palette." + ], "type": "string" }, - "featureRegistrySource": { - "$ref": "GoogleCloudAiplatformV1FeatureViewFeatureRegistrySource", - "description": "Optional. Configures the features from a Feature Registry source that need to be loaded onto the FeatureOnlineStore." - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional. The labels with user-defined metadata to organize your FeatureViews. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information on and examples of labels. No more than 64 user labels can be associated with one FeatureOnlineStore(System labels are excluded).\" System reserved label keys are prefixed with \"aiplatform.googleapis.com/\" and are immutable.", - "type": "object" - }, - "name": { - "description": "Output only. Name of the FeatureView. Format: `projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}`", - "readOnly": true, + "overlayType": { + "description": "How the original image is displayed in the visualization. Adjusting the overlay can help increase visual clarity if the original image makes it difficult to view the visualization. Defaults to NONE.", + "enum": [ + "OVERLAY_TYPE_UNSPECIFIED", + "NONE", + "ORIGINAL", + "GRAYSCALE", + "MASK_BLACK" + ], + "enumDescriptions": [ + "Default value. This is the same as NONE.", + "No overlay.", + "The attributions are shown on top of the original image.", + "The attributions are shown on top of grayscaled version of the original image.", + "The attributions are used as a mask to reveal predictive parts of the image and hide the un-predictive parts." + ], "type": "string" }, - "syncConfig": { - "$ref": "GoogleCloudAiplatformV1FeatureViewSyncConfig", - "description": "Configures when data is to be synced/updated for this FeatureView. At the end of the sync the latest featureValues for each entityId of this FeatureView are made ready for online serving." + "polarity": { + "description": "Whether to only highlight pixels with positive contributions, negative or both. Defaults to POSITIVE.", + "enum": [ + "POLARITY_UNSPECIFIED", + "POSITIVE", + "NEGATIVE", + "BOTH" + ], + "enumDescriptions": [ + "Default value. This is the same as POSITIVE.", + "Highlights the pixels/outlines that were most influential to the model's prediction.", + "Setting polarity to negative highlights areas that does not lead to the models's current prediction.", + "Shows both positive and negative attributions." + ], + "type": "string" }, - "updateTime": { - "description": "Output only. Timestamp when this FeatureView was last updated.", - "format": "google-datetime", - "readOnly": true, + "type": { + "description": "Type of the image visualization. Only applicable to Integrated Gradients attribution. OUTLINES shows regions of attribution, while PIXELS shows per-pixel attribution. Defaults to OUTLINES.", + "enum": [ + "TYPE_UNSPECIFIED", + "PIXELS", + "OUTLINES" + ], + "enumDescriptions": [ + "Should not be used.", + "Shows which pixel contributed to the image prediction.", + "Shows which region contributed to the image prediction by outlining the region." + ], "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1FeatureViewBigQuerySource": { - "id": "GoogleCloudAiplatformV1FeatureViewBigQuerySource", + "GoogleCloudAiplatformV1ExplanationMetadataOutputMetadata": { + "description": "Metadata of the prediction output to be explained.", + "id": "GoogleCloudAiplatformV1ExplanationMetadataOutputMetadata", "properties": { - "entityIdColumns": { - "description": "Required. Columns to construct entity_id / row keys. Start by supporting 1 only.", - "items": { - "type": "string" - }, - "type": "array" + "displayNameMappingKey": { + "description": "Specify a field name in the prediction to look for the display name. Use this if the prediction contains the display names for the outputs. The display names in the prediction must have the same shape of the outputs, so that it can be located by Attribution.output_index for a specific output.", + "type": "string" }, - "uri": { - "description": "Required. The BigQuery view URI that will be materialized on each sync trigger based on FeatureView.SyncConfig.", + "indexDisplayNameMapping": { + "description": "Static mapping between the index and display name. Use this if the outputs are a deterministic n-dimensional array, e.g. a list of scores of all the classes in a pre-defined order for a multi-classification Model. It's not feasible if the outputs are non-deterministic, e.g. the Model produces top-k classes or sort the outputs by their values. The shape of the value must be an n-dimensional array of strings. The number of dimensions must match that of the outputs to be explained. The Attribution.output_display_name is populated by locating in the mapping with Attribution.output_index.", + "type": "any" + }, + "outputTensorName": { + "description": "Name of the output tensor. Required and is only applicable to Vertex AI provided images for Tensorflow.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1FeatureViewDataKey": { - "description": "Lookup key for a feature view.", - "id": "GoogleCloudAiplatformV1FeatureViewDataKey", + "GoogleCloudAiplatformV1ExplanationMetadataOverride": { + "description": "The ExplanationMetadata entries that can be overridden at online explanation time.", + "id": "GoogleCloudAiplatformV1ExplanationMetadataOverride", "properties": { - "key": { - "description": "String key to use for lookup.", - "type": "string" + "inputs": { + "additionalProperties": { + "$ref": "GoogleCloudAiplatformV1ExplanationMetadataOverrideInputMetadataOverride" + }, + "description": "Required. Overrides the input metadata of the features. The key is the name of the feature to be overridden. The keys specified here must exist in the input metadata to be overridden. If a feature is not specified here, the corresponding feature's input metadata is not overridden.", + "type": "object" } }, "type": "object" }, - "GoogleCloudAiplatformV1FeatureViewFeatureRegistrySource": { - "description": "A Feature Registry source for features that need to be synced to Online Store.", - "id": "GoogleCloudAiplatformV1FeatureViewFeatureRegistrySource", + "GoogleCloudAiplatformV1ExplanationMetadataOverrideInputMetadataOverride": { + "description": "The input metadata entries to be overridden.", + "id": "GoogleCloudAiplatformV1ExplanationMetadataOverrideInputMetadataOverride", "properties": { - "featureGroups": { - "description": "Required. List of features that need to be synced to Online Store.", + "inputBaselines": { + "description": "Baseline inputs for this feature. This overrides the `input_baseline` field of the ExplanationMetadata.InputMetadata object of the corresponding feature's input metadata. If it's not specified, the original baselines are not overridden.", "items": { - "$ref": "GoogleCloudAiplatformV1FeatureViewFeatureRegistrySourceFeatureGroup" + "type": "any" }, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1FeatureViewFeatureRegistrySourceFeatureGroup": { - "description": "Features belonging to a single feature group that will be synced to Online Store.", - "id": "GoogleCloudAiplatformV1FeatureViewFeatureRegistrySourceFeatureGroup", + "GoogleCloudAiplatformV1ExplanationParameters": { + "description": "Parameters to configure explaining for Model's predictions.", + "id": "GoogleCloudAiplatformV1ExplanationParameters", "properties": { - "featureGroupId": { - "description": "Required. Identifier of the feature group.", - "type": "string" + "examples": { + "$ref": "GoogleCloudAiplatformV1Examples", + "description": "Example-based explanations that returns the nearest neighbors from the provided dataset." }, - "featureIds": { - "description": "Required. Identifiers of features under the feature group.", + "integratedGradientsAttribution": { + "$ref": "GoogleCloudAiplatformV1IntegratedGradientsAttribution", + "description": "An attribution method that computes Aumann-Shapley values taking advantage of the model's fully differentiable structure. Refer to this paper for more details: https://arxiv.org/abs/1703.01365" + }, + "outputIndices": { + "description": "If populated, only returns attributions that have output_index contained in output_indices. It must be an ndarray of integers, with the same shape of the output it's explaining. If not populated, returns attributions for top_k indices of outputs. If neither top_k nor output_indices is populated, returns the argmax index of the outputs. Only applicable to Models that predict multiple outputs (e,g, multi-class Models that predict multiple classes).", "items": { - "type": "string" + "type": "any" }, "type": "array" + }, + "sampledShapleyAttribution": { + "$ref": "GoogleCloudAiplatformV1SampledShapleyAttribution", + "description": "An attribution method that approximates Shapley values for features that contribute to the label being predicted. A sampling strategy is used to approximate the value rather than considering all subsets of features. Refer to this paper for model details: https://arxiv.org/abs/1306.4265." + }, + "topK": { + "description": "If populated, returns attributions for top K indices of outputs (defaults to 1). Only applies to Models that predicts more than one outputs (e,g, multi-class Models). When set to -1, returns explanations for all outputs.", + "format": "int32", + "type": "integer" + }, + "xraiAttribution": { + "$ref": "GoogleCloudAiplatformV1XraiAttribution", + "description": "An attribution method that redistributes Integrated Gradients attribution to segmented regions, taking advantage of the model's fully differentiable structure. Refer to this paper for more details: https://arxiv.org/abs/1906.02825 XRAI currently performs better on natural images, like a picture of a house or an animal. If the images are taken in artificial environments, like a lab or manufacturing line, or from diagnostic equipment, like x-rays or quality-control cameras, use Integrated Gradients instead." } }, "type": "object" }, - "GoogleCloudAiplatformV1FeatureViewSync": { - "description": "FeatureViewSync is a representation of sync operation which copies data from data source to Feature View in Online Store.", - "id": "GoogleCloudAiplatformV1FeatureViewSync", + "GoogleCloudAiplatformV1ExplanationSpec": { + "description": "Specification of Model explanation.", + "id": "GoogleCloudAiplatformV1ExplanationSpec", "properties": { - "createTime": { - "description": "Output only. Time when this FeatureViewSync is created. Creation of a FeatureViewSync means that the job is pending / waiting for sufficient resources but may not have started the actual data transfer yet.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "finalStatus": { - "$ref": "GoogleRpcStatus", - "description": "Output only. Final status of the FeatureViewSync.", - "readOnly": true - }, - "name": { - "description": "Output only. Name of the FeatureViewSync. Format: `projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}/featureViewSyncs/{feature_view_sync}`", - "readOnly": true, - "type": "string" + "metadata": { + "$ref": "GoogleCloudAiplatformV1ExplanationMetadata", + "description": "Optional. Metadata describing the Model's input and output for explanation." }, - "runTime": { - "$ref": "GoogleTypeInterval", - "description": "Output only. Time when this FeatureViewSync is finished.", - "readOnly": true + "parameters": { + "$ref": "GoogleCloudAiplatformV1ExplanationParameters", + "description": "Required. Parameters that configure explaining of the Model's predictions." } }, "type": "object" }, - "GoogleCloudAiplatformV1FeatureViewSyncConfig": { - "id": "GoogleCloudAiplatformV1FeatureViewSyncConfig", + "GoogleCloudAiplatformV1ExplanationSpecOverride": { + "description": "The ExplanationSpec entries that can be overridden at online explanation time.", + "id": "GoogleCloudAiplatformV1ExplanationSpecOverride", "properties": { - "cron": { - "description": "Cron schedule (https://en.wikipedia.org/wiki/Cron) to launch scheduled runs. To explicitly set a timezone to the cron tab, apply a prefix in the cron tab: \"CRON_TZ=${IANA_TIME_ZONE}\" or \"TZ=${IANA_TIME_ZONE}\". The ${IANA_TIME_ZONE} may only be a valid string from IANA time zone database. For example, \"CRON_TZ=America/New_York 1 * * * *\", or \"TZ=America/New_York 1 * * * *\".", - "type": "string" + "examplesOverride": { + "$ref": "GoogleCloudAiplatformV1ExamplesOverride", + "description": "The example-based explanations parameter overrides." + }, + "metadata": { + "$ref": "GoogleCloudAiplatformV1ExplanationMetadataOverride", + "description": "The metadata to be overridden. If not specified, no metadata is overridden." + }, + "parameters": { + "$ref": "GoogleCloudAiplatformV1ExplanationParameters", + "description": "The parameters to be overridden. Note that the attribution method cannot be changed. If not specified, no parameter is overridden." } }, "type": "object" }, - "GoogleCloudAiplatformV1Featurestore": { - "description": "Vertex AI Feature Store provides a centralized repository for organizing, storing, and serving ML features. The Featurestore is a top-level container for your features and their values.", - "id": "GoogleCloudAiplatformV1Featurestore", + "GoogleCloudAiplatformV1ExportDataConfig": { + "description": "Describes what part of the Dataset is to be exported, the destination of the export and how to export.", + "id": "GoogleCloudAiplatformV1ExportDataConfig", "properties": { - "createTime": { - "description": "Output only. Timestamp when this Featurestore was created.", - "format": "google-datetime", - "readOnly": true, + "annotationSchemaUri": { + "description": "The Cloud Storage URI that points to a YAML file describing the annotation schema. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). The schema files that can be used here are found in gs://google-cloud-aiplatform/schema/dataset/annotation/, note that the chosen schema must be consistent with metadata of the Dataset specified by dataset_id. Only used for custom training data export use cases. Only applicable to Datasets that have DataItems and Annotations. Only Annotations that both match this schema and belong to DataItems not ignored by the split method are used in respectively training, validation or test role, depending on the role of the DataItem they are on. When used in conjunction with annotations_filter, the Annotations used for training are filtered by both annotations_filter and annotation_schema_uri.", "type": "string" }, - "encryptionSpec": { - "$ref": "GoogleCloudAiplatformV1EncryptionSpec", - "description": "Optional. Customer-managed encryption key spec for data storage. If set, both of the online and offline data storage will be secured by this key." - }, - "etag": { - "description": "Optional. Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", - "type": "string" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Optional. The labels with user-defined metadata to organize your Featurestore. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information on and examples of labels. No more than 64 user labels can be associated with one Featurestore(System labels are excluded).\" System reserved label keys are prefixed with \"aiplatform.googleapis.com/\" and are immutable.", - "type": "object" - }, - "name": { - "description": "Output only. Name of the Featurestore. Format: `projects/{project}/locations/{location}/featurestores/{featurestore}`", - "readOnly": true, + "annotationsFilter": { + "description": "An expression for filtering what part of the Dataset is to be exported. Only Annotations that match this filter will be exported. The filter syntax is the same as in ListAnnotations.", "type": "string" }, - "onlineServingConfig": { - "$ref": "GoogleCloudAiplatformV1FeaturestoreOnlineServingConfig", - "description": "Optional. Config for online storage resources. The field should not co-exist with the field of `OnlineStoreReplicationConfig`. If both of it and OnlineStoreReplicationConfig are unset, the feature store will not have an online store and cannot be used for online serving." - }, - "onlineStorageTtlDays": { - "description": "Optional. TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage periodically removes obsolete feature values older than `online_storage_ttl_days` since the feature generation time. Note that `online_storage_ttl_days` should be less than or equal to `offline_storage_ttl_days` for each EntityType under a featurestore. If not set, default to 4000 days", - "format": "int32", - "type": "integer" - }, - "state": { - "description": "Output only. State of the featurestore.", + "exportUse": { + "description": "Indicates the usage of the exported files.", "enum": [ - "STATE_UNSPECIFIED", - "STABLE", - "UPDATING" + "EXPORT_USE_UNSPECIFIED", + "CUSTOM_CODE_TRAINING" ], "enumDescriptions": [ - "Default value. This value is unused.", - "State when the featurestore configuration is not being updated and the fields reflect the current configuration of the featurestore. The featurestore is usable in this state.", - "The state of the featurestore configuration when it is being updated. During an update, the fields reflect either the original configuration or the updated configuration of the featurestore. For example, `online_serving_config.fixed_node_count` can take minutes to update. While the update is in progress, the featurestore is in the UPDATING state, and the value of `fixed_node_count` can be the original value or the updated value, depending on the progress of the operation. Until the update completes, the actual number of nodes can still be the original value of `fixed_node_count`. The featurestore is still usable in this state." + "Regular user export.", + "Export for custom code training." ], - "readOnly": true, "type": "string" }, - "updateTime": { - "description": "Output only. Timestamp when this Featurestore was last updated.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1FeaturestoreMonitoringConfig": { - "description": "Configuration of how features in Featurestore are monitored.", - "id": "GoogleCloudAiplatformV1FeaturestoreMonitoringConfig", - "properties": { - "categoricalThresholdConfig": { - "$ref": "GoogleCloudAiplatformV1FeaturestoreMonitoringConfigThresholdConfig", - "description": "Threshold for categorical features of anomaly detection. This is shared by all types of Featurestore Monitoring for categorical features (i.e. Features with type (Feature.ValueType) BOOL or STRING)." + "filterSplit": { + "$ref": "GoogleCloudAiplatformV1ExportFilterSplit", + "description": "Split based on the provided filters for each set." }, - "importFeaturesAnalysis": { - "$ref": "GoogleCloudAiplatformV1FeaturestoreMonitoringConfigImportFeaturesAnalysis", - "description": "The config for ImportFeatures Analysis Based Feature Monitoring." + "fractionSplit": { + "$ref": "GoogleCloudAiplatformV1ExportFractionSplit", + "description": "Split based on fractions defining the size of each set." }, - "numericalThresholdConfig": { - "$ref": "GoogleCloudAiplatformV1FeaturestoreMonitoringConfigThresholdConfig", - "description": "Threshold for numerical features of anomaly detection. This is shared by all objectives of Featurestore Monitoring for numerical features (i.e. Features with type (Feature.ValueType) DOUBLE or INT64)." + "gcsDestination": { + "$ref": "GoogleCloudAiplatformV1GcsDestination", + "description": "The Google Cloud Storage location where the output is to be written to. In the given directory a new directory will be created with name: `export-data--` where timestamp is in YYYY-MM-DDThh:mm:ss.sssZ ISO-8601 format. All export output will be written into that directory. Inside that directory, annotations with the same schema will be grouped into sub directories which are named with the corresponding annotations' schema title. Inside these sub directories, a schema.yaml will be created to describe the output format." }, - "snapshotAnalysis": { - "$ref": "GoogleCloudAiplatformV1FeaturestoreMonitoringConfigSnapshotAnalysis", - "description": "The config for Snapshot Analysis Based Feature Monitoring." + "savedQueryId": { + "description": "The ID of a SavedQuery (annotation set) under the Dataset specified by dataset_id used for filtering Annotations for training. Only used for custom training data export use cases. Only applicable to Datasets that have SavedQueries. Only Annotations that are associated with this SavedQuery are used in respectively training. When used in conjunction with annotations_filter, the Annotations used for training are filtered by both saved_query_id and annotations_filter. Only one of saved_query_id and annotation_schema_uri should be specified as both of them represent the same thing: problem type.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1FeaturestoreMonitoringConfigImportFeaturesAnalysis": { - "description": "Configuration of the Featurestore's ImportFeature Analysis Based Monitoring. This type of analysis generates statistics for values of each Feature imported by every ImportFeatureValues operation.", - "id": "GoogleCloudAiplatformV1FeaturestoreMonitoringConfigImportFeaturesAnalysis", + "GoogleCloudAiplatformV1ExportDataOperationMetadata": { + "description": "Runtime operation information for DatasetService.ExportData.", + "id": "GoogleCloudAiplatformV1ExportDataOperationMetadata", "properties": { - "anomalyDetectionBaseline": { - "description": "The baseline used to do anomaly detection for the statistics generated by import features analysis.", - "enum": [ - "BASELINE_UNSPECIFIED", - "LATEST_STATS", - "MOST_RECENT_SNAPSHOT_STATS", - "PREVIOUS_IMPORT_FEATURES_STATS" - ], - "enumDescriptions": [ - "Should not be used.", - "Choose the later one statistics generated by either most recent snapshot analysis or previous import features analysis. If non of them exists, skip anomaly detection and only generate a statistics.", - "Use the statistics generated by the most recent snapshot analysis if exists.", - "Use the statistics generated by the previous import features analysis if exists." - ], + "gcsOutputDirectory": { + "description": "A Google Cloud Storage directory which path ends with '/'. The exported data is stored in the directory.", "type": "string" }, - "state": { - "description": "Whether to enable / disable / inherite default hebavior for import features analysis.", - "enum": [ - "STATE_UNSPECIFIED", - "DEFAULT", - "ENABLED", - "DISABLED" - ], - "enumDescriptions": [ - "Should not be used.", - "The default behavior of whether to enable the monitoring. EntityType-level config: disabled. Feature-level config: inherited from the configuration of EntityType this Feature belongs to.", - "Explicitly enables import features analysis. EntityType-level config: by default enables import features analysis for all Features under it. Feature-level config: enables import features analysis regardless of the EntityType-level config.", - "Explicitly disables import features analysis. EntityType-level config: by default disables import features analysis for all Features under it. Feature-level config: disables import features analysis regardless of the EntityType-level config." - ], - "type": "string" + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "The common part of the operation metadata." } }, "type": "object" }, - "GoogleCloudAiplatformV1FeaturestoreMonitoringConfigSnapshotAnalysis": { - "description": "Configuration of the Featurestore's Snapshot Analysis Based Monitoring. This type of analysis generates statistics for each Feature based on a snapshot of the latest feature value of each entities every monitoring_interval.", - "id": "GoogleCloudAiplatformV1FeaturestoreMonitoringConfigSnapshotAnalysis", + "GoogleCloudAiplatformV1ExportDataRequest": { + "description": "Request message for DatasetService.ExportData.", + "id": "GoogleCloudAiplatformV1ExportDataRequest", "properties": { - "disabled": { - "description": "The monitoring schedule for snapshot analysis. For EntityType-level config: unset / disabled = true indicates disabled by default for Features under it; otherwise by default enable snapshot analysis monitoring with monitoring_interval for Features under it. Feature-level config: disabled = true indicates disabled regardless of the EntityType-level config; unset monitoring_interval indicates going with EntityType-level config; otherwise run snapshot analysis monitoring with monitoring_interval regardless of the EntityType-level config. Explicitly Disable the snapshot analysis based monitoring.", - "type": "boolean" - }, - "monitoringIntervalDays": { - "description": "Configuration of the snapshot analysis based monitoring pipeline running interval. The value indicates number of days.", - "format": "int32", - "type": "integer" - }, - "stalenessDays": { - "description": "Customized export features time window for snapshot analysis. Unit is one day. Default value is 3 weeks. Minimum value is 1 day. Maximum value is 4000 days.", - "format": "int32", - "type": "integer" + "exportConfig": { + "$ref": "GoogleCloudAiplatformV1ExportDataConfig", + "description": "Required. The desired output location." } }, "type": "object" }, - "GoogleCloudAiplatformV1FeaturestoreMonitoringConfigThresholdConfig": { - "description": "The config for Featurestore Monitoring threshold.", - "id": "GoogleCloudAiplatformV1FeaturestoreMonitoringConfigThresholdConfig", + "GoogleCloudAiplatformV1ExportDataResponse": { + "description": "Response message for DatasetService.ExportData.", + "id": "GoogleCloudAiplatformV1ExportDataResponse", "properties": { - "value": { - "description": "Specify a threshold value that can trigger the alert. 1. For categorical feature, the distribution distance is calculated by L-inifinity norm. 2. For numerical feature, the distribution distance is calculated by Jensen–Shannon divergence. Each feature must have a non-zero threshold if they need to be monitored. Otherwise no alert will be triggered for that feature.", - "format": "double", - "type": "number" + "dataStats": { + "$ref": "GoogleCloudAiplatformV1ModelDataStats", + "description": "Only present for custom code training export use case. Records data stats, i.e., train/validation/test item/annotation counts calculated during the export operation." + }, + "exportedFiles": { + "description": "All of the files that are exported in this export operation. For custom code training export, only three (training, validation and test) Cloud Storage paths in wildcard format are populated (for example, gs://.../training-*).", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1FeaturestoreOnlineServingConfig": { - "description": "OnlineServingConfig specifies the details for provisioning online serving resources.", - "id": "GoogleCloudAiplatformV1FeaturestoreOnlineServingConfig", + "GoogleCloudAiplatformV1ExportFeatureValuesOperationMetadata": { + "description": "Details of operations that exports Features values.", + "id": "GoogleCloudAiplatformV1ExportFeatureValuesOperationMetadata", "properties": { - "fixedNodeCount": { - "description": "The number of nodes for the online store. The number of nodes doesn't scale automatically, but you can manually update the number of nodes. If set to 0, the featurestore will not have an online store and cannot be used for online serving.", - "format": "int32", - "type": "integer" - }, - "scaling": { - "$ref": "GoogleCloudAiplatformV1FeaturestoreOnlineServingConfigScaling", - "description": "Online serving scaling configuration. Only one of `fixed_node_count` and `scaling` can be set. Setting one will reset the other." + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "Operation metadata for Featurestore export Feature values." } }, "type": "object" }, - "GoogleCloudAiplatformV1FeaturestoreOnlineServingConfigScaling": { - "description": "Online serving scaling configuration. If min_node_count and max_node_count are set to the same value, the cluster will be configured with the fixed number of node (no auto-scaling).", - "id": "GoogleCloudAiplatformV1FeaturestoreOnlineServingConfigScaling", + "GoogleCloudAiplatformV1ExportFeatureValuesRequest": { + "description": "Request message for FeaturestoreService.ExportFeatureValues.", + "id": "GoogleCloudAiplatformV1ExportFeatureValuesRequest", "properties": { - "cpuUtilizationTarget": { - "description": "Optional. The cpu utilization that the Autoscaler should be trying to achieve. This number is on a scale from 0 (no utilization) to 100 (total utilization), and is limited between 10 and 80. When a cluster's CPU utilization exceeds the target that you have set, Bigtable immediately adds nodes to the cluster. When CPU utilization is substantially lower than the target, Bigtable removes nodes. If not set or set to 0, default to 50.", - "format": "int32", - "type": "integer" + "destination": { + "$ref": "GoogleCloudAiplatformV1FeatureValueDestination", + "description": "Required. Specifies destination location and format." }, - "maxNodeCount": { - "description": "The maximum number of nodes to scale up to. Must be greater than min_node_count, and less than or equal to 10 times of 'min_node_count'.", - "format": "int32", - "type": "integer" + "featureSelector": { + "$ref": "GoogleCloudAiplatformV1FeatureSelector", + "description": "Required. Selects Features to export values of." }, - "minNodeCount": { - "description": "Required. The minimum number of nodes to scale down to. Must be greater than or equal to 1.", - "format": "int32", - "type": "integer" + "fullExport": { + "$ref": "GoogleCloudAiplatformV1ExportFeatureValuesRequestFullExport", + "description": "Exports all historical values of all entities of the EntityType within a time range" + }, + "settings": { + "description": "Per-Feature export settings.", + "items": { + "$ref": "GoogleCloudAiplatformV1DestinationFeatureSetting" + }, + "type": "array" + }, + "snapshotExport": { + "$ref": "GoogleCloudAiplatformV1ExportFeatureValuesRequestSnapshotExport", + "description": "Exports the latest Feature values of all entities of the EntityType within a time range." } }, "type": "object" }, - "GoogleCloudAiplatformV1FetchFeatureValuesRequest": { - "description": "Request message for FeatureOnlineStoreService.FetchFeatureValues. All the features under the requested feature view will be returned.", - "id": "GoogleCloudAiplatformV1FetchFeatureValuesRequest", + "GoogleCloudAiplatformV1ExportFeatureValuesRequestFullExport": { + "description": "Describes exporting all historical Feature values of all entities of the EntityType between [start_time, end_time].", + "id": "GoogleCloudAiplatformV1ExportFeatureValuesRequestFullExport", "properties": { - "dataFormat": { - "description": "Optional. Response data format. If not set, FeatureViewDataFormat.KEY_VALUE will be used.", - "enum": [ - "FEATURE_VIEW_DATA_FORMAT_UNSPECIFIED", - "KEY_VALUE", - "PROTO_STRUCT" - ], - "enumDescriptions": [ - "Not set. Will be treated as the KeyValue format.", - "Return response data in key-value format.", - "Return response data in proto Struct format." - ], + "endTime": { + "description": "Exports Feature values as of this timestamp. If not set, retrieve values as of now. Timestamp, if present, must not have higher than millisecond precision.", + "format": "google-datetime", "type": "string" }, - "dataKey": { - "$ref": "GoogleCloudAiplatformV1FeatureViewDataKey", - "description": "Optional. The request key to fetch feature values for." + "startTime": { + "description": "Excludes Feature values with feature generation timestamp before this timestamp. If not set, retrieve oldest values kept in Feature Store. Timestamp, if present, must not have higher than millisecond precision.", + "format": "google-datetime", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1FetchFeatureValuesResponse": { - "description": "Response message for FeatureOnlineStoreService.FetchFeatureValues", - "id": "GoogleCloudAiplatformV1FetchFeatureValuesResponse", + "GoogleCloudAiplatformV1ExportFeatureValuesRequestSnapshotExport": { + "description": "Describes exporting the latest Feature values of all entities of the EntityType between [start_time, snapshot_time].", + "id": "GoogleCloudAiplatformV1ExportFeatureValuesRequestSnapshotExport", "properties": { - "keyValues": { - "$ref": "GoogleCloudAiplatformV1FetchFeatureValuesResponseFeatureNameValuePairList", - "description": "Feature values in KeyValue format." + "snapshotTime": { + "description": "Exports Feature values as of this timestamp. If not set, retrieve values as of now. Timestamp, if present, must not have higher than millisecond precision.", + "format": "google-datetime", + "type": "string" }, - "protoStruct": { - "additionalProperties": { - "description": "Properties of the object.", - "type": "any" - }, - "description": "Feature values in proto Struct format.", - "type": "object" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1FetchFeatureValuesResponseFeatureNameValuePairList": { - "description": "Response structure in the format of key (feature name) and (feature) value pair.", - "id": "GoogleCloudAiplatformV1FetchFeatureValuesResponseFeatureNameValuePairList", - "properties": { - "features": { - "description": "List of feature names and values.", - "items": { - "$ref": "GoogleCloudAiplatformV1FetchFeatureValuesResponseFeatureNameValuePairListFeatureNameValuePair" - }, - "type": "array" + "startTime": { + "description": "Excludes Feature values with feature generation timestamp before this timestamp. If not set, retrieve oldest values kept in Feature Store. Timestamp, if present, must not have higher than millisecond precision.", + "format": "google-datetime", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1FetchFeatureValuesResponseFeatureNameValuePairListFeatureNameValuePair": { - "description": "Feature name & value pair.", - "id": "GoogleCloudAiplatformV1FetchFeatureValuesResponseFeatureNameValuePairListFeatureNameValuePair", - "properties": { - "name": { - "description": "Feature short name.", - "type": "string" - }, - "value": { - "$ref": "GoogleCloudAiplatformV1FeatureValue", - "description": "Feature value." - } - }, + "GoogleCloudAiplatformV1ExportFeatureValuesResponse": { + "description": "Response message for FeaturestoreService.ExportFeatureValues.", + "id": "GoogleCloudAiplatformV1ExportFeatureValuesResponse", + "properties": {}, "type": "object" }, - "GoogleCloudAiplatformV1FilterSplit": { - "description": "Assigns input data to training, validation, and test sets based on the given filters, data pieces not matched by any filter are ignored. Currently only supported for Datasets containing DataItems. If any of the filters in this message are to match nothing, then they can be set as '-' (the minus sign). Supported only for unstructured Datasets. ", - "id": "GoogleCloudAiplatformV1FilterSplit", + "GoogleCloudAiplatformV1ExportFilterSplit": { + "description": "Assigns input data to training, validation, and test sets based on the given filters, data pieces not matched by any filter are ignored. Currently only supported for Datasets containing DataItems. If any of the filters in this message are to match nothing, then they can be set as '-' (the minus sign). Supported only for unstructured Datasets.", + "id": "GoogleCloudAiplatformV1ExportFilterSplit", "properties": { "testFilter": { "description": "Required. A filter on DataItems of the Dataset. DataItems that match this filter are used to test the Model. A filter with same syntax as the one used in DatasetService.ListDataItems may be used. If a single DataItem is matched by more than one of the FilterSplit filters, then it is assigned to the first set that applies to it in the training, validation, test order.", @@ -19355,294 +20644,260 @@ }, "type": "object" }, - "GoogleCloudAiplatformV1FindNeighborsRequest": { - "description": "The request message for MatchService.FindNeighbors.", - "id": "GoogleCloudAiplatformV1FindNeighborsRequest", - "properties": { - "deployedIndexId": { - "description": "The ID of the DeployedIndex that will serve the request. This request is sent to a specific IndexEndpoint, as per the IndexEndpoint.network. That IndexEndpoint also has IndexEndpoint.deployed_indexes, and each such index has a DeployedIndex.id field. The value of the field below must equal one of the DeployedIndex.id fields of the IndexEndpoint that is being called for this request.", - "type": "string" - }, - "queries": { - "description": "The list of queries.", - "items": { - "$ref": "GoogleCloudAiplatformV1FindNeighborsRequestQuery" - }, - "type": "array" - }, - "returnFullDatapoint": { - "description": "If set to true, the full datapoints (including all vector values and restricts) of the nearest neighbors are returned. Note that returning full datapoint will significantly increase the latency and cost of the query.", - "type": "boolean" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1FindNeighborsRequestQuery": { - "description": "A query to find a number of the nearest neighbors (most similar vectors) of a vector.", - "id": "GoogleCloudAiplatformV1FindNeighborsRequestQuery", + "GoogleCloudAiplatformV1ExportFractionSplit": { + "description": "Assigns the input data to training, validation, and test sets as per the given fractions. Any of `training_fraction`, `validation_fraction` and `test_fraction` may optionally be provided, they must sum to up to 1. If the provided ones sum to less than 1, the remainder is assigned to sets as decided by Vertex AI. If none of the fractions are set, by default roughly 80% of data is used for training, 10% for validation, and 10% for test.", + "id": "GoogleCloudAiplatformV1ExportFractionSplit", "properties": { - "approximateNeighborCount": { - "description": "The number of neighbors to find via approximate search before exact reordering is performed. If not set, the default value from scam config is used; if set, this value must be > 0.", - "format": "int32", - "type": "integer" - }, - "datapoint": { - "$ref": "GoogleCloudAiplatformV1IndexDatapoint", - "description": "Required. The datapoint/vector whose nearest neighbors should be searched for." - }, - "fractionLeafNodesToSearchOverride": { - "description": "The fraction of the number of leaves to search, set at query time allows user to tune search performance. This value increase result in both search accuracy and latency increase. The value should be between 0.0 and 1.0. If not set or set to 0.0, query uses the default value specified in NearestNeighborSearchConfig.TreeAHConfig.fraction_leaf_nodes_to_search.", + "testFraction": { + "description": "The fraction of the input data that is to be used to evaluate the Model.", "format": "double", "type": "number" }, - "neighborCount": { - "description": "The number of nearest neighbors to be retrieved from database for each query. If not set, will use the default from the service configuration (https://cloud.google.com/vertex-ai/docs/matching-engine/configuring-indexes#nearest-neighbor-search-config).", - "format": "int32", - "type": "integer" + "trainingFraction": { + "description": "The fraction of the input data that is to be used to train the Model.", + "format": "double", + "type": "number" }, - "perCrowdingAttributeNeighborCount": { - "description": "Crowding is a constraint on a neighbor list produced by nearest neighbor search requiring that no more than some value k' of the k neighbors returned have the same value of crowding_attribute. It's used for improving result diversity. This field is the maximum number of matches with the same crowding tag.", - "format": "int32", - "type": "integer" + "validationFraction": { + "description": "The fraction of the input data that is to be used to validate the Model.", + "format": "double", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1FindNeighborsResponse": { - "description": "The response message for MatchService.FindNeighbors.", - "id": "GoogleCloudAiplatformV1FindNeighborsResponse", + "GoogleCloudAiplatformV1ExportModelOperationMetadata": { + "description": "Details of ModelService.ExportModel operation.", + "id": "GoogleCloudAiplatformV1ExportModelOperationMetadata", "properties": { - "nearestNeighbors": { - "description": "The nearest neighbors of the query datapoints.", - "items": { - "$ref": "GoogleCloudAiplatformV1FindNeighborsResponseNearestNeighbors" - }, - "type": "array" + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "The common part of the operation metadata." + }, + "outputInfo": { + "$ref": "GoogleCloudAiplatformV1ExportModelOperationMetadataOutputInfo", + "description": "Output only. Information further describing the output of this Model export.", + "readOnly": true } }, "type": "object" }, - "GoogleCloudAiplatformV1FindNeighborsResponseNearestNeighbors": { - "description": "Nearest neighbors for one query.", - "id": "GoogleCloudAiplatformV1FindNeighborsResponseNearestNeighbors", + "GoogleCloudAiplatformV1ExportModelOperationMetadataOutputInfo": { + "description": "Further describes the output of the ExportModel. Supplements ExportModelRequest.OutputConfig.", + "id": "GoogleCloudAiplatformV1ExportModelOperationMetadataOutputInfo", "properties": { - "id": { - "description": "The ID of the query datapoint.", + "artifactOutputUri": { + "description": "Output only. If the Model artifact is being exported to Google Cloud Storage this is the full path of the directory created, into which the Model files are being written to.", + "readOnly": true, "type": "string" }, - "neighbors": { - "description": "All its neighbors.", - "items": { - "$ref": "GoogleCloudAiplatformV1FindNeighborsResponseNeighbor" - }, - "type": "array" + "imageOutputUri": { + "description": "Output only. If the Model image is being exported to Google Container Registry or Artifact Registry this is the full path of the image created.", + "readOnly": true, + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1FindNeighborsResponseNeighbor": { - "description": "A neighbor of the query vector.", - "id": "GoogleCloudAiplatformV1FindNeighborsResponseNeighbor", + "GoogleCloudAiplatformV1ExportModelRequest": { + "description": "Request message for ModelService.ExportModel.", + "id": "GoogleCloudAiplatformV1ExportModelRequest", "properties": { - "datapoint": { - "$ref": "GoogleCloudAiplatformV1IndexDatapoint", - "description": "The datapoint of the neighbor. Note that full datapoints are returned only when \"return_full_datapoint\" is set to true. Otherwise, only the \"datapoint_id\" and \"crowding_tag\" fields are populated." - }, - "distance": { - "description": "The distance between the neighbor and the query vector.", - "format": "double", - "type": "number" + "outputConfig": { + "$ref": "GoogleCloudAiplatformV1ExportModelRequestOutputConfig", + "description": "Required. The desired output location and configuration." } }, "type": "object" }, - "GoogleCloudAiplatformV1FractionSplit": { - "description": "Assigns the input data to training, validation, and test sets as per the given fractions. Any of `training_fraction`, `validation_fraction` and `test_fraction` may optionally be provided, they must sum to up to 1. If the provided ones sum to less than 1, the remainder is assigned to sets as decided by Vertex AI. If none of the fractions are set, by default roughly 80% of data is used for training, 10% for validation, and 10% for test.", - "id": "GoogleCloudAiplatformV1FractionSplit", + "GoogleCloudAiplatformV1ExportModelRequestOutputConfig": { + "description": "Output configuration for the Model export.", + "id": "GoogleCloudAiplatformV1ExportModelRequestOutputConfig", "properties": { - "testFraction": { - "description": "The fraction of the input data that is to be used to evaluate the Model.", - "format": "double", - "type": "number" + "artifactDestination": { + "$ref": "GoogleCloudAiplatformV1GcsDestination", + "description": "The Cloud Storage location where the Model artifact is to be written to. Under the directory given as the destination a new one with name \"`model-export--`\", where timestamp is in YYYY-MM-DDThh:mm:ss.sssZ ISO-8601 format, will be created. Inside, the Model and any of its supporting files will be written. This field should only be set when the `exportableContent` field of the [Model.supported_export_formats] object contains `ARTIFACT`." }, - "trainingFraction": { - "description": "The fraction of the input data that is to be used to train the Model.", - "format": "double", - "type": "number" + "exportFormatId": { + "description": "The ID of the format in which the Model must be exported. Each Model lists the export formats it supports. If no value is provided here, then the first from the list of the Model's supported formats is used by default.", + "type": "string" }, - "validationFraction": { - "description": "The fraction of the input data that is to be used to validate the Model.", - "format": "double", - "type": "number" + "imageDestination": { + "$ref": "GoogleCloudAiplatformV1ContainerRegistryDestination", + "description": "The Google Container Registry or Artifact Registry uri where the Model container image will be copied to. This field should only be set when the `exportableContent` field of the [Model.supported_export_formats] object contains `IMAGE`." } }, "type": "object" }, - "GoogleCloudAiplatformV1GcsDestination": { - "description": "The Google Cloud Storage location where the output is to be written to.", - "id": "GoogleCloudAiplatformV1GcsDestination", - "properties": { - "outputUriPrefix": { - "description": "Required. Google Cloud Storage URI to output directory. If the uri doesn't end with '/', a '/' will be automatically appended. The directory is created if it doesn't exist.", - "type": "string" - } - }, + "GoogleCloudAiplatformV1ExportModelResponse": { + "description": "Response message of ModelService.ExportModel operation.", + "id": "GoogleCloudAiplatformV1ExportModelResponse", + "properties": {}, "type": "object" }, - "GoogleCloudAiplatformV1GcsSource": { - "description": "The Google Cloud Storage location for the input content.", - "id": "GoogleCloudAiplatformV1GcsSource", + "GoogleCloudAiplatformV1ExportTensorboardTimeSeriesDataRequest": { + "description": "Request message for TensorboardService.ExportTensorboardTimeSeriesData.", + "id": "GoogleCloudAiplatformV1ExportTensorboardTimeSeriesDataRequest", "properties": { - "uris": { - "description": "Required. Google Cloud Storage URI(-s) to the input file(s). May contain wildcards. For more information on wildcards, see https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames.", - "items": { - "type": "string" - }, - "type": "array" + "filter": { + "description": "Exports the TensorboardTimeSeries' data that match the filter expression.", + "type": "string" + }, + "orderBy": { + "description": "Field to use to sort the TensorboardTimeSeries' data. By default, TensorboardTimeSeries' data is returned in a pseudo random order.", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of data points to return per page. The default page_size is 1000. Values must be between 1 and 10000. Values above 10000 are coerced to 10000.", + "format": "int32", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous ExportTensorboardTimeSeriesData call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ExportTensorboardTimeSeriesData must match the call that provided the page token.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1GenericOperationMetadata": { - "description": "Generic Metadata shared by all operations.", - "id": "GoogleCloudAiplatformV1GenericOperationMetadata", + "GoogleCloudAiplatformV1ExportTensorboardTimeSeriesDataResponse": { + "description": "Response message for TensorboardService.ExportTensorboardTimeSeriesData.", + "id": "GoogleCloudAiplatformV1ExportTensorboardTimeSeriesDataResponse", "properties": { - "createTime": { - "description": "Output only. Time when the operation was created.", - "format": "google-datetime", - "readOnly": true, + "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" }, - "partialFailures": { - "description": "Output only. Partial failures encountered. E.g. single files that couldn't be read. This field should never exceed 20 entries. Status details field will contain standard Google Cloud error details.", + "timeSeriesDataPoints": { + "description": "The returned time series data points.", "items": { - "$ref": "GoogleRpcStatus" + "$ref": "GoogleCloudAiplatformV1TimeSeriesDataPoint" }, - "readOnly": true, "type": "array" - }, - "updateTime": { - "description": "Output only. Time when the operation was updated for the last time. If the operation has finished (successfully or not), this is the finish time.", - "format": "google-datetime", - "readOnly": true, - "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1HyperparameterTuningJob": { - "description": "Represents a HyperparameterTuningJob. A HyperparameterTuningJob has a Study specification and multiple CustomJobs with identical CustomJob specification.", - "id": "GoogleCloudAiplatformV1HyperparameterTuningJob", + "GoogleCloudAiplatformV1Feature": { + "description": "Feature Metadata information. For example, color is a feature that describes an apple.", + "id": "GoogleCloudAiplatformV1Feature", "properties": { "createTime": { - "description": "Output only. Time when the HyperparameterTuningJob was created.", + "description": "Output only. Only applicable for Vertex AI Feature Store (Legacy). Timestamp when this EntityType was created.", "format": "google-datetime", "readOnly": true, "type": "string" }, - "displayName": { - "description": "Required. The display name of the HyperparameterTuningJob. The name can be up to 128 characters long and can consist of any UTF-8 characters.", + "description": { + "description": "Description of the Feature.", "type": "string" }, - "encryptionSpec": { - "$ref": "GoogleCloudAiplatformV1EncryptionSpec", - "description": "Customer-managed encryption key options for a HyperparameterTuningJob. If this is set, then all resources created by the HyperparameterTuningJob will be encrypted with the provided encryption key." + "disableMonitoring": { + "description": "Optional. Only applicable for Vertex AI Feature Store (Legacy). If not set, use the monitoring_config defined for the EntityType this Feature belongs to. Only Features with type (Feature.ValueType) BOOL, STRING, DOUBLE or INT64 can enable monitoring. If set to true, all types of data monitoring are disabled despite the config on EntityType.", + "type": "boolean" }, - "endTime": { - "description": "Output only. Time when the HyperparameterTuningJob entered any of the following states: `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED`, `JOB_STATE_CANCELLED`.", - "format": "google-datetime", - "readOnly": true, + "etag": { + "description": "Used to perform a consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", "type": "string" }, - "error": { - "$ref": "GoogleRpcStatus", - "description": "Output only. Only populated when job's state is JOB_STATE_FAILED or JOB_STATE_CANCELLED.", - "readOnly": true - }, "labels": { "additionalProperties": { "type": "string" }, - "description": "The labels with user-defined metadata to organize HyperparameterTuningJobs. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels.", + "description": "Optional. The labels with user-defined metadata to organize your Features. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information on and examples of labels. No more than 64 user labels can be associated with one Feature (System labels are excluded).\" System reserved label keys are prefixed with \"aiplatform.googleapis.com/\" and are immutable.", "type": "object" }, - "maxFailedTrialCount": { - "description": "The number of failed Trials that need to be seen before failing the HyperparameterTuningJob. If set to 0, Vertex AI decides how many Trials must fail before the whole job fails.", - "format": "int32", - "type": "integer" - }, - "maxTrialCount": { - "description": "Required. The desired total number of Trials.", - "format": "int32", - "type": "integer" + "monitoringStatsAnomalies": { + "description": "Output only. Only applicable for Vertex AI Feature Store (Legacy). The list of historical stats and anomalies with specified objectives.", + "items": { + "$ref": "GoogleCloudAiplatformV1FeatureMonitoringStatsAnomaly" + }, + "readOnly": true, + "type": "array" }, "name": { - "description": "Output only. Resource name of the HyperparameterTuningJob.", - "readOnly": true, + "description": "Immutable. Name of the Feature. Format: `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}/features/{feature}` `projects/{project}/locations/{location}/featureGroups/{feature_group}/features/{feature}` The last part feature is assigned by the client. The feature can be up to 64 characters long and can consist only of ASCII Latin letters A-Z and a-z, underscore(_), and ASCII digits 0-9 starting with a letter. The value will be unique given an entity type.", "type": "string" }, - "parallelTrialCount": { - "description": "Required. The desired number of Trials to run in parallel.", - "format": "int32", - "type": "integer" + "pointOfContact": { + "description": "Entity responsible for maintaining this feature. Can be comma separated list of email addresses or URIs.", + "type": "string" }, - "startTime": { - "description": "Output only. Time when the HyperparameterTuningJob for the first time entered the `JOB_STATE_RUNNING` state.", + "updateTime": { + "description": "Output only. Only applicable for Vertex AI Feature Store (Legacy). Timestamp when this EntityType was most recently updated.", "format": "google-datetime", "readOnly": true, "type": "string" }, - "state": { - "description": "Output only. The detailed state of the job.", + "valueType": { + "description": "Immutable. Only applicable for Vertex AI Feature Store (Legacy). Type of Feature value.", "enum": [ - "JOB_STATE_UNSPECIFIED", - "JOB_STATE_QUEUED", - "JOB_STATE_PENDING", - "JOB_STATE_RUNNING", - "JOB_STATE_SUCCEEDED", - "JOB_STATE_FAILED", - "JOB_STATE_CANCELLING", - "JOB_STATE_CANCELLED", - "JOB_STATE_PAUSED", - "JOB_STATE_EXPIRED", - "JOB_STATE_UPDATING", - "JOB_STATE_PARTIALLY_SUCCEEDED" + "VALUE_TYPE_UNSPECIFIED", + "BOOL", + "BOOL_ARRAY", + "DOUBLE", + "DOUBLE_ARRAY", + "INT64", + "INT64_ARRAY", + "STRING", + "STRING_ARRAY", + "BYTES" ], "enumDescriptions": [ - "The job state is unspecified.", - "The job has been just created or resumed and processing has not yet begun.", - "The service is preparing to run the job.", - "The job is in progress.", - "The job completed successfully.", - "The job failed.", - "The job is being cancelled. From this state the job may only go to either `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED` or `JOB_STATE_CANCELLED`.", - "The job has been cancelled.", - "The job has been stopped, and can be resumed.", - "The job has expired.", - "The job is being updated. Only jobs in the `RUNNING` state can be updated. After updating, the job goes back to the `RUNNING` state.", - "The job is partially succeeded, some results may be missing due to errors." + "The value type is unspecified.", + "Used for Feature that is a boolean.", + "Used for Feature that is a list of boolean.", + "Used for Feature that is double.", + "Used for Feature that is a list of double.", + "Used for Feature that is INT64.", + "Used for Feature that is a list of INT64.", + "Used for Feature that is string.", + "Used for Feature that is a list of String.", + "Used for Feature that is bytes." ], + "type": "string" + }, + "versionColumnName": { + "description": "Only applicable for Vertex AI Feature Store. The name of the BigQuery Table/View column hosting data for this version. If no value is provided, will use feature_id.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1FeatureGroup": { + "description": "Vertex AI Feature Group.", + "id": "GoogleCloudAiplatformV1FeatureGroup", + "properties": { + "bigQuery": { + "$ref": "GoogleCloudAiplatformV1FeatureGroupBigQuery", + "description": "Indicates that features for this group come from BigQuery Table/View. By default treats the source as a sparse time series source, which is required to have an entity_id and a feature_timestamp column in the source." + }, + "createTime": { + "description": "Output only. Timestamp when this FeatureGroup was created.", + "format": "google-datetime", "readOnly": true, "type": "string" }, - "studySpec": { - "$ref": "GoogleCloudAiplatformV1StudySpec", - "description": "Required. Study configuration of the HyperparameterTuningJob." + "description": { + "description": "Optional. Description of the FeatureGroup.", + "type": "string" }, - "trialJobSpec": { - "$ref": "GoogleCloudAiplatformV1CustomJobSpec", - "description": "Required. The spec of a trial job. The same spec applies to the CustomJobs created in all the trials." + "etag": { + "description": "Optional. Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "type": "string" }, - "trials": { - "description": "Output only. Trials of the HyperparameterTuningJob.", - "items": { - "$ref": "GoogleCloudAiplatformV1Trial" + "labels": { + "additionalProperties": { + "type": "string" }, - "readOnly": true, - "type": "array" + "description": "Optional. The labels with user-defined metadata to organize your FeatureGroup. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information on and examples of labels. No more than 64 user labels can be associated with one FeatureGroup(System labels are excluded).\" System reserved label keys are prefixed with \"aiplatform.googleapis.com/\" and are immutable.", + "type": "object" + }, + "name": { + "description": "Identifier. Name of the FeatureGroup. Format: `projects/{project}/locations/{location}/featureGroups/{featureGroup}`", + "type": "string" }, "updateTime": { - "description": "Output only. Time when the HyperparameterTuningJob was most recently updated.", + "description": "Output only. Timestamp when this FeatureGroup was last updated.", "format": "google-datetime", "readOnly": true, "type": "string" @@ -19650,12 +20905,16 @@ }, "type": "object" }, - "GoogleCloudAiplatformV1IdMatcher": { - "description": "Matcher for Features of an EntityType by Feature ID.", - "id": "GoogleCloudAiplatformV1IdMatcher", + "GoogleCloudAiplatformV1FeatureGroupBigQuery": { + "description": "Input source type for BigQuery Tables and Views.", + "id": "GoogleCloudAiplatformV1FeatureGroupBigQuery", "properties": { - "ids": { - "description": "Required. The following are accepted as `ids`: * A single-element list containing only `*`, which selects all Features in the target EntityType, or * A list containing only Feature IDs, which selects only Features with those IDs in the target EntityType.", + "bigQuerySource": { + "$ref": "GoogleCloudAiplatformV1BigQuerySource", + "description": "Required. Immutable. The BigQuery source URI that points to either a BigQuery Table or View." + }, + "entityIdColumns": { + "description": "Optional. Columns to construct entity_id / row keys. If not provided defaults to `entity_id`.", "items": { "type": "string" }, @@ -19664,485 +20923,332 @@ }, "type": "object" }, - "GoogleCloudAiplatformV1ImportDataConfig": { - "description": "Describes the location from where we import data into a Dataset, together with the labels that will be applied to the DataItems and the Annotations.", - "id": "GoogleCloudAiplatformV1ImportDataConfig", + "GoogleCloudAiplatformV1FeatureMonitoringStatsAnomaly": { + "description": "A list of historical SnapshotAnalysis or ImportFeaturesAnalysis stats requested by user, sorted by FeatureStatsAnomaly.start_time descending.", + "id": "GoogleCloudAiplatformV1FeatureMonitoringStatsAnomaly", "properties": { - "annotationLabels": { - "additionalProperties": { - "type": "string" - }, - "description": "Labels that will be applied to newly imported Annotations. If two Annotations are identical, one of them will be deduped. Two Annotations are considered identical if their payload, payload_schema_uri and all of their labels are the same. These labels will be overridden by Annotation labels specified inside index file referenced by import_schema_uri, e.g. jsonl file.", - "type": "object" - }, - "dataItemLabels": { - "additionalProperties": { - "type": "string" - }, - "description": "Labels that will be applied to newly imported DataItems. If an identical DataItem as one being imported already exists in the Dataset, then these labels will be appended to these of the already existing one, and if labels with identical key is imported before, the old label value will be overwritten. If two DataItems are identical in the same import data operation, the labels will be combined and if key collision happens in this case, one of the values will be picked randomly. Two DataItems are considered identical if their content bytes are identical (e.g. image bytes or pdf bytes). These labels will be overridden by Annotation labels specified inside index file referenced by import_schema_uri, e.g. jsonl file.", - "type": "object" - }, - "gcsSource": { - "$ref": "GoogleCloudAiplatformV1GcsSource", - "description": "The Google Cloud Storage location for the input content." + "featureStatsAnomaly": { + "$ref": "GoogleCloudAiplatformV1FeatureStatsAnomaly", + "description": "Output only. The stats and anomalies generated at specific timestamp.", + "readOnly": true }, - "importSchemaUri": { - "description": "Required. Points to a YAML file stored on Google Cloud Storage describing the import format. Validation will be done against the schema. The schema is defined as an [OpenAPI 3.0.2 Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject).", + "objective": { + "description": "Output only. The objective for each stats.", + "enum": [ + "OBJECTIVE_UNSPECIFIED", + "IMPORT_FEATURE_ANALYSIS", + "SNAPSHOT_ANALYSIS" + ], + "enumDescriptions": [ + "If it's OBJECTIVE_UNSPECIFIED, monitoring_stats will be empty.", + "Stats are generated by Import Feature Analysis.", + "Stats are generated by Snapshot Analysis." + ], + "readOnly": true, "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ImportDataOperationMetadata": { - "description": "Runtime operation information for DatasetService.ImportData.", - "id": "GoogleCloudAiplatformV1ImportDataOperationMetadata", - "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "The common part of the operation metadata." - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1ImportDataRequest": { - "description": "Request message for DatasetService.ImportData.", - "id": "GoogleCloudAiplatformV1ImportDataRequest", + "GoogleCloudAiplatformV1FeatureNoiseSigma": { + "description": "Noise sigma by features. Noise sigma represents the standard deviation of the gaussian kernel that will be used to add noise to interpolated inputs prior to computing gradients.", + "id": "GoogleCloudAiplatformV1FeatureNoiseSigma", "properties": { - "importConfigs": { - "description": "Required. The desired input locations. The contents of all input locations will be imported in one batch.", + "noiseSigma": { + "description": "Noise sigma per feature. No noise is added to features that are not set.", "items": { - "$ref": "GoogleCloudAiplatformV1ImportDataConfig" + "$ref": "GoogleCloudAiplatformV1FeatureNoiseSigmaNoiseSigmaForFeature" }, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1ImportDataResponse": { - "description": "Response message for DatasetService.ImportData.", - "id": "GoogleCloudAiplatformV1ImportDataResponse", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1ImportFeatureValuesOperationMetadata": { - "description": "Details of operations that perform import Feature values.", - "id": "GoogleCloudAiplatformV1ImportFeatureValuesOperationMetadata", + "GoogleCloudAiplatformV1FeatureNoiseSigmaNoiseSigmaForFeature": { + "description": "Noise sigma for a single feature.", + "id": "GoogleCloudAiplatformV1FeatureNoiseSigmaNoiseSigmaForFeature", "properties": { - "blockingOperationIds": { - "description": "List of ImportFeatureValues operations running under a single EntityType that are blocking this operation.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "Operation metadata for Featurestore import Feature values." - }, - "importedEntityCount": { - "description": "Number of entities that have been imported by the operation.", - "format": "int64", - "type": "string" - }, - "importedFeatureValueCount": { - "description": "Number of Feature values that have been imported by the operation.", - "format": "int64", - "type": "string" - }, - "invalidRowCount": { - "description": "The number of rows in input source that weren't imported due to either * Not having any featureValues. * Having a null entityId. * Having a null timestamp. * Not being parsable (applicable for CSV sources).", - "format": "int64", + "name": { + "description": "The name of the input feature for which noise sigma is provided. The features are defined in explanation metadata inputs.", "type": "string" }, - "sourceUris": { - "description": "The source URI from where Feature values are imported.", - "items": { - "type": "string" - }, - "type": "array" - }, - "timestampOutsideRetentionRowsCount": { - "description": "The number rows that weren't ingested due to having timestamps outside the retention boundary.", - "format": "int64", - "type": "string" + "sigma": { + "description": "This represents the standard deviation of the Gaussian kernel that will be used to add noise to the feature prior to computing gradients. Similar to noise_sigma but represents the noise added to the current feature. Defaults to 0.1.", + "format": "float", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1ImportFeatureValuesRequest": { - "description": "Request message for FeaturestoreService.ImportFeatureValues.", - "id": "GoogleCloudAiplatformV1ImportFeatureValuesRequest", + "GoogleCloudAiplatformV1FeatureOnlineStore": { + "description": "Vertex AI Feature Online Store provides a centralized repository for serving ML features and embedding indexes at low latency. The Feature Online Store is a top-level container.", + "id": "GoogleCloudAiplatformV1FeatureOnlineStore", "properties": { - "avroSource": { - "$ref": "GoogleCloudAiplatformV1AvroSource" - }, - "bigquerySource": { - "$ref": "GoogleCloudAiplatformV1BigQuerySource" - }, - "csvSource": { - "$ref": "GoogleCloudAiplatformV1CsvSource" - }, - "disableIngestionAnalysis": { - "description": "If true, API doesn't start ingestion analysis pipeline.", - "type": "boolean" + "bigtable": { + "$ref": "GoogleCloudAiplatformV1FeatureOnlineStoreBigtable", + "description": "Contains settings for the Cloud Bigtable instance that will be created to serve featureValues for all FeatureViews under this FeatureOnlineStore." }, - "disableOnlineServing": { - "description": "If set, data will not be imported for online serving. This is typically used for backfilling, where Feature generation timestamps are not in the timestamp range needed for online serving.", - "type": "boolean" + "createTime": { + "description": "Output only. Timestamp when this FeatureOnlineStore was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" }, - "entityIdField": { - "description": "Source column that holds entity IDs. If not provided, entity IDs are extracted from the column named entity_id.", + "etag": { + "description": "Optional. Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", "type": "string" }, - "featureSpecs": { - "description": "Required. Specifications defining which Feature values to import from the entity. The request fails if no feature_specs are provided, and having multiple feature_specs for one Feature is not allowed.", - "items": { - "$ref": "GoogleCloudAiplatformV1ImportFeatureValuesRequestFeatureSpec" + "labels": { + "additionalProperties": { + "type": "string" }, - "type": "array" + "description": "Optional. The labels with user-defined metadata to organize your FeatureOnlineStore. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information on and examples of labels. No more than 64 user labels can be associated with one FeatureOnlineStore(System labels are excluded).\" System reserved label keys are prefixed with \"aiplatform.googleapis.com/\" and are immutable.", + "type": "object" }, - "featureTime": { - "description": "Single Feature timestamp for all entities being imported. The timestamp must not have higher than millisecond precision.", - "format": "google-datetime", + "name": { + "description": "Identifier. Name of the FeatureOnlineStore. Format: `projects/{project}/locations/{location}/featureOnlineStores/{featureOnlineStore}`", "type": "string" }, - "featureTimeField": { - "description": "Source column that holds the Feature timestamp for all Feature values in each entity.", + "state": { + "description": "Output only. State of the featureOnlineStore.", + "enum": [ + "STATE_UNSPECIFIED", + "STABLE", + "UPDATING" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "State when the featureOnlineStore configuration is not being updated and the fields reflect the current configuration of the featureOnlineStore. The featureOnlineStore is usable in this state.", + "The state of the featureOnlineStore configuration when it is being updated. During an update, the fields reflect either the original configuration or the updated configuration of the featureOnlineStore. The featureOnlineStore is still usable in this state." + ], + "readOnly": true, "type": "string" }, - "workerCount": { - "description": "Specifies the number of workers that are used to write data to the Featurestore. Consider the online serving capacity that you require to achieve the desired import throughput without interfering with online serving. The value must be positive, and less than or equal to 100. If not set, defaults to using 1 worker. The low count ensures minimal impact on online serving performance.", - "format": "int32", - "type": "integer" + "updateTime": { + "description": "Output only. Timestamp when this FeatureOnlineStore was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ImportFeatureValuesRequestFeatureSpec": { - "description": "Defines the Feature value(s) to import.", - "id": "GoogleCloudAiplatformV1ImportFeatureValuesRequestFeatureSpec", + "GoogleCloudAiplatformV1FeatureOnlineStoreBigtable": { + "id": "GoogleCloudAiplatformV1FeatureOnlineStoreBigtable", "properties": { - "id": { - "description": "Required. ID of the Feature to import values of. This Feature must exist in the target EntityType, or the request will fail.", - "type": "string" - }, - "sourceField": { - "description": "Source column to get the Feature values from. If not set, uses the column with the same name as the Feature ID.", - "type": "string" + "autoScaling": { + "$ref": "GoogleCloudAiplatformV1FeatureOnlineStoreBigtableAutoScaling", + "description": "Required. Autoscaling config applied to Bigtable Instance." } }, "type": "object" }, - "GoogleCloudAiplatformV1ImportFeatureValuesResponse": { - "description": "Response message for FeaturestoreService.ImportFeatureValues.", - "id": "GoogleCloudAiplatformV1ImportFeatureValuesResponse", + "GoogleCloudAiplatformV1FeatureOnlineStoreBigtableAutoScaling": { + "id": "GoogleCloudAiplatformV1FeatureOnlineStoreBigtableAutoScaling", "properties": { - "importedEntityCount": { - "description": "Number of entities that have been imported by the operation.", - "format": "int64", - "type": "string" - }, - "importedFeatureValueCount": { - "description": "Number of Feature values that have been imported by the operation.", - "format": "int64", - "type": "string" + "cpuUtilizationTarget": { + "description": "Optional. A percentage of the cluster's CPU capacity. Can be from 10% to 80%. When a cluster's CPU utilization exceeds the target that you have set, Bigtable immediately adds nodes to the cluster. When CPU utilization is substantially lower than the target, Bigtable removes nodes. If not set will default to 50%.", + "format": "int32", + "type": "integer" }, - "invalidRowCount": { - "description": "The number of rows in input source that weren't imported due to either * Not having any featureValues. * Having a null entityId. * Having a null timestamp. * Not being parsable (applicable for CSV sources).", - "format": "int64", - "type": "string" + "maxNodeCount": { + "description": "Required. The maximum number of nodes to scale up to. Must be greater than or equal to min_node_count, and less than or equal to 10 times of 'min_node_count'.", + "format": "int32", + "type": "integer" }, - "timestampOutsideRetentionRowsCount": { - "description": "The number rows that weren't ingested due to having feature timestamps outside the retention boundary.", - "format": "int64", - "type": "string" + "minNodeCount": { + "description": "Required. The minimum number of nodes to scale down to. Must be greater than or equal to 1.", + "format": "int32", + "type": "integer" } }, "type": "object" }, - "GoogleCloudAiplatformV1ImportModelEvaluationRequest": { - "description": "Request message for ModelService.ImportModelEvaluation", - "id": "GoogleCloudAiplatformV1ImportModelEvaluationRequest", + "GoogleCloudAiplatformV1FeatureSelector": { + "description": "Selector for Features of an EntityType.", + "id": "GoogleCloudAiplatformV1FeatureSelector", "properties": { - "modelEvaluation": { - "$ref": "GoogleCloudAiplatformV1ModelEvaluation", - "description": "Required. Model evaluation resource to be imported." + "idMatcher": { + "$ref": "GoogleCloudAiplatformV1IdMatcher", + "description": "Required. Matches Features based on ID." } }, "type": "object" }, - "GoogleCloudAiplatformV1Index": { - "description": "A representation of a collection of database items organized in a way that allows for approximate nearest neighbor (a.k.a ANN) algorithms search.", - "id": "GoogleCloudAiplatformV1Index", + "GoogleCloudAiplatformV1FeatureStatsAnomaly": { + "description": "Stats and Anomaly generated at specific timestamp for specific Feature. The start_time and end_time are used to define the time range of the dataset that current stats belongs to, e.g. prediction traffic is bucketed into prediction datasets by time window. If the Dataset is not defined by time window, start_time = end_time. Timestamp of the stats and anomalies always refers to end_time. Raw stats and anomalies are stored in stats_uri or anomaly_uri in the tensorflow defined protos. Field data_stats contains almost identical information with the raw stats in Vertex AI defined proto, for UI to display.", + "id": "GoogleCloudAiplatformV1FeatureStatsAnomaly", "properties": { - "createTime": { - "description": "Output only. Timestamp when this Index was created.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "deployedIndexes": { - "description": "Output only. The pointers to DeployedIndexes created from this Index. An Index can be only deleted if all its DeployedIndexes had been undeployed first.", - "items": { - "$ref": "GoogleCloudAiplatformV1DeployedIndexRef" - }, - "readOnly": true, - "type": "array" - }, - "description": { - "description": "The description of the Index.", - "type": "string" - }, - "displayName": { - "description": "Required. The display name of the Index. The name can be up to 128 characters long and can consist of any UTF-8 characters.", - "type": "string" - }, - "encryptionSpec": { - "$ref": "GoogleCloudAiplatformV1EncryptionSpec", - "description": "Immutable. Customer-managed encryption key spec for an Index. If set, this Index and all sub-resources of this Index will be secured by this key." + "anomalyDetectionThreshold": { + "description": "This is the threshold used when detecting anomalies. The threshold can be changed by user, so this one might be different from ThresholdConfig.value.", + "format": "double", + "type": "number" }, - "etag": { - "description": "Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "anomalyUri": { + "description": "Path of the anomaly file for current feature values in Cloud Storage bucket. Format: gs:////anomalies. Example: gs://monitoring_bucket/feature_name/anomalies. Stats are stored as binary format with Protobuf message Anoamlies are stored as binary format with Protobuf message [tensorflow.metadata.v0.AnomalyInfo] (https://github.com/tensorflow/metadata/blob/master/tensorflow_metadata/proto/v0/anomalies.proto).", "type": "string" }, - "indexStats": { - "$ref": "GoogleCloudAiplatformV1IndexStats", - "description": "Output only. Stats of the index resource.", - "readOnly": true + "distributionDeviation": { + "description": "Deviation from the current stats to baseline stats. 1. For categorical feature, the distribution distance is calculated by L-inifinity norm. 2. For numerical feature, the distribution distance is calculated by Jensen–Shannon divergence.", + "format": "double", + "type": "number" }, - "indexUpdateMethod": { - "description": "Immutable. The update method to use with this Index. If not set, BATCH_UPDATE will be used by default.", - "enum": [ - "INDEX_UPDATE_METHOD_UNSPECIFIED", - "BATCH_UPDATE", - "STREAM_UPDATE" - ], - "enumDescriptions": [ - "Should not be used.", - "BatchUpdate: user can call UpdateIndex with files on Cloud Storage of Datapoints to update.", - "StreamUpdate: user can call UpsertDatapoints/DeleteDatapoints to update the Index and the updates will be applied in corresponding DeployedIndexes in nearly real-time." - ], + "endTime": { + "description": "The end timestamp of window where stats were generated. For objectives where time window doesn't make sense (e.g. Featurestore Snapshot Monitoring), end_time indicates the timestamp of the data used to generate stats (e.g. timestamp we take snapshots for feature values).", + "format": "google-datetime", "type": "string" }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "The labels with user-defined metadata to organize your Indexes. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels.", - "type": "object" - }, - "metadata": { - "description": "An additional information about the Index; the schema of the metadata can be found in metadata_schema.", - "type": "any" - }, - "metadataSchemaUri": { - "description": "Immutable. Points to a YAML file stored on Google Cloud Storage describing additional information about the Index, that is specific to it. Unset if the Index does not have any additional information. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). Note: The URI given on output will be immutable and probably different, including the URI scheme, than the one given on input. The output URI will point to a location where the user only has a read access.", - "type": "string" + "score": { + "description": "Feature importance score, only populated when cross-feature monitoring is enabled. For now only used to represent feature attribution score within range [0, 1] for ModelDeploymentMonitoringObjectiveType.FEATURE_ATTRIBUTION_SKEW and ModelDeploymentMonitoringObjectiveType.FEATURE_ATTRIBUTION_DRIFT.", + "format": "double", + "type": "number" }, - "name": { - "description": "Output only. The resource name of the Index.", - "readOnly": true, + "startTime": { + "description": "The start timestamp of window where stats were generated. For objectives where time window doesn't make sense (e.g. Featurestore Snapshot Monitoring), start_time is only used to indicate the monitoring intervals, so it always equals to (end_time - monitoring_interval).", + "format": "google-datetime", "type": "string" }, - "updateTime": { - "description": "Output only. Timestamp when this Index was most recently updated. This also includes any update to the contents of the Index. Note that Operations working on this Index may have their Operations.metadata.generic_metadata.update_time a little after the value of this timestamp, yet that does not mean their results are not already reflected in the Index. Result of any successfully completed Operation on the Index is reflected in it.", - "format": "google-datetime", - "readOnly": true, + "statsUri": { + "description": "Path of the stats file for current feature values in Cloud Storage bucket. Format: gs:////stats. Example: gs://monitoring_bucket/feature_name/stats. Stats are stored as binary format with Protobuf message [tensorflow.metadata.v0.FeatureNameStatistics](https://github.com/tensorflow/metadata/blob/master/tensorflow_metadata/proto/v0/statistics.proto).", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1IndexDatapoint": { - "description": "A datapoint of Index.", - "id": "GoogleCloudAiplatformV1IndexDatapoint", + "GoogleCloudAiplatformV1FeatureValue": { + "description": "Value for a feature.", + "id": "GoogleCloudAiplatformV1FeatureValue", "properties": { - "crowdingTag": { - "$ref": "GoogleCloudAiplatformV1IndexDatapointCrowdingTag", - "description": "Optional. CrowdingTag of the datapoint, the number of neighbors to return in each crowding can be configured during query." - }, - "datapointId": { - "description": "Required. Unique identifier of the datapoint.", - "type": "string" + "boolArrayValue": { + "$ref": "GoogleCloudAiplatformV1BoolArray", + "description": "A list of bool type feature value." }, - "featureVector": { - "description": "Required. Feature embedding vector. An array of numbers with the length of [NearestNeighborSearchConfig.dimensions].", - "items": { - "format": "float", - "type": "number" - }, - "type": "array" - }, - "numericRestricts": { - "description": "Optional. List of Restrict of the datapoint, used to perform \"restricted searches\" where boolean rule are used to filter the subset of the database eligible for matching. This uses numeric comparisons.", - "items": { - "$ref": "GoogleCloudAiplatformV1IndexDatapointNumericRestriction" - }, - "type": "array" + "boolValue": { + "description": "Bool type feature value.", + "type": "boolean" }, - "restricts": { - "description": "Optional. List of Restrict of the datapoint, used to perform \"restricted searches\" where boolean rule are used to filter the subset of the database eligible for matching. This uses categorical tokens. See: https://cloud.google.com/vertex-ai/docs/matching-engine/filtering", - "items": { - "$ref": "GoogleCloudAiplatformV1IndexDatapointRestriction" - }, - "type": "array" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1IndexDatapointCrowdingTag": { - "description": "Crowding tag is a constraint on a neighbor list produced by nearest neighbor search requiring that no more than some value k' of the k neighbors returned have the same value of crowding_attribute.", - "id": "GoogleCloudAiplatformV1IndexDatapointCrowdingTag", - "properties": { - "crowdingAttribute": { - "description": "The attribute value used for crowding. The maximum number of neighbors to return per crowding attribute value (per_crowding_attribute_num_neighbors) is configured per-query. This field is ignored if per_crowding_attribute_num_neighbors is larger than the total number of neighbors to return for a given query.", - "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1IndexDatapointNumericRestriction": { - "description": "This field allows restricts to be based on numeric comparisons rather than categorical tokens.", - "id": "GoogleCloudAiplatformV1IndexDatapointNumericRestriction", - "properties": { - "namespace": { - "description": "The namespace of this restriction. e.g.: cost.", + "bytesValue": { + "description": "Bytes feature value.", + "format": "byte", "type": "string" }, - "op": { - "description": "This MUST be specified for queries and must NOT be specified for datapoints.", - "enum": [ - "OPERATOR_UNSPECIFIED", - "LESS", - "LESS_EQUAL", - "EQUAL", - "GREATER_EQUAL", - "GREATER" - ], - "enumDescriptions": [ - "Default value of the enum.", - "Datapoints are eligible iff their value is < the query's.", - "Datapoints are eligible iff their value is <= the query's.", - "Datapoints are eligible iff their value is == the query's.", - "Datapoints are eligible iff their value is >= the query's.", - "Datapoints are eligible iff their value is > the query's." - ], - "type": "string" + "doubleArrayValue": { + "$ref": "GoogleCloudAiplatformV1DoubleArray", + "description": "A list of double type feature value." }, - "valueDouble": { - "description": "Represents 64 bit float.", + "doubleValue": { + "description": "Double type feature value.", "format": "double", "type": "number" }, - "valueFloat": { - "description": "Represents 32 bit float.", - "format": "float", - "type": "number" + "int64ArrayValue": { + "$ref": "GoogleCloudAiplatformV1Int64Array", + "description": "A list of int64 type feature value." }, - "valueInt": { - "description": "Represents 64 bit integer.", + "int64Value": { + "description": "Int64 feature value.", "format": "int64", "type": "string" + }, + "metadata": { + "$ref": "GoogleCloudAiplatformV1FeatureValueMetadata", + "description": "Metadata of feature value." + }, + "stringArrayValue": { + "$ref": "GoogleCloudAiplatformV1StringArray", + "description": "A list of string type feature value." + }, + "stringValue": { + "description": "String feature value.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1IndexDatapointRestriction": { - "description": "Restriction of a datapoint which describe its attributes(tokens) from each of several attribute categories(namespaces).", - "id": "GoogleCloudAiplatformV1IndexDatapointRestriction", + "GoogleCloudAiplatformV1FeatureValueDestination": { + "description": "A destination location for Feature values and format.", + "id": "GoogleCloudAiplatformV1FeatureValueDestination", "properties": { - "allowList": { - "description": "The attributes to allow in this namespace. e.g.: 'red'", - "items": { - "type": "string" - }, - "type": "array" + "bigqueryDestination": { + "$ref": "GoogleCloudAiplatformV1BigQueryDestination", + "description": "Output in BigQuery format. BigQueryDestination.output_uri in FeatureValueDestination.bigquery_destination must refer to a table." }, - "denyList": { - "description": "The attributes to deny in this namespace. e.g.: 'blue'", + "csvDestination": { + "$ref": "GoogleCloudAiplatformV1CsvDestination", + "description": "Output in CSV format. Array Feature value types are not allowed in CSV format." + }, + "tfrecordDestination": { + "$ref": "GoogleCloudAiplatformV1TFRecordDestination", + "description": "Output in TFRecord format. Below are the mapping from Feature value type in Featurestore to Feature value type in TFRecord: Value type in Featurestore | Value type in TFRecord DOUBLE, DOUBLE_ARRAY | FLOAT_LIST INT64, INT64_ARRAY | INT64_LIST STRING, STRING_ARRAY, BYTES | BYTES_LIST true -> byte_string(\"true\"), false -> byte_string(\"false\") BOOL, BOOL_ARRAY (true, false) | BYTES_LIST" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1FeatureValueList": { + "description": "Container for list of values.", + "id": "GoogleCloudAiplatformV1FeatureValueList", + "properties": { + "values": { + "description": "A list of feature values. All of them should be the same data type.", "items": { - "type": "string" + "$ref": "GoogleCloudAiplatformV1FeatureValue" }, "type": "array" - }, - "namespace": { - "description": "The namespace of this restriction. e.g.: color.", - "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1IndexEndpoint": { - "description": "Indexes are deployed into it. An IndexEndpoint can have multiple DeployedIndexes.", - "id": "GoogleCloudAiplatformV1IndexEndpoint", + "GoogleCloudAiplatformV1FeatureValueMetadata": { + "description": "Metadata of feature value.", + "id": "GoogleCloudAiplatformV1FeatureValueMetadata", "properties": { - "createTime": { - "description": "Output only. Timestamp when this IndexEndpoint was created.", + "generateTime": { + "description": "Feature generation timestamp. Typically, it is provided by user at feature ingestion time. If not, feature store will use the system timestamp when the data is ingested into feature store. For streaming ingestion, the time, aligned by days, must be no older than five years (1825 days) and no later than one year (366 days) in the future.", "format": "google-datetime", - "readOnly": true, "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1FeatureView": { + "description": "FeatureView is representation of values that the FeatureOnlineStore will serve based on its syncConfig.", + "id": "GoogleCloudAiplatformV1FeatureView", + "properties": { + "bigQuerySource": { + "$ref": "GoogleCloudAiplatformV1FeatureViewBigQuerySource", + "description": "Optional. Configures how data is supposed to be extracted from a BigQuery source to be loaded onto the FeatureOnlineStore." }, - "deployedIndexes": { - "description": "Output only. The indexes deployed in this endpoint.", - "items": { - "$ref": "GoogleCloudAiplatformV1DeployedIndex" - }, + "createTime": { + "description": "Output only. Timestamp when this FeatureView was created.", + "format": "google-datetime", "readOnly": true, - "type": "array" - }, - "description": { - "description": "The description of the IndexEndpoint.", - "type": "string" - }, - "displayName": { - "description": "Required. The display name of the IndexEndpoint. The name can be up to 128 characters long and can consist of any UTF-8 characters.", "type": "string" }, - "enablePrivateServiceConnect": { - "deprecated": true, - "description": "Optional. Deprecated: If true, expose the IndexEndpoint via private service connect. Only one of the fields, network or enable_private_service_connect, can be set.", - "type": "boolean" - }, - "encryptionSpec": { - "$ref": "GoogleCloudAiplatformV1EncryptionSpec", - "description": "Immutable. Customer-managed encryption key spec for an IndexEndpoint. If set, this IndexEndpoint and all sub-resources of this IndexEndpoint will be secured by this key." - }, "etag": { - "description": "Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "description": "Optional. Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", "type": "string" }, + "featureRegistrySource": { + "$ref": "GoogleCloudAiplatformV1FeatureViewFeatureRegistrySource", + "description": "Optional. Configures the features from a Feature Registry source that need to be loaded onto the FeatureOnlineStore." + }, "labels": { "additionalProperties": { "type": "string" }, - "description": "The labels with user-defined metadata to organize your IndexEndpoints. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels.", + "description": "Optional. The labels with user-defined metadata to organize your FeatureViews. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information on and examples of labels. No more than 64 user labels can be associated with one FeatureOnlineStore(System labels are excluded).\" System reserved label keys are prefixed with \"aiplatform.googleapis.com/\" and are immutable.", "type": "object" }, "name": { - "description": "Output only. The resource name of the IndexEndpoint.", - "readOnly": true, - "type": "string" - }, - "network": { - "description": "Optional. The full name of the Google Compute Engine [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks) to which the IndexEndpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. network and private_service_connect_config are mutually exclusive. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where {project} is a project number, as in '12345', and {network} is network name.", - "type": "string" - }, - "privateServiceConnectConfig": { - "$ref": "GoogleCloudAiplatformV1PrivateServiceConnectConfig", - "description": "Optional. Configuration for private service connect. network and private_service_connect_config are mutually exclusive." - }, - "publicEndpointDomainName": { - "description": "Output only. If public_endpoint_enabled is true, this field will be populated with the domain name to use for this index endpoint.", - "readOnly": true, + "description": "Identifier. Name of the FeatureView. Format: `projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}`", "type": "string" }, - "publicEndpointEnabled": { - "description": "Optional. If true, the deployed index will be accessible through public endpoint.", - "type": "boolean" + "syncConfig": { + "$ref": "GoogleCloudAiplatformV1FeatureViewSyncConfig", + "description": "Configures when data is to be synced/updated for this FeatureView. At the end of the sync the latest featureValues for each entityId of this FeatureView are made ready for online serving." }, "updateTime": { - "description": "Output only. Timestamp when this IndexEndpoint was last updated. This timestamp is not updated when the endpoint's DeployedIndexes are updated, e.g. due to updates of the original Indexes they are the deployments of.", + "description": "Output only. Timestamp when this FeatureView was last updated.", "format": "google-datetime", "readOnly": true, "type": "string" @@ -20150,105 +21256,45 @@ }, "type": "object" }, - "GoogleCloudAiplatformV1IndexPrivateEndpoints": { - "description": "IndexPrivateEndpoints proto is used to provide paths for users to send requests via private endpoints (e.g. private service access, private service connect). To send request via private service access, use match_grpc_address. To send request via private service connect, use service_attachment.", - "id": "GoogleCloudAiplatformV1IndexPrivateEndpoints", - "properties": { - "matchGrpcAddress": { - "description": "Output only. The ip address used to send match gRPC requests.", - "readOnly": true, - "type": "string" - }, - "serviceAttachment": { - "description": "Output only. The name of the service attachment resource. Populated if private service connect is enabled.", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1IndexStats": { - "description": "Stats of the Index.", - "id": "GoogleCloudAiplatformV1IndexStats", + "GoogleCloudAiplatformV1FeatureViewBigQuerySource": { + "id": "GoogleCloudAiplatformV1FeatureViewBigQuerySource", "properties": { - "shardsCount": { - "description": "Output only. The number of shards in the Index.", - "format": "int32", - "readOnly": true, - "type": "integer" + "entityIdColumns": { + "description": "Required. Columns to construct entity_id / row keys.", + "items": { + "type": "string" + }, + "type": "array" }, - "vectorsCount": { - "description": "Output only. The number of vectors in the Index.", - "format": "int64", - "readOnly": true, + "uri": { + "description": "Required. The BigQuery view URI that will be materialized on each sync trigger based on FeatureView.SyncConfig.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1InputDataConfig": { - "description": "Specifies Vertex AI owned input data to be used for training, and possibly evaluating, the Model.", - "id": "GoogleCloudAiplatformV1InputDataConfig", + "GoogleCloudAiplatformV1FeatureViewDataKey": { + "description": "Lookup key for a feature view.", + "id": "GoogleCloudAiplatformV1FeatureViewDataKey", "properties": { - "annotationSchemaUri": { - "description": "Applicable only to custom training with Datasets that have DataItems and Annotations. Cloud Storage URI that points to a YAML file describing the annotation schema. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). The schema files that can be used here are found in gs://google-cloud-aiplatform/schema/dataset/annotation/ , note that the chosen schema must be consistent with metadata of the Dataset specified by dataset_id. Only Annotations that both match this schema and belong to DataItems not ignored by the split method are used in respectively training, validation or test role, depending on the role of the DataItem they are on. When used in conjunction with annotations_filter, the Annotations used for training are filtered by both annotations_filter and annotation_schema_uri.", - "type": "string" - }, - "annotationsFilter": { - "description": "Applicable only to Datasets that have DataItems and Annotations. A filter on Annotations of the Dataset. Only Annotations that both match this filter and belong to DataItems not ignored by the split method are used in respectively training, validation or test role, depending on the role of the DataItem they are on (for the auto-assigned that role is decided by Vertex AI). A filter with same syntax as the one used in ListAnnotations may be used, but note here it filters across all Annotations of the Dataset, and not just within a single DataItem.", - "type": "string" - }, - "bigqueryDestination": { - "$ref": "GoogleCloudAiplatformV1BigQueryDestination", - "description": "Only applicable to custom training with tabular Dataset with BigQuery source. The BigQuery project location where the training data is to be written to. In the given project a new dataset is created with name `dataset___` where timestamp is in YYYY_MM_DDThh_mm_ss_sssZ format. All training input data is written into that dataset. In the dataset three tables are created, `training`, `validation` and `test`. * AIP_DATA_FORMAT = \"bigquery\". * AIP_TRAINING_DATA_URI = \"bigquery_destination.dataset___.training\" * AIP_VALIDATION_DATA_URI = \"bigquery_destination.dataset___.validation\" * AIP_TEST_DATA_URI = \"bigquery_destination.dataset___.test\"" - }, - "datasetId": { - "description": "Required. The ID of the Dataset in the same Project and Location which data will be used to train the Model. The Dataset must use schema compatible with Model being trained, and what is compatible should be described in the used TrainingPipeline's training_task_definition. For tabular Datasets, all their data is exported to training, to pick and choose from.", - "type": "string" - }, - "filterSplit": { - "$ref": "GoogleCloudAiplatformV1FilterSplit", - "description": "Split based on the provided filters for each set." - }, - "fractionSplit": { - "$ref": "GoogleCloudAiplatformV1FractionSplit", - "description": "Split based on fractions defining the size of each set." - }, - "gcsDestination": { - "$ref": "GoogleCloudAiplatformV1GcsDestination", - "description": "The Cloud Storage location where the training data is to be written to. In the given directory a new directory is created with name: `dataset---` where timestamp is in YYYY-MM-DDThh:mm:ss.sssZ ISO-8601 format. All training input data is written into that directory. The Vertex AI environment variables representing Cloud Storage data URIs are represented in the Cloud Storage wildcard format to support sharded data. e.g.: \"gs://.../training-*.jsonl\" * AIP_DATA_FORMAT = \"jsonl\" for non-tabular data, \"csv\" for tabular data * AIP_TRAINING_DATA_URI = \"gcs_destination/dataset---/training-*.${AIP_DATA_FORMAT}\" * AIP_VALIDATION_DATA_URI = \"gcs_destination/dataset---/validation-*.${AIP_DATA_FORMAT}\" * AIP_TEST_DATA_URI = \"gcs_destination/dataset---/test-*.${AIP_DATA_FORMAT}\"" - }, - "persistMlUseAssignment": { - "description": "Whether to persist the ML use assignment to data item system labels.", - "type": "boolean" - }, - "predefinedSplit": { - "$ref": "GoogleCloudAiplatformV1PredefinedSplit", - "description": "Supported only for tabular Datasets. Split based on a predefined key." + "compositeKey": { + "$ref": "GoogleCloudAiplatformV1FeatureViewDataKeyCompositeKey", + "description": "The actual Entity ID will be composed from this struct. This should match with the way ID is defined in the FeatureView spec." }, - "savedQueryId": { - "description": "Only applicable to Datasets that have SavedQueries. The ID of a SavedQuery (annotation set) under the Dataset specified by dataset_id used for filtering Annotations for training. Only Annotations that are associated with this SavedQuery are used in respectively training. When used in conjunction with annotations_filter, the Annotations used for training are filtered by both saved_query_id and annotations_filter. Only one of saved_query_id and annotation_schema_uri should be specified as both of them represent the same thing: problem type.", + "key": { + "description": "String key to use for lookup.", "type": "string" - }, - "stratifiedSplit": { - "$ref": "GoogleCloudAiplatformV1StratifiedSplit", - "description": "Supported only for tabular Datasets. Split based on the distribution of the specified column." - }, - "timestampSplit": { - "$ref": "GoogleCloudAiplatformV1TimestampSplit", - "description": "Supported only for tabular Datasets. Split based on the timestamp of the input data pieces." } }, "type": "object" }, - "GoogleCloudAiplatformV1Int64Array": { - "description": "A list of int64 values.", - "id": "GoogleCloudAiplatformV1Int64Array", + "GoogleCloudAiplatformV1FeatureViewDataKeyCompositeKey": { + "description": "ID that is comprised from several parts (columns).", + "id": "GoogleCloudAiplatformV1FeatureViewDataKeyCompositeKey", "properties": { - "values": { - "description": "A list of int64 values.", + "parts": { + "description": "Parts to construct Entity ID. Should match with the same ID columns as defined in FeatureView in the same order.", "items": { - "format": "int64", "type": "string" }, "type": "array" @@ -20256,1087 +21302,1466 @@ }, "type": "object" }, - "GoogleCloudAiplatformV1IntegratedGradientsAttribution": { - "description": "An attribution method that computes the Aumann-Shapley value taking advantage of the model's fully differentiable structure. Refer to this paper for more details: https://arxiv.org/abs/1703.01365", - "id": "GoogleCloudAiplatformV1IntegratedGradientsAttribution", + "GoogleCloudAiplatformV1FeatureViewFeatureRegistrySource": { + "description": "A Feature Registry source for features that need to be synced to Online Store.", + "id": "GoogleCloudAiplatformV1FeatureViewFeatureRegistrySource", "properties": { - "blurBaselineConfig": { - "$ref": "GoogleCloudAiplatformV1BlurBaselineConfig", - "description": "Config for IG with blur baseline. When enabled, a linear path from the maximally blurred image to the input image is created. Using a blurred baseline instead of zero (black image) is motivated by the BlurIG approach explained here: https://arxiv.org/abs/2004.03383" - }, - "smoothGradConfig": { - "$ref": "GoogleCloudAiplatformV1SmoothGradConfig", - "description": "Config for SmoothGrad approximation of gradients. When enabled, the gradients are approximated by averaging the gradients from noisy samples in the vicinity of the inputs. Adding noise can help improve the computed gradients. Refer to this paper for more details: https://arxiv.org/pdf/1706.03825.pdf" + "featureGroups": { + "description": "Required. List of features that need to be synced to Online Store.", + "items": { + "$ref": "GoogleCloudAiplatformV1FeatureViewFeatureRegistrySourceFeatureGroup" + }, + "type": "array" }, - "stepCount": { - "description": "Required. The number of steps for approximating the path integral. A good value to start is 50 and gradually increase until the sum to diff property is within the desired error range. Valid range of its value is [1, 100], inclusively.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1LargeModelReference": { - "description": "Contains information about the Large Model.", - "id": "GoogleCloudAiplatformV1LargeModelReference", - "properties": { - "name": { - "description": "Required. The unique name of the large Foundation or pre-built model. Like \"chat-bison\", \"text-bison\". Or model name with version ID, like \"chat-bison@001\", \"text-bison@005\", etc.", + "projectNumber": { + "description": "Optional. The project number of the parent project of the Feature Groups.", + "format": "int64", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1LineageSubgraph": { - "description": "A subgraph of the overall lineage graph. Event edges connect Artifact and Execution nodes.", - "id": "GoogleCloudAiplatformV1LineageSubgraph", + "GoogleCloudAiplatformV1FeatureViewFeatureRegistrySourceFeatureGroup": { + "description": "Features belonging to a single feature group that will be synced to Online Store.", + "id": "GoogleCloudAiplatformV1FeatureViewFeatureRegistrySourceFeatureGroup", "properties": { - "artifacts": { - "description": "The Artifact nodes in the subgraph.", - "items": { - "$ref": "GoogleCloudAiplatformV1Artifact" - }, - "type": "array" - }, - "events": { - "description": "The Event edges between Artifacts and Executions in the subgraph.", - "items": { - "$ref": "GoogleCloudAiplatformV1Event" - }, - "type": "array" + "featureGroupId": { + "description": "Required. Identifier of the feature group.", + "type": "string" }, - "executions": { - "description": "The Execution nodes in the subgraph.", + "featureIds": { + "description": "Required. Identifiers of features under the feature group.", "items": { - "$ref": "GoogleCloudAiplatformV1Execution" + "type": "string" }, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListAnnotationsResponse": { - "description": "Response message for DatasetService.ListAnnotations.", - "id": "GoogleCloudAiplatformV1ListAnnotationsResponse", + "GoogleCloudAiplatformV1FeatureViewSync": { + "description": "FeatureViewSync is a representation of sync operation which copies data from data source to Feature View in Online Store.", + "id": "GoogleCloudAiplatformV1FeatureViewSync", "properties": { - "annotations": { - "description": "A list of Annotations that matches the specified filter in the request.", - "items": { - "$ref": "GoogleCloudAiplatformV1Annotation" - }, - "type": "array" + "createTime": { + "description": "Output only. Time when this FeatureViewSync is created. Creation of a FeatureViewSync means that the job is pending / waiting for sufficient resources but may not have started the actual data transfer yet.", + "format": "google-datetime", + "readOnly": true, + "type": "string" }, - "nextPageToken": { - "description": "The standard List next-page token.", + "finalStatus": { + "$ref": "GoogleRpcStatus", + "description": "Output only. Final status of the FeatureViewSync.", + "readOnly": true + }, + "name": { + "description": "Identifier. Name of the FeatureViewSync. Format: `projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}/featureViewSyncs/{feature_view_sync}`", "type": "string" + }, + "runTime": { + "$ref": "GoogleTypeInterval", + "description": "Output only. Time when this FeatureViewSync is finished.", + "readOnly": true + }, + "syncSummary": { + "$ref": "GoogleCloudAiplatformV1FeatureViewSyncSyncSummary", + "description": "Output only. Summary of the sync job.", + "readOnly": true } }, "type": "object" }, - "GoogleCloudAiplatformV1ListArtifactsResponse": { - "description": "Response message for MetadataService.ListArtifacts.", - "id": "GoogleCloudAiplatformV1ListArtifactsResponse", + "GoogleCloudAiplatformV1FeatureViewSyncConfig": { + "description": "Configuration for Sync. Only one option is set.", + "id": "GoogleCloudAiplatformV1FeatureViewSyncConfig", "properties": { - "artifacts": { - "description": "The Artifacts retrieved from the MetadataStore.", - "items": { - "$ref": "GoogleCloudAiplatformV1Artifact" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token, which can be sent as ListArtifactsRequest.page_token to retrieve the next page. If this field is not populated, there are no subsequent pages.", + "cron": { + "description": "Cron schedule (https://en.wikipedia.org/wiki/Cron) to launch scheduled runs. To explicitly set a timezone to the cron tab, apply a prefix in the cron tab: \"CRON_TZ=${IANA_TIME_ZONE}\" or \"TZ=${IANA_TIME_ZONE}\". The ${IANA_TIME_ZONE} may only be a valid string from IANA time zone database. For example, \"CRON_TZ=America/New_York 1 * * * *\", or \"TZ=America/New_York 1 * * * *\".", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListBatchPredictionJobsResponse": { - "description": "Response message for JobService.ListBatchPredictionJobs", - "id": "GoogleCloudAiplatformV1ListBatchPredictionJobsResponse", + "GoogleCloudAiplatformV1FeatureViewSyncSyncSummary": { + "description": "Summary from the Sync job. For continuous syncs, the summary is updated periodically. For batch syncs, it gets updated on completion of the sync.", + "id": "GoogleCloudAiplatformV1FeatureViewSyncSyncSummary", "properties": { - "batchPredictionJobs": { - "description": "List of BatchPredictionJobs in the requested page.", - "items": { - "$ref": "GoogleCloudAiplatformV1BatchPredictionJob" - }, - "type": "array" + "rowSynced": { + "description": "Output only. Total number of rows synced.", + "format": "int64", + "readOnly": true, + "type": "string" }, - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass to ListBatchPredictionJobsRequest.page_token to obtain that page.", + "totalSlot": { + "description": "Output only. BigQuery slot milliseconds consumed for the sync job.", + "format": "int64", + "readOnly": true, "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListContextsResponse": { - "description": "Response message for MetadataService.ListContexts.", - "id": "GoogleCloudAiplatformV1ListContextsResponse", + "GoogleCloudAiplatformV1Featurestore": { + "description": "Vertex AI Feature Store provides a centralized repository for organizing, storing, and serving ML features. The Featurestore is a top-level container for your features and their values.", + "id": "GoogleCloudAiplatformV1Featurestore", "properties": { - "contexts": { - "description": "The Contexts retrieved from the MetadataStore.", - "items": { - "$ref": "GoogleCloudAiplatformV1Context" + "createTime": { + "description": "Output only. Timestamp when this Featurestore was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "encryptionSpec": { + "$ref": "GoogleCloudAiplatformV1EncryptionSpec", + "description": "Optional. Customer-managed encryption key spec for data storage. If set, both of the online and offline data storage will be secured by this key." + }, + "etag": { + "description": "Optional. Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" }, - "type": "array" + "description": "Optional. The labels with user-defined metadata to organize your Featurestore. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information on and examples of labels. No more than 64 user labels can be associated with one Featurestore(System labels are excluded).\" System reserved label keys are prefixed with \"aiplatform.googleapis.com/\" and are immutable.", + "type": "object" }, - "nextPageToken": { - "description": "A token, which can be sent as ListContextsRequest.page_token to retrieve the next page. If this field is not populated, there are no subsequent pages.", + "name": { + "description": "Output only. Name of the Featurestore. Format: `projects/{project}/locations/{location}/featurestores/{featurestore}`", + "readOnly": true, + "type": "string" + }, + "onlineServingConfig": { + "$ref": "GoogleCloudAiplatformV1FeaturestoreOnlineServingConfig", + "description": "Optional. Config for online storage resources. The field should not co-exist with the field of `OnlineStoreReplicationConfig`. If both of it and OnlineStoreReplicationConfig are unset, the feature store will not have an online store and cannot be used for online serving." + }, + "onlineStorageTtlDays": { + "description": "Optional. TTL in days for feature values that will be stored in online serving storage. The Feature Store online storage periodically removes obsolete feature values older than `online_storage_ttl_days` since the feature generation time. Note that `online_storage_ttl_days` should be less than or equal to `offline_storage_ttl_days` for each EntityType under a featurestore. If not set, default to 4000 days", + "format": "int32", + "type": "integer" + }, + "state": { + "description": "Output only. State of the featurestore.", + "enum": [ + "STATE_UNSPECIFIED", + "STABLE", + "UPDATING" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "State when the featurestore configuration is not being updated and the fields reflect the current configuration of the featurestore. The featurestore is usable in this state.", + "The state of the featurestore configuration when it is being updated. During an update, the fields reflect either the original configuration or the updated configuration of the featurestore. For example, `online_serving_config.fixed_node_count` can take minutes to update. While the update is in progress, the featurestore is in the UPDATING state, and the value of `fixed_node_count` can be the original value or the updated value, depending on the progress of the operation. Until the update completes, the actual number of nodes can still be the original value of `fixed_node_count`. The featurestore is still usable in this state." + ], + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. Timestamp when this Featurestore was last updated.", + "format": "google-datetime", + "readOnly": true, "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListCustomJobsResponse": { - "description": "Response message for JobService.ListCustomJobs", - "id": "GoogleCloudAiplatformV1ListCustomJobsResponse", + "GoogleCloudAiplatformV1FeaturestoreMonitoringConfig": { + "description": "Configuration of how features in Featurestore are monitored.", + "id": "GoogleCloudAiplatformV1FeaturestoreMonitoringConfig", "properties": { - "customJobs": { - "description": "List of CustomJobs in the requested page.", - "items": { - "$ref": "GoogleCloudAiplatformV1CustomJob" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass to ListCustomJobsRequest.page_token to obtain that page.", - "type": "string" + "categoricalThresholdConfig": { + "$ref": "GoogleCloudAiplatformV1FeaturestoreMonitoringConfigThresholdConfig", + "description": "Threshold for categorical features of anomaly detection. This is shared by all types of Featurestore Monitoring for categorical features (i.e. Features with type (Feature.ValueType) BOOL or STRING)." + }, + "importFeaturesAnalysis": { + "$ref": "GoogleCloudAiplatformV1FeaturestoreMonitoringConfigImportFeaturesAnalysis", + "description": "The config for ImportFeatures Analysis Based Feature Monitoring." + }, + "numericalThresholdConfig": { + "$ref": "GoogleCloudAiplatformV1FeaturestoreMonitoringConfigThresholdConfig", + "description": "Threshold for numerical features of anomaly detection. This is shared by all objectives of Featurestore Monitoring for numerical features (i.e. Features with type (Feature.ValueType) DOUBLE or INT64)." + }, + "snapshotAnalysis": { + "$ref": "GoogleCloudAiplatformV1FeaturestoreMonitoringConfigSnapshotAnalysis", + "description": "The config for Snapshot Analysis Based Feature Monitoring." } }, "type": "object" }, - "GoogleCloudAiplatformV1ListDataItemsResponse": { - "description": "Response message for DatasetService.ListDataItems.", - "id": "GoogleCloudAiplatformV1ListDataItemsResponse", + "GoogleCloudAiplatformV1FeaturestoreMonitoringConfigImportFeaturesAnalysis": { + "description": "Configuration of the Featurestore's ImportFeature Analysis Based Monitoring. This type of analysis generates statistics for values of each Feature imported by every ImportFeatureValues operation.", + "id": "GoogleCloudAiplatformV1FeaturestoreMonitoringConfigImportFeaturesAnalysis", "properties": { - "dataItems": { - "description": "A list of DataItems that matches the specified filter in the request.", - "items": { - "$ref": "GoogleCloudAiplatformV1DataItem" - }, - "type": "array" + "anomalyDetectionBaseline": { + "description": "The baseline used to do anomaly detection for the statistics generated by import features analysis.", + "enum": [ + "BASELINE_UNSPECIFIED", + "LATEST_STATS", + "MOST_RECENT_SNAPSHOT_STATS", + "PREVIOUS_IMPORT_FEATURES_STATS" + ], + "enumDescriptions": [ + "Should not be used.", + "Choose the later one statistics generated by either most recent snapshot analysis or previous import features analysis. If non of them exists, skip anomaly detection and only generate a statistics.", + "Use the statistics generated by the most recent snapshot analysis if exists.", + "Use the statistics generated by the previous import features analysis if exists." + ], + "type": "string" }, - "nextPageToken": { - "description": "The standard List next-page token.", + "state": { + "description": "Whether to enable / disable / inherite default hebavior for import features analysis.", + "enum": [ + "STATE_UNSPECIFIED", + "DEFAULT", + "ENABLED", + "DISABLED" + ], + "enumDescriptions": [ + "Should not be used.", + "The default behavior of whether to enable the monitoring. EntityType-level config: disabled. Feature-level config: inherited from the configuration of EntityType this Feature belongs to.", + "Explicitly enables import features analysis. EntityType-level config: by default enables import features analysis for all Features under it. Feature-level config: enables import features analysis regardless of the EntityType-level config.", + "Explicitly disables import features analysis. EntityType-level config: by default disables import features analysis for all Features under it. Feature-level config: disables import features analysis regardless of the EntityType-level config." + ], "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListDataLabelingJobsResponse": { - "description": "Response message for JobService.ListDataLabelingJobs.", - "id": "GoogleCloudAiplatformV1ListDataLabelingJobsResponse", + "GoogleCloudAiplatformV1FeaturestoreMonitoringConfigSnapshotAnalysis": { + "description": "Configuration of the Featurestore's Snapshot Analysis Based Monitoring. This type of analysis generates statistics for each Feature based on a snapshot of the latest feature value of each entities every monitoring_interval.", + "id": "GoogleCloudAiplatformV1FeaturestoreMonitoringConfigSnapshotAnalysis", "properties": { - "dataLabelingJobs": { - "description": "A list of DataLabelingJobs that matches the specified filter in the request.", - "items": { - "$ref": "GoogleCloudAiplatformV1DataLabelingJob" - }, - "type": "array" + "disabled": { + "description": "The monitoring schedule for snapshot analysis. For EntityType-level config: unset / disabled = true indicates disabled by default for Features under it; otherwise by default enable snapshot analysis monitoring with monitoring_interval for Features under it. Feature-level config: disabled = true indicates disabled regardless of the EntityType-level config; unset monitoring_interval indicates going with EntityType-level config; otherwise run snapshot analysis monitoring with monitoring_interval regardless of the EntityType-level config. Explicitly Disable the snapshot analysis based monitoring.", + "type": "boolean" }, - "nextPageToken": { - "description": "The standard List next-page token.", - "type": "string" + "monitoringIntervalDays": { + "description": "Configuration of the snapshot analysis based monitoring pipeline running interval. The value indicates number of days.", + "format": "int32", + "type": "integer" + }, + "stalenessDays": { + "description": "Customized export features time window for snapshot analysis. Unit is one day. Default value is 3 weeks. Minimum value is 1 day. Maximum value is 4000 days.", + "format": "int32", + "type": "integer" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListDatasetVersionsResponse": { - "description": "Response message for DatasetService.ListDatasetVersions.", - "id": "GoogleCloudAiplatformV1ListDatasetVersionsResponse", + "GoogleCloudAiplatformV1FeaturestoreMonitoringConfigThresholdConfig": { + "description": "The config for Featurestore Monitoring threshold.", + "id": "GoogleCloudAiplatformV1FeaturestoreMonitoringConfigThresholdConfig", "properties": { - "datasetVersions": { - "description": "A list of DatasetVersions that matches the specified filter in the request.", - "items": { - "$ref": "GoogleCloudAiplatformV1DatasetVersion" - }, - "type": "array" - }, - "nextPageToken": { - "description": "The standard List next-page token.", - "type": "string" + "value": { + "description": "Specify a threshold value that can trigger the alert. 1. For categorical feature, the distribution distance is calculated by L-inifinity norm. 2. For numerical feature, the distribution distance is calculated by Jensen–Shannon divergence. Each feature must have a non-zero threshold if they need to be monitored. Otherwise no alert will be triggered for that feature.", + "format": "double", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListDatasetsResponse": { - "description": "Response message for DatasetService.ListDatasets.", - "id": "GoogleCloudAiplatformV1ListDatasetsResponse", + "GoogleCloudAiplatformV1FeaturestoreOnlineServingConfig": { + "description": "OnlineServingConfig specifies the details for provisioning online serving resources.", + "id": "GoogleCloudAiplatformV1FeaturestoreOnlineServingConfig", "properties": { - "datasets": { - "description": "A list of Datasets that matches the specified filter in the request.", - "items": { - "$ref": "GoogleCloudAiplatformV1Dataset" - }, - "type": "array" + "fixedNodeCount": { + "description": "The number of nodes for the online store. The number of nodes doesn't scale automatically, but you can manually update the number of nodes. If set to 0, the featurestore will not have an online store and cannot be used for online serving.", + "format": "int32", + "type": "integer" }, - "nextPageToken": { - "description": "The standard List next-page token.", - "type": "string" + "scaling": { + "$ref": "GoogleCloudAiplatformV1FeaturestoreOnlineServingConfigScaling", + "description": "Online serving scaling configuration. Only one of `fixed_node_count` and `scaling` can be set. Setting one will reset the other." } }, "type": "object" }, - "GoogleCloudAiplatformV1ListDeploymentResourcePoolsResponse": { - "description": "Response message for ListDeploymentResourcePools method.", - "id": "GoogleCloudAiplatformV1ListDeploymentResourcePoolsResponse", + "GoogleCloudAiplatformV1FeaturestoreOnlineServingConfigScaling": { + "description": "Online serving scaling configuration. If min_node_count and max_node_count are set to the same value, the cluster will be configured with the fixed number of node (no auto-scaling).", + "id": "GoogleCloudAiplatformV1FeaturestoreOnlineServingConfigScaling", "properties": { - "deploymentResourcePools": { - "description": "The DeploymentResourcePools from the specified location.", - "items": { - "$ref": "GoogleCloudAiplatformV1DeploymentResourcePool" - }, - "type": "array" + "cpuUtilizationTarget": { + "description": "Optional. The cpu utilization that the Autoscaler should be trying to achieve. This number is on a scale from 0 (no utilization) to 100 (total utilization), and is limited between 10 and 80. When a cluster's CPU utilization exceeds the target that you have set, Bigtable immediately adds nodes to the cluster. When CPU utilization is substantially lower than the target, Bigtable removes nodes. If not set or set to 0, default to 50.", + "format": "int32", + "type": "integer" }, - "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" + "maxNodeCount": { + "description": "The maximum number of nodes to scale up to. Must be greater than min_node_count, and less than or equal to 10 times of 'min_node_count'.", + "format": "int32", + "type": "integer" + }, + "minNodeCount": { + "description": "Required. The minimum number of nodes to scale down to. Must be greater than or equal to 1.", + "format": "int32", + "type": "integer" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListEndpointsResponse": { - "description": "Response message for EndpointService.ListEndpoints.", - "id": "GoogleCloudAiplatformV1ListEndpointsResponse", + "GoogleCloudAiplatformV1FetchFeatureValuesRequest": { + "description": "Request message for FeatureOnlineStoreService.FetchFeatureValues. All the features under the requested feature view will be returned.", + "id": "GoogleCloudAiplatformV1FetchFeatureValuesRequest", "properties": { - "endpoints": { - "description": "List of Endpoints in the requested page.", - "items": { - "$ref": "GoogleCloudAiplatformV1Endpoint" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass to ListEndpointsRequest.page_token to obtain that page.", + "dataFormat": { + "description": "Optional. Response data format. If not set, FeatureViewDataFormat.KEY_VALUE will be used.", + "enum": [ + "FEATURE_VIEW_DATA_FORMAT_UNSPECIFIED", + "KEY_VALUE", + "PROTO_STRUCT" + ], + "enumDescriptions": [ + "Not set. Will be treated as the KeyValue format.", + "Return response data in key-value format.", + "Return response data in proto Struct format." + ], "type": "string" + }, + "dataKey": { + "$ref": "GoogleCloudAiplatformV1FeatureViewDataKey", + "description": "Optional. The request key to fetch feature values for." } }, "type": "object" }, - "GoogleCloudAiplatformV1ListEntityTypesResponse": { - "description": "Response message for FeaturestoreService.ListEntityTypes.", - "id": "GoogleCloudAiplatformV1ListEntityTypesResponse", + "GoogleCloudAiplatformV1FetchFeatureValuesResponse": { + "description": "Response message for FeatureOnlineStoreService.FetchFeatureValues", + "id": "GoogleCloudAiplatformV1FetchFeatureValuesResponse", "properties": { - "entityTypes": { - "description": "The EntityTypes matching the request.", - "items": { - "$ref": "GoogleCloudAiplatformV1EntityType" - }, - "type": "array" + "keyValues": { + "$ref": "GoogleCloudAiplatformV1FetchFeatureValuesResponseFeatureNameValuePairList", + "description": "Feature values in KeyValue format." }, - "nextPageToken": { - "description": "A token, which can be sent as ListEntityTypesRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", - "type": "string" + "protoStruct": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Feature values in proto Struct format.", + "type": "object" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListExecutionsResponse": { - "description": "Response message for MetadataService.ListExecutions.", - "id": "GoogleCloudAiplatformV1ListExecutionsResponse", + "GoogleCloudAiplatformV1FetchFeatureValuesResponseFeatureNameValuePairList": { + "description": "Response structure in the format of key (feature name) and (feature) value pair.", + "id": "GoogleCloudAiplatformV1FetchFeatureValuesResponseFeatureNameValuePairList", "properties": { - "executions": { - "description": "The Executions retrieved from the MetadataStore.", + "features": { + "description": "List of feature names and values.", "items": { - "$ref": "GoogleCloudAiplatformV1Execution" + "$ref": "GoogleCloudAiplatformV1FetchFeatureValuesResponseFeatureNameValuePairListFeatureNameValuePair" }, "type": "array" - }, - "nextPageToken": { - "description": "A token, which can be sent as ListExecutionsRequest.page_token to retrieve the next page. If this field is not populated, there are no subsequent pages.", - "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListFeatureGroupsResponse": { - "description": "Response message for FeatureRegistryService.ListFeatureGroups.", - "id": "GoogleCloudAiplatformV1ListFeatureGroupsResponse", + "GoogleCloudAiplatformV1FetchFeatureValuesResponseFeatureNameValuePairListFeatureNameValuePair": { + "description": "Feature name & value pair.", + "id": "GoogleCloudAiplatformV1FetchFeatureValuesResponseFeatureNameValuePairListFeatureNameValuePair", "properties": { - "featureGroups": { - "description": "The FeatureGroups matching the request.", - "items": { - "$ref": "GoogleCloudAiplatformV1FeatureGroup" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token, which can be sent as ListFeatureGroupsRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "name": { + "description": "Feature short name.", "type": "string" + }, + "value": { + "$ref": "GoogleCloudAiplatformV1FeatureValue", + "description": "Feature value." } }, "type": "object" }, - "GoogleCloudAiplatformV1ListFeatureOnlineStoresResponse": { - "description": "Response message for FeatureOnlineStoreAdminService.ListFeatureOnlineStores.", - "id": "GoogleCloudAiplatformV1ListFeatureOnlineStoresResponse", + "GoogleCloudAiplatformV1FileData": { + "description": "URI based data.", + "id": "GoogleCloudAiplatformV1FileData", "properties": { - "featureOnlineStores": { - "description": "The FeatureOnlineStores matching the request.", - "items": { - "$ref": "GoogleCloudAiplatformV1FeatureOnlineStore" - }, - "type": "array" + "fileUri": { + "description": "Required. URI.", + "type": "string" }, - "nextPageToken": { - "description": "A token, which can be sent as ListFeatureOnlineStoresRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "mimeType": { + "description": "Required. The IANA standard MIME type of the source data.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListFeatureViewSyncsResponse": { - "description": "Response message for FeatureOnlineStoreAdminService.ListFeatureViewSyncs.", - "id": "GoogleCloudAiplatformV1ListFeatureViewSyncsResponse", + "GoogleCloudAiplatformV1FilterSplit": { + "description": "Assigns input data to training, validation, and test sets based on the given filters, data pieces not matched by any filter are ignored. Currently only supported for Datasets containing DataItems. If any of the filters in this message are to match nothing, then they can be set as '-' (the minus sign). Supported only for unstructured Datasets. ", + "id": "GoogleCloudAiplatformV1FilterSplit", "properties": { - "featureViewSyncs": { - "description": "The FeatureViewSyncs matching the request.", - "items": { - "$ref": "GoogleCloudAiplatformV1FeatureViewSync" - }, - "type": "array" + "testFilter": { + "description": "Required. A filter on DataItems of the Dataset. DataItems that match this filter are used to test the Model. A filter with same syntax as the one used in DatasetService.ListDataItems may be used. If a single DataItem is matched by more than one of the FilterSplit filters, then it is assigned to the first set that applies to it in the training, validation, test order.", + "type": "string" }, - "nextPageToken": { - "description": "A token, which can be sent as ListFeatureViewSyncsRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "trainingFilter": { + "description": "Required. A filter on DataItems of the Dataset. DataItems that match this filter are used to train the Model. A filter with same syntax as the one used in DatasetService.ListDataItems may be used. If a single DataItem is matched by more than one of the FilterSplit filters, then it is assigned to the first set that applies to it in the training, validation, test order.", + "type": "string" + }, + "validationFilter": { + "description": "Required. A filter on DataItems of the Dataset. DataItems that match this filter are used to validate the Model. A filter with same syntax as the one used in DatasetService.ListDataItems may be used. If a single DataItem is matched by more than one of the FilterSplit filters, then it is assigned to the first set that applies to it in the training, validation, test order.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListFeatureViewsResponse": { - "description": "Response message for FeatureOnlineStoreAdminService.ListFeatureViews.", - "id": "GoogleCloudAiplatformV1ListFeatureViewsResponse", + "GoogleCloudAiplatformV1FindNeighborsRequest": { + "description": "The request message for MatchService.FindNeighbors.", + "id": "GoogleCloudAiplatformV1FindNeighborsRequest", "properties": { - "featureViews": { - "description": "The FeatureViews matching the request.", + "deployedIndexId": { + "description": "The ID of the DeployedIndex that will serve the request. This request is sent to a specific IndexEndpoint, as per the IndexEndpoint.network. That IndexEndpoint also has IndexEndpoint.deployed_indexes, and each such index has a DeployedIndex.id field. The value of the field below must equal one of the DeployedIndex.id fields of the IndexEndpoint that is being called for this request.", + "type": "string" + }, + "queries": { + "description": "The list of queries.", "items": { - "$ref": "GoogleCloudAiplatformV1FeatureView" + "$ref": "GoogleCloudAiplatformV1FindNeighborsRequestQuery" }, "type": "array" }, - "nextPageToken": { - "description": "A token, which can be sent as ListFeatureViewsRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", - "type": "string" + "returnFullDatapoint": { + "description": "If set to true, the full datapoints (including all vector values and restricts) of the nearest neighbors are returned. Note that returning full datapoint will significantly increase the latency and cost of the query.", + "type": "boolean" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListFeaturesResponse": { - "description": "Response message for FeaturestoreService.ListFeatures. Response message for FeatureRegistryService.ListFeatures.", - "id": "GoogleCloudAiplatformV1ListFeaturesResponse", + "GoogleCloudAiplatformV1FindNeighborsRequestQuery": { + "description": "A query to find a number of the nearest neighbors (most similar vectors) of a vector.", + "id": "GoogleCloudAiplatformV1FindNeighborsRequestQuery", "properties": { - "features": { - "description": "The Features matching the request.", - "items": { - "$ref": "GoogleCloudAiplatformV1Feature" - }, - "type": "array" + "approximateNeighborCount": { + "description": "The number of neighbors to find via approximate search before exact reordering is performed. If not set, the default value from scam config is used; if set, this value must be > 0.", + "format": "int32", + "type": "integer" }, - "nextPageToken": { - "description": "A token, which can be sent as ListFeaturesRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", - "type": "string" + "datapoint": { + "$ref": "GoogleCloudAiplatformV1IndexDatapoint", + "description": "Required. The datapoint/vector whose nearest neighbors should be searched for." + }, + "fractionLeafNodesToSearchOverride": { + "description": "The fraction of the number of leaves to search, set at query time allows user to tune search performance. This value increase result in both search accuracy and latency increase. The value should be between 0.0 and 1.0. If not set or set to 0.0, query uses the default value specified in NearestNeighborSearchConfig.TreeAHConfig.fraction_leaf_nodes_to_search.", + "format": "double", + "type": "number" + }, + "neighborCount": { + "description": "The number of nearest neighbors to be retrieved from database for each query. If not set, will use the default from the service configuration (https://cloud.google.com/vertex-ai/docs/matching-engine/configuring-indexes#nearest-neighbor-search-config).", + "format": "int32", + "type": "integer" + }, + "perCrowdingAttributeNeighborCount": { + "description": "Crowding is a constraint on a neighbor list produced by nearest neighbor search requiring that no more than some value k' of the k neighbors returned have the same value of crowding_attribute. It's used for improving result diversity. This field is the maximum number of matches with the same crowding tag.", + "format": "int32", + "type": "integer" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListFeaturestoresResponse": { - "description": "Response message for FeaturestoreService.ListFeaturestores.", - "id": "GoogleCloudAiplatformV1ListFeaturestoresResponse", + "GoogleCloudAiplatformV1FindNeighborsResponse": { + "description": "The response message for MatchService.FindNeighbors.", + "id": "GoogleCloudAiplatformV1FindNeighborsResponse", "properties": { - "featurestores": { - "description": "The Featurestores matching the request.", + "nearestNeighbors": { + "description": "The nearest neighbors of the query datapoints.", "items": { - "$ref": "GoogleCloudAiplatformV1Featurestore" + "$ref": "GoogleCloudAiplatformV1FindNeighborsResponseNearestNeighbors" }, "type": "array" - }, - "nextPageToken": { - "description": "A token, which can be sent as ListFeaturestoresRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", - "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListHyperparameterTuningJobsResponse": { - "description": "Response message for JobService.ListHyperparameterTuningJobs", - "id": "GoogleCloudAiplatformV1ListHyperparameterTuningJobsResponse", + "GoogleCloudAiplatformV1FindNeighborsResponseNearestNeighbors": { + "description": "Nearest neighbors for one query.", + "id": "GoogleCloudAiplatformV1FindNeighborsResponseNearestNeighbors", "properties": { - "hyperparameterTuningJobs": { - "description": "List of HyperparameterTuningJobs in the requested page. HyperparameterTuningJob.trials of the jobs will be not be returned.", + "id": { + "description": "The ID of the query datapoint.", + "type": "string" + }, + "neighbors": { + "description": "All its neighbors.", "items": { - "$ref": "GoogleCloudAiplatformV1HyperparameterTuningJob" + "$ref": "GoogleCloudAiplatformV1FindNeighborsResponseNeighbor" }, "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass to ListHyperparameterTuningJobsRequest.page_token to obtain that page.", - "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListIndexEndpointsResponse": { - "description": "Response message for IndexEndpointService.ListIndexEndpoints.", - "id": "GoogleCloudAiplatformV1ListIndexEndpointsResponse", + "GoogleCloudAiplatformV1FindNeighborsResponseNeighbor": { + "description": "A neighbor of the query vector.", + "id": "GoogleCloudAiplatformV1FindNeighborsResponseNeighbor", "properties": { - "indexEndpoints": { - "description": "List of IndexEndpoints in the requested page.", - "items": { - "$ref": "GoogleCloudAiplatformV1IndexEndpoint" - }, - "type": "array" + "datapoint": { + "$ref": "GoogleCloudAiplatformV1IndexDatapoint", + "description": "The datapoint of the neighbor. Note that full datapoints are returned only when \"return_full_datapoint\" is set to true. Otherwise, only the \"datapoint_id\" and \"crowding_tag\" fields are populated." }, - "nextPageToken": { - "description": "A token to retrieve next page of results. Pass to ListIndexEndpointsRequest.page_token to obtain that page.", - "type": "string" + "distance": { + "description": "The distance between the neighbor and the query vector.", + "format": "double", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListIndexesResponse": { - "description": "Response message for IndexService.ListIndexes.", - "id": "GoogleCloudAiplatformV1ListIndexesResponse", + "GoogleCloudAiplatformV1FractionSplit": { + "description": "Assigns the input data to training, validation, and test sets as per the given fractions. Any of `training_fraction`, `validation_fraction` and `test_fraction` may optionally be provided, they must sum to up to 1. If the provided ones sum to less than 1, the remainder is assigned to sets as decided by Vertex AI. If none of the fractions are set, by default roughly 80% of data is used for training, 10% for validation, and 10% for test.", + "id": "GoogleCloudAiplatformV1FractionSplit", "properties": { - "indexes": { - "description": "List of indexes in the requested page.", - "items": { - "$ref": "GoogleCloudAiplatformV1Index" - }, - "type": "array" + "testFraction": { + "description": "The fraction of the input data that is to be used to evaluate the Model.", + "format": "double", + "type": "number" }, - "nextPageToken": { - "description": "A token to retrieve next page of results. Pass to ListIndexesRequest.page_token to obtain that page.", - "type": "string" + "trainingFraction": { + "description": "The fraction of the input data that is to be used to train the Model.", + "format": "double", + "type": "number" + }, + "validationFraction": { + "description": "The fraction of the input data that is to be used to validate the Model.", + "format": "double", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListMetadataSchemasResponse": { - "description": "Response message for MetadataService.ListMetadataSchemas.", - "id": "GoogleCloudAiplatformV1ListMetadataSchemasResponse", + "GoogleCloudAiplatformV1FunctionCall": { + "description": "A predicted [FunctionCall] returned from the model that contains a string representing the [FunctionDeclaration.name] and a structured JSON object containing the parameters and their values.", + "id": "GoogleCloudAiplatformV1FunctionCall", "properties": { - "metadataSchemas": { - "description": "The MetadataSchemas found for the MetadataStore.", - "items": { - "$ref": "GoogleCloudAiplatformV1MetadataSchema" + "args": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" }, - "type": "array" + "description": "Optional. Required. The function parameters and values in JSON object format. See [FunctionDeclaration.parameters] for parameter details.", + "type": "object" }, - "nextPageToken": { - "description": "A token, which can be sent as ListMetadataSchemasRequest.page_token to retrieve the next page. If this field is not populated, there are no subsequent pages.", + "name": { + "description": "Required. The name of the function to call. Matches [FunctionDeclaration.name].", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListMetadataStoresResponse": { - "description": "Response message for MetadataService.ListMetadataStores.", - "id": "GoogleCloudAiplatformV1ListMetadataStoresResponse", + "GoogleCloudAiplatformV1FunctionDeclaration": { + "description": "Structured representation of a function declaration as defined by the [OpenAPI 3.0 specification](https://spec.openapis.org/oas/v3.0.3). Included in this declaration are the function name and parameters. This FunctionDeclaration is a representation of a block of code that can be used as a `Tool` by the model and executed by the client.", + "id": "GoogleCloudAiplatformV1FunctionDeclaration", "properties": { - "metadataStores": { - "description": "The MetadataStores found for the Location.", - "items": { - "$ref": "GoogleCloudAiplatformV1MetadataStore" - }, - "type": "array" + "description": { + "description": "Optional. Description and purpose of the function. Model uses it to decide how and whether to call the function.", + "type": "string" }, - "nextPageToken": { - "description": "A token, which can be sent as ListMetadataStoresRequest.page_token to retrieve the next page. If this field is not populated, there are no subsequent pages.", + "name": { + "description": "Required. The name of the function to call. Must start with a letter or an underscore. Must be a-z, A-Z, 0-9, or contain underscores and dashes, with a maximum length of 64.", "type": "string" + }, + "parameters": { + "$ref": "GoogleCloudAiplatformV1Schema", + "description": "Optional. Describes the parameters to this function in JSON Schema Object format. Reflects the Open API 3.03 Parameter Object. string Key: the name of the parameter. Parameter names are case sensitive. Schema Value: the Schema defining the type used for the parameter. For function with no parameters, this can be left unset. Example with 1 required and 1 optional parameter: type: OBJECT properties: param1: type: STRING param2: type: INTEGER required: - param1" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListModelDeploymentMonitoringJobsResponse": { - "description": "Response message for JobService.ListModelDeploymentMonitoringJobs.", - "id": "GoogleCloudAiplatformV1ListModelDeploymentMonitoringJobsResponse", + "GoogleCloudAiplatformV1FunctionResponse": { + "description": "The result output from a [FunctionCall] that contains a string representing the [FunctionDeclaration.name] and a structured JSON object containing any output from the function is used as context to the model. This should contain the result of a [FunctionCall] made based on model prediction.", + "id": "GoogleCloudAiplatformV1FunctionResponse", "properties": { - "modelDeploymentMonitoringJobs": { - "description": "A list of ModelDeploymentMonitoringJobs that matches the specified filter in the request.", - "items": { - "$ref": "GoogleCloudAiplatformV1ModelDeploymentMonitoringJob" - }, - "type": "array" + "name": { + "description": "Required. The name of the function to call. Matches [FunctionDeclaration.name] and [FunctionCall.name].", + "type": "string" }, - "nextPageToken": { - "description": "The standard List next-page token.", + "response": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Required. The function response in JSON object format.", + "type": "object" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1GcsDestination": { + "description": "The Google Cloud Storage location where the output is to be written to.", + "id": "GoogleCloudAiplatformV1GcsDestination", + "properties": { + "outputUriPrefix": { + "description": "Required. Google Cloud Storage URI to output directory. If the uri doesn't end with '/', a '/' will be automatically appended. The directory is created if it doesn't exist.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListModelEvaluationSlicesResponse": { - "description": "Response message for ModelService.ListModelEvaluationSlices.", - "id": "GoogleCloudAiplatformV1ListModelEvaluationSlicesResponse", + "GoogleCloudAiplatformV1GcsSource": { + "description": "The Google Cloud Storage location for the input content.", + "id": "GoogleCloudAiplatformV1GcsSource", "properties": { - "modelEvaluationSlices": { - "description": "List of ModelEvaluations in the requested page.", + "uris": { + "description": "Required. Google Cloud Storage URI(-s) to the input file(s). May contain wildcards. For more information on wildcards, see https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames.", "items": { - "$ref": "GoogleCloudAiplatformV1ModelEvaluationSlice" + "type": "string" }, "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve next page of results. Pass to ListModelEvaluationSlicesRequest.page_token to obtain that page.", - "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListModelEvaluationsResponse": { - "description": "Response message for ModelService.ListModelEvaluations.", - "id": "GoogleCloudAiplatformV1ListModelEvaluationsResponse", + "GoogleCloudAiplatformV1GenerateContentRequest": { + "description": "Request message for [PredictionService.GenerateContent].", + "id": "GoogleCloudAiplatformV1GenerateContentRequest", "properties": { - "modelEvaluations": { - "description": "List of ModelEvaluations in the requested page.", + "contents": { + "description": "Required. The content of the current conversation with the model. For single-turn queries, this is a single instance. For multi-turn queries, this is a repeated field that contains conversation history + latest request.", "items": { - "$ref": "GoogleCloudAiplatformV1ModelEvaluation" + "$ref": "GoogleCloudAiplatformV1Content" }, "type": "array" }, - "nextPageToken": { - "description": "A token to retrieve next page of results. Pass to ListModelEvaluationsRequest.page_token to obtain that page.", - "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1ListModelVersionsResponse": { - "description": "Response message for ModelService.ListModelVersions", - "id": "GoogleCloudAiplatformV1ListModelVersionsResponse", - "properties": { - "models": { - "description": "List of Model versions in the requested page. In the returned Model name field, version ID instead of regvision tag will be included.", + "generationConfig": { + "$ref": "GoogleCloudAiplatformV1GenerationConfig", + "description": "Optional. Generation config." + }, + "safetySettings": { + "description": "Optional. Per request settings for blocking unsafe content. Enforced on GenerateContentResponse.candidates.", "items": { - "$ref": "GoogleCloudAiplatformV1Model" + "$ref": "GoogleCloudAiplatformV1SafetySetting" }, "type": "array" }, - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass to ListModelVersionsRequest.page_token to obtain that page.", - "type": "string" + "tools": { + "description": "Optional. A list of `Tools` the model may use to generate the next response. A `Tool` is a piece of code that enables the system to interact with external systems to perform an action, or set of actions, outside of knowledge and scope of the model.", + "items": { + "$ref": "GoogleCloudAiplatformV1Tool" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListModelsResponse": { - "description": "Response message for ModelService.ListModels", - "id": "GoogleCloudAiplatformV1ListModelsResponse", + "GoogleCloudAiplatformV1GenerateContentResponse": { + "description": "Response message for [PredictionService.GenerateContent].", + "id": "GoogleCloudAiplatformV1GenerateContentResponse", "properties": { - "models": { - "description": "List of Models in the requested page.", + "candidates": { + "description": "Output only. Generated candidates.", "items": { - "$ref": "GoogleCloudAiplatformV1Model" + "$ref": "GoogleCloudAiplatformV1Candidate" }, + "readOnly": true, "type": "array" }, - "nextPageToken": { - "description": "A token to retrieve next page of results. Pass to ListModelsRequest.page_token to obtain that page.", - "type": "string" + "promptFeedback": { + "$ref": "GoogleCloudAiplatformV1GenerateContentResponsePromptFeedback", + "description": "Output only. Content filter results for a prompt sent in the request. Note: Sent only in the first stream chunk. Only happens when no candidates were generated due to content violations.", + "readOnly": true + }, + "usageMetadata": { + "$ref": "GoogleCloudAiplatformV1GenerateContentResponseUsageMetadata", + "description": "Usage metadata about the response(s)." } }, "type": "object" }, - "GoogleCloudAiplatformV1ListNasJobsResponse": { - "description": "Response message for JobService.ListNasJobs", - "id": "GoogleCloudAiplatformV1ListNasJobsResponse", + "GoogleCloudAiplatformV1GenerateContentResponsePromptFeedback": { + "description": "Content filter results for a prompt sent in the request.", + "id": "GoogleCloudAiplatformV1GenerateContentResponsePromptFeedback", "properties": { - "nasJobs": { - "description": "List of NasJobs in the requested page. NasJob.nas_job_output of the jobs will not be returned.", + "blockReason": { + "description": "Output only. Blocked reason.", + "enum": [ + "BLOCKED_REASON_UNSPECIFIED", + "SAFETY", + "OTHER" + ], + "enumDescriptions": [ + "Unspecified blocked reason.", + "Candidates blocked due to safety.", + "Candidates blocked due to other reason." + ], + "readOnly": true, + "type": "string" + }, + "blockReasonMessage": { + "description": "Output only. A readable block reason message.", + "readOnly": true, + "type": "string" + }, + "safetyRatings": { + "description": "Output only. Safety ratings.", "items": { - "$ref": "GoogleCloudAiplatformV1NasJob" + "$ref": "GoogleCloudAiplatformV1SafetyRating" }, + "readOnly": true, "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass to ListNasJobsRequest.page_token to obtain that page.", - "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListNasTrialDetailsResponse": { - "description": "Response message for JobService.ListNasTrialDetails", - "id": "GoogleCloudAiplatformV1ListNasTrialDetailsResponse", + "GoogleCloudAiplatformV1GenerateContentResponseUsageMetadata": { + "description": "Usage metadata about response(s).", + "id": "GoogleCloudAiplatformV1GenerateContentResponseUsageMetadata", "properties": { - "nasTrialDetails": { - "description": "List of top NasTrials in the requested page.", - "items": { - "$ref": "GoogleCloudAiplatformV1NasTrialDetail" - }, - "type": "array" + "candidatesTokenCount": { + "description": "Number of tokens in the response(s).", + "format": "int32", + "type": "integer" }, - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass to ListNasTrialDetailsRequest.page_token to obtain that page.", - "type": "string" + "promptTokenCount": { + "description": "Number of tokens in the request.", + "format": "int32", + "type": "integer" + }, + "totalTokenCount": { + "format": "int32", + "type": "integer" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListNotebookRuntimeTemplatesResponse": { - "description": "Response message for NotebookService.ListNotebookRuntimeTemplates.", - "id": "GoogleCloudAiplatformV1ListNotebookRuntimeTemplatesResponse", + "GoogleCloudAiplatformV1GenerationConfig": { + "description": "Generation config.", + "id": "GoogleCloudAiplatformV1GenerationConfig", "properties": { - "nextPageToken": { - "description": "A token to retrieve next page of results. Pass to ListNotebookRuntimeTemplatesRequest.page_token to obtain that page.", - "type": "string" + "candidateCount": { + "description": "Optional. Number of candidates to generate.", + "format": "int32", + "type": "integer" }, - "notebookRuntimeTemplates": { - "description": "List of NotebookRuntimeTemplates in the requested page.", + "maxOutputTokens": { + "description": "Optional. The maximum number of output tokens to generate per message.", + "format": "int32", + "type": "integer" + }, + "stopSequences": { + "description": "Optional. Stop sequences.", "items": { - "$ref": "GoogleCloudAiplatformV1NotebookRuntimeTemplate" + "type": "string" }, "type": "array" + }, + "temperature": { + "description": "Optional. Controls the randomness of predictions.", + "format": "float", + "type": "number" + }, + "topK": { + "description": "Optional. If specified, top-k sampling will be used.", + "format": "float", + "type": "number" + }, + "topP": { + "description": "Optional. If specified, nucleus sampling will be used.", + "format": "float", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListNotebookRuntimesResponse": { - "description": "Response message for NotebookService.ListNotebookRuntimes.", - "id": "GoogleCloudAiplatformV1ListNotebookRuntimesResponse", + "GoogleCloudAiplatformV1GenericOperationMetadata": { + "description": "Generic Metadata shared by all operations.", + "id": "GoogleCloudAiplatformV1GenericOperationMetadata", "properties": { - "nextPageToken": { - "description": "A token to retrieve next page of results. Pass to ListNotebookRuntimesRequest.page_token to obtain that page.", + "createTime": { + "description": "Output only. Time when the operation was created.", + "format": "google-datetime", + "readOnly": true, "type": "string" }, - "notebookRuntimes": { - "description": "List of NotebookRuntimes in the requested page.", + "partialFailures": { + "description": "Output only. Partial failures encountered. E.g. single files that couldn't be read. This field should never exceed 20 entries. Status details field will contain standard Google Cloud error details.", "items": { - "$ref": "GoogleCloudAiplatformV1NotebookRuntime" + "$ref": "GoogleRpcStatus" }, + "readOnly": true, "type": "array" + }, + "updateTime": { + "description": "Output only. Time when the operation was updated for the last time. If the operation has finished (successfully or not), this is the finish time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListOptimalTrialsRequest": { - "description": "Request message for VizierService.ListOptimalTrials.", - "id": "GoogleCloudAiplatformV1ListOptimalTrialsRequest", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1ListOptimalTrialsResponse": { - "description": "Response message for VizierService.ListOptimalTrials.", - "id": "GoogleCloudAiplatformV1ListOptimalTrialsResponse", + "GoogleCloudAiplatformV1GroundingAttribution": { + "description": "Grounding attribution.", + "id": "GoogleCloudAiplatformV1GroundingAttribution", "properties": { - "optimalTrials": { - "description": "The pareto-optimal Trials for multiple objective Study or the optimal trial for single objective Study. The definition of pareto-optimal can be checked in wiki page. https://en.wikipedia.org/wiki/Pareto_efficiency", - "items": { - "$ref": "GoogleCloudAiplatformV1Trial" - }, - "type": "array" + "confidenceScore": { + "description": "Optional. Output only. Confidence score of the attribution. Ranges from 0 to 1. 1 is the most confident.", + "format": "float", + "readOnly": true, + "type": "number" + }, + "segment": { + "$ref": "GoogleCloudAiplatformV1Segment", + "description": "Output only. Segment of the content this attribution belongs to.", + "readOnly": true + }, + "web": { + "$ref": "GoogleCloudAiplatformV1GroundingAttributionWeb", + "description": "Optional. Attribution from the web." } }, "type": "object" }, - "GoogleCloudAiplatformV1ListPipelineJobsResponse": { - "description": "Response message for PipelineService.ListPipelineJobs", - "id": "GoogleCloudAiplatformV1ListPipelineJobsResponse", + "GoogleCloudAiplatformV1GroundingAttributionWeb": { + "description": "Attribution from the web.", + "id": "GoogleCloudAiplatformV1GroundingAttributionWeb", "properties": { - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass to ListPipelineJobsRequest.page_token to obtain that page.", + "title": { + "description": "Output only. Title of the attribution.", + "readOnly": true, "type": "string" }, - "pipelineJobs": { - "description": "List of PipelineJobs in the requested page.", - "items": { - "$ref": "GoogleCloudAiplatformV1PipelineJob" - }, - "type": "array" + "uri": { + "description": "Output only. URI reference of the attribution.", + "readOnly": true, + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListSavedQueriesResponse": { - "description": "Response message for DatasetService.ListSavedQueries.", - "id": "GoogleCloudAiplatformV1ListSavedQueriesResponse", + "GoogleCloudAiplatformV1GroundingMetadata": { + "description": "Metadata returned to client when grounding is enabled.", + "id": "GoogleCloudAiplatformV1GroundingMetadata", "properties": { - "nextPageToken": { - "description": "The standard List next-page token.", - "type": "string" - }, - "savedQueries": { - "description": "A list of SavedQueries that match the specified filter in the request.", + "groundingAttributions": { + "description": "Optional. List of grounding attributions.", "items": { - "$ref": "GoogleCloudAiplatformV1SavedQuery" + "$ref": "GoogleCloudAiplatformV1GroundingAttribution" }, "type": "array" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1ListSchedulesResponse": { - "description": "Response message for ScheduleService.ListSchedules", - "id": "GoogleCloudAiplatformV1ListSchedulesResponse", - "properties": { - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass to ListSchedulesRequest.page_token to obtain that page.", - "type": "string" }, - "schedules": { - "description": "List of Schedules in the requested page.", + "webSearchQueries": { + "description": "Optional. Web search queries for the following-up web search.", "items": { - "$ref": "GoogleCloudAiplatformV1Schedule" + "type": "string" }, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListSpecialistPoolsResponse": { - "description": "Response message for SpecialistPoolService.ListSpecialistPools.", - "id": "GoogleCloudAiplatformV1ListSpecialistPoolsResponse", + "GoogleCloudAiplatformV1HyperparameterTuningJob": { + "description": "Represents a HyperparameterTuningJob. A HyperparameterTuningJob has a Study specification and multiple CustomJobs with identical CustomJob specification.", + "id": "GoogleCloudAiplatformV1HyperparameterTuningJob", "properties": { - "nextPageToken": { - "description": "The standard List next-page token.", + "createTime": { + "description": "Output only. Time when the HyperparameterTuningJob was created.", + "format": "google-datetime", + "readOnly": true, "type": "string" }, - "specialistPools": { - "description": "A list of SpecialistPools that matches the specified filter in the request.", + "displayName": { + "description": "Required. The display name of the HyperparameterTuningJob. The name can be up to 128 characters long and can consist of any UTF-8 characters.", + "type": "string" + }, + "encryptionSpec": { + "$ref": "GoogleCloudAiplatformV1EncryptionSpec", + "description": "Customer-managed encryption key options for a HyperparameterTuningJob. If this is set, then all resources created by the HyperparameterTuningJob will be encrypted with the provided encryption key." + }, + "endTime": { + "description": "Output only. Time when the HyperparameterTuningJob entered any of the following states: `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED`, `JOB_STATE_CANCELLED`.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "error": { + "$ref": "GoogleRpcStatus", + "description": "Output only. Only populated when job's state is JOB_STATE_FAILED or JOB_STATE_CANCELLED.", + "readOnly": true + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "The labels with user-defined metadata to organize HyperparameterTuningJobs. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels.", + "type": "object" + }, + "maxFailedTrialCount": { + "description": "The number of failed Trials that need to be seen before failing the HyperparameterTuningJob. If set to 0, Vertex AI decides how many Trials must fail before the whole job fails.", + "format": "int32", + "type": "integer" + }, + "maxTrialCount": { + "description": "Required. The desired total number of Trials.", + "format": "int32", + "type": "integer" + }, + "name": { + "description": "Output only. Resource name of the HyperparameterTuningJob.", + "readOnly": true, + "type": "string" + }, + "parallelTrialCount": { + "description": "Required. The desired number of Trials to run in parallel.", + "format": "int32", + "type": "integer" + }, + "startTime": { + "description": "Output only. Time when the HyperparameterTuningJob for the first time entered the `JOB_STATE_RUNNING` state.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The detailed state of the job.", + "enum": [ + "JOB_STATE_UNSPECIFIED", + "JOB_STATE_QUEUED", + "JOB_STATE_PENDING", + "JOB_STATE_RUNNING", + "JOB_STATE_SUCCEEDED", + "JOB_STATE_FAILED", + "JOB_STATE_CANCELLING", + "JOB_STATE_CANCELLED", + "JOB_STATE_PAUSED", + "JOB_STATE_EXPIRED", + "JOB_STATE_UPDATING", + "JOB_STATE_PARTIALLY_SUCCEEDED" + ], + "enumDescriptions": [ + "The job state is unspecified.", + "The job has been just created or resumed and processing has not yet begun.", + "The service is preparing to run the job.", + "The job is in progress.", + "The job completed successfully.", + "The job failed.", + "The job is being cancelled. From this state the job may only go to either `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED` or `JOB_STATE_CANCELLED`.", + "The job has been cancelled.", + "The job has been stopped, and can be resumed.", + "The job has expired.", + "The job is being updated. Only jobs in the `RUNNING` state can be updated. After updating, the job goes back to the `RUNNING` state.", + "The job is partially succeeded, some results may be missing due to errors." + ], + "readOnly": true, + "type": "string" + }, + "studySpec": { + "$ref": "GoogleCloudAiplatformV1StudySpec", + "description": "Required. Study configuration of the HyperparameterTuningJob." + }, + "trialJobSpec": { + "$ref": "GoogleCloudAiplatformV1CustomJobSpec", + "description": "Required. The spec of a trial job. The same spec applies to the CustomJobs created in all the trials." + }, + "trials": { + "description": "Output only. Trials of the HyperparameterTuningJob.", "items": { - "$ref": "GoogleCloudAiplatformV1SpecialistPool" + "$ref": "GoogleCloudAiplatformV1Trial" }, + "readOnly": true, "type": "array" + }, + "updateTime": { + "description": "Output only. Time when the HyperparameterTuningJob was most recently updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListStudiesResponse": { - "description": "Response message for VizierService.ListStudies.", - "id": "GoogleCloudAiplatformV1ListStudiesResponse", + "GoogleCloudAiplatformV1IdMatcher": { + "description": "Matcher for Features of an EntityType by Feature ID.", + "id": "GoogleCloudAiplatformV1IdMatcher", "properties": { - "nextPageToken": { - "description": "Passes this token as the `page_token` field of the request for a subsequent call. If this field is omitted, there are no subsequent pages.", - "type": "string" - }, - "studies": { - "description": "The studies associated with the project.", + "ids": { + "description": "Required. The following are accepted as `ids`: * A single-element list containing only `*`, which selects all Features in the target EntityType, or * A list containing only Feature IDs, which selects only Features with those IDs in the target EntityType.", "items": { - "$ref": "GoogleCloudAiplatformV1Study" + "type": "string" }, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListTensorboardExperimentsResponse": { - "description": "Response message for TensorboardService.ListTensorboardExperiments.", - "id": "GoogleCloudAiplatformV1ListTensorboardExperimentsResponse", + "GoogleCloudAiplatformV1ImportDataConfig": { + "description": "Describes the location from where we import data into a Dataset, together with the labels that will be applied to the DataItems and the Annotations.", + "id": "GoogleCloudAiplatformV1ImportDataConfig", "properties": { - "nextPageToken": { - "description": "A token, which can be sent as ListTensorboardExperimentsRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", - "type": "string" + "annotationLabels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels that will be applied to newly imported Annotations. If two Annotations are identical, one of them will be deduped. Two Annotations are considered identical if their payload, payload_schema_uri and all of their labels are the same. These labels will be overridden by Annotation labels specified inside index file referenced by import_schema_uri, e.g. jsonl file.", + "type": "object" }, - "tensorboardExperiments": { - "description": "The TensorboardExperiments mathching the request.", - "items": { - "$ref": "GoogleCloudAiplatformV1TensorboardExperiment" + "dataItemLabels": { + "additionalProperties": { + "type": "string" }, - "type": "array" + "description": "Labels that will be applied to newly imported DataItems. If an identical DataItem as one being imported already exists in the Dataset, then these labels will be appended to these of the already existing one, and if labels with identical key is imported before, the old label value will be overwritten. If two DataItems are identical in the same import data operation, the labels will be combined and if key collision happens in this case, one of the values will be picked randomly. Two DataItems are considered identical if their content bytes are identical (e.g. image bytes or pdf bytes). These labels will be overridden by Annotation labels specified inside index file referenced by import_schema_uri, e.g. jsonl file.", + "type": "object" + }, + "gcsSource": { + "$ref": "GoogleCloudAiplatformV1GcsSource", + "description": "The Google Cloud Storage location for the input content." + }, + "importSchemaUri": { + "description": "Required. Points to a YAML file stored on Google Cloud Storage describing the import format. Validation will be done against the schema. The schema is defined as an [OpenAPI 3.0.2 Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject).", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListTensorboardRunsResponse": { - "description": "Response message for TensorboardService.ListTensorboardRuns.", - "id": "GoogleCloudAiplatformV1ListTensorboardRunsResponse", + "GoogleCloudAiplatformV1ImportDataOperationMetadata": { + "description": "Runtime operation information for DatasetService.ImportData.", + "id": "GoogleCloudAiplatformV1ImportDataOperationMetadata", "properties": { - "nextPageToken": { - "description": "A token, which can be sent as ListTensorboardRunsRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", - "type": "string" - }, - "tensorboardRuns": { - "description": "The TensorboardRuns mathching the request.", - "items": { - "$ref": "GoogleCloudAiplatformV1TensorboardRun" - }, - "type": "array" + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "The common part of the operation metadata." } }, "type": "object" }, - "GoogleCloudAiplatformV1ListTensorboardTimeSeriesResponse": { - "description": "Response message for TensorboardService.ListTensorboardTimeSeries.", - "id": "GoogleCloudAiplatformV1ListTensorboardTimeSeriesResponse", + "GoogleCloudAiplatformV1ImportDataRequest": { + "description": "Request message for DatasetService.ImportData.", + "id": "GoogleCloudAiplatformV1ImportDataRequest", "properties": { - "nextPageToken": { - "description": "A token, which can be sent as ListTensorboardTimeSeriesRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", - "type": "string" - }, - "tensorboardTimeSeries": { - "description": "The TensorboardTimeSeries mathching the request.", + "importConfigs": { + "description": "Required. The desired input locations. The contents of all input locations will be imported in one batch.", "items": { - "$ref": "GoogleCloudAiplatformV1TensorboardTimeSeries" + "$ref": "GoogleCloudAiplatformV1ImportDataConfig" }, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListTensorboardsResponse": { - "description": "Response message for TensorboardService.ListTensorboards.", - "id": "GoogleCloudAiplatformV1ListTensorboardsResponse", + "GoogleCloudAiplatformV1ImportDataResponse": { + "description": "Response message for DatasetService.ImportData.", + "id": "GoogleCloudAiplatformV1ImportDataResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudAiplatformV1ImportFeatureValuesOperationMetadata": { + "description": "Details of operations that perform import Feature values.", + "id": "GoogleCloudAiplatformV1ImportFeatureValuesOperationMetadata", "properties": { - "nextPageToken": { - "description": "A token, which can be sent as ListTensorboardsRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "blockingOperationIds": { + "description": "List of ImportFeatureValues operations running under a single EntityType that are blocking this operation.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "Operation metadata for Featurestore import Feature values." + }, + "importedEntityCount": { + "description": "Number of entities that have been imported by the operation.", + "format": "int64", "type": "string" }, - "tensorboards": { - "description": "The Tensorboards mathching the request.", + "importedFeatureValueCount": { + "description": "Number of Feature values that have been imported by the operation.", + "format": "int64", + "type": "string" + }, + "invalidRowCount": { + "description": "The number of rows in input source that weren't imported due to either * Not having any featureValues. * Having a null entityId. * Having a null timestamp. * Not being parsable (applicable for CSV sources).", + "format": "int64", + "type": "string" + }, + "sourceUris": { + "description": "The source URI from where Feature values are imported.", "items": { - "$ref": "GoogleCloudAiplatformV1Tensorboard" + "type": "string" }, "type": "array" + }, + "timestampOutsideRetentionRowsCount": { + "description": "The number rows that weren't ingested due to having timestamps outside the retention boundary.", + "format": "int64", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListTrainingPipelinesResponse": { - "description": "Response message for PipelineService.ListTrainingPipelines", - "id": "GoogleCloudAiplatformV1ListTrainingPipelinesResponse", + "GoogleCloudAiplatformV1ImportFeatureValuesRequest": { + "description": "Request message for FeaturestoreService.ImportFeatureValues.", + "id": "GoogleCloudAiplatformV1ImportFeatureValuesRequest", "properties": { - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass to ListTrainingPipelinesRequest.page_token to obtain that page.", + "avroSource": { + "$ref": "GoogleCloudAiplatformV1AvroSource" + }, + "bigquerySource": { + "$ref": "GoogleCloudAiplatformV1BigQuerySource" + }, + "csvSource": { + "$ref": "GoogleCloudAiplatformV1CsvSource" + }, + "disableIngestionAnalysis": { + "description": "If true, API doesn't start ingestion analysis pipeline.", + "type": "boolean" + }, + "disableOnlineServing": { + "description": "If set, data will not be imported for online serving. This is typically used for backfilling, where Feature generation timestamps are not in the timestamp range needed for online serving.", + "type": "boolean" + }, + "entityIdField": { + "description": "Source column that holds entity IDs. If not provided, entity IDs are extracted from the column named entity_id.", "type": "string" }, - "trainingPipelines": { - "description": "List of TrainingPipelines in the requested page.", + "featureSpecs": { + "description": "Required. Specifications defining which Feature values to import from the entity. The request fails if no feature_specs are provided, and having multiple feature_specs for one Feature is not allowed.", "items": { - "$ref": "GoogleCloudAiplatformV1TrainingPipeline" + "$ref": "GoogleCloudAiplatformV1ImportFeatureValuesRequestFeatureSpec" }, "type": "array" + }, + "featureTime": { + "description": "Single Feature timestamp for all entities being imported. The timestamp must not have higher than millisecond precision.", + "format": "google-datetime", + "type": "string" + }, + "featureTimeField": { + "description": "Source column that holds the Feature timestamp for all Feature values in each entity.", + "type": "string" + }, + "workerCount": { + "description": "Specifies the number of workers that are used to write data to the Featurestore. Consider the online serving capacity that you require to achieve the desired import throughput without interfering with online serving. The value must be positive, and less than or equal to 100. If not set, defaults to using 1 worker. The low count ensures minimal impact on online serving performance.", + "format": "int32", + "type": "integer" } }, "type": "object" }, - "GoogleCloudAiplatformV1ListTrialsResponse": { - "description": "Response message for VizierService.ListTrials.", - "id": "GoogleCloudAiplatformV1ListTrialsResponse", + "GoogleCloudAiplatformV1ImportFeatureValuesRequestFeatureSpec": { + "description": "Defines the Feature value(s) to import.", + "id": "GoogleCloudAiplatformV1ImportFeatureValuesRequestFeatureSpec", "properties": { - "nextPageToken": { - "description": "Pass this token as the `page_token` field of the request for a subsequent call. If this field is omitted, there are no subsequent pages.", + "id": { + "description": "Required. ID of the Feature to import values of. This Feature must exist in the target EntityType, or the request will fail.", "type": "string" }, - "trials": { - "description": "The Trials associated with the Study.", - "items": { - "$ref": "GoogleCloudAiplatformV1Trial" - }, - "type": "array" + "sourceField": { + "description": "Source column to get the Feature values from. If not set, uses the column with the same name as the Feature ID.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1LookupStudyRequest": { - "description": "Request message for VizierService.LookupStudy.", - "id": "GoogleCloudAiplatformV1LookupStudyRequest", + "GoogleCloudAiplatformV1ImportFeatureValuesResponse": { + "description": "Response message for FeaturestoreService.ImportFeatureValues.", + "id": "GoogleCloudAiplatformV1ImportFeatureValuesResponse", "properties": { - "displayName": { - "description": "Required. The user-defined display name of the Study", + "importedEntityCount": { + "description": "Number of entities that have been imported by the operation.", + "format": "int64", "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1MachineSpec": { - "description": "Specification of a single machine.", - "id": "GoogleCloudAiplatformV1MachineSpec", - "properties": { - "acceleratorCount": { - "description": "The number of accelerators to attach to the machine.", - "format": "int32", - "type": "integer" }, - "acceleratorType": { - "description": "Immutable. The type of accelerator(s) that may be attached to the machine as per accelerator_count.", - "enum": [ - "ACCELERATOR_TYPE_UNSPECIFIED", - "NVIDIA_TESLA_K80", - "NVIDIA_TESLA_P100", - "NVIDIA_TESLA_V100", - "NVIDIA_TESLA_P4", - "NVIDIA_TESLA_T4", - "NVIDIA_TESLA_A100", - "NVIDIA_A100_80GB", - "NVIDIA_L4", - "TPU_V2", - "TPU_V3", - "TPU_V4_POD" - ], - "enumDescriptions": [ - "Unspecified accelerator type, which means no accelerator.", - "Nvidia Tesla K80 GPU.", - "Nvidia Tesla P100 GPU.", - "Nvidia Tesla V100 GPU.", - "Nvidia Tesla P4 GPU.", - "Nvidia Tesla T4 GPU.", - "Nvidia Tesla A100 GPU.", - "Nvidia A100 80GB GPU.", - "Nvidia L4 GPU.", - "TPU v2.", - "TPU v3.", - "TPU v4." - ], + "importedFeatureValueCount": { + "description": "Number of Feature values that have been imported by the operation.", + "format": "int64", "type": "string" }, - "machineType": { - "description": "Immutable. The type of the machine. See the [list of machine types supported for prediction](https://cloud.google.com/vertex-ai/docs/predictions/configure-compute#machine-types) See the [list of machine types supported for custom training](https://cloud.google.com/vertex-ai/docs/training/configure-compute#machine-types). For DeployedModel this field is optional, and the default value is `n1-standard-2`. For BatchPredictionJob or as part of WorkerPoolSpec this field is required.", + "invalidRowCount": { + "description": "The number of rows in input source that weren't imported due to either * Not having any featureValues. * Having a null entityId. * Having a null timestamp. * Not being parsable (applicable for CSV sources).", + "format": "int64", "type": "string" }, - "tpuTopology": { - "description": "Immutable. The topology of the TPUs. Corresponds to the TPU topologies available from GKE. (Example: tpu_topology: \"2x2x1\").", + "timestampOutsideRetentionRowsCount": { + "description": "The number rows that weren't ingested due to having feature timestamps outside the retention boundary.", + "format": "int64", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ManualBatchTuningParameters": { - "description": "Manual batch tuning parameters.", - "id": "GoogleCloudAiplatformV1ManualBatchTuningParameters", + "GoogleCloudAiplatformV1ImportModelEvaluationRequest": { + "description": "Request message for ModelService.ImportModelEvaluation", + "id": "GoogleCloudAiplatformV1ImportModelEvaluationRequest", "properties": { - "batchSize": { - "description": "Immutable. The number of the records (e.g. instances) of the operation given in each batch to a machine replica. Machine type, and size of a single record should be considered when setting this parameter, higher value speeds up the batch operation's execution, but too high value will result in a whole batch not fitting in a machine's memory, and the whole operation will fail. The default value is 64.", - "format": "int32", - "type": "integer" + "modelEvaluation": { + "$ref": "GoogleCloudAiplatformV1ModelEvaluation", + "description": "Required. Model evaluation resource to be imported." } }, "type": "object" }, - "GoogleCloudAiplatformV1Measurement": { - "description": "A message representing a Measurement of a Trial. A Measurement contains the Metrics got by executing a Trial using suggested hyperparameter values.", - "id": "GoogleCloudAiplatformV1Measurement", + "GoogleCloudAiplatformV1Index": { + "description": "A representation of a collection of database items organized in a way that allows for approximate nearest neighbor (a.k.a ANN) algorithms search.", + "id": "GoogleCloudAiplatformV1Index", "properties": { - "elapsedDuration": { - "description": "Output only. Time that the Trial has been running at the point of this Measurement.", - "format": "google-duration", + "createTime": { + "description": "Output only. Timestamp when this Index was created.", + "format": "google-datetime", "readOnly": true, "type": "string" }, - "metrics": { - "description": "Output only. A list of metrics got by evaluating the objective functions using suggested Parameter values.", + "deployedIndexes": { + "description": "Output only. The pointers to DeployedIndexes created from this Index. An Index can be only deleted if all its DeployedIndexes had been undeployed first.", "items": { - "$ref": "GoogleCloudAiplatformV1MeasurementMetric" + "$ref": "GoogleCloudAiplatformV1DeployedIndexRef" }, "readOnly": true, "type": "array" }, - "stepCount": { - "description": "Output only. The number of steps the machine learning model has been trained for. Must be non-negative.", - "format": "int64", - "readOnly": true, + "description": { + "description": "The description of the Index.", "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1MeasurementMetric": { - "description": "A message representing a metric in the measurement.", - "id": "GoogleCloudAiplatformV1MeasurementMetric", - "properties": { - "metricId": { - "description": "Output only. The ID of the Metric. The Metric should be defined in StudySpec's Metrics.", + }, + "displayName": { + "description": "Required. The display name of the Index. The name can be up to 128 characters long and can consist of any UTF-8 characters.", + "type": "string" + }, + "encryptionSpec": { + "$ref": "GoogleCloudAiplatformV1EncryptionSpec", + "description": "Immutable. Customer-managed encryption key spec for an Index. If set, this Index and all sub-resources of this Index will be secured by this key." + }, + "etag": { + "description": "Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "type": "string" + }, + "indexStats": { + "$ref": "GoogleCloudAiplatformV1IndexStats", + "description": "Output only. Stats of the index resource.", + "readOnly": true + }, + "indexUpdateMethod": { + "description": "Immutable. The update method to use with this Index. If not set, BATCH_UPDATE will be used by default.", + "enum": [ + "INDEX_UPDATE_METHOD_UNSPECIFIED", + "BATCH_UPDATE", + "STREAM_UPDATE" + ], + "enumDescriptions": [ + "Should not be used.", + "BatchUpdate: user can call UpdateIndex with files on Cloud Storage of Datapoints to update.", + "StreamUpdate: user can call UpsertDatapoints/DeleteDatapoints to update the Index and the updates will be applied in corresponding DeployedIndexes in nearly real-time." + ], + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "The labels with user-defined metadata to organize your Indexes. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels.", + "type": "object" + }, + "metadata": { + "description": "An additional information about the Index; the schema of the metadata can be found in metadata_schema.", + "type": "any" + }, + "metadataSchemaUri": { + "description": "Immutable. Points to a YAML file stored on Google Cloud Storage describing additional information about the Index, that is specific to it. Unset if the Index does not have any additional information. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). Note: The URI given on output will be immutable and probably different, including the URI scheme, than the one given on input. The output URI will point to a location where the user only has a read access.", + "type": "string" + }, + "name": { + "description": "Output only. The resource name of the Index.", "readOnly": true, "type": "string" }, - "value": { - "description": "Output only. The value for this metric.", - "format": "double", + "updateTime": { + "description": "Output only. Timestamp when this Index was most recently updated. This also includes any update to the contents of the Index. Note that Operations working on this Index may have their Operations.metadata.generic_metadata.update_time a little after the value of this timestamp, yet that does not mean their results are not already reflected in the Index. Result of any successfully completed Operation on the Index is reflected in it.", + "format": "google-datetime", "readOnly": true, - "type": "number" + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1MergeVersionAliasesRequest": { - "description": "Request message for ModelService.MergeVersionAliases.", - "id": "GoogleCloudAiplatformV1MergeVersionAliasesRequest", + "GoogleCloudAiplatformV1IndexDatapoint": { + "description": "A datapoint of Index.", + "id": "GoogleCloudAiplatformV1IndexDatapoint", "properties": { - "versionAliases": { - "description": "Required. The set of version aliases to merge. The alias should be at most 128 characters, and match `a-z{0,126}[a-z-0-9]`. Add the `-` prefix to an alias means removing that alias from the version. `-` is NOT counted in the 128 characters. Example: `-golden` means removing the `golden` alias from the version. There is NO ordering in aliases, which means 1) The aliases returned from GetModel API might not have the exactly same order from this MergeVersionAliases API. 2) Adding and deleting the same alias in the request is not recommended, and the 2 operations will be cancelled out.", + "crowdingTag": { + "$ref": "GoogleCloudAiplatformV1IndexDatapointCrowdingTag", + "description": "Optional. CrowdingTag of the datapoint, the number of neighbors to return in each crowding can be configured during query." + }, + "datapointId": { + "description": "Required. Unique identifier of the datapoint.", + "type": "string" + }, + "featureVector": { + "description": "Required. Feature embedding vector. An array of numbers with the length of [NearestNeighborSearchConfig.dimensions].", "items": { - "type": "string" + "format": "float", + "type": "number" + }, + "type": "array" + }, + "numericRestricts": { + "description": "Optional. List of Restrict of the datapoint, used to perform \"restricted searches\" where boolean rule are used to filter the subset of the database eligible for matching. This uses numeric comparisons.", + "items": { + "$ref": "GoogleCloudAiplatformV1IndexDatapointNumericRestriction" + }, + "type": "array" + }, + "restricts": { + "description": "Optional. List of Restrict of the datapoint, used to perform \"restricted searches\" where boolean rule are used to filter the subset of the database eligible for matching. This uses categorical tokens. See: https://cloud.google.com/vertex-ai/docs/matching-engine/filtering", + "items": { + "$ref": "GoogleCloudAiplatformV1IndexDatapointRestriction" }, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1MetadataSchema": { - "description": "Instance of a general MetadataSchema.", - "id": "GoogleCloudAiplatformV1MetadataSchema", + "GoogleCloudAiplatformV1IndexDatapointCrowdingTag": { + "description": "Crowding tag is a constraint on a neighbor list produced by nearest neighbor search requiring that no more than some value k' of the k neighbors returned have the same value of crowding_attribute.", + "id": "GoogleCloudAiplatformV1IndexDatapointCrowdingTag", "properties": { - "createTime": { - "description": "Output only. Timestamp when this MetadataSchema was created.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "description": { - "description": "Description of the Metadata Schema", - "type": "string" - }, - "name": { - "description": "Output only. The resource name of the MetadataSchema.", - "readOnly": true, + "crowdingAttribute": { + "description": "The attribute value used for crowding. The maximum number of neighbors to return per crowding attribute value (per_crowding_attribute_num_neighbors) is configured per-query. This field is ignored if per_crowding_attribute_num_neighbors is larger than the total number of neighbors to return for a given query.", "type": "string" - }, - "schema": { - "description": "Required. The raw YAML string representation of the MetadataSchema. The combination of [MetadataSchema.version] and the schema name given by `title` in [MetadataSchema.schema] must be unique within a MetadataStore. The schema is defined as an OpenAPI 3.0.2 [MetadataSchema Object](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#schemaObject)", + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1IndexDatapointNumericRestriction": { + "description": "This field allows restricts to be based on numeric comparisons rather than categorical tokens.", + "id": "GoogleCloudAiplatformV1IndexDatapointNumericRestriction", + "properties": { + "namespace": { + "description": "The namespace of this restriction. e.g.: cost.", "type": "string" }, - "schemaType": { - "description": "The type of the MetadataSchema. This is a property that identifies which metadata types will use the MetadataSchema.", + "op": { + "description": "This MUST be specified for queries and must NOT be specified for datapoints.", "enum": [ - "METADATA_SCHEMA_TYPE_UNSPECIFIED", - "ARTIFACT_TYPE", - "EXECUTION_TYPE", - "CONTEXT_TYPE" + "OPERATOR_UNSPECIFIED", + "LESS", + "LESS_EQUAL", + "EQUAL", + "GREATER_EQUAL", + "GREATER", + "NOT_EQUAL" ], "enumDescriptions": [ - "Unspecified type for the MetadataSchema.", - "A type indicating that the MetadataSchema will be used by Artifacts.", - "A typee indicating that the MetadataSchema will be used by Executions.", - "A state indicating that the MetadataSchema will be used by Contexts." + "Default value of the enum.", + "Datapoints are eligible iff their value is < the query's.", + "Datapoints are eligible iff their value is <= the query's.", + "Datapoints are eligible iff their value is == the query's.", + "Datapoints are eligible iff their value is >= the query's.", + "Datapoints are eligible iff their value is > the query's.", + "Datapoints are eligible iff their value is != the query's." ], "type": "string" }, - "schemaVersion": { - "description": "The version of the MetadataSchema. The version's format must match the following regular expression: `^[0-9]+.+.+$`, which would allow to order/compare different versions. Example: 1.0.0, 1.0.1, etc.", + "valueDouble": { + "description": "Represents 64 bit float.", + "format": "double", + "type": "number" + }, + "valueFloat": { + "description": "Represents 32 bit float.", + "format": "float", + "type": "number" + }, + "valueInt": { + "description": "Represents 64 bit integer.", + "format": "int64", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1MetadataStore": { - "description": "Instance of a metadata store. Contains a set of metadata that can be queried.", - "id": "GoogleCloudAiplatformV1MetadataStore", + "GoogleCloudAiplatformV1IndexDatapointRestriction": { + "description": "Restriction of a datapoint which describe its attributes(tokens) from each of several attribute categories(namespaces).", + "id": "GoogleCloudAiplatformV1IndexDatapointRestriction", + "properties": { + "allowList": { + "description": "The attributes to allow in this namespace. e.g.: 'red'", + "items": { + "type": "string" + }, + "type": "array" + }, + "denyList": { + "description": "The attributes to deny in this namespace. e.g.: 'blue'", + "items": { + "type": "string" + }, + "type": "array" + }, + "namespace": { + "description": "The namespace of this restriction. e.g.: color.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1IndexEndpoint": { + "description": "Indexes are deployed into it. An IndexEndpoint can have multiple DeployedIndexes.", + "id": "GoogleCloudAiplatformV1IndexEndpoint", "properties": { "createTime": { - "description": "Output only. Timestamp when this MetadataStore was created.", + "description": "Output only. Timestamp when this IndexEndpoint was created.", "format": "google-datetime", "readOnly": true, "type": "string" }, + "deployedIndexes": { + "description": "Output only. The indexes deployed in this endpoint.", + "items": { + "$ref": "GoogleCloudAiplatformV1DeployedIndex" + }, + "readOnly": true, + "type": "array" + }, "description": { - "description": "Description of the MetadataStore.", + "description": "The description of the IndexEndpoint.", + "type": "string" + }, + "displayName": { + "description": "Required. The display name of the IndexEndpoint. The name can be up to 128 characters long and can consist of any UTF-8 characters.", "type": "string" }, + "enablePrivateServiceConnect": { + "deprecated": true, + "description": "Optional. Deprecated: If true, expose the IndexEndpoint via private service connect. Only one of the fields, network or enable_private_service_connect, can be set.", + "type": "boolean" + }, "encryptionSpec": { "$ref": "GoogleCloudAiplatformV1EncryptionSpec", - "description": "Customer-managed encryption key spec for a Metadata Store. If set, this Metadata Store and all sub-resources of this Metadata Store are secured using this key." + "description": "Immutable. Customer-managed encryption key spec for an IndexEndpoint. If set, this IndexEndpoint and all sub-resources of this IndexEndpoint will be secured by this key." + }, + "etag": { + "description": "Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "The labels with user-defined metadata to organize your IndexEndpoints. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels.", + "type": "object" }, "name": { - "description": "Output only. The resource name of the MetadataStore instance.", + "description": "Output only. The resource name of the IndexEndpoint.", "readOnly": true, "type": "string" }, - "state": { - "$ref": "GoogleCloudAiplatformV1MetadataStoreMetadataStoreState", - "description": "Output only. State information of the MetadataStore.", - "readOnly": true + "network": { + "description": "Optional. The full name of the Google Compute Engine [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks) to which the IndexEndpoint should be peered. Private services access must already be configured for the network. If left unspecified, the Endpoint is not peered with any network. network and private_service_connect_config are mutually exclusive. [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert): `projects/{project}/global/networks/{network}`. Where {project} is a project number, as in '12345', and {network} is network name.", + "type": "string" + }, + "privateServiceConnectConfig": { + "$ref": "GoogleCloudAiplatformV1PrivateServiceConnectConfig", + "description": "Optional. Configuration for private service connect. network and private_service_connect_config are mutually exclusive." + }, + "publicEndpointDomainName": { + "description": "Output only. If public_endpoint_enabled is true, this field will be populated with the domain name to use for this index endpoint.", + "readOnly": true, + "type": "string" + }, + "publicEndpointEnabled": { + "description": "Optional. If true, the deployed index will be accessible through public endpoint.", + "type": "boolean" }, "updateTime": { - "description": "Output only. Timestamp when this MetadataStore was last updated.", + "description": "Output only. Timestamp when this IndexEndpoint was last updated. This timestamp is not updated when the endpoint's DeployedIndexes are updated, e.g. due to updates of the original Indexes they are the deployments of.", "format": "google-datetime", "readOnly": true, "type": "string" @@ -21344,2235 +22769,1952 @@ }, "type": "object" }, - "GoogleCloudAiplatformV1MetadataStoreMetadataStoreState": { - "description": "Represents state information for a MetadataStore.", - "id": "GoogleCloudAiplatformV1MetadataStoreMetadataStoreState", + "GoogleCloudAiplatformV1IndexPrivateEndpoints": { + "description": "IndexPrivateEndpoints proto is used to provide paths for users to send requests via private endpoints (e.g. private service access, private service connect). To send request via private service access, use match_grpc_address. To send request via private service connect, use service_attachment.", + "id": "GoogleCloudAiplatformV1IndexPrivateEndpoints", "properties": { - "diskUtilizationBytes": { - "description": "The disk utilization of the MetadataStore in bytes.", - "format": "int64", + "matchGrpcAddress": { + "description": "Output only. The ip address used to send match gRPC requests.", + "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1MigratableResource": { - "description": "Represents one resource that exists in automl.googleapis.com, datalabeling.googleapis.com or ml.googleapis.com.", - "id": "GoogleCloudAiplatformV1MigratableResource", - "properties": { - "automlDataset": { - "$ref": "GoogleCloudAiplatformV1MigratableResourceAutomlDataset", - "description": "Output only. Represents one Dataset in automl.googleapis.com.", - "readOnly": true - }, - "automlModel": { - "$ref": "GoogleCloudAiplatformV1MigratableResourceAutomlModel", - "description": "Output only. Represents one Model in automl.googleapis.com.", - "readOnly": true - }, - "dataLabelingDataset": { - "$ref": "GoogleCloudAiplatformV1MigratableResourceDataLabelingDataset", - "description": "Output only. Represents one Dataset in datalabeling.googleapis.com.", - "readOnly": true }, - "lastMigrateTime": { - "description": "Output only. Timestamp when the last migration attempt on this MigratableResource started. Will not be set if there's no migration attempt on this MigratableResource.", - "format": "google-datetime", + "pscAutomatedEndpoints": { + "description": "Output only. PscAutomatedEndpoints is populated if private service connect is enabled if PscAutomatedConfig is set.", + "items": { + "$ref": "GoogleCloudAiplatformV1PscAutomatedEndpoints" + }, "readOnly": true, - "type": "string" + "type": "array" }, - "lastUpdateTime": { - "description": "Output only. Timestamp when this MigratableResource was last updated.", - "format": "google-datetime", + "serviceAttachment": { + "description": "Output only. The name of the service attachment resource. Populated if private service connect is enabled.", "readOnly": true, "type": "string" - }, - "mlEngineModelVersion": { - "$ref": "GoogleCloudAiplatformV1MigratableResourceMlEngineModelVersion", - "description": "Output only. Represents one Version in ml.googleapis.com.", - "readOnly": true } }, "type": "object" }, - "GoogleCloudAiplatformV1MigratableResourceAutomlDataset": { - "description": "Represents one Dataset in automl.googleapis.com.", - "id": "GoogleCloudAiplatformV1MigratableResourceAutomlDataset", + "GoogleCloudAiplatformV1IndexStats": { + "description": "Stats of the Index.", + "id": "GoogleCloudAiplatformV1IndexStats", "properties": { - "dataset": { - "description": "Full resource name of automl Dataset. Format: `projects/{project}/locations/{location}/datasets/{dataset}`.", - "type": "string" + "shardsCount": { + "description": "Output only. The number of shards in the Index.", + "format": "int32", + "readOnly": true, + "type": "integer" }, - "datasetDisplayName": { - "description": "The Dataset's display name in automl.googleapis.com.", + "vectorsCount": { + "description": "Output only. The number of vectors in the Index.", + "format": "int64", + "readOnly": true, "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1MigratableResourceAutomlModel": { - "description": "Represents one Model in automl.googleapis.com.", - "id": "GoogleCloudAiplatformV1MigratableResourceAutomlModel", + "GoogleCloudAiplatformV1InputDataConfig": { + "description": "Specifies Vertex AI owned input data to be used for training, and possibly evaluating, the Model.", + "id": "GoogleCloudAiplatformV1InputDataConfig", "properties": { - "model": { - "description": "Full resource name of automl Model. Format: `projects/{project}/locations/{location}/models/{model}`.", + "annotationSchemaUri": { + "description": "Applicable only to custom training with Datasets that have DataItems and Annotations. Cloud Storage URI that points to a YAML file describing the annotation schema. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). The schema files that can be used here are found in gs://google-cloud-aiplatform/schema/dataset/annotation/ , note that the chosen schema must be consistent with metadata of the Dataset specified by dataset_id. Only Annotations that both match this schema and belong to DataItems not ignored by the split method are used in respectively training, validation or test role, depending on the role of the DataItem they are on. When used in conjunction with annotations_filter, the Annotations used for training are filtered by both annotations_filter and annotation_schema_uri.", "type": "string" }, - "modelDisplayName": { - "description": "The Model's display name in automl.googleapis.com.", + "annotationsFilter": { + "description": "Applicable only to Datasets that have DataItems and Annotations. A filter on Annotations of the Dataset. Only Annotations that both match this filter and belong to DataItems not ignored by the split method are used in respectively training, validation or test role, depending on the role of the DataItem they are on (for the auto-assigned that role is decided by Vertex AI). A filter with same syntax as the one used in ListAnnotations may be used, but note here it filters across all Annotations of the Dataset, and not just within a single DataItem.", + "type": "string" + }, + "bigqueryDestination": { + "$ref": "GoogleCloudAiplatformV1BigQueryDestination", + "description": "Only applicable to custom training with tabular Dataset with BigQuery source. The BigQuery project location where the training data is to be written to. In the given project a new dataset is created with name `dataset___` where timestamp is in YYYY_MM_DDThh_mm_ss_sssZ format. All training input data is written into that dataset. In the dataset three tables are created, `training`, `validation` and `test`. * AIP_DATA_FORMAT = \"bigquery\". * AIP_TRAINING_DATA_URI = \"bigquery_destination.dataset___.training\" * AIP_VALIDATION_DATA_URI = \"bigquery_destination.dataset___.validation\" * AIP_TEST_DATA_URI = \"bigquery_destination.dataset___.test\"" + }, + "datasetId": { + "description": "Required. The ID of the Dataset in the same Project and Location which data will be used to train the Model. The Dataset must use schema compatible with Model being trained, and what is compatible should be described in the used TrainingPipeline's training_task_definition. For tabular Datasets, all their data is exported to training, to pick and choose from.", + "type": "string" + }, + "filterSplit": { + "$ref": "GoogleCloudAiplatformV1FilterSplit", + "description": "Split based on the provided filters for each set." + }, + "fractionSplit": { + "$ref": "GoogleCloudAiplatformV1FractionSplit", + "description": "Split based on fractions defining the size of each set." + }, + "gcsDestination": { + "$ref": "GoogleCloudAiplatformV1GcsDestination", + "description": "The Cloud Storage location where the training data is to be written to. In the given directory a new directory is created with name: `dataset---` where timestamp is in YYYY-MM-DDThh:mm:ss.sssZ ISO-8601 format. All training input data is written into that directory. The Vertex AI environment variables representing Cloud Storage data URIs are represented in the Cloud Storage wildcard format to support sharded data. e.g.: \"gs://.../training-*.jsonl\" * AIP_DATA_FORMAT = \"jsonl\" for non-tabular data, \"csv\" for tabular data * AIP_TRAINING_DATA_URI = \"gcs_destination/dataset---/training-*.${AIP_DATA_FORMAT}\" * AIP_VALIDATION_DATA_URI = \"gcs_destination/dataset---/validation-*.${AIP_DATA_FORMAT}\" * AIP_TEST_DATA_URI = \"gcs_destination/dataset---/test-*.${AIP_DATA_FORMAT}\"" + }, + "persistMlUseAssignment": { + "description": "Whether to persist the ML use assignment to data item system labels.", + "type": "boolean" + }, + "predefinedSplit": { + "$ref": "GoogleCloudAiplatformV1PredefinedSplit", + "description": "Supported only for tabular Datasets. Split based on a predefined key." + }, + "savedQueryId": { + "description": "Only applicable to Datasets that have SavedQueries. The ID of a SavedQuery (annotation set) under the Dataset specified by dataset_id used for filtering Annotations for training. Only Annotations that are associated with this SavedQuery are used in respectively training. When used in conjunction with annotations_filter, the Annotations used for training are filtered by both saved_query_id and annotations_filter. Only one of saved_query_id and annotation_schema_uri should be specified as both of them represent the same thing: problem type.", "type": "string" + }, + "stratifiedSplit": { + "$ref": "GoogleCloudAiplatformV1StratifiedSplit", + "description": "Supported only for tabular Datasets. Split based on the distribution of the specified column." + }, + "timestampSplit": { + "$ref": "GoogleCloudAiplatformV1TimestampSplit", + "description": "Supported only for tabular Datasets. Split based on the timestamp of the input data pieces." } }, "type": "object" }, - "GoogleCloudAiplatformV1MigratableResourceDataLabelingDataset": { - "description": "Represents one Dataset in datalabeling.googleapis.com.", - "id": "GoogleCloudAiplatformV1MigratableResourceDataLabelingDataset", + "GoogleCloudAiplatformV1Int64Array": { + "description": "A list of int64 values.", + "id": "GoogleCloudAiplatformV1Int64Array", "properties": { - "dataLabelingAnnotatedDatasets": { - "description": "The migratable AnnotatedDataset in datalabeling.googleapis.com belongs to the data labeling Dataset.", + "values": { + "description": "A list of int64 values.", "items": { - "$ref": "GoogleCloudAiplatformV1MigratableResourceDataLabelingDatasetDataLabelingAnnotatedDataset" + "format": "int64", + "type": "string" }, "type": "array" - }, - "dataset": { - "description": "Full resource name of data labeling Dataset. Format: `projects/{project}/datasets/{dataset}`.", - "type": "string" - }, - "datasetDisplayName": { - "description": "The Dataset's display name in datalabeling.googleapis.com.", - "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1MigratableResourceDataLabelingDatasetDataLabelingAnnotatedDataset": { - "description": "Represents one AnnotatedDataset in datalabeling.googleapis.com.", - "id": "GoogleCloudAiplatformV1MigratableResourceDataLabelingDatasetDataLabelingAnnotatedDataset", + "GoogleCloudAiplatformV1IntegratedGradientsAttribution": { + "description": "An attribution method that computes the Aumann-Shapley value taking advantage of the model's fully differentiable structure. Refer to this paper for more details: https://arxiv.org/abs/1703.01365", + "id": "GoogleCloudAiplatformV1IntegratedGradientsAttribution", "properties": { - "annotatedDataset": { - "description": "Full resource name of data labeling AnnotatedDataset. Format: `projects/{project}/datasets/{dataset}/annotatedDatasets/{annotated_dataset}`.", - "type": "string" + "blurBaselineConfig": { + "$ref": "GoogleCloudAiplatformV1BlurBaselineConfig", + "description": "Config for IG with blur baseline. When enabled, a linear path from the maximally blurred image to the input image is created. Using a blurred baseline instead of zero (black image) is motivated by the BlurIG approach explained here: https://arxiv.org/abs/2004.03383" }, - "annotatedDatasetDisplayName": { - "description": "The AnnotatedDataset's display name in datalabeling.googleapis.com.", - "type": "string" + "smoothGradConfig": { + "$ref": "GoogleCloudAiplatformV1SmoothGradConfig", + "description": "Config for SmoothGrad approximation of gradients. When enabled, the gradients are approximated by averaging the gradients from noisy samples in the vicinity of the inputs. Adding noise can help improve the computed gradients. Refer to this paper for more details: https://arxiv.org/pdf/1706.03825.pdf" + }, + "stepCount": { + "description": "Required. The number of steps for approximating the path integral. A good value to start is 50 and gradually increase until the sum to diff property is within the desired error range. Valid range of its value is [1, 100], inclusively.", + "format": "int32", + "type": "integer" } }, "type": "object" }, - "GoogleCloudAiplatformV1MigratableResourceMlEngineModelVersion": { - "description": "Represents one model Version in ml.googleapis.com.", - "id": "GoogleCloudAiplatformV1MigratableResourceMlEngineModelVersion", + "GoogleCloudAiplatformV1LargeModelReference": { + "description": "Contains information about the Large Model.", + "id": "GoogleCloudAiplatformV1LargeModelReference", "properties": { - "endpoint": { - "description": "The ml.googleapis.com endpoint that this model Version currently lives in. Example values: * ml.googleapis.com * us-centrall-ml.googleapis.com * europe-west4-ml.googleapis.com * asia-east1-ml.googleapis.com", - "type": "string" - }, - "version": { - "description": "Full resource name of ml engine model Version. Format: `projects/{project}/models/{model}/versions/{version}`.", + "name": { + "description": "Required. The unique name of the large Foundation or pre-built model. Like \"chat-bison\", \"text-bison\". Or model name with version ID, like \"chat-bison@001\", \"text-bison@005\", etc.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1MigrateResourceRequest": { - "description": "Config of migrating one resource from automl.googleapis.com, datalabeling.googleapis.com and ml.googleapis.com to Vertex AI.", - "id": "GoogleCloudAiplatformV1MigrateResourceRequest", + "GoogleCloudAiplatformV1LineageSubgraph": { + "description": "A subgraph of the overall lineage graph. Event edges connect Artifact and Execution nodes.", + "id": "GoogleCloudAiplatformV1LineageSubgraph", "properties": { - "migrateAutomlDatasetConfig": { - "$ref": "GoogleCloudAiplatformV1MigrateResourceRequestMigrateAutomlDatasetConfig", - "description": "Config for migrating Dataset in automl.googleapis.com to Vertex AI's Dataset." - }, - "migrateAutomlModelConfig": { - "$ref": "GoogleCloudAiplatformV1MigrateResourceRequestMigrateAutomlModelConfig", - "description": "Config for migrating Model in automl.googleapis.com to Vertex AI's Model." + "artifacts": { + "description": "The Artifact nodes in the subgraph.", + "items": { + "$ref": "GoogleCloudAiplatformV1Artifact" + }, + "type": "array" }, - "migrateDataLabelingDatasetConfig": { - "$ref": "GoogleCloudAiplatformV1MigrateResourceRequestMigrateDataLabelingDatasetConfig", - "description": "Config for migrating Dataset in datalabeling.googleapis.com to Vertex AI's Dataset." + "events": { + "description": "The Event edges between Artifacts and Executions in the subgraph.", + "items": { + "$ref": "GoogleCloudAiplatformV1Event" + }, + "type": "array" }, - "migrateMlEngineModelVersionConfig": { - "$ref": "GoogleCloudAiplatformV1MigrateResourceRequestMigrateMlEngineModelVersionConfig", - "description": "Config for migrating Version in ml.googleapis.com to Vertex AI's Model." + "executions": { + "description": "The Execution nodes in the subgraph.", + "items": { + "$ref": "GoogleCloudAiplatformV1Execution" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1MigrateResourceRequestMigrateAutomlDatasetConfig": { - "description": "Config for migrating Dataset in automl.googleapis.com to Vertex AI's Dataset.", - "id": "GoogleCloudAiplatformV1MigrateResourceRequestMigrateAutomlDatasetConfig", + "GoogleCloudAiplatformV1ListAnnotationsResponse": { + "description": "Response message for DatasetService.ListAnnotations.", + "id": "GoogleCloudAiplatformV1ListAnnotationsResponse", "properties": { - "dataset": { - "description": "Required. Full resource name of automl Dataset. Format: `projects/{project}/locations/{location}/datasets/{dataset}`.", - "type": "string" + "annotations": { + "description": "A list of Annotations that matches the specified filter in the request.", + "items": { + "$ref": "GoogleCloudAiplatformV1Annotation" + }, + "type": "array" }, - "datasetDisplayName": { - "description": "Required. Display name of the Dataset in Vertex AI. System will pick a display name if unspecified.", + "nextPageToken": { + "description": "The standard List next-page token.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1MigrateResourceRequestMigrateAutomlModelConfig": { - "description": "Config for migrating Model in automl.googleapis.com to Vertex AI's Model.", - "id": "GoogleCloudAiplatformV1MigrateResourceRequestMigrateAutomlModelConfig", + "GoogleCloudAiplatformV1ListArtifactsResponse": { + "description": "Response message for MetadataService.ListArtifacts.", + "id": "GoogleCloudAiplatformV1ListArtifactsResponse", "properties": { - "model": { - "description": "Required. Full resource name of automl Model. Format: `projects/{project}/locations/{location}/models/{model}`.", - "type": "string" + "artifacts": { + "description": "The Artifacts retrieved from the MetadataStore.", + "items": { + "$ref": "GoogleCloudAiplatformV1Artifact" + }, + "type": "array" }, - "modelDisplayName": { - "description": "Optional. Display name of the model in Vertex AI. System will pick a display name if unspecified.", + "nextPageToken": { + "description": "A token, which can be sent as ListArtifactsRequest.page_token to retrieve the next page. If this field is not populated, there are no subsequent pages.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1MigrateResourceRequestMigrateDataLabelingDatasetConfig": { - "description": "Config for migrating Dataset in datalabeling.googleapis.com to Vertex AI's Dataset.", - "id": "GoogleCloudAiplatformV1MigrateResourceRequestMigrateDataLabelingDatasetConfig", + "GoogleCloudAiplatformV1ListBatchPredictionJobsResponse": { + "description": "Response message for JobService.ListBatchPredictionJobs", + "id": "GoogleCloudAiplatformV1ListBatchPredictionJobsResponse", "properties": { - "dataset": { - "description": "Required. Full resource name of data labeling Dataset. Format: `projects/{project}/datasets/{dataset}`.", - "type": "string" - }, - "datasetDisplayName": { - "description": "Optional. Display name of the Dataset in Vertex AI. System will pick a display name if unspecified.", - "type": "string" - }, - "migrateDataLabelingAnnotatedDatasetConfigs": { - "description": "Optional. Configs for migrating AnnotatedDataset in datalabeling.googleapis.com to Vertex AI's SavedQuery. The specified AnnotatedDatasets have to belong to the datalabeling Dataset.", + "batchPredictionJobs": { + "description": "List of BatchPredictionJobs in the requested page.", "items": { - "$ref": "GoogleCloudAiplatformV1MigrateResourceRequestMigrateDataLabelingDatasetConfigMigrateDataLabelingAnnotatedDatasetConfig" + "$ref": "GoogleCloudAiplatformV1BatchPredictionJob" }, "type": "array" + }, + "nextPageToken": { + "description": "A token to retrieve the next page of results. Pass to ListBatchPredictionJobsRequest.page_token to obtain that page.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1MigrateResourceRequestMigrateDataLabelingDatasetConfigMigrateDataLabelingAnnotatedDatasetConfig": { - "description": "Config for migrating AnnotatedDataset in datalabeling.googleapis.com to Vertex AI's SavedQuery.", - "id": "GoogleCloudAiplatformV1MigrateResourceRequestMigrateDataLabelingDatasetConfigMigrateDataLabelingAnnotatedDatasetConfig", + "GoogleCloudAiplatformV1ListContextsResponse": { + "description": "Response message for MetadataService.ListContexts.", + "id": "GoogleCloudAiplatformV1ListContextsResponse", "properties": { - "annotatedDataset": { - "description": "Required. Full resource name of data labeling AnnotatedDataset. Format: `projects/{project}/datasets/{dataset}/annotatedDatasets/{annotated_dataset}`.", + "contexts": { + "description": "The Contexts retrieved from the MetadataStore.", + "items": { + "$ref": "GoogleCloudAiplatformV1Context" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token, which can be sent as ListContextsRequest.page_token to retrieve the next page. If this field is not populated, there are no subsequent pages.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1MigrateResourceRequestMigrateMlEngineModelVersionConfig": { - "description": "Config for migrating version in ml.googleapis.com to Vertex AI's Model.", - "id": "GoogleCloudAiplatformV1MigrateResourceRequestMigrateMlEngineModelVersionConfig", + "GoogleCloudAiplatformV1ListCustomJobsResponse": { + "description": "Response message for JobService.ListCustomJobs", + "id": "GoogleCloudAiplatformV1ListCustomJobsResponse", "properties": { - "endpoint": { - "description": "Required. The ml.googleapis.com endpoint that this model version should be migrated from. Example values: * ml.googleapis.com * us-centrall-ml.googleapis.com * europe-west4-ml.googleapis.com * asia-east1-ml.googleapis.com", - "type": "string" - }, - "modelDisplayName": { - "description": "Required. Display name of the model in Vertex AI. System will pick a display name if unspecified.", - "type": "string" + "customJobs": { + "description": "List of CustomJobs in the requested page.", + "items": { + "$ref": "GoogleCloudAiplatformV1CustomJob" + }, + "type": "array" }, - "modelVersion": { - "description": "Required. Full resource name of ml engine model version. Format: `projects/{project}/models/{model}/versions/{version}`.", + "nextPageToken": { + "description": "A token to retrieve the next page of results. Pass to ListCustomJobsRequest.page_token to obtain that page.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1MigrateResourceResponse": { - "description": "Describes a successfully migrated resource.", - "id": "GoogleCloudAiplatformV1MigrateResourceResponse", + "GoogleCloudAiplatformV1ListDataItemsResponse": { + "description": "Response message for DatasetService.ListDataItems.", + "id": "GoogleCloudAiplatformV1ListDataItemsResponse", "properties": { - "dataset": { - "description": "Migrated Dataset's resource name.", - "type": "string" - }, - "migratableResource": { - "$ref": "GoogleCloudAiplatformV1MigratableResource", - "description": "Before migration, the identifier in ml.googleapis.com, automl.googleapis.com or datalabeling.googleapis.com." + "dataItems": { + "description": "A list of DataItems that matches the specified filter in the request.", + "items": { + "$ref": "GoogleCloudAiplatformV1DataItem" + }, + "type": "array" }, - "model": { - "description": "Migrated Model's resource name.", + "nextPageToken": { + "description": "The standard List next-page token.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1Model": { - "description": "A trained machine learning Model.", - "id": "GoogleCloudAiplatformV1Model", + "GoogleCloudAiplatformV1ListDataLabelingJobsResponse": { + "description": "Response message for JobService.ListDataLabelingJobs.", + "id": "GoogleCloudAiplatformV1ListDataLabelingJobsResponse", "properties": { - "artifactUri": { - "description": "Immutable. The path to the directory containing the Model artifact and any of its supporting files. Not present for AutoML Models or Large Models.", - "type": "string" - }, - "containerSpec": { - "$ref": "GoogleCloudAiplatformV1ModelContainerSpec", - "description": "Input only. The specification of the container that is to be used when deploying this Model. The specification is ingested upon ModelService.UploadModel, and all binaries it contains are copied and stored internally by Vertex AI. Not present for AutoML Models or Large Models." - }, - "createTime": { - "description": "Output only. Timestamp when this Model was uploaded into Vertex AI.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "deployedModels": { - "description": "Output only. The pointers to DeployedModels created from this Model. Note that Model could have been deployed to Endpoints in different Locations.", + "dataLabelingJobs": { + "description": "A list of DataLabelingJobs that matches the specified filter in the request.", "items": { - "$ref": "GoogleCloudAiplatformV1DeployedModelRef" + "$ref": "GoogleCloudAiplatformV1DataLabelingJob" }, - "readOnly": true, "type": "array" }, - "description": { - "description": "The description of the Model.", - "type": "string" - }, - "displayName": { - "description": "Required. The display name of the Model. The name can be up to 128 characters long and can consist of any UTF-8 characters.", - "type": "string" - }, - "encryptionSpec": { - "$ref": "GoogleCloudAiplatformV1EncryptionSpec", - "description": "Customer-managed encryption key spec for a Model. If set, this Model and all sub-resources of this Model will be secured by this key." - }, - "etag": { - "description": "Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "nextPageToken": { + "description": "The standard List next-page token.", "type": "string" - }, - "explanationSpec": { - "$ref": "GoogleCloudAiplatformV1ExplanationSpec", - "description": "The default explanation specification for this Model. The Model can be used for requesting explanation after being deployed if it is populated. The Model can be used for batch explanation if it is populated. All fields of the explanation_spec can be overridden by explanation_spec of DeployModelRequest.deployed_model, or explanation_spec of BatchPredictionJob. If the default explanation specification is not set for this Model, this Model can still be used for requesting explanation by setting explanation_spec of DeployModelRequest.deployed_model and for batch explanation by setting explanation_spec of BatchPredictionJob." - }, - "labels": { - "additionalProperties": { - "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1ListDatasetVersionsResponse": { + "description": "Response message for DatasetService.ListDatasetVersions.", + "id": "GoogleCloudAiplatformV1ListDatasetVersionsResponse", + "properties": { + "datasetVersions": { + "description": "A list of DatasetVersions that matches the specified filter in the request.", + "items": { + "$ref": "GoogleCloudAiplatformV1DatasetVersion" }, - "description": "The labels with user-defined metadata to organize your Models. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels.", - "type": "object" - }, - "metadata": { - "description": "Immutable. An additional information about the Model; the schema of the metadata can be found in metadata_schema. Unset if the Model does not have any additional information.", - "type": "any" - }, - "metadataArtifact": { - "description": "Output only. The resource name of the Artifact that was created in MetadataStore when creating the Model. The Artifact resource name pattern is `projects/{project}/locations/{location}/metadataStores/{metadata_store}/artifacts/{artifact}`.", - "readOnly": true, - "type": "string" - }, - "metadataSchemaUri": { - "description": "Immutable. Points to a YAML file stored on Google Cloud Storage describing additional information about the Model, that is specific to it. Unset if the Model does not have any additional information. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). AutoML Models always have this field populated by Vertex AI, if no additional metadata is needed, this field is set to an empty string. Note: The URI given on output will be immutable and probably different, including the URI scheme, than the one given on input. The output URI will point to a location where the user only has a read access.", - "type": "string" - }, - "modelSourceInfo": { - "$ref": "GoogleCloudAiplatformV1ModelSourceInfo", - "description": "Output only. Source of a model. It can either be automl training pipeline, custom training pipeline, BigQuery ML, or existing Vertex AI Model.", - "readOnly": true - }, - "name": { - "description": "The resource name of the Model.", - "type": "string" - }, - "originalModelInfo": { - "$ref": "GoogleCloudAiplatformV1ModelOriginalModelInfo", - "description": "Output only. If this Model is a copy of another Model, this contains info about the original.", - "readOnly": true + "type": "array" }, - "pipelineJob": { - "description": "Optional. This field is populated if the model is produced by a pipeline job.", + "nextPageToken": { + "description": "The standard List next-page token.", "type": "string" - }, - "predictSchemata": { - "$ref": "GoogleCloudAiplatformV1PredictSchemata", - "description": "The schemata that describe formats of the Model's predictions and explanations as given and returned via PredictionService.Predict and PredictionService.Explain." - }, - "supportedDeploymentResourcesTypes": { - "description": "Output only. When this Model is deployed, its prediction resources are described by the `prediction_resources` field of the Endpoint.deployed_models object. Because not all Models support all resource configuration types, the configuration types this Model supports are listed here. If no configuration types are listed, the Model cannot be deployed to an Endpoint and does not support online predictions (PredictionService.Predict or PredictionService.Explain). Such a Model can serve predictions by using a BatchPredictionJob, if it has at least one entry each in supported_input_storage_formats and supported_output_storage_formats.", + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1ListDatasetsResponse": { + "description": "Response message for DatasetService.ListDatasets.", + "id": "GoogleCloudAiplatformV1ListDatasetsResponse", + "properties": { + "datasets": { + "description": "A list of Datasets that matches the specified filter in the request.", "items": { - "enum": [ - "DEPLOYMENT_RESOURCES_TYPE_UNSPECIFIED", - "DEDICATED_RESOURCES", - "AUTOMATIC_RESOURCES", - "SHARED_RESOURCES" - ], - "enumDescriptions": [ - "Should not be used.", - "Resources that are dedicated to the DeployedModel, and that need a higher degree of manual configuration.", - "Resources that to large degree are decided by Vertex AI, and require only a modest additional configuration.", - "Resources that can be shared by multiple DeployedModels. A pre-configured DeploymentResourcePool is required." - ], - "type": "string" + "$ref": "GoogleCloudAiplatformV1Dataset" }, - "readOnly": true, "type": "array" }, - "supportedExportFormats": { - "description": "Output only. The formats in which this Model may be exported. If empty, this Model is not available for export.", + "nextPageToken": { + "description": "The standard List next-page token.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1ListDeploymentResourcePoolsResponse": { + "description": "Response message for ListDeploymentResourcePools method.", + "id": "GoogleCloudAiplatformV1ListDeploymentResourcePoolsResponse", + "properties": { + "deploymentResourcePools": { + "description": "The DeploymentResourcePools from the specified location.", "items": { - "$ref": "GoogleCloudAiplatformV1ModelExportFormat" + "$ref": "GoogleCloudAiplatformV1DeploymentResourcePool" }, - "readOnly": true, "type": "array" }, - "supportedInputStorageFormats": { - "description": "Output only. The formats this Model supports in BatchPredictionJob.input_config. If PredictSchemata.instance_schema_uri exists, the instances should be given as per that schema. The possible formats are: * `jsonl` The JSON Lines format, where each instance is a single line. Uses GcsSource. * `csv` The CSV format, where each instance is a single comma-separated line. The first line in the file is the header, containing comma-separated field names. Uses GcsSource. * `tf-record` The TFRecord format, where each instance is a single record in tfrecord syntax. Uses GcsSource. * `tf-record-gzip` Similar to `tf-record`, but the file is gzipped. Uses GcsSource. * `bigquery` Each instance is a single row in BigQuery. Uses BigQuerySource. * `file-list` Each line of the file is the location of an instance to process, uses `gcs_source` field of the InputConfig object. If this Model doesn't support any of these formats it means it cannot be used with a BatchPredictionJob. However, if it has supported_deployment_resources_types, it could serve online predictions by using PredictionService.Predict or PredictionService.Explain.", + "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" + }, + "GoogleCloudAiplatformV1ListEndpointsResponse": { + "description": "Response message for EndpointService.ListEndpoints.", + "id": "GoogleCloudAiplatformV1ListEndpointsResponse", + "properties": { + "endpoints": { + "description": "List of Endpoints in the requested page.", "items": { - "type": "string" + "$ref": "GoogleCloudAiplatformV1Endpoint" }, - "readOnly": true, "type": "array" }, - "supportedOutputStorageFormats": { - "description": "Output only. The formats this Model supports in BatchPredictionJob.output_config. If both PredictSchemata.instance_schema_uri and PredictSchemata.prediction_schema_uri exist, the predictions are returned together with their instances. In other words, the prediction has the original instance data first, followed by the actual prediction content (as per the schema). The possible formats are: * `jsonl` The JSON Lines format, where each prediction is a single line. Uses GcsDestination. * `csv` The CSV format, where each prediction is a single comma-separated line. The first line in the file is the header, containing comma-separated field names. Uses GcsDestination. * `bigquery` Each prediction is a single row in a BigQuery table, uses BigQueryDestination . If this Model doesn't support any of these formats it means it cannot be used with a BatchPredictionJob. However, if it has supported_deployment_resources_types, it could serve online predictions by using PredictionService.Predict or PredictionService.Explain.", + "nextPageToken": { + "description": "A token to retrieve the next page of results. Pass to ListEndpointsRequest.page_token to obtain that page.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1ListEntityTypesResponse": { + "description": "Response message for FeaturestoreService.ListEntityTypes.", + "id": "GoogleCloudAiplatformV1ListEntityTypesResponse", + "properties": { + "entityTypes": { + "description": "The EntityTypes matching the request.", "items": { - "type": "string" + "$ref": "GoogleCloudAiplatformV1EntityType" }, - "readOnly": true, "type": "array" }, - "trainingPipeline": { - "description": "Output only. The resource name of the TrainingPipeline that uploaded this Model, if any.", - "readOnly": true, - "type": "string" - }, - "updateTime": { - "description": "Output only. Timestamp when this Model was most recently updated.", - "format": "google-datetime", - "readOnly": true, + "nextPageToken": { + "description": "A token, which can be sent as ListEntityTypesRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", "type": "string" - }, - "versionAliases": { - "description": "User provided version aliases so that a model version can be referenced via alias (i.e. `projects/{project}/locations/{location}/models/{model_id}@{version_alias}` instead of auto-generated version id (i.e. `projects/{project}/locations/{location}/models/{model_id}@{version_id})`. The format is a-z{0,126}[a-z0-9] to distinguish from version_id. A default version alias will be created for the first version of the model, and there must be exactly one default version alias for a model.", + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1ListExecutionsResponse": { + "description": "Response message for MetadataService.ListExecutions.", + "id": "GoogleCloudAiplatformV1ListExecutionsResponse", + "properties": { + "executions": { + "description": "The Executions retrieved from the MetadataStore.", "items": { - "type": "string" + "$ref": "GoogleCloudAiplatformV1Execution" }, "type": "array" }, - "versionCreateTime": { - "description": "Output only. Timestamp when this version was created.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "versionDescription": { - "description": "The description of this version.", - "type": "string" - }, - "versionId": { - "description": "Output only. Immutable. The version ID of the model. A new version is committed when a new model version is uploaded or trained under an existing model id. It is an auto-incrementing decimal number in string representation.", - "readOnly": true, - "type": "string" - }, - "versionUpdateTime": { - "description": "Output only. Timestamp when this version was most recently updated.", - "format": "google-datetime", - "readOnly": true, + "nextPageToken": { + "description": "A token, which can be sent as ListExecutionsRequest.page_token to retrieve the next page. If this field is not populated, there are no subsequent pages.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ModelContainerSpec": { - "description": "Specification of a container for serving predictions. Some fields in this message correspond to fields in the [Kubernetes Container v1 core specification](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core).", - "id": "GoogleCloudAiplatformV1ModelContainerSpec", + "GoogleCloudAiplatformV1ListFeatureGroupsResponse": { + "description": "Response message for FeatureRegistryService.ListFeatureGroups.", + "id": "GoogleCloudAiplatformV1ListFeatureGroupsResponse", "properties": { - "args": { - "description": "Immutable. Specifies arguments for the command that runs when the container starts. This overrides the container's [`CMD`](https://docs.docker.com/engine/reference/builder/#cmd). Specify this field as an array of executable and arguments, similar to a Docker `CMD`'s \"default parameters\" form. If you don't specify this field but do specify the command field, then the command from the `command` field runs without any additional arguments. See the [Kubernetes documentation about how the `command` and `args` fields interact with a container's `ENTRYPOINT` and `CMD`](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#notes). If you don't specify this field and don't specify the `command` field, then the container's [`ENTRYPOINT`](https://docs.docker.com/engine/reference/builder/#cmd) and `CMD` determine what runs based on their default behavior. See the Docker documentation about [how `CMD` and `ENTRYPOINT` interact](https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact). In this field, you can reference [environment variables set by Vertex AI](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables) and environment variables set in the env field. You cannot reference environment variables set in the Docker image. In order for environment variables to be expanded, reference them by using the following syntax: $( VARIABLE_NAME) Note that this differs from Bash variable expansion, which does not use parentheses. If a variable cannot be resolved, the reference in the input string is used unchanged. To avoid variable expansion, you can escape this syntax with `$$`; for example: $$(VARIABLE_NAME) This field corresponds to the `args` field of the Kubernetes Containers [v1 core API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core).", + "featureGroups": { + "description": "The FeatureGroups matching the request.", "items": { - "type": "string" + "$ref": "GoogleCloudAiplatformV1FeatureGroup" }, "type": "array" }, - "command": { - "description": "Immutable. Specifies the command that runs when the container starts. This overrides the container's [ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint). Specify this field as an array of executable and arguments, similar to a Docker `ENTRYPOINT`'s \"exec\" form, not its \"shell\" form. If you do not specify this field, then the container's `ENTRYPOINT` runs, in conjunction with the args field or the container's [`CMD`](https://docs.docker.com/engine/reference/builder/#cmd), if either exists. If this field is not specified and the container does not have an `ENTRYPOINT`, then refer to the Docker documentation about [how `CMD` and `ENTRYPOINT` interact](https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact). If you specify this field, then you can also specify the `args` field to provide additional arguments for this command. However, if you specify this field, then the container's `CMD` is ignored. See the [Kubernetes documentation about how the `command` and `args` fields interact with a container's `ENTRYPOINT` and `CMD`](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#notes). In this field, you can reference [environment variables set by Vertex AI](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables) and environment variables set in the env field. You cannot reference environment variables set in the Docker image. In order for environment variables to be expanded, reference them by using the following syntax: $( VARIABLE_NAME) Note that this differs from Bash variable expansion, which does not use parentheses. If a variable cannot be resolved, the reference in the input string is used unchanged. To avoid variable expansion, you can escape this syntax with `$$`; for example: $$(VARIABLE_NAME) This field corresponds to the `command` field of the Kubernetes Containers [v1 core API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core).", + "nextPageToken": { + "description": "A token, which can be sent as ListFeatureGroupsRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1ListFeatureOnlineStoresResponse": { + "description": "Response message for FeatureOnlineStoreAdminService.ListFeatureOnlineStores.", + "id": "GoogleCloudAiplatformV1ListFeatureOnlineStoresResponse", + "properties": { + "featureOnlineStores": { + "description": "The FeatureOnlineStores matching the request.", "items": { - "type": "string" + "$ref": "GoogleCloudAiplatformV1FeatureOnlineStore" }, "type": "array" }, - "deploymentTimeout": { - "description": "Immutable. Deployment timeout. TODO (b/306244185): Revise documentation before exposing.", - "format": "google-duration", + "nextPageToken": { + "description": "A token, which can be sent as ListFeatureOnlineStoresRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", "type": "string" - }, - "env": { - "description": "Immutable. List of environment variables to set in the container. After the container starts running, code running in the container can read these environment variables. Additionally, the command and args fields can reference these variables. Later entries in this list can also reference earlier entries. For example, the following example sets the variable `VAR_2` to have the value `foo bar`: ```json [ { \"name\": \"VAR_1\", \"value\": \"foo\" }, { \"name\": \"VAR_2\", \"value\": \"$(VAR_1) bar\" } ] ``` If you switch the order of the variables in the example, then the expansion does not occur. This field corresponds to the `env` field of the Kubernetes Containers [v1 core API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core).", + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1ListFeatureViewSyncsResponse": { + "description": "Response message for FeatureOnlineStoreAdminService.ListFeatureViewSyncs.", + "id": "GoogleCloudAiplatformV1ListFeatureViewSyncsResponse", + "properties": { + "featureViewSyncs": { + "description": "The FeatureViewSyncs matching the request.", "items": { - "$ref": "GoogleCloudAiplatformV1EnvVar" + "$ref": "GoogleCloudAiplatformV1FeatureViewSync" }, "type": "array" }, - "healthProbe": { - "$ref": "GoogleCloudAiplatformV1Probe", - "description": "Immutable. Specification for Kubernetes readiness probe. TODO (b/306244185): Revise documentation before exposing." - }, - "healthRoute": { - "description": "Immutable. HTTP path on the container to send health checks to. Vertex AI intermittently sends GET requests to this path on the container's IP address and port to check that the container is healthy. Read more about [health checks](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#health). For example, if you set this field to `/bar`, then Vertex AI intermittently sends a GET request to the `/bar` path on the port of your container specified by the first value of this `ModelContainerSpec`'s ports field. If you don't specify this field, it defaults to the following value when you deploy this Model to an Endpoint: /v1/endpoints/ENDPOINT/deployedModels/ DEPLOYED_MODEL:predict The placeholders in this value are replaced as follows: * ENDPOINT: The last segment (following `endpoints/`)of the Endpoint.name][] field of the Endpoint where this Model has been deployed. (Vertex AI makes this value available to your container code as the [`AIP_ENDPOINT_ID` environment variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).) * DEPLOYED_MODEL: DeployedModel.id of the `DeployedModel`. (Vertex AI makes this value available to your container code as the [`AIP_DEPLOYED_MODEL_ID` environment variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).)", - "type": "string" - }, - "imageUri": { - "description": "Required. Immutable. URI of the Docker image to be used as the custom container for serving predictions. This URI must identify an image in Artifact Registry or Container Registry. Learn more about the [container publishing requirements](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#publishing), including permissions requirements for the Vertex AI Service Agent. The container image is ingested upon ModelService.UploadModel, stored internally, and this original path is afterwards not used. To learn about the requirements for the Docker image itself, see [Custom container requirements](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#). You can use the URI to one of Vertex AI's [pre-built container images for prediction](https://cloud.google.com/vertex-ai/docs/predictions/pre-built-containers) in this field.", + "nextPageToken": { + "description": "A token, which can be sent as ListFeatureViewSyncsRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", "type": "string" - }, - "ports": { - "description": "Immutable. List of ports to expose from the container. Vertex AI sends any prediction requests that it receives to the first port on this list. Vertex AI also sends [liveness and health checks](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#liveness) to this port. If you do not specify this field, it defaults to following value: ```json [ { \"containerPort\": 8080 } ] ``` Vertex AI does not use ports other than the first one listed. This field corresponds to the `ports` field of the Kubernetes Containers [v1 core API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core).", + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1ListFeatureViewsResponse": { + "description": "Response message for FeatureOnlineStoreAdminService.ListFeatureViews.", + "id": "GoogleCloudAiplatformV1ListFeatureViewsResponse", + "properties": { + "featureViews": { + "description": "The FeatureViews matching the request.", "items": { - "$ref": "GoogleCloudAiplatformV1Port" + "$ref": "GoogleCloudAiplatformV1FeatureView" }, "type": "array" }, - "predictRoute": { - "description": "Immutable. HTTP path on the container to send prediction requests to. Vertex AI forwards requests sent using projects.locations.endpoints.predict to this path on the container's IP address and port. Vertex AI then returns the container's response in the API response. For example, if you set this field to `/foo`, then when Vertex AI receives a prediction request, it forwards the request body in a POST request to the `/foo` path on the port of your container specified by the first value of this `ModelContainerSpec`'s ports field. If you don't specify this field, it defaults to the following value when you deploy this Model to an Endpoint: /v1/endpoints/ENDPOINT/deployedModels/DEPLOYED_MODEL:predict The placeholders in this value are replaced as follows: * ENDPOINT: The last segment (following `endpoints/`)of the Endpoint.name][] field of the Endpoint where this Model has been deployed. (Vertex AI makes this value available to your container code as the [`AIP_ENDPOINT_ID` environment variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).) * DEPLOYED_MODEL: DeployedModel.id of the `DeployedModel`. (Vertex AI makes this value available to your container code as the [`AIP_DEPLOYED_MODEL_ID` environment variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).)", - "type": "string" - }, - "sharedMemorySizeMb": { - "description": "Immutable. The amount of the VM memory to reserve as the shared memory for the model in megabytes. TODO (b/306244185): Revise documentation before exposing.", - "format": "int64", + "nextPageToken": { + "description": "A token, which can be sent as ListFeatureViewsRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", "type": "string" - }, - "startupProbe": { - "$ref": "GoogleCloudAiplatformV1Probe", - "description": "Immutable. Specification for Kubernetes startup probe. TODO (b/306244185): Revise documentation before exposing." } }, "type": "object" }, - "GoogleCloudAiplatformV1ModelDeploymentMonitoringBigQueryTable": { - "description": "ModelDeploymentMonitoringBigQueryTable specifies the BigQuery table name as well as some information of the logs stored in this table.", - "id": "GoogleCloudAiplatformV1ModelDeploymentMonitoringBigQueryTable", + "GoogleCloudAiplatformV1ListFeaturesResponse": { + "description": "Response message for FeaturestoreService.ListFeatures. Response message for FeatureRegistryService.ListFeatures.", + "id": "GoogleCloudAiplatformV1ListFeaturesResponse", "properties": { - "bigqueryTablePath": { - "description": "The created BigQuery table to store logs. Customer could do their own query & analysis. Format: `bq://.model_deployment_monitoring_._`", - "type": "string" - }, - "logSource": { - "description": "The source of log.", - "enum": [ - "LOG_SOURCE_UNSPECIFIED", - "TRAINING", - "SERVING" - ], - "enumDescriptions": [ - "Unspecified source.", - "Logs coming from Training dataset.", - "Logs coming from Serving traffic." - ], - "type": "string" + "features": { + "description": "The Features matching the request.", + "items": { + "$ref": "GoogleCloudAiplatformV1Feature" + }, + "type": "array" }, - "logType": { - "description": "The type of log.", - "enum": [ - "LOG_TYPE_UNSPECIFIED", - "PREDICT", - "EXPLAIN" - ], - "enumDescriptions": [ - "Unspecified type.", - "Predict logs.", - "Explain logs." - ], + "nextPageToken": { + "description": "A token, which can be sent as ListFeaturesRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ModelDeploymentMonitoringJob": { - "description": "Represents a job that runs periodically to monitor the deployed models in an endpoint. It will analyze the logged training & prediction data to detect any abnormal behaviors.", - "id": "GoogleCloudAiplatformV1ModelDeploymentMonitoringJob", + "GoogleCloudAiplatformV1ListFeaturestoresResponse": { + "description": "Response message for FeaturestoreService.ListFeaturestores.", + "id": "GoogleCloudAiplatformV1ListFeaturestoresResponse", "properties": { - "analysisInstanceSchemaUri": { - "description": "YAML schema file uri describing the format of a single instance that you want Tensorflow Data Validation (TFDV) to analyze. If this field is empty, all the feature data types are inferred from predict_instance_schema_uri, meaning that TFDV will use the data in the exact format(data type) as prediction request/response. If there are any data type differences between predict instance and TFDV instance, this field can be used to override the schema. For models trained with Vertex AI, this field must be set as all the fields in predict instance formatted as string.", - "type": "string" - }, - "bigqueryTables": { - "description": "Output only. The created bigquery tables for the job under customer project. Customer could do their own query & analysis. There could be 4 log tables in maximum: 1. Training data logging predict request/response 2. Serving data logging predict request/response", - "items": { - "$ref": "GoogleCloudAiplatformV1ModelDeploymentMonitoringBigQueryTable" - }, - "readOnly": true, - "type": "array" - }, - "createTime": { - "description": "Output only. Timestamp when this ModelDeploymentMonitoringJob was created.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "displayName": { - "description": "Required. The user-defined name of the ModelDeploymentMonitoringJob. The name can be up to 128 characters long and can consist of any UTF-8 characters. Display name of a ModelDeploymentMonitoringJob.", - "type": "string" - }, - "enableMonitoringPipelineLogs": { - "description": "If true, the scheduled monitoring pipeline logs are sent to Google Cloud Logging, including pipeline status and anomalies detected. Please note the logs incur cost, which are subject to [Cloud Logging pricing](https://cloud.google.com/logging#pricing).", - "type": "boolean" - }, - "encryptionSpec": { - "$ref": "GoogleCloudAiplatformV1EncryptionSpec", - "description": "Customer-managed encryption key spec for a ModelDeploymentMonitoringJob. If set, this ModelDeploymentMonitoringJob and all sub-resources of this ModelDeploymentMonitoringJob will be secured by this key." - }, - "endpoint": { - "description": "Required. Endpoint resource name. Format: `projects/{project}/locations/{location}/endpoints/{endpoint}`", - "type": "string" - }, - "error": { - "$ref": "GoogleRpcStatus", - "description": "Output only. Only populated when the job's state is `JOB_STATE_FAILED` or `JOB_STATE_CANCELLED`.", - "readOnly": true - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "The labels with user-defined metadata to organize your ModelDeploymentMonitoringJob. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels.", - "type": "object" - }, - "latestMonitoringPipelineMetadata": { - "$ref": "GoogleCloudAiplatformV1ModelDeploymentMonitoringJobLatestMonitoringPipelineMetadata", - "description": "Output only. Latest triggered monitoring pipeline metadata.", - "readOnly": true - }, - "logTtl": { - "description": "The TTL of BigQuery tables in user projects which stores logs. A day is the basic unit of the TTL and we take the ceil of TTL/86400(a day). e.g. { second: 3600} indicates ttl = 1 day.", - "format": "google-duration", - "type": "string" - }, - "loggingSamplingStrategy": { - "$ref": "GoogleCloudAiplatformV1SamplingStrategy", - "description": "Required. Sample Strategy for logging." - }, - "modelDeploymentMonitoringObjectiveConfigs": { - "description": "Required. The config for monitoring objectives. This is a per DeployedModel config. Each DeployedModel needs to be configured separately.", + "featurestores": { + "description": "The Featurestores matching the request.", "items": { - "$ref": "GoogleCloudAiplatformV1ModelDeploymentMonitoringObjectiveConfig" + "$ref": "GoogleCloudAiplatformV1Featurestore" }, "type": "array" }, - "modelDeploymentMonitoringScheduleConfig": { - "$ref": "GoogleCloudAiplatformV1ModelDeploymentMonitoringScheduleConfig", - "description": "Required. Schedule config for running the monitoring job." - }, - "modelMonitoringAlertConfig": { - "$ref": "GoogleCloudAiplatformV1ModelMonitoringAlertConfig", - "description": "Alert config for model monitoring." - }, - "name": { - "description": "Output only. Resource name of a ModelDeploymentMonitoringJob.", - "readOnly": true, - "type": "string" - }, - "nextScheduleTime": { - "description": "Output only. Timestamp when this monitoring pipeline will be scheduled to run for the next round.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "predictInstanceSchemaUri": { - "description": "YAML schema file uri describing the format of a single instance, which are given to format this Endpoint's prediction (and explanation). If not set, we will generate predict schema from collected predict requests.", - "type": "string" - }, - "samplePredictInstance": { - "description": "Sample Predict instance, same format as PredictRequest.instances, this can be set as a replacement of ModelDeploymentMonitoringJob.predict_instance_schema_uri. If not set, we will generate predict schema from collected predict requests.", - "type": "any" - }, - "scheduleState": { - "description": "Output only. Schedule state when the monitoring job is in Running state.", - "enum": [ - "MONITORING_SCHEDULE_STATE_UNSPECIFIED", - "PENDING", - "OFFLINE", - "RUNNING" - ], - "enumDescriptions": [ - "Unspecified state.", - "The pipeline is picked up and wait to run.", - "The pipeline is offline and will be scheduled for next run.", - "The pipeline is running." - ], - "readOnly": true, - "type": "string" - }, - "state": { - "description": "Output only. The detailed state of the monitoring job. When the job is still creating, the state will be 'PENDING'. Once the job is successfully created, the state will be 'RUNNING'. Pause the job, the state will be 'PAUSED'. Resume the job, the state will return to 'RUNNING'.", - "enum": [ - "JOB_STATE_UNSPECIFIED", - "JOB_STATE_QUEUED", - "JOB_STATE_PENDING", - "JOB_STATE_RUNNING", - "JOB_STATE_SUCCEEDED", - "JOB_STATE_FAILED", - "JOB_STATE_CANCELLING", - "JOB_STATE_CANCELLED", - "JOB_STATE_PAUSED", - "JOB_STATE_EXPIRED", - "JOB_STATE_UPDATING", - "JOB_STATE_PARTIALLY_SUCCEEDED" - ], - "enumDescriptions": [ - "The job state is unspecified.", - "The job has been just created or resumed and processing has not yet begun.", - "The service is preparing to run the job.", - "The job is in progress.", - "The job completed successfully.", - "The job failed.", - "The job is being cancelled. From this state the job may only go to either `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED` or `JOB_STATE_CANCELLED`.", - "The job has been cancelled.", - "The job has been stopped, and can be resumed.", - "The job has expired.", - "The job is being updated. Only jobs in the `RUNNING` state can be updated. After updating, the job goes back to the `RUNNING` state.", - "The job is partially succeeded, some results may be missing due to errors." - ], - "readOnly": true, - "type": "string" - }, - "statsAnomaliesBaseDirectory": { - "$ref": "GoogleCloudAiplatformV1GcsDestination", - "description": "Stats anomalies base folder path." - }, - "updateTime": { - "description": "Output only. Timestamp when this ModelDeploymentMonitoringJob was updated most recently.", - "format": "google-datetime", - "readOnly": true, + "nextPageToken": { + "description": "A token, which can be sent as ListFeaturestoresRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ModelDeploymentMonitoringJobLatestMonitoringPipelineMetadata": { - "description": "All metadata of most recent monitoring pipelines.", - "id": "GoogleCloudAiplatformV1ModelDeploymentMonitoringJobLatestMonitoringPipelineMetadata", + "GoogleCloudAiplatformV1ListHyperparameterTuningJobsResponse": { + "description": "Response message for JobService.ListHyperparameterTuningJobs", + "id": "GoogleCloudAiplatformV1ListHyperparameterTuningJobsResponse", "properties": { - "runTime": { - "description": "The time that most recent monitoring pipelines that is related to this run.", - "format": "google-datetime", - "type": "string" + "hyperparameterTuningJobs": { + "description": "List of HyperparameterTuningJobs in the requested page. HyperparameterTuningJob.trials of the jobs will be not be returned.", + "items": { + "$ref": "GoogleCloudAiplatformV1HyperparameterTuningJob" + }, + "type": "array" }, - "status": { - "$ref": "GoogleRpcStatus", - "description": "The status of the most recent monitoring pipeline." + "nextPageToken": { + "description": "A token to retrieve the next page of results. Pass to ListHyperparameterTuningJobsRequest.page_token to obtain that page.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ModelDeploymentMonitoringObjectiveConfig": { - "description": "ModelDeploymentMonitoringObjectiveConfig contains the pair of deployed_model_id to ModelMonitoringObjectiveConfig.", - "id": "GoogleCloudAiplatformV1ModelDeploymentMonitoringObjectiveConfig", + "GoogleCloudAiplatformV1ListIndexEndpointsResponse": { + "description": "Response message for IndexEndpointService.ListIndexEndpoints.", + "id": "GoogleCloudAiplatformV1ListIndexEndpointsResponse", "properties": { - "deployedModelId": { - "description": "The DeployedModel ID of the objective config.", - "type": "string" + "indexEndpoints": { + "description": "List of IndexEndpoints in the requested page.", + "items": { + "$ref": "GoogleCloudAiplatformV1IndexEndpoint" + }, + "type": "array" }, - "objectiveConfig": { - "$ref": "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfig", - "description": "The objective config of for the modelmonitoring job of this deployed model." + "nextPageToken": { + "description": "A token to retrieve next page of results. Pass to ListIndexEndpointsRequest.page_token to obtain that page.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ModelDeploymentMonitoringScheduleConfig": { - "description": "The config for scheduling monitoring job.", - "id": "GoogleCloudAiplatformV1ModelDeploymentMonitoringScheduleConfig", + "GoogleCloudAiplatformV1ListIndexesResponse": { + "description": "Response message for IndexService.ListIndexes.", + "id": "GoogleCloudAiplatformV1ListIndexesResponse", "properties": { - "monitorInterval": { - "description": "Required. The model monitoring job scheduling interval. It will be rounded up to next full hour. This defines how often the monitoring jobs are triggered.", - "format": "google-duration", - "type": "string" + "indexes": { + "description": "List of indexes in the requested page.", + "items": { + "$ref": "GoogleCloudAiplatformV1Index" + }, + "type": "array" }, - "monitorWindow": { - "description": "The time window of the prediction data being included in each prediction dataset. This window specifies how long the data should be collected from historical model results for each run. If not set, ModelDeploymentMonitoringScheduleConfig.monitor_interval will be used. e.g. If currently the cutoff time is 2022-01-08 14:30:00 and the monitor_window is set to be 3600, then data from 2022-01-08 13:30:00 to 2022-01-08 14:30:00 will be retrieved and aggregated to calculate the monitoring statistics.", - "format": "google-duration", + "nextPageToken": { + "description": "A token to retrieve next page of results. Pass to ListIndexesRequest.page_token to obtain that page.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ModelEvaluation": { - "description": "A collection of metrics calculated by comparing Model's predictions on all of the test data against annotations from the test data.", - "id": "GoogleCloudAiplatformV1ModelEvaluation", + "GoogleCloudAiplatformV1ListMetadataSchemasResponse": { + "description": "Response message for MetadataService.ListMetadataSchemas.", + "id": "GoogleCloudAiplatformV1ListMetadataSchemasResponse", "properties": { - "annotationSchemaUri": { - "description": "Points to a YAML file stored on Google Cloud Storage describing EvaluatedDataItemView.predictions, EvaluatedDataItemView.ground_truths, EvaluatedAnnotation.predictions, and EvaluatedAnnotation.ground_truths. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). This field is not populated if there are neither EvaluatedDataItemViews nor EvaluatedAnnotations under this ModelEvaluation.", - "type": "string" - }, - "createTime": { - "description": "Output only. Timestamp when this ModelEvaluation was created.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "dataItemSchemaUri": { - "description": "Points to a YAML file stored on Google Cloud Storage describing EvaluatedDataItemView.data_item_payload and EvaluatedAnnotation.data_item_payload. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). This field is not populated if there are neither EvaluatedDataItemViews nor EvaluatedAnnotations under this ModelEvaluation.", - "type": "string" - }, - "displayName": { - "description": "The display name of the ModelEvaluation.", - "type": "string" - }, - "explanationSpecs": { - "description": "Describes the values of ExplanationSpec that are used for explaining the predicted values on the evaluated data.", + "metadataSchemas": { + "description": "The MetadataSchemas found for the MetadataStore.", "items": { - "$ref": "GoogleCloudAiplatformV1ModelEvaluationModelEvaluationExplanationSpec" + "$ref": "GoogleCloudAiplatformV1MetadataSchema" }, "type": "array" }, - "metadata": { - "description": "The metadata of the ModelEvaluation. For the ModelEvaluation uploaded from Managed Pipeline, metadata contains a structured value with keys of \"pipeline_job_id\", \"evaluation_dataset_type\", \"evaluation_dataset_path\".", - "type": "any" - }, - "metrics": { - "description": "Evaluation metrics of the Model. The schema of the metrics is stored in metrics_schema_uri", - "type": "any" - }, - "metricsSchemaUri": { - "description": "Points to a YAML file stored on Google Cloud Storage describing the metrics of this ModelEvaluation. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject).", - "type": "string" - }, - "modelExplanation": { - "$ref": "GoogleCloudAiplatformV1ModelExplanation", - "description": "Aggregated explanation metrics for the Model's prediction output over the data this ModelEvaluation uses. This field is populated only if the Model is evaluated with explanations, and only for AutoML tabular Models. " - }, - "name": { - "description": "Output only. The resource name of the ModelEvaluation.", - "readOnly": true, + "nextPageToken": { + "description": "A token, which can be sent as ListMetadataSchemasRequest.page_token to retrieve the next page. If this field is not populated, there are no subsequent pages.", "type": "string" - }, - "sliceDimensions": { - "description": "All possible dimensions of ModelEvaluationSlices. The dimensions can be used as the filter of the ModelService.ListModelEvaluationSlices request, in the form of `slice.dimension = `.", - "items": { - "type": "string" - }, - "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1ModelEvaluationModelEvaluationExplanationSpec": { - "id": "GoogleCloudAiplatformV1ModelEvaluationModelEvaluationExplanationSpec", + "GoogleCloudAiplatformV1ListMetadataStoresResponse": { + "description": "Response message for MetadataService.ListMetadataStores.", + "id": "GoogleCloudAiplatformV1ListMetadataStoresResponse", "properties": { - "explanationSpec": { - "$ref": "GoogleCloudAiplatformV1ExplanationSpec", - "description": "Explanation spec details." + "metadataStores": { + "description": "The MetadataStores found for the Location.", + "items": { + "$ref": "GoogleCloudAiplatformV1MetadataStore" + }, + "type": "array" }, - "explanationType": { - "description": "Explanation type. For AutoML Image Classification models, possible values are: * `image-integrated-gradients` * `image-xrai`", + "nextPageToken": { + "description": "A token, which can be sent as ListMetadataStoresRequest.page_token to retrieve the next page. If this field is not populated, there are no subsequent pages.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ModelEvaluationSlice": { - "description": "A collection of metrics calculated by comparing Model's predictions on a slice of the test data against ground truth annotations.", - "id": "GoogleCloudAiplatformV1ModelEvaluationSlice", + "GoogleCloudAiplatformV1ListModelDeploymentMonitoringJobsResponse": { + "description": "Response message for JobService.ListModelDeploymentMonitoringJobs.", + "id": "GoogleCloudAiplatformV1ListModelDeploymentMonitoringJobsResponse", "properties": { - "createTime": { - "description": "Output only. Timestamp when this ModelEvaluationSlice was created.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "metrics": { - "description": "Output only. Sliced evaluation metrics of the Model. The schema of the metrics is stored in metrics_schema_uri", - "readOnly": true, - "type": "any" - }, - "metricsSchemaUri": { - "description": "Output only. Points to a YAML file stored on Google Cloud Storage describing the metrics of this ModelEvaluationSlice. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject).", - "readOnly": true, - "type": "string" - }, - "modelExplanation": { - "$ref": "GoogleCloudAiplatformV1ModelExplanation", - "description": "Output only. Aggregated explanation metrics for the Model's prediction output over the data this ModelEvaluation uses. This field is populated only if the Model is evaluated with explanations, and only for tabular Models.", - "readOnly": true + "modelDeploymentMonitoringJobs": { + "description": "A list of ModelDeploymentMonitoringJobs that matches the specified filter in the request.", + "items": { + "$ref": "GoogleCloudAiplatformV1ModelDeploymentMonitoringJob" + }, + "type": "array" }, - "name": { - "description": "Output only. The resource name of the ModelEvaluationSlice.", - "readOnly": true, + "nextPageToken": { + "description": "The standard List next-page token.", "type": "string" - }, - "slice": { - "$ref": "GoogleCloudAiplatformV1ModelEvaluationSliceSlice", - "description": "Output only. The slice of the test data that is used to evaluate the Model.", - "readOnly": true } }, "type": "object" }, - "GoogleCloudAiplatformV1ModelEvaluationSliceSlice": { - "description": "Definition of a slice.", - "id": "GoogleCloudAiplatformV1ModelEvaluationSliceSlice", + "GoogleCloudAiplatformV1ListModelEvaluationSlicesResponse": { + "description": "Response message for ModelService.ListModelEvaluationSlices.", + "id": "GoogleCloudAiplatformV1ListModelEvaluationSlicesResponse", "properties": { - "dimension": { - "description": "Output only. The dimension of the slice. Well-known dimensions are: * `annotationSpec`: This slice is on the test data that has either ground truth or prediction with AnnotationSpec.display_name equals to value. * `slice`: This slice is a user customized slice defined by its SliceSpec.", - "readOnly": true, - "type": "string" - }, - "sliceSpec": { - "$ref": "GoogleCloudAiplatformV1ModelEvaluationSliceSliceSliceSpec", - "description": "Output only. Specification for how the data was sliced.", - "readOnly": true + "modelEvaluationSlices": { + "description": "List of ModelEvaluations in the requested page.", + "items": { + "$ref": "GoogleCloudAiplatformV1ModelEvaluationSlice" + }, + "type": "array" }, - "value": { - "description": "Output only. The value of the dimension in this slice.", - "readOnly": true, + "nextPageToken": { + "description": "A token to retrieve next page of results. Pass to ListModelEvaluationSlicesRequest.page_token to obtain that page.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ModelEvaluationSliceSliceSliceSpec": { - "description": "Specification for how the data should be sliced.", - "id": "GoogleCloudAiplatformV1ModelEvaluationSliceSliceSliceSpec", + "GoogleCloudAiplatformV1ListModelEvaluationsResponse": { + "description": "Response message for ModelService.ListModelEvaluations.", + "id": "GoogleCloudAiplatformV1ListModelEvaluationsResponse", "properties": { - "configs": { - "additionalProperties": { - "$ref": "GoogleCloudAiplatformV1ModelEvaluationSliceSliceSliceSpecSliceConfig" + "modelEvaluations": { + "description": "List of ModelEvaluations in the requested page.", + "items": { + "$ref": "GoogleCloudAiplatformV1ModelEvaluation" }, - "description": "Mapping configuration for this SliceSpec. The key is the name of the feature. By default, the key will be prefixed by \"instance\" as a dictionary prefix for Vertex Batch Predictions output format.", - "type": "object" + "type": "array" + }, + "nextPageToken": { + "description": "A token to retrieve next page of results. Pass to ListModelEvaluationsRequest.page_token to obtain that page.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ModelEvaluationSliceSliceSliceSpecRange": { - "description": "A range of values for slice(s). `low` is inclusive, `high` is exclusive.", - "id": "GoogleCloudAiplatformV1ModelEvaluationSliceSliceSliceSpecRange", + "GoogleCloudAiplatformV1ListModelVersionsResponse": { + "description": "Response message for ModelService.ListModelVersions", + "id": "GoogleCloudAiplatformV1ListModelVersionsResponse", "properties": { - "high": { - "description": "Exclusive high value for the range.", - "format": "float", - "type": "number" + "models": { + "description": "List of Model versions in the requested page. In the returned Model name field, version ID instead of regvision tag will be included.", + "items": { + "$ref": "GoogleCloudAiplatformV1Model" + }, + "type": "array" }, - "low": { - "description": "Inclusive low value for the range.", - "format": "float", - "type": "number" + "nextPageToken": { + "description": "A token to retrieve the next page of results. Pass to ListModelVersionsRequest.page_token to obtain that page.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ModelEvaluationSliceSliceSliceSpecSliceConfig": { - "description": "Specification message containing the config for this SliceSpec. When `kind` is selected as `value` and/or `range`, only a single slice will be computed. When `all_values` is present, a separate slice will be computed for each possible label/value for the corresponding key in `config`. Examples, with feature zip_code with values 12345, 23334, 88888 and feature country with values \"US\", \"Canada\", \"Mexico\" in the dataset: Example 1: { \"zip_code\": { \"value\": { \"float_value\": 12345.0 } } } A single slice for any data with zip_code 12345 in the dataset. Example 2: { \"zip_code\": { \"range\": { \"low\": 12345, \"high\": 20000 } } } A single slice containing data where the zip_codes between 12345 and 20000 For this example, data with the zip_code of 12345 will be in this slice. Example 3: { \"zip_code\": { \"range\": { \"low\": 10000, \"high\": 20000 } }, \"country\": { \"value\": { \"string_value\": \"US\" } } } A single slice containing data where the zip_codes between 10000 and 20000 has the country \"US\". For this example, data with the zip_code of 12345 and country \"US\" will be in this slice. Example 4: { \"country\": {\"all_values\": { \"value\": true } } } Three slices are computed, one for each unique country in the dataset. Example 5: { \"country\": { \"all_values\": { \"value\": true } }, \"zip_code\": { \"value\": { \"float_value\": 12345.0 } } } Three slices are computed, one for each unique country in the dataset where the zip_code is also 12345. For this example, data with zip_code 12345 and country \"US\" will be in one slice, zip_code 12345 and country \"Canada\" in another slice, and zip_code 12345 and country \"Mexico\" in another slice, totaling 3 slices.", - "id": "GoogleCloudAiplatformV1ModelEvaluationSliceSliceSliceSpecSliceConfig", + "GoogleCloudAiplatformV1ListModelsResponse": { + "description": "Response message for ModelService.ListModels", + "id": "GoogleCloudAiplatformV1ListModelsResponse", "properties": { - "allValues": { - "description": "If all_values is set to true, then all possible labels of the keyed feature will have another slice computed. Example: `{\"all_values\":{\"value\":true}}`", - "type": "boolean" - }, - "range": { - "$ref": "GoogleCloudAiplatformV1ModelEvaluationSliceSliceSliceSpecRange", - "description": "A range of values for a numerical feature. Example: `{\"range\":{\"low\":10000.0,\"high\":50000.0}}` will capture 12345 and 23334 in the slice." + "models": { + "description": "List of Models in the requested page.", + "items": { + "$ref": "GoogleCloudAiplatformV1Model" + }, + "type": "array" }, - "value": { - "$ref": "GoogleCloudAiplatformV1ModelEvaluationSliceSliceSliceSpecValue", - "description": "A unique specific value for a given feature. Example: `{ \"value\": { \"string_value\": \"12345\" } }`" + "nextPageToken": { + "description": "A token to retrieve next page of results. Pass to ListModelsRequest.page_token to obtain that page.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ModelEvaluationSliceSliceSliceSpecValue": { - "description": "Single value that supports strings and floats.", - "id": "GoogleCloudAiplatformV1ModelEvaluationSliceSliceSliceSpecValue", + "GoogleCloudAiplatformV1ListNasJobsResponse": { + "description": "Response message for JobService.ListNasJobs", + "id": "GoogleCloudAiplatformV1ListNasJobsResponse", "properties": { - "floatValue": { - "description": "Float type.", - "format": "float", - "type": "number" + "nasJobs": { + "description": "List of NasJobs in the requested page. NasJob.nas_job_output of the jobs will not be returned.", + "items": { + "$ref": "GoogleCloudAiplatformV1NasJob" + }, + "type": "array" }, - "stringValue": { - "description": "String type.", + "nextPageToken": { + "description": "A token to retrieve the next page of results. Pass to ListNasJobsRequest.page_token to obtain that page.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ModelExplanation": { - "description": "Aggregated explanation metrics for a Model over a set of instances.", - "id": "GoogleCloudAiplatformV1ModelExplanation", + "GoogleCloudAiplatformV1ListNasTrialDetailsResponse": { + "description": "Response message for JobService.ListNasTrialDetails", + "id": "GoogleCloudAiplatformV1ListNasTrialDetailsResponse", "properties": { - "meanAttributions": { - "description": "Output only. Aggregated attributions explaining the Model's prediction outputs over the set of instances. The attributions are grouped by outputs. For Models that predict only one output, such as regression Models that predict only one score, there is only one attibution that explains the predicted output. For Models that predict multiple outputs, such as multiclass Models that predict multiple classes, each element explains one specific item. Attribution.output_index can be used to identify which output this attribution is explaining. The baselineOutputValue, instanceOutputValue and featureAttributions fields are averaged over the test data. NOTE: Currently AutoML tabular classification Models produce only one attribution, which averages attributions over all the classes it predicts. Attribution.approximation_error is not populated.", + "nasTrialDetails": { + "description": "List of top NasTrials in the requested page.", "items": { - "$ref": "GoogleCloudAiplatformV1Attribution" + "$ref": "GoogleCloudAiplatformV1NasTrialDetail" }, - "readOnly": true, "type": "array" + }, + "nextPageToken": { + "description": "A token to retrieve the next page of results. Pass to ListNasTrialDetailsRequest.page_token to obtain that page.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ModelExportFormat": { - "description": "Represents export format supported by the Model. All formats export to Google Cloud Storage.", - "id": "GoogleCloudAiplatformV1ModelExportFormat", + "GoogleCloudAiplatformV1ListNotebookRuntimeTemplatesResponse": { + "description": "Response message for NotebookService.ListNotebookRuntimeTemplates.", + "id": "GoogleCloudAiplatformV1ListNotebookRuntimeTemplatesResponse", "properties": { - "exportableContents": { - "description": "Output only. The content of this Model that may be exported.", + "nextPageToken": { + "description": "A token to retrieve next page of results. Pass to ListNotebookRuntimeTemplatesRequest.page_token to obtain that page.", + "type": "string" + }, + "notebookRuntimeTemplates": { + "description": "List of NotebookRuntimeTemplates in the requested page.", "items": { - "enum": [ - "EXPORTABLE_CONTENT_UNSPECIFIED", - "ARTIFACT", - "IMAGE" - ], - "enumDescriptions": [ - "Should not be used.", - "Model artifact and any of its supported files. Will be exported to the location specified by the `artifactDestination` field of the ExportModelRequest.output_config object.", - "The container image that is to be used when deploying this Model. Will be exported to the location specified by the `imageDestination` field of the ExportModelRequest.output_config object." - ], - "type": "string" + "$ref": "GoogleCloudAiplatformV1NotebookRuntimeTemplate" }, - "readOnly": true, "type": "array" - }, - "id": { - "description": "Output only. The ID of the export format. The possible format IDs are: * `tflite` Used for Android mobile devices. * `edgetpu-tflite` Used for [Edge TPU](https://cloud.google.com/edge-tpu/) devices. * `tf-saved-model` A tensorflow model in SavedModel format. * `tf-js` A [TensorFlow.js](https://www.tensorflow.org/js) model that can be used in the browser and in Node.js using JavaScript. * `core-ml` Used for iOS mobile devices. * `custom-trained` A Model that was uploaded or trained by custom code.", - "readOnly": true, - "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ModelMonitoringAlertConfig": { - "id": "GoogleCloudAiplatformV1ModelMonitoringAlertConfig", + "GoogleCloudAiplatformV1ListNotebookRuntimesResponse": { + "description": "Response message for NotebookService.ListNotebookRuntimes.", + "id": "GoogleCloudAiplatformV1ListNotebookRuntimesResponse", "properties": { - "emailAlertConfig": { - "$ref": "GoogleCloudAiplatformV1ModelMonitoringAlertConfigEmailAlertConfig", - "description": "Email alert config." - }, - "enableLogging": { - "description": "Dump the anomalies to Cloud Logging. The anomalies will be put to json payload encoded from proto google.cloud.aiplatform.logging.ModelMonitoringAnomaliesLogEntry. This can be further sinked to Pub/Sub or any other services supported by Cloud Logging.", - "type": "boolean" + "nextPageToken": { + "description": "A token to retrieve next page of results. Pass to ListNotebookRuntimesRequest.page_token to obtain that page.", + "type": "string" }, - "notificationChannels": { - "description": "Resource names of the NotificationChannels to send alert. Must be of the format `projects//notificationChannels/`", + "notebookRuntimes": { + "description": "List of NotebookRuntimes in the requested page.", "items": { - "type": "string" + "$ref": "GoogleCloudAiplatformV1NotebookRuntime" }, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1ModelMonitoringAlertConfigEmailAlertConfig": { - "description": "The config for email alert.", - "id": "GoogleCloudAiplatformV1ModelMonitoringAlertConfigEmailAlertConfig", + "GoogleCloudAiplatformV1ListOptimalTrialsRequest": { + "description": "Request message for VizierService.ListOptimalTrials.", + "id": "GoogleCloudAiplatformV1ListOptimalTrialsRequest", + "properties": {}, + "type": "object" + }, + "GoogleCloudAiplatformV1ListOptimalTrialsResponse": { + "description": "Response message for VizierService.ListOptimalTrials.", + "id": "GoogleCloudAiplatformV1ListOptimalTrialsResponse", "properties": { - "userEmails": { - "description": "The email addresses to send the alert.", + "optimalTrials": { + "description": "The pareto-optimal Trials for multiple objective Study or the optimal trial for single objective Study. The definition of pareto-optimal can be checked in wiki page. https://en.wikipedia.org/wiki/Pareto_efficiency", "items": { - "type": "string" + "$ref": "GoogleCloudAiplatformV1Trial" }, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfig": { - "description": "The objective configuration for model monitoring, including the information needed to detect anomalies for one particular model.", - "id": "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfig", + "GoogleCloudAiplatformV1ListPipelineJobsResponse": { + "description": "Response message for PipelineService.ListPipelineJobs", + "id": "GoogleCloudAiplatformV1ListPipelineJobsResponse", "properties": { - "explanationConfig": { - "$ref": "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigExplanationConfig", - "description": "The config for integrating with Vertex Explainable AI." - }, - "predictionDriftDetectionConfig": { - "$ref": "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigPredictionDriftDetectionConfig", - "description": "The config for drift of prediction data." - }, - "trainingDataset": { - "$ref": "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigTrainingDataset", - "description": "Training dataset for models. This field has to be set only if TrainingPredictionSkewDetectionConfig is specified." + "nextPageToken": { + "description": "A token to retrieve the next page of results. Pass to ListPipelineJobsRequest.page_token to obtain that page.", + "type": "string" }, - "trainingPredictionSkewDetectionConfig": { - "$ref": "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigTrainingPredictionSkewDetectionConfig", - "description": "The config for skew between training data and prediction data." + "pipelineJobs": { + "description": "List of PipelineJobs in the requested page.", + "items": { + "$ref": "GoogleCloudAiplatformV1PipelineJob" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigExplanationConfig": { - "description": "The config for integrating with Vertex Explainable AI. Only applicable if the Model has explanation_spec populated.", - "id": "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigExplanationConfig", + "GoogleCloudAiplatformV1ListSavedQueriesResponse": { + "description": "Response message for DatasetService.ListSavedQueries.", + "id": "GoogleCloudAiplatformV1ListSavedQueriesResponse", "properties": { - "enableFeatureAttributes": { - "description": "If want to analyze the Vertex Explainable AI feature attribute scores or not. If set to true, Vertex AI will log the feature attributions from explain response and do the skew/drift detection for them.", - "type": "boolean" + "nextPageToken": { + "description": "The standard List next-page token.", + "type": "string" }, - "explanationBaseline": { - "$ref": "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigExplanationConfigExplanationBaseline", - "description": "Predictions generated by the BatchPredictionJob using baseline dataset." + "savedQueries": { + "description": "A list of SavedQueries that match the specified filter in the request.", + "items": { + "$ref": "GoogleCloudAiplatformV1SavedQuery" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigExplanationConfigExplanationBaseline": { - "description": "Output from BatchPredictionJob for Model Monitoring baseline dataset, which can be used to generate baseline attribution scores.", - "id": "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigExplanationConfigExplanationBaseline", + "GoogleCloudAiplatformV1ListSchedulesResponse": { + "description": "Response message for ScheduleService.ListSchedules", + "id": "GoogleCloudAiplatformV1ListSchedulesResponse", "properties": { - "bigquery": { - "$ref": "GoogleCloudAiplatformV1BigQueryDestination", - "description": "BigQuery location for BatchExplain output." - }, - "gcs": { - "$ref": "GoogleCloudAiplatformV1GcsDestination", - "description": "Cloud Storage location for BatchExplain output." - }, - "predictionFormat": { - "description": "The storage format of the predictions generated BatchPrediction job.", - "enum": [ - "PREDICTION_FORMAT_UNSPECIFIED", - "JSONL", - "BIGQUERY" - ], - "enumDescriptions": [ - "Should not be set.", - "Predictions are in JSONL files.", - "Predictions are in BigQuery." - ], + "nextPageToken": { + "description": "A token to retrieve the next page of results. Pass to ListSchedulesRequest.page_token to obtain that page.", "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigPredictionDriftDetectionConfig": { - "description": "The config for Prediction data drift detection.", - "id": "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigPredictionDriftDetectionConfig", - "properties": { - "attributionScoreDriftThresholds": { - "additionalProperties": { - "$ref": "GoogleCloudAiplatformV1ThresholdConfig" - }, - "description": "Key is the feature name and value is the threshold. The threshold here is against attribution score distance between different time windows.", - "type": "object" - }, - "defaultDriftThreshold": { - "$ref": "GoogleCloudAiplatformV1ThresholdConfig", - "description": "Drift anomaly detection threshold used by all features. When the per-feature thresholds are not set, this field can be used to specify a threshold for all features." }, - "driftThresholds": { - "additionalProperties": { - "$ref": "GoogleCloudAiplatformV1ThresholdConfig" + "schedules": { + "description": "List of Schedules in the requested page.", + "items": { + "$ref": "GoogleCloudAiplatformV1Schedule" }, - "description": "Key is the feature name and value is the threshold. If a feature needs to be monitored for drift, a value threshold must be configured for that feature. The threshold here is against feature distribution distance between different time windws.", - "type": "object" + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigTrainingDataset": { - "description": "Training Dataset information.", - "id": "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigTrainingDataset", + "GoogleCloudAiplatformV1ListSpecialistPoolsResponse": { + "description": "Response message for SpecialistPoolService.ListSpecialistPools.", + "id": "GoogleCloudAiplatformV1ListSpecialistPoolsResponse", "properties": { - "bigquerySource": { - "$ref": "GoogleCloudAiplatformV1BigQuerySource", - "description": "The BigQuery table of the unmanaged Dataset used to train this Model." - }, - "dataFormat": { - "description": "Data format of the dataset, only applicable if the input is from Google Cloud Storage. The possible formats are: \"tf-record\" The source file is a TFRecord file. \"csv\" The source file is a CSV file. \"jsonl\" The source file is a JSONL file.", - "type": "string" - }, - "dataset": { - "description": "The resource name of the Dataset used to train this Model.", + "nextPageToken": { + "description": "The standard List next-page token.", "type": "string" }, - "gcsSource": { - "$ref": "GoogleCloudAiplatformV1GcsSource", - "description": "The Google Cloud Storage uri of the unmanaged Dataset used to train this Model." - }, - "loggingSamplingStrategy": { - "$ref": "GoogleCloudAiplatformV1SamplingStrategy", - "description": "Strategy to sample data from Training Dataset. If not set, we process the whole dataset." - }, - "targetField": { - "description": "The target field name the model is to predict. This field will be excluded when doing Predict and (or) Explain for the training data.", - "type": "string" + "specialistPools": { + "description": "A list of SpecialistPools that matches the specified filter in the request.", + "items": { + "$ref": "GoogleCloudAiplatformV1SpecialistPool" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigTrainingPredictionSkewDetectionConfig": { - "description": "The config for Training & Prediction data skew detection. It specifies the training dataset sources and the skew detection parameters.", - "id": "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigTrainingPredictionSkewDetectionConfig", + "GoogleCloudAiplatformV1ListStudiesResponse": { + "description": "Response message for VizierService.ListStudies.", + "id": "GoogleCloudAiplatformV1ListStudiesResponse", "properties": { - "attributionScoreSkewThresholds": { - "additionalProperties": { - "$ref": "GoogleCloudAiplatformV1ThresholdConfig" - }, - "description": "Key is the feature name and value is the threshold. The threshold here is against attribution score distance between the training and prediction feature.", - "type": "object" - }, - "defaultSkewThreshold": { - "$ref": "GoogleCloudAiplatformV1ThresholdConfig", - "description": "Skew anomaly detection threshold used by all features. When the per-feature thresholds are not set, this field can be used to specify a threshold for all features." + "nextPageToken": { + "description": "Passes this token as the `page_token` field of the request for a subsequent call. If this field is omitted, there are no subsequent pages.", + "type": "string" }, - "skewThresholds": { - "additionalProperties": { - "$ref": "GoogleCloudAiplatformV1ThresholdConfig" + "studies": { + "description": "The studies associated with the project.", + "items": { + "$ref": "GoogleCloudAiplatformV1Study" }, - "description": "Key is the feature name and value is the threshold. If a feature needs to be monitored for skew, a value threshold must be configured for that feature. The threshold here is against feature distribution distance between the training and prediction feature.", - "type": "object" + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1ModelMonitoringStatsAnomalies": { - "description": "Statistics and anomalies generated by Model Monitoring.", - "id": "GoogleCloudAiplatformV1ModelMonitoringStatsAnomalies", + "GoogleCloudAiplatformV1ListTensorboardExperimentsResponse": { + "description": "Response message for TensorboardService.ListTensorboardExperiments.", + "id": "GoogleCloudAiplatformV1ListTensorboardExperimentsResponse", "properties": { - "anomalyCount": { - "description": "Number of anomalies within all stats.", - "format": "int32", - "type": "integer" - }, - "deployedModelId": { - "description": "Deployed Model ID.", + "nextPageToken": { + "description": "A token, which can be sent as ListTensorboardExperimentsRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", "type": "string" }, - "featureStats": { - "description": "A list of historical Stats and Anomalies generated for all Features.", + "tensorboardExperiments": { + "description": "The TensorboardExperiments mathching the request.", "items": { - "$ref": "GoogleCloudAiplatformV1ModelMonitoringStatsAnomaliesFeatureHistoricStatsAnomalies" + "$ref": "GoogleCloudAiplatformV1TensorboardExperiment" }, "type": "array" - }, - "objective": { - "description": "Model Monitoring Objective those stats and anomalies belonging to.", - "enum": [ - "MODEL_DEPLOYMENT_MONITORING_OBJECTIVE_TYPE_UNSPECIFIED", - "RAW_FEATURE_SKEW", - "RAW_FEATURE_DRIFT", - "FEATURE_ATTRIBUTION_SKEW", - "FEATURE_ATTRIBUTION_DRIFT" - ], - "enumDescriptions": [ - "Default value, should not be set.", - "Raw feature values' stats to detect skew between Training-Prediction datasets.", - "Raw feature values' stats to detect drift between Serving-Prediction datasets.", - "Feature attribution scores to detect skew between Training-Prediction datasets.", - "Feature attribution scores to detect skew between Prediction datasets collected within different time windows." - ], - "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ModelMonitoringStatsAnomaliesFeatureHistoricStatsAnomalies": { - "description": "Historical Stats (and Anomalies) for a specific Feature.", - "id": "GoogleCloudAiplatformV1ModelMonitoringStatsAnomaliesFeatureHistoricStatsAnomalies", + "GoogleCloudAiplatformV1ListTensorboardRunsResponse": { + "description": "Response message for TensorboardService.ListTensorboardRuns.", + "id": "GoogleCloudAiplatformV1ListTensorboardRunsResponse", "properties": { - "featureDisplayName": { - "description": "Display Name of the Feature.", + "nextPageToken": { + "description": "A token, which can be sent as ListTensorboardRunsRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", "type": "string" }, - "predictionStats": { - "description": "A list of historical stats generated by different time window's Prediction Dataset.", + "tensorboardRuns": { + "description": "The TensorboardRuns mathching the request.", "items": { - "$ref": "GoogleCloudAiplatformV1FeatureStatsAnomaly" + "$ref": "GoogleCloudAiplatformV1TensorboardRun" }, "type": "array" - }, - "threshold": { - "$ref": "GoogleCloudAiplatformV1ThresholdConfig", - "description": "Threshold for anomaly detection." - }, - "trainingStats": { - "$ref": "GoogleCloudAiplatformV1FeatureStatsAnomaly", - "description": "Stats calculated for the Training Dataset." } }, "type": "object" }, - "GoogleCloudAiplatformV1ModelOriginalModelInfo": { - "description": "Contains information about the original Model if this Model is a copy.", - "id": "GoogleCloudAiplatformV1ModelOriginalModelInfo", + "GoogleCloudAiplatformV1ListTensorboardTimeSeriesResponse": { + "description": "Response message for TensorboardService.ListTensorboardTimeSeries.", + "id": "GoogleCloudAiplatformV1ListTensorboardTimeSeriesResponse", "properties": { - "model": { - "description": "Output only. The resource name of the Model this Model is a copy of, including the revision. Format: `projects/{project}/locations/{location}/models/{model_id}@{version_id}`", - "readOnly": true, + "nextPageToken": { + "description": "A token, which can be sent as ListTensorboardTimeSeriesRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", "type": "string" + }, + "tensorboardTimeSeries": { + "description": "The TensorboardTimeSeries mathching the request.", + "items": { + "$ref": "GoogleCloudAiplatformV1TensorboardTimeSeries" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1ModelSourceInfo": { - "description": "Detail description of the source information of the model.", - "id": "GoogleCloudAiplatformV1ModelSourceInfo", + "GoogleCloudAiplatformV1ListTensorboardsResponse": { + "description": "Response message for TensorboardService.ListTensorboards.", + "id": "GoogleCloudAiplatformV1ListTensorboardsResponse", "properties": { - "copy": { - "description": "If this Model is copy of another Model. If true then source_type pertains to the original.", - "type": "boolean" - }, - "sourceType": { - "description": "Type of the model source.", - "enum": [ - "MODEL_SOURCE_TYPE_UNSPECIFIED", - "AUTOML", - "CUSTOM", - "BQML", - "MODEL_GARDEN", - "GENIE" - ], - "enumDescriptions": [ - "Should not be used.", - "The Model is uploaded by automl training pipeline.", - "The Model is uploaded by user or custom training pipeline.", - "The Model is registered and sync'ed from BigQuery ML.", - "The Model is saved or tuned from Model Garden.", - "The Model is saved or tuned from Genie." - ], + "nextPageToken": { + "description": "A token, which can be sent as ListTensorboardsRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", "type": "string" + }, + "tensorboards": { + "description": "The Tensorboards mathching the request.", + "items": { + "$ref": "GoogleCloudAiplatformV1Tensorboard" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1MutateDeployedIndexOperationMetadata": { - "description": "Runtime operation information for IndexEndpointService.MutateDeployedIndex.", - "id": "GoogleCloudAiplatformV1MutateDeployedIndexOperationMetadata", + "GoogleCloudAiplatformV1ListTrainingPipelinesResponse": { + "description": "Response message for PipelineService.ListTrainingPipelines", + "id": "GoogleCloudAiplatformV1ListTrainingPipelinesResponse", "properties": { - "deployedIndexId": { - "description": "The unique index id specified by user", + "nextPageToken": { + "description": "A token to retrieve the next page of results. Pass to ListTrainingPipelinesRequest.page_token to obtain that page.", "type": "string" }, - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "The operation generic information." + "trainingPipelines": { + "description": "List of TrainingPipelines in the requested page.", + "items": { + "$ref": "GoogleCloudAiplatformV1TrainingPipeline" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1MutateDeployedIndexResponse": { - "description": "Response message for IndexEndpointService.MutateDeployedIndex.", - "id": "GoogleCloudAiplatformV1MutateDeployedIndexResponse", + "GoogleCloudAiplatformV1ListTrialsResponse": { + "description": "Response message for VizierService.ListTrials.", + "id": "GoogleCloudAiplatformV1ListTrialsResponse", "properties": { - "deployedIndex": { - "$ref": "GoogleCloudAiplatformV1DeployedIndex", - "description": "The DeployedIndex that had been updated in the IndexEndpoint." + "nextPageToken": { + "description": "Pass this token as the `page_token` field of the request for a subsequent call. If this field is omitted, there are no subsequent pages.", + "type": "string" + }, + "trials": { + "description": "The Trials associated with the Study.", + "items": { + "$ref": "GoogleCloudAiplatformV1Trial" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1MutateDeployedModelOperationMetadata": { - "description": "Runtime operation information for EndpointService.MutateDeployedModel.", - "id": "GoogleCloudAiplatformV1MutateDeployedModelOperationMetadata", + "GoogleCloudAiplatformV1LookupStudyRequest": { + "description": "Request message for VizierService.LookupStudy.", + "id": "GoogleCloudAiplatformV1LookupStudyRequest", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "The operation generic information." + "displayName": { + "description": "Required. The user-defined display name of the Study", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1MutateDeployedModelRequest": { - "description": "Request message for EndpointService.MutateDeployedModel.", - "id": "GoogleCloudAiplatformV1MutateDeployedModelRequest", + "GoogleCloudAiplatformV1MachineSpec": { + "description": "Specification of a single machine.", + "id": "GoogleCloudAiplatformV1MachineSpec", "properties": { - "deployedModel": { - "$ref": "GoogleCloudAiplatformV1DeployedModel", - "description": "Required. The DeployedModel to be mutated within the Endpoint. Only the following fields can be mutated: * `min_replica_count` in either DedicatedResources or AutomaticResources * `max_replica_count` in either DedicatedResources or AutomaticResources * autoscaling_metric_specs * `disable_container_logging` (v1 only) * `enable_container_logging` (v1beta1 only)" + "acceleratorCount": { + "description": "The number of accelerators to attach to the machine.", + "format": "int32", + "type": "integer" }, - "updateMask": { - "description": "Required. The update mask applies to the resource. See google.protobuf.FieldMask.", - "format": "google-fieldmask", + "acceleratorType": { + "description": "Immutable. The type of accelerator(s) that may be attached to the machine as per accelerator_count.", + "enum": [ + "ACCELERATOR_TYPE_UNSPECIFIED", + "NVIDIA_TESLA_K80", + "NVIDIA_TESLA_P100", + "NVIDIA_TESLA_V100", + "NVIDIA_TESLA_P4", + "NVIDIA_TESLA_T4", + "NVIDIA_TESLA_A100", + "NVIDIA_A100_80GB", + "NVIDIA_L4", + "NVIDIA_H100_80GB", + "TPU_V2", + "TPU_V3", + "TPU_V4_POD" + ], + "enumDescriptions": [ + "Unspecified accelerator type, which means no accelerator.", + "Nvidia Tesla K80 GPU.", + "Nvidia Tesla P100 GPU.", + "Nvidia Tesla V100 GPU.", + "Nvidia Tesla P4 GPU.", + "Nvidia Tesla T4 GPU.", + "Nvidia Tesla A100 GPU.", + "Nvidia A100 80GB GPU.", + "Nvidia L4 GPU.", + "Nvidia H100 80Gb GPU.", + "TPU v2.", + "TPU v3.", + "TPU v4." + ], + "type": "string" + }, + "machineType": { + "description": "Immutable. The type of the machine. See the [list of machine types supported for prediction](https://cloud.google.com/vertex-ai/docs/predictions/configure-compute#machine-types) See the [list of machine types supported for custom training](https://cloud.google.com/vertex-ai/docs/training/configure-compute#machine-types). For DeployedModel this field is optional, and the default value is `n1-standard-2`. For BatchPredictionJob or as part of WorkerPoolSpec this field is required.", + "type": "string" + }, + "tpuTopology": { + "description": "Immutable. The topology of the TPUs. Corresponds to the TPU topologies available from GKE. (Example: tpu_topology: \"2x2x1\").", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1MutateDeployedModelResponse": { - "description": "Response message for EndpointService.MutateDeployedModel.", - "id": "GoogleCloudAiplatformV1MutateDeployedModelResponse", + "GoogleCloudAiplatformV1ManualBatchTuningParameters": { + "description": "Manual batch tuning parameters.", + "id": "GoogleCloudAiplatformV1ManualBatchTuningParameters", "properties": { - "deployedModel": { - "$ref": "GoogleCloudAiplatformV1DeployedModel", - "description": "The DeployedModel that's being mutated." + "batchSize": { + "description": "Immutable. The number of the records (e.g. instances) of the operation given in each batch to a machine replica. Machine type, and size of a single record should be considered when setting this parameter, higher value speeds up the batch operation's execution, but too high value will result in a whole batch not fitting in a machine's memory, and the whole operation will fail. The default value is 64.", + "format": "int32", + "type": "integer" } }, "type": "object" }, - "GoogleCloudAiplatformV1NasJob": { - "description": "Represents a Neural Architecture Search (NAS) job.", - "id": "GoogleCloudAiplatformV1NasJob", + "GoogleCloudAiplatformV1Measurement": { + "description": "A message representing a Measurement of a Trial. A Measurement contains the Metrics got by executing a Trial using suggested hyperparameter values.", + "id": "GoogleCloudAiplatformV1Measurement", "properties": { - "createTime": { - "description": "Output only. Time when the NasJob was created.", - "format": "google-datetime", + "elapsedDuration": { + "description": "Output only. Time that the Trial has been running at the point of this Measurement.", + "format": "google-duration", "readOnly": true, "type": "string" }, - "displayName": { - "description": "Required. The display name of the NasJob. The name can be up to 128 characters long and can consist of any UTF-8 characters.", - "type": "string" - }, - "enableRestrictedImageTraining": { - "deprecated": true, - "description": "Optional. Enable a separation of Custom model training and restricted image training for tenant project.", - "type": "boolean" - }, - "encryptionSpec": { - "$ref": "GoogleCloudAiplatformV1EncryptionSpec", - "description": "Customer-managed encryption key options for a NasJob. If this is set, then all resources created by the NasJob will be encrypted with the provided encryption key." + "metrics": { + "description": "Output only. A list of metrics got by evaluating the objective functions using suggested Parameter values.", + "items": { + "$ref": "GoogleCloudAiplatformV1MeasurementMetric" + }, + "readOnly": true, + "type": "array" }, - "endTime": { - "description": "Output only. Time when the NasJob entered any of the following states: `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED`, `JOB_STATE_CANCELLED`.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "error": { - "$ref": "GoogleRpcStatus", - "description": "Output only. Only populated when job's state is JOB_STATE_FAILED or JOB_STATE_CANCELLED.", - "readOnly": true - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "The labels with user-defined metadata to organize NasJobs. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels.", - "type": "object" - }, - "name": { - "description": "Output only. Resource name of the NasJob.", - "readOnly": true, - "type": "string" - }, - "nasJobOutput": { - "$ref": "GoogleCloudAiplatformV1NasJobOutput", - "description": "Output only. Output of the NasJob.", - "readOnly": true - }, - "nasJobSpec": { - "$ref": "GoogleCloudAiplatformV1NasJobSpec", - "description": "Required. The specification of a NasJob." - }, - "startTime": { - "description": "Output only. Time when the NasJob for the first time entered the `JOB_STATE_RUNNING` state.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "state": { - "description": "Output only. The detailed state of the job.", - "enum": [ - "JOB_STATE_UNSPECIFIED", - "JOB_STATE_QUEUED", - "JOB_STATE_PENDING", - "JOB_STATE_RUNNING", - "JOB_STATE_SUCCEEDED", - "JOB_STATE_FAILED", - "JOB_STATE_CANCELLING", - "JOB_STATE_CANCELLED", - "JOB_STATE_PAUSED", - "JOB_STATE_EXPIRED", - "JOB_STATE_UPDATING", - "JOB_STATE_PARTIALLY_SUCCEEDED" - ], - "enumDescriptions": [ - "The job state is unspecified.", - "The job has been just created or resumed and processing has not yet begun.", - "The service is preparing to run the job.", - "The job is in progress.", - "The job completed successfully.", - "The job failed.", - "The job is being cancelled. From this state the job may only go to either `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED` or `JOB_STATE_CANCELLED`.", - "The job has been cancelled.", - "The job has been stopped, and can be resumed.", - "The job has expired.", - "The job is being updated. Only jobs in the `RUNNING` state can be updated. After updating, the job goes back to the `RUNNING` state.", - "The job is partially succeeded, some results may be missing due to errors." - ], - "readOnly": true, - "type": "string" - }, - "updateTime": { - "description": "Output only. Time when the NasJob was most recently updated.", - "format": "google-datetime", + "stepCount": { + "description": "Output only. The number of steps the machine learning model has been trained for. Must be non-negative.", + "format": "int64", "readOnly": true, "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1NasJobOutput": { - "description": "Represents a uCAIP NasJob output.", - "id": "GoogleCloudAiplatformV1NasJobOutput", + "GoogleCloudAiplatformV1MeasurementMetric": { + "description": "A message representing a metric in the measurement.", + "id": "GoogleCloudAiplatformV1MeasurementMetric", "properties": { - "multiTrialJobOutput": { - "$ref": "GoogleCloudAiplatformV1NasJobOutputMultiTrialJobOutput", - "description": "Output only. The output of this multi-trial Neural Architecture Search (NAS) job.", - "readOnly": true + "metricId": { + "description": "Output only. The ID of the Metric. The Metric should be defined in StudySpec's Metrics.", + "readOnly": true, + "type": "string" + }, + "value": { + "description": "Output only. The value for this metric.", + "format": "double", + "readOnly": true, + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1NasJobOutputMultiTrialJobOutput": { - "description": "The output of a multi-trial Neural Architecture Search (NAS) jobs.", - "id": "GoogleCloudAiplatformV1NasJobOutputMultiTrialJobOutput", + "GoogleCloudAiplatformV1MergeVersionAliasesRequest": { + "description": "Request message for ModelService.MergeVersionAliases.", + "id": "GoogleCloudAiplatformV1MergeVersionAliasesRequest", "properties": { - "searchTrials": { - "description": "Output only. List of NasTrials that were started as part of search stage.", - "items": { - "$ref": "GoogleCloudAiplatformV1NasTrial" - }, - "readOnly": true, - "type": "array" - }, - "trainTrials": { - "description": "Output only. List of NasTrials that were started as part of train stage.", + "versionAliases": { + "description": "Required. The set of version aliases to merge. The alias should be at most 128 characters, and match `a-z{0,126}[a-z-0-9]`. Add the `-` prefix to an alias means removing that alias from the version. `-` is NOT counted in the 128 characters. Example: `-golden` means removing the `golden` alias from the version. There is NO ordering in aliases, which means 1) The aliases returned from GetModel API might not have the exactly same order from this MergeVersionAliases API. 2) Adding and deleting the same alias in the request is not recommended, and the 2 operations will be cancelled out.", "items": { - "$ref": "GoogleCloudAiplatformV1NasTrial" + "type": "string" }, - "readOnly": true, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1NasJobSpec": { - "description": "Represents the spec of a NasJob.", - "id": "GoogleCloudAiplatformV1NasJobSpec", + "GoogleCloudAiplatformV1MetadataSchema": { + "description": "Instance of a general MetadataSchema.", + "id": "GoogleCloudAiplatformV1MetadataSchema", "properties": { - "multiTrialAlgorithmSpec": { - "$ref": "GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpec", - "description": "The spec of multi-trial algorithms." - }, - "resumeNasJobId": { - "description": "The ID of the existing NasJob in the same Project and Location which will be used to resume search. search_space_spec and nas_algorithm_spec are obtained from previous NasJob hence should not provide them again for this NasJob.", + "createTime": { + "description": "Output only. Timestamp when this MetadataSchema was created.", + "format": "google-datetime", + "readOnly": true, "type": "string" }, - "searchSpaceSpec": { - "description": "It defines the search space for Neural Architecture Search (NAS).", + "description": { + "description": "Description of the Metadata Schema", "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpec": { - "description": "The spec of multi-trial Neural Architecture Search (NAS).", - "id": "GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpec", - "properties": { - "metric": { - "$ref": "GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpecMetricSpec", - "description": "Metric specs for the NAS job. Validation for this field is done at `multi_trial_algorithm_spec` field." }, - "multiTrialAlgorithm": { - "description": "The multi-trial Neural Architecture Search (NAS) algorithm type. Defaults to `REINFORCEMENT_LEARNING`.", - "enum": [ - "MULTI_TRIAL_ALGORITHM_UNSPECIFIED", - "REINFORCEMENT_LEARNING", - "GRID_SEARCH" - ], - "enumDescriptions": [ - "Defaults to `REINFORCEMENT_LEARNING`.", - "The Reinforcement Learning Algorithm for Multi-trial Neural Architecture Search (NAS).", - "The Grid Search Algorithm for Multi-trial Neural Architecture Search (NAS)." - ], + "name": { + "description": "Output only. The resource name of the MetadataSchema.", + "readOnly": true, "type": "string" }, - "searchTrialSpec": { - "$ref": "GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpecSearchTrialSpec", - "description": "Required. Spec for search trials." + "schema": { + "description": "Required. The raw YAML string representation of the MetadataSchema. The combination of [MetadataSchema.version] and the schema name given by `title` in [MetadataSchema.schema] must be unique within a MetadataStore. The schema is defined as an OpenAPI 3.0.2 [MetadataSchema Object](https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#schemaObject)", + "type": "string" }, - "trainTrialSpec": { - "$ref": "GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpecTrainTrialSpec", - "description": "Spec for train trials. Top N [TrainTrialSpec.max_parallel_trial_count] search trials will be trained for every M [TrainTrialSpec.frequency] trials searched." - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpecMetricSpec": { - "description": "Represents a metric to optimize.", - "id": "GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpecMetricSpec", - "properties": { - "goal": { - "description": "Required. The optimization goal of the metric.", + "schemaType": { + "description": "The type of the MetadataSchema. This is a property that identifies which metadata types will use the MetadataSchema.", "enum": [ - "GOAL_TYPE_UNSPECIFIED", - "MAXIMIZE", - "MINIMIZE" + "METADATA_SCHEMA_TYPE_UNSPECIFIED", + "ARTIFACT_TYPE", + "EXECUTION_TYPE", + "CONTEXT_TYPE" ], "enumDescriptions": [ - "Goal Type will default to maximize.", - "Maximize the goal metric.", - "Minimize the goal metric." + "Unspecified type for the MetadataSchema.", + "A type indicating that the MetadataSchema will be used by Artifacts.", + "A typee indicating that the MetadataSchema will be used by Executions.", + "A state indicating that the MetadataSchema will be used by Contexts." ], "type": "string" }, - "metricId": { - "description": "Required. The ID of the metric. Must not contain whitespaces.", + "schemaVersion": { + "description": "The version of the MetadataSchema. The version's format must match the following regular expression: `^[0-9]+.+.+$`, which would allow to order/compare different versions. Example: 1.0.0, 1.0.1, etc.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpecSearchTrialSpec": { - "description": "Represent spec for search trials.", - "id": "GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpecSearchTrialSpec", + "GoogleCloudAiplatformV1MetadataStore": { + "description": "Instance of a metadata store. Contains a set of metadata that can be queried.", + "id": "GoogleCloudAiplatformV1MetadataStore", "properties": { - "maxFailedTrialCount": { - "description": "The number of failed trials that need to be seen before failing the NasJob. If set to 0, Vertex AI decides how many trials must fail before the whole job fails.", - "format": "int32", - "type": "integer" + "createTime": { + "description": "Output only. Timestamp when this MetadataStore was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" }, - "maxParallelTrialCount": { - "description": "Required. The maximum number of trials to run in parallel.", - "format": "int32", - "type": "integer" + "description": { + "description": "Description of the MetadataStore.", + "type": "string" }, - "maxTrialCount": { - "description": "Required. The maximum number of Neural Architecture Search (NAS) trials to run.", - "format": "int32", - "type": "integer" + "encryptionSpec": { + "$ref": "GoogleCloudAiplatformV1EncryptionSpec", + "description": "Customer-managed encryption key spec for a Metadata Store. If set, this Metadata Store and all sub-resources of this Metadata Store are secured using this key." }, - "searchTrialJobSpec": { - "$ref": "GoogleCloudAiplatformV1CustomJobSpec", - "description": "Required. The spec of a search trial job. The same spec applies to all search trials." + "name": { + "description": "Output only. The resource name of the MetadataStore instance.", + "readOnly": true, + "type": "string" + }, + "state": { + "$ref": "GoogleCloudAiplatformV1MetadataStoreMetadataStoreState", + "description": "Output only. State information of the MetadataStore.", + "readOnly": true + }, + "updateTime": { + "description": "Output only. Timestamp when this MetadataStore was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpecTrainTrialSpec": { - "description": "Represent spec for train trials.", - "id": "GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpecTrainTrialSpec", + "GoogleCloudAiplatformV1MetadataStoreMetadataStoreState": { + "description": "Represents state information for a MetadataStore.", + "id": "GoogleCloudAiplatformV1MetadataStoreMetadataStoreState", "properties": { - "frequency": { - "description": "Required. Frequency of search trials to start train stage. Top N [TrainTrialSpec.max_parallel_trial_count] search trials will be trained for every M [TrainTrialSpec.frequency] trials searched.", - "format": "int32", - "type": "integer" - }, - "maxParallelTrialCount": { - "description": "Required. The maximum number of trials to run in parallel.", - "format": "int32", - "type": "integer" - }, - "trainTrialJobSpec": { - "$ref": "GoogleCloudAiplatformV1CustomJobSpec", - "description": "Required. The spec of a train trial job. The same spec applies to all train trials." + "diskUtilizationBytes": { + "description": "The disk utilization of the MetadataStore in bytes.", + "format": "int64", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1NasTrial": { - "description": "Represents a uCAIP NasJob trial.", - "id": "GoogleCloudAiplatformV1NasTrial", + "GoogleCloudAiplatformV1MigratableResource": { + "description": "Represents one resource that exists in automl.googleapis.com, datalabeling.googleapis.com or ml.googleapis.com.", + "id": "GoogleCloudAiplatformV1MigratableResource", "properties": { - "endTime": { - "description": "Output only. Time when the NasTrial's status changed to `SUCCEEDED` or `INFEASIBLE`.", - "format": "google-datetime", - "readOnly": true, - "type": "string" + "automlDataset": { + "$ref": "GoogleCloudAiplatformV1MigratableResourceAutomlDataset", + "description": "Output only. Represents one Dataset in automl.googleapis.com.", + "readOnly": true }, - "finalMeasurement": { - "$ref": "GoogleCloudAiplatformV1Measurement", - "description": "Output only. The final measurement containing the objective value.", + "automlModel": { + "$ref": "GoogleCloudAiplatformV1MigratableResourceAutomlModel", + "description": "Output only. Represents one Model in automl.googleapis.com.", "readOnly": true }, - "id": { - "description": "Output only. The identifier of the NasTrial assigned by the service.", - "readOnly": true, - "type": "string" + "dataLabelingDataset": { + "$ref": "GoogleCloudAiplatformV1MigratableResourceDataLabelingDataset", + "description": "Output only. Represents one Dataset in datalabeling.googleapis.com.", + "readOnly": true }, - "startTime": { - "description": "Output only. Time when the NasTrial was started.", + "lastMigrateTime": { + "description": "Output only. Timestamp when the last migration attempt on this MigratableResource started. Will not be set if there's no migration attempt on this MigratableResource.", "format": "google-datetime", "readOnly": true, "type": "string" }, - "state": { - "description": "Output only. The detailed state of the NasTrial.", - "enum": [ - "STATE_UNSPECIFIED", - "REQUESTED", - "ACTIVE", - "STOPPING", - "SUCCEEDED", - "INFEASIBLE" - ], - "enumDescriptions": [ - "The NasTrial state is unspecified.", - "Indicates that a specific NasTrial has been requested, but it has not yet been suggested by the service.", - "Indicates that the NasTrial has been suggested.", - "Indicates that the NasTrial should stop according to the service.", - "Indicates that the NasTrial is completed successfully.", - "Indicates that the NasTrial should not be attempted again. The service will set a NasTrial to INFEASIBLE when it's done but missing the final_measurement." - ], + "lastUpdateTime": { + "description": "Output only. Timestamp when this MigratableResource was last updated.", + "format": "google-datetime", "readOnly": true, "type": "string" + }, + "mlEngineModelVersion": { + "$ref": "GoogleCloudAiplatformV1MigratableResourceMlEngineModelVersion", + "description": "Output only. Represents one Version in ml.googleapis.com.", + "readOnly": true } }, "type": "object" }, - "GoogleCloudAiplatformV1NasTrialDetail": { - "description": "Represents a NasTrial details along with its parameters. If there is a corresponding train NasTrial, the train NasTrial is also returned.", - "id": "GoogleCloudAiplatformV1NasTrialDetail", + "GoogleCloudAiplatformV1MigratableResourceAutomlDataset": { + "description": "Represents one Dataset in automl.googleapis.com.", + "id": "GoogleCloudAiplatformV1MigratableResourceAutomlDataset", "properties": { - "name": { - "description": "Output only. Resource name of the NasTrialDetail.", - "readOnly": true, + "dataset": { + "description": "Full resource name of automl Dataset. Format: `projects/{project}/locations/{location}/datasets/{dataset}`.", "type": "string" }, - "parameters": { - "description": "The parameters for the NasJob NasTrial.", + "datasetDisplayName": { + "description": "The Dataset's display name in automl.googleapis.com.", "type": "string" - }, - "searchTrial": { - "$ref": "GoogleCloudAiplatformV1NasTrial", - "description": "The requested search NasTrial." - }, - "trainTrial": { - "$ref": "GoogleCloudAiplatformV1NasTrial", - "description": "The train NasTrial corresponding to search_trial. Only populated if search_trial is used for training." } }, "type": "object" }, - "GoogleCloudAiplatformV1NearestNeighborSearchOperationMetadata": { - "description": "Runtime operation metadata with regard to Matching Engine Index.", - "id": "GoogleCloudAiplatformV1NearestNeighborSearchOperationMetadata", + "GoogleCloudAiplatformV1MigratableResourceAutomlModel": { + "description": "Represents one Model in automl.googleapis.com.", + "id": "GoogleCloudAiplatformV1MigratableResourceAutomlModel", "properties": { - "contentValidationStats": { - "description": "The validation stats of the content (per file) to be inserted or updated on the Matching Engine Index resource. Populated if contentsDeltaUri is provided as part of Index.metadata. Please note that, currently for those files that are broken or has unsupported file format, we will not have the stats for those files.", - "items": { - "$ref": "GoogleCloudAiplatformV1NearestNeighborSearchOperationMetadataContentValidationStats" - }, - "type": "array" + "model": { + "description": "Full resource name of automl Model. Format: `projects/{project}/locations/{location}/models/{model}`.", + "type": "string" }, - "dataBytesCount": { - "description": "The ingested data size in bytes.", - "format": "int64", + "modelDisplayName": { + "description": "The Model's display name in automl.googleapis.com.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1NearestNeighborSearchOperationMetadataContentValidationStats": { - "id": "GoogleCloudAiplatformV1NearestNeighborSearchOperationMetadataContentValidationStats", + "GoogleCloudAiplatformV1MigratableResourceDataLabelingDataset": { + "description": "Represents one Dataset in datalabeling.googleapis.com.", + "id": "GoogleCloudAiplatformV1MigratableResourceDataLabelingDataset", "properties": { - "invalidRecordCount": { - "description": "Number of records in this file we skipped due to validate errors.", - "format": "int64", - "type": "string" - }, - "partialErrors": { - "description": "The detail information of the partial failures encountered for those invalid records that couldn't be parsed. Up to 50 partial errors will be reported.", + "dataLabelingAnnotatedDatasets": { + "description": "The migratable AnnotatedDataset in datalabeling.googleapis.com belongs to the data labeling Dataset.", "items": { - "$ref": "GoogleCloudAiplatformV1NearestNeighborSearchOperationMetadataRecordError" + "$ref": "GoogleCloudAiplatformV1MigratableResourceDataLabelingDatasetDataLabelingAnnotatedDataset" }, "type": "array" }, - "sourceGcsUri": { - "description": "Cloud Storage URI pointing to the original file in user's bucket.", + "dataset": { + "description": "Full resource name of data labeling Dataset. Format: `projects/{project}/datasets/{dataset}`.", "type": "string" }, - "validRecordCount": { - "description": "Number of records in this file that were successfully processed.", - "format": "int64", + "datasetDisplayName": { + "description": "The Dataset's display name in datalabeling.googleapis.com.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1NearestNeighborSearchOperationMetadataRecordError": { - "id": "GoogleCloudAiplatformV1NearestNeighborSearchOperationMetadataRecordError", + "GoogleCloudAiplatformV1MigratableResourceDataLabelingDatasetDataLabelingAnnotatedDataset": { + "description": "Represents one AnnotatedDataset in datalabeling.googleapis.com.", + "id": "GoogleCloudAiplatformV1MigratableResourceDataLabelingDatasetDataLabelingAnnotatedDataset", "properties": { - "embeddingId": { - "description": "Empty if the embedding id is failed to parse.", - "type": "string" - }, - "errorMessage": { - "description": "A human-readable message that is shown to the user to help them fix the error. Note that this message may change from time to time, your code should check against error_type as the source of truth.", + "annotatedDataset": { + "description": "Full resource name of data labeling AnnotatedDataset. Format: `projects/{project}/datasets/{dataset}/annotatedDatasets/{annotated_dataset}`.", "type": "string" }, - "errorType": { - "description": "The error type of this record.", - "enum": [ - "ERROR_TYPE_UNSPECIFIED", - "EMPTY_LINE", - "INVALID_JSON_SYNTAX", - "INVALID_CSV_SYNTAX", - "INVALID_AVRO_SYNTAX", - "INVALID_EMBEDDING_ID", - "EMBEDDING_SIZE_MISMATCH", - "NAMESPACE_MISSING" - ], - "enumDescriptions": [ - "Default, shall not be used.", - "The record is empty.", - "Invalid json format.", - "Invalid csv format.", - "Invalid avro format.", - "The embedding id is not valid.", - "The size of the embedding vectors does not match with the specified dimension.", - "The `namespace` field is missing." - ], + "annotatedDatasetDisplayName": { + "description": "The AnnotatedDataset's display name in datalabeling.googleapis.com.", "type": "string" - }, - "rawRecord": { - "description": "The original content of this record.", + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1MigratableResourceMlEngineModelVersion": { + "description": "Represents one model Version in ml.googleapis.com.", + "id": "GoogleCloudAiplatformV1MigratableResourceMlEngineModelVersion", + "properties": { + "endpoint": { + "description": "The ml.googleapis.com endpoint that this model Version currently lives in. Example values: * ml.googleapis.com * us-centrall-ml.googleapis.com * europe-west4-ml.googleapis.com * asia-east1-ml.googleapis.com", "type": "string" }, - "sourceGcsUri": { - "description": "Cloud Storage URI pointing to the original file in user's bucket.", + "version": { + "description": "Full resource name of ml engine model Version. Format: `projects/{project}/models/{model}/versions/{version}`.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1Neighbor": { - "description": "Neighbors for example-based explanations.", - "id": "GoogleCloudAiplatformV1Neighbor", + "GoogleCloudAiplatformV1MigrateResourceRequest": { + "description": "Config of migrating one resource from automl.googleapis.com, datalabeling.googleapis.com and ml.googleapis.com to Vertex AI.", + "id": "GoogleCloudAiplatformV1MigrateResourceRequest", "properties": { - "neighborDistance": { - "description": "Output only. The neighbor distance.", - "format": "double", - "readOnly": true, - "type": "number" + "migrateAutomlDatasetConfig": { + "$ref": "GoogleCloudAiplatformV1MigrateResourceRequestMigrateAutomlDatasetConfig", + "description": "Config for migrating Dataset in automl.googleapis.com to Vertex AI's Dataset." }, - "neighborId": { - "description": "Output only. The neighbor id.", - "readOnly": true, - "type": "string" + "migrateAutomlModelConfig": { + "$ref": "GoogleCloudAiplatformV1MigrateResourceRequestMigrateAutomlModelConfig", + "description": "Config for migrating Model in automl.googleapis.com to Vertex AI's Model." + }, + "migrateDataLabelingDatasetConfig": { + "$ref": "GoogleCloudAiplatformV1MigrateResourceRequestMigrateDataLabelingDatasetConfig", + "description": "Config for migrating Dataset in datalabeling.googleapis.com to Vertex AI's Dataset." + }, + "migrateMlEngineModelVersionConfig": { + "$ref": "GoogleCloudAiplatformV1MigrateResourceRequestMigrateMlEngineModelVersionConfig", + "description": "Config for migrating Version in ml.googleapis.com to Vertex AI's Model." } }, "type": "object" }, - "GoogleCloudAiplatformV1NetworkSpec": { - "description": "Network spec.", - "id": "GoogleCloudAiplatformV1NetworkSpec", + "GoogleCloudAiplatformV1MigrateResourceRequestMigrateAutomlDatasetConfig": { + "description": "Config for migrating Dataset in automl.googleapis.com to Vertex AI's Dataset.", + "id": "GoogleCloudAiplatformV1MigrateResourceRequestMigrateAutomlDatasetConfig", "properties": { - "enableInternetAccess": { - "description": "Whether to enable public internet access. Default false.", - "type": "boolean" - }, - "network": { - "description": "The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks)", + "dataset": { + "description": "Required. Full resource name of automl Dataset. Format: `projects/{project}/locations/{location}/datasets/{dataset}`.", "type": "string" }, - "subnetwork": { - "description": "The name of the subnet that this instance is in. Format: `projects/{project_id_or_number}/regions/{region}/subnetworks/{subnetwork_id}`", + "datasetDisplayName": { + "description": "Required. Display name of the Dataset in Vertex AI. System will pick a display name if unspecified.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1NfsMount": { - "description": "Represents a mount configuration for Network File System (NFS) to mount.", - "id": "GoogleCloudAiplatformV1NfsMount", + "GoogleCloudAiplatformV1MigrateResourceRequestMigrateAutomlModelConfig": { + "description": "Config for migrating Model in automl.googleapis.com to Vertex AI's Model.", + "id": "GoogleCloudAiplatformV1MigrateResourceRequestMigrateAutomlModelConfig", "properties": { - "mountPoint": { - "description": "Required. Destination mount path. The NFS will be mounted for the user under /mnt/nfs/", - "type": "string" - }, - "path": { - "description": "Required. Source path exported from NFS server. Has to start with '/', and combined with the ip address, it indicates the source mount path in the form of `server:path`", + "model": { + "description": "Required. Full resource name of automl Model. Format: `projects/{project}/locations/{location}/models/{model}`.", "type": "string" }, - "server": { - "description": "Required. IP address of the NFS server.", + "modelDisplayName": { + "description": "Optional. Display name of the model in Vertex AI. System will pick a display name if unspecified.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1NotebookEucConfig": { - "description": "The euc configuration of NotebookRuntimeTemplate.", - "id": "GoogleCloudAiplatformV1NotebookEucConfig", + "GoogleCloudAiplatformV1MigrateResourceRequestMigrateDataLabelingDatasetConfig": { + "description": "Config for migrating Dataset in datalabeling.googleapis.com to Vertex AI's Dataset.", + "id": "GoogleCloudAiplatformV1MigrateResourceRequestMigrateDataLabelingDatasetConfig", "properties": { - "bypassActasCheck": { - "description": "Output only. Whether ActAs check is bypassed for service account attached to the VM. If false, we need ActAs check for the default Compute Engine Service account. When a Runtime is created, a VM is allocated using Default Compute Engine Service Account. Any user requesting to use this Runtime requires Service Account User (ActAs) permission over this SA. If true, Runtime owner is using EUC and does not require the above permission as VM no longer use default Compute Engine SA, but a P4SA.", - "readOnly": true, - "type": "boolean" + "dataset": { + "description": "Required. Full resource name of data labeling Dataset. Format: `projects/{project}/datasets/{dataset}`.", + "type": "string" }, - "eucDisabled": { - "description": "Input only. Whether EUC is disabled in this NotebookRuntimeTemplate. In proto3, the default value of a boolean is false. In this way, by default EUC will be enabled for NotebookRuntimeTemplate.", - "type": "boolean" + "datasetDisplayName": { + "description": "Optional. Display name of the Dataset in Vertex AI. System will pick a display name if unspecified.", + "type": "string" + }, + "migrateDataLabelingAnnotatedDatasetConfigs": { + "description": "Optional. Configs for migrating AnnotatedDataset in datalabeling.googleapis.com to Vertex AI's SavedQuery. The specified AnnotatedDatasets have to belong to the datalabeling Dataset.", + "items": { + "$ref": "GoogleCloudAiplatformV1MigrateResourceRequestMigrateDataLabelingDatasetConfigMigrateDataLabelingAnnotatedDatasetConfig" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1NotebookIdleShutdownConfig": { - "description": "The idle shutdown configuration of NotebookRuntimeTemplate, which contains the idle_timeout as required field.", - "id": "GoogleCloudAiplatformV1NotebookIdleShutdownConfig", + "GoogleCloudAiplatformV1MigrateResourceRequestMigrateDataLabelingDatasetConfigMigrateDataLabelingAnnotatedDatasetConfig": { + "description": "Config for migrating AnnotatedDataset in datalabeling.googleapis.com to Vertex AI's SavedQuery.", + "id": "GoogleCloudAiplatformV1MigrateResourceRequestMigrateDataLabelingDatasetConfigMigrateDataLabelingAnnotatedDatasetConfig", "properties": { - "idleShutdownDisabled": { - "description": "Whether Idle Shutdown is disabled in this NotebookRuntimeTemplate.", - "type": "boolean" + "annotatedDataset": { + "description": "Required. Full resource name of data labeling AnnotatedDataset. Format: `projects/{project}/datasets/{dataset}/annotatedDatasets/{annotated_dataset}`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1MigrateResourceRequestMigrateMlEngineModelVersionConfig": { + "description": "Config for migrating version in ml.googleapis.com to Vertex AI's Model.", + "id": "GoogleCloudAiplatformV1MigrateResourceRequestMigrateMlEngineModelVersionConfig", + "properties": { + "endpoint": { + "description": "Required. The ml.googleapis.com endpoint that this model version should be migrated from. Example values: * ml.googleapis.com * us-centrall-ml.googleapis.com * europe-west4-ml.googleapis.com * asia-east1-ml.googleapis.com", + "type": "string" }, - "idleTimeout": { - "description": "Required. Duration is accurate to the second. In Notebook, Idle Timeout is accurate to minute so the range of idle_timeout (second) is: 10 * 60 ~ 1440 * 60.", - "format": "google-duration", + "modelDisplayName": { + "description": "Required. Display name of the model in Vertex AI. System will pick a display name if unspecified.", + "type": "string" + }, + "modelVersion": { + "description": "Required. Full resource name of ml engine model version. Format: `projects/{project}/models/{model}/versions/{version}`.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1NotebookRuntime": { - "description": "A runtime is a virtual machine allocated to a particular user for a particular Notebook file on temporary basis with lifetime limited to 24 hours.", - "id": "GoogleCloudAiplatformV1NotebookRuntime", + "GoogleCloudAiplatformV1MigrateResourceResponse": { + "description": "Describes a successfully migrated resource.", + "id": "GoogleCloudAiplatformV1MigrateResourceResponse", + "properties": { + "dataset": { + "description": "Migrated Dataset's resource name.", + "type": "string" + }, + "migratableResource": { + "$ref": "GoogleCloudAiplatformV1MigratableResource", + "description": "Before migration, the identifier in ml.googleapis.com, automl.googleapis.com or datalabeling.googleapis.com." + }, + "model": { + "description": "Migrated Model's resource name.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1Model": { + "description": "A trained machine learning Model.", + "id": "GoogleCloudAiplatformV1Model", "properties": { + "artifactUri": { + "description": "Immutable. The path to the directory containing the Model artifact and any of its supporting files. Not required for AutoML Models.", + "type": "string" + }, + "containerSpec": { + "$ref": "GoogleCloudAiplatformV1ModelContainerSpec", + "description": "Input only. The specification of the container that is to be used when deploying this Model. The specification is ingested upon ModelService.UploadModel, and all binaries it contains are copied and stored internally by Vertex AI. Not required for AutoML Models." + }, "createTime": { - "description": "Output only. Timestamp when this NotebookRuntime was created.", + "description": "Output only. Timestamp when this Model was uploaded into Vertex AI.", "format": "google-datetime", "readOnly": true, "type": "string" }, + "dataStats": { + "$ref": "GoogleCloudAiplatformV1ModelDataStats", + "description": "Stats of data used for training or evaluating the Model. Only populated when the Model is trained by a TrainingPipeline with data_input_config." + }, + "deployedModels": { + "description": "Output only. The pointers to DeployedModels created from this Model. Note that Model could have been deployed to Endpoints in different Locations.", + "items": { + "$ref": "GoogleCloudAiplatformV1DeployedModelRef" + }, + "readOnly": true, + "type": "array" + }, "description": { - "description": "The description of the NotebookRuntime.", + "description": "The description of the Model.", "type": "string" }, "displayName": { - "description": "Required. The display name of the NotebookRuntime. The name can be up to 128 characters long and can consist of any UTF-8 characters.", + "description": "Required. The display name of the Model. The name can be up to 128 characters long and can consist of any UTF-8 characters.", "type": "string" }, - "expirationTime": { - "description": "Output only. Timestamp when this NotebookRuntime will be expired: 1. System Predefined NotebookRuntime: 24 hours after creation. After expiration, system predifined runtime will be deleted. 2. User created NotebookRuntime: 6 months after last upgrade. After expiration, user created runtime will be stopped and allowed for upgrade.", - "format": "google-datetime", - "readOnly": true, - "type": "string" + "encryptionSpec": { + "$ref": "GoogleCloudAiplatformV1EncryptionSpec", + "description": "Customer-managed encryption key spec for a Model. If set, this Model and all sub-resources of this Model will be secured by this key." }, - "healthState": { - "description": "Output only. The health state of the NotebookRuntime.", - "enum": [ - "HEALTH_STATE_UNSPECIFIED", - "HEALTHY", - "UNHEALTHY" - ], - "enumDescriptions": [ - "Unspecified health state.", - "NotebookRuntime is in healthy state. Applies to ACTIVE state.", - "NotebookRuntime is in unhealthy state. Applies to ACTIVE state." - ], - "readOnly": true, + "etag": { + "description": "Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", "type": "string" }, + "explanationSpec": { + "$ref": "GoogleCloudAiplatformV1ExplanationSpec", + "description": "The default explanation specification for this Model. The Model can be used for requesting explanation after being deployed if it is populated. The Model can be used for batch explanation if it is populated. All fields of the explanation_spec can be overridden by explanation_spec of DeployModelRequest.deployed_model, or explanation_spec of BatchPredictionJob. If the default explanation specification is not set for this Model, this Model can still be used for requesting explanation by setting explanation_spec of DeployModelRequest.deployed_model and for batch explanation by setting explanation_spec of BatchPredictionJob." + }, "labels": { "additionalProperties": { "type": "string" }, - "description": "The labels with user-defined metadata to organize your NotebookRuntime. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. No more than 64 user labels can be associated with one NotebookRuntime (System labels are excluded). See https://goo.gl/xmQnxf for more information and examples of labels. System reserved label keys are prefixed with \"aiplatform.googleapis.com/\" and are immutable. Following system labels exist for NotebookRuntime: * \"aiplatform.googleapis.com/notebook_runtime_gce_instance_id\": output only, its value is the Compute Engine instance id. * \"aiplatform.googleapis.com/colab_enterprise_entry_service\": its value is either \"bigquery\" or \"vertex\"; if absent, it should be \"vertex\". This is to describe the entry service, either BigQuery or Vertex.", + "description": "The labels with user-defined metadata to organize your Models. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels.", "type": "object" }, - "name": { - "description": "Output only. The resource name of the NotebookRuntime.", + "metadata": { + "description": "Immutable. An additional information about the Model; the schema of the metadata can be found in metadata_schema. Unset if the Model does not have any additional information.", + "type": "any" + }, + "metadataArtifact": { + "description": "Output only. The resource name of the Artifact that was created in MetadataStore when creating the Model. The Artifact resource name pattern is `projects/{project}/locations/{location}/metadataStores/{metadata_store}/artifacts/{artifact}`.", "readOnly": true, "type": "string" }, - "notebookRuntimeTemplateRef": { - "$ref": "GoogleCloudAiplatformV1NotebookRuntimeTemplateRef", - "description": "Output only. The pointer to NotebookRuntimeTemplate this NotebookRuntime is created from.", + "metadataSchemaUri": { + "description": "Immutable. Points to a YAML file stored on Google Cloud Storage describing additional information about the Model, that is specific to it. Unset if the Model does not have any additional information. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). AutoML Models always have this field populated by Vertex AI, if no additional metadata is needed, this field is set to an empty string. Note: The URI given on output will be immutable and probably different, including the URI scheme, than the one given on input. The output URI will point to a location where the user only has a read access.", + "type": "string" + }, + "modelSourceInfo": { + "$ref": "GoogleCloudAiplatformV1ModelSourceInfo", + "description": "Output only. Source of a model. It can either be automl training pipeline, custom training pipeline, BigQuery ML, or saved and tuned from Genie or Model Garden.", "readOnly": true }, - "notebookRuntimeType": { - "description": "Output only. The type of the notebook runtime.", - "enum": [ - "NOTEBOOK_RUNTIME_TYPE_UNSPECIFIED", - "USER_DEFINED", - "ONE_CLICK" - ], - "enumDescriptions": [ - "Unspecified notebook runtime type, NotebookRuntimeType will default to USER_DEFINED.", - "runtime or template with coustomized configurations from user.", - "runtime or template with system defined configurations." - ], - "readOnly": true, + "name": { + "description": "The resource name of the Model.", "type": "string" }, - "proxyUri": { - "description": "Output only. The proxy endpoint used to access the NotebookRuntime.", - "readOnly": true, + "originalModelInfo": { + "$ref": "GoogleCloudAiplatformV1ModelOriginalModelInfo", + "description": "Output only. If this Model is a copy of another Model, this contains info about the original.", + "readOnly": true + }, + "pipelineJob": { + "description": "Optional. This field is populated if the model is produced by a pipeline job.", "type": "string" }, - "runtimeState": { - "description": "Output only. The runtime (instance) state of the NotebookRuntime.", - "enum": [ - "RUNTIME_STATE_UNSPECIFIED", - "RUNNING", - "BEING_STARTED", - "BEING_STOPPED", - "STOPPED", - "BEING_UPGRADED" - ], - "enumDescriptions": [ - "Unspecified runtime state.", - "NotebookRuntime is in running state.", - "NotebookRuntime is in starting state.", - "NotebookRuntime is in stopping state.", - "NotebookRuntime is in stopped state.", - "NotebookRuntime is in upgrading state. It is in the middle of upgrading process." - ], + "predictSchemata": { + "$ref": "GoogleCloudAiplatformV1PredictSchemata", + "description": "The schemata that describe formats of the Model's predictions and explanations as given and returned via PredictionService.Predict and PredictionService.Explain." + }, + "supportedDeploymentResourcesTypes": { + "description": "Output only. When this Model is deployed, its prediction resources are described by the `prediction_resources` field of the Endpoint.deployed_models object. Because not all Models support all resource configuration types, the configuration types this Model supports are listed here. If no configuration types are listed, the Model cannot be deployed to an Endpoint and does not support online predictions (PredictionService.Predict or PredictionService.Explain). Such a Model can serve predictions by using a BatchPredictionJob, if it has at least one entry each in supported_input_storage_formats and supported_output_storage_formats.", + "items": { + "enum": [ + "DEPLOYMENT_RESOURCES_TYPE_UNSPECIFIED", + "DEDICATED_RESOURCES", + "AUTOMATIC_RESOURCES", + "SHARED_RESOURCES" + ], + "enumDescriptions": [ + "Should not be used.", + "Resources that are dedicated to the DeployedModel, and that need a higher degree of manual configuration.", + "Resources that to large degree are decided by Vertex AI, and require only a modest additional configuration.", + "Resources that can be shared by multiple DeployedModels. A pre-configured DeploymentResourcePool is required." + ], + "type": "string" + }, "readOnly": true, - "type": "string" + "type": "array" }, - "runtimeUser": { - "description": "Required. The user email of the NotebookRuntime.", - "type": "string" + "supportedExportFormats": { + "description": "Output only. The formats in which this Model may be exported. If empty, this Model is not available for export.", + "items": { + "$ref": "GoogleCloudAiplatformV1ModelExportFormat" + }, + "readOnly": true, + "type": "array" }, - "serviceAccount": { - "description": "Output only. The service account that the NotebookRuntime workload runs as.", + "supportedInputStorageFormats": { + "description": "Output only. The formats this Model supports in BatchPredictionJob.input_config. If PredictSchemata.instance_schema_uri exists, the instances should be given as per that schema. The possible formats are: * `jsonl` The JSON Lines format, where each instance is a single line. Uses GcsSource. * `csv` The CSV format, where each instance is a single comma-separated line. The first line in the file is the header, containing comma-separated field names. Uses GcsSource. * `tf-record` The TFRecord format, where each instance is a single record in tfrecord syntax. Uses GcsSource. * `tf-record-gzip` Similar to `tf-record`, but the file is gzipped. Uses GcsSource. * `bigquery` Each instance is a single row in BigQuery. Uses BigQuerySource. * `file-list` Each line of the file is the location of an instance to process, uses `gcs_source` field of the InputConfig object. If this Model doesn't support any of these formats it means it cannot be used with a BatchPredictionJob. However, if it has supported_deployment_resources_types, it could serve online predictions by using PredictionService.Predict or PredictionService.Explain.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "supportedOutputStorageFormats": { + "description": "Output only. The formats this Model supports in BatchPredictionJob.output_config. If both PredictSchemata.instance_schema_uri and PredictSchemata.prediction_schema_uri exist, the predictions are returned together with their instances. In other words, the prediction has the original instance data first, followed by the actual prediction content (as per the schema). The possible formats are: * `jsonl` The JSON Lines format, where each prediction is a single line. Uses GcsDestination. * `csv` The CSV format, where each prediction is a single comma-separated line. The first line in the file is the header, containing comma-separated field names. Uses GcsDestination. * `bigquery` Each prediction is a single row in a BigQuery table, uses BigQueryDestination . If this Model doesn't support any of these formats it means it cannot be used with a BatchPredictionJob. However, if it has supported_deployment_resources_types, it could serve online predictions by using PredictionService.Predict or PredictionService.Explain.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "trainingPipeline": { + "description": "Output only. The resource name of the TrainingPipeline that uploaded this Model, if any.", "readOnly": true, "type": "string" }, "updateTime": { - "description": "Output only. Timestamp when this NotebookRuntime was most recently updated.", + "description": "Output only. Timestamp when this Model was most recently updated.", "format": "google-datetime", "readOnly": true, "type": "string" }, - "version": { - "description": "Output only. The VM os image version of NotebookRuntime.", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1NotebookRuntimeTemplate": { - "description": "A template that specifies runtime configurations such as machine type, runtime version, network configurations, etc. Multiple runtimes can be created from a runtime template.", - "id": "GoogleCloudAiplatformV1NotebookRuntimeTemplate", - "properties": { - "createTime": { - "description": "Output only. Timestamp when this NotebookRuntimeTemplate was created.", + "versionAliases": { + "description": "User provided version aliases so that a model version can be referenced via alias (i.e. `projects/{project}/locations/{location}/models/{model_id}@{version_alias}` instead of auto-generated version id (i.e. `projects/{project}/locations/{location}/models/{model_id}@{version_id})`. The format is a-z{0,126}[a-z0-9] to distinguish from version_id. A default version alias will be created for the first version of the model, and there must be exactly one default version alias for a model.", + "items": { + "type": "string" + }, + "type": "array" + }, + "versionCreateTime": { + "description": "Output only. Timestamp when this version was created.", "format": "google-datetime", "readOnly": true, "type": "string" }, - "dataPersistentDiskSpec": { - "$ref": "GoogleCloudAiplatformV1PersistentDiskSpec", - "description": "Optional. The specification of persistent disk attached to the runtime as data disk storage." - }, - "description": { - "description": "The description of the NotebookRuntimeTemplate.", + "versionDescription": { + "description": "The description of this version.", "type": "string" }, - "displayName": { - "description": "Required. The display name of the NotebookRuntimeTemplate. The name can be up to 128 characters long and can consist of any UTF-8 characters.", + "versionId": { + "description": "Output only. Immutable. The version ID of the model. A new version is committed when a new model version is uploaded or trained under an existing model id. It is an auto-incrementing decimal number in string representation.", + "readOnly": true, "type": "string" }, - "etag": { - "description": "Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "versionUpdateTime": { + "description": "Output only. Timestamp when this version was most recently updated.", + "format": "google-datetime", + "readOnly": true, "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1ModelContainerSpec": { + "description": "Specification of a container for serving predictions. Some fields in this message correspond to fields in the [Kubernetes Container v1 core specification](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core).", + "id": "GoogleCloudAiplatformV1ModelContainerSpec", + "properties": { + "args": { + "description": "Immutable. Specifies arguments for the command that runs when the container starts. This overrides the container's [`CMD`](https://docs.docker.com/engine/reference/builder/#cmd). Specify this field as an array of executable and arguments, similar to a Docker `CMD`'s \"default parameters\" form. If you don't specify this field but do specify the command field, then the command from the `command` field runs without any additional arguments. See the [Kubernetes documentation about how the `command` and `args` fields interact with a container's `ENTRYPOINT` and `CMD`](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#notes). If you don't specify this field and don't specify the `command` field, then the container's [`ENTRYPOINT`](https://docs.docker.com/engine/reference/builder/#cmd) and `CMD` determine what runs based on their default behavior. See the Docker documentation about [how `CMD` and `ENTRYPOINT` interact](https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact). In this field, you can reference [environment variables set by Vertex AI](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables) and environment variables set in the env field. You cannot reference environment variables set in the Docker image. In order for environment variables to be expanded, reference them by using the following syntax: $( VARIABLE_NAME) Note that this differs from Bash variable expansion, which does not use parentheses. If a variable cannot be resolved, the reference in the input string is used unchanged. To avoid variable expansion, you can escape this syntax with `$$`; for example: $$(VARIABLE_NAME) This field corresponds to the `args` field of the Kubernetes Containers [v1 core API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core).", + "items": { + "type": "string" + }, + "type": "array" }, - "eucConfig": { - "$ref": "GoogleCloudAiplatformV1NotebookEucConfig", - "description": "EUC configuration of the NotebookRuntimeTemplate." + "command": { + "description": "Immutable. Specifies the command that runs when the container starts. This overrides the container's [ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint). Specify this field as an array of executable and arguments, similar to a Docker `ENTRYPOINT`'s \"exec\" form, not its \"shell\" form. If you do not specify this field, then the container's `ENTRYPOINT` runs, in conjunction with the args field or the container's [`CMD`](https://docs.docker.com/engine/reference/builder/#cmd), if either exists. If this field is not specified and the container does not have an `ENTRYPOINT`, then refer to the Docker documentation about [how `CMD` and `ENTRYPOINT` interact](https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact). If you specify this field, then you can also specify the `args` field to provide additional arguments for this command. However, if you specify this field, then the container's `CMD` is ignored. See the [Kubernetes documentation about how the `command` and `args` fields interact with a container's `ENTRYPOINT` and `CMD`](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#notes). In this field, you can reference [environment variables set by Vertex AI](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables) and environment variables set in the env field. You cannot reference environment variables set in the Docker image. In order for environment variables to be expanded, reference them by using the following syntax: $( VARIABLE_NAME) Note that this differs from Bash variable expansion, which does not use parentheses. If a variable cannot be resolved, the reference in the input string is used unchanged. To avoid variable expansion, you can escape this syntax with `$$`; for example: $$(VARIABLE_NAME) This field corresponds to the `command` field of the Kubernetes Containers [v1 core API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core).", + "items": { + "type": "string" + }, + "type": "array" }, - "idleShutdownConfig": { - "$ref": "GoogleCloudAiplatformV1NotebookIdleShutdownConfig", - "description": "The idle shutdown configuration of NotebookRuntimeTemplate. This config will only be set when idle shutdown is enabled." + "deploymentTimeout": { + "description": "Immutable. Deployment timeout. Limit for deployment timeout is 2 hours.", + "format": "google-duration", + "type": "string" }, - "isDefault": { - "description": "Output only. The default template to use if not specified.", - "readOnly": true, - "type": "boolean" + "env": { + "description": "Immutable. List of environment variables to set in the container. After the container starts running, code running in the container can read these environment variables. Additionally, the command and args fields can reference these variables. Later entries in this list can also reference earlier entries. For example, the following example sets the variable `VAR_2` to have the value `foo bar`: ```json [ { \"name\": \"VAR_1\", \"value\": \"foo\" }, { \"name\": \"VAR_2\", \"value\": \"$(VAR_1) bar\" } ] ``` If you switch the order of the variables in the example, then the expansion does not occur. This field corresponds to the `env` field of the Kubernetes Containers [v1 core API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core).", + "items": { + "$ref": "GoogleCloudAiplatformV1EnvVar" + }, + "type": "array" }, - "labels": { - "additionalProperties": { - "type": "string" + "grpcPorts": { + "description": "Immutable. List of ports to expose from the container. Vertex AI sends gRPC prediction requests that it receives to the first port on this list. Vertex AI also sends liveness and health checks to this port. If you do not specify this field, gRPC requests to the container will be disabled. Vertex AI does not use ports other than the first one listed. This field corresponds to the `ports` field of the Kubernetes Containers v1 core API.", + "items": { + "$ref": "GoogleCloudAiplatformV1Port" }, - "description": "The labels with user-defined metadata to organize the NotebookRuntimeTemplates. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels.", - "type": "object" + "type": "array" }, - "machineSpec": { - "$ref": "GoogleCloudAiplatformV1MachineSpec", - "description": "Optional. Immutable. The specification of a single machine for the template." + "healthProbe": { + "$ref": "GoogleCloudAiplatformV1Probe", + "description": "Immutable. Specification for Kubernetes readiness probe." }, - "name": { - "description": "Output only. The resource name of the NotebookRuntimeTemplate.", - "readOnly": true, + "healthRoute": { + "description": "Immutable. HTTP path on the container to send health checks to. Vertex AI intermittently sends GET requests to this path on the container's IP address and port to check that the container is healthy. Read more about [health checks](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#health). For example, if you set this field to `/bar`, then Vertex AI intermittently sends a GET request to the `/bar` path on the port of your container specified by the first value of this `ModelContainerSpec`'s ports field. If you don't specify this field, it defaults to the following value when you deploy this Model to an Endpoint: /v1/endpoints/ENDPOINT/deployedModels/ DEPLOYED_MODEL:predict The placeholders in this value are replaced as follows: * ENDPOINT: The last segment (following `endpoints/`)of the Endpoint.name][] field of the Endpoint where this Model has been deployed. (Vertex AI makes this value available to your container code as the [`AIP_ENDPOINT_ID` environment variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).) * DEPLOYED_MODEL: DeployedModel.id of the `DeployedModel`. (Vertex AI makes this value available to your container code as the [`AIP_DEPLOYED_MODEL_ID` environment variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).)", "type": "string" }, - "networkSpec": { - "$ref": "GoogleCloudAiplatformV1NetworkSpec", - "description": "Optional. Network spec." - }, - "notebookRuntimeType": { - "description": "Optional. Immutable. The type of the notebook runtime template.", - "enum": [ - "NOTEBOOK_RUNTIME_TYPE_UNSPECIFIED", - "USER_DEFINED", - "ONE_CLICK" - ], - "enumDescriptions": [ - "Unspecified notebook runtime type, NotebookRuntimeType will default to USER_DEFINED.", - "runtime or template with coustomized configurations from user.", - "runtime or template with system defined configurations." - ], + "imageUri": { + "description": "Required. Immutable. URI of the Docker image to be used as the custom container for serving predictions. This URI must identify an image in Artifact Registry or Container Registry. Learn more about the [container publishing requirements](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#publishing), including permissions requirements for the Vertex AI Service Agent. The container image is ingested upon ModelService.UploadModel, stored internally, and this original path is afterwards not used. To learn about the requirements for the Docker image itself, see [Custom container requirements](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#). You can use the URI to one of Vertex AI's [pre-built container images for prediction](https://cloud.google.com/vertex-ai/docs/predictions/pre-built-containers) in this field.", "type": "string" }, - "serviceAccount": { - "description": "The service account that the runtime workload runs as. You can use any service account within the same project, but you must have the service account user permission to use the instance. If not specified, the [Compute Engine default service account](https://cloud.google.com/compute/docs/access/service-accounts#default_service_account) is used.", + "ports": { + "description": "Immutable. List of ports to expose from the container. Vertex AI sends any prediction requests that it receives to the first port on this list. Vertex AI also sends [liveness and health checks](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#liveness) to this port. If you do not specify this field, it defaults to following value: ```json [ { \"containerPort\": 8080 } ] ``` Vertex AI does not use ports other than the first one listed. This field corresponds to the `ports` field of the Kubernetes Containers [v1 core API](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.23/#container-v1-core).", + "items": { + "$ref": "GoogleCloudAiplatformV1Port" + }, + "type": "array" + }, + "predictRoute": { + "description": "Immutable. HTTP path on the container to send prediction requests to. Vertex AI forwards requests sent using projects.locations.endpoints.predict to this path on the container's IP address and port. Vertex AI then returns the container's response in the API response. For example, if you set this field to `/foo`, then when Vertex AI receives a prediction request, it forwards the request body in a POST request to the `/foo` path on the port of your container specified by the first value of this `ModelContainerSpec`'s ports field. If you don't specify this field, it defaults to the following value when you deploy this Model to an Endpoint: /v1/endpoints/ENDPOINT/deployedModels/DEPLOYED_MODEL:predict The placeholders in this value are replaced as follows: * ENDPOINT: The last segment (following `endpoints/`)of the Endpoint.name][] field of the Endpoint where this Model has been deployed. (Vertex AI makes this value available to your container code as the [`AIP_ENDPOINT_ID` environment variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).) * DEPLOYED_MODEL: DeployedModel.id of the `DeployedModel`. (Vertex AI makes this value available to your container code as the [`AIP_DEPLOYED_MODEL_ID` environment variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).)", "type": "string" }, - "updateTime": { - "description": "Output only. Timestamp when this NotebookRuntimeTemplate was most recently updated.", - "format": "google-datetime", - "readOnly": true, + "sharedMemorySizeMb": { + "description": "Immutable. The amount of the VM memory to reserve as the shared memory for the model in megabytes.", + "format": "int64", "type": "string" + }, + "startupProbe": { + "$ref": "GoogleCloudAiplatformV1Probe", + "description": "Immutable. Specification for Kubernetes startup probe." } }, "type": "object" }, - "GoogleCloudAiplatformV1NotebookRuntimeTemplateRef": { - "description": "Points to a NotebookRuntimeTemplateRef.", - "id": "GoogleCloudAiplatformV1NotebookRuntimeTemplateRef", + "GoogleCloudAiplatformV1ModelDataStats": { + "description": "Stats of data used for train or evaluate the Model.", + "id": "GoogleCloudAiplatformV1ModelDataStats", "properties": { - "notebookRuntimeTemplate": { - "description": "Immutable. A resource name of the NotebookRuntimeTemplate.", + "testAnnotationsCount": { + "description": "Number of Annotations that are used for evaluating this Model. If the Model is evaluated multiple times, this will be the number of test Annotations used by the first evaluation. If the Model is not evaluated, the number is 0.", + "format": "int64", + "type": "string" + }, + "testDataItemsCount": { + "description": "Number of DataItems that were used for evaluating this Model. If the Model is evaluated multiple times, this will be the number of test DataItems used by the first evaluation. If the Model is not evaluated, the number is 0.", + "format": "int64", + "type": "string" + }, + "trainingAnnotationsCount": { + "description": "Number of Annotations that are used for training this Model.", + "format": "int64", + "type": "string" + }, + "trainingDataItemsCount": { + "description": "Number of DataItems that were used for training this Model.", + "format": "int64", + "type": "string" + }, + "validationAnnotationsCount": { + "description": "Number of Annotations that are used for validating this Model during training.", + "format": "int64", + "type": "string" + }, + "validationDataItemsCount": { + "description": "Number of DataItems that were used for validating this Model during training.", + "format": "int64", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1PauseModelDeploymentMonitoringJobRequest": { - "description": "Request message for JobService.PauseModelDeploymentMonitoringJob.", - "id": "GoogleCloudAiplatformV1PauseModelDeploymentMonitoringJobRequest", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1PauseScheduleRequest": { - "description": "Request message for ScheduleService.PauseSchedule.", - "id": "GoogleCloudAiplatformV1PauseScheduleRequest", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1PersistentDiskSpec": { - "description": "Represents the spec of persistent disk options.", - "id": "GoogleCloudAiplatformV1PersistentDiskSpec", + "GoogleCloudAiplatformV1ModelDeploymentMonitoringBigQueryTable": { + "description": "ModelDeploymentMonitoringBigQueryTable specifies the BigQuery table name as well as some information of the logs stored in this table.", + "id": "GoogleCloudAiplatformV1ModelDeploymentMonitoringBigQueryTable", "properties": { - "diskSizeGb": { - "description": "Size in GB of the disk (default is 100GB).", - "format": "int64", + "bigqueryTablePath": { + "description": "The created BigQuery table to store logs. Customer could do their own query & analysis. Format: `bq://.model_deployment_monitoring_._`", "type": "string" }, - "diskType": { - "description": "Type of the disk (default is \"pd-standard\"). Valid values: \"pd-ssd\" (Persistent Disk Solid State Drive) \"pd-standard\" (Persistent Disk Hard Disk Drive) \"pd-balanced\" (Balanced Persistent Disk) \"pd-extreme\" (Extreme Persistent Disk)", + "logSource": { + "description": "The source of log.", + "enum": [ + "LOG_SOURCE_UNSPECIFIED", + "TRAINING", + "SERVING" + ], + "enumDescriptions": [ + "Unspecified source.", + "Logs coming from Training dataset.", + "Logs coming from Serving traffic." + ], + "type": "string" + }, + "logType": { + "description": "The type of log.", + "enum": [ + "LOG_TYPE_UNSPECIFIED", + "PREDICT", + "EXPLAIN" + ], + "enumDescriptions": [ + "Unspecified type.", + "Predict logs.", + "Explain logs." + ], + "type": "string" + }, + "requestResponseLoggingSchemaVersion": { + "description": "Output only. The schema version of the request/response logging BigQuery table. Default to v1 if unset.", + "readOnly": true, "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1PipelineJob": { - "description": "An instance of a machine learning PipelineJob.", - "id": "GoogleCloudAiplatformV1PipelineJob", + "GoogleCloudAiplatformV1ModelDeploymentMonitoringJob": { + "description": "Represents a job that runs periodically to monitor the deployed models in an endpoint. It will analyze the logged training & prediction data to detect any abnormal behaviors.", + "id": "GoogleCloudAiplatformV1ModelDeploymentMonitoringJob", "properties": { + "analysisInstanceSchemaUri": { + "description": "YAML schema file uri describing the format of a single instance that you want Tensorflow Data Validation (TFDV) to analyze. If this field is empty, all the feature data types are inferred from predict_instance_schema_uri, meaning that TFDV will use the data in the exact format(data type) as prediction request/response. If there are any data type differences between predict instance and TFDV instance, this field can be used to override the schema. For models trained with Vertex AI, this field must be set as all the fields in predict instance formatted as string.", + "type": "string" + }, + "bigqueryTables": { + "description": "Output only. The created bigquery tables for the job under customer project. Customer could do their own query & analysis. There could be 4 log tables in maximum: 1. Training data logging predict request/response 2. Serving data logging predict request/response", + "items": { + "$ref": "GoogleCloudAiplatformV1ModelDeploymentMonitoringBigQueryTable" + }, + "readOnly": true, + "type": "array" + }, "createTime": { - "description": "Output only. Pipeline creation time.", + "description": "Output only. Timestamp when this ModelDeploymentMonitoringJob was created.", "format": "google-datetime", "readOnly": true, "type": "string" }, "displayName": { - "description": "The display name of the Pipeline. The name can be up to 128 characters long and can consist of any UTF-8 characters.", + "description": "Required. The user-defined name of the ModelDeploymentMonitoringJob. The name can be up to 128 characters long and can consist of any UTF-8 characters. Display name of a ModelDeploymentMonitoringJob.", "type": "string" }, + "enableMonitoringPipelineLogs": { + "description": "If true, the scheduled monitoring pipeline logs are sent to Google Cloud Logging, including pipeline status and anomalies detected. Please note the logs incur cost, which are subject to [Cloud Logging pricing](https://cloud.google.com/logging#pricing).", + "type": "boolean" + }, "encryptionSpec": { "$ref": "GoogleCloudAiplatformV1EncryptionSpec", - "description": "Customer-managed encryption key spec for a pipelineJob. If set, this PipelineJob and all of its sub-resources will be secured by this key." + "description": "Customer-managed encryption key spec for a ModelDeploymentMonitoringJob. If set, this ModelDeploymentMonitoringJob and all sub-resources of this ModelDeploymentMonitoringJob will be secured by this key." }, - "endTime": { - "description": "Output only. Pipeline end time.", - "format": "google-datetime", - "readOnly": true, + "endpoint": { + "description": "Required. Endpoint resource name. Format: `projects/{project}/locations/{location}/endpoints/{endpoint}`", "type": "string" }, "error": { "$ref": "GoogleRpcStatus", - "description": "Output only. The error that occurred during pipeline execution. Only populated when the pipeline's state is FAILED or CANCELLED.", - "readOnly": true - }, - "jobDetail": { - "$ref": "GoogleCloudAiplatformV1PipelineJobDetail", - "description": "Output only. The details of pipeline run. Not available in the list view.", + "description": "Output only. Only populated when the job's state is `JOB_STATE_FAILED` or `JOB_STATE_CANCELLED`.", "readOnly": true }, "labels": { "additionalProperties": { "type": "string" }, - "description": "The labels with user-defined metadata to organize PipelineJob. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels. Note there is some reserved label key for Vertex AI Pipelines. - `vertex-ai-pipelines-run-billing-id`, user set value will get overrided.", + "description": "The labels with user-defined metadata to organize your ModelDeploymentMonitoringJob. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels.", "type": "object" }, - "name": { - "description": "Output only. The resource name of the PipelineJob.", - "readOnly": true, + "latestMonitoringPipelineMetadata": { + "$ref": "GoogleCloudAiplatformV1ModelDeploymentMonitoringJobLatestMonitoringPipelineMetadata", + "description": "Output only. Latest triggered monitoring pipeline metadata.", + "readOnly": true + }, + "logTtl": { + "description": "The TTL of BigQuery tables in user projects which stores logs. A day is the basic unit of the TTL and we take the ceil of TTL/86400(a day). e.g. { second: 3600} indicates ttl = 1 day.", + "format": "google-duration", "type": "string" }, - "network": { - "description": "The full name of the Compute Engine [network](/compute/docs/networks-and-firewalls#networks) to which the Pipeline Job's workload should be peered. For example, `projects/12345/global/networks/myVPC`. [Format](/compute/docs/reference/rest/v1/networks/insert) is of the form `projects/{project}/global/networks/{network}`. Where {project} is a project number, as in `12345`, and {network} is a network name. Private services access must already be configured for the network. Pipeline job will apply the network configuration to the Google Cloud resources being launched, if applied, such as Vertex AI Training or Dataflow job. If left unspecified, the workload is not peered with any network.", - "type": "string" - }, - "pipelineSpec": { - "additionalProperties": { - "description": "Properties of the object.", - "type": "any" - }, - "description": "The spec of the pipeline.", - "type": "object" + "loggingSamplingStrategy": { + "$ref": "GoogleCloudAiplatformV1SamplingStrategy", + "description": "Required. Sample Strategy for logging." }, - "reservedIpRanges": { - "description": "A list of names for the reserved ip ranges under the VPC network that can be used for this Pipeline Job's workload. If set, we will deploy the Pipeline Job's workload within the provided ip ranges. Otherwise, the job will be deployed to any ip ranges under the provided VPC network. Example: ['vertex-ai-ip-range'].", + "modelDeploymentMonitoringObjectiveConfigs": { + "description": "Required. The config for monitoring objectives. This is a per DeployedModel config. Each DeployedModel needs to be configured separately.", "items": { - "type": "string" + "$ref": "GoogleCloudAiplatformV1ModelDeploymentMonitoringObjectiveConfig" }, "type": "array" }, - "runtimeConfig": { - "$ref": "GoogleCloudAiplatformV1PipelineJobRuntimeConfig", - "description": "Runtime config of the pipeline." + "modelDeploymentMonitoringScheduleConfig": { + "$ref": "GoogleCloudAiplatformV1ModelDeploymentMonitoringScheduleConfig", + "description": "Required. Schedule config for running the monitoring job." }, - "scheduleName": { - "description": "Output only. The schedule resource name. Only returned if the Pipeline is created by Schedule API.", + "modelMonitoringAlertConfig": { + "$ref": "GoogleCloudAiplatformV1ModelMonitoringAlertConfig", + "description": "Alert config for model monitoring." + }, + "name": { + "description": "Output only. Resource name of a ModelDeploymentMonitoringJob.", "readOnly": true, "type": "string" }, - "serviceAccount": { - "description": "The service account that the pipeline workload runs as. If not specified, the Compute Engine default service account in the project will be used. See https://cloud.google.com/compute/docs/access/service-accounts#default_service_account Users starting the pipeline must have the `iam.serviceAccounts.actAs` permission on this service account.", + "nextScheduleTime": { + "description": "Output only. Timestamp when this monitoring pipeline will be scheduled to run for the next round.", + "format": "google-datetime", + "readOnly": true, "type": "string" }, - "startTime": { - "description": "Output only. Pipeline start time.", - "format": "google-datetime", + "predictInstanceSchemaUri": { + "description": "YAML schema file uri describing the format of a single instance, which are given to format this Endpoint's prediction (and explanation). If not set, we will generate predict schema from collected predict requests.", + "type": "string" + }, + "samplePredictInstance": { + "description": "Sample Predict instance, same format as PredictRequest.instances, this can be set as a replacement of ModelDeploymentMonitoringJob.predict_instance_schema_uri. If not set, we will generate predict schema from collected predict requests.", + "type": "any" + }, + "scheduleState": { + "description": "Output only. Schedule state when the monitoring job is in Running state.", + "enum": [ + "MONITORING_SCHEDULE_STATE_UNSPECIFIED", + "PENDING", + "OFFLINE", + "RUNNING" + ], + "enumDescriptions": [ + "Unspecified state.", + "The pipeline is picked up and wait to run.", + "The pipeline is offline and will be scheduled for next run.", + "The pipeline is running." + ], "readOnly": true, "type": "string" }, "state": { - "description": "Output only. The detailed state of the job.", + "description": "Output only. The detailed state of the monitoring job. When the job is still creating, the state will be 'PENDING'. Once the job is successfully created, the state will be 'RUNNING'. Pause the job, the state will be 'PAUSED'. Resume the job, the state will return to 'RUNNING'.", "enum": [ - "PIPELINE_STATE_UNSPECIFIED", - "PIPELINE_STATE_QUEUED", - "PIPELINE_STATE_PENDING", - "PIPELINE_STATE_RUNNING", - "PIPELINE_STATE_SUCCEEDED", - "PIPELINE_STATE_FAILED", - "PIPELINE_STATE_CANCELLING", - "PIPELINE_STATE_CANCELLED", - "PIPELINE_STATE_PAUSED" + "JOB_STATE_UNSPECIFIED", + "JOB_STATE_QUEUED", + "JOB_STATE_PENDING", + "JOB_STATE_RUNNING", + "JOB_STATE_SUCCEEDED", + "JOB_STATE_FAILED", + "JOB_STATE_CANCELLING", + "JOB_STATE_CANCELLED", + "JOB_STATE_PAUSED", + "JOB_STATE_EXPIRED", + "JOB_STATE_UPDATING", + "JOB_STATE_PARTIALLY_SUCCEEDED" ], "enumDescriptions": [ - "The pipeline state is unspecified.", - "The pipeline has been created or resumed, and processing has not yet begun.", - "The service is preparing to run the pipeline.", - "The pipeline is in progress.", - "The pipeline completed successfully.", - "The pipeline failed.", - "The pipeline is being cancelled. From this state, the pipeline may only go to either PIPELINE_STATE_SUCCEEDED, PIPELINE_STATE_FAILED or PIPELINE_STATE_CANCELLED.", - "The pipeline has been cancelled.", - "The pipeline has been stopped, and can be resumed." + "The job state is unspecified.", + "The job has been just created or resumed and processing has not yet begun.", + "The service is preparing to run the job.", + "The job is in progress.", + "The job completed successfully.", + "The job failed.", + "The job is being cancelled. From this state the job may only go to either `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED` or `JOB_STATE_CANCELLED`.", + "The job has been cancelled.", + "The job has been stopped, and can be resumed.", + "The job has expired.", + "The job is being updated. Only jobs in the `RUNNING` state can be updated. After updating, the job goes back to the `RUNNING` state.", + "The job is partially succeeded, some results may be missing due to errors." ], "readOnly": true, "type": "string" }, - "templateMetadata": { - "$ref": "GoogleCloudAiplatformV1PipelineTemplateMetadata", - "description": "Output only. Pipeline template metadata. Will fill up fields if PipelineJob.template_uri is from supported template registry.", - "readOnly": true - }, - "templateUri": { - "description": "A template uri from where the PipelineJob.pipeline_spec, if empty, will be downloaded. Currently, only uri from Vertex Template Registry & Gallery is supported. Reference to https://cloud.google.com/vertex-ai/docs/pipelines/create-pipeline-template.", - "type": "string" + "statsAnomaliesBaseDirectory": { + "$ref": "GoogleCloudAiplatformV1GcsDestination", + "description": "Stats anomalies base folder path." }, "updateTime": { - "description": "Output only. Timestamp when this PipelineJob was most recently updated.", + "description": "Output only. Timestamp when this ModelDeploymentMonitoringJob was updated most recently.", "format": "google-datetime", "readOnly": true, "type": "string" @@ -23580,532 +24722,327 @@ }, "type": "object" }, - "GoogleCloudAiplatformV1PipelineJobDetail": { - "description": "The runtime detail of PipelineJob.", - "id": "GoogleCloudAiplatformV1PipelineJobDetail", + "GoogleCloudAiplatformV1ModelDeploymentMonitoringJobLatestMonitoringPipelineMetadata": { + "description": "All metadata of most recent monitoring pipelines.", + "id": "GoogleCloudAiplatformV1ModelDeploymentMonitoringJobLatestMonitoringPipelineMetadata", "properties": { - "pipelineContext": { - "$ref": "GoogleCloudAiplatformV1Context", - "description": "Output only. The context of the pipeline.", - "readOnly": true - }, - "pipelineRunContext": { - "$ref": "GoogleCloudAiplatformV1Context", - "description": "Output only. The context of the current pipeline run.", - "readOnly": true + "runTime": { + "description": "The time that most recent monitoring pipelines that is related to this run.", + "format": "google-datetime", + "type": "string" }, - "taskDetails": { - "description": "Output only. The runtime details of the tasks under the pipeline.", - "items": { - "$ref": "GoogleCloudAiplatformV1PipelineTaskDetail" - }, - "readOnly": true, - "type": "array" + "status": { + "$ref": "GoogleRpcStatus", + "description": "The status of the most recent monitoring pipeline." } }, "type": "object" }, - "GoogleCloudAiplatformV1PipelineJobRuntimeConfig": { - "description": "The runtime config of a PipelineJob.", - "id": "GoogleCloudAiplatformV1PipelineJobRuntimeConfig", + "GoogleCloudAiplatformV1ModelDeploymentMonitoringObjectiveConfig": { + "description": "ModelDeploymentMonitoringObjectiveConfig contains the pair of deployed_model_id to ModelMonitoringObjectiveConfig.", + "id": "GoogleCloudAiplatformV1ModelDeploymentMonitoringObjectiveConfig", "properties": { - "failurePolicy": { - "description": "Represents the failure policy of a pipeline. Currently, the default of a pipeline is that the pipeline will continue to run until no more tasks can be executed, also known as PIPELINE_FAILURE_POLICY_FAIL_SLOW. However, if a pipeline is set to PIPELINE_FAILURE_POLICY_FAIL_FAST, it will stop scheduling any new tasks when a task has failed. Any scheduled tasks will continue to completion.", - "enum": [ - "PIPELINE_FAILURE_POLICY_UNSPECIFIED", - "PIPELINE_FAILURE_POLICY_FAIL_SLOW", - "PIPELINE_FAILURE_POLICY_FAIL_FAST" - ], - "enumDescriptions": [ - "Default value, and follows fail slow behavior.", - "Indicates that the pipeline should continue to run until all possible tasks have been scheduled and completed.", - "Indicates that the pipeline should stop scheduling new tasks after a task has failed." - ], - "type": "string" - }, - "gcsOutputDirectory": { - "description": "Required. A path in a Cloud Storage bucket, which will be treated as the root output directory of the pipeline. It is used by the system to generate the paths of output artifacts. The artifact paths are generated with a sub-path pattern `{job_id}/{task_id}/{output_key}` under the specified output directory. The service account specified in this pipeline must have the `storage.objects.get` and `storage.objects.create` permissions for this bucket.", + "deployedModelId": { + "description": "The DeployedModel ID of the objective config.", "type": "string" }, - "inputArtifacts": { - "additionalProperties": { - "$ref": "GoogleCloudAiplatformV1PipelineJobRuntimeConfigInputArtifact" - }, - "description": "The runtime artifacts of the PipelineJob. The key will be the input artifact name and the value would be one of the InputArtifact.", - "type": "object" - }, - "parameterValues": { - "additionalProperties": { - "type": "any" - }, - "description": "The runtime parameters of the PipelineJob. The parameters will be passed into PipelineJob.pipeline_spec to replace the placeholders at runtime. This field is used by pipelines built using `PipelineJob.pipeline_spec.schema_version` 2.1.0, such as pipelines built using Kubeflow Pipelines SDK 1.9 or higher and the v2 DSL.", - "type": "object" - }, - "parameters": { - "additionalProperties": { - "$ref": "GoogleCloudAiplatformV1Value" - }, - "deprecated": true, - "description": "Deprecated. Use RuntimeConfig.parameter_values instead. The runtime parameters of the PipelineJob. The parameters will be passed into PipelineJob.pipeline_spec to replace the placeholders at runtime. This field is used by pipelines built using `PipelineJob.pipeline_spec.schema_version` 2.0.0 or lower, such as pipelines built using Kubeflow Pipelines SDK 1.8 or lower.", - "type": "object" + "objectiveConfig": { + "$ref": "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfig", + "description": "The objective config of for the modelmonitoring job of this deployed model." } }, "type": "object" }, - "GoogleCloudAiplatformV1PipelineJobRuntimeConfigInputArtifact": { - "description": "The type of an input artifact.", - "id": "GoogleCloudAiplatformV1PipelineJobRuntimeConfigInputArtifact", + "GoogleCloudAiplatformV1ModelDeploymentMonitoringScheduleConfig": { + "description": "The config for scheduling monitoring job.", + "id": "GoogleCloudAiplatformV1ModelDeploymentMonitoringScheduleConfig", "properties": { - "artifactId": { - "description": "Artifact resource id from MLMD. Which is the last portion of an artifact resource name: `projects/{project}/locations/{location}/metadataStores/default/artifacts/{artifact_id}`. The artifact must stay within the same project, location and default metadatastore as the pipeline.", + "monitorInterval": { + "description": "Required. The model monitoring job scheduling interval. It will be rounded up to next full hour. This defines how often the monitoring jobs are triggered.", + "format": "google-duration", + "type": "string" + }, + "monitorWindow": { + "description": "The time window of the prediction data being included in each prediction dataset. This window specifies how long the data should be collected from historical model results for each run. If not set, ModelDeploymentMonitoringScheduleConfig.monitor_interval will be used. e.g. If currently the cutoff time is 2022-01-08 14:30:00 and the monitor_window is set to be 3600, then data from 2022-01-08 13:30:00 to 2022-01-08 14:30:00 will be retrieved and aggregated to calculate the monitoring statistics.", + "format": "google-duration", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1PipelineTaskDetail": { - "description": "The runtime detail of a task execution.", - "id": "GoogleCloudAiplatformV1PipelineTaskDetail", + "GoogleCloudAiplatformV1ModelEvaluation": { + "description": "A collection of metrics calculated by comparing Model's predictions on all of the test data against annotations from the test data.", + "id": "GoogleCloudAiplatformV1ModelEvaluation", "properties": { - "createTime": { - "description": "Output only. Task create time.", - "format": "google-datetime", - "readOnly": true, + "annotationSchemaUri": { + "description": "Points to a YAML file stored on Google Cloud Storage describing EvaluatedDataItemView.predictions, EvaluatedDataItemView.ground_truths, EvaluatedAnnotation.predictions, and EvaluatedAnnotation.ground_truths. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). This field is not populated if there are neither EvaluatedDataItemViews nor EvaluatedAnnotations under this ModelEvaluation.", "type": "string" }, - "endTime": { - "description": "Output only. Task end time.", + "createTime": { + "description": "Output only. Timestamp when this ModelEvaluation was created.", "format": "google-datetime", "readOnly": true, "type": "string" }, - "error": { - "$ref": "GoogleRpcStatus", - "description": "Output only. The error that occurred during task execution. Only populated when the task's state is FAILED or CANCELLED.", - "readOnly": true - }, - "execution": { - "$ref": "GoogleCloudAiplatformV1Execution", - "description": "Output only. The execution metadata of the task.", - "readOnly": true - }, - "executorDetail": { - "$ref": "GoogleCloudAiplatformV1PipelineTaskExecutorDetail", - "description": "Output only. The detailed execution info.", - "readOnly": true - }, - "inputs": { - "additionalProperties": { - "$ref": "GoogleCloudAiplatformV1PipelineTaskDetailArtifactList" - }, - "description": "Output only. The runtime input artifacts of the task.", - "readOnly": true, - "type": "object" - }, - "outputs": { - "additionalProperties": { - "$ref": "GoogleCloudAiplatformV1PipelineTaskDetailArtifactList" - }, - "description": "Output only. The runtime output artifacts of the task.", - "readOnly": true, - "type": "object" + "dataItemSchemaUri": { + "description": "Points to a YAML file stored on Google Cloud Storage describing EvaluatedDataItemView.data_item_payload and EvaluatedAnnotation.data_item_payload. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). This field is not populated if there are neither EvaluatedDataItemViews nor EvaluatedAnnotations under this ModelEvaluation.", + "type": "string" }, - "parentTaskId": { - "description": "Output only. The id of the parent task if the task is within a component scope. Empty if the task is at the root level.", - "format": "int64", - "readOnly": true, + "displayName": { + "description": "The display name of the ModelEvaluation.", "type": "string" }, - "pipelineTaskStatus": { - "description": "Output only. A list of task status. This field keeps a record of task status evolving over time.", + "explanationSpecs": { + "description": "Describes the values of ExplanationSpec that are used for explaining the predicted values on the evaluated data.", "items": { - "$ref": "GoogleCloudAiplatformV1PipelineTaskDetailPipelineTaskStatus" + "$ref": "GoogleCloudAiplatformV1ModelEvaluationModelEvaluationExplanationSpec" }, - "readOnly": true, "type": "array" }, - "startTime": { - "description": "Output only. Task start time.", - "format": "google-datetime", - "readOnly": true, - "type": "string" + "metadata": { + "description": "The metadata of the ModelEvaluation. For the ModelEvaluation uploaded from Managed Pipeline, metadata contains a structured value with keys of \"pipeline_job_id\", \"evaluation_dataset_type\", \"evaluation_dataset_path\", \"row_based_metrics_path\".", + "type": "any" }, - "state": { - "description": "Output only. State of the task.", - "enum": [ - "STATE_UNSPECIFIED", - "PENDING", - "RUNNING", - "SUCCEEDED", - "CANCEL_PENDING", - "CANCELLING", - "CANCELLED", - "FAILED", - "SKIPPED", - "NOT_TRIGGERED" - ], - "enumDescriptions": [ - "Unspecified.", - "Specifies pending state for the task.", - "Specifies task is being executed.", - "Specifies task completed successfully.", - "Specifies Task cancel is in pending state.", - "Specifies task is being cancelled.", - "Specifies task was cancelled.", - "Specifies task failed.", - "Specifies task was skipped due to cache hit.", - "Specifies that the task was not triggered because the task's trigger policy is not satisfied. The trigger policy is specified in the `condition` field of PipelineJob.pipeline_spec." - ], - "readOnly": true, - "type": "string" + "metrics": { + "description": "Evaluation metrics of the Model. The schema of the metrics is stored in metrics_schema_uri", + "type": "any" }, - "taskId": { - "description": "Output only. The system generated ID of the task.", - "format": "int64", - "readOnly": true, + "metricsSchemaUri": { + "description": "Points to a YAML file stored on Google Cloud Storage describing the metrics of this ModelEvaluation. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject).", "type": "string" }, - "taskName": { - "description": "Output only. The user specified name of the task that is defined in pipeline_spec.", + "modelExplanation": { + "$ref": "GoogleCloudAiplatformV1ModelExplanation", + "description": "Aggregated explanation metrics for the Model's prediction output over the data this ModelEvaluation uses. This field is populated only if the Model is evaluated with explanations, and only for AutoML tabular Models. " + }, + "name": { + "description": "Output only. The resource name of the ModelEvaluation.", "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1PipelineTaskDetailArtifactList": { - "description": "A list of artifact metadata.", - "id": "GoogleCloudAiplatformV1PipelineTaskDetailArtifactList", - "properties": { - "artifacts": { - "description": "Output only. A list of artifact metadata.", + }, + "sliceDimensions": { + "description": "All possible dimensions of ModelEvaluationSlices. The dimensions can be used as the filter of the ModelService.ListModelEvaluationSlices request, in the form of `slice.dimension = `.", "items": { - "$ref": "GoogleCloudAiplatformV1Artifact" + "type": "string" }, - "readOnly": true, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1PipelineTaskDetailPipelineTaskStatus": { - "description": "A single record of the task status.", - "id": "GoogleCloudAiplatformV1PipelineTaskDetailPipelineTaskStatus", + "GoogleCloudAiplatformV1ModelEvaluationModelEvaluationExplanationSpec": { + "id": "GoogleCloudAiplatformV1ModelEvaluationModelEvaluationExplanationSpec", "properties": { - "error": { - "$ref": "GoogleRpcStatus", - "description": "Output only. The error that occurred during the state. May be set when the state is any of the non-final state (PENDING/RUNNING/CANCELLING) or FAILED state. If the state is FAILED, the error here is final and not going to be retried. If the state is a non-final state, the error indicates a system-error being retried.", - "readOnly": true - }, - "state": { - "description": "Output only. The state of the task.", - "enum": [ - "STATE_UNSPECIFIED", - "PENDING", - "RUNNING", - "SUCCEEDED", - "CANCEL_PENDING", - "CANCELLING", - "CANCELLED", - "FAILED", - "SKIPPED", - "NOT_TRIGGERED" - ], - "enumDescriptions": [ - "Unspecified.", - "Specifies pending state for the task.", - "Specifies task is being executed.", - "Specifies task completed successfully.", - "Specifies Task cancel is in pending state.", - "Specifies task is being cancelled.", - "Specifies task was cancelled.", - "Specifies task failed.", - "Specifies task was skipped due to cache hit.", - "Specifies that the task was not triggered because the task's trigger policy is not satisfied. The trigger policy is specified in the `condition` field of PipelineJob.pipeline_spec." - ], - "readOnly": true, - "type": "string" + "explanationSpec": { + "$ref": "GoogleCloudAiplatformV1ExplanationSpec", + "description": "Explanation spec details." }, - "updateTime": { - "description": "Output only. Update time of this status.", - "format": "google-datetime", - "readOnly": true, + "explanationType": { + "description": "Explanation type. For AutoML Image Classification models, possible values are: * `image-integrated-gradients` * `image-xrai`", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1PipelineTaskExecutorDetail": { - "description": "The runtime detail of a pipeline executor.", - "id": "GoogleCloudAiplatformV1PipelineTaskExecutorDetail", - "properties": { - "containerDetail": { - "$ref": "GoogleCloudAiplatformV1PipelineTaskExecutorDetailContainerDetail", - "description": "Output only. The detailed info for a container executor.", - "readOnly": true - }, - "customJobDetail": { - "$ref": "GoogleCloudAiplatformV1PipelineTaskExecutorDetailCustomJobDetail", - "description": "Output only. The detailed info for a custom job executor.", - "readOnly": true - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1PipelineTaskExecutorDetailContainerDetail": { - "description": "The detail of a container execution. It contains the job names of the lifecycle of a container execution.", - "id": "GoogleCloudAiplatformV1PipelineTaskExecutorDetailContainerDetail", + "GoogleCloudAiplatformV1ModelEvaluationSlice": { + "description": "A collection of metrics calculated by comparing Model's predictions on a slice of the test data against ground truth annotations.", + "id": "GoogleCloudAiplatformV1ModelEvaluationSlice", "properties": { - "failedMainJobs": { - "description": "Output only. The names of the previously failed CustomJob for the main container executions. The list includes the all attempts in chronological order.", - "items": { - "type": "string" - }, + "createTime": { + "description": "Output only. Timestamp when this ModelEvaluationSlice was created.", + "format": "google-datetime", "readOnly": true, - "type": "array" + "type": "string" }, - "failedPreCachingCheckJobs": { - "description": "Output only. The names of the previously failed CustomJob for the pre-caching-check container executions. This job will be available if the PipelineJob.pipeline_spec specifies the `pre_caching_check` hook in the lifecycle events. The list includes the all attempts in chronological order.", - "items": { - "type": "string" - }, + "metrics": { + "description": "Output only. Sliced evaluation metrics of the Model. The schema of the metrics is stored in metrics_schema_uri", "readOnly": true, - "type": "array" + "type": "any" }, - "mainJob": { - "description": "Output only. The name of the CustomJob for the main container execution.", + "metricsSchemaUri": { + "description": "Output only. Points to a YAML file stored on Google Cloud Storage describing the metrics of this ModelEvaluationSlice. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject).", "readOnly": true, "type": "string" }, - "preCachingCheckJob": { - "description": "Output only. The name of the CustomJob for the pre-caching-check container execution. This job will be available if the PipelineJob.pipeline_spec specifies the `pre_caching_check` hook in the lifecycle events.", + "modelExplanation": { + "$ref": "GoogleCloudAiplatformV1ModelExplanation", + "description": "Output only. Aggregated explanation metrics for the Model's prediction output over the data this ModelEvaluation uses. This field is populated only if the Model is evaluated with explanations, and only for tabular Models.", + "readOnly": true + }, + "name": { + "description": "Output only. The resource name of the ModelEvaluationSlice.", "readOnly": true, "type": "string" + }, + "slice": { + "$ref": "GoogleCloudAiplatformV1ModelEvaluationSliceSlice", + "description": "Output only. The slice of the test data that is used to evaluate the Model.", + "readOnly": true } }, "type": "object" }, - "GoogleCloudAiplatformV1PipelineTaskExecutorDetailCustomJobDetail": { - "description": "The detailed info for a custom job executor.", - "id": "GoogleCloudAiplatformV1PipelineTaskExecutorDetailCustomJobDetail", + "GoogleCloudAiplatformV1ModelEvaluationSliceSlice": { + "description": "Definition of a slice.", + "id": "GoogleCloudAiplatformV1ModelEvaluationSliceSlice", "properties": { - "failedJobs": { - "description": "Output only. The names of the previously failed CustomJob. The list includes the all attempts in chronological order.", - "items": { - "type": "string" - }, + "dimension": { + "description": "Output only. The dimension of the slice. Well-known dimensions are: * `annotationSpec`: This slice is on the test data that has either ground truth or prediction with AnnotationSpec.display_name equals to value. * `slice`: This slice is a user customized slice defined by its SliceSpec.", "readOnly": true, - "type": "array" + "type": "string" }, - "job": { - "description": "Output only. The name of the CustomJob.", + "sliceSpec": { + "$ref": "GoogleCloudAiplatformV1ModelEvaluationSliceSliceSliceSpec", + "description": "Output only. Specification for how the data was sliced.", + "readOnly": true + }, + "value": { + "description": "Output only. The value of the dimension in this slice.", "readOnly": true, "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1PipelineTemplateMetadata": { - "description": "Pipeline template metadata if PipelineJob.template_uri is from supported template registry. Currently, the only supported registry is Artifact Registry.", - "id": "GoogleCloudAiplatformV1PipelineTemplateMetadata", + "GoogleCloudAiplatformV1ModelEvaluationSliceSliceSliceSpec": { + "description": "Specification for how the data should be sliced.", + "id": "GoogleCloudAiplatformV1ModelEvaluationSliceSliceSliceSpec", "properties": { - "version": { - "description": "The version_name in artifact registry. Will always be presented in output if the PipelineJob.template_uri is from supported template registry. Format is \"sha256:abcdef123456...\".", - "type": "string" + "configs": { + "additionalProperties": { + "$ref": "GoogleCloudAiplatformV1ModelEvaluationSliceSliceSliceSpecSliceConfig" + }, + "description": "Mapping configuration for this SliceSpec. The key is the name of the feature. By default, the key will be prefixed by \"instance\" as a dictionary prefix for Vertex Batch Predictions output format.", + "type": "object" } }, "type": "object" }, - "GoogleCloudAiplatformV1Port": { - "description": "Represents a network port in a container.", - "id": "GoogleCloudAiplatformV1Port", + "GoogleCloudAiplatformV1ModelEvaluationSliceSliceSliceSpecRange": { + "description": "A range of values for slice(s). `low` is inclusive, `high` is exclusive.", + "id": "GoogleCloudAiplatformV1ModelEvaluationSliceSliceSliceSpecRange", "properties": { - "containerPort": { - "description": "The number of the port to expose on the pod's IP address. Must be a valid port number, between 1 and 65535 inclusive.", - "format": "int32", - "type": "integer" + "high": { + "description": "Exclusive high value for the range.", + "format": "float", + "type": "number" + }, + "low": { + "description": "Inclusive low value for the range.", + "format": "float", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1PredefinedSplit": { - "description": "Assigns input data to training, validation, and test sets based on the value of a provided key. Supported only for tabular Datasets.", - "id": "GoogleCloudAiplatformV1PredefinedSplit", - "properties": { - "key": { - "description": "Required. The key is a name of one of the Dataset's data columns. The value of the key (either the label's value or value in the column) must be one of {`training`, `validation`, `test`}, and it defines to which set the given piece of data is assigned. If for a piece of data the key is not present or has an invalid value, that piece is ignored by the pipeline.", - "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1PredictRequest": { - "description": "Request message for PredictionService.Predict.", - "id": "GoogleCloudAiplatformV1PredictRequest", + "GoogleCloudAiplatformV1ModelEvaluationSliceSliceSliceSpecSliceConfig": { + "description": "Specification message containing the config for this SliceSpec. When `kind` is selected as `value` and/or `range`, only a single slice will be computed. When `all_values` is present, a separate slice will be computed for each possible label/value for the corresponding key in `config`. Examples, with feature zip_code with values 12345, 23334, 88888 and feature country with values \"US\", \"Canada\", \"Mexico\" in the dataset: Example 1: { \"zip_code\": { \"value\": { \"float_value\": 12345.0 } } } A single slice for any data with zip_code 12345 in the dataset. Example 2: { \"zip_code\": { \"range\": { \"low\": 12345, \"high\": 20000 } } } A single slice containing data where the zip_codes between 12345 and 20000 For this example, data with the zip_code of 12345 will be in this slice. Example 3: { \"zip_code\": { \"range\": { \"low\": 10000, \"high\": 20000 } }, \"country\": { \"value\": { \"string_value\": \"US\" } } } A single slice containing data where the zip_codes between 10000 and 20000 has the country \"US\". For this example, data with the zip_code of 12345 and country \"US\" will be in this slice. Example 4: { \"country\": {\"all_values\": { \"value\": true } } } Three slices are computed, one for each unique country in the dataset. Example 5: { \"country\": { \"all_values\": { \"value\": true } }, \"zip_code\": { \"value\": { \"float_value\": 12345.0 } } } Three slices are computed, one for each unique country in the dataset where the zip_code is also 12345. For this example, data with zip_code 12345 and country \"US\" will be in one slice, zip_code 12345 and country \"Canada\" in another slice, and zip_code 12345 and country \"Mexico\" in another slice, totaling 3 slices.", + "id": "GoogleCloudAiplatformV1ModelEvaluationSliceSliceSliceSpecSliceConfig", "properties": { - "instances": { - "description": "Required. The instances that are the input to the prediction call. A DeployedModel may have an upper limit on the number of instances it supports per request, and when it is exceeded the prediction call errors in case of AutoML Models, or, in case of customer created Models, the behaviour is as documented by that Model. The schema of any single instance may be specified via Endpoint's DeployedModels' Model's PredictSchemata's instance_schema_uri.", - "items": { - "type": "any" - }, - "type": "array" + "allValues": { + "description": "If all_values is set to true, then all possible labels of the keyed feature will have another slice computed. Example: `{\"all_values\":{\"value\":true}}`", + "type": "boolean" }, - "parameters": { - "description": "The parameters that govern the prediction. The schema of the parameters may be specified via Endpoint's DeployedModels' Model's PredictSchemata's parameters_schema_uri.", - "type": "any" + "range": { + "$ref": "GoogleCloudAiplatformV1ModelEvaluationSliceSliceSliceSpecRange", + "description": "A range of values for a numerical feature. Example: `{\"range\":{\"low\":10000.0,\"high\":50000.0}}` will capture 12345 and 23334 in the slice." + }, + "value": { + "$ref": "GoogleCloudAiplatformV1ModelEvaluationSliceSliceSliceSpecValue", + "description": "A unique specific value for a given feature. Example: `{ \"value\": { \"string_value\": \"12345\" } }`" } }, "type": "object" }, - "GoogleCloudAiplatformV1PredictRequestResponseLoggingConfig": { - "description": "Configuration for logging request-response to a BigQuery table.", - "id": "GoogleCloudAiplatformV1PredictRequestResponseLoggingConfig", + "GoogleCloudAiplatformV1ModelEvaluationSliceSliceSliceSpecValue": { + "description": "Single value that supports strings and floats.", + "id": "GoogleCloudAiplatformV1ModelEvaluationSliceSliceSliceSpecValue", "properties": { - "bigqueryDestination": { - "$ref": "GoogleCloudAiplatformV1BigQueryDestination", - "description": "BigQuery table for logging. If only given a project, a new dataset will be created with name `logging__` where will be made BigQuery-dataset-name compatible (e.g. most special characters will become underscores). If no table name is given, a new table will be created with name `request_response_logging`" - }, - "enabled": { - "description": "If logging is enabled or not.", - "type": "boolean" - }, - "samplingRate": { - "description": "Percentage of requests to be logged, expressed as a fraction in range(0,1].", - "format": "double", + "floatValue": { + "description": "Float type.", + "format": "float", "type": "number" + }, + "stringValue": { + "description": "String type.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1PredictResponse": { - "description": "Response message for PredictionService.Predict.", - "id": "GoogleCloudAiplatformV1PredictResponse", + "GoogleCloudAiplatformV1ModelExplanation": { + "description": "Aggregated explanation metrics for a Model over a set of instances.", + "id": "GoogleCloudAiplatformV1ModelExplanation", "properties": { - "deployedModelId": { - "description": "ID of the Endpoint's DeployedModel that served this prediction.", - "type": "string" - }, - "metadata": { - "description": "Output only. Request-level metadata returned by the model. The metadata type will be dependent upon the model implementation.", - "readOnly": true, - "type": "any" - }, - "model": { - "description": "Output only. The resource name of the Model which is deployed as the DeployedModel that this prediction hits.", - "readOnly": true, - "type": "string" - }, - "modelDisplayName": { - "description": "Output only. The display name of the Model which is deployed as the DeployedModel that this prediction hits.", - "readOnly": true, - "type": "string" - }, - "modelVersionId": { - "description": "Output only. The version ID of the Model which is deployed as the DeployedModel that this prediction hits.", - "readOnly": true, - "type": "string" - }, - "predictions": { - "description": "The predictions that are the output of the predictions call. The schema of any single prediction may be specified via Endpoint's DeployedModels' Model's PredictSchemata's prediction_schema_uri.", + "meanAttributions": { + "description": "Output only. Aggregated attributions explaining the Model's prediction outputs over the set of instances. The attributions are grouped by outputs. For Models that predict only one output, such as regression Models that predict only one score, there is only one attibution that explains the predicted output. For Models that predict multiple outputs, such as multiclass Models that predict multiple classes, each element explains one specific item. Attribution.output_index can be used to identify which output this attribution is explaining. The baselineOutputValue, instanceOutputValue and featureAttributions fields are averaged over the test data. NOTE: Currently AutoML tabular classification Models produce only one attribution, which averages attributions over all the classes it predicts. Attribution.approximation_error is not populated.", "items": { - "type": "any" + "$ref": "GoogleCloudAiplatformV1Attribution" }, + "readOnly": true, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1PredictSchemata": { - "description": "Contains the schemata used in Model's predictions and explanations via PredictionService.Predict, PredictionService.Explain and BatchPredictionJob.", - "id": "GoogleCloudAiplatformV1PredictSchemata", - "properties": { - "instanceSchemaUri": { - "description": "Immutable. Points to a YAML file stored on Google Cloud Storage describing the format of a single instance, which are used in PredictRequest.instances, ExplainRequest.instances and BatchPredictionJob.input_config. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). AutoML Models always have this field populated by Vertex AI. Note: The URI given on output will be immutable and probably different, including the URI scheme, than the one given on input. The output URI will point to a location where the user only has a read access.", - "type": "string" - }, - "parametersSchemaUri": { - "description": "Immutable. Points to a YAML file stored on Google Cloud Storage describing the parameters of prediction and explanation via PredictRequest.parameters, ExplainRequest.parameters and BatchPredictionJob.model_parameters. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). AutoML Models always have this field populated by Vertex AI, if no parameters are supported, then it is set to an empty string. Note: The URI given on output will be immutable and probably different, including the URI scheme, than the one given on input. The output URI will point to a location where the user only has a read access.", - "type": "string" - }, - "predictionSchemaUri": { - "description": "Immutable. Points to a YAML file stored on Google Cloud Storage describing the format of a single prediction produced by this Model, which are returned via PredictResponse.predictions, ExplainResponse.explanations, and BatchPredictionJob.output_config. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). AutoML Models always have this field populated by Vertex AI. Note: The URI given on output will be immutable and probably different, including the URI scheme, than the one given on input. The output URI will point to a location where the user only has a read access.", - "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1Presets": { - "description": "Preset configuration for example-based explanations", - "id": "GoogleCloudAiplatformV1Presets", + "GoogleCloudAiplatformV1ModelExportFormat": { + "description": "Represents export format supported by the Model. All formats export to Google Cloud Storage.", + "id": "GoogleCloudAiplatformV1ModelExportFormat", "properties": { - "modality": { - "description": "The modality of the uploaded model, which automatically configures the distance measurement and feature normalization for the underlying example index and queries. If your model does not precisely fit one of these types, it is okay to choose the closest type.", - "enum": [ - "MODALITY_UNSPECIFIED", - "IMAGE", - "TEXT", - "TABULAR" - ], - "enumDescriptions": [ - "Should not be set. Added as a recommended best practice for enums", - "IMAGE modality", - "TEXT modality", - "TABULAR modality" - ], - "type": "string" + "exportableContents": { + "description": "Output only. The content of this Model that may be exported.", + "items": { + "enum": [ + "EXPORTABLE_CONTENT_UNSPECIFIED", + "ARTIFACT", + "IMAGE" + ], + "enumDescriptions": [ + "Should not be used.", + "Model artifact and any of its supported files. Will be exported to the location specified by the `artifactDestination` field of the ExportModelRequest.output_config object.", + "The container image that is to be used when deploying this Model. Will be exported to the location specified by the `imageDestination` field of the ExportModelRequest.output_config object." + ], + "type": "string" + }, + "readOnly": true, + "type": "array" }, - "query": { - "description": "Preset option controlling parameters for speed-precision trade-off when querying for examples. If omitted, defaults to `PRECISE`.", - "enum": [ - "PRECISE", - "FAST" - ], - "enumDescriptions": [ - "More precise neighbors as a trade-off against slower response.", - "Faster response as a trade-off against less precise neighbors." - ], + "id": { + "description": "Output only. The ID of the export format. The possible format IDs are: * `tflite` Used for Android mobile devices. * `edgetpu-tflite` Used for [Edge TPU](https://cloud.google.com/edge-tpu/) devices. * `tf-saved-model` A tensorflow model in SavedModel format. * `tf-js` A [TensorFlow.js](https://www.tensorflow.org/js) model that can be used in the browser and in Node.js using JavaScript. * `core-ml` Used for iOS mobile devices. * `custom-trained` A Model that was uploaded or trained by custom code.", + "readOnly": true, "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1PrivateEndpoints": { - "description": "PrivateEndpoints proto is used to provide paths for users to send requests privately. To send request via private service access, use predict_http_uri, explain_http_uri or health_http_uri. To send request via private service connect, use service_attachment.", - "id": "GoogleCloudAiplatformV1PrivateEndpoints", + "GoogleCloudAiplatformV1ModelMonitoringAlertConfig": { + "description": "The alert config for model monitoring.", + "id": "GoogleCloudAiplatformV1ModelMonitoringAlertConfig", "properties": { - "explainHttpUri": { - "description": "Output only. Http(s) path to send explain requests.", - "readOnly": true, - "type": "string" - }, - "healthHttpUri": { - "description": "Output only. Http(s) path to send health check requests.", - "readOnly": true, - "type": "string" + "emailAlertConfig": { + "$ref": "GoogleCloudAiplatformV1ModelMonitoringAlertConfigEmailAlertConfig", + "description": "Email alert config." }, - "predictHttpUri": { - "description": "Output only. Http(s) path to send prediction requests.", - "readOnly": true, - "type": "string" + "enableLogging": { + "description": "Dump the anomalies to Cloud Logging. The anomalies will be put to json payload encoded from proto google.cloud.aiplatform.logging.ModelMonitoringAnomaliesLogEntry. This can be further sinked to Pub/Sub or any other services supported by Cloud Logging.", + "type": "boolean" }, - "serviceAttachment": { - "description": "Output only. The name of the service attachment resource. Populated if private service connect is enabled.", - "readOnly": true, - "type": "string" + "notificationChannels": { + "description": "Resource names of the NotificationChannels to send alert. Must be of the format `projects//notificationChannels/`", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1PrivateServiceConnectConfig": { - "description": "Represents configuration for private service connect.", - "id": "GoogleCloudAiplatformV1PrivateServiceConnectConfig", + "GoogleCloudAiplatformV1ModelMonitoringAlertConfigEmailAlertConfig": { + "description": "The config for email alert.", + "id": "GoogleCloudAiplatformV1ModelMonitoringAlertConfigEmailAlertConfig", "properties": { - "enablePrivateServiceConnect": { - "description": "Required. If true, expose the IndexEndpoint via private service connect.", - "type": "boolean" - }, - "projectAllowlist": { - "description": "A list of Projects from which the forwarding rule will target the service attachment.", + "userEmails": { + "description": "The email addresses to send the alert.", "items": { "type": "string" }, @@ -24114,1007 +25051,1252 @@ }, "type": "object" }, - "GoogleCloudAiplatformV1Probe": { - "description": "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.", - "id": "GoogleCloudAiplatformV1Probe", + "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfig": { + "description": "The objective configuration for model monitoring, including the information needed to detect anomalies for one particular model.", + "id": "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfig", "properties": { - "exec": { - "$ref": "GoogleCloudAiplatformV1ProbeExecAction", - "description": "Exec specifies the action to take." + "explanationConfig": { + "$ref": "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigExplanationConfig", + "description": "The config for integrating with Vertex Explainable AI." }, - "periodSeconds": { - "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Must be less than timeout_seconds. Maps to Kubernetes probe argument 'periodSeconds'.", - "format": "int32", - "type": "integer" + "predictionDriftDetectionConfig": { + "$ref": "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigPredictionDriftDetectionConfig", + "description": "The config for drift of prediction data." }, - "timeoutSeconds": { - "description": "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Must be greater or equal to period_seconds. Maps to Kubernetes probe argument 'timeoutSeconds'.", - "format": "int32", - "type": "integer" + "trainingDataset": { + "$ref": "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigTrainingDataset", + "description": "Training dataset for models. This field has to be set only if TrainingPredictionSkewDetectionConfig is specified." + }, + "trainingPredictionSkewDetectionConfig": { + "$ref": "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigTrainingPredictionSkewDetectionConfig", + "description": "The config for skew between training data and prediction data." } }, "type": "object" }, - "GoogleCloudAiplatformV1ProbeExecAction": { - "description": "ExecAction specifies a command to execute.", - "id": "GoogleCloudAiplatformV1ProbeExecAction", + "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigExplanationConfig": { + "description": "The config for integrating with Vertex Explainable AI. Only applicable if the Model has explanation_spec populated.", + "id": "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigExplanationConfig", "properties": { - "command": { - "description": "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", - "items": { - "type": "string" - }, - "type": "array" + "enableFeatureAttributes": { + "description": "If want to analyze the Vertex Explainable AI feature attribute scores or not. If set to true, Vertex AI will log the feature attributions from explain response and do the skew/drift detection for them.", + "type": "boolean" + }, + "explanationBaseline": { + "$ref": "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigExplanationConfigExplanationBaseline", + "description": "Predictions generated by the BatchPredictionJob using baseline dataset." } }, "type": "object" }, - "GoogleCloudAiplatformV1PublisherModel": { - "description": "A Model Garden Publisher Model.", - "id": "GoogleCloudAiplatformV1PublisherModel", + "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigExplanationConfigExplanationBaseline": { + "description": "Output from BatchPredictionJob for Model Monitoring baseline dataset, which can be used to generate baseline attribution scores.", + "id": "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigExplanationConfigExplanationBaseline", "properties": { - "frameworks": { - "description": "Optional. Additional information about the model's Frameworks.", - "items": { - "type": "string" - }, - "type": "array" - }, - "launchStage": { - "description": "Optional. Indicates the launch stage of the model.", - "enum": [ - "LAUNCH_STAGE_UNSPECIFIED", - "EXPERIMENTAL", - "PRIVATE_PREVIEW", - "PUBLIC_PREVIEW", - "GA" - ], - "enumDescriptions": [ - "The model launch stage is unspecified.", - "Used to indicate the PublisherModel is at Experimental launch stage.", - "Used to indicate the PublisherModel is at Private Preview launch stage.", - "Used to indicate the PublisherModel is at Public Preview launch stage.", - "Used to indicate the PublisherModel is at GA launch stage." - ], - "type": "string" + "bigquery": { + "$ref": "GoogleCloudAiplatformV1BigQueryDestination", + "description": "BigQuery location for BatchExplain output." }, - "name": { - "description": "Output only. The resource name of the PublisherModel.", - "readOnly": true, - "type": "string" + "gcs": { + "$ref": "GoogleCloudAiplatformV1GcsDestination", + "description": "Cloud Storage location for BatchExplain output." }, - "openSourceCategory": { - "description": "Required. Indicates the open source category of the publisher model.", + "predictionFormat": { + "description": "The storage format of the predictions generated BatchPrediction job.", "enum": [ - "OPEN_SOURCE_CATEGORY_UNSPECIFIED", - "PROPRIETARY", - "GOOGLE_OWNED_OSS_WITH_GOOGLE_CHECKPOINT", - "THIRD_PARTY_OWNED_OSS_WITH_GOOGLE_CHECKPOINT", - "GOOGLE_OWNED_OSS", - "THIRD_PARTY_OWNED_OSS" + "PREDICTION_FORMAT_UNSPECIFIED", + "JSONL", + "BIGQUERY" ], "enumDescriptions": [ - "The open source category is unspecified, which should not be used.", - "Used to indicate the PublisherModel is not open sourced.", - "Used to indicate the PublisherModel is a Google-owned open source model w/ Google checkpoint.", - "Used to indicate the PublisherModel is a 3p-owned open source model w/ Google checkpoint.", - "Used to indicate the PublisherModel is a Google-owned pure open source model.", - "Used to indicate the PublisherModel is a 3p-owned pure open source model." + "Should not be set.", + "Predictions are in JSONL files.", + "Predictions are in BigQuery." ], "type": "string" - }, - "predictSchemata": { - "$ref": "GoogleCloudAiplatformV1PredictSchemata", - "description": "Optional. The schemata that describes formats of the PublisherModel's predictions and explanations as given and returned via PredictionService.Predict." - }, - "publisherModelTemplate": { - "description": "Optional. Output only. Immutable. Used to indicate this model has a publisher model and provide the template of the publisher model resource name.", - "readOnly": true, - "type": "string" - }, - "supportedActions": { - "$ref": "GoogleCloudAiplatformV1PublisherModelCallToAction", - "description": "Optional. Supported call-to-action options." - }, - "versionId": { - "description": "Output only. Immutable. The version ID of the PublisherModel. A new version is committed when a new model version is uploaded under an existing model id. It is an auto-incrementing decimal number in string representation.", - "readOnly": true, - "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1PublisherModelCallToAction": { - "description": "Actions could take on this Publisher Model.", - "id": "GoogleCloudAiplatformV1PublisherModelCallToAction", + "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigPredictionDriftDetectionConfig": { + "description": "The config for Prediction data drift detection.", + "id": "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigPredictionDriftDetectionConfig", "properties": { - "createApplication": { - "$ref": "GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences", - "description": "Optional. Create application using the PublisherModel." - }, - "deploy": { - "$ref": "GoogleCloudAiplatformV1PublisherModelCallToActionDeploy", - "description": "Optional. Deploy the PublisherModel to Vertex Endpoint." - }, - "openEvaluationPipeline": { - "$ref": "GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences", - "description": "Optional. Open evaluation pipeline of the PublisherModel." - }, - "openFineTuningPipeline": { - "$ref": "GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences", - "description": "Optional. Open fine-tuning pipeline of the PublisherModel." - }, - "openGenerationAiStudio": { - "$ref": "GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences", - "description": "Optional. Open in Generation AI Studio." - }, - "openGenie": { - "$ref": "GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences", - "description": "Optional. Open Genie / Playground." - }, - "openNotebook": { - "$ref": "GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences", - "description": "Optional. Open notebook of the PublisherModel." - }, - "openPromptTuningPipeline": { - "$ref": "GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences", - "description": "Optional. Open prompt-tuning pipeline of the PublisherModel." + "attributionScoreDriftThresholds": { + "additionalProperties": { + "$ref": "GoogleCloudAiplatformV1ThresholdConfig" + }, + "description": "Key is the feature name and value is the threshold. The threshold here is against attribution score distance between different time windows.", + "type": "object" }, - "requestAccess": { - "$ref": "GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences", - "description": "Optional. Request for access." + "defaultDriftThreshold": { + "$ref": "GoogleCloudAiplatformV1ThresholdConfig", + "description": "Drift anomaly detection threshold used by all features. When the per-feature thresholds are not set, this field can be used to specify a threshold for all features." }, - "viewRestApi": { - "$ref": "GoogleCloudAiplatformV1PublisherModelCallToActionViewRestApi", - "description": "Optional. To view Rest API docs." + "driftThresholds": { + "additionalProperties": { + "$ref": "GoogleCloudAiplatformV1ThresholdConfig" + }, + "description": "Key is the feature name and value is the threshold. If a feature needs to be monitored for drift, a value threshold must be configured for that feature. The threshold here is against feature distribution distance between different time windws.", + "type": "object" } }, "type": "object" }, - "GoogleCloudAiplatformV1PublisherModelCallToActionDeploy": { - "description": "Model metadata that is needed for UploadModel or DeployModel/CreateEndpoint requests.", - "id": "GoogleCloudAiplatformV1PublisherModelCallToActionDeploy", + "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigTrainingDataset": { + "description": "Training Dataset information.", + "id": "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigTrainingDataset", "properties": { - "artifactUri": { - "description": "Optional. The path to the directory containing the Model artifact and any of its supporting files.", - "type": "string" - }, - "automaticResources": { - "$ref": "GoogleCloudAiplatformV1AutomaticResources", - "description": "A description of resources that to large degree are decided by Vertex AI, and require only a modest additional configuration." - }, - "containerSpec": { - "$ref": "GoogleCloudAiplatformV1ModelContainerSpec", - "description": "Optional. The specification of the container that is to be used when deploying this Model in Vertex AI. Not present for Large Models." - }, - "dedicatedResources": { - "$ref": "GoogleCloudAiplatformV1DedicatedResources", - "description": "A description of resources that are dedicated to the DeployedModel, and that need a higher degree of manual configuration." - }, - "largeModelReference": { - "$ref": "GoogleCloudAiplatformV1LargeModelReference", - "description": "Optional. Large model reference. When this is set, model_artifact_spec is not needed." + "bigquerySource": { + "$ref": "GoogleCloudAiplatformV1BigQuerySource", + "description": "The BigQuery table of the unmanaged Dataset used to train this Model." }, - "modelDisplayName": { - "description": "Optional. Default model display name.", + "dataFormat": { + "description": "Data format of the dataset, only applicable if the input is from Google Cloud Storage. The possible formats are: \"tf-record\" The source file is a TFRecord file. \"csv\" The source file is a CSV file. \"jsonl\" The source file is a JSONL file.", "type": "string" }, - "sharedResources": { - "description": "The resource name of the shared DeploymentResourcePool to deploy on. Format: `projects/{project}/locations/{location}/deploymentResourcePools/{deployment_resource_pool}`", + "dataset": { + "description": "The resource name of the Dataset used to train this Model.", "type": "string" }, - "title": { - "description": "Required. The title of the regional resource reference.", + "gcsSource": { + "$ref": "GoogleCloudAiplatformV1GcsSource", + "description": "The Google Cloud Storage uri of the unmanaged Dataset used to train this Model." + }, + "loggingSamplingStrategy": { + "$ref": "GoogleCloudAiplatformV1SamplingStrategy", + "description": "Strategy to sample data from Training Dataset. If not set, we process the whole dataset." + }, + "targetField": { + "description": "The target field name the model is to predict. This field will be excluded when doing Predict and (or) Explain for the training data.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences": { - "description": "The regional resource name or the URI. Key is region, e.g., us-central1, europe-west2, global, etc..", - "id": "GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences", + "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigTrainingPredictionSkewDetectionConfig": { + "description": "The config for Training & Prediction data skew detection. It specifies the training dataset sources and the skew detection parameters.", + "id": "GoogleCloudAiplatformV1ModelMonitoringObjectiveConfigTrainingPredictionSkewDetectionConfig", "properties": { - "references": { + "attributionScoreSkewThresholds": { "additionalProperties": { - "$ref": "GoogleCloudAiplatformV1PublisherModelResourceReference" + "$ref": "GoogleCloudAiplatformV1ThresholdConfig" }, - "description": "Required.", + "description": "Key is the feature name and value is the threshold. The threshold here is against attribution score distance between the training and prediction feature.", "type": "object" }, - "title": { - "description": "Required. The title of the regional resource reference.", - "type": "string" + "defaultSkewThreshold": { + "$ref": "GoogleCloudAiplatformV1ThresholdConfig", + "description": "Skew anomaly detection threshold used by all features. When the per-feature thresholds are not set, this field can be used to specify a threshold for all features." + }, + "skewThresholds": { + "additionalProperties": { + "$ref": "GoogleCloudAiplatformV1ThresholdConfig" + }, + "description": "Key is the feature name and value is the threshold. If a feature needs to be monitored for skew, a value threshold must be configured for that feature. The threshold here is against feature distribution distance between the training and prediction feature.", + "type": "object" } }, "type": "object" }, - "GoogleCloudAiplatformV1PublisherModelCallToActionViewRestApi": { - "description": "Rest API docs.", - "id": "GoogleCloudAiplatformV1PublisherModelCallToActionViewRestApi", + "GoogleCloudAiplatformV1ModelMonitoringStatsAnomalies": { + "description": "Statistics and anomalies generated by Model Monitoring.", + "id": "GoogleCloudAiplatformV1ModelMonitoringStatsAnomalies", "properties": { - "documentations": { - "description": "Required.", + "anomalyCount": { + "description": "Number of anomalies within all stats.", + "format": "int32", + "type": "integer" + }, + "deployedModelId": { + "description": "Deployed Model ID.", + "type": "string" + }, + "featureStats": { + "description": "A list of historical Stats and Anomalies generated for all Features.", "items": { - "$ref": "GoogleCloudAiplatformV1PublisherModelDocumentation" + "$ref": "GoogleCloudAiplatformV1ModelMonitoringStatsAnomaliesFeatureHistoricStatsAnomalies" }, "type": "array" }, - "title": { - "description": "Required. The title of the view rest API.", + "objective": { + "description": "Model Monitoring Objective those stats and anomalies belonging to.", + "enum": [ + "MODEL_DEPLOYMENT_MONITORING_OBJECTIVE_TYPE_UNSPECIFIED", + "RAW_FEATURE_SKEW", + "RAW_FEATURE_DRIFT", + "FEATURE_ATTRIBUTION_SKEW", + "FEATURE_ATTRIBUTION_DRIFT" + ], + "enumDescriptions": [ + "Default value, should not be set.", + "Raw feature values' stats to detect skew between Training-Prediction datasets.", + "Raw feature values' stats to detect drift between Serving-Prediction datasets.", + "Feature attribution scores to detect skew between Training-Prediction datasets.", + "Feature attribution scores to detect skew between Prediction datasets collected within different time windows." + ], "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1PublisherModelDocumentation": { - "description": "A named piece of documentation.", - "id": "GoogleCloudAiplatformV1PublisherModelDocumentation", - "properties": { - "content": { - "description": "Required. Content of this piece of document (in Markdown format).", + "GoogleCloudAiplatformV1ModelMonitoringStatsAnomaliesFeatureHistoricStatsAnomalies": { + "description": "Historical Stats (and Anomalies) for a specific Feature.", + "id": "GoogleCloudAiplatformV1ModelMonitoringStatsAnomaliesFeatureHistoricStatsAnomalies", + "properties": { + "featureDisplayName": { + "description": "Display Name of the Feature.", "type": "string" }, - "title": { - "description": "Required. E.g., OVERVIEW, USE CASES, DOCUMENTATION, SDK & SAMPLES, JAVA, NODE.JS, etc..", - "type": "string" + "predictionStats": { + "description": "A list of historical stats generated by different time window's Prediction Dataset.", + "items": { + "$ref": "GoogleCloudAiplatformV1FeatureStatsAnomaly" + }, + "type": "array" + }, + "threshold": { + "$ref": "GoogleCloudAiplatformV1ThresholdConfig", + "description": "Threshold for anomaly detection." + }, + "trainingStats": { + "$ref": "GoogleCloudAiplatformV1FeatureStatsAnomaly", + "description": "Stats calculated for the Training Dataset." } }, "type": "object" }, - "GoogleCloudAiplatformV1PublisherModelResourceReference": { - "description": "Reference to a resource.", - "id": "GoogleCloudAiplatformV1PublisherModelResourceReference", + "GoogleCloudAiplatformV1ModelOriginalModelInfo": { + "description": "Contains information about the original Model if this Model is a copy.", + "id": "GoogleCloudAiplatformV1ModelOriginalModelInfo", "properties": { - "resourceName": { - "description": "The resource name of the Google Cloud resource.", - "type": "string" - }, - "uri": { - "description": "The URI of the resource.", + "model": { + "description": "Output only. The resource name of the Model this Model is a copy of, including the revision. Format: `projects/{project}/locations/{location}/models/{model_id}@{version_id}`", + "readOnly": true, "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1PurgeArtifactsMetadata": { - "description": "Details of operations that perform MetadataService.PurgeArtifacts.", - "id": "GoogleCloudAiplatformV1PurgeArtifactsMetadata", + "GoogleCloudAiplatformV1ModelSourceInfo": { + "description": "Detail description of the source information of the model.", + "id": "GoogleCloudAiplatformV1ModelSourceInfo", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "Operation metadata for purging Artifacts." + "copy": { + "description": "If this Model is copy of another Model. If true then source_type pertains to the original.", + "type": "boolean" + }, + "sourceType": { + "description": "Type of the model source.", + "enum": [ + "MODEL_SOURCE_TYPE_UNSPECIFIED", + "AUTOML", + "CUSTOM", + "BQML", + "MODEL_GARDEN", + "GENIE", + "CUSTOM_TEXT_EMBEDDING", + "MARKETPLACE" + ], + "enumDescriptions": [ + "Should not be used.", + "The Model is uploaded by automl training pipeline.", + "The Model is uploaded by user or custom training pipeline.", + "The Model is registered and sync'ed from BigQuery ML.", + "The Model is saved or tuned from Model Garden.", + "The Model is saved or tuned from Genie.", + "The Model is uploaded by text embedding finetuning pipeline.", + "The Model is saved or tuned from Marketplace." + ], + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1PurgeArtifactsRequest": { - "description": "Request message for MetadataService.PurgeArtifacts.", - "id": "GoogleCloudAiplatformV1PurgeArtifactsRequest", + "GoogleCloudAiplatformV1MutateDeployedIndexOperationMetadata": { + "description": "Runtime operation information for IndexEndpointService.MutateDeployedIndex.", + "id": "GoogleCloudAiplatformV1MutateDeployedIndexOperationMetadata", "properties": { - "filter": { - "description": "Required. A required filter matching the Artifacts to be purged. E.g., `update_time <= 2020-11-19T11:30:00-04:00`.", + "deployedIndexId": { + "description": "The unique index id specified by user", "type": "string" }, - "force": { - "description": "Optional. Flag to indicate to actually perform the purge. If `force` is set to false, the method will return a sample of Artifact names that would be deleted.", - "type": "boolean" + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "The operation generic information." } }, "type": "object" }, - "GoogleCloudAiplatformV1PurgeArtifactsResponse": { - "description": "Response message for MetadataService.PurgeArtifacts.", - "id": "GoogleCloudAiplatformV1PurgeArtifactsResponse", + "GoogleCloudAiplatformV1MutateDeployedIndexResponse": { + "description": "Response message for IndexEndpointService.MutateDeployedIndex.", + "id": "GoogleCloudAiplatformV1MutateDeployedIndexResponse", "properties": { - "purgeCount": { - "description": "The number of Artifacts that this request deleted (or, if `force` is false, the number of Artifacts that will be deleted). This can be an estimate.", - "format": "int64", - "type": "string" - }, - "purgeSample": { - "description": "A sample of the Artifact names that will be deleted. Only populated if `force` is set to false. The maximum number of samples is 100 (it is possible to return fewer).", - "items": { - "type": "string" - }, - "type": "array" + "deployedIndex": { + "$ref": "GoogleCloudAiplatformV1DeployedIndex", + "description": "The DeployedIndex that had been updated in the IndexEndpoint." } }, "type": "object" }, - "GoogleCloudAiplatformV1PurgeContextsMetadata": { - "description": "Details of operations that perform MetadataService.PurgeContexts.", - "id": "GoogleCloudAiplatformV1PurgeContextsMetadata", + "GoogleCloudAiplatformV1MutateDeployedModelOperationMetadata": { + "description": "Runtime operation information for EndpointService.MutateDeployedModel.", + "id": "GoogleCloudAiplatformV1MutateDeployedModelOperationMetadata", "properties": { "genericMetadata": { "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "Operation metadata for purging Contexts." + "description": "The operation generic information." } }, "type": "object" }, - "GoogleCloudAiplatformV1PurgeContextsRequest": { - "description": "Request message for MetadataService.PurgeContexts.", - "id": "GoogleCloudAiplatformV1PurgeContextsRequest", + "GoogleCloudAiplatformV1MutateDeployedModelRequest": { + "description": "Request message for EndpointService.MutateDeployedModel.", + "id": "GoogleCloudAiplatformV1MutateDeployedModelRequest", "properties": { - "filter": { - "description": "Required. A required filter matching the Contexts to be purged. E.g., `update_time <= 2020-11-19T11:30:00-04:00`.", - "type": "string" + "deployedModel": { + "$ref": "GoogleCloudAiplatformV1DeployedModel", + "description": "Required. The DeployedModel to be mutated within the Endpoint. Only the following fields can be mutated: * `min_replica_count` in either DedicatedResources or AutomaticResources * `max_replica_count` in either DedicatedResources or AutomaticResources * autoscaling_metric_specs * `disable_container_logging` (v1 only) * `enable_container_logging` (v1beta1 only)" }, - "force": { - "description": "Optional. Flag to indicate to actually perform the purge. If `force` is set to false, the method will return a sample of Context names that would be deleted.", - "type": "boolean" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1PurgeContextsResponse": { - "description": "Response message for MetadataService.PurgeContexts.", - "id": "GoogleCloudAiplatformV1PurgeContextsResponse", - "properties": { - "purgeCount": { - "description": "The number of Contexts that this request deleted (or, if `force` is false, the number of Contexts that will be deleted). This can be an estimate.", - "format": "int64", + "updateMask": { + "description": "Required. The update mask applies to the resource. See google.protobuf.FieldMask.", + "format": "google-fieldmask", "type": "string" - }, - "purgeSample": { - "description": "A sample of the Context names that will be deleted. Only populated if `force` is set to false. The maximum number of samples is 100 (it is possible to return fewer).", - "items": { - "type": "string" - }, - "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1PurgeExecutionsMetadata": { - "description": "Details of operations that perform MetadataService.PurgeExecutions.", - "id": "GoogleCloudAiplatformV1PurgeExecutionsMetadata", + "GoogleCloudAiplatformV1MutateDeployedModelResponse": { + "description": "Response message for EndpointService.MutateDeployedModel.", + "id": "GoogleCloudAiplatformV1MutateDeployedModelResponse", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "Operation metadata for purging Executions." + "deployedModel": { + "$ref": "GoogleCloudAiplatformV1DeployedModel", + "description": "The DeployedModel that's being mutated." } }, "type": "object" }, - "GoogleCloudAiplatformV1PurgeExecutionsRequest": { - "description": "Request message for MetadataService.PurgeExecutions.", - "id": "GoogleCloudAiplatformV1PurgeExecutionsRequest", + "GoogleCloudAiplatformV1NasJob": { + "description": "Represents a Neural Architecture Search (NAS) job.", + "id": "GoogleCloudAiplatformV1NasJob", "properties": { - "filter": { - "description": "Required. A required filter matching the Executions to be purged. E.g., `update_time <= 2020-11-19T11:30:00-04:00`.", + "createTime": { + "description": "Output only. Time when the NasJob was created.", + "format": "google-datetime", + "readOnly": true, "type": "string" }, - "force": { - "description": "Optional. Flag to indicate to actually perform the purge. If `force` is set to false, the method will return a sample of Execution names that would be deleted.", - "type": "boolean" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1PurgeExecutionsResponse": { - "description": "Response message for MetadataService.PurgeExecutions.", - "id": "GoogleCloudAiplatformV1PurgeExecutionsResponse", - "properties": { - "purgeCount": { - "description": "The number of Executions that this request deleted (or, if `force` is false, the number of Executions that will be deleted). This can be an estimate.", - "format": "int64", + "displayName": { + "description": "Required. The display name of the NasJob. The name can be up to 128 characters long and can consist of any UTF-8 characters.", "type": "string" }, - "purgeSample": { - "description": "A sample of the Execution names that will be deleted. Only populated if `force` is set to false. The maximum number of samples is 100 (it is possible to return fewer).", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1PythonPackageSpec": { - "description": "The spec of a Python packaged code.", - "id": "GoogleCloudAiplatformV1PythonPackageSpec", - "properties": { - "args": { - "description": "Command line arguments to be passed to the Python task.", - "items": { - "type": "string" - }, - "type": "array" + "enableRestrictedImageTraining": { + "deprecated": true, + "description": "Optional. Enable a separation of Custom model training and restricted image training for tenant project.", + "type": "boolean" }, - "env": { - "description": "Environment variables to be passed to the python module. Maximum limit is 100.", - "items": { - "$ref": "GoogleCloudAiplatformV1EnvVar" - }, - "type": "array" + "encryptionSpec": { + "$ref": "GoogleCloudAiplatformV1EncryptionSpec", + "description": "Customer-managed encryption key options for a NasJob. If this is set, then all resources created by the NasJob will be encrypted with the provided encryption key." }, - "executorImageUri": { - "description": "Required. The URI of a container image in Artifact Registry that will run the provided Python package. Vertex AI provides a wide range of executor images with pre-installed packages to meet users' various use cases. See the list of [pre-built containers for training](https://cloud.google.com/vertex-ai/docs/training/pre-built-containers). You must use an image from this list.", + "endTime": { + "description": "Output only. Time when the NasJob entered any of the following states: `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED`, `JOB_STATE_CANCELLED`.", + "format": "google-datetime", + "readOnly": true, "type": "string" }, - "packageUris": { - "description": "Required. The Google Cloud Storage location of the Python package files which are the training program and its dependent packages. The maximum number of package URIs is 100.", - "items": { + "error": { + "$ref": "GoogleRpcStatus", + "description": "Output only. Only populated when job's state is JOB_STATE_FAILED or JOB_STATE_CANCELLED.", + "readOnly": true + }, + "labels": { + "additionalProperties": { "type": "string" }, - "type": "array" + "description": "The labels with user-defined metadata to organize NasJobs. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels.", + "type": "object" }, - "pythonModule": { - "description": "Required. The Python module name to run after installing the packages.", + "name": { + "description": "Output only. Resource name of the NasJob.", + "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1QueryDeployedModelsResponse": { - "description": "Response message for QueryDeployedModels method.", - "id": "GoogleCloudAiplatformV1QueryDeployedModelsResponse", - "properties": { - "deployedModelRefs": { - "description": "References to the DeployedModels that share the specified deploymentResourcePool.", - "items": { - "$ref": "GoogleCloudAiplatformV1DeployedModelRef" - }, - "type": "array" }, - "deployedModels": { - "deprecated": true, - "description": "DEPRECATED Use deployed_model_refs instead.", - "items": { - "$ref": "GoogleCloudAiplatformV1DeployedModel" - }, - "type": "array" + "nasJobOutput": { + "$ref": "GoogleCloudAiplatformV1NasJobOutput", + "description": "Output only. Output of the NasJob.", + "readOnly": true }, - "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.", + "nasJobSpec": { + "$ref": "GoogleCloudAiplatformV1NasJobSpec", + "description": "Required. The specification of a NasJob." + }, + "startTime": { + "description": "Output only. Time when the NasJob for the first time entered the `JOB_STATE_RUNNING` state.", + "format": "google-datetime", + "readOnly": true, "type": "string" }, - "totalDeployedModelCount": { - "description": "The total number of DeployedModels on this DeploymentResourcePool.", - "format": "int32", - "type": "integer" + "state": { + "description": "Output only. The detailed state of the job.", + "enum": [ + "JOB_STATE_UNSPECIFIED", + "JOB_STATE_QUEUED", + "JOB_STATE_PENDING", + "JOB_STATE_RUNNING", + "JOB_STATE_SUCCEEDED", + "JOB_STATE_FAILED", + "JOB_STATE_CANCELLING", + "JOB_STATE_CANCELLED", + "JOB_STATE_PAUSED", + "JOB_STATE_EXPIRED", + "JOB_STATE_UPDATING", + "JOB_STATE_PARTIALLY_SUCCEEDED" + ], + "enumDescriptions": [ + "The job state is unspecified.", + "The job has been just created or resumed and processing has not yet begun.", + "The service is preparing to run the job.", + "The job is in progress.", + "The job completed successfully.", + "The job failed.", + "The job is being cancelled. From this state the job may only go to either `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED` or `JOB_STATE_CANCELLED`.", + "The job has been cancelled.", + "The job has been stopped, and can be resumed.", + "The job has expired.", + "The job is being updated. Only jobs in the `RUNNING` state can be updated. After updating, the job goes back to the `RUNNING` state.", + "The job is partially succeeded, some results may be missing due to errors." + ], + "readOnly": true, + "type": "string" }, - "totalEndpointCount": { - "description": "The total number of Endpoints that have DeployedModels on this DeploymentResourcePool.", - "format": "int32", - "type": "integer" + "updateTime": { + "description": "Output only. Time when the NasJob was most recently updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1RawPredictRequest": { - "description": "Request message for PredictionService.RawPredict.", - "id": "GoogleCloudAiplatformV1RawPredictRequest", + "GoogleCloudAiplatformV1NasJobOutput": { + "description": "Represents a uCAIP NasJob output.", + "id": "GoogleCloudAiplatformV1NasJobOutput", "properties": { - "httpBody": { - "$ref": "GoogleApiHttpBody", - "description": "The prediction input. Supports HTTP headers and arbitrary data payload. A DeployedModel may have an upper limit on the number of instances it supports per request. When this limit it is exceeded for an AutoML model, the RawPredict method returns an error. When this limit is exceeded for a custom-trained model, the behavior varies depending on the model. You can specify the schema for each instance in the predict_schemata.instance_schema_uri field when you create a Model. This schema applies when you deploy the `Model` as a `DeployedModel` to an Endpoint and use the `RawPredict` method." + "multiTrialJobOutput": { + "$ref": "GoogleCloudAiplatformV1NasJobOutputMultiTrialJobOutput", + "description": "Output only. The output of this multi-trial Neural Architecture Search (NAS) job.", + "readOnly": true } }, "type": "object" }, - "GoogleCloudAiplatformV1ReadFeatureValuesRequest": { - "description": "Request message for FeaturestoreOnlineServingService.ReadFeatureValues.", - "id": "GoogleCloudAiplatformV1ReadFeatureValuesRequest", + "GoogleCloudAiplatformV1NasJobOutputMultiTrialJobOutput": { + "description": "The output of a multi-trial Neural Architecture Search (NAS) jobs.", + "id": "GoogleCloudAiplatformV1NasJobOutputMultiTrialJobOutput", "properties": { - "entityId": { - "description": "Required. ID for a specific entity. For example, for a machine learning model predicting user clicks on a website, an entity ID could be `user_123`.", - "type": "string" + "searchTrials": { + "description": "Output only. List of NasTrials that were started as part of search stage.", + "items": { + "$ref": "GoogleCloudAiplatformV1NasTrial" + }, + "readOnly": true, + "type": "array" }, - "featureSelector": { - "$ref": "GoogleCloudAiplatformV1FeatureSelector", - "description": "Required. Selector choosing Features of the target EntityType." + "trainTrials": { + "description": "Output only. List of NasTrials that were started as part of train stage.", + "items": { + "$ref": "GoogleCloudAiplatformV1NasTrial" + }, + "readOnly": true, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1ReadFeatureValuesResponse": { - "description": "Response message for FeaturestoreOnlineServingService.ReadFeatureValues.", - "id": "GoogleCloudAiplatformV1ReadFeatureValuesResponse", + "GoogleCloudAiplatformV1NasJobSpec": { + "description": "Represents the spec of a NasJob.", + "id": "GoogleCloudAiplatformV1NasJobSpec", "properties": { - "entityView": { - "$ref": "GoogleCloudAiplatformV1ReadFeatureValuesResponseEntityView", - "description": "Entity view with Feature values. This may be the entity in the Featurestore if values for all Features were requested, or a projection of the entity in the Featurestore if values for only some Features were requested." + "multiTrialAlgorithmSpec": { + "$ref": "GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpec", + "description": "The spec of multi-trial algorithms." }, - "header": { - "$ref": "GoogleCloudAiplatformV1ReadFeatureValuesResponseHeader", - "description": "Response header." + "resumeNasJobId": { + "description": "The ID of the existing NasJob in the same Project and Location which will be used to resume search. search_space_spec and nas_algorithm_spec are obtained from previous NasJob hence should not provide them again for this NasJob.", + "type": "string" + }, + "searchSpaceSpec": { + "description": "It defines the search space for Neural Architecture Search (NAS).", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ReadFeatureValuesResponseEntityView": { - "description": "Entity view with Feature values.", - "id": "GoogleCloudAiplatformV1ReadFeatureValuesResponseEntityView", + "GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpec": { + "description": "The spec of multi-trial Neural Architecture Search (NAS).", + "id": "GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpec", "properties": { - "data": { - "description": "Each piece of data holds the k requested values for one requested Feature. If no values for the requested Feature exist, the corresponding cell will be empty. This has the same size and is in the same order as the features from the header ReadFeatureValuesResponse.header.", - "items": { - "$ref": "GoogleCloudAiplatformV1ReadFeatureValuesResponseEntityViewData" - }, - "type": "array" + "metric": { + "$ref": "GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpecMetricSpec", + "description": "Metric specs for the NAS job. Validation for this field is done at `multi_trial_algorithm_spec` field." }, - "entityId": { - "description": "ID of the requested entity.", + "multiTrialAlgorithm": { + "description": "The multi-trial Neural Architecture Search (NAS) algorithm type. Defaults to `REINFORCEMENT_LEARNING`.", + "enum": [ + "MULTI_TRIAL_ALGORITHM_UNSPECIFIED", + "REINFORCEMENT_LEARNING", + "GRID_SEARCH" + ], + "enumDescriptions": [ + "Defaults to `REINFORCEMENT_LEARNING`.", + "The Reinforcement Learning Algorithm for Multi-trial Neural Architecture Search (NAS).", + "The Grid Search Algorithm for Multi-trial Neural Architecture Search (NAS)." + ], "type": "string" + }, + "searchTrialSpec": { + "$ref": "GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpecSearchTrialSpec", + "description": "Required. Spec for search trials." + }, + "trainTrialSpec": { + "$ref": "GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpecTrainTrialSpec", + "description": "Spec for train trials. Top N [TrainTrialSpec.max_parallel_trial_count] search trials will be trained for every M [TrainTrialSpec.frequency] trials searched." } }, "type": "object" }, - "GoogleCloudAiplatformV1ReadFeatureValuesResponseEntityViewData": { - "description": "Container to hold value(s), successive in time, for one Feature from the request.", - "id": "GoogleCloudAiplatformV1ReadFeatureValuesResponseEntityViewData", + "GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpecMetricSpec": { + "description": "Represents a metric to optimize.", + "id": "GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpecMetricSpec", "properties": { - "value": { - "$ref": "GoogleCloudAiplatformV1FeatureValue", - "description": "Feature value if a single value is requested." + "goal": { + "description": "Required. The optimization goal of the metric.", + "enum": [ + "GOAL_TYPE_UNSPECIFIED", + "MAXIMIZE", + "MINIMIZE" + ], + "enumDescriptions": [ + "Goal Type will default to maximize.", + "Maximize the goal metric.", + "Minimize the goal metric." + ], + "type": "string" }, - "values": { - "$ref": "GoogleCloudAiplatformV1FeatureValueList", - "description": "Feature values list if values, successive in time, are requested. If the requested number of values is greater than the number of existing Feature values, nonexistent values are omitted instead of being returned as empty." + "metricId": { + "description": "Required. The ID of the metric. Must not contain whitespaces.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ReadFeatureValuesResponseFeatureDescriptor": { - "description": "Metadata for requested Features.", - "id": "GoogleCloudAiplatformV1ReadFeatureValuesResponseFeatureDescriptor", + "GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpecSearchTrialSpec": { + "description": "Represent spec for search trials.", + "id": "GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpecSearchTrialSpec", "properties": { - "id": { - "description": "Feature ID.", - "type": "string" + "maxFailedTrialCount": { + "description": "The number of failed trials that need to be seen before failing the NasJob. If set to 0, Vertex AI decides how many trials must fail before the whole job fails.", + "format": "int32", + "type": "integer" + }, + "maxParallelTrialCount": { + "description": "Required. The maximum number of trials to run in parallel.", + "format": "int32", + "type": "integer" + }, + "maxTrialCount": { + "description": "Required. The maximum number of Neural Architecture Search (NAS) trials to run.", + "format": "int32", + "type": "integer" + }, + "searchTrialJobSpec": { + "$ref": "GoogleCloudAiplatformV1CustomJobSpec", + "description": "Required. The spec of a search trial job. The same spec applies to all search trials." } }, "type": "object" }, - "GoogleCloudAiplatformV1ReadFeatureValuesResponseHeader": { - "description": "Response header with metadata for the requested ReadFeatureValuesRequest.entity_type and Features.", - "id": "GoogleCloudAiplatformV1ReadFeatureValuesResponseHeader", + "GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpecTrainTrialSpec": { + "description": "Represent spec for train trials.", + "id": "GoogleCloudAiplatformV1NasJobSpecMultiTrialAlgorithmSpecTrainTrialSpec", "properties": { - "entityType": { - "description": "The resource name of the EntityType from the ReadFeatureValuesRequest. Value format: `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entityType}`.", - "type": "string" + "frequency": { + "description": "Required. Frequency of search trials to start train stage. Top N [TrainTrialSpec.max_parallel_trial_count] search trials will be trained for every M [TrainTrialSpec.frequency] trials searched.", + "format": "int32", + "type": "integer" }, - "featureDescriptors": { - "description": "List of Feature metadata corresponding to each piece of ReadFeatureValuesResponse.EntityView.data.", - "items": { - "$ref": "GoogleCloudAiplatformV1ReadFeatureValuesResponseFeatureDescriptor" - }, - "type": "array" + "maxParallelTrialCount": { + "description": "Required. The maximum number of trials to run in parallel.", + "format": "int32", + "type": "integer" + }, + "trainTrialJobSpec": { + "$ref": "GoogleCloudAiplatformV1CustomJobSpec", + "description": "Required. The spec of a train trial job. The same spec applies to all train trials." } }, "type": "object" }, - "GoogleCloudAiplatformV1ReadIndexDatapointsRequest": { - "description": "The request message for MatchService.ReadIndexDatapoints.", - "id": "GoogleCloudAiplatformV1ReadIndexDatapointsRequest", + "GoogleCloudAiplatformV1NasTrial": { + "description": "Represents a uCAIP NasJob trial.", + "id": "GoogleCloudAiplatformV1NasTrial", "properties": { - "deployedIndexId": { - "description": "The ID of the DeployedIndex that will serve the request.", + "endTime": { + "description": "Output only. Time when the NasTrial's status changed to `SUCCEEDED` or `INFEASIBLE`.", + "format": "google-datetime", + "readOnly": true, "type": "string" }, - "ids": { - "description": "IDs of the datapoints to be searched for.", - "items": { - "type": "string" - }, - "type": "array" + "finalMeasurement": { + "$ref": "GoogleCloudAiplatformV1Measurement", + "description": "Output only. The final measurement containing the objective value.", + "readOnly": true + }, + "id": { + "description": "Output only. The identifier of the NasTrial assigned by the service.", + "readOnly": true, + "type": "string" + }, + "startTime": { + "description": "Output only. Time when the NasTrial was started.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The detailed state of the NasTrial.", + "enum": [ + "STATE_UNSPECIFIED", + "REQUESTED", + "ACTIVE", + "STOPPING", + "SUCCEEDED", + "INFEASIBLE" + ], + "enumDescriptions": [ + "The NasTrial state is unspecified.", + "Indicates that a specific NasTrial has been requested, but it has not yet been suggested by the service.", + "Indicates that the NasTrial has been suggested.", + "Indicates that the NasTrial should stop according to the service.", + "Indicates that the NasTrial is completed successfully.", + "Indicates that the NasTrial should not be attempted again. The service will set a NasTrial to INFEASIBLE when it's done but missing the final_measurement." + ], + "readOnly": true, + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ReadIndexDatapointsResponse": { - "description": "The response message for MatchService.ReadIndexDatapoints.", - "id": "GoogleCloudAiplatformV1ReadIndexDatapointsResponse", + "GoogleCloudAiplatformV1NasTrialDetail": { + "description": "Represents a NasTrial details along with its parameters. If there is a corresponding train NasTrial, the train NasTrial is also returned.", + "id": "GoogleCloudAiplatformV1NasTrialDetail", "properties": { - "datapoints": { - "description": "The result list of datapoints.", - "items": { - "$ref": "GoogleCloudAiplatformV1IndexDatapoint" - }, - "type": "array" + "name": { + "description": "Output only. Resource name of the NasTrialDetail.", + "readOnly": true, + "type": "string" + }, + "parameters": { + "description": "The parameters for the NasJob NasTrial.", + "type": "string" + }, + "searchTrial": { + "$ref": "GoogleCloudAiplatformV1NasTrial", + "description": "The requested search NasTrial." + }, + "trainTrial": { + "$ref": "GoogleCloudAiplatformV1NasTrial", + "description": "The train NasTrial corresponding to search_trial. Only populated if search_trial is used for training." } }, "type": "object" }, - "GoogleCloudAiplatformV1ReadTensorboardBlobDataResponse": { - "description": "Response message for TensorboardService.ReadTensorboardBlobData.", - "id": "GoogleCloudAiplatformV1ReadTensorboardBlobDataResponse", + "GoogleCloudAiplatformV1NearestNeighborQuery": { + "description": "A query to find a number of similar entities.", + "id": "GoogleCloudAiplatformV1NearestNeighborQuery", "properties": { - "blobs": { - "description": "Blob messages containing blob bytes.", + "embedding": { + "$ref": "GoogleCloudAiplatformV1NearestNeighborQueryEmbedding", + "description": "Optional. The embedding vector that be used for similar search." + }, + "entityId": { + "description": "Optional. The entity id whose similar entities should be searched for. If embedding is set, search will use embedding instead of entity_id.", + "type": "string" + }, + "neighborCount": { + "description": "Optional. The number of similar entities to be retrieved from feature view for each query.", + "format": "int32", + "type": "integer" + }, + "parameters": { + "$ref": "GoogleCloudAiplatformV1NearestNeighborQueryParameters", + "description": "Optional. Parameters that can be set to tune query on the fly." + }, + "perCrowdingAttributeNeighborCount": { + "description": "Optional. Crowding is a constraint on a neighbor list produced by nearest neighbor search requiring that no more than sper_crowding_attribute_neighbor_count of the k neighbors returned have the same value of crowding_attribute. It's used for improving result diversity.", + "format": "int32", + "type": "integer" + }, + "stringFilters": { + "description": "Optional. The list of string filters.", "items": { - "$ref": "GoogleCloudAiplatformV1TensorboardBlob" + "$ref": "GoogleCloudAiplatformV1NearestNeighborQueryStringFilter" }, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1ReadTensorboardSizeResponse": { - "description": "Response message for TensorboardService.ReadTensorboardSize.", - "id": "GoogleCloudAiplatformV1ReadTensorboardSizeResponse", + "GoogleCloudAiplatformV1NearestNeighborQueryEmbedding": { + "description": "The embedding vector.", + "id": "GoogleCloudAiplatformV1NearestNeighborQueryEmbedding", "properties": { - "storageSizeByte": { - "description": "Payload storage size for the TensorBoard", - "format": "int64", - "type": "string" + "value": { + "description": "Optional. Individual value in the embedding.", + "items": { + "format": "float", + "type": "number" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1ReadTensorboardTimeSeriesDataResponse": { - "description": "Response message for TensorboardService.ReadTensorboardTimeSeriesData.", - "id": "GoogleCloudAiplatformV1ReadTensorboardTimeSeriesDataResponse", + "GoogleCloudAiplatformV1NearestNeighborQueryParameters": { + "description": "Parameters that can be overrided in each query to tune query latency and recall.", + "id": "GoogleCloudAiplatformV1NearestNeighborQueryParameters", "properties": { - "timeSeriesData": { - "$ref": "GoogleCloudAiplatformV1TimeSeriesData", - "description": "The returned time series data." + "approximateNeighborCandidates": { + "description": "Optional. The number of neighbors to find via approximate search before exact reordering is performed; if set, this value must be > neighbor_count.", + "format": "int32", + "type": "integer" + }, + "leafNodesSearchFraction": { + "description": "Optional. The fraction of the number of leaves to search, set at query time allows user to tune search performance. This value increase result in both search accuracy and latency increase. The value should be between 0.0 and 1.0.", + "format": "double", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1ReadTensorboardUsageResponse": { - "description": "Response message for TensorboardService.ReadTensorboardUsage.", - "id": "GoogleCloudAiplatformV1ReadTensorboardUsageResponse", + "GoogleCloudAiplatformV1NearestNeighborQueryStringFilter": { + "description": "String filter is used to search a subset of the entities by using boolean rules on string columns. For example: if a query specifies string filter with 'name = color, allow_tokens = {red, blue}, deny_tokens = {purple}',' then that query will match entities that are red or blue, but if those points are also purple, then they will be excluded even if they are red/blue. Only string filter is supported for now, numeric filter will be supported in the near future.", + "id": "GoogleCloudAiplatformV1NearestNeighborQueryStringFilter", "properties": { - "monthlyUsageData": { - "additionalProperties": { - "$ref": "GoogleCloudAiplatformV1ReadTensorboardUsageResponsePerMonthUsageData" + "allowTokens": { + "description": "Optional. The allowed tokens.", + "items": { + "type": "string" }, - "description": "Maps year-month (YYYYMM) string to per month usage data.", - "type": "object" + "type": "array" + }, + "denyTokens": { + "description": "Optional. The denied tokens.", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Required. Column names in BigQuery that used as filters.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ReadTensorboardUsageResponsePerMonthUsageData": { - "description": "Per month usage data", - "id": "GoogleCloudAiplatformV1ReadTensorboardUsageResponsePerMonthUsageData", + "GoogleCloudAiplatformV1NearestNeighborSearchOperationMetadata": { + "description": "Runtime operation metadata with regard to Matching Engine Index.", + "id": "GoogleCloudAiplatformV1NearestNeighborSearchOperationMetadata", "properties": { - "userUsageData": { - "description": "Usage data for each user in the given month.", + "contentValidationStats": { + "description": "The validation stats of the content (per file) to be inserted or updated on the Matching Engine Index resource. Populated if contentsDeltaUri is provided as part of Index.metadata. Please note that, currently for those files that are broken or has unsupported file format, we will not have the stats for those files.", "items": { - "$ref": "GoogleCloudAiplatformV1ReadTensorboardUsageResponsePerUserUsageData" + "$ref": "GoogleCloudAiplatformV1NearestNeighborSearchOperationMetadataContentValidationStats" }, "type": "array" + }, + "dataBytesCount": { + "description": "The ingested data size in bytes.", + "format": "int64", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ReadTensorboardUsageResponsePerUserUsageData": { - "description": "Per user usage data.", - "id": "GoogleCloudAiplatformV1ReadTensorboardUsageResponsePerUserUsageData", + "GoogleCloudAiplatformV1NearestNeighborSearchOperationMetadataContentValidationStats": { + "id": "GoogleCloudAiplatformV1NearestNeighborSearchOperationMetadataContentValidationStats", "properties": { - "username": { - "description": "User's username", + "invalidRecordCount": { + "description": "Number of records in this file we skipped due to validate errors.", + "format": "int64", "type": "string" }, - "viewCount": { - "description": "Number of times the user has read data within the Tensorboard.", + "partialErrors": { + "description": "The detail information of the partial failures encountered for those invalid records that couldn't be parsed. Up to 50 partial errors will be reported.", + "items": { + "$ref": "GoogleCloudAiplatformV1NearestNeighborSearchOperationMetadataRecordError" + }, + "type": "array" + }, + "sourceGcsUri": { + "description": "Cloud Storage URI pointing to the original file in user's bucket.", + "type": "string" + }, + "validRecordCount": { + "description": "Number of records in this file that were successfully processed.", "format": "int64", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1RemoveContextChildrenRequest": { - "description": "Request message for MetadataService.DeleteContextChildrenRequest.", - "id": "GoogleCloudAiplatformV1RemoveContextChildrenRequest", + "GoogleCloudAiplatformV1NearestNeighborSearchOperationMetadataRecordError": { + "id": "GoogleCloudAiplatformV1NearestNeighborSearchOperationMetadataRecordError", "properties": { - "childContexts": { - "description": "The resource names of the child Contexts.", - "items": { - "type": "string" - }, - "type": "array" + "embeddingId": { + "description": "Empty if the embedding id is failed to parse.", + "type": "string" + }, + "errorMessage": { + "description": "A human-readable message that is shown to the user to help them fix the error. Note that this message may change from time to time, your code should check against error_type as the source of truth.", + "type": "string" + }, + "errorType": { + "description": "The error type of this record.", + "enum": [ + "ERROR_TYPE_UNSPECIFIED", + "EMPTY_LINE", + "INVALID_JSON_SYNTAX", + "INVALID_CSV_SYNTAX", + "INVALID_AVRO_SYNTAX", + "INVALID_EMBEDDING_ID", + "EMBEDDING_SIZE_MISMATCH", + "NAMESPACE_MISSING", + "PARSING_ERROR", + "DUPLICATE_NAMESPACE", + "OP_IN_DATAPOINT", + "MULTIPLE_VALUES", + "INVALID_NUMERIC_VALUE", + "INVALID_ENCODING" + ], + "enumDescriptions": [ + "Default, shall not be used.", + "The record is empty.", + "Invalid json format.", + "Invalid csv format.", + "Invalid avro format.", + "The embedding id is not valid.", + "The size of the embedding vectors does not match with the specified dimension.", + "The `namespace` field is missing.", + "Generic catch-all error. Only used for validation failure where the root cause cannot be easily retrieved programmatically.", + "There are multiple restricts with the same `namespace` value.", + "Numeric restrict has operator specified in datapoint.", + "Numeric restrict has multiple values specified.", + "Numeric restrict has invalid numeric value specified.", + "File is not in UTF_8 format." + ], + "type": "string" + }, + "rawRecord": { + "description": "The original content of this record.", + "type": "string" + }, + "sourceGcsUri": { + "description": "Cloud Storage URI pointing to the original file in user's bucket.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1RemoveContextChildrenResponse": { - "description": "Response message for MetadataService.RemoveContextChildren.", - "id": "GoogleCloudAiplatformV1RemoveContextChildrenResponse", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1RemoveDatapointsRequest": { - "description": "Request message for IndexService.RemoveDatapoints", - "id": "GoogleCloudAiplatformV1RemoveDatapointsRequest", + "GoogleCloudAiplatformV1NearestNeighbors": { + "description": "Nearest neighbors for one query.", + "id": "GoogleCloudAiplatformV1NearestNeighbors", "properties": { - "datapointIds": { - "description": "A list of datapoint ids to be deleted.", + "neighbors": { + "description": "All its neighbors.", "items": { - "type": "string" + "$ref": "GoogleCloudAiplatformV1NearestNeighborsNeighbor" }, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1RemoveDatapointsResponse": { - "description": "Response message for IndexService.RemoveDatapoints", - "id": "GoogleCloudAiplatformV1RemoveDatapointsResponse", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1ResourcesConsumed": { - "description": "Statistics information about resource consumption.", - "id": "GoogleCloudAiplatformV1ResourcesConsumed", + "GoogleCloudAiplatformV1NearestNeighborsNeighbor": { + "description": "A neighbor of the query vector.", + "id": "GoogleCloudAiplatformV1NearestNeighborsNeighbor", "properties": { - "replicaHours": { - "description": "Output only. The number of replica hours used. Note that many replicas may run in parallel, and additionally any given work may be queued for some time. Therefore this value is not strictly related to wall time.", + "distance": { + "description": "The distance between the neighbor and the query vector.", "format": "double", - "readOnly": true, "type": "number" + }, + "entityId": { + "description": "The id of the similar entity.", + "type": "string" + }, + "entityKeyValues": { + "$ref": "GoogleCloudAiplatformV1FetchFeatureValuesResponse", + "description": "The attributes of the neighbor, e.g. filters, crowding and metadata Note that full entities are returned only when \"return_full_entity\" is set to true. Otherwise, only the \"entity_id\" and \"distance\" fields are populated." } }, "type": "object" }, - "GoogleCloudAiplatformV1RestoreDatasetVersionOperationMetadata": { - "description": "Runtime operation information for DatasetService.RestoreDatasetVersion.", - "id": "GoogleCloudAiplatformV1RestoreDatasetVersionOperationMetadata", + "GoogleCloudAiplatformV1Neighbor": { + "description": "Neighbors for example-based explanations.", + "id": "GoogleCloudAiplatformV1Neighbor", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "The common part of the operation metadata." + "neighborDistance": { + "description": "Output only. The neighbor distance.", + "format": "double", + "readOnly": true, + "type": "number" + }, + "neighborId": { + "description": "Output only. The neighbor id.", + "readOnly": true, + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ResumeModelDeploymentMonitoringJobRequest": { - "description": "Request message for JobService.ResumeModelDeploymentMonitoringJob.", - "id": "GoogleCloudAiplatformV1ResumeModelDeploymentMonitoringJobRequest", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1ResumeScheduleRequest": { - "description": "Request message for ScheduleService.ResumeSchedule.", - "id": "GoogleCloudAiplatformV1ResumeScheduleRequest", + "GoogleCloudAiplatformV1NetworkSpec": { + "description": "Network spec.", + "id": "GoogleCloudAiplatformV1NetworkSpec", "properties": { - "catchUp": { - "description": "Optional. Whether to backfill missed runs when the schedule is resumed from PAUSED state. If set to true, all missed runs will be scheduled. New runs will be scheduled after the backfill is complete. This will also update Schedule.catch_up field. Default to false.", + "enableInternetAccess": { + "description": "Whether to enable public internet access. Default false.", "type": "boolean" + }, + "network": { + "description": "The full name of the Google Compute Engine [network](https://cloud.google.com//compute/docs/networks-and-firewalls#networks)", + "type": "string" + }, + "subnetwork": { + "description": "The name of the subnet that this instance is in. Format: `projects/{project_id_or_number}/regions/{region}/subnetworks/{subnetwork_id}`", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SampleConfig": { - "description": "Active learning data sampling config. For every active learning labeling iteration, it will select a batch of data based on the sampling strategy.", - "id": "GoogleCloudAiplatformV1SampleConfig", + "GoogleCloudAiplatformV1NfsMount": { + "description": "Represents a mount configuration for Network File System (NFS) to mount.", + "id": "GoogleCloudAiplatformV1NfsMount", "properties": { - "followingBatchSamplePercentage": { - "description": "The percentage of data needed to be labeled in each following batch (except the first batch).", - "format": "int32", - "type": "integer" + "mountPoint": { + "description": "Required. Destination mount path. The NFS will be mounted for the user under /mnt/nfs/", + "type": "string" }, - "initialBatchSamplePercentage": { - "description": "The percentage of data needed to be labeled in the first batch.", - "format": "int32", - "type": "integer" + "path": { + "description": "Required. Source path exported from NFS server. Has to start with '/', and combined with the ip address, it indicates the source mount path in the form of `server:path`", + "type": "string" }, - "sampleStrategy": { - "description": "Field to choose sampling strategy. Sampling strategy will decide which data should be selected for human labeling in every batch.", - "enum": [ - "SAMPLE_STRATEGY_UNSPECIFIED", - "UNCERTAINTY" - ], - "enumDescriptions": [ - "Default will be treated as UNCERTAINTY.", - "Sample the most uncertain data to label." - ], + "server": { + "description": "Required. IP address of the NFS server.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SampledShapleyAttribution": { - "description": "An attribution method that approximates Shapley values for features that contribute to the label being predicted. A sampling strategy is used to approximate the value rather than considering all subsets of features.", - "id": "GoogleCloudAiplatformV1SampledShapleyAttribution", + "GoogleCloudAiplatformV1NotebookEucConfig": { + "description": "The euc configuration of NotebookRuntimeTemplate.", + "id": "GoogleCloudAiplatformV1NotebookEucConfig", "properties": { - "pathCount": { - "description": "Required. The number of feature permutations to consider when approximating the Shapley values. Valid range of its value is [1, 50], inclusively.", - "format": "int32", - "type": "integer" + "bypassActasCheck": { + "description": "Output only. Whether ActAs check is bypassed for service account attached to the VM. If false, we need ActAs check for the default Compute Engine Service account. When a Runtime is created, a VM is allocated using Default Compute Engine Service Account. Any user requesting to use this Runtime requires Service Account User (ActAs) permission over this SA. If true, Runtime owner is using EUC and does not require the above permission as VM no longer use default Compute Engine SA, but a P4SA.", + "readOnly": true, + "type": "boolean" + }, + "eucDisabled": { + "description": "Input only. Whether EUC is disabled in this NotebookRuntimeTemplate. In proto3, the default value of a boolean is false. In this way, by default EUC will be enabled for NotebookRuntimeTemplate.", + "type": "boolean" } }, "type": "object" }, - "GoogleCloudAiplatformV1SamplingStrategy": { - "description": "Sampling Strategy for logging, can be for both training and prediction dataset.", - "id": "GoogleCloudAiplatformV1SamplingStrategy", + "GoogleCloudAiplatformV1NotebookIdleShutdownConfig": { + "description": "The idle shutdown configuration of NotebookRuntimeTemplate, which contains the idle_timeout as required field.", + "id": "GoogleCloudAiplatformV1NotebookIdleShutdownConfig", "properties": { - "randomSampleConfig": { - "$ref": "GoogleCloudAiplatformV1SamplingStrategyRandomSampleConfig", - "description": "Random sample config. Will support more sampling strategies later." + "idleShutdownDisabled": { + "description": "Whether Idle Shutdown is disabled in this NotebookRuntimeTemplate.", + "type": "boolean" + }, + "idleTimeout": { + "description": "Required. Duration is accurate to the second. In Notebook, Idle Timeout is accurate to minute so the range of idle_timeout (second) is: 10 * 60 ~ 1440 * 60.", + "format": "google-duration", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SamplingStrategyRandomSampleConfig": { - "description": "Requests are randomly selected.", - "id": "GoogleCloudAiplatformV1SamplingStrategyRandomSampleConfig", + "GoogleCloudAiplatformV1NotebookReservationAffinity": { + "description": "Notebook Reservation Affinity for consuming Zonal reservation.", + "id": "GoogleCloudAiplatformV1NotebookReservationAffinity", "properties": { - "sampleRate": { - "description": "Sample rate (0, 1]", - "format": "double", - "type": "number" + "consumeReservationType": { + "description": "Required. Specifies the type of reservation from which this instance can consume resources: RESERVATION_ANY (default), RESERVATION_SPECIFIC, or RESERVATION_NONE. See Consuming reserved instances for examples.", + "enum": [ + "RESERVATION_AFFINITY_TYPE_UNSPECIFIED", + "RESERVATION_NONE", + "RESERVATION_ANY", + "RESERVATION_SPECIFIC" + ], + "enumDescriptions": [ + "Default type.", + "Do not consume from any allocated capacity.", + "Consume any reservation available.", + "Must consume from a specific reservation. Must specify key value fields for specifying the reservations." + ], + "type": "string" + }, + "key": { + "description": "Optional. Corresponds to the label key of a reservation resource. To target a RESERVATION_SPECIFIC by name, use compute.googleapis.com/reservation-name as the key and specify the name of your reservation as its value.", + "type": "string" + }, + "values": { + "description": "Optional. Corresponds to the label values of a reservation resource. This must be the full path name of Reservation.", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1SavedQuery": { - "description": "A SavedQuery is a view of the dataset. It references a subset of annotations by problem type and filters.", - "id": "GoogleCloudAiplatformV1SavedQuery", + "GoogleCloudAiplatformV1NotebookRuntime": { + "description": "A runtime is a virtual machine allocated to a particular user for a particular Notebook file on temporary basis with lifetime limited to 24 hours.", + "id": "GoogleCloudAiplatformV1NotebookRuntime", "properties": { - "annotationFilter": { - "description": "Output only. Filters on the Annotations in the dataset.", - "readOnly": true, - "type": "string" - }, - "annotationSpecCount": { - "description": "Output only. Number of AnnotationSpecs in the context of the SavedQuery.", - "format": "int32", - "readOnly": true, - "type": "integer" - }, "createTime": { - "description": "Output only. Timestamp when this SavedQuery was created.", + "description": "Output only. Timestamp when this NotebookRuntime was created.", "format": "google-datetime", "readOnly": true, "type": "string" }, - "displayName": { - "description": "Required. The user-defined name of the SavedQuery. The name can be up to 128 characters long and can consist of any UTF-8 characters.", + "description": { + "description": "The description of the NotebookRuntime.", "type": "string" }, - "etag": { - "description": "Used to perform a consistent read-modify-write update. If not set, a blind \"overwrite\" update happens.", + "displayName": { + "description": "Required. The display name of the NotebookRuntime. The name can be up to 128 characters long and can consist of any UTF-8 characters.", "type": "string" }, - "metadata": { - "description": "Some additional information about the SavedQuery.", - "type": "any" - }, - "name": { - "description": "Output only. Resource name of the SavedQuery.", + "expirationTime": { + "description": "Output only. Timestamp when this NotebookRuntime will be expired: 1. System Predefined NotebookRuntime: 24 hours after creation. After expiration, system predifined runtime will be deleted. 2. User created NotebookRuntime: 6 months after last upgrade. After expiration, user created runtime will be stopped and allowed for upgrade.", + "format": "google-datetime", "readOnly": true, "type": "string" }, - "problemType": { - "description": "Required. Problem type of the SavedQuery. Allowed values: * IMAGE_CLASSIFICATION_SINGLE_LABEL * IMAGE_CLASSIFICATION_MULTI_LABEL * IMAGE_BOUNDING_POLY * IMAGE_BOUNDING_BOX * TEXT_CLASSIFICATION_SINGLE_LABEL * TEXT_CLASSIFICATION_MULTI_LABEL * TEXT_EXTRACTION * TEXT_SENTIMENT * VIDEO_CLASSIFICATION * VIDEO_OBJECT_TRACKING", + "healthState": { + "description": "Output only. The health state of the NotebookRuntime.", + "enum": [ + "HEALTH_STATE_UNSPECIFIED", + "HEALTHY", + "UNHEALTHY" + ], + "enumDescriptions": [ + "Unspecified health state.", + "NotebookRuntime is in healthy state. Applies to ACTIVE state.", + "NotebookRuntime is in unhealthy state. Applies to ACTIVE state." + ], + "readOnly": true, "type": "string" }, - "supportAutomlTraining": { - "description": "Output only. If the Annotations belonging to the SavedQuery can be used for AutoML training.", + "isUpgradable": { + "description": "Output only. Whether NotebookRuntime is upgradable.", "readOnly": true, "type": "boolean" }, - "updateTime": { - "description": "Output only. Timestamp when SavedQuery was last updated.", - "format": "google-datetime", + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "The labels with user-defined metadata to organize your NotebookRuntime. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. No more than 64 user labels can be associated with one NotebookRuntime (System labels are excluded). See https://goo.gl/xmQnxf for more information and examples of labels. System reserved label keys are prefixed with \"aiplatform.googleapis.com/\" and are immutable. Following system labels exist for NotebookRuntime: * \"aiplatform.googleapis.com/notebook_runtime_gce_instance_id\": output only, its value is the Compute Engine instance id. * \"aiplatform.googleapis.com/colab_enterprise_entry_service\": its value is either \"bigquery\" or \"vertex\"; if absent, it should be \"vertex\". This is to describe the entry service, either BigQuery or Vertex.", + "type": "object" + }, + "name": { + "description": "Output only. The resource name of the NotebookRuntime.", "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1Scalar": { - "description": "One point viewable on a scalar metric plot.", - "id": "GoogleCloudAiplatformV1Scalar", - "properties": { - "value": { - "description": "Value of the point at this step / timestamp.", - "format": "double", - "type": "number" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1Schedule": { - "description": "An instance of a Schedule periodically schedules runs to make API calls based on user specified time specification and API request type.", - "id": "GoogleCloudAiplatformV1Schedule", - "properties": { - "allowQueueing": { - "description": "Optional. Whether new scheduled runs can be queued when max_concurrent_runs limit is reached. If set to true, new runs will be queued instead of skipped. Default to false.", - "type": "boolean" }, - "catchUp": { - "description": "Output only. Whether to backfill missed runs when the schedule is resumed from PAUSED state. If set to true, all missed runs will be scheduled. New runs will be scheduled after the backfill is complete. Default to false.", - "readOnly": true, - "type": "boolean" + "networkTags": { + "description": "Optional. The Compute Engine tags to add to runtime (see [Tagging instances](https://cloud.google.com/vpc/docs/add-remove-network-tags)).", + "items": { + "type": "string" + }, + "type": "array" }, - "createPipelineJobRequest": { - "$ref": "GoogleCloudAiplatformV1CreatePipelineJobRequest", - "description": "Request for PipelineService.CreatePipelineJob. CreatePipelineJobRequest.parent field is required (format: projects/{project}/locations/{location})." + "notebookRuntimeTemplateRef": { + "$ref": "GoogleCloudAiplatformV1NotebookRuntimeTemplateRef", + "description": "Output only. The pointer to NotebookRuntimeTemplate this NotebookRuntime is created from.", + "readOnly": true }, - "createTime": { - "description": "Output only. Timestamp when this Schedule was created.", - "format": "google-datetime", + "notebookRuntimeType": { + "description": "Output only. The type of the notebook runtime.", + "enum": [ + "NOTEBOOK_RUNTIME_TYPE_UNSPECIFIED", + "USER_DEFINED", + "ONE_CLICK" + ], + "enumDescriptions": [ + "Unspecified notebook runtime type, NotebookRuntimeType will default to USER_DEFINED.", + "runtime or template with coustomized configurations from user.", + "runtime or template with system defined configurations." + ], "readOnly": true, "type": "string" }, - "cron": { - "description": "Cron schedule (https://en.wikipedia.org/wiki/Cron) to launch scheduled runs. To explicitly set a timezone to the cron tab, apply a prefix in the cron tab: \"CRON_TZ=${IANA_TIME_ZONE}\" or \"TZ=${IANA_TIME_ZONE}\". The ${IANA_TIME_ZONE} may only be a valid string from IANA time zone database. For example, \"CRON_TZ=America/New_York 1 * * * *\", or \"TZ=America/New_York 1 * * * *\".", + "proxyUri": { + "description": "Output only. The proxy endpoint used to access the NotebookRuntime.", + "readOnly": true, "type": "string" }, - "displayName": { - "description": "Required. User provided name of the Schedule. The name can be up to 128 characters long and can consist of any UTF-8 characters.", + "reservationAffinity": { + "$ref": "GoogleCloudAiplatformV1NotebookReservationAffinity", + "description": "Output only. Reservation Affinity of the notebook runtime.", + "readOnly": true + }, + "runtimeState": { + "description": "Output only. The runtime (instance) state of the NotebookRuntime.", + "enum": [ + "RUNTIME_STATE_UNSPECIFIED", + "RUNNING", + "BEING_STARTED", + "BEING_STOPPED", + "STOPPED", + "BEING_UPGRADED" + ], + "enumDescriptions": [ + "Unspecified runtime state.", + "NotebookRuntime is in running state.", + "NotebookRuntime is in starting state.", + "NotebookRuntime is in stopping state.", + "NotebookRuntime is in stopped state.", + "NotebookRuntime is in upgrading state. It is in the middle of upgrading process." + ], + "readOnly": true, "type": "string" }, - "endTime": { - "description": "Optional. Timestamp after which no new runs can be scheduled. If specified, The schedule will be completed when either end_time is reached or when scheduled_run_count >= max_run_count. If not specified, new runs will keep getting scheduled until this Schedule is paused or deleted. Already scheduled runs will be allowed to complete. Unset if not specified.", - "format": "google-datetime", + "runtimeUser": { + "description": "Required. The user email of the NotebookRuntime.", "type": "string" }, - "lastPauseTime": { - "description": "Output only. Timestamp when this Schedule was last paused. Unset if never paused.", + "serviceAccount": { + "description": "Output only. The service account that the NotebookRuntime workload runs as.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. Timestamp when this NotebookRuntime was most recently updated.", "format": "google-datetime", "readOnly": true, "type": "string" }, - "lastResumeTime": { - "description": "Output only. Timestamp when this Schedule was last resumed. Unset if never resumed from pause.", + "version": { + "description": "Output only. The VM os image version of NotebookRuntime.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1NotebookRuntimeTemplate": { + "description": "A template that specifies runtime configurations such as machine type, runtime version, network configurations, etc. Multiple runtimes can be created from a runtime template.", + "id": "GoogleCloudAiplatformV1NotebookRuntimeTemplate", + "properties": { + "createTime": { + "description": "Output only. Timestamp when this NotebookRuntimeTemplate was created.", "format": "google-datetime", "readOnly": true, "type": "string" }, - "lastScheduledRunResponse": { - "$ref": "GoogleCloudAiplatformV1ScheduleRunResponse", - "description": "Output only. Response of the last scheduled run. This is the response for starting the scheduled requests and not the execution of the operations/jobs created by the requests (if applicable). Unset if no run has been scheduled yet.", - "readOnly": true + "dataPersistentDiskSpec": { + "$ref": "GoogleCloudAiplatformV1PersistentDiskSpec", + "description": "Optional. The specification of persistent disk attached to the runtime as data disk storage." }, - "maxConcurrentRunCount": { - "description": "Required. Maximum number of runs that can be started concurrently for this Schedule. This is the limit for starting the scheduled requests and not the execution of the operations/jobs created by the requests (if applicable).", - "format": "int64", + "description": { + "description": "The description of the NotebookRuntimeTemplate.", "type": "string" }, - "maxRunCount": { - "description": "Optional. Maximum run count of the schedule. If specified, The schedule will be completed when either started_run_count >= max_run_count or when end_time is reached. If not specified, new runs will keep getting scheduled until this Schedule is paused or deleted. Already scheduled runs will be allowed to complete. Unset if not specified.", - "format": "int64", + "displayName": { + "description": "Required. The display name of the NotebookRuntimeTemplate. The name can be up to 128 characters long and can consist of any UTF-8 characters.", "type": "string" }, - "name": { - "description": "Immutable. The resource name of the Schedule.", + "etag": { + "description": "Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", "type": "string" }, - "nextRunTime": { - "description": "Output only. Timestamp when this Schedule should schedule the next run. Having a next_run_time in the past means the runs are being started behind schedule.", - "format": "google-datetime", + "eucConfig": { + "$ref": "GoogleCloudAiplatformV1NotebookEucConfig", + "description": "EUC configuration of the NotebookRuntimeTemplate." + }, + "idleShutdownConfig": { + "$ref": "GoogleCloudAiplatformV1NotebookIdleShutdownConfig", + "description": "The idle shutdown configuration of NotebookRuntimeTemplate. This config will only be set when idle shutdown is enabled." + }, + "isDefault": { + "description": "Output only. The default template to use if not specified.", "readOnly": true, - "type": "string" + "type": "boolean" }, - "startTime": { - "description": "Optional. Timestamp after which the first run can be scheduled. Default to Schedule create time if not specified.", - "format": "google-datetime", - "type": "string" + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "The labels with user-defined metadata to organize the NotebookRuntimeTemplates. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels.", + "type": "object" }, - "startedRunCount": { - "description": "Output only. The number of runs started by this schedule.", - "format": "int64", + "machineSpec": { + "$ref": "GoogleCloudAiplatformV1MachineSpec", + "description": "Optional. Immutable. The specification of a single machine for the template." + }, + "name": { + "description": "Output only. The resource name of the NotebookRuntimeTemplate.", "readOnly": true, "type": "string" }, - "state": { - "description": "Output only. The state of this Schedule.", + "networkSpec": { + "$ref": "GoogleCloudAiplatformV1NetworkSpec", + "description": "Optional. Network spec." + }, + "networkTags": { + "description": "Optional. The Compute Engine tags to add to runtime (see [Tagging instances](https://cloud.google.com/vpc/docs/add-remove-network-tags)).", + "items": { + "type": "string" + }, + "type": "array" + }, + "notebookRuntimeType": { + "description": "Optional. Immutable. The type of the notebook runtime template.", "enum": [ - "STATE_UNSPECIFIED", - "ACTIVE", - "PAUSED", - "COMPLETED" + "NOTEBOOK_RUNTIME_TYPE_UNSPECIFIED", + "USER_DEFINED", + "ONE_CLICK" ], "enumDescriptions": [ - "Unspecified.", - "The Schedule is active. Runs are being scheduled on the user-specified timespec.", - "The schedule is paused. No new runs will be created until the schedule is resumed. Already started runs will be allowed to complete.", - "The Schedule is completed. No new runs will be scheduled. Already started runs will be allowed to complete. Schedules in completed state cannot be paused or resumed." + "Unspecified notebook runtime type, NotebookRuntimeType will default to USER_DEFINED.", + "runtime or template with coustomized configurations from user.", + "runtime or template with system defined configurations." ], - "readOnly": true, "type": "string" }, + "reservationAffinity": { + "$ref": "GoogleCloudAiplatformV1NotebookReservationAffinity", + "description": "Optional. Reservation Affinity of the notebook runtime template." + }, + "serviceAccount": { + "description": "The service account that the runtime workload runs as. You can use any service account within the same project, but you must have the service account user permission to use the instance. If not specified, the [Compute Engine default service account](https://cloud.google.com/compute/docs/access/service-accounts#default_service_account) is used.", + "type": "string" + }, + "shieldedVmConfig": { + "$ref": "GoogleCloudAiplatformV1ShieldedVmConfig", + "description": "Optional. Immutable. Runtime Shielded VM spec." + }, "updateTime": { - "description": "Output only. Timestamp when this Schedule was updated.", + "description": "Output only. Timestamp when this NotebookRuntimeTemplate was most recently updated.", "format": "google-datetime", "readOnly": true, "type": "string" @@ -25122,1781 +26304,1565 @@ }, "type": "object" }, - "GoogleCloudAiplatformV1ScheduleRunResponse": { - "description": "Status of a scheduled run.", - "id": "GoogleCloudAiplatformV1ScheduleRunResponse", + "GoogleCloudAiplatformV1NotebookRuntimeTemplateRef": { + "description": "Points to a NotebookRuntimeTemplateRef.", + "id": "GoogleCloudAiplatformV1NotebookRuntimeTemplateRef", "properties": { - "runResponse": { - "description": "The response of the scheduled run.", - "type": "string" - }, - "scheduledRunTime": { - "description": "The scheduled run time based on the user-specified schedule.", - "format": "google-datetime", + "notebookRuntimeTemplate": { + "description": "Immutable. A resource name of the NotebookRuntimeTemplate.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1Scheduling": { - "description": "All parameters related to queuing and scheduling of custom jobs.", - "id": "GoogleCloudAiplatformV1Scheduling", + "GoogleCloudAiplatformV1Part": { + "description": "A datatype containing media that is part of a multi-part `Content` message. A `Part` consists of data which has an associated datatype. A `Part` can only contain one of the accepted types in `Part.data`. A `Part` must have a fixed IANA MIME type identifying the type and subtype of the media if `inline_data` or `file_data` field is filled with raw bytes.", + "id": "GoogleCloudAiplatformV1Part", "properties": { - "disableRetries": { - "description": "Optional. Indicates if the job should retry for internal errors after the job starts running. If true, overrides `Scheduling.restart_job_on_worker_restart` to false.", - "type": "boolean" + "fileData": { + "$ref": "GoogleCloudAiplatformV1FileData", + "description": "Optional. URI based data." }, - "restartJobOnWorkerRestart": { - "description": "Restarts the entire CustomJob if a worker gets restarted. This feature can be used by distributed training jobs that are not resilient to workers leaving and joining a job.", - "type": "boolean" + "functionCall": { + "$ref": "GoogleCloudAiplatformV1FunctionCall", + "description": "Optional. A predicted [FunctionCall] returned from the model that contains a string representing the [FunctionDeclaration.name] with the parameters and their values." }, - "timeout": { - "description": "The maximum job running time. The default is 7 days.", - "format": "google-duration", + "functionResponse": { + "$ref": "GoogleCloudAiplatformV1FunctionResponse", + "description": "Optional. The result output of a [FunctionCall] that contains a string representing the [FunctionDeclaration.name] and a structured JSON object containing any output from the function call. It is used as context to the model." + }, + "inlineData": { + "$ref": "GoogleCloudAiplatformV1Blob", + "description": "Optional. Inlined bytes data." + }, + "text": { + "description": "Optional. Text part (can be code).", "type": "string" + }, + "videoMetadata": { + "$ref": "GoogleCloudAiplatformV1VideoMetadata", + "description": "Optional. Video metadata. The metadata should only be specified while the video data is presented in inline_data or file_data." } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaAnnotationSpecColor": { - "description": "An entry of mapping between color and AnnotationSpec. The mapping is used in segmentation mask.", - "id": "GoogleCloudAiplatformV1SchemaAnnotationSpecColor", + "GoogleCloudAiplatformV1PauseModelDeploymentMonitoringJobRequest": { + "description": "Request message for JobService.PauseModelDeploymentMonitoringJob.", + "id": "GoogleCloudAiplatformV1PauseModelDeploymentMonitoringJobRequest", + "properties": {}, + "type": "object" + }, + "GoogleCloudAiplatformV1PauseScheduleRequest": { + "description": "Request message for ScheduleService.PauseSchedule.", + "id": "GoogleCloudAiplatformV1PauseScheduleRequest", + "properties": {}, + "type": "object" + }, + "GoogleCloudAiplatformV1PersistentDiskSpec": { + "description": "Represents the spec of persistent disk options.", + "id": "GoogleCloudAiplatformV1PersistentDiskSpec", "properties": { - "color": { - "$ref": "GoogleTypeColor", - "description": "The color of the AnnotationSpec in a segmentation mask." - }, - "displayName": { - "description": "The display name of the AnnotationSpec represented by the color in the segmentation mask.", + "diskSizeGb": { + "description": "Size in GB of the disk (default is 100GB).", + "format": "int64", "type": "string" }, - "id": { - "description": "The ID of the AnnotationSpec represented by the color in the segmentation mask.", + "diskType": { + "description": "Type of the disk (default is \"pd-standard\"). Valid values: \"pd-ssd\" (Persistent Disk Solid State Drive) \"pd-standard\" (Persistent Disk Hard Disk Drive) \"pd-balanced\" (Balanced Persistent Disk) \"pd-extreme\" (Extreme Persistent Disk)", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaImageBoundingBoxAnnotation": { - "description": "Annotation details specific to image object detection.", - "id": "GoogleCloudAiplatformV1SchemaImageBoundingBoxAnnotation", + "GoogleCloudAiplatformV1PipelineJob": { + "description": "An instance of a machine learning PipelineJob.", + "id": "GoogleCloudAiplatformV1PipelineJob", "properties": { - "annotationSpecId": { - "description": "The resource Id of the AnnotationSpec that this Annotation pertains to.", + "createTime": { + "description": "Output only. Pipeline creation time.", + "format": "google-datetime", + "readOnly": true, "type": "string" }, "displayName": { - "description": "The display name of the AnnotationSpec that this Annotation pertains to.", + "description": "The display name of the Pipeline. The name can be up to 128 characters long and can consist of any UTF-8 characters.", "type": "string" }, - "xMax": { - "description": "The rightmost coordinate of the bounding box.", - "format": "double", - "type": "number" + "encryptionSpec": { + "$ref": "GoogleCloudAiplatformV1EncryptionSpec", + "description": "Customer-managed encryption key spec for a pipelineJob. If set, this PipelineJob and all of its sub-resources will be secured by this key." }, - "xMin": { - "description": "The leftmost coordinate of the bounding box.", - "format": "double", - "type": "number" + "endTime": { + "description": "Output only. Pipeline end time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" }, - "yMax": { - "description": "The bottommost coordinate of the bounding box.", - "format": "double", - "type": "number" + "error": { + "$ref": "GoogleRpcStatus", + "description": "Output only. The error that occurred during pipeline execution. Only populated when the pipeline's state is FAILED or CANCELLED.", + "readOnly": true }, - "yMin": { - "description": "The topmost coordinate of the bounding box.", - "format": "double", - "type": "number" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1SchemaImageClassificationAnnotation": { - "description": "Annotation details specific to image classification.", - "id": "GoogleCloudAiplatformV1SchemaImageClassificationAnnotation", - "properties": { - "annotationSpecId": { - "description": "The resource Id of the AnnotationSpec that this Annotation pertains to.", - "type": "string" + "jobDetail": { + "$ref": "GoogleCloudAiplatformV1PipelineJobDetail", + "description": "Output only. The details of pipeline run. Not available in the list view.", + "readOnly": true }, - "displayName": { - "description": "The display name of the AnnotationSpec that this Annotation pertains to.", - "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1SchemaImageDataItem": { - "description": "Payload of Image DataItem.", - "id": "GoogleCloudAiplatformV1SchemaImageDataItem", - "properties": { - "gcsUri": { - "description": "Required. Google Cloud Storage URI points to the original image in user's bucket. The image is up to 30MB in size.", - "type": "string" + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "The labels with user-defined metadata to organize PipelineJob. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels. Note there is some reserved label key for Vertex AI Pipelines. - `vertex-ai-pipelines-run-billing-id`, user set value will get overrided.", + "type": "object" }, - "mimeType": { - "description": "Output only. The mime type of the content of the image. Only the images in below listed mime types are supported. - image/jpeg - image/gif - image/png - image/webp - image/bmp - image/tiff - image/vnd.microsoft.icon", + "name": { + "description": "Output only. The resource name of the PipelineJob.", "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1SchemaImageDatasetMetadata": { - "description": "The metadata of Datasets that contain Image DataItems.", - "id": "GoogleCloudAiplatformV1SchemaImageDatasetMetadata", - "properties": { - "dataItemSchemaUri": { - "description": "Points to a YAML file stored on Google Cloud Storage describing payload of the Image DataItems that belong to this Dataset.", - "type": "string" }, - "gcsBucket": { - "description": "Google Cloud Storage Bucket name that contains the blob data of this Dataset.", + "network": { + "description": "The full name of the Compute Engine [network](/compute/docs/networks-and-firewalls#networks) to which the Pipeline Job's workload should be peered. For example, `projects/12345/global/networks/myVPC`. [Format](/compute/docs/reference/rest/v1/networks/insert) is of the form `projects/{project}/global/networks/{network}`. Where {project} is a project number, as in `12345`, and {network} is a network name. Private services access must already be configured for the network. Pipeline job will apply the network configuration to the Google Cloud resources being launched, if applied, such as Vertex AI Training or Dataflow job. If left unspecified, the workload is not peered with any network.", "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1SchemaImageSegmentationAnnotation": { - "description": "Annotation details specific to image segmentation.", - "id": "GoogleCloudAiplatformV1SchemaImageSegmentationAnnotation", - "properties": { - "maskAnnotation": { - "$ref": "GoogleCloudAiplatformV1SchemaImageSegmentationAnnotationMaskAnnotation", - "description": "Mask based segmentation annotation. Only one mask annotation can exist for one image." }, - "polygonAnnotation": { - "$ref": "GoogleCloudAiplatformV1SchemaImageSegmentationAnnotationPolygonAnnotation", - "description": "Polygon annotation." + "pipelineSpec": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "The spec of the pipeline.", + "type": "object" }, - "polylineAnnotation": { - "$ref": "GoogleCloudAiplatformV1SchemaImageSegmentationAnnotationPolylineAnnotation", - "description": "Polyline annotation." - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1SchemaImageSegmentationAnnotationMaskAnnotation": { - "description": "The mask based segmentation annotation.", - "id": "GoogleCloudAiplatformV1SchemaImageSegmentationAnnotationMaskAnnotation", - "properties": { - "annotationSpecColors": { - "description": "The mapping between color and AnnotationSpec for this Annotation.", + "reservedIpRanges": { + "description": "A list of names for the reserved ip ranges under the VPC network that can be used for this Pipeline Job's workload. If set, we will deploy the Pipeline Job's workload within the provided ip ranges. Otherwise, the job will be deployed to any ip ranges under the provided VPC network. Example: ['vertex-ai-ip-range'].", "items": { - "$ref": "GoogleCloudAiplatformV1SchemaAnnotationSpecColor" + "type": "string" }, "type": "array" }, - "maskGcsUri": { - "description": "Google Cloud Storage URI that points to the mask image. The image must be in PNG format. It must have the same size as the DataItem's image. Each pixel in the image mask represents the AnnotationSpec which the pixel in the image DataItem belong to. Each color is mapped to one AnnotationSpec based on annotation_spec_colors.", + "runtimeConfig": { + "$ref": "GoogleCloudAiplatformV1PipelineJobRuntimeConfig", + "description": "Runtime config of the pipeline." + }, + "scheduleName": { + "description": "Output only. The schedule resource name. Only returned if the Pipeline is created by Schedule API.", + "readOnly": true, + "type": "string" + }, + "serviceAccount": { + "description": "The service account that the pipeline workload runs as. If not specified, the Compute Engine default service account in the project will be used. See https://cloud.google.com/compute/docs/access/service-accounts#default_service_account Users starting the pipeline must have the `iam.serviceAccounts.actAs` permission on this service account.", + "type": "string" + }, + "startTime": { + "description": "Output only. Pipeline start time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The detailed state of the job.", + "enum": [ + "PIPELINE_STATE_UNSPECIFIED", + "PIPELINE_STATE_QUEUED", + "PIPELINE_STATE_PENDING", + "PIPELINE_STATE_RUNNING", + "PIPELINE_STATE_SUCCEEDED", + "PIPELINE_STATE_FAILED", + "PIPELINE_STATE_CANCELLING", + "PIPELINE_STATE_CANCELLED", + "PIPELINE_STATE_PAUSED" + ], + "enumDescriptions": [ + "The pipeline state is unspecified.", + "The pipeline has been created or resumed, and processing has not yet begun.", + "The service is preparing to run the pipeline.", + "The pipeline is in progress.", + "The pipeline completed successfully.", + "The pipeline failed.", + "The pipeline is being cancelled. From this state, the pipeline may only go to either PIPELINE_STATE_SUCCEEDED, PIPELINE_STATE_FAILED or PIPELINE_STATE_CANCELLED.", + "The pipeline has been cancelled.", + "The pipeline has been stopped, and can be resumed." + ], + "readOnly": true, + "type": "string" + }, + "templateMetadata": { + "$ref": "GoogleCloudAiplatformV1PipelineTemplateMetadata", + "description": "Output only. Pipeline template metadata. Will fill up fields if PipelineJob.template_uri is from supported template registry.", + "readOnly": true + }, + "templateUri": { + "description": "A template uri from where the PipelineJob.pipeline_spec, if empty, will be downloaded. Currently, only uri from Vertex Template Registry & Gallery is supported. Reference to https://cloud.google.com/vertex-ai/docs/pipelines/create-pipeline-template.", + "type": "string" + }, + "updateTime": { + "description": "Output only. Timestamp when this PipelineJob was most recently updated.", + "format": "google-datetime", + "readOnly": true, "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaImageSegmentationAnnotationPolygonAnnotation": { - "description": "Represents a polygon in image.", - "id": "GoogleCloudAiplatformV1SchemaImageSegmentationAnnotationPolygonAnnotation", + "GoogleCloudAiplatformV1PipelineJobDetail": { + "description": "The runtime detail of PipelineJob.", + "id": "GoogleCloudAiplatformV1PipelineJobDetail", "properties": { - "annotationSpecId": { - "description": "The resource Id of the AnnotationSpec that this Annotation pertains to.", - "type": "string" + "pipelineContext": { + "$ref": "GoogleCloudAiplatformV1Context", + "description": "Output only. The context of the pipeline.", + "readOnly": true }, - "displayName": { - "description": "The display name of the AnnotationSpec that this Annotation pertains to.", - "type": "string" + "pipelineRunContext": { + "$ref": "GoogleCloudAiplatformV1Context", + "description": "Output only. The context of the current pipeline run.", + "readOnly": true }, - "vertexes": { - "description": "The vertexes are connected one by one and the last vertex is connected to the first one to represent a polygon.", + "taskDetails": { + "description": "Output only. The runtime details of the tasks under the pipeline.", "items": { - "$ref": "GoogleCloudAiplatformV1SchemaVertex" + "$ref": "GoogleCloudAiplatformV1PipelineTaskDetail" }, + "readOnly": true, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaImageSegmentationAnnotationPolylineAnnotation": { - "description": "Represents a polyline in image.", - "id": "GoogleCloudAiplatformV1SchemaImageSegmentationAnnotationPolylineAnnotation", + "GoogleCloudAiplatformV1PipelineJobRuntimeConfig": { + "description": "The runtime config of a PipelineJob.", + "id": "GoogleCloudAiplatformV1PipelineJobRuntimeConfig", "properties": { - "annotationSpecId": { - "description": "The resource Id of the AnnotationSpec that this Annotation pertains to.", + "failurePolicy": { + "description": "Represents the failure policy of a pipeline. Currently, the default of a pipeline is that the pipeline will continue to run until no more tasks can be executed, also known as PIPELINE_FAILURE_POLICY_FAIL_SLOW. However, if a pipeline is set to PIPELINE_FAILURE_POLICY_FAIL_FAST, it will stop scheduling any new tasks when a task has failed. Any scheduled tasks will continue to completion.", + "enum": [ + "PIPELINE_FAILURE_POLICY_UNSPECIFIED", + "PIPELINE_FAILURE_POLICY_FAIL_SLOW", + "PIPELINE_FAILURE_POLICY_FAIL_FAST" + ], + "enumDescriptions": [ + "Default value, and follows fail slow behavior.", + "Indicates that the pipeline should continue to run until all possible tasks have been scheduled and completed.", + "Indicates that the pipeline should stop scheduling new tasks after a task has failed." + ], "type": "string" }, - "displayName": { - "description": "The display name of the AnnotationSpec that this Annotation pertains to.", + "gcsOutputDirectory": { + "description": "Required. A path in a Cloud Storage bucket, which will be treated as the root output directory of the pipeline. It is used by the system to generate the paths of output artifacts. The artifact paths are generated with a sub-path pattern `{job_id}/{task_id}/{output_key}` under the specified output directory. The service account specified in this pipeline must have the `storage.objects.get` and `storage.objects.create` permissions for this bucket.", "type": "string" }, - "vertexes": { - "description": "The vertexes are connected one by one and the last vertex in not connected to the first one.", - "items": { - "$ref": "GoogleCloudAiplatformV1SchemaVertex" + "inputArtifacts": { + "additionalProperties": { + "$ref": "GoogleCloudAiplatformV1PipelineJobRuntimeConfigInputArtifact" }, - "type": "array" + "description": "The runtime artifacts of the PipelineJob. The key will be the input artifact name and the value would be one of the InputArtifact.", + "type": "object" + }, + "parameterValues": { + "additionalProperties": { + "type": "any" + }, + "description": "The runtime parameters of the PipelineJob. The parameters will be passed into PipelineJob.pipeline_spec to replace the placeholders at runtime. This field is used by pipelines built using `PipelineJob.pipeline_spec.schema_version` 2.1.0, such as pipelines built using Kubeflow Pipelines SDK 1.9 or higher and the v2 DSL.", + "type": "object" + }, + "parameters": { + "additionalProperties": { + "$ref": "GoogleCloudAiplatformV1Value" + }, + "deprecated": true, + "description": "Deprecated. Use RuntimeConfig.parameter_values instead. The runtime parameters of the PipelineJob. The parameters will be passed into PipelineJob.pipeline_spec to replace the placeholders at runtime. This field is used by pipelines built using `PipelineJob.pipeline_spec.schema_version` 2.0.0 or lower, such as pipelines built using Kubeflow Pipelines SDK 1.8 or lower.", + "type": "object" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaModelevaluationMetricsBoundingBoxMetrics": { - "description": "Bounding box matching model metrics for a single intersection-over-union threshold and multiple label match confidence thresholds.", - "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsBoundingBoxMetrics", + "GoogleCloudAiplatformV1PipelineJobRuntimeConfigInputArtifact": { + "description": "The type of an input artifact.", + "id": "GoogleCloudAiplatformV1PipelineJobRuntimeConfigInputArtifact", "properties": { - "confidenceMetrics": { - "description": "Metrics for each label-match confidence_threshold from 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99. Precision-recall curve is derived from them.", - "items": { - "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsBoundingBoxMetricsConfidenceMetrics" - }, - "type": "array" - }, - "iouThreshold": { - "description": "The intersection-over-union threshold value used to compute this metrics entry.", - "format": "float", - "type": "number" - }, - "meanAveragePrecision": { - "description": "The mean average precision, most often close to `auPrc`.", - "format": "float", - "type": "number" + "artifactId": { + "description": "Artifact resource id from MLMD. Which is the last portion of an artifact resource name: `projects/{project}/locations/{location}/metadataStores/default/artifacts/{artifact_id}`. The artifact must stay within the same project, location and default metadatastore as the pipeline.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaModelevaluationMetricsBoundingBoxMetricsConfidenceMetrics": { - "description": "Metrics for a single confidence threshold.", - "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsBoundingBoxMetricsConfidenceMetrics", - "properties": { - "confidenceThreshold": { - "description": "The confidence threshold value used to compute the metrics.", - "format": "float", - "type": "number" - }, - "f1Score": { - "description": "The harmonic mean of recall and precision.", - "format": "float", - "type": "number" - }, - "precision": { - "description": "Precision under the given confidence threshold.", - "format": "float", - "type": "number" - }, - "recall": { - "description": "Recall under the given confidence threshold.", - "format": "float", - "type": "number" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1SchemaModelevaluationMetricsClassificationEvaluationMetrics": { - "description": "Metrics for classification evaluation results.", - "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsClassificationEvaluationMetrics", - "properties": { - "auPrc": { - "description": "The Area Under Precision-Recall Curve metric. Micro-averaged for the overall evaluation.", - "format": "float", - "type": "number" - }, - "auRoc": { - "description": "The Area Under Receiver Operating Characteristic curve metric. Micro-averaged for the overall evaluation.", - "format": "float", - "type": "number" - }, - "confidenceMetrics": { - "description": "Metrics for each `confidenceThreshold` in 0.00,0.05,0.10,...,0.95,0.96,0.97,0.98,0.99 and `positionThreshold` = INT32_MAX_VALUE. ROC and precision-recall curves, and other aggregated metrics are derived from them. The confidence metrics entries may also be supplied for additional values of `positionThreshold`, but from these no aggregated metrics are computed.", - "items": { - "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsClassificationEvaluationMetricsConfidenceMetrics" - }, - "type": "array" - }, - "confusionMatrix": { - "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsConfusionMatrix", - "description": "Confusion matrix of the evaluation." - }, - "logLoss": { - "description": "The Log Loss metric.", - "format": "float", - "type": "number" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1SchemaModelevaluationMetricsClassificationEvaluationMetricsConfidenceMetrics": { - "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsClassificationEvaluationMetricsConfidenceMetrics", + "GoogleCloudAiplatformV1PipelineTaskDetail": { + "description": "The runtime detail of a task execution.", + "id": "GoogleCloudAiplatformV1PipelineTaskDetail", "properties": { - "confidenceThreshold": { - "description": "Metrics are computed with an assumption that the Model never returns predictions with score lower than this value.", - "format": "float", - "type": "number" + "createTime": { + "description": "Output only. Task create time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" }, - "confusionMatrix": { - "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsConfusionMatrix", - "description": "Confusion matrix of the evaluation for this confidence_threshold." + "endTime": { + "description": "Output only. Task end time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" }, - "f1Score": { - "description": "The harmonic mean of recall and precision. For summary metrics, it computes the micro-averaged F1 score.", - "format": "float", - "type": "number" + "error": { + "$ref": "GoogleRpcStatus", + "description": "Output only. The error that occurred during task execution. Only populated when the task's state is FAILED or CANCELLED.", + "readOnly": true }, - "f1ScoreAt1": { - "description": "The harmonic mean of recallAt1 and precisionAt1.", - "format": "float", - "type": "number" + "execution": { + "$ref": "GoogleCloudAiplatformV1Execution", + "description": "Output only. The execution metadata of the task.", + "readOnly": true }, - "f1ScoreMacro": { - "description": "Macro-averaged F1 Score.", - "format": "float", - "type": "number" + "executorDetail": { + "$ref": "GoogleCloudAiplatformV1PipelineTaskExecutorDetail", + "description": "Output only. The detailed execution info.", + "readOnly": true }, - "f1ScoreMicro": { - "description": "Micro-averaged F1 Score.", - "format": "float", - "type": "number" + "inputs": { + "additionalProperties": { + "$ref": "GoogleCloudAiplatformV1PipelineTaskDetailArtifactList" + }, + "description": "Output only. The runtime input artifacts of the task.", + "readOnly": true, + "type": "object" }, - "falseNegativeCount": { - "description": "The number of ground truth labels that are not matched by a Model created label.", - "format": "int64", - "type": "string" + "outputs": { + "additionalProperties": { + "$ref": "GoogleCloudAiplatformV1PipelineTaskDetailArtifactList" + }, + "description": "Output only. The runtime output artifacts of the task.", + "readOnly": true, + "type": "object" }, - "falsePositiveCount": { - "description": "The number of Model created labels that do not match a ground truth label.", + "parentTaskId": { + "description": "Output only. The id of the parent task if the task is within a component scope. Empty if the task is at the root level.", "format": "int64", + "readOnly": true, "type": "string" }, - "falsePositiveRate": { - "description": "False Positive Rate for the given confidence threshold.", - "format": "float", - "type": "number" - }, - "falsePositiveRateAt1": { - "description": "The False Positive Rate when only considering the label that has the highest prediction score and not below the confidence threshold for each DataItem.", - "format": "float", - "type": "number" - }, - "maxPredictions": { - "description": "Metrics are computed with an assumption that the Model always returns at most this many predictions (ordered by their score, descendingly), but they all still need to meet the `confidenceThreshold`.", - "format": "int32", - "type": "integer" - }, - "precision": { - "description": "Precision for the given confidence threshold.", - "format": "float", - "type": "number" - }, - "precisionAt1": { - "description": "The precision when only considering the label that has the highest prediction score and not below the confidence threshold for each DataItem.", - "format": "float", - "type": "number" + "pipelineTaskStatus": { + "description": "Output only. A list of task status. This field keeps a record of task status evolving over time.", + "items": { + "$ref": "GoogleCloudAiplatformV1PipelineTaskDetailPipelineTaskStatus" + }, + "readOnly": true, + "type": "array" }, - "recall": { - "description": "Recall (True Positive Rate) for the given confidence threshold.", - "format": "float", - "type": "number" + "startTime": { + "description": "Output only. Task start time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" }, - "recallAt1": { - "description": "The Recall (True Positive Rate) when only considering the label that has the highest prediction score and not below the confidence threshold for each DataItem.", - "format": "float", - "type": "number" + "state": { + "description": "Output only. State of the task.", + "enum": [ + "STATE_UNSPECIFIED", + "PENDING", + "RUNNING", + "SUCCEEDED", + "CANCEL_PENDING", + "CANCELLING", + "CANCELLED", + "FAILED", + "SKIPPED", + "NOT_TRIGGERED" + ], + "enumDescriptions": [ + "Unspecified.", + "Specifies pending state for the task.", + "Specifies task is being executed.", + "Specifies task completed successfully.", + "Specifies Task cancel is in pending state.", + "Specifies task is being cancelled.", + "Specifies task was cancelled.", + "Specifies task failed.", + "Specifies task was skipped due to cache hit.", + "Specifies that the task was not triggered because the task's trigger policy is not satisfied. The trigger policy is specified in the `condition` field of PipelineJob.pipeline_spec." + ], + "readOnly": true, + "type": "string" }, - "trueNegativeCount": { - "description": "The number of labels that were not created by the Model, but if they would, they would not match a ground truth label.", + "taskId": { + "description": "Output only. The system generated ID of the task.", "format": "int64", + "readOnly": true, "type": "string" }, - "truePositiveCount": { - "description": "The number of Model created labels that match a ground truth label.", - "format": "int64", + "taskName": { + "description": "Output only. The user specified name of the task that is defined in pipeline_spec.", + "readOnly": true, "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaModelevaluationMetricsConfusionMatrix": { - "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsConfusionMatrix", + "GoogleCloudAiplatformV1PipelineTaskDetailArtifactList": { + "description": "A list of artifact metadata.", + "id": "GoogleCloudAiplatformV1PipelineTaskDetailArtifactList", "properties": { - "annotationSpecs": { - "description": "AnnotationSpecs used in the confusion matrix. For AutoML Text Extraction, a special negative AnnotationSpec with empty `id` and `displayName` of \"NULL\" will be added as the last element.", - "items": { - "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsConfusionMatrixAnnotationSpecRef" - }, - "type": "array" - }, - "rows": { - "description": "Rows in the confusion matrix. The number of rows is equal to the size of `annotationSpecs`. `rowsi` is the number of DataItems that have ground truth of the `annotationSpecs[i]` and are predicted as `annotationSpecs[j]` by the Model being evaluated. For Text Extraction, when `annotationSpecs[i]` is the last element in `annotationSpecs`, i.e. the special negative AnnotationSpec, `rowsi` is the number of predicted entities of `annoatationSpec[j]` that are not labeled as any of the ground truth AnnotationSpec. When annotationSpecs[j] is the special negative AnnotationSpec, `rowsi` is the number of entities have ground truth of `annotationSpec[i]` that are not predicted as an entity by the Model. The value of the last cell, i.e. `rowi` where i == j and `annotationSpec[i]` is the special negative AnnotationSpec, is always 0.", + "artifacts": { + "description": "Output only. A list of artifact metadata.", "items": { - "items": { - "type": "any" - }, - "type": "array" + "$ref": "GoogleCloudAiplatformV1Artifact" }, + "readOnly": true, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaModelevaluationMetricsConfusionMatrixAnnotationSpecRef": { - "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsConfusionMatrixAnnotationSpecRef", + "GoogleCloudAiplatformV1PipelineTaskDetailPipelineTaskStatus": { + "description": "A single record of the task status.", + "id": "GoogleCloudAiplatformV1PipelineTaskDetailPipelineTaskStatus", "properties": { - "displayName": { - "description": "Display name of the AnnotationSpec.", + "error": { + "$ref": "GoogleRpcStatus", + "description": "Output only. The error that occurred during the state. May be set when the state is any of the non-final state (PENDING/RUNNING/CANCELLING) or FAILED state. If the state is FAILED, the error here is final and not going to be retried. If the state is a non-final state, the error indicates a system-error being retried.", + "readOnly": true + }, + "state": { + "description": "Output only. The state of the task.", + "enum": [ + "STATE_UNSPECIFIED", + "PENDING", + "RUNNING", + "SUCCEEDED", + "CANCEL_PENDING", + "CANCELLING", + "CANCELLED", + "FAILED", + "SKIPPED", + "NOT_TRIGGERED" + ], + "enumDescriptions": [ + "Unspecified.", + "Specifies pending state for the task.", + "Specifies task is being executed.", + "Specifies task completed successfully.", + "Specifies Task cancel is in pending state.", + "Specifies task is being cancelled.", + "Specifies task was cancelled.", + "Specifies task failed.", + "Specifies task was skipped due to cache hit.", + "Specifies that the task was not triggered because the task's trigger policy is not satisfied. The trigger policy is specified in the `condition` field of PipelineJob.pipeline_spec." + ], + "readOnly": true, "type": "string" }, - "id": { - "description": "ID of the AnnotationSpec.", + "updateTime": { + "description": "Output only. Update time of this status.", + "format": "google-datetime", + "readOnly": true, "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaModelevaluationMetricsForecastingEvaluationMetrics": { - "description": "Metrics for forecasting evaluation results.", - "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsForecastingEvaluationMetrics", + "GoogleCloudAiplatformV1PipelineTaskExecutorDetail": { + "description": "The runtime detail of a pipeline executor.", + "id": "GoogleCloudAiplatformV1PipelineTaskExecutorDetail", "properties": { - "meanAbsoluteError": { - "description": "Mean Absolute Error (MAE).", - "format": "float", - "type": "number" - }, - "meanAbsolutePercentageError": { - "description": "Mean absolute percentage error. Infinity when there are zeros in the ground truth.", - "format": "float", - "type": "number" + "containerDetail": { + "$ref": "GoogleCloudAiplatformV1PipelineTaskExecutorDetailContainerDetail", + "description": "Output only. The detailed info for a container executor.", + "readOnly": true }, - "quantileMetrics": { - "description": "The quantile metrics entries for each quantile.", + "customJobDetail": { + "$ref": "GoogleCloudAiplatformV1PipelineTaskExecutorDetailCustomJobDetail", + "description": "Output only. The detailed info for a custom job executor.", + "readOnly": true + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1PipelineTaskExecutorDetailContainerDetail": { + "description": "The detail of a container execution. It contains the job names of the lifecycle of a container execution.", + "id": "GoogleCloudAiplatformV1PipelineTaskExecutorDetailContainerDetail", + "properties": { + "failedMainJobs": { + "description": "Output only. The names of the previously failed CustomJob for the main container executions. The list includes the all attempts in chronological order.", "items": { - "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsForecastingEvaluationMetricsQuantileMetricsEntry" + "type": "string" }, + "readOnly": true, "type": "array" }, - "rSquared": { - "description": "Coefficient of determination as Pearson correlation coefficient. Undefined when ground truth or predictions are constant or near constant.", - "format": "float", - "type": "number" - }, - "rootMeanSquaredError": { - "description": "Root Mean Squared Error (RMSE).", - "format": "float", - "type": "number" - }, - "rootMeanSquaredLogError": { - "description": "Root mean squared log error. Undefined when there are negative ground truth values or predictions.", - "format": "float", - "type": "number" + "failedPreCachingCheckJobs": { + "description": "Output only. The names of the previously failed CustomJob for the pre-caching-check container executions. This job will be available if the PipelineJob.pipeline_spec specifies the `pre_caching_check` hook in the lifecycle events. The list includes the all attempts in chronological order.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" }, - "rootMeanSquaredPercentageError": { - "description": "Root Mean Square Percentage Error. Square root of MSPE. Undefined/imaginary when MSPE is negative.", - "format": "float", - "type": "number" + "mainJob": { + "description": "Output only. The name of the CustomJob for the main container execution.", + "readOnly": true, + "type": "string" }, - "weightedAbsolutePercentageError": { - "description": "Weighted Absolute Percentage Error. Does not use weights, this is just what the metric is called. Undefined if actual values sum to zero. Will be very large if actual values sum to a very small number.", - "format": "float", - "type": "number" + "preCachingCheckJob": { + "description": "Output only. The name of the CustomJob for the pre-caching-check container execution. This job will be available if the PipelineJob.pipeline_spec specifies the `pre_caching_check` hook in the lifecycle events.", + "readOnly": true, + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaModelevaluationMetricsForecastingEvaluationMetricsQuantileMetricsEntry": { - "description": "Entry for the Quantiles loss type optimization objective.", - "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsForecastingEvaluationMetricsQuantileMetricsEntry", + "GoogleCloudAiplatformV1PipelineTaskExecutorDetailCustomJobDetail": { + "description": "The detailed info for a custom job executor.", + "id": "GoogleCloudAiplatformV1PipelineTaskExecutorDetailCustomJobDetail", "properties": { - "observedQuantile": { - "description": "This is a custom metric that calculates the percentage of true values that were less than the predicted value for that quantile. Only populated when optimization_objective is minimize-quantile-loss and each entry corresponds to an entry in quantiles The percent value can be used to compare with the quantile value, which is the target value.", - "format": "double", - "type": "number" - }, - "quantile": { - "description": "The quantile for this entry.", - "format": "double", - "type": "number" + "failedJobs": { + "description": "Output only. The names of the previously failed CustomJob. The list includes the all attempts in chronological order.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" }, - "scaledPinballLoss": { - "description": "The scaled pinball loss of this quantile.", - "format": "float", - "type": "number" + "job": { + "description": "Output only. The name of the CustomJob.", + "readOnly": true, + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaModelevaluationMetricsGeneralTextGenerationEvaluationMetrics": { - "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsGeneralTextGenerationEvaluationMetrics", + "GoogleCloudAiplatformV1PipelineTemplateMetadata": { + "description": "Pipeline template metadata if PipelineJob.template_uri is from supported template registry. Currently, the only supported registry is Artifact Registry.", + "id": "GoogleCloudAiplatformV1PipelineTemplateMetadata", "properties": { - "bleu": { - "description": "BLEU (bilingual evaluation understudy) scores based on sacrebleu implementation.", - "format": "float", - "type": "number" - }, - "rougeLSum": { - "description": "ROUGE-L (Longest Common Subsequence) scoring at summary level.", - "format": "float", - "type": "number" + "version": { + "description": "The version_name in artifact registry. Will always be presented in output if the PipelineJob.template_uri is from supported template registry. Format is \"sha256:abcdef123456...\".", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaModelevaluationMetricsImageObjectDetectionEvaluationMetrics": { - "description": "Metrics for image object detection evaluation results.", - "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsImageObjectDetectionEvaluationMetrics", + "GoogleCloudAiplatformV1Port": { + "description": "Represents a network port in a container.", + "id": "GoogleCloudAiplatformV1Port", "properties": { - "boundingBoxMeanAveragePrecision": { - "description": "The single metric for bounding boxes evaluation: the `meanAveragePrecision` averaged over all `boundingBoxMetricsEntries`.", - "format": "float", - "type": "number" - }, - "boundingBoxMetrics": { - "description": "The bounding boxes match metrics for each intersection-over-union threshold 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99 and each label confidence threshold 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99 pair.", - "items": { - "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsBoundingBoxMetrics" - }, - "type": "array" - }, - "evaluatedBoundingBoxCount": { - "description": "The total number of bounding boxes (i.e. summed over all images) the ground truth used to create this evaluation had.", + "containerPort": { + "description": "The number of the port to expose on the pod's IP address. Must be a valid port number, between 1 and 65535 inclusive.", "format": "int32", "type": "integer" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaModelevaluationMetricsImageSegmentationEvaluationMetrics": { - "description": "Metrics for image segmentation evaluation results.", - "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsImageSegmentationEvaluationMetrics", + "GoogleCloudAiplatformV1PredefinedSplit": { + "description": "Assigns input data to training, validation, and test sets based on the value of a provided key. Supported only for tabular Datasets.", + "id": "GoogleCloudAiplatformV1PredefinedSplit", "properties": { - "confidenceMetricsEntries": { - "description": "Metrics for each confidenceThreshold in 0.00,0.05,0.10,...,0.95,0.96,0.97,0.98,0.99 Precision-recall curve can be derived from it.", - "items": { - "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsImageSegmentationEvaluationMetricsConfidenceMetricsEntry" - }, - "type": "array" + "key": { + "description": "Required. The key is a name of one of the Dataset's data columns. The value of the key (either the label's value or value in the column) must be one of {`training`, `validation`, `test`}, and it defines to which set the given piece of data is assigned. If for a piece of data the key is not present or has an invalid value, that piece is ignored by the pipeline.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaModelevaluationMetricsImageSegmentationEvaluationMetricsConfidenceMetricsEntry": { - "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsImageSegmentationEvaluationMetricsConfidenceMetricsEntry", + "GoogleCloudAiplatformV1PredictRequest": { + "description": "Request message for PredictionService.Predict.", + "id": "GoogleCloudAiplatformV1PredictRequest", "properties": { - "confidenceThreshold": { - "description": "Metrics are computed with an assumption that the model never returns predictions with score lower than this value.", - "format": "float", - "type": "number" - }, - "confusionMatrix": { - "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsConfusionMatrix", - "description": "Confusion matrix for the given confidence threshold." - }, - "diceScoreCoefficient": { - "description": "DSC or the F1 score, The harmonic mean of recall and precision.", - "format": "float", - "type": "number" - }, - "iouScore": { - "description": "The intersection-over-union score. The measure of overlap of the annotation's category mask with ground truth category mask on the DataItem.", - "format": "float", - "type": "number" - }, - "precision": { - "description": "Precision for the given confidence threshold.", - "format": "float", - "type": "number" + "instances": { + "description": "Required. The instances that are the input to the prediction call. A DeployedModel may have an upper limit on the number of instances it supports per request, and when it is exceeded the prediction call errors in case of AutoML Models, or, in case of customer created Models, the behaviour is as documented by that Model. The schema of any single instance may be specified via Endpoint's DeployedModels' Model's PredictSchemata's instance_schema_uri.", + "items": { + "type": "any" + }, + "type": "array" }, - "recall": { - "description": "Recall (True Positive Rate) for the given confidence threshold.", - "format": "float", - "type": "number" + "parameters": { + "description": "The parameters that govern the prediction. The schema of the parameters may be specified via Endpoint's DeployedModels' Model's PredictSchemata's parameters_schema_uri.", + "type": "any" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaModelevaluationMetricsQuestionAnsweringEvaluationMetrics": { - "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsQuestionAnsweringEvaluationMetrics", + "GoogleCloudAiplatformV1PredictRequestResponseLoggingConfig": { + "description": "Configuration for logging request-response to a BigQuery table.", + "id": "GoogleCloudAiplatformV1PredictRequestResponseLoggingConfig", "properties": { - "exactMatch": { - "description": "The rate at which the input predicted strings exactly match their references.", - "format": "float", + "bigqueryDestination": { + "$ref": "GoogleCloudAiplatformV1BigQueryDestination", + "description": "BigQuery table for logging. If only given a project, a new dataset will be created with name `logging__` where will be made BigQuery-dataset-name compatible (e.g. most special characters will become underscores). If no table name is given, a new table will be created with name `request_response_logging`" + }, + "enabled": { + "description": "If logging is enabled or not.", + "type": "boolean" + }, + "samplingRate": { + "description": "Percentage of requests to be logged, expressed as a fraction in range(0,1].", + "format": "double", "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaModelevaluationMetricsRegressionEvaluationMetrics": { - "description": "Metrics for regression evaluation results.", - "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsRegressionEvaluationMetrics", + "GoogleCloudAiplatformV1PredictResponse": { + "description": "Response message for PredictionService.Predict.", + "id": "GoogleCloudAiplatformV1PredictResponse", "properties": { - "meanAbsoluteError": { - "description": "Mean Absolute Error (MAE).", - "format": "float", - "type": "number" + "deployedModelId": { + "description": "ID of the Endpoint's DeployedModel that served this prediction.", + "type": "string" }, - "meanAbsolutePercentageError": { - "description": "Mean absolute percentage error. Infinity when there are zeros in the ground truth.", - "format": "float", - "type": "number" + "metadata": { + "description": "Output only. Request-level metadata returned by the model. The metadata type will be dependent upon the model implementation.", + "readOnly": true, + "type": "any" }, - "rSquared": { - "description": "Coefficient of determination as Pearson correlation coefficient. Undefined when ground truth or predictions are constant or near constant.", - "format": "float", - "type": "number" + "model": { + "description": "Output only. The resource name of the Model which is deployed as the DeployedModel that this prediction hits.", + "readOnly": true, + "type": "string" }, - "rootMeanSquaredError": { - "description": "Root Mean Squared Error (RMSE).", - "format": "float", - "type": "number" + "modelDisplayName": { + "description": "Output only. The display name of the Model which is deployed as the DeployedModel that this prediction hits.", + "readOnly": true, + "type": "string" }, - "rootMeanSquaredLogError": { - "description": "Root mean squared log error. Undefined when there are negative ground truth values or predictions.", - "format": "float", - "type": "number" + "modelVersionId": { + "description": "Output only. The version ID of the Model which is deployed as the DeployedModel that this prediction hits.", + "readOnly": true, + "type": "string" + }, + "predictions": { + "description": "The predictions that are the output of the predictions call. The schema of any single prediction may be specified via Endpoint's DeployedModels' Model's PredictSchemata's prediction_schema_uri.", + "items": { + "type": "any" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaModelevaluationMetricsSummarizationEvaluationMetrics": { - "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsSummarizationEvaluationMetrics", + "GoogleCloudAiplatformV1PredictSchemata": { + "description": "Contains the schemata used in Model's predictions and explanations via PredictionService.Predict, PredictionService.Explain and BatchPredictionJob.", + "id": "GoogleCloudAiplatformV1PredictSchemata", "properties": { - "rougeLSum": { - "description": "ROUGE-L (Longest Common Subsequence) scoring at summary level.", - "format": "float", - "type": "number" + "instanceSchemaUri": { + "description": "Immutable. Points to a YAML file stored on Google Cloud Storage describing the format of a single instance, which are used in PredictRequest.instances, ExplainRequest.instances and BatchPredictionJob.input_config. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). AutoML Models always have this field populated by Vertex AI. Note: The URI given on output will be immutable and probably different, including the URI scheme, than the one given on input. The output URI will point to a location where the user only has a read access.", + "type": "string" + }, + "parametersSchemaUri": { + "description": "Immutable. Points to a YAML file stored on Google Cloud Storage describing the parameters of prediction and explanation via PredictRequest.parameters, ExplainRequest.parameters and BatchPredictionJob.model_parameters. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). AutoML Models always have this field populated by Vertex AI, if no parameters are supported, then it is set to an empty string. Note: The URI given on output will be immutable and probably different, including the URI scheme, than the one given on input. The output URI will point to a location where the user only has a read access.", + "type": "string" + }, + "predictionSchemaUri": { + "description": "Immutable. Points to a YAML file stored on Google Cloud Storage describing the format of a single prediction produced by this Model, which are returned via PredictResponse.predictions, ExplainResponse.explanations, and BatchPredictionJob.output_config. The schema is defined as an OpenAPI 3.0.2 [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). AutoML Models always have this field populated by Vertex AI. Note: The URI given on output will be immutable and probably different, including the URI scheme, than the one given on input. The output URI will point to a location where the user only has a read access.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaModelevaluationMetricsTextExtractionEvaluationMetrics": { - "description": "Metrics for text extraction evaluation results.", - "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsTextExtractionEvaluationMetrics", + "GoogleCloudAiplatformV1Presets": { + "description": "Preset configuration for example-based explanations", + "id": "GoogleCloudAiplatformV1Presets", "properties": { - "confidenceMetrics": { - "description": "Metrics that have confidence thresholds. Precision-recall curve can be derived from them.", - "items": { - "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsTextExtractionEvaluationMetricsConfidenceMetrics" - }, - "type": "array" + "modality": { + "description": "The modality of the uploaded model, which automatically configures the distance measurement and feature normalization for the underlying example index and queries. If your model does not precisely fit one of these types, it is okay to choose the closest type.", + "enum": [ + "MODALITY_UNSPECIFIED", + "IMAGE", + "TEXT", + "TABULAR" + ], + "enumDescriptions": [ + "Should not be set. Added as a recommended best practice for enums", + "IMAGE modality", + "TEXT modality", + "TABULAR modality" + ], + "type": "string" }, - "confusionMatrix": { - "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsConfusionMatrix", - "description": "Confusion matrix of the evaluation. Only set for Models where number of AnnotationSpecs is no more than 10. Only set for ModelEvaluations, not for ModelEvaluationSlices." + "query": { + "description": "Preset option controlling parameters for speed-precision trade-off when querying for examples. If omitted, defaults to `PRECISE`.", + "enum": [ + "PRECISE", + "FAST" + ], + "enumDescriptions": [ + "More precise neighbors as a trade-off against slower response.", + "Faster response as a trade-off against less precise neighbors." + ], + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaModelevaluationMetricsTextExtractionEvaluationMetricsConfidenceMetrics": { - "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsTextExtractionEvaluationMetricsConfidenceMetrics", + "GoogleCloudAiplatformV1PrivateEndpoints": { + "description": "PrivateEndpoints proto is used to provide paths for users to send requests privately. To send request via private service access, use predict_http_uri, explain_http_uri or health_http_uri. To send request via private service connect, use service_attachment.", + "id": "GoogleCloudAiplatformV1PrivateEndpoints", "properties": { - "confidenceThreshold": { - "description": "Metrics are computed with an assumption that the Model never returns predictions with score lower than this value.", - "format": "float", - "type": "number" + "explainHttpUri": { + "description": "Output only. Http(s) path to send explain requests.", + "readOnly": true, + "type": "string" }, - "f1Score": { - "description": "The harmonic mean of recall and precision.", - "format": "float", - "type": "number" + "healthHttpUri": { + "description": "Output only. Http(s) path to send health check requests.", + "readOnly": true, + "type": "string" }, - "precision": { - "description": "Precision for the given confidence threshold.", - "format": "float", - "type": "number" + "predictHttpUri": { + "description": "Output only. Http(s) path to send prediction requests.", + "readOnly": true, + "type": "string" }, - "recall": { - "description": "Recall (True Positive Rate) for the given confidence threshold.", - "format": "float", - "type": "number" + "serviceAttachment": { + "description": "Output only. The name of the service attachment resource. Populated if private service connect is enabled.", + "readOnly": true, + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaModelevaluationMetricsTextSentimentEvaluationMetrics": { - "description": "Model evaluation metrics for text sentiment problems.", - "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsTextSentimentEvaluationMetrics", + "GoogleCloudAiplatformV1PrivateServiceConnectConfig": { + "description": "Represents configuration for private service connect.", + "id": "GoogleCloudAiplatformV1PrivateServiceConnectConfig", "properties": { - "confusionMatrix": { - "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsConfusionMatrix", - "description": "Confusion matrix of the evaluation. Only set for ModelEvaluations, not for ModelEvaluationSlices." - }, - "f1Score": { - "description": "The harmonic mean of recall and precision.", - "format": "float", - "type": "number" - }, - "linearKappa": { - "description": "Linear weighted kappa. Only set for ModelEvaluations, not for ModelEvaluationSlices.", - "format": "float", - "type": "number" - }, - "meanAbsoluteError": { - "description": "Mean absolute error. Only set for ModelEvaluations, not for ModelEvaluationSlices.", - "format": "float", - "type": "number" - }, - "meanSquaredError": { - "description": "Mean squared error. Only set for ModelEvaluations, not for ModelEvaluationSlices.", - "format": "float", - "type": "number" + "enablePrivateServiceConnect": { + "description": "Required. If true, expose the IndexEndpoint via private service connect.", + "type": "boolean" }, - "precision": { - "description": "Precision.", - "format": "float", - "type": "number" + "projectAllowlist": { + "description": "A list of Projects from which the forwarding rule will target the service attachment.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1Probe": { + "description": "Probe describes a health check to be performed against a container to determine whether it is alive or ready to receive traffic.", + "id": "GoogleCloudAiplatformV1Probe", + "properties": { + "exec": { + "$ref": "GoogleCloudAiplatformV1ProbeExecAction", + "description": "Exec specifies the action to take." }, - "quadraticKappa": { - "description": "Quadratic weighted kappa. Only set for ModelEvaluations, not for ModelEvaluationSlices.", - "format": "float", - "type": "number" + "periodSeconds": { + "description": "How often (in seconds) to perform the probe. Default to 10 seconds. Minimum value is 1. Must be less than timeout_seconds. Maps to Kubernetes probe argument 'periodSeconds'.", + "format": "int32", + "type": "integer" }, - "recall": { - "description": "Recall.", - "format": "float", - "type": "number" + "timeoutSeconds": { + "description": "Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. Must be greater or equal to period_seconds. Maps to Kubernetes probe argument 'timeoutSeconds'.", + "format": "int32", + "type": "integer" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaModelevaluationMetricsTrackMetrics": { - "description": "UNIMPLEMENTED. Track matching model metrics for a single track match threshold and multiple label match confidence thresholds.", - "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsTrackMetrics", + "GoogleCloudAiplatformV1ProbeExecAction": { + "description": "ExecAction specifies a command to execute.", + "id": "GoogleCloudAiplatformV1ProbeExecAction", "properties": { - "confidenceMetrics": { - "description": "Metrics for each label-match `confidenceThreshold` from 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99. Precision-recall curve is derived from them.", + "command": { + "description": "Command is the command line to execute inside the container, the working directory for the command is root ('/') in the container's filesystem. The command is simply exec'd, it is not run inside a shell, so traditional shell instructions ('|', etc) won't work. To use a shell, you need to explicitly call out to that shell. Exit status of 0 is treated as live/healthy and non-zero is unhealthy.", "items": { - "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsTrackMetricsConfidenceMetrics" + "type": "string" }, "type": "array" - }, - "iouThreshold": { - "description": "The intersection-over-union threshold value between bounding boxes across frames used to compute this metric entry.", - "format": "float", - "type": "number" - }, - "meanBoundingBoxIou": { - "description": "The mean bounding box iou over all confidence thresholds.", - "format": "float", - "type": "number" - }, - "meanMismatchRate": { - "description": "The mean mismatch rate over all confidence thresholds.", - "format": "float", - "type": "number" - }, - "meanTrackingAveragePrecision": { - "description": "The mean average precision over all confidence thresholds.", - "format": "float", - "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaModelevaluationMetricsTrackMetricsConfidenceMetrics": { - "description": "Metrics for a single confidence threshold.", - "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsTrackMetricsConfidenceMetrics", + "GoogleCloudAiplatformV1PscAutomatedEndpoints": { + "description": "PscAutomatedEndpoints defines the output of the forwarding rule automatically created by each PscAutomationConfig.", + "id": "GoogleCloudAiplatformV1PscAutomatedEndpoints", "properties": { - "boundingBoxIou": { - "description": "Bounding box intersection-over-union precision. Measures how well the bounding boxes overlap between each other (e.g. complete overlap or just barely above iou_threshold).", - "format": "float", - "type": "number" - }, - "confidenceThreshold": { - "description": "The confidence threshold value used to compute the metrics.", - "format": "float", - "type": "number" - }, - "mismatchRate": { - "description": "Mismatch rate, which measures the tracking consistency, i.e. correctness of instance ID continuity.", - "format": "float", - "type": "number" + "matchAddress": { + "description": "Ip Address created by the automated forwarding rule.", + "type": "string" }, - "trackingPrecision": { - "description": "Tracking precision.", - "format": "float", - "type": "number" + "network": { + "description": "Corresponding network in pscAutomationConfigs.", + "type": "string" }, - "trackingRecall": { - "description": "Tracking recall.", - "format": "float", - "type": "number" + "projectId": { + "description": "Corresponding project_id in pscAutomationConfigs", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaModelevaluationMetricsVideoActionMetrics": { - "description": "The Evaluation metrics given a specific precision_window_length.", - "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsVideoActionMetrics", + "GoogleCloudAiplatformV1PublisherModel": { + "description": "A Model Garden Publisher Model.", + "id": "GoogleCloudAiplatformV1PublisherModel", "properties": { - "confidenceMetrics": { - "description": "Metrics for each label-match confidence_threshold from 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99.", + "frameworks": { + "description": "Optional. Additional information about the model's Frameworks.", "items": { - "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsVideoActionMetricsConfidenceMetrics" + "type": "string" }, "type": "array" }, - "meanAveragePrecision": { - "description": "The mean average precision.", - "format": "float", - "type": "number" + "launchStage": { + "description": "Optional. Indicates the launch stage of the model.", + "enum": [ + "LAUNCH_STAGE_UNSPECIFIED", + "DOGFOOD", + "EXPERIMENTAL", + "PRIVATE_PREVIEW", + "PUBLIC_PREVIEW", + "GA" + ], + "enumDescriptions": [ + "The model launch stage is unspecified.", + "Used to indicate the PublisherModel is at Google internal testing launch stage.", + "Used to indicate the PublisherModel is at Experimental launch stage, available to a small set of customers.", + "Used to indicate the PublisherModel is at Private Preview launch stage, only available to a small set of customers, although a larger set of customers than an Experimental launch. Previews are the first launch stage used to get feedback from customers.", + "Used to indicate the PublisherModel is at Public Preview launch stage, available to all customers, although not supported for production workloads.", + "Used to indicate the PublisherModel is at GA launch stage, available to all customers and ready for production workload." + ], + "type": "string" }, - "precisionWindowLength": { - "description": "This VideoActionMetrics is calculated based on this prediction window length. If the predicted action's timestamp is inside the time window whose center is the ground truth action's timestamp with this specific length, the prediction result is treated as a true positive.", - "format": "google-duration", + "name": { + "description": "Output only. The resource name of the PublisherModel.", + "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1SchemaModelevaluationMetricsVideoActionMetricsConfidenceMetrics": { - "description": "Metrics for a single confidence threshold.", - "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsVideoActionMetricsConfidenceMetrics", - "properties": { - "confidenceThreshold": { - "description": "Output only. The confidence threshold value used to compute the metrics.", - "format": "float", - "type": "number" }, - "f1Score": { - "description": "Output only. The harmonic mean of recall and precision.", - "format": "float", - "type": "number" + "openSourceCategory": { + "description": "Required. Indicates the open source category of the publisher model.", + "enum": [ + "OPEN_SOURCE_CATEGORY_UNSPECIFIED", + "PROPRIETARY", + "GOOGLE_OWNED_OSS_WITH_GOOGLE_CHECKPOINT", + "THIRD_PARTY_OWNED_OSS_WITH_GOOGLE_CHECKPOINT", + "GOOGLE_OWNED_OSS", + "THIRD_PARTY_OWNED_OSS" + ], + "enumDescriptions": [ + "The open source category is unspecified, which should not be used.", + "Used to indicate the PublisherModel is not open sourced.", + "Used to indicate the PublisherModel is a Google-owned open source model w/ Google checkpoint.", + "Used to indicate the PublisherModel is a 3p-owned open source model w/ Google checkpoint.", + "Used to indicate the PublisherModel is a Google-owned pure open source model.", + "Used to indicate the PublisherModel is a 3p-owned pure open source model." + ], + "type": "string" }, - "precision": { - "description": "Output only. Precision for the given confidence threshold.", - "format": "float", - "type": "number" + "predictSchemata": { + "$ref": "GoogleCloudAiplatformV1PredictSchemata", + "description": "Optional. The schemata that describes formats of the PublisherModel's predictions and explanations as given and returned via PredictionService.Predict." }, - "recall": { - "description": "Output only. Recall for the given confidence threshold.", - "format": "float", - "type": "number" + "publisherModelTemplate": { + "description": "Optional. Output only. Immutable. Used to indicate this model has a publisher model and provide the template of the publisher model resource name.", + "readOnly": true, + "type": "string" + }, + "supportedActions": { + "$ref": "GoogleCloudAiplatformV1PublisherModelCallToAction", + "description": "Optional. Supported call-to-action options." + }, + "versionId": { + "description": "Output only. Immutable. The version ID of the PublisherModel. A new version is committed when a new model version is uploaded under an existing model id. It is an auto-incrementing decimal number in string representation.", + "readOnly": true, + "type": "string" + }, + "versionState": { + "description": "Optional. Indicates the state of the model version.", + "enum": [ + "VERSION_STATE_UNSPECIFIED", + "VERSION_STATE_STABLE", + "VERSION_STATE_UNSTABLE" + ], + "enumDescriptions": [ + "The version state is unspecified.", + "Used to indicate the version is stable.", + "Used to indicate the version is unstable." + ], + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaModelevaluationMetricsVideoActionRecognitionMetrics": { - "description": "Model evaluation metrics for video action recognition.", - "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsVideoActionRecognitionMetrics", + "GoogleCloudAiplatformV1PublisherModelCallToAction": { + "description": "Actions could take on this Publisher Model.", + "id": "GoogleCloudAiplatformV1PublisherModelCallToAction", "properties": { - "evaluatedActionCount": { - "description": "The number of ground truth actions used to create this evaluation.", - "format": "int32", - "type": "integer" + "createApplication": { + "$ref": "GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences", + "description": "Optional. Create application using the PublisherModel." }, - "videoActionMetrics": { - "description": "The metric entries for precision window lengths: 1s,2s,3s.", - "items": { - "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsVideoActionMetrics" - }, - "type": "array" + "deploy": { + "$ref": "GoogleCloudAiplatformV1PublisherModelCallToActionDeploy", + "description": "Optional. Deploy the PublisherModel to Vertex Endpoint." + }, + "deployGke": { + "$ref": "GoogleCloudAiplatformV1PublisherModelCallToActionDeployGke", + "description": "Optional. Deploy PublisherModel to Google Kubernetes Engine." + }, + "openEvaluationPipeline": { + "$ref": "GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences", + "description": "Optional. Open evaluation pipeline of the PublisherModel." + }, + "openFineTuningPipeline": { + "$ref": "GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences", + "description": "Optional. Open fine-tuning pipeline of the PublisherModel." + }, + "openFineTuningPipelines": { + "$ref": "GoogleCloudAiplatformV1PublisherModelCallToActionOpenFineTuningPipelines", + "description": "Optional. Open fine-tuning pipelines of the PublisherModel." + }, + "openGenerationAiStudio": { + "$ref": "GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences", + "description": "Optional. Open in Generation AI Studio." + }, + "openGenie": { + "$ref": "GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences", + "description": "Optional. Open Genie / Playground." + }, + "openNotebook": { + "$ref": "GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences", + "description": "Optional. Open notebook of the PublisherModel." + }, + "openNotebooks": { + "$ref": "GoogleCloudAiplatformV1PublisherModelCallToActionOpenNotebooks", + "description": "Optional. Open notebooks of the PublisherModel." + }, + "openPromptTuningPipeline": { + "$ref": "GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences", + "description": "Optional. Open prompt-tuning pipeline of the PublisherModel." + }, + "requestAccess": { + "$ref": "GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences", + "description": "Optional. Request for access." + }, + "viewRestApi": { + "$ref": "GoogleCloudAiplatformV1PublisherModelCallToActionViewRestApi", + "description": "Optional. To view Rest API docs." } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaModelevaluationMetricsVideoObjectTrackingMetrics": { - "description": "Model evaluation metrics for video object tracking problems. Evaluates prediction quality of both labeled bounding boxes and labeled tracks (i.e. series of bounding boxes sharing same label and instance ID).", - "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsVideoObjectTrackingMetrics", + "GoogleCloudAiplatformV1PublisherModelCallToActionDeploy": { + "description": "Model metadata that is needed for UploadModel or DeployModel/CreateEndpoint requests.", + "id": "GoogleCloudAiplatformV1PublisherModelCallToActionDeploy", "properties": { - "boundingBoxMeanAveragePrecision": { - "description": "The single metric for bounding boxes evaluation: the `meanAveragePrecision` averaged over all `boundingBoxMetrics`.", - "format": "float", - "type": "number" + "artifactUri": { + "description": "Optional. The path to the directory containing the Model artifact and any of its supporting files.", + "type": "string" }, - "boundingBoxMetrics": { - "description": "The bounding boxes match metrics for each intersection-over-union threshold 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99 and each label confidence threshold 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99 pair.", - "items": { - "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsBoundingBoxMetrics" - }, - "type": "array" + "automaticResources": { + "$ref": "GoogleCloudAiplatformV1AutomaticResources", + "description": "A description of resources that to large degree are decided by Vertex AI, and require only a modest additional configuration." }, - "evaluatedBoundingBoxCount": { - "description": "UNIMPLEMENTED. The total number of bounding boxes (i.e. summed over all frames) the ground truth used to create this evaluation had.", - "format": "int32", - "type": "integer" + "containerSpec": { + "$ref": "GoogleCloudAiplatformV1ModelContainerSpec", + "description": "Optional. The specification of the container that is to be used when deploying this Model in Vertex AI. Not present for Large Models." }, - "evaluatedFrameCount": { - "description": "UNIMPLEMENTED. The number of video frames used to create this evaluation.", - "format": "int32", - "type": "integer" + "dedicatedResources": { + "$ref": "GoogleCloudAiplatformV1DedicatedResources", + "description": "A description of resources that are dedicated to the DeployedModel, and that need a higher degree of manual configuration." }, - "evaluatedTrackCount": { - "description": "UNIMPLEMENTED. The total number of tracks (i.e. as seen across all frames) the ground truth used to create this evaluation had.", - "format": "int32", - "type": "integer" + "largeModelReference": { + "$ref": "GoogleCloudAiplatformV1LargeModelReference", + "description": "Optional. Large model reference. When this is set, model_artifact_spec is not needed." }, - "trackMeanAveragePrecision": { - "description": "UNIMPLEMENTED. The single metric for tracks accuracy evaluation: the `meanAveragePrecision` averaged over all `trackMetrics`.", - "format": "float", - "type": "number" + "modelDisplayName": { + "description": "Optional. Default model display name.", + "type": "string" }, - "trackMeanBoundingBoxIou": { - "description": "UNIMPLEMENTED. The single metric for tracks bounding box iou evaluation: the `meanBoundingBoxIou` averaged over all `trackMetrics`.", - "format": "float", - "type": "number" + "publicArtifactUri": { + "description": "Optional. The signed URI for ephemeral Cloud Storage access to model artifact.", + "type": "string" }, - "trackMeanMismatchRate": { - "description": "UNIMPLEMENTED. The single metric for tracking consistency evaluation: the `meanMismatchRate` averaged over all `trackMetrics`.", - "format": "float", - "type": "number" + "sharedResources": { + "description": "The resource name of the shared DeploymentResourcePool to deploy on. Format: `projects/{project}/locations/{location}/deploymentResourcePools/{deployment_resource_pool}`", + "type": "string" }, - "trackMetrics": { - "description": "UNIMPLEMENTED. The tracks match metrics for each intersection-over-union threshold 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99 and each label confidence threshold 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99 pair.", + "title": { + "description": "Required. The title of the regional resource reference.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1PublisherModelCallToActionDeployGke": { + "description": "Configurations for PublisherModel GKE deployment", + "id": "GoogleCloudAiplatformV1PublisherModelCallToActionDeployGke", + "properties": { + "gkeYamlConfigs": { + "description": "Optional. GKE deployment configuration in yaml format.", "items": { - "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsTrackMetrics" + "type": "string" }, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaPredictInstanceImageClassificationPredictionInstance": { - "description": "Prediction input format for Image Classification.", - "id": "GoogleCloudAiplatformV1SchemaPredictInstanceImageClassificationPredictionInstance", + "GoogleCloudAiplatformV1PublisherModelCallToActionOpenFineTuningPipelines": { + "description": "Open fine tuning pipelines.", + "id": "GoogleCloudAiplatformV1PublisherModelCallToActionOpenFineTuningPipelines", "properties": { - "content": { - "description": "The image bytes or Cloud Storage URI to make the prediction on.", - "type": "string" - }, - "mimeType": { - "description": "The MIME type of the content of the image. Only the images in below listed MIME types are supported. - image/jpeg - image/gif - image/png - image/webp - image/bmp - image/tiff - image/vnd.microsoft.icon", - "type": "string" + "fineTuningPipelines": { + "description": "Required. Regional resource references to fine tuning pipelines.", + "items": { + "$ref": "GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaPredictInstanceImageObjectDetectionPredictionInstance": { - "description": "Prediction input format for Image Object Detection.", - "id": "GoogleCloudAiplatformV1SchemaPredictInstanceImageObjectDetectionPredictionInstance", + "GoogleCloudAiplatformV1PublisherModelCallToActionOpenNotebooks": { + "description": "Open notebooks.", + "id": "GoogleCloudAiplatformV1PublisherModelCallToActionOpenNotebooks", "properties": { - "content": { - "description": "The image bytes or Cloud Storage URI to make the prediction on.", - "type": "string" - }, - "mimeType": { - "description": "The MIME type of the content of the image. Only the images in below listed MIME types are supported. - image/jpeg - image/gif - image/png - image/webp - image/bmp - image/tiff - image/vnd.microsoft.icon", - "type": "string" + "notebooks": { + "description": "Required. Regional resource references to notebooks.", + "items": { + "$ref": "GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaPredictInstanceImageSegmentationPredictionInstance": { - "description": "Prediction input format for Image Segmentation.", - "id": "GoogleCloudAiplatformV1SchemaPredictInstanceImageSegmentationPredictionInstance", + "GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences": { + "description": "The regional resource name or the URI. Key is region, e.g., us-central1, europe-west2, global, etc..", + "id": "GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences", "properties": { - "content": { - "description": "The image bytes to make the predictions on.", + "references": { + "additionalProperties": { + "$ref": "GoogleCloudAiplatformV1PublisherModelResourceReference" + }, + "description": "Required.", + "type": "object" + }, + "resourceDescription": { + "description": "Optional. Description of the resource.", "type": "string" }, - "mimeType": { - "description": "The MIME type of the content of the image. Only the images in below listed MIME types are supported. - image/jpeg - image/png", + "resourceTitle": { + "description": "Optional. Title of the resource.", "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1SchemaPredictInstanceTextClassificationPredictionInstance": { - "description": "Prediction input format for Text Classification.", - "id": "GoogleCloudAiplatformV1SchemaPredictInstanceTextClassificationPredictionInstance", - "properties": { - "content": { - "description": "The text snippet to make the predictions on.", + }, + "resourceUseCase": { + "description": "Optional. Use case (CUJ) of the resource.", "type": "string" }, - "mimeType": { - "description": "The MIME type of the text snippet. The supported MIME types are listed below. - text/plain", + "title": { + "description": "Required. ", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaPredictInstanceTextExtractionPredictionInstance": { - "description": "Prediction input format for Text Extraction.", - "id": "GoogleCloudAiplatformV1SchemaPredictInstanceTextExtractionPredictionInstance", + "GoogleCloudAiplatformV1PublisherModelCallToActionViewRestApi": { + "description": "Rest API docs.", + "id": "GoogleCloudAiplatformV1PublisherModelCallToActionViewRestApi", "properties": { - "content": { - "description": "The text snippet to make the predictions on.", - "type": "string" - }, - "key": { - "description": "This field is only used for batch prediction. If a key is provided, the batch prediction result will by mapped to this key. If omitted, then the batch prediction result will contain the entire input instance. Vertex AI will not check if keys in the request are duplicates, so it is up to the caller to ensure the keys are unique.", - "type": "string" + "documentations": { + "description": "Required.", + "items": { + "$ref": "GoogleCloudAiplatformV1PublisherModelDocumentation" + }, + "type": "array" }, - "mimeType": { - "description": "The MIME type of the text snippet. The supported MIME types are listed below. - text/plain", + "title": { + "description": "Required. The title of the view rest API.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaPredictInstanceTextSentimentPredictionInstance": { - "description": "Prediction input format for Text Sentiment.", - "id": "GoogleCloudAiplatformV1SchemaPredictInstanceTextSentimentPredictionInstance", + "GoogleCloudAiplatformV1PublisherModelDocumentation": { + "description": "A named piece of documentation.", + "id": "GoogleCloudAiplatformV1PublisherModelDocumentation", "properties": { "content": { - "description": "The text snippet to make the predictions on.", + "description": "Required. Content of this piece of document (in Markdown format).", "type": "string" }, - "mimeType": { - "description": "The MIME type of the text snippet. The supported MIME types are listed below. - text/plain", + "title": { + "description": "Required. E.g., OVERVIEW, USE CASES, DOCUMENTATION, SDK & SAMPLES, JAVA, NODE.JS, etc..", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaPredictInstanceVideoActionRecognitionPredictionInstance": { - "description": "Prediction input format for Video Action Recognition.", - "id": "GoogleCloudAiplatformV1SchemaPredictInstanceVideoActionRecognitionPredictionInstance", + "GoogleCloudAiplatformV1PublisherModelResourceReference": { + "description": "Reference to a resource.", + "id": "GoogleCloudAiplatformV1PublisherModelResourceReference", "properties": { - "content": { - "description": "The Google Cloud Storage location of the video on which to perform the prediction.", + "description": { + "deprecated": true, + "description": "Description of the resource.", "type": "string" }, - "mimeType": { - "description": "The MIME type of the content of the video. Only the following are supported: video/mp4 video/avi video/quicktime", + "resourceName": { + "description": "The resource name of the Google Cloud resource.", "type": "string" }, - "timeSegmentEnd": { - "description": "The end, exclusive, of the video's time segment on which to perform the prediction. Expressed as a number of seconds as measured from the start of the video, with \"s\" appended at the end. Fractions are allowed, up to a microsecond precision, and \"inf\" or \"Infinity\" is allowed, which means the end of the video.", + "uri": { + "description": "The URI of the resource.", "type": "string" }, - "timeSegmentStart": { - "description": "The beginning, inclusive, of the video's time segment on which to perform the prediction. Expressed as a number of seconds as measured from the start of the video, with \"s\" appended at the end. Fractions are allowed, up to a microsecond precision.", + "useCase": { + "deprecated": true, + "description": "Use case (CUJ) of the resource.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaPredictInstanceVideoClassificationPredictionInstance": { - "description": "Prediction input format for Video Classification.", - "id": "GoogleCloudAiplatformV1SchemaPredictInstanceVideoClassificationPredictionInstance", + "GoogleCloudAiplatformV1PurgeArtifactsMetadata": { + "description": "Details of operations that perform MetadataService.PurgeArtifacts.", + "id": "GoogleCloudAiplatformV1PurgeArtifactsMetadata", "properties": { - "content": { - "description": "The Google Cloud Storage location of the video on which to perform the prediction.", - "type": "string" - }, - "mimeType": { - "description": "The MIME type of the content of the video. Only the following are supported: video/mp4 video/avi video/quicktime", - "type": "string" - }, - "timeSegmentEnd": { - "description": "The end, exclusive, of the video's time segment on which to perform the prediction. Expressed as a number of seconds as measured from the start of the video, with \"s\" appended at the end. Fractions are allowed, up to a microsecond precision, and \"inf\" or \"Infinity\" is allowed, which means the end of the video.", - "type": "string" - }, - "timeSegmentStart": { - "description": "The beginning, inclusive, of the video's time segment on which to perform the prediction. Expressed as a number of seconds as measured from the start of the video, with \"s\" appended at the end. Fractions are allowed, up to a microsecond precision.", - "type": "string" + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "Operation metadata for purging Artifacts." } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaPredictInstanceVideoObjectTrackingPredictionInstance": { - "description": "Prediction input format for Video Object Tracking.", - "id": "GoogleCloudAiplatformV1SchemaPredictInstanceVideoObjectTrackingPredictionInstance", + "GoogleCloudAiplatformV1PurgeArtifactsRequest": { + "description": "Request message for MetadataService.PurgeArtifacts.", + "id": "GoogleCloudAiplatformV1PurgeArtifactsRequest", "properties": { - "content": { - "description": "The Google Cloud Storage location of the video on which to perform the prediction.", - "type": "string" - }, - "mimeType": { - "description": "The MIME type of the content of the video. Only the following are supported: video/mp4 video/avi video/quicktime", - "type": "string" - }, - "timeSegmentEnd": { - "description": "The end, exclusive, of the video's time segment on which to perform the prediction. Expressed as a number of seconds as measured from the start of the video, with \"s\" appended at the end. Fractions are allowed, up to a microsecond precision, and \"inf\" or \"Infinity\" is allowed, which means the end of the video.", + "filter": { + "description": "Required. A required filter matching the Artifacts to be purged. E.g., `update_time <= 2020-11-19T11:30:00-04:00`.", "type": "string" }, - "timeSegmentStart": { - "description": "The beginning, inclusive, of the video's time segment on which to perform the prediction. Expressed as a number of seconds as measured from the start of the video, with \"s\" appended at the end. Fractions are allowed, up to a microsecond precision.", - "type": "string" + "force": { + "description": "Optional. Flag to indicate to actually perform the purge. If `force` is set to false, the method will return a sample of Artifact names that would be deleted.", + "type": "boolean" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaPredictParamsGroundingConfig": { - "description": "The configuration for grounding checking.", - "id": "GoogleCloudAiplatformV1SchemaPredictParamsGroundingConfig", + "GoogleCloudAiplatformV1PurgeArtifactsResponse": { + "description": "Response message for MetadataService.PurgeArtifacts.", + "id": "GoogleCloudAiplatformV1PurgeArtifactsResponse", "properties": { - "disableAttribution": { - "description": "If set, skip finding claim attributions (i.e not generate grounding citation).", - "type": "boolean" + "purgeCount": { + "description": "The number of Artifacts that this request deleted (or, if `force` is false, the number of Artifacts that will be deleted). This can be an estimate.", + "format": "int64", + "type": "string" }, - "sources": { - "description": "The sources for the grounding checking.", + "purgeSample": { + "description": "A sample of the Artifact names that will be deleted. Only populated if `force` is set to false. The maximum number of samples is 100 (it is possible to return fewer).", "items": { - "$ref": "GoogleCloudAiplatformV1SchemaPredictParamsGroundingConfigSourceEntry" + "type": "string" }, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaPredictParamsGroundingConfigSourceEntry": { - "description": "Single source entry for the grounding checking.", - "id": "GoogleCloudAiplatformV1SchemaPredictParamsGroundingConfigSourceEntry", + "GoogleCloudAiplatformV1PurgeContextsMetadata": { + "description": "Details of operations that perform MetadataService.PurgeContexts.", + "id": "GoogleCloudAiplatformV1PurgeContextsMetadata", "properties": { - "enterpriseDatastore": { - "deprecated": true, - "description": "The uri of the Vertex AI Search data source. Deprecated. Use vertex_ai_search_datastore instead.", - "type": "string" - }, - "type": { - "description": "The type of the grounding checking source.", - "enum": [ - "UNSPECIFIED", - "WEB", - "ENTERPRISE", - "VERTEX_AI_SEARCH" - ], - "enumDeprecated": [ - false, - false, - true, - false - ], - "enumDescriptions": [ - "", - "Uses Web Search to check the grounding.", - "Uses Vertex AI Search to check the grounding. Deprecated. Use VERTEX_AI_SEARCH instead.", - "Uses Vertex AI Search to check the grounding" - ], - "type": "string" - }, - "vertexAiSearchDatastore": { - "description": "The uri of the Vertex AI Search data source.", - "type": "string" + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "Operation metadata for purging Contexts." } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaPredictParamsImageClassificationPredictionParams": { - "description": "Prediction model parameters for Image Classification.", - "id": "GoogleCloudAiplatformV1SchemaPredictParamsImageClassificationPredictionParams", + "GoogleCloudAiplatformV1PurgeContextsRequest": { + "description": "Request message for MetadataService.PurgeContexts.", + "id": "GoogleCloudAiplatformV1PurgeContextsRequest", "properties": { - "confidenceThreshold": { - "description": "The Model only returns predictions with at least this confidence score. Default value is 0.0", - "format": "float", - "type": "number" + "filter": { + "description": "Required. A required filter matching the Contexts to be purged. E.g., `update_time <= 2020-11-19T11:30:00-04:00`.", + "type": "string" }, - "maxPredictions": { - "description": "The Model only returns up to that many top, by confidence score, predictions per instance. If this number is very high, the Model may return fewer predictions. Default value is 10.", - "format": "int32", - "type": "integer" + "force": { + "description": "Optional. Flag to indicate to actually perform the purge. If `force` is set to false, the method will return a sample of Context names that would be deleted.", + "type": "boolean" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaPredictParamsImageObjectDetectionPredictionParams": { - "description": "Prediction model parameters for Image Object Detection.", - "id": "GoogleCloudAiplatformV1SchemaPredictParamsImageObjectDetectionPredictionParams", + "GoogleCloudAiplatformV1PurgeContextsResponse": { + "description": "Response message for MetadataService.PurgeContexts.", + "id": "GoogleCloudAiplatformV1PurgeContextsResponse", "properties": { - "confidenceThreshold": { - "description": "The Model only returns predictions with at least this confidence score. Default value is 0.0", - "format": "float", - "type": "number" + "purgeCount": { + "description": "The number of Contexts that this request deleted (or, if `force` is false, the number of Contexts that will be deleted). This can be an estimate.", + "format": "int64", + "type": "string" }, - "maxPredictions": { - "description": "The Model only returns up to that many top, by confidence score, predictions per instance. Note that number of returned predictions is also limited by metadata's predictionsLimit. Default value is 10.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1SchemaPredictParamsImageSegmentationPredictionParams": { - "description": "Prediction model parameters for Image Segmentation.", - "id": "GoogleCloudAiplatformV1SchemaPredictParamsImageSegmentationPredictionParams", - "properties": { - "confidenceThreshold": { - "description": "When the model predicts category of pixels of the image, it will only provide predictions for pixels that it is at least this much confident about. All other pixels will be classified as background. Default value is 0.5.", - "format": "float", - "type": "number" + "purgeSample": { + "description": "A sample of the Context names that will be deleted. Only populated if `force` is set to false. The maximum number of samples is 100 (it is possible to return fewer).", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaPredictParamsVideoActionRecognitionPredictionParams": { - "description": "Prediction model parameters for Video Action Recognition.", - "id": "GoogleCloudAiplatformV1SchemaPredictParamsVideoActionRecognitionPredictionParams", + "GoogleCloudAiplatformV1PurgeExecutionsMetadata": { + "description": "Details of operations that perform MetadataService.PurgeExecutions.", + "id": "GoogleCloudAiplatformV1PurgeExecutionsMetadata", "properties": { - "confidenceThreshold": { - "description": "The Model only returns predictions with at least this confidence score. Default value is 0.0", - "format": "float", - "type": "number" - }, - "maxPredictions": { - "description": "The model only returns up to that many top, by confidence score, predictions per frame of the video. If this number is very high, the Model may return fewer predictions per frame. Default value is 50.", - "format": "int32", - "type": "integer" + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "Operation metadata for purging Executions." } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaPredictParamsVideoClassificationPredictionParams": { - "description": "Prediction model parameters for Video Classification.", - "id": "GoogleCloudAiplatformV1SchemaPredictParamsVideoClassificationPredictionParams", + "GoogleCloudAiplatformV1PurgeExecutionsRequest": { + "description": "Request message for MetadataService.PurgeExecutions.", + "id": "GoogleCloudAiplatformV1PurgeExecutionsRequest", "properties": { - "confidenceThreshold": { - "description": "The Model only returns predictions with at least this confidence score. Default value is 0.0", - "format": "float", - "type": "number" - }, - "maxPredictions": { - "description": "The Model only returns up to that many top, by confidence score, predictions per instance. If this number is very high, the Model may return fewer predictions. Default value is 10,000.", - "format": "int32", - "type": "integer" - }, - "oneSecIntervalClassification": { - "description": "Set to true to request classification for a video at one-second intervals. Vertex AI returns labels and their confidence scores for each second of the entire time segment of the video that user specified in the input WARNING: Model evaluation is not done for this classification type, the quality of it depends on the training data, but there are no metrics provided to describe that quality. Default value is false", - "type": "boolean" - }, - "segmentClassification": { - "description": "Set to true to request segment-level classification. Vertex AI returns labels and their confidence scores for the entire time segment of the video that user specified in the input instance. Default value is true", - "type": "boolean" + "filter": { + "description": "Required. A required filter matching the Executions to be purged. E.g., `update_time <= 2020-11-19T11:30:00-04:00`.", + "type": "string" }, - "shotClassification": { - "description": "Set to true to request shot-level classification. Vertex AI determines the boundaries for each camera shot in the entire time segment of the video that user specified in the input instance. Vertex AI then returns labels and their confidence scores for each detected shot, along with the start and end time of the shot. WARNING: Model evaluation is not done for this classification type, the quality of it depends on the training data, but there are no metrics provided to describe that quality. Default value is false", + "force": { + "description": "Optional. Flag to indicate to actually perform the purge. If `force` is set to false, the method will return a sample of Execution names that would be deleted.", "type": "boolean" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaPredictParamsVideoObjectTrackingPredictionParams": { - "description": "Prediction model parameters for Video Object Tracking.", - "id": "GoogleCloudAiplatformV1SchemaPredictParamsVideoObjectTrackingPredictionParams", + "GoogleCloudAiplatformV1PurgeExecutionsResponse": { + "description": "Response message for MetadataService.PurgeExecutions.", + "id": "GoogleCloudAiplatformV1PurgeExecutionsResponse", "properties": { - "confidenceThreshold": { - "description": "The Model only returns predictions with at least this confidence score. Default value is 0.0", - "format": "float", - "type": "number" - }, - "maxPredictions": { - "description": "The model only returns up to that many top, by confidence score, predictions per frame of the video. If this number is very high, the Model may return fewer predictions per frame. Default value is 50.", - "format": "int32", - "type": "integer" + "purgeCount": { + "description": "The number of Executions that this request deleted (or, if `force` is false, the number of Executions that will be deleted). This can be an estimate.", + "format": "int64", + "type": "string" }, - "minBoundingBoxSize": { - "description": "Only bounding boxes with shortest edge at least that long as a relative value of video frame size are returned. Default value is 0.0.", - "format": "float", - "type": "number" + "purgeSample": { + "description": "A sample of the Execution names that will be deleted. Only populated if `force` is set to false. The maximum number of samples is 100 (it is possible to return fewer).", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaPredictPredictionClassificationPredictionResult": { - "description": "Prediction output format for Image and Text Classification.", - "id": "GoogleCloudAiplatformV1SchemaPredictPredictionClassificationPredictionResult", + "GoogleCloudAiplatformV1PythonPackageSpec": { + "description": "The spec of a Python packaged code.", + "id": "GoogleCloudAiplatformV1PythonPackageSpec", "properties": { - "confidences": { - "description": "The Model's confidences in correctness of the predicted IDs, higher value means higher confidence. Order matches the Ids.", + "args": { + "description": "Command line arguments to be passed to the Python task.", "items": { - "format": "float", - "type": "number" + "type": "string" }, "type": "array" }, - "displayNames": { - "description": "The display names of the AnnotationSpecs that had been identified, order matches the IDs.", + "env": { + "description": "Environment variables to be passed to the python module. Maximum limit is 100.", "items": { - "type": "string" + "$ref": "GoogleCloudAiplatformV1EnvVar" }, "type": "array" }, - "ids": { - "description": "The resource IDs of the AnnotationSpecs that had been identified.", + "executorImageUri": { + "description": "Required. The URI of a container image in Artifact Registry that will run the provided Python package. Vertex AI provides a wide range of executor images with pre-installed packages to meet users' various use cases. See the list of [pre-built containers for training](https://cloud.google.com/vertex-ai/docs/training/pre-built-containers). You must use an image from this list.", + "type": "string" + }, + "packageUris": { + "description": "Required. The Google Cloud Storage location of the Python package files which are the training program and its dependent packages. The maximum number of package URIs is 100.", "items": { - "format": "int64", "type": "string" }, "type": "array" + }, + "pythonModule": { + "description": "Required. The Python module name to run after installing the packages.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaPredictPredictionImageObjectDetectionPredictionResult": { - "description": "Prediction output format for Image Object Detection.", - "id": "GoogleCloudAiplatformV1SchemaPredictPredictionImageObjectDetectionPredictionResult", + "GoogleCloudAiplatformV1QueryDeployedModelsResponse": { + "description": "Response message for QueryDeployedModels method.", + "id": "GoogleCloudAiplatformV1QueryDeployedModelsResponse", "properties": { - "bboxes": { - "description": "Bounding boxes, i.e. the rectangles over the image, that pinpoint the found AnnotationSpecs. Given in order that matches the IDs. Each bounding box is an array of 4 numbers `xMin`, `xMax`, `yMin`, and `yMax`, which represent the extremal coordinates of the box. They are relative to the image size, and the point 0,0 is in the top left of the image.", + "deployedModelRefs": { + "description": "References to the DeployedModels that share the specified deploymentResourcePool.", "items": { - "items": { - "type": "any" - }, - "type": "array" + "$ref": "GoogleCloudAiplatformV1DeployedModelRef" }, "type": "array" }, - "confidences": { - "description": "The Model's confidences in correctness of the predicted IDs, higher value means higher confidence. Order matches the Ids.", + "deployedModels": { + "deprecated": true, + "description": "DEPRECATED Use deployed_model_refs instead.", "items": { - "format": "float", - "type": "number" + "$ref": "GoogleCloudAiplatformV1DeployedModel" }, "type": "array" }, - "displayNames": { - "description": "The display names of the AnnotationSpecs that had been identified, order matches the IDs.", - "items": { - "type": "string" - }, - "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" }, - "ids": { - "description": "The resource IDs of the AnnotationSpecs that had been identified, ordered by the confidence score descendingly.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" + "totalDeployedModelCount": { + "description": "The total number of DeployedModels on this DeploymentResourcePool.", + "format": "int32", + "type": "integer" + }, + "totalEndpointCount": { + "description": "The total number of Endpoints that have DeployedModels on this DeploymentResourcePool.", + "format": "int32", + "type": "integer" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaPredictPredictionImageSegmentationPredictionResult": { - "description": "Prediction output format for Image Segmentation.", - "id": "GoogleCloudAiplatformV1SchemaPredictPredictionImageSegmentationPredictionResult", + "GoogleCloudAiplatformV1RawPredictRequest": { + "description": "Request message for PredictionService.RawPredict.", + "id": "GoogleCloudAiplatformV1RawPredictRequest", "properties": { - "categoryMask": { - "description": "A PNG image where each pixel in the mask represents the category in which the pixel in the original image was predicted to belong to. The size of this image will be the same as the original image. The mapping between the AnntoationSpec and the color can be found in model's metadata. The model will choose the most likely category and if none of the categories reach the confidence threshold, the pixel will be marked as background.", + "httpBody": { + "$ref": "GoogleApiHttpBody", + "description": "The prediction input. Supports HTTP headers and arbitrary data payload. A DeployedModel may have an upper limit on the number of instances it supports per request. When this limit it is exceeded for an AutoML model, the RawPredict method returns an error. When this limit is exceeded for a custom-trained model, the behavior varies depending on the model. You can specify the schema for each instance in the predict_schemata.instance_schema_uri field when you create a Model. This schema applies when you deploy the `Model` as a `DeployedModel` to an Endpoint and use the `RawPredict` method." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1ReadFeatureValuesRequest": { + "description": "Request message for FeaturestoreOnlineServingService.ReadFeatureValues.", + "id": "GoogleCloudAiplatformV1ReadFeatureValuesRequest", + "properties": { + "entityId": { + "description": "Required. ID for a specific entity. For example, for a machine learning model predicting user clicks on a website, an entity ID could be `user_123`.", "type": "string" }, - "confidenceMask": { - "description": "A one channel image which is encoded as an 8bit lossless PNG. The size of the image will be the same as the original image. For a specific pixel, darker color means less confidence in correctness of the cateogry in the categoryMask for the corresponding pixel. Black means no confidence and white means complete confidence.", - "type": "string" + "featureSelector": { + "$ref": "GoogleCloudAiplatformV1FeatureSelector", + "description": "Required. Selector choosing Features of the target EntityType." } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaPredictPredictionTabularClassificationPredictionResult": { - "description": "Prediction output format for Tabular Classification.", - "id": "GoogleCloudAiplatformV1SchemaPredictPredictionTabularClassificationPredictionResult", + "GoogleCloudAiplatformV1ReadFeatureValuesResponse": { + "description": "Response message for FeaturestoreOnlineServingService.ReadFeatureValues.", + "id": "GoogleCloudAiplatformV1ReadFeatureValuesResponse", "properties": { - "classes": { - "description": "The name of the classes being classified, contains all possible values of the target column.", - "items": { - "type": "string" - }, - "type": "array" + "entityView": { + "$ref": "GoogleCloudAiplatformV1ReadFeatureValuesResponseEntityView", + "description": "Entity view with Feature values. This may be the entity in the Featurestore if values for all Features were requested, or a projection of the entity in the Featurestore if values for only some Features were requested." }, - "scores": { - "description": "The model's confidence in each class being correct, higher value means higher confidence. The N-th score corresponds to the N-th class in classes.", - "items": { - "format": "float", - "type": "number" - }, - "type": "array" + "header": { + "$ref": "GoogleCloudAiplatformV1ReadFeatureValuesResponseHeader", + "description": "Response header." } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaPredictPredictionTabularRegressionPredictionResult": { - "description": "Prediction output format for Tabular Regression.", - "id": "GoogleCloudAiplatformV1SchemaPredictPredictionTabularRegressionPredictionResult", + "GoogleCloudAiplatformV1ReadFeatureValuesResponseEntityView": { + "description": "Entity view with Feature values.", + "id": "GoogleCloudAiplatformV1ReadFeatureValuesResponseEntityView", "properties": { - "lowerBound": { - "description": "The lower bound of the prediction interval.", - "format": "float", - "type": "number" - }, - "quantilePredictions": { - "description": "Quantile predictions, in 1-1 correspondence with quantile_values.", - "items": { - "format": "float", - "type": "number" - }, - "type": "array" - }, - "quantileValues": { - "description": "Quantile values.", + "data": { + "description": "Each piece of data holds the k requested values for one requested Feature. If no values for the requested Feature exist, the corresponding cell will be empty. This has the same size and is in the same order as the features from the header ReadFeatureValuesResponse.header.", "items": { - "format": "float", - "type": "number" + "$ref": "GoogleCloudAiplatformV1ReadFeatureValuesResponseEntityViewData" }, "type": "array" }, - "upperBound": { - "description": "The upper bound of the prediction interval.", - "format": "float", - "type": "number" - }, - "value": { - "description": "The regression value.", - "format": "float", - "type": "number" + "entityId": { + "description": "ID of the requested entity.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaPredictPredictionTextExtractionPredictionResult": { - "description": "Prediction output format for Text Extraction.", - "id": "GoogleCloudAiplatformV1SchemaPredictPredictionTextExtractionPredictionResult", + "GoogleCloudAiplatformV1ReadFeatureValuesResponseEntityViewData": { + "description": "Container to hold value(s), successive in time, for one Feature from the request.", + "id": "GoogleCloudAiplatformV1ReadFeatureValuesResponseEntityViewData", "properties": { - "confidences": { - "description": "The Model's confidences in correctness of the predicted IDs, higher value means higher confidence. Order matches the Ids.", - "items": { - "format": "float", - "type": "number" - }, - "type": "array" - }, - "displayNames": { - "description": "The display names of the AnnotationSpecs that had been identified, order matches the IDs.", - "items": { - "type": "string" - }, - "type": "array" - }, - "ids": { - "description": "The resource IDs of the AnnotationSpecs that had been identified, ordered by the confidence score descendingly.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "textSegmentEndOffsets": { - "description": "The end offsets, inclusive, of the text segment in which the AnnotationSpec has been identified. Expressed as a zero-based number of characters as measured from the start of the text snippet.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" + "value": { + "$ref": "GoogleCloudAiplatformV1FeatureValue", + "description": "Feature value if a single value is requested." }, - "textSegmentStartOffsets": { - "description": "The start offsets, inclusive, of the text segment in which the AnnotationSpec has been identified. Expressed as a zero-based number of characters as measured from the start of the text snippet.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" + "values": { + "$ref": "GoogleCloudAiplatformV1FeatureValueList", + "description": "Feature values list if values, successive in time, are requested. If the requested number of values is greater than the number of existing Feature values, nonexistent values are omitted instead of being returned as empty." } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaPredictPredictionTextSentimentPredictionResult": { - "description": "Prediction output format for Text Sentiment", - "id": "GoogleCloudAiplatformV1SchemaPredictPredictionTextSentimentPredictionResult", + "GoogleCloudAiplatformV1ReadFeatureValuesResponseFeatureDescriptor": { + "description": "Metadata for requested Features.", + "id": "GoogleCloudAiplatformV1ReadFeatureValuesResponseFeatureDescriptor", "properties": { - "sentiment": { - "description": "The integer sentiment labels between 0 (inclusive) and sentimentMax label (inclusive), while 0 maps to the least positive sentiment and sentimentMax maps to the most positive one. The higher the score is, the more positive the sentiment in the text snippet is. Note: sentimentMax is an integer value between 1 (inclusive) and 10 (inclusive).", - "format": "int32", - "type": "integer" + "id": { + "description": "Feature ID.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaPredictPredictionTftFeatureImportance": { - "id": "GoogleCloudAiplatformV1SchemaPredictPredictionTftFeatureImportance", + "GoogleCloudAiplatformV1ReadFeatureValuesResponseHeader": { + "description": "Response header with metadata for the requested ReadFeatureValuesRequest.entity_type and Features.", + "id": "GoogleCloudAiplatformV1ReadFeatureValuesResponseHeader", "properties": { - "attributeColumns": { - "items": { - "type": "string" - }, - "type": "array" - }, - "attributeWeights": { - "items": { - "format": "float", - "type": "number" - }, - "type": "array" - }, - "contextColumns": { - "items": { - "type": "string" - }, - "type": "array" + "entityType": { + "description": "The resource name of the EntityType from the ReadFeatureValuesRequest. Value format: `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entityType}`.", + "type": "string" }, - "contextWeights": { - "description": "TFT feature importance values. Each pair for {context/horizon/attribute} should have the same shape since the weight corresponds to the column names.", + "featureDescriptors": { + "description": "List of Feature metadata corresponding to each piece of ReadFeatureValuesResponse.EntityView.data.", "items": { - "format": "float", - "type": "number" + "$ref": "GoogleCloudAiplatformV1ReadFeatureValuesResponseFeatureDescriptor" }, "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1ReadIndexDatapointsRequest": { + "description": "The request message for MatchService.ReadIndexDatapoints.", + "id": "GoogleCloudAiplatformV1ReadIndexDatapointsRequest", + "properties": { + "deployedIndexId": { + "description": "The ID of the DeployedIndex that will serve the request.", + "type": "string" }, - "horizonColumns": { + "ids": { + "description": "IDs of the datapoints to be searched for.", "items": { "type": "string" }, "type": "array" - }, - "horizonWeights": { - "items": { - "format": "float", - "type": "number" - }, - "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaPredictPredictionTimeSeriesForecastingPredictionResult": { - "description": "Prediction output format for Time Series Forecasting.", - "id": "GoogleCloudAiplatformV1SchemaPredictPredictionTimeSeriesForecastingPredictionResult", + "GoogleCloudAiplatformV1ReadIndexDatapointsResponse": { + "description": "The response message for MatchService.ReadIndexDatapoints.", + "id": "GoogleCloudAiplatformV1ReadIndexDatapointsResponse", "properties": { - "quantilePredictions": { - "description": "Quantile predictions, in 1-1 correspondence with quantile_values.", - "items": { - "format": "float", - "type": "number" - }, - "type": "array" - }, - "quantileValues": { - "description": "Quantile values.", + "datapoints": { + "description": "The result list of datapoints.", "items": { - "format": "float", - "type": "number" + "$ref": "GoogleCloudAiplatformV1IndexDatapoint" }, "type": "array" - }, - "tftFeatureImportance": { - "$ref": "GoogleCloudAiplatformV1SchemaPredictPredictionTftFeatureImportance", - "description": "Only use these if TFt is enabled." - }, - "value": { - "description": "The regression value.", - "format": "float", - "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaPredictPredictionVideoActionRecognitionPredictionResult": { - "description": "Prediction output format for Video Action Recognition.", - "id": "GoogleCloudAiplatformV1SchemaPredictPredictionVideoActionRecognitionPredictionResult", + "GoogleCloudAiplatformV1ReadTensorboardBlobDataResponse": { + "description": "Response message for TensorboardService.ReadTensorboardBlobData.", + "id": "GoogleCloudAiplatformV1ReadTensorboardBlobDataResponse", "properties": { - "confidence": { - "description": "The Model's confidence in correction of this prediction, higher value means higher confidence.", - "format": "float", - "type": "number" - }, - "displayName": { - "description": "The display name of the AnnotationSpec that had been identified.", - "type": "string" - }, - "id": { - "description": "The resource ID of the AnnotationSpec that had been identified.", - "type": "string" - }, - "timeSegmentEnd": { - "description": "The end, exclusive, of the video's time segment in which the AnnotationSpec has been identified. Expressed as a number of seconds as measured from the start of the video, with fractions up to a microsecond precision, and with \"s\" appended at the end.", - "format": "google-duration", - "type": "string" - }, - "timeSegmentStart": { - "description": "The beginning, inclusive, of the video's time segment in which the AnnotationSpec has been identified. Expressed as a number of seconds as measured from the start of the video, with fractions up to a microsecond precision, and with \"s\" appended at the end.", - "format": "google-duration", - "type": "string" + "blobs": { + "description": "Blob messages containing blob bytes.", + "items": { + "$ref": "GoogleCloudAiplatformV1TensorboardBlob" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaPredictPredictionVideoClassificationPredictionResult": { - "description": "Prediction output format for Video Classification.", - "id": "GoogleCloudAiplatformV1SchemaPredictPredictionVideoClassificationPredictionResult", + "GoogleCloudAiplatformV1ReadTensorboardSizeResponse": { + "description": "Response message for TensorboardService.ReadTensorboardSize.", + "id": "GoogleCloudAiplatformV1ReadTensorboardSizeResponse", "properties": { - "confidence": { - "description": "The Model's confidence in correction of this prediction, higher value means higher confidence.", - "format": "float", - "type": "number" - }, - "displayName": { - "description": "The display name of the AnnotationSpec that had been identified.", - "type": "string" - }, - "id": { - "description": "The resource ID of the AnnotationSpec that had been identified.", - "type": "string" - }, - "timeSegmentEnd": { - "description": "The end, exclusive, of the video's time segment in which the AnnotationSpec has been identified. Expressed as a number of seconds as measured from the start of the video, with fractions up to a microsecond precision, and with \"s\" appended at the end. Note that for 'segment-classification' prediction type, this equals the original 'timeSegmentEnd' from the input instance, for other types it is the end of a shot or a 1 second interval respectively.", - "format": "google-duration", - "type": "string" - }, - "timeSegmentStart": { - "description": "The beginning, inclusive, of the video's time segment in which the AnnotationSpec has been identified. Expressed as a number of seconds as measured from the start of the video, with fractions up to a microsecond precision, and with \"s\" appended at the end. Note that for 'segment-classification' prediction type, this equals the original 'timeSegmentStart' from the input instance, for other types it is the start of a shot or a 1 second interval respectively.", - "format": "google-duration", - "type": "string" - }, - "type": { - "description": "The type of the prediction. The requested types can be configured via parameters. This will be one of - segment-classification - shot-classification - one-sec-interval-classification", + "storageSizeByte": { + "description": "Payload storage size for the TensorBoard", + "format": "int64", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaPredictPredictionVideoObjectTrackingPredictionResult": { - "description": "Prediction output format for Video Object Tracking.", - "id": "GoogleCloudAiplatformV1SchemaPredictPredictionVideoObjectTrackingPredictionResult", + "GoogleCloudAiplatformV1ReadTensorboardTimeSeriesDataResponse": { + "description": "Response message for TensorboardService.ReadTensorboardTimeSeriesData.", + "id": "GoogleCloudAiplatformV1ReadTensorboardTimeSeriesDataResponse", "properties": { - "confidence": { - "description": "The Model's confidence in correction of this prediction, higher value means higher confidence.", - "format": "float", - "type": "number" - }, - "displayName": { - "description": "The display name of the AnnotationSpec that had been identified.", - "type": "string" - }, - "frames": { - "description": "All of the frames of the video in which a single object instance has been detected. The bounding boxes in the frames identify the same object.", - "items": { - "$ref": "GoogleCloudAiplatformV1SchemaPredictPredictionVideoObjectTrackingPredictionResultFrame" - }, - "type": "array" - }, - "id": { - "description": "The resource ID of the AnnotationSpec that had been identified.", - "type": "string" - }, - "timeSegmentEnd": { - "description": "The end, inclusive, of the video's time segment in which the object instance has been detected. Expressed as a number of seconds as measured from the start of the video, with fractions up to a microsecond precision, and with \"s\" appended at the end.", - "format": "google-duration", - "type": "string" - }, - "timeSegmentStart": { - "description": "The beginning, inclusive, of the video's time segment in which the object instance has been detected. Expressed as a number of seconds as measured from the start of the video, with fractions up to a microsecond precision, and with \"s\" appended at the end.", - "format": "google-duration", - "type": "string" + "timeSeriesData": { + "$ref": "GoogleCloudAiplatformV1TimeSeriesData", + "description": "The returned time series data." } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaPredictPredictionVideoObjectTrackingPredictionResultFrame": { - "description": "The fields `xMin`, `xMax`, `yMin`, and `yMax` refer to a bounding box, i.e. the rectangle over the video frame pinpointing the found AnnotationSpec. The coordinates are relative to the frame size, and the point 0,0 is in the top left of the frame.", - "id": "GoogleCloudAiplatformV1SchemaPredictPredictionVideoObjectTrackingPredictionResultFrame", + "GoogleCloudAiplatformV1ReadTensorboardUsageResponse": { + "description": "Response message for TensorboardService.ReadTensorboardUsage.", + "id": "GoogleCloudAiplatformV1ReadTensorboardUsageResponse", "properties": { - "timeOffset": { - "description": "A time (frame) of a video in which the object has been detected. Expressed as a number of seconds as measured from the start of the video, with fractions up to a microsecond precision, and with \"s\" appended at the end.", - "format": "google-duration", - "type": "string" - }, - "xMax": { - "description": "The rightmost coordinate of the bounding box.", - "format": "float", - "type": "number" - }, - "xMin": { - "description": "The leftmost coordinate of the bounding box.", - "format": "float", - "type": "number" - }, - "yMax": { - "description": "The bottommost coordinate of the bounding box.", - "format": "float", - "type": "number" - }, - "yMin": { - "description": "The topmost coordinate of the bounding box.", - "format": "float", - "type": "number" + "monthlyUsageData": { + "additionalProperties": { + "$ref": "GoogleCloudAiplatformV1ReadTensorboardUsageResponsePerMonthUsageData" + }, + "description": "Maps year-month (YYYYMM) string to per month usage data.", + "type": "object" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaPredictionResult": { - "description": "Represents a line of JSONL in the batch prediction output file.", - "id": "GoogleCloudAiplatformV1SchemaPredictionResult", + "GoogleCloudAiplatformV1ReadTensorboardUsageResponsePerMonthUsageData": { + "description": "Per month usage data", + "id": "GoogleCloudAiplatformV1ReadTensorboardUsageResponsePerMonthUsageData", "properties": { - "error": { - "$ref": "GoogleCloudAiplatformV1SchemaPredictionResultError", - "description": "The error result. Do not set prediction if this is set." - }, - "instance": { - "additionalProperties": { - "description": "Properties of the object.", - "type": "any" + "userUsageData": { + "description": "Usage data for each user in the given month.", + "items": { + "$ref": "GoogleCloudAiplatformV1ReadTensorboardUsageResponsePerUserUsageData" }, - "description": "User's input instance. Struct is used here instead of Any so that JsonFormat does not append an extra \"@type\" field when we convert the proto to JSON.", - "type": "object" - }, - "key": { - "description": "Optional user-provided key from the input instance.", - "type": "string" - }, - "prediction": { - "description": "The prediction result. Value is used here instead of Any so that JsonFormat does not append an extra \"@type\" field when we convert the proto to JSON and so we can represent array of objects. Do not set error if this is set.", - "type": "any" + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaPredictionResultError": { - "id": "GoogleCloudAiplatformV1SchemaPredictionResultError", + "GoogleCloudAiplatformV1ReadTensorboardUsageResponsePerUserUsageData": { + "description": "Per user usage data.", + "id": "GoogleCloudAiplatformV1ReadTensorboardUsageResponsePerUserUsageData", "properties": { - "message": { - "description": "Error message with additional details.", + "username": { + "description": "User's username", "type": "string" }, - "status": { - "description": "Error status. This will be serialized into the enum name e.g. \"NOT_FOUND\".", - "enum": [ - "OK", - "CANCELLED", - "UNKNOWN", - "INVALID_ARGUMENT", - "DEADLINE_EXCEEDED", - "NOT_FOUND", - "ALREADY_EXISTS", - "PERMISSION_DENIED", - "UNAUTHENTICATED", - "RESOURCE_EXHAUSTED", - "FAILED_PRECONDITION", - "ABORTED", - "OUT_OF_RANGE", - "UNIMPLEMENTED", - "INTERNAL", - "UNAVAILABLE", - "DATA_LOSS" - ], - "enumDescriptions": [ - "Not an error; returned on success. HTTP Mapping: 200 OK", - "The operation was cancelled, typically by the caller. HTTP Mapping: 499 Client Closed Request", - "Unknown error. For example, this error may be returned when a `Status` value received from another address space belongs to an error space that is not known in this address space. Also errors raised by APIs that do not return enough error information may be converted to this error. HTTP Mapping: 500 Internal Server Error", - "The client specified an invalid argument. Note that this differs from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates arguments that are problematic regardless of the state of the system (e.g., a malformed file name). HTTP Mapping: 400 Bad Request", - "The deadline expired before the operation could complete. For operations that change the state of the system, this error may be returned even if the operation has completed successfully. For example, a successful response from a server could have been delayed long enough for the deadline to expire. HTTP Mapping: 504 Gateway Timeout", - "Some requested entity (e.g., file or directory) was not found. Note to server developers: if a request is denied for an entire class of users, such as gradual feature rollout or undocumented allowlist, `NOT_FOUND` may be used. If a request is denied for some users within a class of users, such as user-based access control, `PERMISSION_DENIED` must be used. HTTP Mapping: 404 Not Found", - "The entity that a client attempted to create (e.g., file or directory) already exists. HTTP Mapping: 409 Conflict", - "The caller does not have permission to execute the specified operation. `PERMISSION_DENIED` must not be used for rejections caused by exhausting some resource (use `RESOURCE_EXHAUSTED` instead for those errors). `PERMISSION_DENIED` must not be used if the caller can not be identified (use `UNAUTHENTICATED` instead for those errors). This error code does not imply the request is valid or the requested entity exists or satisfies other pre-conditions. HTTP Mapping: 403 Forbidden", - "The request does not have valid authentication credentials for the operation. HTTP Mapping: 401 Unauthorized", - "Some resource has been exhausted, perhaps a per-user quota, or perhaps the entire file system is out of space. HTTP Mapping: 429 Too Many Requests", - "The operation was rejected because the system is not in a state required for the operation's execution. For example, the directory to be deleted is non-empty, an rmdir operation is applied to a non-directory, etc. Service implementors can use the following guidelines to decide between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`: (a) Use `UNAVAILABLE` if the client can retry just the failing call. (b) Use `ABORTED` if the client should retry at a higher level. For example, when a client-specified test-and-set fails, indicating the client should restart a read-modify-write sequence. (c) Use `FAILED_PRECONDITION` if the client should not retry until the system state has been explicitly fixed. For example, if an \"rmdir\" fails because the directory is non-empty, `FAILED_PRECONDITION` should be returned since the client should not retry unless the files are deleted from the directory. HTTP Mapping: 400 Bad Request", - "The operation was aborted, typically due to a concurrency issue such as a sequencer check failure or transaction abort. See the guidelines above for deciding between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 409 Conflict", - "The operation was attempted past the valid range. E.g., seeking or reading past end-of-file. Unlike `INVALID_ARGUMENT`, this error indicates a problem that may be fixed if the system state changes. For example, a 32-bit file system will generate `INVALID_ARGUMENT` if asked to read at an offset that is not in the range [0,2^32-1], but it will generate `OUT_OF_RANGE` if asked to read from an offset past the current file size. There is a fair bit of overlap between `FAILED_PRECONDITION` and `OUT_OF_RANGE`. We recommend using `OUT_OF_RANGE` (the more specific error) when it applies so that callers who are iterating through a space can easily look for an `OUT_OF_RANGE` error to detect when they are done. HTTP Mapping: 400 Bad Request", - "The operation is not implemented or is not supported/enabled in this service. HTTP Mapping: 501 Not Implemented", - "Internal errors. This means that some invariants expected by the underlying system have been broken. This error code is reserved for serious errors. HTTP Mapping: 500 Internal Server Error", - "The service is currently unavailable. This is most likely a transient condition, which can be corrected by retrying with a backoff. Note that it is not always safe to retry non-idempotent operations. See the guidelines above for deciding between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 503 Service Unavailable", - "Unrecoverable data loss or corruption. HTTP Mapping: 500 Internal Server Error" - ], + "viewCount": { + "description": "Number of times the user has read data within the Tensorboard.", + "format": "int64", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTablesDatasetMetadata": { - "description": "The metadata of Datasets that contain tables data.", - "id": "GoogleCloudAiplatformV1SchemaTablesDatasetMetadata", + "GoogleCloudAiplatformV1RemoveContextChildrenRequest": { + "description": "Request message for MetadataService.DeleteContextChildrenRequest.", + "id": "GoogleCloudAiplatformV1RemoveContextChildrenRequest", "properties": { - "inputConfig": { - "$ref": "GoogleCloudAiplatformV1SchemaTablesDatasetMetadataInputConfig" + "childContexts": { + "description": "The resource names of the child Contexts.", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTablesDatasetMetadataBigQuerySource": { - "id": "GoogleCloudAiplatformV1SchemaTablesDatasetMetadataBigQuerySource", - "properties": { - "uri": { - "description": "The URI of a BigQuery table. e.g. bq://projectId.bqDatasetId.bqTableId", - "type": "string" - } - }, + "GoogleCloudAiplatformV1RemoveContextChildrenResponse": { + "description": "Response message for MetadataService.RemoveContextChildren.", + "id": "GoogleCloudAiplatformV1RemoveContextChildrenResponse", + "properties": {}, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTablesDatasetMetadataGcsSource": { - "id": "GoogleCloudAiplatformV1SchemaTablesDatasetMetadataGcsSource", + "GoogleCloudAiplatformV1RemoveDatapointsRequest": { + "description": "Request message for IndexService.RemoveDatapoints", + "id": "GoogleCloudAiplatformV1RemoveDatapointsRequest", "properties": { - "uri": { - "description": "Cloud Storage URI of one or more files. Only CSV files are supported. The first line of the CSV file is used as the header. If there are multiple files, the header is the first line of the lexicographically first file, the other files must either contain the exact same header or omit the header.", + "datapointIds": { + "description": "A list of datapoint ids to be deleted.", "items": { "type": "string" }, @@ -26905,2278 +27871,2520 @@ }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTablesDatasetMetadataInputConfig": { - "description": "The tables Dataset's data source. The Dataset doesn't store the data directly, but only pointer(s) to its data.", - "id": "GoogleCloudAiplatformV1SchemaTablesDatasetMetadataInputConfig", + "GoogleCloudAiplatformV1RemoveDatapointsResponse": { + "description": "Response message for IndexService.RemoveDatapoints", + "id": "GoogleCloudAiplatformV1RemoveDatapointsResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudAiplatformV1ResourcesConsumed": { + "description": "Statistics information about resource consumption.", + "id": "GoogleCloudAiplatformV1ResourcesConsumed", "properties": { - "bigquerySource": { - "$ref": "GoogleCloudAiplatformV1SchemaTablesDatasetMetadataBigQuerySource" - }, - "gcsSource": { - "$ref": "GoogleCloudAiplatformV1SchemaTablesDatasetMetadataGcsSource" + "replicaHours": { + "description": "Output only. The number of replica hours used. Note that many replicas may run in parallel, and additionally any given work may be queued for some time. Therefore this value is not strictly related to wall time.", + "format": "double", + "readOnly": true, + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTextClassificationAnnotation": { - "description": "Annotation details specific to text classification.", - "id": "GoogleCloudAiplatformV1SchemaTextClassificationAnnotation", + "GoogleCloudAiplatformV1RestoreDatasetVersionOperationMetadata": { + "description": "Runtime operation information for DatasetService.RestoreDatasetVersion.", + "id": "GoogleCloudAiplatformV1RestoreDatasetVersionOperationMetadata", "properties": { - "annotationSpecId": { - "description": "The resource Id of the AnnotationSpec that this Annotation pertains to.", - "type": "string" - }, - "displayName": { - "description": "The display name of the AnnotationSpec that this Annotation pertains to.", - "type": "string" + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "The common part of the operation metadata." } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTextDataItem": { - "description": "Payload of Text DataItem.", - "id": "GoogleCloudAiplatformV1SchemaTextDataItem", + "GoogleCloudAiplatformV1ResumeModelDeploymentMonitoringJobRequest": { + "description": "Request message for JobService.ResumeModelDeploymentMonitoringJob.", + "id": "GoogleCloudAiplatformV1ResumeModelDeploymentMonitoringJobRequest", + "properties": {}, + "type": "object" + }, + "GoogleCloudAiplatformV1ResumeScheduleRequest": { + "description": "Request message for ScheduleService.ResumeSchedule.", + "id": "GoogleCloudAiplatformV1ResumeScheduleRequest", "properties": { - "gcsUri": { - "description": "Output only. Google Cloud Storage URI points to the original text in user's bucket. The text file is up to 10MB in size.", - "readOnly": true, - "type": "string" + "catchUp": { + "description": "Optional. Whether to backfill missed runs when the schedule is resumed from PAUSED state. If set to true, all missed runs will be scheduled. New runs will be scheduled after the backfill is complete. This will also update Schedule.catch_up field. Default to false.", + "type": "boolean" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTextDatasetMetadata": { - "description": "The metadata of Datasets that contain Text DataItems.", - "id": "GoogleCloudAiplatformV1SchemaTextDatasetMetadata", + "GoogleCloudAiplatformV1SafetyRating": { + "description": "Safety rating corresponding to the generated content.", + "id": "GoogleCloudAiplatformV1SafetyRating", "properties": { - "dataItemSchemaUri": { - "description": "Points to a YAML file stored on Google Cloud Storage describing payload of the Text DataItems that belong to this Dataset.", + "blocked": { + "description": "Output only. Indicates whether the content was filtered out because of this rating.", + "readOnly": true, + "type": "boolean" + }, + "category": { + "description": "Output only. Harm category.", + "enum": [ + "HARM_CATEGORY_UNSPECIFIED", + "HARM_CATEGORY_HATE_SPEECH", + "HARM_CATEGORY_DANGEROUS_CONTENT", + "HARM_CATEGORY_HARASSMENT", + "HARM_CATEGORY_SEXUALLY_EXPLICIT" + ], + "enumDescriptions": [ + "The harm category is unspecified.", + "The harm category is hate speech.", + "The harm category is dangerous content.", + "The harm category is harassment.", + "The harm category is sexually explicit content." + ], + "readOnly": true, "type": "string" }, - "gcsBucket": { - "description": "Google Cloud Storage Bucket name that contains the blob data of this Dataset.", + "probability": { + "description": "Output only. Harm probability levels in the content.", + "enum": [ + "HARM_PROBABILITY_UNSPECIFIED", + "NEGLIGIBLE", + "LOW", + "MEDIUM", + "HIGH" + ], + "enumDescriptions": [ + "Harm probability unspecified.", + "Negligible level of harm.", + "Low level of harm.", + "Medium level of harm.", + "High level of harm." + ], + "readOnly": true, + "type": "string" + }, + "probabilityScore": { + "description": "Output only. Harm probability score.", + "format": "float", + "readOnly": true, + "type": "number" + }, + "severity": { + "description": "Output only. Harm severity levels in the content.", + "enum": [ + "HARM_SEVERITY_UNSPECIFIED", + "HARM_SEVERITY_NEGLIGIBLE", + "HARM_SEVERITY_LOW", + "HARM_SEVERITY_MEDIUM", + "HARM_SEVERITY_HIGH" + ], + "enumDescriptions": [ + "Harm severity unspecified.", + "Negligible level of harm severity.", + "Low level of harm severity.", + "Medium level of harm severity.", + "High level of harm severity." + ], + "readOnly": true, "type": "string" + }, + "severityScore": { + "description": "Output only. Harm severity score.", + "format": "float", + "readOnly": true, + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTextExtractionAnnotation": { - "description": "Annotation details specific to text extraction.", - "id": "GoogleCloudAiplatformV1SchemaTextExtractionAnnotation", + "GoogleCloudAiplatformV1SafetySetting": { + "description": "Safety settings.", + "id": "GoogleCloudAiplatformV1SafetySetting", "properties": { - "annotationSpecId": { - "description": "The resource Id of the AnnotationSpec that this Annotation pertains to.", + "category": { + "description": "Required. Harm category.", + "enum": [ + "HARM_CATEGORY_UNSPECIFIED", + "HARM_CATEGORY_HATE_SPEECH", + "HARM_CATEGORY_DANGEROUS_CONTENT", + "HARM_CATEGORY_HARASSMENT", + "HARM_CATEGORY_SEXUALLY_EXPLICIT" + ], + "enumDescriptions": [ + "The harm category is unspecified.", + "The harm category is hate speech.", + "The harm category is dangerous content.", + "The harm category is harassment.", + "The harm category is sexually explicit content." + ], "type": "string" }, - "displayName": { - "description": "The display name of the AnnotationSpec that this Annotation pertains to.", + "threshold": { + "description": "Required. The harm block threshold.", + "enum": [ + "HARM_BLOCK_THRESHOLD_UNSPECIFIED", + "BLOCK_LOW_AND_ABOVE", + "BLOCK_MEDIUM_AND_ABOVE", + "BLOCK_ONLY_HIGH", + "BLOCK_NONE" + ], + "enumDescriptions": [ + "Unspecified harm block threshold.", + "Block low threshold and above (i.e. block more).", + "Block medium threshold and above.", + "Block only high threshold (i.e. block less).", + "Block none." + ], "type": "string" - }, - "textSegment": { - "$ref": "GoogleCloudAiplatformV1SchemaTextSegment", - "description": "The segment of the text content." } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTextPromptDatasetMetadata": { - "description": "The metadata of Datasets that contain Text Prompt data.", - "id": "GoogleCloudAiplatformV1SchemaTextPromptDatasetMetadata", + "GoogleCloudAiplatformV1SampleConfig": { + "description": "Active learning data sampling config. For every active learning labeling iteration, it will select a batch of data based on the sampling strategy.", + "id": "GoogleCloudAiplatformV1SampleConfig", "properties": { - "candidateCount": { - "description": "Number of candidates.", - "format": "int64", - "type": "string" - }, - "gcsUri": { - "description": "The Google Cloud Storage URI that stores the prompt data.", - "type": "string" - }, - "groundingConfig": { - "$ref": "GoogleCloudAiplatformV1SchemaPredictParamsGroundingConfig", - "description": "Grounding checking configuration." - }, - "maxOutputTokens": { - "description": "Value of the maximum number of tokens generated set when the dataset was saved.", - "format": "int64", - "type": "string" - }, - "promptType": { - "description": "Type of the prompt dataset.", - "type": "string" - }, - "stopSequences": { - "description": "Customized stop sequences.", - "items": { - "type": "string" - }, - "type": "array" - }, - "temperature": { - "description": "Temperature value used for sampling set when the dataset was saved. This value is used to tune the degree of randomness.", - "format": "float", - "type": "number" + "followingBatchSamplePercentage": { + "description": "The percentage of data needed to be labeled in each following batch (except the first batch).", + "format": "int32", + "type": "integer" }, - "text": { - "description": "The content of the prompt dataset.", - "type": "string" + "initialBatchSamplePercentage": { + "description": "The percentage of data needed to be labeled in the first batch.", + "format": "int32", + "type": "integer" }, - "topK": { - "description": "Top K value set when the dataset was saved. This value determines how many candidates with highest probability from the vocab would be selected for each decoding step.", - "format": "int64", + "sampleStrategy": { + "description": "Field to choose sampling strategy. Sampling strategy will decide which data should be selected for human labeling in every batch.", + "enum": [ + "SAMPLE_STRATEGY_UNSPECIFIED", + "UNCERTAINTY" + ], + "enumDescriptions": [ + "Default will be treated as UNCERTAINTY.", + "Sample the most uncertain data to label." + ], "type": "string" - }, - "topP": { - "description": "Top P value set when the dataset was saved. Given topK tokens for decoding, top candidates will be selected until the sum of their probabilities is topP.", - "format": "float", - "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTextSegment": { - "description": "The text segment inside of DataItem.", - "id": "GoogleCloudAiplatformV1SchemaTextSegment", + "GoogleCloudAiplatformV1SampledShapleyAttribution": { + "description": "An attribution method that approximates Shapley values for features that contribute to the label being predicted. A sampling strategy is used to approximate the value rather than considering all subsets of features.", + "id": "GoogleCloudAiplatformV1SampledShapleyAttribution", "properties": { - "content": { - "description": "The text content in the segment for output only.", - "type": "string" - }, - "endOffset": { - "description": "Zero-based character index of the first character past the end of the text segment (counting character from the beginning of the text). The character at the end_offset is NOT included in the text segment.", - "format": "uint64", - "type": "string" - }, - "startOffset": { - "description": "Zero-based character index of the first character of the text segment (counting characters from the beginning of the text).", - "format": "uint64", - "type": "string" + "pathCount": { + "description": "Required. The number of feature permutations to consider when approximating the Shapley values. Valid range of its value is [1, 50], inclusively.", + "format": "int32", + "type": "integer" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTextSentimentAnnotation": { - "description": "Annotation details specific to text sentiment.", - "id": "GoogleCloudAiplatformV1SchemaTextSentimentAnnotation", + "GoogleCloudAiplatformV1SamplingStrategy": { + "description": "Sampling Strategy for logging, can be for both training and prediction dataset.", + "id": "GoogleCloudAiplatformV1SamplingStrategy", "properties": { - "annotationSpecId": { - "description": "The resource Id of the AnnotationSpec that this Annotation pertains to.", - "type": "string" - }, - "displayName": { - "description": "The display name of the AnnotationSpec that this Annotation pertains to.", - "type": "string" - }, - "sentiment": { - "description": "The sentiment score for text.", - "format": "int32", - "type": "integer" - }, - "sentimentMax": { - "description": "The sentiment max score for text.", - "format": "int32", - "type": "integer" + "randomSampleConfig": { + "$ref": "GoogleCloudAiplatformV1SamplingStrategyRandomSampleConfig", + "description": "Random sample config. Will support more sampling strategies later." } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTextSentimentSavedQueryMetadata": { - "description": "The metadata of SavedQuery contains TextSentiment Annotations.", - "id": "GoogleCloudAiplatformV1SchemaTextSentimentSavedQueryMetadata", + "GoogleCloudAiplatformV1SamplingStrategyRandomSampleConfig": { + "description": "Requests are randomly selected.", + "id": "GoogleCloudAiplatformV1SamplingStrategyRandomSampleConfig", "properties": { - "sentimentMax": { - "description": "The maximum sentiment of sentiment Anntoation in this SavedQuery.", - "format": "int32", - "type": "integer" + "sampleRate": { + "description": "Sample rate (0, 1]", + "format": "double", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTimeSegment": { - "description": "A time period inside of a DataItem that has a time dimension (e.g. video).", - "id": "GoogleCloudAiplatformV1SchemaTimeSegment", + "GoogleCloudAiplatformV1SavedQuery": { + "description": "A SavedQuery is a view of the dataset. It references a subset of annotations by problem type and filters.", + "id": "GoogleCloudAiplatformV1SavedQuery", "properties": { - "endTimeOffset": { - "description": "End of the time segment (exclusive), represented as the duration since the start of the DataItem.", - "format": "google-duration", + "annotationFilter": { + "description": "Output only. Filters on the Annotations in the dataset.", + "readOnly": true, "type": "string" }, - "startTimeOffset": { - "description": "Start of the time segment (inclusive), represented as the duration since the start of the DataItem.", - "format": "google-duration", + "annotationSpecCount": { + "description": "Output only. Number of AnnotationSpecs in the context of the SavedQuery.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "createTime": { + "description": "Output only. Timestamp when this SavedQuery was created.", + "format": "google-datetime", + "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1SchemaTimeSeriesDatasetMetadata": { - "description": "The metadata of Datasets that contain time series data.", - "id": "GoogleCloudAiplatformV1SchemaTimeSeriesDatasetMetadata", - "properties": { - "inputConfig": { - "$ref": "GoogleCloudAiplatformV1SchemaTimeSeriesDatasetMetadataInputConfig" }, - "timeColumn": { - "description": "The column name of the time column that identifies time order in the time series.", + "displayName": { + "description": "Required. The user-defined name of the SavedQuery. The name can be up to 128 characters long and can consist of any UTF-8 characters.", "type": "string" }, - "timeSeriesIdentifierColumn": { - "description": "The column name of the time series identifier column that identifies the time series.", + "etag": { + "description": "Used to perform a consistent read-modify-write update. If not set, a blind \"overwrite\" update happens.", "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1SchemaTimeSeriesDatasetMetadataBigQuerySource": { - "id": "GoogleCloudAiplatformV1SchemaTimeSeriesDatasetMetadataBigQuerySource", - "properties": { - "uri": { - "description": "The URI of a BigQuery table.", + }, + "metadata": { + "description": "Some additional information about the SavedQuery.", + "type": "any" + }, + "name": { + "description": "Output only. Resource name of the SavedQuery.", + "readOnly": true, "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1SchemaTimeSeriesDatasetMetadataGcsSource": { - "id": "GoogleCloudAiplatformV1SchemaTimeSeriesDatasetMetadataGcsSource", - "properties": { - "uri": { - "description": "Cloud Storage URI of one or more files. Only CSV files are supported. The first line of the CSV file is used as the header. If there are multiple files, the header is the first line of the lexicographically first file, the other files must either contain the exact same header or omit the header.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1SchemaTimeSeriesDatasetMetadataInputConfig": { - "description": "The time series Dataset's data source. The Dataset doesn't store the data directly, but only pointer(s) to its data.", - "id": "GoogleCloudAiplatformV1SchemaTimeSeriesDatasetMetadataInputConfig", - "properties": { - "bigquerySource": { - "$ref": "GoogleCloudAiplatformV1SchemaTimeSeriesDatasetMetadataBigQuerySource" }, - "gcsSource": { - "$ref": "GoogleCloudAiplatformV1SchemaTimeSeriesDatasetMetadataGcsSource" + "problemType": { + "description": "Required. Problem type of the SavedQuery. Allowed values: * IMAGE_CLASSIFICATION_SINGLE_LABEL * IMAGE_CLASSIFICATION_MULTI_LABEL * IMAGE_BOUNDING_POLY * IMAGE_BOUNDING_BOX * TEXT_CLASSIFICATION_SINGLE_LABEL * TEXT_CLASSIFICATION_MULTI_LABEL * TEXT_EXTRACTION * TEXT_SENTIMENT * VIDEO_CLASSIFICATION * VIDEO_OBJECT_TRACKING", + "type": "string" + }, + "supportAutomlTraining": { + "description": "Output only. If the Annotations belonging to the SavedQuery can be used for AutoML training.", + "readOnly": true, + "type": "boolean" + }, + "updateTime": { + "description": "Output only. Timestamp when SavedQuery was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecasting": { - "description": "A TrainingJob that trains and uploads an AutoML Forecasting Model.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecasting", + "GoogleCloudAiplatformV1Scalar": { + "description": "One point viewable on a scalar metric plot.", + "id": "GoogleCloudAiplatformV1Scalar", "properties": { - "inputs": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputs", - "description": "The input parameters of this TrainingJob." - }, - "metadata": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingMetadata", - "description": "The metadata information." + "value": { + "description": "Value of the point at this step / timestamp.", + "format": "double", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputs": { - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputs", + "GoogleCloudAiplatformV1Schedule": { + "description": "An instance of a Schedule periodically schedules runs to make API calls based on user specified time specification and API request type.", + "id": "GoogleCloudAiplatformV1Schedule", "properties": { - "additionalExperiments": { - "description": "Additional experiment flags for the time series forcasting training.", - "items": { - "type": "string" - }, - "type": "array" - }, - "availableAtForecastColumns": { - "description": "Names of columns that are available and provided when a forecast is requested. These columns contain information for the given entity (identified by the time_series_identifier_column column) that is known at forecast. For example, predicted weather for a specific day.", - "items": { - "type": "string" - }, - "type": "array" - }, - "contextWindow": { - "description": "The amount of time into the past training and prediction data is used for model training and prediction respectively. Expressed in number of units defined by the `data_granularity` field.", - "format": "int64", - "type": "string" - }, - "dataGranularity": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsGranularity", - "description": "Expected difference in time granularity between rows in the data." + "allowQueueing": { + "description": "Optional. Whether new scheduled runs can be queued when max_concurrent_runs limit is reached. If set to true, new runs will be queued instead of skipped. Default to false.", + "type": "boolean" }, - "enableProbabilisticInference": { - "description": "If probabilistic inference is enabled, the model will fit a distribution that captures the uncertainty of a prediction. At inference time, the predictive distribution is used to make a point prediction that minimizes the optimization objective. For example, the mean of a predictive distribution is the point prediction that minimizes RMSE loss. If quantiles are specified, then the quantiles of the distribution are also returned. The optimization objective cannot be minimize-quantile-loss.", + "catchUp": { + "description": "Output only. Whether to backfill missed runs when the schedule is resumed from PAUSED state. If set to true, all missed runs will be scheduled. New runs will be scheduled after the backfill is complete. Default to false.", + "readOnly": true, "type": "boolean" }, - "exportEvaluatedDataItemsConfig": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionExportEvaluatedDataItemsConfig", - "description": "Configuration for exporting test set predictions to a BigQuery table. If this configuration is absent, then the export is not performed." + "createPipelineJobRequest": { + "$ref": "GoogleCloudAiplatformV1CreatePipelineJobRequest", + "description": "Request for PipelineService.CreatePipelineJob. CreatePipelineJobRequest.parent field is required (format: projects/{project}/locations/{location})." }, - "forecastHorizon": { - "description": "The amount of time into the future for which forecasted values for the target are returned. Expressed in number of units defined by the `data_granularity` field.", - "format": "int64", + "createTime": { + "description": "Output only. Timestamp when this Schedule was created.", + "format": "google-datetime", + "readOnly": true, "type": "string" }, - "hierarchyConfig": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionHierarchyConfig", - "description": "Configuration that defines the hierarchical relationship of time series and parameters for hierarchical forecasting strategies." - }, - "holidayRegions": { - "description": "The geographical region based on which the holiday effect is applied in modeling by adding holiday categorical array feature that include all holidays matching the date. This option only allowed when data_granularity is day. By default, holiday effect modeling is disabled. To turn it on, specify the holiday region using this option.", - "items": { - "type": "string" - }, - "type": "array" + "cron": { + "description": "Cron schedule (https://en.wikipedia.org/wiki/Cron) to launch scheduled runs. To explicitly set a timezone to the cron tab, apply a prefix in the cron tab: \"CRON_TZ=${IANA_TIME_ZONE}\" or \"TZ=${IANA_TIME_ZONE}\". The ${IANA_TIME_ZONE} may only be a valid string from IANA time zone database. For example, \"CRON_TZ=America/New_York 1 * * * *\", or \"TZ=America/New_York 1 * * * *\".", + "type": "string" }, - "optimizationObjective": { - "description": "Objective function the model is optimizing towards. The training process creates a model that optimizes the value of the objective function over the validation set. The supported optimization objectives: * \"minimize-rmse\" (default) - Minimize root-mean-squared error (RMSE). * \"minimize-mae\" - Minimize mean-absolute error (MAE). * \"minimize-rmsle\" - Minimize root-mean-squared log error (RMSLE). * \"minimize-rmspe\" - Minimize root-mean-squared percentage error (RMSPE). * \"minimize-wape-mae\" - Minimize the combination of weighted absolute percentage error (WAPE) and mean-absolute-error (MAE). * \"minimize-quantile-loss\" - Minimize the quantile loss at the quantiles defined in `quantiles`. * \"minimize-mape\" - Minimize the mean absolute percentage error.", + "displayName": { + "description": "Required. User provided name of the Schedule. The name can be up to 128 characters long and can consist of any UTF-8 characters.", "type": "string" }, - "quantiles": { - "description": "Quantiles to use for minimize-quantile-loss `optimization_objective`, or for probabilistic inference. Up to 5 quantiles are allowed of values between 0 and 1, exclusive. Required if the value of optimization_objective is minimize-quantile-loss. Represents the percent quantiles to use for that objective. Quantiles must be unique.", - "items": { - "format": "double", - "type": "number" - }, - "type": "array" + "endTime": { + "description": "Optional. Timestamp after which no new runs can be scheduled. If specified, The schedule will be completed when either end_time is reached or when scheduled_run_count >= max_run_count. If not specified, new runs will keep getting scheduled until this Schedule is paused or deleted. Already scheduled runs will be allowed to complete. Unset if not specified.", + "format": "google-datetime", + "type": "string" }, - "targetColumn": { - "description": "The name of the column that the Model is to predict values for. This column must be unavailable at forecast.", + "lastPauseTime": { + "description": "Output only. Timestamp when this Schedule was last paused. Unset if never paused.", + "format": "google-datetime", + "readOnly": true, "type": "string" }, - "timeColumn": { - "description": "The name of the column that identifies time order in the time series. This column must be available at forecast.", + "lastResumeTime": { + "description": "Output only. Timestamp when this Schedule was last resumed. Unset if never resumed from pause.", + "format": "google-datetime", + "readOnly": true, "type": "string" }, - "timeSeriesAttributeColumns": { - "description": "Column names that should be used as attribute columns. The value of these columns does not vary as a function of time. For example, store ID or item color.", - "items": { - "type": "string" - }, - "type": "array" + "lastScheduledRunResponse": { + "$ref": "GoogleCloudAiplatformV1ScheduleRunResponse", + "description": "Output only. Response of the last scheduled run. This is the response for starting the scheduled requests and not the execution of the operations/jobs created by the requests (if applicable). Unset if no run has been scheduled yet.", + "readOnly": true }, - "timeSeriesIdentifierColumn": { - "description": "The name of the column that identifies the time series.", + "maxConcurrentRunCount": { + "description": "Required. Maximum number of runs that can be started concurrently for this Schedule. This is the limit for starting the scheduled requests and not the execution of the operations/jobs created by the requests (if applicable).", + "format": "int64", "type": "string" }, - "trainBudgetMilliNodeHours": { - "description": "Required. The train budget of creating this model, expressed in milli node hours i.e. 1,000 value in this field means 1 node hour. The training cost of the model will not exceed this budget. The final cost will be attempted to be close to the budget, though may end up being (even) noticeably smaller - at the backend's discretion. This especially may happen when further model training ceases to provide any improvements. If the budget is set to a value known to be insufficient to train a model for the given dataset, the training won't be attempted and will error. The train budget must be between 1,000 and 72,000 milli node hours, inclusive.", + "maxRunCount": { + "description": "Optional. Maximum run count of the schedule. If specified, The schedule will be completed when either started_run_count >= max_run_count or when end_time is reached. If not specified, new runs will keep getting scheduled until this Schedule is paused or deleted. Already scheduled runs will be allowed to complete. Unset if not specified.", "format": "int64", "type": "string" }, - "transformations": { - "description": "Each transformation will apply transform function to given input column. And the result will be used for training. When creating transformation for BigQuery Struct column, the column should be flattened using \".\" as the delimiter.", - "items": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformation" - }, - "type": "array" + "name": { + "description": "Immutable. The resource name of the Schedule.", + "type": "string" }, - "unavailableAtForecastColumns": { - "description": "Names of columns that are unavailable when a forecast is requested. This column contains information for the given entity (identified by the time_series_identifier_column) that is unknown before the forecast For example, actual weather on a given day.", - "items": { - "type": "string" - }, - "type": "array" + "nextRunTime": { + "description": "Output only. Timestamp when this Schedule should schedule the next run. Having a next_run_time in the past means the runs are being started behind schedule.", + "format": "google-datetime", + "readOnly": true, + "type": "string" }, - "validationOptions": { - "description": "Validation options for the data validation component. The available options are: * \"fail-pipeline\" - default, will validate against the validation and fail the pipeline if it fails. * \"ignore-validation\" - ignore the results of the validation and continue", + "startTime": { + "description": "Optional. Timestamp after which the first run can be scheduled. Default to Schedule create time if not specified.", + "format": "google-datetime", "type": "string" }, - "weightColumn": { - "description": "Column name that should be used as the weight column. Higher values in this column give more importance to the row during model training. The column must have numeric values between 0 and 10000 inclusively; 0 means the row is ignored for training. If weight column field is not set, then all rows are assumed to have equal weight of 1.", + "startedRunCount": { + "description": "Output only. The number of runs started by this schedule.", + "format": "int64", + "readOnly": true, "type": "string" }, - "windowConfig": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionWindowConfig", - "description": "Config containing strategy for generating sliding windows." + "state": { + "description": "Output only. The state of this Schedule.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "PAUSED", + "COMPLETED" + ], + "enumDescriptions": [ + "Unspecified.", + "The Schedule is active. Runs are being scheduled on the user-specified timespec.", + "The schedule is paused. No new runs will be created until the schedule is resumed. Already started runs will be allowed to complete.", + "The Schedule is completed. No new runs will be scheduled. Already started runs will be allowed to complete. Schedules in completed state cannot be paused or resumed." + ], + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. Timestamp when this Schedule was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsGranularity": { - "description": "A duration of time expressed in time granularity units.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsGranularity", + "GoogleCloudAiplatformV1ScheduleRunResponse": { + "description": "Status of a scheduled run.", + "id": "GoogleCloudAiplatformV1ScheduleRunResponse", "properties": { - "quantity": { - "description": "The number of granularity_units between data points in the training data. If `granularity_unit` is `minute`, can be 1, 5, 10, 15, or 30. For all other values of `granularity_unit`, must be 1.", - "format": "int64", + "runResponse": { + "description": "The response of the scheduled run.", "type": "string" }, - "unit": { - "description": "The time granularity unit of this time period. The supported units are: * \"minute\" * \"hour\" * \"day\" * \"week\" * \"month\" * \"year\"", + "scheduledRunTime": { + "description": "The scheduled run time based on the user-specified schedule.", + "format": "google-datetime", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformation": { - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformation", + "GoogleCloudAiplatformV1Scheduling": { + "description": "All parameters related to queuing and scheduling of custom jobs.", + "id": "GoogleCloudAiplatformV1Scheduling", "properties": { - "auto": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformationAutoTransformation" - }, - "categorical": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformationCategoricalTransformation" - }, - "numeric": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformationNumericTransformation" + "disableRetries": { + "description": "Optional. Indicates if the job should retry for internal errors after the job starts running. If true, overrides `Scheduling.restart_job_on_worker_restart` to false.", + "type": "boolean" }, - "text": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformationTextTransformation" + "restartJobOnWorkerRestart": { + "description": "Restarts the entire CustomJob if a worker gets restarted. This feature can be used by distributed training jobs that are not resilient to workers leaving and joining a job.", + "type": "boolean" }, - "timestamp": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformationTimestampTransformation" + "timeout": { + "description": "The maximum job running time. The default is 7 days.", + "format": "google-duration", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformationAutoTransformation": { - "description": "Training pipeline will infer the proper transformation based on the statistic of dataset.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformationAutoTransformation", + "GoogleCloudAiplatformV1Schema": { + "description": "Schema is used to define the format of input/output data. Represents a select subset of an [OpenAPI 3.0 schema object](https://spec.openapis.org/oas/v3.0.3#schema). More fields may be added in the future as needed.", + "id": "GoogleCloudAiplatformV1Schema", "properties": { - "columnName": { + "description": { + "description": "Optional. The description of the data.", + "type": "string" + }, + "enum": { + "description": "Optional. Possible values of the element of Type.STRING with enum format. For example we can define an Enum Direction as : {type:STRING, format:enum, enum:[\"EAST\", NORTH\", \"SOUTH\", \"WEST\"]}", + "items": { + "type": "string" + }, + "type": "array" + }, + "example": { + "description": "Optional. Example of the object. Will only populated when the object is the root.", + "type": "any" + }, + "format": { + "description": "Optional. The format of the data. Supported formats: for NUMBER type: float, double for INTEGER type: int32, int64", + "type": "string" + }, + "items": { + "$ref": "GoogleCloudAiplatformV1Schema", + "description": "Optional. Schema of the elements of Type.ARRAY." + }, + "nullable": { + "description": "Optional. Indicates if the value may be null.", + "type": "boolean" + }, + "properties": { + "additionalProperties": { + "$ref": "GoogleCloudAiplatformV1Schema" + }, + "description": "Optional. Properties of Type.OBJECT.", + "type": "object" + }, + "required": { + "description": "Optional. Required properties of Type.OBJECT.", + "items": { + "type": "string" + }, + "type": "array" + }, + "type": { + "description": "Optional. The type of the data.", + "enum": [ + "TYPE_UNSPECIFIED", + "STRING", + "NUMBER", + "INTEGER", + "BOOLEAN", + "ARRAY", + "OBJECT" + ], + "enumDescriptions": [ + "Not specified, should not be used.", + "OpenAPI string type", + "OpenAPI number type", + "OpenAPI integer type", + "OpenAPI boolean type", + "OpenAPI array type", + "OpenAPI object type" + ], "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformationCategoricalTransformation": { - "description": "Training pipeline will perform following transformation functions. * The categorical string as is--no change to case, punctuation, spelling, tense, and so on. * Convert the category name to a dictionary lookup index and generate an embedding for each index. * Categories that appear less than 5 times in the training dataset are treated as the \"unknown\" category. The \"unknown\" category gets its own special lookup index and resulting embedding.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformationCategoricalTransformation", + "GoogleCloudAiplatformV1SchemaAnnotationSpecColor": { + "description": "An entry of mapping between color and AnnotationSpec. The mapping is used in segmentation mask.", + "id": "GoogleCloudAiplatformV1SchemaAnnotationSpecColor", "properties": { - "columnName": { + "color": { + "$ref": "GoogleTypeColor", + "description": "The color of the AnnotationSpec in a segmentation mask." + }, + "displayName": { + "description": "The display name of the AnnotationSpec represented by the color in the segmentation mask.", + "type": "string" + }, + "id": { + "description": "The ID of the AnnotationSpec represented by the color in the segmentation mask.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformationNumericTransformation": { - "description": "Training pipeline will perform following transformation functions. * The value converted to float32. * The z_score of the value. * log(value+1) when the value is greater than or equal to 0. Otherwise, this transformation is not applied and the value is considered a missing value. * z_score of log(value+1) when the value is greater than or equal to 0. Otherwise, this transformation is not applied and the value is considered a missing value. * A boolean value that indicates whether the value is valid.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformationNumericTransformation", + "GoogleCloudAiplatformV1SchemaImageBoundingBoxAnnotation": { + "description": "Annotation details specific to image object detection.", + "id": "GoogleCloudAiplatformV1SchemaImageBoundingBoxAnnotation", "properties": { - "columnName": { + "annotationSpecId": { + "description": "The resource Id of the AnnotationSpec that this Annotation pertains to.", "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformationTextTransformation": { - "description": "Training pipeline will perform following transformation functions. * The text as is--no change to case, punctuation, spelling, tense, and so on. * Convert the category name to a dictionary lookup index and generate an embedding for each index.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformationTextTransformation", - "properties": { - "columnName": { + }, + "displayName": { + "description": "The display name of the AnnotationSpec that this Annotation pertains to.", "type": "string" + }, + "xMax": { + "description": "The rightmost coordinate of the bounding box.", + "format": "double", + "type": "number" + }, + "xMin": { + "description": "The leftmost coordinate of the bounding box.", + "format": "double", + "type": "number" + }, + "yMax": { + "description": "The bottommost coordinate of the bounding box.", + "format": "double", + "type": "number" + }, + "yMin": { + "description": "The topmost coordinate of the bounding box.", + "format": "double", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformationTimestampTransformation": { - "description": "Training pipeline will perform following transformation functions. * Apply the transformation functions for Numerical columns. * Determine the year, month, day,and weekday. Treat each value from the timestamp as a Categorical column. * Invalid numerical values (for example, values that fall outside of a typical timestamp range, or are extreme values) receive no special treatment and are not removed.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformationTimestampTransformation", + "GoogleCloudAiplatformV1SchemaImageClassificationAnnotation": { + "description": "Annotation details specific to image classification.", + "id": "GoogleCloudAiplatformV1SchemaImageClassificationAnnotation", "properties": { - "columnName": { + "annotationSpecId": { + "description": "The resource Id of the AnnotationSpec that this Annotation pertains to.", "type": "string" }, - "timeFormat": { - "description": "The format in which that time field is expressed. The time_format must either be one of: * `unix-seconds` * `unix-milliseconds` * `unix-microseconds` * `unix-nanoseconds` (for respectively number of seconds, milliseconds, microseconds and nanoseconds since start of the Unix epoch); or be written in `strftime` syntax. If time_format is not set, then the default format is RFC 3339 `date-time` format, where `time-offset` = `\"Z\"` (e.g. 1985-04-12T23:20:50.52Z)", + "displayName": { + "description": "The display name of the AnnotationSpec that this Annotation pertains to.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingMetadata": { - "description": "Model metadata specific to AutoML Forecasting.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingMetadata", + "GoogleCloudAiplatformV1SchemaImageDataItem": { + "description": "Payload of Image DataItem.", + "id": "GoogleCloudAiplatformV1SchemaImageDataItem", "properties": { - "evaluatedDataItemsBigqueryUri": { - "description": "BigQuery destination uri for exported evaluated examples.", + "gcsUri": { + "description": "Required. Google Cloud Storage URI points to the original image in user's bucket. The image is up to 30MB in size.", "type": "string" }, - "trainCostMilliNodeHours": { - "description": "Output only. The actual training cost of the model, expressed in milli node hours, i.e. 1,000 value in this field means 1 node hour. Guaranteed to not exceed the train budget.", - "format": "int64", + "mimeType": { + "description": "Output only. The mime type of the content of the image. Only the images in below listed mime types are supported. - image/jpeg - image/gif - image/png - image/webp - image/bmp - image/tiff - image/vnd.microsoft.icon", + "readOnly": true, "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageClassification": { - "description": "A TrainingJob that trains and uploads an AutoML Image Classification Model.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageClassification", - "properties": { - "inputs": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageClassificationInputs", - "description": "The input parameters of this TrainingJob." - }, - "metadata": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageClassificationMetadata", - "description": "The metadata information." - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageClassificationInputs": { - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageClassificationInputs", + "GoogleCloudAiplatformV1SchemaImageDatasetMetadata": { + "description": "The metadata of Datasets that contain Image DataItems.", + "id": "GoogleCloudAiplatformV1SchemaImageDatasetMetadata", "properties": { - "baseModelId": { - "description": "The ID of the `base` model. If it is specified, the new model will be trained based on the `base` model. Otherwise, the new model will be trained from scratch. The `base` model must be in the same Project and Location as the new Model to train, and have the same modelType.", - "type": "string" - }, - "budgetMilliNodeHours": { - "description": "The training budget of creating this model, expressed in milli node hours i.e. 1,000 value in this field means 1 node hour. The actual metadata.costMilliNodeHours will be equal or less than this value. If further model training ceases to provide any improvements, it will stop without using the full budget and the metadata.successfulStopReason will be `model-converged`. Note, node_hour = actual_hour * number_of_nodes_involved. For modelType `cloud`(default), the budget must be between 8,000 and 800,000 milli node hours, inclusive. The default value is 192,000 which represents one day in wall time, considering 8 nodes are used. For model types `mobile-tf-low-latency-1`, `mobile-tf-versatile-1`, `mobile-tf-high-accuracy-1`, the training budget must be between 1,000 and 100,000 milli node hours, inclusive. The default value is 24,000 which represents one day in wall time on a single node that is used.", - "format": "int64", - "type": "string" - }, - "disableEarlyStopping": { - "description": "Use the entire training budget. This disables the early stopping feature. When false the early stopping feature is enabled, which means that AutoML Image Classification might stop training before the entire training budget has been used.", - "type": "boolean" - }, - "modelType": { - "enum": [ - "MODEL_TYPE_UNSPECIFIED", - "CLOUD", - "CLOUD_1", - "MOBILE_TF_LOW_LATENCY_1", - "MOBILE_TF_VERSATILE_1", - "MOBILE_TF_HIGH_ACCURACY_1", - "EFFICIENTNET", - "MAXVIT", - "VIT", - "COCA" - ], - "enumDescriptions": [ - "Should not be set.", - "A Model best tailored to be used within Google Cloud, and which cannot be exported. Default.", - "A model type best tailored to be used within Google Cloud, which cannot be exported externally. Compared to the CLOUD model above, it is expected to have higher prediction accuracy.", - "A model that, in addition to being available within Google Cloud, can also be exported (see ModelService.ExportModel) as TensorFlow or Core ML model and used on a mobile or edge device afterwards. Expected to have low latency, but may have lower prediction quality than other mobile models.", - "A model that, in addition to being available within Google Cloud, can also be exported (see ModelService.ExportModel) as TensorFlow or Core ML model and used on a mobile or edge device with afterwards.", - "A model that, in addition to being available within Google Cloud, can also be exported (see ModelService.ExportModel) as TensorFlow or Core ML model and used on a mobile or edge device afterwards. Expected to have a higher latency, but should also have a higher prediction quality than other mobile models.", - "EfficientNet model for Model Garden training with customizable hyperparameters. Best tailored to be used within Google Cloud, and cannot be exported externally.", - "MaxViT model for Model Garden training with customizable hyperparameters. Best tailored to be used within Google Cloud, and cannot be exported externally.", - "ViT model for Model Garden training with customizable hyperparameters. Best tailored to be used within Google Cloud, and cannot be exported externally.", - "CoCa model for Model Garden training with customizable hyperparameters. Best tailored to be used within Google Cloud, and cannot be exported externally." - ], + "dataItemSchemaUri": { + "description": "Points to a YAML file stored on Google Cloud Storage describing payload of the Image DataItems that belong to this Dataset.", "type": "string" }, - "multiLabel": { - "description": "If false, a single-label (multi-class) Model will be trained (i.e. assuming that for each image just up to one annotation may be applicable). If true, a multi-label Model will be trained (i.e. assuming that for each image multiple annotations may be applicable).", - "type": "boolean" - }, - "tunableParameter": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutomlImageTrainingTunableParameter", - "description": "Trainer type for Vision TrainRequest." - }, - "uptrainBaseModelId": { - "description": "The ID of `base` model for upTraining. If it is specified, the new model will be upTrained based on the `base` model for upTraining. Otherwise, the new model will be trained from scratch. The `base` model for upTraining must be in the same Project and Location as the new Model to train, and have the same modelType.", + "gcsBucket": { + "description": "Google Cloud Storage Bucket name that contains the blob data of this Dataset.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageClassificationMetadata": { - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageClassificationMetadata", + "GoogleCloudAiplatformV1SchemaImageSegmentationAnnotation": { + "description": "Annotation details specific to image segmentation.", + "id": "GoogleCloudAiplatformV1SchemaImageSegmentationAnnotation", "properties": { - "costMilliNodeHours": { - "description": "The actual training cost of creating this model, expressed in milli node hours, i.e. 1,000 value in this field means 1 node hour. Guaranteed to not exceed inputs.budgetMilliNodeHours.", - "format": "int64", - "type": "string" + "maskAnnotation": { + "$ref": "GoogleCloudAiplatformV1SchemaImageSegmentationAnnotationMaskAnnotation", + "description": "Mask based segmentation annotation. Only one mask annotation can exist for one image." }, - "successfulStopReason": { - "description": "For successful job completions, this is the reason why the job has finished.", - "enum": [ - "SUCCESSFUL_STOP_REASON_UNSPECIFIED", - "BUDGET_REACHED", - "MODEL_CONVERGED" - ], - "enumDescriptions": [ - "Should not be set.", - "The inputs.budgetMilliNodeHours had been reached.", - "Further training of the Model ceased to increase its quality, since it already has converged." - ], - "type": "string" + "polygonAnnotation": { + "$ref": "GoogleCloudAiplatformV1SchemaImageSegmentationAnnotationPolygonAnnotation", + "description": "Polygon annotation." + }, + "polylineAnnotation": { + "$ref": "GoogleCloudAiplatformV1SchemaImageSegmentationAnnotationPolylineAnnotation", + "description": "Polyline annotation." } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageObjectDetection": { - "description": "A TrainingJob that trains and uploads an AutoML Image Object Detection Model.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageObjectDetection", + "GoogleCloudAiplatformV1SchemaImageSegmentationAnnotationMaskAnnotation": { + "description": "The mask based segmentation annotation.", + "id": "GoogleCloudAiplatformV1SchemaImageSegmentationAnnotationMaskAnnotation", "properties": { - "inputs": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageObjectDetectionInputs", - "description": "The input parameters of this TrainingJob." + "annotationSpecColors": { + "description": "The mapping between color and AnnotationSpec for this Annotation.", + "items": { + "$ref": "GoogleCloudAiplatformV1SchemaAnnotationSpecColor" + }, + "type": "array" }, - "metadata": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageObjectDetectionMetadata", - "description": "The metadata information" + "maskGcsUri": { + "description": "Google Cloud Storage URI that points to the mask image. The image must be in PNG format. It must have the same size as the DataItem's image. Each pixel in the image mask represents the AnnotationSpec which the pixel in the image DataItem belong to. Each color is mapped to one AnnotationSpec based on annotation_spec_colors.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageObjectDetectionInputs": { - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageObjectDetectionInputs", + "GoogleCloudAiplatformV1SchemaImageSegmentationAnnotationPolygonAnnotation": { + "description": "Represents a polygon in image.", + "id": "GoogleCloudAiplatformV1SchemaImageSegmentationAnnotationPolygonAnnotation", "properties": { - "budgetMilliNodeHours": { - "description": "The training budget of creating this model, expressed in milli node hours i.e. 1,000 value in this field means 1 node hour. The actual metadata.costMilliNodeHours will be equal or less than this value. If further model training ceases to provide any improvements, it will stop without using the full budget and the metadata.successfulStopReason will be `model-converged`. Note, node_hour = actual_hour * number_of_nodes_involved. For modelType `cloud`(default), the budget must be between 20,000 and 900,000 milli node hours, inclusive. The default value is 216,000 which represents one day in wall time, considering 9 nodes are used. For model types `mobile-tf-low-latency-1`, `mobile-tf-versatile-1`, `mobile-tf-high-accuracy-1` the training budget must be between 1,000 and 100,000 milli node hours, inclusive. The default value is 24,000 which represents one day in wall time on a single node that is used.", - "format": "int64", + "annotationSpecId": { + "description": "The resource Id of the AnnotationSpec that this Annotation pertains to.", "type": "string" }, - "disableEarlyStopping": { - "description": "Use the entire training budget. This disables the early stopping feature. When false the early stopping feature is enabled, which means that AutoML Image Object Detection might stop training before the entire training budget has been used.", - "type": "boolean" - }, - "modelType": { - "enum": [ - "MODEL_TYPE_UNSPECIFIED", - "CLOUD_HIGH_ACCURACY_1", - "CLOUD_LOW_LATENCY_1", - "CLOUD_1", - "MOBILE_TF_LOW_LATENCY_1", - "MOBILE_TF_VERSATILE_1", - "MOBILE_TF_HIGH_ACCURACY_1", - "CLOUD_STREAMING_1", - "SPINENET", - "YOLO" - ], - "enumDescriptions": [ - "Should not be set.", - "A model best tailored to be used within Google Cloud, and which cannot be exported. Expected to have a higher latency, but should also have a higher prediction quality than other cloud models.", - "A model best tailored to be used within Google Cloud, and which cannot be exported. Expected to have a low latency, but may have lower prediction quality than other cloud models.", - "A model best tailored to be used within Google Cloud, and which cannot be exported. Compared to the CLOUD_HIGH_ACCURACY_1 and CLOUD_LOW_LATENCY_1 models above, it is expected to have higher prediction quality and lower latency.", - "A model that, in addition to being available within Google Cloud can also be exported (see ModelService.ExportModel) and used on a mobile or edge device with TensorFlow afterwards. Expected to have low latency, but may have lower prediction quality than other mobile models.", - "A model that, in addition to being available within Google Cloud can also be exported (see ModelService.ExportModel) and used on a mobile or edge device with TensorFlow afterwards.", - "A model that, in addition to being available within Google Cloud, can also be exported (see ModelService.ExportModel) and used on a mobile or edge device with TensorFlow afterwards. Expected to have a higher latency, but should also have a higher prediction quality than other mobile models.", - "A model best tailored to be used within Google Cloud, and which cannot be exported. Expected to best support predictions in streaming with lower latency and lower prediction quality than other cloud models.", - "SpineNet for Model Garden training with customizable hyperparameters. Best tailored to be used within Google Cloud, and cannot be exported externally.", - "YOLO for Model Garden training with customizable hyperparameters. Best tailored to be used within Google Cloud, and cannot be exported externally." - ], + "displayName": { + "description": "The display name of the AnnotationSpec that this Annotation pertains to.", "type": "string" }, - "tunableParameter": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutomlImageTrainingTunableParameter", - "description": "Trainer type for Vision TrainRequest." - }, - "uptrainBaseModelId": { - "description": "The ID of `base` model for upTraining. If it is specified, the new model will be upTrained based on the `base` model for upTraining. Otherwise, the new model will be trained from scratch. The `base` model for upTraining must be in the same Project and Location as the new Model to train, and have the same modelType.", - "type": "string" + "vertexes": { + "description": "The vertexes are connected one by one and the last vertex is connected to the first one to represent a polygon.", + "items": { + "$ref": "GoogleCloudAiplatformV1SchemaVertex" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageObjectDetectionMetadata": { - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageObjectDetectionMetadata", + "GoogleCloudAiplatformV1SchemaImageSegmentationAnnotationPolylineAnnotation": { + "description": "Represents a polyline in image.", + "id": "GoogleCloudAiplatformV1SchemaImageSegmentationAnnotationPolylineAnnotation", "properties": { - "costMilliNodeHours": { - "description": "The actual training cost of creating this model, expressed in milli node hours, i.e. 1,000 value in this field means 1 node hour. Guaranteed to not exceed inputs.budgetMilliNodeHours.", - "format": "int64", + "annotationSpecId": { + "description": "The resource Id of the AnnotationSpec that this Annotation pertains to.", "type": "string" }, - "successfulStopReason": { - "description": "For successful job completions, this is the reason why the job has finished.", - "enum": [ - "SUCCESSFUL_STOP_REASON_UNSPECIFIED", - "BUDGET_REACHED", - "MODEL_CONVERGED" - ], - "enumDescriptions": [ - "Should not be set.", - "The inputs.budgetMilliNodeHours had been reached.", - "Further training of the Model ceased to increase its quality, since it already has converged." - ], + "displayName": { + "description": "The display name of the AnnotationSpec that this Annotation pertains to.", "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageSegmentation": { - "description": "A TrainingJob that trains and uploads an AutoML Image Segmentation Model.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageSegmentation", - "properties": { - "inputs": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageSegmentationInputs", - "description": "The input parameters of this TrainingJob." }, - "metadata": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageSegmentationMetadata", - "description": "The metadata information." + "vertexes": { + "description": "The vertexes are connected one by one and the last vertex in not connected to the first one.", + "items": { + "$ref": "GoogleCloudAiplatformV1SchemaVertex" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageSegmentationInputs": { - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageSegmentationInputs", + "GoogleCloudAiplatformV1SchemaModelevaluationMetricsBoundingBoxMetrics": { + "description": "Bounding box matching model metrics for a single intersection-over-union threshold and multiple label match confidence thresholds.", + "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsBoundingBoxMetrics", "properties": { - "baseModelId": { - "description": "The ID of the `base` model. If it is specified, the new model will be trained based on the `base` model. Otherwise, the new model will be trained from scratch. The `base` model must be in the same Project and Location as the new Model to train, and have the same modelType.", - "type": "string" + "confidenceMetrics": { + "description": "Metrics for each label-match confidence_threshold from 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99. Precision-recall curve is derived from them.", + "items": { + "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsBoundingBoxMetricsConfidenceMetrics" + }, + "type": "array" }, - "budgetMilliNodeHours": { - "description": "The training budget of creating this model, expressed in milli node hours i.e. 1,000 value in this field means 1 node hour. The actual metadata.costMilliNodeHours will be equal or less than this value. If further model training ceases to provide any improvements, it will stop without using the full budget and the metadata.successfulStopReason will be `model-converged`. Note, node_hour = actual_hour * number_of_nodes_involved. Or actual_wall_clock_hours = train_budget_milli_node_hours / (number_of_nodes_involved * 1000) For modelType `cloud-high-accuracy-1`(default), the budget must be between 20,000 and 2,000,000 milli node hours, inclusive. The default value is 192,000 which represents one day in wall time (1000 milli * 24 hours * 8 nodes).", - "format": "int64", - "type": "string" + "iouThreshold": { + "description": "The intersection-over-union threshold value used to compute this metrics entry.", + "format": "float", + "type": "number" }, - "modelType": { - "enum": [ - "MODEL_TYPE_UNSPECIFIED", - "CLOUD_HIGH_ACCURACY_1", - "CLOUD_LOW_ACCURACY_1", - "MOBILE_TF_LOW_LATENCY_1" - ], - "enumDescriptions": [ - "Should not be set.", - "A model to be used via prediction calls to uCAIP API. Expected to have a higher latency, but should also have a higher prediction quality than other models.", - "A model to be used via prediction calls to uCAIP API. Expected to have a lower latency but relatively lower prediction quality.", - "A model that, in addition to being available within Google Cloud, can also be exported (see ModelService.ExportModel) as TensorFlow model and used on a mobile or edge device afterwards. Expected to have low latency, but may have lower prediction quality than other mobile models." - ], - "type": "string" + "meanAveragePrecision": { + "description": "The mean average precision, most often close to `auPrc`.", + "format": "float", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageSegmentationMetadata": { - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageSegmentationMetadata", + "GoogleCloudAiplatformV1SchemaModelevaluationMetricsBoundingBoxMetricsConfidenceMetrics": { + "description": "Metrics for a single confidence threshold.", + "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsBoundingBoxMetricsConfidenceMetrics", "properties": { - "costMilliNodeHours": { - "description": "The actual training cost of creating this model, expressed in milli node hours, i.e. 1,000 value in this field means 1 node hour. Guaranteed to not exceed inputs.budgetMilliNodeHours.", - "format": "int64", - "type": "string" + "confidenceThreshold": { + "description": "The confidence threshold value used to compute the metrics.", + "format": "float", + "type": "number" }, - "successfulStopReason": { - "description": "For successful job completions, this is the reason why the job has finished.", - "enum": [ - "SUCCESSFUL_STOP_REASON_UNSPECIFIED", - "BUDGET_REACHED", - "MODEL_CONVERGED" - ], - "enumDescriptions": [ - "Should not be set.", - "The inputs.budgetMilliNodeHours had been reached.", - "Further training of the Model ceased to increase its quality, since it already has converged." - ], - "type": "string" + "f1Score": { + "description": "The harmonic mean of recall and precision.", + "format": "float", + "type": "number" + }, + "precision": { + "description": "Precision under the given confidence threshold.", + "format": "float", + "type": "number" + }, + "recall": { + "description": "Recall under the given confidence threshold.", + "format": "float", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTables": { - "description": "A TrainingJob that trains and uploads an AutoML Tables Model.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTables", + "GoogleCloudAiplatformV1SchemaModelevaluationMetricsClassificationEvaluationMetrics": { + "description": "Metrics for classification evaluation results.", + "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsClassificationEvaluationMetrics", "properties": { - "inputs": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputs", - "description": "The input parameters of this TrainingJob." + "auPrc": { + "description": "The Area Under Precision-Recall Curve metric. Micro-averaged for the overall evaluation.", + "format": "float", + "type": "number" }, - "metadata": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesMetadata", - "description": "The metadata information." + "auRoc": { + "description": "The Area Under Receiver Operating Characteristic curve metric. Micro-averaged for the overall evaluation.", + "format": "float", + "type": "number" + }, + "confidenceMetrics": { + "description": "Metrics for each `confidenceThreshold` in 0.00,0.05,0.10,...,0.95,0.96,0.97,0.98,0.99 and `positionThreshold` = INT32_MAX_VALUE. ROC and precision-recall curves, and other aggregated metrics are derived from them. The confidence metrics entries may also be supplied for additional values of `positionThreshold`, but from these no aggregated metrics are computed.", + "items": { + "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsClassificationEvaluationMetricsConfidenceMetrics" + }, + "type": "array" + }, + "confusionMatrix": { + "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsConfusionMatrix", + "description": "Confusion matrix of the evaluation." + }, + "logLoss": { + "description": "The Log Loss metric.", + "format": "float", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputs": { - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputs", + "GoogleCloudAiplatformV1SchemaModelevaluationMetricsClassificationEvaluationMetricsConfidenceMetrics": { + "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsClassificationEvaluationMetricsConfidenceMetrics", "properties": { - "additionalExperiments": { - "description": "Additional experiment flags for the Tables training pipeline.", - "items": { - "type": "string" - }, - "type": "array" + "confidenceThreshold": { + "description": "Metrics are computed with an assumption that the Model never returns predictions with score lower than this value.", + "format": "float", + "type": "number" }, - "disableEarlyStopping": { - "description": "Use the entire training budget. This disables the early stopping feature. By default, the early stopping feature is enabled, which means that AutoML Tables might stop training before the entire training budget has been used.", - "type": "boolean" + "confusionMatrix": { + "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsConfusionMatrix", + "description": "Confusion matrix of the evaluation for this confidence_threshold." }, - "exportEvaluatedDataItemsConfig": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionExportEvaluatedDataItemsConfig", - "description": "Configuration for exporting test set predictions to a BigQuery table. If this configuration is absent, then the export is not performed." + "f1Score": { + "description": "The harmonic mean of recall and precision. For summary metrics, it computes the micro-averaged F1 score.", + "format": "float", + "type": "number" }, - "optimizationObjective": { - "description": "Objective function the model is optimizing towards. The training process creates a model that maximizes/minimizes the value of the objective function over the validation set. The supported optimization objectives depend on the prediction type. If the field is not set, a default objective function is used. classification (binary): \"maximize-au-roc\" (default) - Maximize the area under the receiver operating characteristic (ROC) curve. \"minimize-log-loss\" - Minimize log loss. \"maximize-au-prc\" - Maximize the area under the precision-recall curve. \"maximize-precision-at-recall\" - Maximize precision for a specified recall value. \"maximize-recall-at-precision\" - Maximize recall for a specified precision value. classification (multi-class): \"minimize-log-loss\" (default) - Minimize log loss. regression: \"minimize-rmse\" (default) - Minimize root-mean-squared error (RMSE). \"minimize-mae\" - Minimize mean-absolute error (MAE). \"minimize-rmsle\" - Minimize root-mean-squared log error (RMSLE).", - "type": "string" + "f1ScoreAt1": { + "description": "The harmonic mean of recallAt1 and precisionAt1.", + "format": "float", + "type": "number" }, - "optimizationObjectivePrecisionValue": { - "description": "Required when optimization_objective is \"maximize-recall-at-precision\". Must be between 0 and 1, inclusive.", + "f1ScoreMacro": { + "description": "Macro-averaged F1 Score.", "format": "float", "type": "number" }, - "optimizationObjectiveRecallValue": { - "description": "Required when optimization_objective is \"maximize-precision-at-recall\". Must be between 0 and 1, inclusive.", + "f1ScoreMicro": { + "description": "Micro-averaged F1 Score.", "format": "float", "type": "number" }, - "predictionType": { - "description": "The type of prediction the Model is to produce. \"classification\" - Predict one out of multiple target values is picked for each row. \"regression\" - Predict a value based on its relation to other values. This type is available only to columns that contain semantically numeric values, i.e. integers or floating point number, even if stored as e.g. strings.", + "falseNegativeCount": { + "description": "The number of ground truth labels that are not matched by a Model created label.", + "format": "int64", "type": "string" }, - "targetColumn": { - "description": "The column name of the target column that the model is to predict.", + "falsePositiveCount": { + "description": "The number of Model created labels that do not match a ground truth label.", + "format": "int64", "type": "string" }, - "trainBudgetMilliNodeHours": { - "description": "Required. The train budget of creating this model, expressed in milli node hours i.e. 1,000 value in this field means 1 node hour. The training cost of the model will not exceed this budget. The final cost will be attempted to be close to the budget, though may end up being (even) noticeably smaller - at the backend's discretion. This especially may happen when further model training ceases to provide any improvements. If the budget is set to a value known to be insufficient to train a model for the given dataset, the training won't be attempted and will error. The train budget must be between 1,000 and 72,000 milli node hours, inclusive.", + "falsePositiveRate": { + "description": "False Positive Rate for the given confidence threshold.", + "format": "float", + "type": "number" + }, + "falsePositiveRateAt1": { + "description": "The False Positive Rate when only considering the label that has the highest prediction score and not below the confidence threshold for each DataItem.", + "format": "float", + "type": "number" + }, + "maxPredictions": { + "description": "Metrics are computed with an assumption that the Model always returns at most this many predictions (ordered by their score, descendingly), but they all still need to meet the `confidenceThreshold`.", + "format": "int32", + "type": "integer" + }, + "precision": { + "description": "Precision for the given confidence threshold.", + "format": "float", + "type": "number" + }, + "precisionAt1": { + "description": "The precision when only considering the label that has the highest prediction score and not below the confidence threshold for each DataItem.", + "format": "float", + "type": "number" + }, + "recall": { + "description": "Recall (True Positive Rate) for the given confidence threshold.", + "format": "float", + "type": "number" + }, + "recallAt1": { + "description": "The Recall (True Positive Rate) when only considering the label that has the highest prediction score and not below the confidence threshold for each DataItem.", + "format": "float", + "type": "number" + }, + "trueNegativeCount": { + "description": "The number of labels that were not created by the Model, but if they would, they would not match a ground truth label.", "format": "int64", "type": "string" }, - "transformations": { - "description": "Each transformation will apply transform function to given input column. And the result will be used for training. When creating transformation for BigQuery Struct column, the column should be flattened using \".\" as the delimiter.", - "items": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformation" - }, - "type": "array" - }, - "weightColumnName": { - "description": "Column name that should be used as the weight column. Higher values in this column give more importance to the row during model training. The column must have numeric values between 0 and 10000 inclusively; 0 means the row is ignored for training. If weight column field is not set, then all rows are assumed to have equal weight of 1.", + "truePositiveCount": { + "description": "The number of Model created labels that match a ground truth label.", + "format": "int64", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformation": { - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformation", + "GoogleCloudAiplatformV1SchemaModelevaluationMetricsConfusionMatrix": { + "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsConfusionMatrix", "properties": { - "auto": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationAutoTransformation" - }, - "categorical": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationCategoricalTransformation" - }, - "numeric": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationNumericTransformation" - }, - "repeatedCategorical": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationCategoricalArrayTransformation" - }, - "repeatedNumeric": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationNumericArrayTransformation" - }, - "repeatedText": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationTextArrayTransformation" - }, - "text": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationTextTransformation" + "annotationSpecs": { + "description": "AnnotationSpecs used in the confusion matrix. For AutoML Text Extraction, a special negative AnnotationSpec with empty `id` and `displayName` of \"NULL\" will be added as the last element.", + "items": { + "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsConfusionMatrixAnnotationSpecRef" + }, + "type": "array" }, - "timestamp": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationTimestampTransformation" + "rows": { + "description": "Rows in the confusion matrix. The number of rows is equal to the size of `annotationSpecs`. `rowsi` is the number of DataItems that have ground truth of the `annotationSpecs[i]` and are predicted as `annotationSpecs[j]` by the Model being evaluated. For Text Extraction, when `annotationSpecs[i]` is the last element in `annotationSpecs`, i.e. the special negative AnnotationSpec, `rowsi` is the number of predicted entities of `annoatationSpec[j]` that are not labeled as any of the ground truth AnnotationSpec. When annotationSpecs[j] is the special negative AnnotationSpec, `rowsi` is the number of entities have ground truth of `annotationSpec[i]` that are not predicted as an entity by the Model. The value of the last cell, i.e. `rowi` where i == j and `annotationSpec[i]` is the special negative AnnotationSpec, is always 0.", + "items": { + "items": { + "type": "any" + }, + "type": "array" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationAutoTransformation": { - "description": "Training pipeline will infer the proper transformation based on the statistic of dataset.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationAutoTransformation", + "GoogleCloudAiplatformV1SchemaModelevaluationMetricsConfusionMatrixAnnotationSpecRef": { + "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsConfusionMatrixAnnotationSpecRef", "properties": { - "columnName": { + "displayName": { + "description": "Display name of the AnnotationSpec.", + "type": "string" + }, + "id": { + "description": "ID of the AnnotationSpec.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationCategoricalArrayTransformation": { - "description": "Treats the column as categorical array and performs following transformation functions. * For each element in the array, convert the category name to a dictionary lookup index and generate an embedding for each index. Combine the embedding of all elements into a single embedding using the mean. * Empty arrays treated as an embedding of zeroes.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationCategoricalArrayTransformation", + "GoogleCloudAiplatformV1SchemaModelevaluationMetricsForecastingEvaluationMetrics": { + "description": "Metrics for forecasting evaluation results.", + "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsForecastingEvaluationMetrics", "properties": { - "columnName": { - "type": "string" + "meanAbsoluteError": { + "description": "Mean Absolute Error (MAE).", + "format": "float", + "type": "number" + }, + "meanAbsolutePercentageError": { + "description": "Mean absolute percentage error. Infinity when there are zeros in the ground truth.", + "format": "float", + "type": "number" + }, + "quantileMetrics": { + "description": "The quantile metrics entries for each quantile.", + "items": { + "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsForecastingEvaluationMetricsQuantileMetricsEntry" + }, + "type": "array" + }, + "rSquared": { + "description": "Coefficient of determination as Pearson correlation coefficient. Undefined when ground truth or predictions are constant or near constant.", + "format": "float", + "type": "number" + }, + "rootMeanSquaredError": { + "description": "Root Mean Squared Error (RMSE).", + "format": "float", + "type": "number" + }, + "rootMeanSquaredLogError": { + "description": "Root mean squared log error. Undefined when there are negative ground truth values or predictions.", + "format": "float", + "type": "number" + }, + "rootMeanSquaredPercentageError": { + "description": "Root Mean Square Percentage Error. Square root of MSPE. Undefined/imaginary when MSPE is negative.", + "format": "float", + "type": "number" + }, + "weightedAbsolutePercentageError": { + "description": "Weighted Absolute Percentage Error. Does not use weights, this is just what the metric is called. Undefined if actual values sum to zero. Will be very large if actual values sum to a very small number.", + "format": "float", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationCategoricalTransformation": { - "description": "Training pipeline will perform following transformation functions. * The categorical string as is--no change to case, punctuation, spelling, tense, and so on. * Convert the category name to a dictionary lookup index and generate an embedding for each index. * Categories that appear less than 5 times in the training dataset are treated as the \"unknown\" category. The \"unknown\" category gets its own special lookup index and resulting embedding.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationCategoricalTransformation", + "GoogleCloudAiplatformV1SchemaModelevaluationMetricsForecastingEvaluationMetricsQuantileMetricsEntry": { + "description": "Entry for the Quantiles loss type optimization objective.", + "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsForecastingEvaluationMetricsQuantileMetricsEntry", "properties": { - "columnName": { - "type": "string" + "observedQuantile": { + "description": "This is a custom metric that calculates the percentage of true values that were less than the predicted value for that quantile. Only populated when optimization_objective is minimize-quantile-loss and each entry corresponds to an entry in quantiles The percent value can be used to compare with the quantile value, which is the target value.", + "format": "double", + "type": "number" + }, + "quantile": { + "description": "The quantile for this entry.", + "format": "double", + "type": "number" + }, + "scaledPinballLoss": { + "description": "The scaled pinball loss of this quantile.", + "format": "float", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationNumericArrayTransformation": { - "description": "Treats the column as numerical array and performs following transformation functions. * All transformations for Numerical types applied to the average of the all elements. * The average of empty arrays is treated as zero.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationNumericArrayTransformation", + "GoogleCloudAiplatformV1SchemaModelevaluationMetricsGeneralTextGenerationEvaluationMetrics": { + "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsGeneralTextGenerationEvaluationMetrics", "properties": { - "columnName": { - "type": "string" + "bleu": { + "description": "BLEU (bilingual evaluation understudy) scores based on sacrebleu implementation.", + "format": "float", + "type": "number" }, - "invalidValuesAllowed": { - "description": "If invalid values is allowed, the training pipeline will create a boolean feature that indicated whether the value is valid. Otherwise, the training pipeline will discard the input row from trainining data.", - "type": "boolean" + "rougeLSum": { + "description": "ROUGE-L (Longest Common Subsequence) scoring at summary level.", + "format": "float", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationNumericTransformation": { - "description": "Training pipeline will perform following transformation functions. * The value converted to float32. * The z_score of the value. * log(value+1) when the value is greater than or equal to 0. Otherwise, this transformation is not applied and the value is considered a missing value. * z_score of log(value+1) when the value is greater than or equal to 0. Otherwise, this transformation is not applied and the value is considered a missing value. * A boolean value that indicates whether the value is valid.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationNumericTransformation", + "GoogleCloudAiplatformV1SchemaModelevaluationMetricsImageObjectDetectionEvaluationMetrics": { + "description": "Metrics for image object detection evaluation results.", + "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsImageObjectDetectionEvaluationMetrics", "properties": { - "columnName": { - "type": "string" + "boundingBoxMeanAveragePrecision": { + "description": "The single metric for bounding boxes evaluation: the `meanAveragePrecision` averaged over all `boundingBoxMetricsEntries`.", + "format": "float", + "type": "number" }, - "invalidValuesAllowed": { - "description": "If invalid values is allowed, the training pipeline will create a boolean feature that indicated whether the value is valid. Otherwise, the training pipeline will discard the input row from trainining data.", - "type": "boolean" + "boundingBoxMetrics": { + "description": "The bounding boxes match metrics for each intersection-over-union threshold 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99 and each label confidence threshold 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99 pair.", + "items": { + "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsBoundingBoxMetrics" + }, + "type": "array" + }, + "evaluatedBoundingBoxCount": { + "description": "The total number of bounding boxes (i.e. summed over all images) the ground truth used to create this evaluation had.", + "format": "int32", + "type": "integer" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationTextArrayTransformation": { - "description": "Treats the column as text array and performs following transformation functions. * Concatenate all text values in the array into a single text value using a space (\" \") as a delimiter, and then treat the result as a single text value. Apply the transformations for Text columns. * Empty arrays treated as an empty text.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationTextArrayTransformation", + "GoogleCloudAiplatformV1SchemaModelevaluationMetricsImageSegmentationEvaluationMetrics": { + "description": "Metrics for image segmentation evaluation results.", + "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsImageSegmentationEvaluationMetrics", "properties": { - "columnName": { - "type": "string" + "confidenceMetricsEntries": { + "description": "Metrics for each confidenceThreshold in 0.00,0.05,0.10,...,0.95,0.96,0.97,0.98,0.99 Precision-recall curve can be derived from it.", + "items": { + "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsImageSegmentationEvaluationMetricsConfidenceMetricsEntry" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationTextTransformation": { - "description": "Training pipeline will perform following transformation functions. * The text as is--no change to case, punctuation, spelling, tense, and so on. * Tokenize text to words. Convert each words to a dictionary lookup index and generate an embedding for each index. Combine the embedding of all elements into a single embedding using the mean. * Tokenization is based on unicode script boundaries. * Missing values get their own lookup index and resulting embedding. * Stop-words receive no special treatment and are not removed.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationTextTransformation", + "GoogleCloudAiplatformV1SchemaModelevaluationMetricsImageSegmentationEvaluationMetricsConfidenceMetricsEntry": { + "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsImageSegmentationEvaluationMetricsConfidenceMetricsEntry", "properties": { - "columnName": { - "type": "string" + "confidenceThreshold": { + "description": "Metrics are computed with an assumption that the model never returns predictions with score lower than this value.", + "format": "float", + "type": "number" + }, + "confusionMatrix": { + "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsConfusionMatrix", + "description": "Confusion matrix for the given confidence threshold." + }, + "diceScoreCoefficient": { + "description": "DSC or the F1 score, The harmonic mean of recall and precision.", + "format": "float", + "type": "number" + }, + "iouScore": { + "description": "The intersection-over-union score. The measure of overlap of the annotation's category mask with ground truth category mask on the DataItem.", + "format": "float", + "type": "number" + }, + "precision": { + "description": "Precision for the given confidence threshold.", + "format": "float", + "type": "number" + }, + "recall": { + "description": "Recall (True Positive Rate) for the given confidence threshold.", + "format": "float", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationTimestampTransformation": { - "description": "Training pipeline will perform following transformation functions. * Apply the transformation functions for Numerical columns. * Determine the year, month, day,and weekday. Treat each value from the * timestamp as a Categorical column. * Invalid numerical values (for example, values that fall outside of a typical timestamp range, or are extreme values) receive no special treatment and are not removed.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationTimestampTransformation", + "GoogleCloudAiplatformV1SchemaModelevaluationMetricsQuestionAnsweringEvaluationMetrics": { + "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsQuestionAnsweringEvaluationMetrics", "properties": { - "columnName": { - "type": "string" - }, - "invalidValuesAllowed": { - "description": "If invalid values is allowed, the training pipeline will create a boolean feature that indicated whether the value is valid. Otherwise, the training pipeline will discard the input row from trainining data.", - "type": "boolean" - }, - "timeFormat": { - "description": "The format in which that time field is expressed. The time_format must either be one of: * `unix-seconds` * `unix-milliseconds` * `unix-microseconds` * `unix-nanoseconds` (for respectively number of seconds, milliseconds, microseconds and nanoseconds since start of the Unix epoch); or be written in `strftime` syntax. If time_format is not set, then the default format is RFC 3339 `date-time` format, where `time-offset` = `\"Z\"` (e.g. 1985-04-12T23:20:50.52Z)", - "type": "string" + "exactMatch": { + "description": "The rate at which the input predicted strings exactly match their references.", + "format": "float", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesMetadata": { - "description": "Model metadata specific to AutoML Tables.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesMetadata", + "GoogleCloudAiplatformV1SchemaModelevaluationMetricsRegressionEvaluationMetrics": { + "description": "Metrics for regression evaluation results.", + "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsRegressionEvaluationMetrics", "properties": { - "evaluatedDataItemsBigqueryUri": { - "description": "BigQuery destination uri for exported evaluated examples.", - "type": "string" + "meanAbsoluteError": { + "description": "Mean Absolute Error (MAE).", + "format": "float", + "type": "number" }, - "trainCostMilliNodeHours": { - "description": "Output only. The actual training cost of the model, expressed in milli node hours, i.e. 1,000 value in this field means 1 node hour. Guaranteed to not exceed the train budget.", - "format": "int64", - "type": "string" + "meanAbsolutePercentageError": { + "description": "Mean absolute percentage error. Infinity when there are zeros in the ground truth.", + "format": "float", + "type": "number" + }, + "rSquared": { + "description": "Coefficient of determination as Pearson correlation coefficient. Undefined when ground truth or predictions are constant or near constant.", + "format": "float", + "type": "number" + }, + "rootMeanSquaredError": { + "description": "Root Mean Squared Error (RMSE).", + "format": "float", + "type": "number" + }, + "rootMeanSquaredLogError": { + "description": "Root mean squared log error. Undefined when there are negative ground truth values or predictions.", + "format": "float", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTextClassification": { - "description": "A TrainingJob that trains and uploads an AutoML Text Classification Model.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTextClassification", + "GoogleCloudAiplatformV1SchemaModelevaluationMetricsSummarizationEvaluationMetrics": { + "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsSummarizationEvaluationMetrics", "properties": { - "inputs": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTextClassificationInputs", - "description": "The input parameters of this TrainingJob." + "rougeLSum": { + "description": "ROUGE-L (Longest Common Subsequence) scoring at summary level.", + "format": "float", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTextClassificationInputs": { - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTextClassificationInputs", + "GoogleCloudAiplatformV1SchemaModelevaluationMetricsTextExtractionEvaluationMetrics": { + "description": "Metrics for text extraction evaluation results.", + "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsTextExtractionEvaluationMetrics", "properties": { - "multiLabel": { - "type": "boolean" + "confidenceMetrics": { + "description": "Metrics that have confidence thresholds. Precision-recall curve can be derived from them.", + "items": { + "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsTextExtractionEvaluationMetricsConfidenceMetrics" + }, + "type": "array" + }, + "confusionMatrix": { + "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsConfusionMatrix", + "description": "Confusion matrix of the evaluation. Only set for Models where number of AnnotationSpecs is no more than 10. Only set for ModelEvaluations, not for ModelEvaluationSlices." } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTextExtraction": { - "description": "A TrainingJob that trains and uploads an AutoML Text Extraction Model.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTextExtraction", + "GoogleCloudAiplatformV1SchemaModelevaluationMetricsTextExtractionEvaluationMetricsConfidenceMetrics": { + "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsTextExtractionEvaluationMetricsConfidenceMetrics", "properties": { - "inputs": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTextExtractionInputs", - "description": "The input parameters of this TrainingJob." + "confidenceThreshold": { + "description": "Metrics are computed with an assumption that the Model never returns predictions with score lower than this value.", + "format": "float", + "type": "number" + }, + "f1Score": { + "description": "The harmonic mean of recall and precision.", + "format": "float", + "type": "number" + }, + "precision": { + "description": "Precision for the given confidence threshold.", + "format": "float", + "type": "number" + }, + "recall": { + "description": "Recall (True Positive Rate) for the given confidence threshold.", + "format": "float", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTextExtractionInputs": { - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTextExtractionInputs", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTextSentiment": { - "description": "A TrainingJob that trains and uploads an AutoML Text Sentiment Model.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTextSentiment", + "GoogleCloudAiplatformV1SchemaModelevaluationMetricsTextSentimentEvaluationMetrics": { + "description": "Model evaluation metrics for text sentiment problems.", + "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsTextSentimentEvaluationMetrics", "properties": { - "inputs": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTextSentimentInputs", - "description": "The input parameters of this TrainingJob." + "confusionMatrix": { + "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsConfusionMatrix", + "description": "Confusion matrix of the evaluation. Only set for ModelEvaluations, not for ModelEvaluationSlices." + }, + "f1Score": { + "description": "The harmonic mean of recall and precision.", + "format": "float", + "type": "number" + }, + "linearKappa": { + "description": "Linear weighted kappa. Only set for ModelEvaluations, not for ModelEvaluationSlices.", + "format": "float", + "type": "number" + }, + "meanAbsoluteError": { + "description": "Mean absolute error. Only set for ModelEvaluations, not for ModelEvaluationSlices.", + "format": "float", + "type": "number" + }, + "meanSquaredError": { + "description": "Mean squared error. Only set for ModelEvaluations, not for ModelEvaluationSlices.", + "format": "float", + "type": "number" + }, + "precision": { + "description": "Precision.", + "format": "float", + "type": "number" + }, + "quadraticKappa": { + "description": "Quadratic weighted kappa. Only set for ModelEvaluations, not for ModelEvaluationSlices.", + "format": "float", + "type": "number" + }, + "recall": { + "description": "Recall.", + "format": "float", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTextSentimentInputs": { - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTextSentimentInputs", + "GoogleCloudAiplatformV1SchemaModelevaluationMetricsTrackMetrics": { + "description": "UNIMPLEMENTED. Track matching model metrics for a single track match threshold and multiple label match confidence thresholds.", + "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsTrackMetrics", "properties": { - "sentimentMax": { - "description": "A sentiment is expressed as an integer ordinal, where higher value means a more positive sentiment. The range of sentiments that will be used is between 0 and sentimentMax (inclusive on both ends), and all the values in the range must be represented in the dataset before a model can be created. Only the Annotations with this sentimentMax will be used for training. sentimentMax value must be between 1 and 10 (inclusive).", - "format": "int32", - "type": "integer" + "confidenceMetrics": { + "description": "Metrics for each label-match `confidenceThreshold` from 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99. Precision-recall curve is derived from them.", + "items": { + "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsTrackMetricsConfidenceMetrics" + }, + "type": "array" + }, + "iouThreshold": { + "description": "The intersection-over-union threshold value between bounding boxes across frames used to compute this metric entry.", + "format": "float", + "type": "number" + }, + "meanBoundingBoxIou": { + "description": "The mean bounding box iou over all confidence thresholds.", + "format": "float", + "type": "number" + }, + "meanMismatchRate": { + "description": "The mean mismatch rate over all confidence thresholds.", + "format": "float", + "type": "number" + }, + "meanTrackingAveragePrecision": { + "description": "The mean average precision over all confidence thresholds.", + "format": "float", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlVideoActionRecognition": { - "description": "A TrainingJob that trains and uploads an AutoML Video Action Recognition Model.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlVideoActionRecognition", + "GoogleCloudAiplatformV1SchemaModelevaluationMetricsTrackMetricsConfidenceMetrics": { + "description": "Metrics for a single confidence threshold.", + "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsTrackMetricsConfidenceMetrics", "properties": { - "inputs": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlVideoActionRecognitionInputs", - "description": "The input parameters of this TrainingJob." + "boundingBoxIou": { + "description": "Bounding box intersection-over-union precision. Measures how well the bounding boxes overlap between each other (e.g. complete overlap or just barely above iou_threshold).", + "format": "float", + "type": "number" + }, + "confidenceThreshold": { + "description": "The confidence threshold value used to compute the metrics.", + "format": "float", + "type": "number" + }, + "mismatchRate": { + "description": "Mismatch rate, which measures the tracking consistency, i.e. correctness of instance ID continuity.", + "format": "float", + "type": "number" + }, + "trackingPrecision": { + "description": "Tracking precision.", + "format": "float", + "type": "number" + }, + "trackingRecall": { + "description": "Tracking recall.", + "format": "float", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlVideoActionRecognitionInputs": { - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlVideoActionRecognitionInputs", + "GoogleCloudAiplatformV1SchemaModelevaluationMetricsVideoActionMetrics": { + "description": "The Evaluation metrics given a specific precision_window_length.", + "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsVideoActionMetrics", "properties": { - "modelType": { - "enum": [ - "MODEL_TYPE_UNSPECIFIED", - "CLOUD", - "MOBILE_VERSATILE_1", - "MOBILE_JETSON_VERSATILE_1", - "MOBILE_CORAL_VERSATILE_1" - ], - "enumDescriptions": [ - "Should not be set.", - "A model best tailored to be used within Google Cloud, and which c annot be exported. Default.", - "A model that, in addition to being available within Google Cloud, can also be exported (see ModelService.ExportModel) as a TensorFlow or TensorFlow Lite model and used on a mobile or edge device afterwards.", - "A model that, in addition to being available within Google Cloud, can also be exported (see ModelService.ExportModel) to a Jetson device afterwards.", - "A model that, in addition to being available within Google Cloud, can also be exported (see ModelService.ExportModel) as a TensorFlow or TensorFlow Lite model and used on a Coral device afterwards." - ], + "confidenceMetrics": { + "description": "Metrics for each label-match confidence_threshold from 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99.", + "items": { + "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsVideoActionMetricsConfidenceMetrics" + }, + "type": "array" + }, + "meanAveragePrecision": { + "description": "The mean average precision.", + "format": "float", + "type": "number" + }, + "precisionWindowLength": { + "description": "This VideoActionMetrics is calculated based on this prediction window length. If the predicted action's timestamp is inside the time window whose center is the ground truth action's timestamp with this specific length, the prediction result is treated as a true positive.", + "format": "google-duration", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlVideoClassification": { - "description": "A TrainingJob that trains and uploads an AutoML Video Classification Model.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlVideoClassification", + "GoogleCloudAiplatformV1SchemaModelevaluationMetricsVideoActionMetricsConfidenceMetrics": { + "description": "Metrics for a single confidence threshold.", + "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsVideoActionMetricsConfidenceMetrics", "properties": { - "inputs": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlVideoClassificationInputs", - "description": "The input parameters of this TrainingJob." + "confidenceThreshold": { + "description": "Output only. The confidence threshold value used to compute the metrics.", + "format": "float", + "type": "number" + }, + "f1Score": { + "description": "Output only. The harmonic mean of recall and precision.", + "format": "float", + "type": "number" + }, + "precision": { + "description": "Output only. Precision for the given confidence threshold.", + "format": "float", + "type": "number" + }, + "recall": { + "description": "Output only. Recall for the given confidence threshold.", + "format": "float", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlVideoClassificationInputs": { - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlVideoClassificationInputs", + "GoogleCloudAiplatformV1SchemaModelevaluationMetricsVideoActionRecognitionMetrics": { + "description": "Model evaluation metrics for video action recognition.", + "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsVideoActionRecognitionMetrics", "properties": { - "modelType": { - "enum": [ - "MODEL_TYPE_UNSPECIFIED", - "CLOUD", - "MOBILE_VERSATILE_1", - "MOBILE_JETSON_VERSATILE_1" - ], - "enumDescriptions": [ - "Should not be set.", - "A model best tailored to be used within Google Cloud, and which cannot be exported. Default.", - "A model that, in addition to being available within Google Cloud, can also be exported (see ModelService.ExportModel) as a TensorFlow or TensorFlow Lite model and used on a mobile or edge device afterwards.", - "A model that, in addition to being available within Google Cloud, can also be exported (see ModelService.ExportModel) to a Jetson device afterwards." - ], - "type": "string" + "evaluatedActionCount": { + "description": "The number of ground truth actions used to create this evaluation.", + "format": "int32", + "type": "integer" + }, + "videoActionMetrics": { + "description": "The metric entries for precision window lengths: 1s,2s,3s.", + "items": { + "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsVideoActionMetrics" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlVideoObjectTracking": { - "description": "A TrainingJob that trains and uploads an AutoML Video ObjectTracking Model.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlVideoObjectTracking", + "GoogleCloudAiplatformV1SchemaModelevaluationMetricsVideoObjectTrackingMetrics": { + "description": "Model evaluation metrics for video object tracking problems. Evaluates prediction quality of both labeled bounding boxes and labeled tracks (i.e. series of bounding boxes sharing same label and instance ID).", + "id": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsVideoObjectTrackingMetrics", "properties": { - "inputs": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlVideoObjectTrackingInputs", - "description": "The input parameters of this TrainingJob." + "boundingBoxMeanAveragePrecision": { + "description": "The single metric for bounding boxes evaluation: the `meanAveragePrecision` averaged over all `boundingBoxMetrics`.", + "format": "float", + "type": "number" + }, + "boundingBoxMetrics": { + "description": "The bounding boxes match metrics for each intersection-over-union threshold 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99 and each label confidence threshold 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99 pair.", + "items": { + "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsBoundingBoxMetrics" + }, + "type": "array" + }, + "evaluatedBoundingBoxCount": { + "description": "UNIMPLEMENTED. The total number of bounding boxes (i.e. summed over all frames) the ground truth used to create this evaluation had.", + "format": "int32", + "type": "integer" + }, + "evaluatedFrameCount": { + "description": "UNIMPLEMENTED. The number of video frames used to create this evaluation.", + "format": "int32", + "type": "integer" + }, + "evaluatedTrackCount": { + "description": "UNIMPLEMENTED. The total number of tracks (i.e. as seen across all frames) the ground truth used to create this evaluation had.", + "format": "int32", + "type": "integer" + }, + "trackMeanAveragePrecision": { + "description": "UNIMPLEMENTED. The single metric for tracks accuracy evaluation: the `meanAveragePrecision` averaged over all `trackMetrics`.", + "format": "float", + "type": "number" + }, + "trackMeanBoundingBoxIou": { + "description": "UNIMPLEMENTED. The single metric for tracks bounding box iou evaluation: the `meanBoundingBoxIou` averaged over all `trackMetrics`.", + "format": "float", + "type": "number" + }, + "trackMeanMismatchRate": { + "description": "UNIMPLEMENTED. The single metric for tracking consistency evaluation: the `meanMismatchRate` averaged over all `trackMetrics`.", + "format": "float", + "type": "number" + }, + "trackMetrics": { + "description": "UNIMPLEMENTED. The tracks match metrics for each intersection-over-union threshold 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99 and each label confidence threshold 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99 pair.", + "items": { + "$ref": "GoogleCloudAiplatformV1SchemaModelevaluationMetricsTrackMetrics" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlVideoObjectTrackingInputs": { - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlVideoObjectTrackingInputs", + "GoogleCloudAiplatformV1SchemaPredictInstanceImageClassificationPredictionInstance": { + "description": "Prediction input format for Image Classification.", + "id": "GoogleCloudAiplatformV1SchemaPredictInstanceImageClassificationPredictionInstance", "properties": { - "modelType": { - "enum": [ - "MODEL_TYPE_UNSPECIFIED", - "CLOUD", - "MOBILE_VERSATILE_1", - "MOBILE_CORAL_VERSATILE_1", - "MOBILE_CORAL_LOW_LATENCY_1", - "MOBILE_JETSON_VERSATILE_1", - "MOBILE_JETSON_LOW_LATENCY_1" - ], - "enumDescriptions": [ - "Should not be set.", - "A model best tailored to be used within Google Cloud, and which c annot be exported. Default.", - "A model that, in addition to being available within Google Cloud, can also be exported (see ModelService.ExportModel) as a TensorFlow or TensorFlow Lite model and used on a mobile or edge device afterwards.", - "A versatile model that is meant to be exported (see ModelService.ExportModel) and used on a Google Coral device.", - "A model that trades off quality for low latency, to be exported (see ModelService.ExportModel) and used on a Google Coral device.", - "A versatile model that is meant to be exported (see ModelService.ExportModel) and used on an NVIDIA Jetson device.", - "A model that trades off quality for low latency, to be exported (see ModelService.ExportModel) and used on an NVIDIA Jetson device." - ], + "content": { + "description": "The image bytes or Cloud Storage URI to make the prediction on.", + "type": "string" + }, + "mimeType": { + "description": "The MIME type of the content of the image. Only the images in below listed MIME types are supported. - image/jpeg - image/gif - image/png - image/webp - image/bmp - image/tiff - image/vnd.microsoft.icon", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutomlImageTrainingTunableParameter": { - "description": "A wrapper class which contains the tunable parameters in an AutoML Image training job.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutomlImageTrainingTunableParameter", + "GoogleCloudAiplatformV1SchemaPredictInstanceImageObjectDetectionPredictionInstance": { + "description": "Prediction input format for Image Object Detection.", + "id": "GoogleCloudAiplatformV1SchemaPredictInstanceImageObjectDetectionPredictionInstance", "properties": { - "checkpointName": { - "description": "Optional. An unique name of pretrained model checkpoint provided in model garden, it will be mapped to a GCS location internally.", + "content": { + "description": "The image bytes or Cloud Storage URI to make the prediction on.", "type": "string" }, - "datasetConfig": { - "additionalProperties": { - "type": "string" - }, - "description": "Customizable dataset settings, used in the `model_garden_trainer`.", - "type": "object" - }, - "studySpec": { - "$ref": "GoogleCloudAiplatformV1StudySpec", - "description": "Optioinal. StudySpec of hyperparameter tuning job. Required for `model_garden_trainer`." - }, - "trainerConfig": { - "additionalProperties": { - "type": "string" - }, - "description": "Customizable trainer settings, used in the `model_garden_trainer`.", - "type": "object" - }, - "trainerType": { - "enum": [ - "TRAINER_TYPE_UNSPECIFIED", - "AUTOML_TRAINER", - "MODEL_GARDEN_TRAINER" - ], - "enumDescriptions": [ - "Default value.", - "", - "" - ], + "mimeType": { + "description": "The MIME type of the content of the image. Only the images in below listed MIME types are supported. - image/jpeg - image/gif - image/png - image/webp - image/bmp - image/tiff - image/vnd.microsoft.icon", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionCustomJobMetadata": { - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionCustomJobMetadata", + "GoogleCloudAiplatformV1SchemaPredictInstanceImageSegmentationPredictionInstance": { + "description": "Prediction input format for Image Segmentation.", + "id": "GoogleCloudAiplatformV1SchemaPredictInstanceImageSegmentationPredictionInstance", "properties": { - "backingCustomJob": { - "description": "The resource name of the CustomJob that has been created to carry out this custom task.", + "content": { + "description": "The image bytes to make the predictions on.", "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionCustomTask": { - "description": "A TrainingJob that trains a custom code Model.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionCustomTask", - "properties": { - "inputs": { - "$ref": "GoogleCloudAiplatformV1CustomJobSpec", - "description": "The input parameters of this CustomTask." }, - "metadata": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionCustomJobMetadata", - "description": "The metadata information." + "mimeType": { + "description": "The MIME type of the content of the image. Only the images in below listed MIME types are supported. - image/jpeg - image/png", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionExportEvaluatedDataItemsConfig": { - "description": "Configuration for exporting test set predictions to a BigQuery table.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionExportEvaluatedDataItemsConfig", + "GoogleCloudAiplatformV1SchemaPredictInstanceTextClassificationPredictionInstance": { + "description": "Prediction input format for Text Classification.", + "id": "GoogleCloudAiplatformV1SchemaPredictInstanceTextClassificationPredictionInstance", "properties": { - "destinationBigqueryUri": { - "description": "URI of desired destination BigQuery table. Expected format: `bq://{project_id}:{dataset_id}:{table}` If not specified, then results are exported to the following auto-created BigQuery table: `{project_id}:export_evaluated_examples_{model_name}_{yyyy_MM_dd'T'HH_mm_ss_SSS'Z'}.evaluated_examples`", + "content": { + "description": "The text snippet to make the predictions on.", "type": "string" }, - "overrideExistingTable": { - "description": "If true and an export destination is specified, then the contents of the destination are overwritten. Otherwise, if the export destination already exists, then the export operation fails.", - "type": "boolean" + "mimeType": { + "description": "The MIME type of the text snippet. The supported MIME types are listed below. - text/plain", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionHierarchyConfig": { - "description": "Configuration that defines the hierarchical relationship of time series and parameters for hierarchical forecasting strategies.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionHierarchyConfig", + "GoogleCloudAiplatformV1SchemaPredictInstanceTextExtractionPredictionInstance": { + "description": "Prediction input format for Text Extraction.", + "id": "GoogleCloudAiplatformV1SchemaPredictInstanceTextExtractionPredictionInstance", "properties": { - "groupColumns": { - "description": "A list of time series attribute column names that define the time series hierarchy. Only one level of hierarchy is supported, ex. 'region' for a hierarchy of stores or 'department' for a hierarchy of products. If multiple columns are specified, time series will be grouped by their combined values, ex. ('blue', 'large') for 'color' and 'size', up to 5 columns are accepted. If no group columns are specified, all time series are considered to be part of the same group.", - "items": { - "type": "string" - }, - "type": "array" - }, - "groupTemporalTotalWeight": { - "description": "The weight of the loss for predictions aggregated over both the horizon and time series in the same hierarchy group.", - "format": "double", - "type": "number" + "content": { + "description": "The text snippet to make the predictions on.", + "type": "string" }, - "groupTotalWeight": { - "description": "The weight of the loss for predictions aggregated over time series in the same group.", - "format": "double", - "type": "number" + "key": { + "description": "This field is only used for batch prediction. If a key is provided, the batch prediction result will by mapped to this key. If omitted, then the batch prediction result will contain the entire input instance. Vertex AI will not check if keys in the request are duplicates, so it is up to the caller to ensure the keys are unique.", + "type": "string" }, - "temporalTotalWeight": { - "description": "The weight of the loss for predictions aggregated over the horizon for a single time series.", - "format": "double", - "type": "number" + "mimeType": { + "description": "The MIME type of the text snippet. The supported MIME types are listed below. - text/plain", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionHyperparameterTuningJobMetadata": { - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionHyperparameterTuningJobMetadata", + "GoogleCloudAiplatformV1SchemaPredictInstanceTextSentimentPredictionInstance": { + "description": "Prediction input format for Text Sentiment.", + "id": "GoogleCloudAiplatformV1SchemaPredictInstanceTextSentimentPredictionInstance", "properties": { - "backingHyperparameterTuningJob": { - "description": "The resource name of the HyperparameterTuningJob that has been created to carry out this HyperparameterTuning task.", + "content": { + "description": "The text snippet to make the predictions on.", "type": "string" }, - "bestTrialBackingCustomJob": { - "description": "The resource name of the CustomJob that has been created to run the best Trial of this HyperparameterTuning task.", + "mimeType": { + "description": "The MIME type of the text snippet. The supported MIME types are listed below. - text/plain", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionHyperparameterTuningJobSpec": { - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionHyperparameterTuningJobSpec", + "GoogleCloudAiplatformV1SchemaPredictInstanceVideoActionRecognitionPredictionInstance": { + "description": "Prediction input format for Video Action Recognition.", + "id": "GoogleCloudAiplatformV1SchemaPredictInstanceVideoActionRecognitionPredictionInstance", "properties": { - "maxFailedTrialCount": { - "description": "The number of failed Trials that need to be seen before failing the HyperparameterTuningJob. If set to 0, Vertex AI decides how many Trials must fail before the whole job fails.", - "format": "int32", - "type": "integer" - }, - "maxTrialCount": { - "description": "The desired total number of Trials.", - "format": "int32", - "type": "integer" + "content": { + "description": "The Google Cloud Storage location of the video on which to perform the prediction.", + "type": "string" }, - "parallelTrialCount": { - "description": "The desired number of Trials to run in parallel.", - "format": "int32", - "type": "integer" + "mimeType": { + "description": "The MIME type of the content of the video. Only the following are supported: video/mp4 video/avi video/quicktime", + "type": "string" }, - "studySpec": { - "$ref": "GoogleCloudAiplatformV1StudySpec", - "description": "Study configuration of the HyperparameterTuningJob." + "timeSegmentEnd": { + "description": "The end, exclusive, of the video's time segment on which to perform the prediction. Expressed as a number of seconds as measured from the start of the video, with \"s\" appended at the end. Fractions are allowed, up to a microsecond precision, and \"inf\" or \"Infinity\" is allowed, which means the end of the video.", + "type": "string" }, - "trialJobSpec": { - "$ref": "GoogleCloudAiplatformV1CustomJobSpec", - "description": "The spec of a trial job. The same spec applies to the CustomJobs created in all the trials." + "timeSegmentStart": { + "description": "The beginning, inclusive, of the video's time segment on which to perform the prediction. Expressed as a number of seconds as measured from the start of the video, with \"s\" appended at the end. Fractions are allowed, up to a microsecond precision.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionHyperparameterTuningTask": { - "description": "A TrainingJob that tunes Hypererparameters of a custom code Model.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionHyperparameterTuningTask", + "GoogleCloudAiplatformV1SchemaPredictInstanceVideoClassificationPredictionInstance": { + "description": "Prediction input format for Video Classification.", + "id": "GoogleCloudAiplatformV1SchemaPredictInstanceVideoClassificationPredictionInstance", "properties": { - "inputs": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionHyperparameterTuningJobSpec", - "description": "The input parameters of this HyperparameterTuningTask." + "content": { + "description": "The Google Cloud Storage location of the video on which to perform the prediction.", + "type": "string" }, - "metadata": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionHyperparameterTuningJobMetadata", - "description": "The metadata information." - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecasting": { - "description": "A TrainingJob that trains and uploads an AutoML Forecasting Model.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecasting", - "properties": { - "inputs": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputs", - "description": "The input parameters of this TrainingJob." + "mimeType": { + "description": "The MIME type of the content of the video. Only the following are supported: video/mp4 video/avi video/quicktime", + "type": "string" }, - "metadata": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingMetadata", - "description": "The metadata information." + "timeSegmentEnd": { + "description": "The end, exclusive, of the video's time segment on which to perform the prediction. Expressed as a number of seconds as measured from the start of the video, with \"s\" appended at the end. Fractions are allowed, up to a microsecond precision, and \"inf\" or \"Infinity\" is allowed, which means the end of the video.", + "type": "string" + }, + "timeSegmentStart": { + "description": "The beginning, inclusive, of the video's time segment on which to perform the prediction. Expressed as a number of seconds as measured from the start of the video, with \"s\" appended at the end. Fractions are allowed, up to a microsecond precision.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputs": { - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputs", + "GoogleCloudAiplatformV1SchemaPredictInstanceVideoObjectTrackingPredictionInstance": { + "description": "Prediction input format for Video Object Tracking.", + "id": "GoogleCloudAiplatformV1SchemaPredictInstanceVideoObjectTrackingPredictionInstance", "properties": { - "additionalExperiments": { - "description": "Additional experiment flags for the time series forcasting training.", - "items": { - "type": "string" - }, - "type": "array" - }, - "availableAtForecastColumns": { - "description": "Names of columns that are available and provided when a forecast is requested. These columns contain information for the given entity (identified by the time_series_identifier_column column) that is known at forecast. For example, predicted weather for a specific day.", - "items": { - "type": "string" - }, - "type": "array" - }, - "contextWindow": { - "description": "The amount of time into the past training and prediction data is used for model training and prediction respectively. Expressed in number of units defined by the `data_granularity` field.", - "format": "int64", - "type": "string" - }, - "dataGranularity": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsGranularity", - "description": "Expected difference in time granularity between rows in the data." - }, - "exportEvaluatedDataItemsConfig": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionExportEvaluatedDataItemsConfig", - "description": "Configuration for exporting test set predictions to a BigQuery table. If this configuration is absent, then the export is not performed." - }, - "forecastHorizon": { - "description": "The amount of time into the future for which forecasted values for the target are returned. Expressed in number of units defined by the `data_granularity` field.", - "format": "int64", + "content": { + "description": "The Google Cloud Storage location of the video on which to perform the prediction.", "type": "string" }, - "hierarchyConfig": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionHierarchyConfig", - "description": "Configuration that defines the hierarchical relationship of time series and parameters for hierarchical forecasting strategies." - }, - "holidayRegions": { - "description": "The geographical region based on which the holiday effect is applied in modeling by adding holiday categorical array feature that include all holidays matching the date. This option only allowed when data_granularity is day. By default, holiday effect modeling is disabled. To turn it on, specify the holiday region using this option.", - "items": { - "type": "string" - }, - "type": "array" - }, - "optimizationObjective": { - "description": "Objective function the model is optimizing towards. The training process creates a model that optimizes the value of the objective function over the validation set. The supported optimization objectives: * \"minimize-rmse\" (default) - Minimize root-mean-squared error (RMSE). * \"minimize-mae\" - Minimize mean-absolute error (MAE). * \"minimize-rmsle\" - Minimize root-mean-squared log error (RMSLE). * \"minimize-rmspe\" - Minimize root-mean-squared percentage error (RMSPE). * \"minimize-wape-mae\" - Minimize the combination of weighted absolute percentage error (WAPE) and mean-absolute-error (MAE). * \"minimize-quantile-loss\" - Minimize the quantile loss at the quantiles defined in `quantiles`. * \"minimize-mape\" - Minimize the mean absolute percentage error.", + "mimeType": { + "description": "The MIME type of the content of the video. Only the following are supported: video/mp4 video/avi video/quicktime", "type": "string" }, - "quantiles": { - "description": "Quantiles to use for minimize-quantile-loss `optimization_objective`. Up to 5 quantiles are allowed of values between 0 and 1, exclusive. Required if the value of optimization_objective is minimize-quantile-loss. Represents the percent quantiles to use for that objective. Quantiles must be unique.", - "items": { - "format": "double", - "type": "number" - }, - "type": "array" - }, - "targetColumn": { - "description": "The name of the column that the Model is to predict values for. This column must be unavailable at forecast.", + "timeSegmentEnd": { + "description": "The end, exclusive, of the video's time segment on which to perform the prediction. Expressed as a number of seconds as measured from the start of the video, with \"s\" appended at the end. Fractions are allowed, up to a microsecond precision, and \"inf\" or \"Infinity\" is allowed, which means the end of the video.", "type": "string" }, - "timeColumn": { - "description": "The name of the column that identifies time order in the time series. This column must be available at forecast.", + "timeSegmentStart": { + "description": "The beginning, inclusive, of the video's time segment on which to perform the prediction. Expressed as a number of seconds as measured from the start of the video, with \"s\" appended at the end. Fractions are allowed, up to a microsecond precision.", "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaPredictParamsGroundingConfig": { + "description": "The configuration for grounding checking.", + "id": "GoogleCloudAiplatformV1SchemaPredictParamsGroundingConfig", + "properties": { + "disableAttribution": { + "description": "If set, skip finding claim attributions (i.e not generate grounding citation).", + "type": "boolean" }, - "timeSeriesAttributeColumns": { - "description": "Column names that should be used as attribute columns. The value of these columns does not vary as a function of time. For example, store ID or item color.", + "sources": { + "description": "The sources for the grounding checking.", "items": { - "type": "string" + "$ref": "GoogleCloudAiplatformV1SchemaPredictParamsGroundingConfigSourceEntry" }, "type": "array" - }, - "timeSeriesIdentifierColumn": { - "description": "The name of the column that identifies the time series.", + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaPredictParamsGroundingConfigSourceEntry": { + "description": "Single source entry for the grounding checking.", + "id": "GoogleCloudAiplatformV1SchemaPredictParamsGroundingConfigSourceEntry", + "properties": { + "enterpriseDatastore": { + "deprecated": true, + "description": "The uri of the Vertex AI Search data source. Deprecated. Use vertex_ai_search_datastore instead.", "type": "string" }, - "trainBudgetMilliNodeHours": { - "description": "Required. The train budget of creating this model, expressed in milli node hours i.e. 1,000 value in this field means 1 node hour. The training cost of the model will not exceed this budget. The final cost will be attempted to be close to the budget, though may end up being (even) noticeably smaller - at the backend's discretion. This especially may happen when further model training ceases to provide any improvements. If the budget is set to a value known to be insufficient to train a model for the given dataset, the training won't be attempted and will error. The train budget must be between 1,000 and 72,000 milli node hours, inclusive.", - "format": "int64", + "inlineContext": { + "description": "The grounding text passed inline with the Predict API. It can support up to 1 million bytes.", "type": "string" }, - "transformations": { - "description": "Each transformation will apply transform function to given input column. And the result will be used for training. When creating transformation for BigQuery Struct column, the column should be flattened using \".\" as the delimiter.", - "items": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformation" - }, - "type": "array" - }, - "unavailableAtForecastColumns": { - "description": "Names of columns that are unavailable when a forecast is requested. This column contains information for the given entity (identified by the time_series_identifier_column) that is unknown before the forecast For example, actual weather on a given day.", - "items": { - "type": "string" - }, - "type": "array" - }, - "validationOptions": { - "description": "Validation options for the data validation component. The available options are: * \"fail-pipeline\" - default, will validate against the validation and fail the pipeline if it fails. * \"ignore-validation\" - ignore the results of the validation and continue", + "type": { + "description": "The type of the grounding checking source.", + "enum": [ + "UNSPECIFIED", + "WEB", + "ENTERPRISE", + "VERTEX_AI_SEARCH", + "INLINE" + ], + "enumDeprecated": [ + false, + false, + true, + false, + false + ], + "enumDescriptions": [ + "", + "Uses Web Search to check the grounding.", + "Uses Vertex AI Search to check the grounding. Deprecated. Use VERTEX_AI_SEARCH instead.", + "Uses Vertex AI Search to check the grounding", + "Uses inline context to check the grounding." + ], "type": "string" }, - "weightColumn": { - "description": "Column name that should be used as the weight column. Higher values in this column give more importance to the row during model training. The column must have numeric values between 0 and 10000 inclusively; 0 means the row is ignored for training. If weight column field is not set, then all rows are assumed to have equal weight of 1. This column must be available at forecast.", + "vertexAiSearchDatastore": { + "description": "The uri of the Vertex AI Search data source.", "type": "string" - }, - "windowConfig": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionWindowConfig", - "description": "Config containing strategy for generating sliding windows." } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsGranularity": { - "description": "A duration of time expressed in time granularity units.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsGranularity", + "GoogleCloudAiplatformV1SchemaPredictParamsImageClassificationPredictionParams": { + "description": "Prediction model parameters for Image Classification.", + "id": "GoogleCloudAiplatformV1SchemaPredictParamsImageClassificationPredictionParams", "properties": { - "quantity": { - "description": "The number of granularity_units between data points in the training data. If `granularity_unit` is `minute`, can be 1, 5, 10, 15, or 30. For all other values of `granularity_unit`, must be 1.", - "format": "int64", - "type": "string" + "confidenceThreshold": { + "description": "The Model only returns predictions with at least this confidence score. Default value is 0.0", + "format": "float", + "type": "number" }, - "unit": { - "description": "The time granularity unit of this time period. The supported units are: * \"minute\" * \"hour\" * \"day\" * \"week\" * \"month\" * \"year\"", - "type": "string" + "maxPredictions": { + "description": "The Model only returns up to that many top, by confidence score, predictions per instance. If this number is very high, the Model may return fewer predictions. Default value is 10.", + "format": "int32", + "type": "integer" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformation": { - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformation", + "GoogleCloudAiplatformV1SchemaPredictParamsImageObjectDetectionPredictionParams": { + "description": "Prediction model parameters for Image Object Detection.", + "id": "GoogleCloudAiplatformV1SchemaPredictParamsImageObjectDetectionPredictionParams", "properties": { - "auto": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformationAutoTransformation" - }, - "categorical": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformationCategoricalTransformation" - }, - "numeric": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformationNumericTransformation" - }, - "text": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformationTextTransformation" + "confidenceThreshold": { + "description": "The Model only returns predictions with at least this confidence score. Default value is 0.0", + "format": "float", + "type": "number" }, - "timestamp": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformationTimestampTransformation" + "maxPredictions": { + "description": "The Model only returns up to that many top, by confidence score, predictions per instance. Note that number of returned predictions is also limited by metadata's predictionsLimit. Default value is 10.", + "format": "int32", + "type": "integer" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformationAutoTransformation": { - "description": "Training pipeline will infer the proper transformation based on the statistic of dataset.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformationAutoTransformation", + "GoogleCloudAiplatformV1SchemaPredictParamsImageSegmentationPredictionParams": { + "description": "Prediction model parameters for Image Segmentation.", + "id": "GoogleCloudAiplatformV1SchemaPredictParamsImageSegmentationPredictionParams", "properties": { - "columnName": { - "type": "string" + "confidenceThreshold": { + "description": "When the model predicts category of pixels of the image, it will only provide predictions for pixels that it is at least this much confident about. All other pixels will be classified as background. Default value is 0.5.", + "format": "float", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformationCategoricalTransformation": { - "description": "Training pipeline will perform following transformation functions. * The categorical string as is--no change to case, punctuation, spelling, tense, and so on. * Convert the category name to a dictionary lookup index and generate an embedding for each index. * Categories that appear less than 5 times in the training dataset are treated as the \"unknown\" category. The \"unknown\" category gets its own special lookup index and resulting embedding.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformationCategoricalTransformation", + "GoogleCloudAiplatformV1SchemaPredictParamsVideoActionRecognitionPredictionParams": { + "description": "Prediction model parameters for Video Action Recognition.", + "id": "GoogleCloudAiplatformV1SchemaPredictParamsVideoActionRecognitionPredictionParams", "properties": { - "columnName": { - "type": "string" + "confidenceThreshold": { + "description": "The Model only returns predictions with at least this confidence score. Default value is 0.0", + "format": "float", + "type": "number" + }, + "maxPredictions": { + "description": "The model only returns up to that many top, by confidence score, predictions per frame of the video. If this number is very high, the Model may return fewer predictions per frame. Default value is 50.", + "format": "int32", + "type": "integer" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformationNumericTransformation": { - "description": "Training pipeline will perform following transformation functions. * The value converted to float32. * The z_score of the value. * log(value+1) when the value is greater than or equal to 0. Otherwise, this transformation is not applied and the value is considered a missing value. * z_score of log(value+1) when the value is greater than or equal to 0. Otherwise, this transformation is not applied and the value is considered a missing value.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformationNumericTransformation", + "GoogleCloudAiplatformV1SchemaPredictParamsVideoClassificationPredictionParams": { + "description": "Prediction model parameters for Video Classification.", + "id": "GoogleCloudAiplatformV1SchemaPredictParamsVideoClassificationPredictionParams", "properties": { - "columnName": { - "type": "string" + "confidenceThreshold": { + "description": "The Model only returns predictions with at least this confidence score. Default value is 0.0", + "format": "float", + "type": "number" + }, + "maxPredictions": { + "description": "The Model only returns up to that many top, by confidence score, predictions per instance. If this number is very high, the Model may return fewer predictions. Default value is 10,000.", + "format": "int32", + "type": "integer" + }, + "oneSecIntervalClassification": { + "description": "Set to true to request classification for a video at one-second intervals. Vertex AI returns labels and their confidence scores for each second of the entire time segment of the video that user specified in the input WARNING: Model evaluation is not done for this classification type, the quality of it depends on the training data, but there are no metrics provided to describe that quality. Default value is false", + "type": "boolean" + }, + "segmentClassification": { + "description": "Set to true to request segment-level classification. Vertex AI returns labels and their confidence scores for the entire time segment of the video that user specified in the input instance. Default value is true", + "type": "boolean" + }, + "shotClassification": { + "description": "Set to true to request shot-level classification. Vertex AI determines the boundaries for each camera shot in the entire time segment of the video that user specified in the input instance. Vertex AI then returns labels and their confidence scores for each detected shot, along with the start and end time of the shot. WARNING: Model evaluation is not done for this classification type, the quality of it depends on the training data, but there are no metrics provided to describe that quality. Default value is false", + "type": "boolean" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformationTextTransformation": { - "description": "Training pipeline will perform following transformation functions. * The text as is--no change to case, punctuation, spelling, tense, and so on. * Convert the category name to a dictionary lookup index and generate an embedding for each index.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformationTextTransformation", + "GoogleCloudAiplatformV1SchemaPredictParamsVideoObjectTrackingPredictionParams": { + "description": "Prediction model parameters for Video Object Tracking.", + "id": "GoogleCloudAiplatformV1SchemaPredictParamsVideoObjectTrackingPredictionParams", "properties": { - "columnName": { - "type": "string" + "confidenceThreshold": { + "description": "The Model only returns predictions with at least this confidence score. Default value is 0.0", + "format": "float", + "type": "number" + }, + "maxPredictions": { + "description": "The model only returns up to that many top, by confidence score, predictions per frame of the video. If this number is very high, the Model may return fewer predictions per frame. Default value is 50.", + "format": "int32", + "type": "integer" + }, + "minBoundingBoxSize": { + "description": "Only bounding boxes with shortest edge at least that long as a relative value of video frame size are returned. Default value is 0.0.", + "format": "float", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformationTimestampTransformation": { - "description": "Training pipeline will perform following transformation functions. * Apply the transformation functions for Numerical columns. * Determine the year, month, day,and weekday. Treat each value from the timestamp as a Categorical column. * Invalid numerical values (for example, values that fall outside of a typical timestamp range, or are extreme values) receive no special treatment and are not removed.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformationTimestampTransformation", + "GoogleCloudAiplatformV1SchemaPredictPredictionClassificationPredictionResult": { + "description": "Prediction output format for Image and Text Classification.", + "id": "GoogleCloudAiplatformV1SchemaPredictPredictionClassificationPredictionResult", "properties": { - "columnName": { - "type": "string" + "confidences": { + "description": "The Model's confidences in correctness of the predicted IDs, higher value means higher confidence. Order matches the Ids.", + "items": { + "format": "float", + "type": "number" + }, + "type": "array" }, - "timeFormat": { - "description": "The format in which that time field is expressed. The time_format must either be one of: * `unix-seconds` * `unix-milliseconds` * `unix-microseconds` * `unix-nanoseconds` (for respectively number of seconds, milliseconds, microseconds and nanoseconds since start of the Unix epoch); or be written in `strftime` syntax. If time_format is not set, then the default format is RFC 3339 `date-time` format, where `time-offset` = `\"Z\"` (e.g. 1985-04-12T23:20:50.52Z)", - "type": "string" + "displayNames": { + "description": "The display names of the AnnotationSpecs that had been identified, order matches the IDs.", + "items": { + "type": "string" + }, + "type": "array" + }, + "ids": { + "description": "The resource IDs of the AnnotationSpecs that had been identified.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingMetadata": { - "description": "Model metadata specific to Seq2Seq Plus Forecasting.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingMetadata", + "GoogleCloudAiplatformV1SchemaPredictPredictionImageObjectDetectionPredictionResult": { + "description": "Prediction output format for Image Object Detection.", + "id": "GoogleCloudAiplatformV1SchemaPredictPredictionImageObjectDetectionPredictionResult", "properties": { - "evaluatedDataItemsBigqueryUri": { - "description": "BigQuery destination uri for exported evaluated examples.", - "type": "string" + "bboxes": { + "description": "Bounding boxes, i.e. the rectangles over the image, that pinpoint the found AnnotationSpecs. Given in order that matches the IDs. Each bounding box is an array of 4 numbers `xMin`, `xMax`, `yMin`, and `yMax`, which represent the extremal coordinates of the box. They are relative to the image size, and the point 0,0 is in the top left of the image.", + "items": { + "items": { + "type": "any" + }, + "type": "array" + }, + "type": "array" }, - "trainCostMilliNodeHours": { - "description": "Output only. The actual training cost of the model, expressed in milli node hours, i.e. 1,000 value in this field means 1 node hour. Guaranteed to not exceed the train budget.", - "format": "int64", - "type": "string" + "confidences": { + "description": "The Model's confidences in correctness of the predicted IDs, higher value means higher confidence. Order matches the Ids.", + "items": { + "format": "float", + "type": "number" + }, + "type": "array" + }, + "displayNames": { + "description": "The display names of the AnnotationSpecs that had been identified, order matches the IDs.", + "items": { + "type": "string" + }, + "type": "array" + }, + "ids": { + "description": "The resource IDs of the AnnotationSpecs that had been identified, ordered by the confidence score descendingly.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecasting": { - "description": "A TrainingJob that trains and uploads an AutoML Forecasting Model.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecasting", + "GoogleCloudAiplatformV1SchemaPredictPredictionImageSegmentationPredictionResult": { + "description": "Prediction output format for Image Segmentation.", + "id": "GoogleCloudAiplatformV1SchemaPredictPredictionImageSegmentationPredictionResult", "properties": { - "inputs": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputs", - "description": "The input parameters of this TrainingJob." + "categoryMask": { + "description": "A PNG image where each pixel in the mask represents the category in which the pixel in the original image was predicted to belong to. The size of this image will be the same as the original image. The mapping between the AnntoationSpec and the color can be found in model's metadata. The model will choose the most likely category and if none of the categories reach the confidence threshold, the pixel will be marked as background.", + "type": "string" }, - "metadata": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingMetadata", - "description": "The metadata information." + "confidenceMask": { + "description": "A one channel image which is encoded as an 8bit lossless PNG. The size of the image will be the same as the original image. For a specific pixel, darker color means less confidence in correctness of the cateogry in the categoryMask for the corresponding pixel. Black means no confidence and white means complete confidence.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputs": { - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputs", + "GoogleCloudAiplatformV1SchemaPredictPredictionTabularClassificationPredictionResult": { + "description": "Prediction output format for Tabular Classification.", + "id": "GoogleCloudAiplatformV1SchemaPredictPredictionTabularClassificationPredictionResult", "properties": { - "additionalExperiments": { - "description": "Additional experiment flags for the time series forcasting training.", + "classes": { + "description": "The name of the classes being classified, contains all possible values of the target column.", "items": { "type": "string" }, "type": "array" }, - "availableAtForecastColumns": { - "description": "Names of columns that are available and provided when a forecast is requested. These columns contain information for the given entity (identified by the time_series_identifier_column column) that is known at forecast. For example, predicted weather for a specific day.", + "scores": { + "description": "The model's confidence in each class being correct, higher value means higher confidence. The N-th score corresponds to the N-th class in classes.", "items": { - "type": "string" + "format": "float", + "type": "number" }, "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaPredictPredictionTabularRegressionPredictionResult": { + "description": "Prediction output format for Tabular Regression.", + "id": "GoogleCloudAiplatformV1SchemaPredictPredictionTabularRegressionPredictionResult", + "properties": { + "lowerBound": { + "description": "The lower bound of the prediction interval.", + "format": "float", + "type": "number" }, - "contextWindow": { - "description": "The amount of time into the past training and prediction data is used for model training and prediction respectively. Expressed in number of units defined by the `data_granularity` field.", - "format": "int64", - "type": "string" - }, - "dataGranularity": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsGranularity", - "description": "Expected difference in time granularity between rows in the data." - }, - "exportEvaluatedDataItemsConfig": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionExportEvaluatedDataItemsConfig", - "description": "Configuration for exporting test set predictions to a BigQuery table. If this configuration is absent, then the export is not performed." - }, - "forecastHorizon": { - "description": "The amount of time into the future for which forecasted values for the target are returned. Expressed in number of units defined by the `data_granularity` field.", - "format": "int64", - "type": "string" - }, - "hierarchyConfig": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionHierarchyConfig", - "description": "Configuration that defines the hierarchical relationship of time series and parameters for hierarchical forecasting strategies." - }, - "holidayRegions": { - "description": "The geographical region based on which the holiday effect is applied in modeling by adding holiday categorical array feature that include all holidays matching the date. This option only allowed when data_granularity is day. By default, holiday effect modeling is disabled. To turn it on, specify the holiday region using this option.", + "quantilePredictions": { + "description": "Quantile predictions, in 1-1 correspondence with quantile_values.", "items": { - "type": "string" + "format": "float", + "type": "number" }, "type": "array" }, - "optimizationObjective": { - "description": "Objective function the model is optimizing towards. The training process creates a model that optimizes the value of the objective function over the validation set. The supported optimization objectives: * \"minimize-rmse\" (default) - Minimize root-mean-squared error (RMSE). * \"minimize-mae\" - Minimize mean-absolute error (MAE). * \"minimize-rmsle\" - Minimize root-mean-squared log error (RMSLE). * \"minimize-rmspe\" - Minimize root-mean-squared percentage error (RMSPE). * \"minimize-wape-mae\" - Minimize the combination of weighted absolute percentage error (WAPE) and mean-absolute-error (MAE). * \"minimize-quantile-loss\" - Minimize the quantile loss at the quantiles defined in `quantiles`. * \"minimize-mape\" - Minimize the mean absolute percentage error.", - "type": "string" - }, - "quantiles": { - "description": "Quantiles to use for minimize-quantile-loss `optimization_objective`. Up to 5 quantiles are allowed of values between 0 and 1, exclusive. Required if the value of optimization_objective is minimize-quantile-loss. Represents the percent quantiles to use for that objective. Quantiles must be unique.", + "quantileValues": { + "description": "Quantile values.", "items": { - "format": "double", + "format": "float", "type": "number" }, "type": "array" }, - "targetColumn": { - "description": "The name of the column that the Model is to predict values for. This column must be unavailable at forecast.", - "type": "string" + "upperBound": { + "description": "The upper bound of the prediction interval.", + "format": "float", + "type": "number" }, - "timeColumn": { - "description": "The name of the column that identifies time order in the time series. This column must be available at forecast.", - "type": "string" + "value": { + "description": "The regression value.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaPredictPredictionTextExtractionPredictionResult": { + "description": "Prediction output format for Text Extraction.", + "id": "GoogleCloudAiplatformV1SchemaPredictPredictionTextExtractionPredictionResult", + "properties": { + "confidences": { + "description": "The Model's confidences in correctness of the predicted IDs, higher value means higher confidence. Order matches the Ids.", + "items": { + "format": "float", + "type": "number" + }, + "type": "array" }, - "timeSeriesAttributeColumns": { - "description": "Column names that should be used as attribute columns. The value of these columns does not vary as a function of time. For example, store ID or item color.", + "displayNames": { + "description": "The display names of the AnnotationSpecs that had been identified, order matches the IDs.", "items": { "type": "string" }, "type": "array" }, - "timeSeriesIdentifierColumn": { - "description": "The name of the column that identifies the time series.", - "type": "string" - }, - "trainBudgetMilliNodeHours": { - "description": "Required. The train budget of creating this model, expressed in milli node hours i.e. 1,000 value in this field means 1 node hour. The training cost of the model will not exceed this budget. The final cost will be attempted to be close to the budget, though may end up being (even) noticeably smaller - at the backend's discretion. This especially may happen when further model training ceases to provide any improvements. If the budget is set to a value known to be insufficient to train a model for the given dataset, the training won't be attempted and will error. The train budget must be between 1,000 and 72,000 milli node hours, inclusive.", - "format": "int64", - "type": "string" - }, - "transformations": { - "description": "Each transformation will apply transform function to given input column. And the result will be used for training. When creating transformation for BigQuery Struct column, the column should be flattened using \".\" as the delimiter.", + "ids": { + "description": "The resource IDs of the AnnotationSpecs that had been identified, ordered by the confidence score descendingly.", "items": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformation" + "format": "int64", + "type": "string" }, "type": "array" }, - "unavailableAtForecastColumns": { - "description": "Names of columns that are unavailable when a forecast is requested. This column contains information for the given entity (identified by the time_series_identifier_column) that is unknown before the forecast For example, actual weather on a given day.", + "textSegmentEndOffsets": { + "description": "The end offsets, inclusive, of the text segment in which the AnnotationSpec has been identified. Expressed as a zero-based number of characters as measured from the start of the text snippet.", "items": { + "format": "int64", "type": "string" }, "type": "array" }, - "validationOptions": { - "description": "Validation options for the data validation component. The available options are: * \"fail-pipeline\" - default, will validate against the validation and fail the pipeline if it fails. * \"ignore-validation\" - ignore the results of the validation and continue", - "type": "string" - }, - "weightColumn": { - "description": "Column name that should be used as the weight column. Higher values in this column give more importance to the row during model training. The column must have numeric values between 0 and 10000 inclusively; 0 means the row is ignored for training. If weight column field is not set, then all rows are assumed to have equal weight of 1. This column must be available at forecast.", - "type": "string" - }, - "windowConfig": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionWindowConfig", - "description": "Config containing strategy for generating sliding windows." + "textSegmentStartOffsets": { + "description": "The start offsets, inclusive, of the text segment in which the AnnotationSpec has been identified. Expressed as a zero-based number of characters as measured from the start of the text snippet.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsGranularity": { - "description": "A duration of time expressed in time granularity units.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsGranularity", + "GoogleCloudAiplatformV1SchemaPredictPredictionTextSentimentPredictionResult": { + "description": "Prediction output format for Text Sentiment", + "id": "GoogleCloudAiplatformV1SchemaPredictPredictionTextSentimentPredictionResult", "properties": { - "quantity": { - "description": "The number of granularity_units between data points in the training data. If `granularity_unit` is `minute`, can be 1, 5, 10, 15, or 30. For all other values of `granularity_unit`, must be 1.", - "format": "int64", - "type": "string" - }, - "unit": { - "description": "The time granularity unit of this time period. The supported units are: * \"minute\" * \"hour\" * \"day\" * \"week\" * \"month\" * \"year\"", - "type": "string" + "sentiment": { + "description": "The integer sentiment labels between 0 (inclusive) and sentimentMax label (inclusive), while 0 maps to the least positive sentiment and sentimentMax maps to the most positive one. The higher the score is, the more positive the sentiment in the text snippet is. Note: sentimentMax is an integer value between 1 (inclusive) and 10 (inclusive).", + "format": "int32", + "type": "integer" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformation": { - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformation", + "GoogleCloudAiplatformV1SchemaPredictPredictionTftFeatureImportance": { + "id": "GoogleCloudAiplatformV1SchemaPredictPredictionTftFeatureImportance", "properties": { - "auto": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformationAutoTransformation" + "attributeColumns": { + "items": { + "type": "string" + }, + "type": "array" }, - "categorical": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformationCategoricalTransformation" + "attributeWeights": { + "items": { + "format": "float", + "type": "number" + }, + "type": "array" }, - "numeric": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformationNumericTransformation" + "contextColumns": { + "items": { + "type": "string" + }, + "type": "array" }, - "text": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformationTextTransformation" + "contextWeights": { + "description": "TFT feature importance values. Each pair for {context/horizon/attribute} should have the same shape since the weight corresponds to the column names.", + "items": { + "format": "float", + "type": "number" + }, + "type": "array" }, - "timestamp": { - "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformationTimestampTransformation" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformationAutoTransformation": { - "description": "Training pipeline will infer the proper transformation based on the statistic of dataset.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformationAutoTransformation", - "properties": { - "columnName": { - "type": "string" + "horizonColumns": { + "items": { + "type": "string" + }, + "type": "array" + }, + "horizonWeights": { + "items": { + "format": "float", + "type": "number" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformationCategoricalTransformation": { - "description": "Training pipeline will perform following transformation functions. * The categorical string as is--no change to case, punctuation, spelling, tense, and so on. * Convert the category name to a dictionary lookup index and generate an embedding for each index. * Categories that appear less than 5 times in the training dataset are treated as the \"unknown\" category. The \"unknown\" category gets its own special lookup index and resulting embedding.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformationCategoricalTransformation", + "GoogleCloudAiplatformV1SchemaPredictPredictionTimeSeriesForecastingPredictionResult": { + "description": "Prediction output format for Time Series Forecasting.", + "id": "GoogleCloudAiplatformV1SchemaPredictPredictionTimeSeriesForecastingPredictionResult", "properties": { - "columnName": { - "type": "string" + "quantilePredictions": { + "description": "Quantile predictions, in 1-1 correspondence with quantile_values.", + "items": { + "format": "float", + "type": "number" + }, + "type": "array" + }, + "quantileValues": { + "description": "Quantile values.", + "items": { + "format": "float", + "type": "number" + }, + "type": "array" + }, + "tftFeatureImportance": { + "$ref": "GoogleCloudAiplatformV1SchemaPredictPredictionTftFeatureImportance", + "description": "Only use these if TFt is enabled." + }, + "value": { + "description": "The regression value.", + "format": "float", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformationNumericTransformation": { - "description": "Training pipeline will perform following transformation functions. * The value converted to float32. * The z_score of the value. * log(value+1) when the value is greater than or equal to 0. Otherwise, this transformation is not applied and the value is considered a missing value. * z_score of log(value+1) when the value is greater than or equal to 0. Otherwise, this transformation is not applied and the value is considered a missing value.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformationNumericTransformation", + "GoogleCloudAiplatformV1SchemaPredictPredictionVideoActionRecognitionPredictionResult": { + "description": "Prediction output format for Video Action Recognition.", + "id": "GoogleCloudAiplatformV1SchemaPredictPredictionVideoActionRecognitionPredictionResult", "properties": { - "columnName": { + "confidence": { + "description": "The Model's confidence in correction of this prediction, higher value means higher confidence.", + "format": "float", + "type": "number" + }, + "displayName": { + "description": "The display name of the AnnotationSpec that had been identified.", "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformationTextTransformation": { - "description": "Training pipeline will perform following transformation functions. * The text as is--no change to case, punctuation, spelling, tense, and so on. * Convert the category name to a dictionary lookup index and generate an embedding for each index.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformationTextTransformation", - "properties": { - "columnName": { + }, + "id": { + "description": "The resource ID of the AnnotationSpec that had been identified.", "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformationTimestampTransformation": { - "description": "Training pipeline will perform following transformation functions. * Apply the transformation functions for Numerical columns. * Determine the year, month, day,and weekday. Treat each value from the timestamp as a Categorical column. * Invalid numerical values (for example, values that fall outside of a typical timestamp range, or are extreme values) receive no special treatment and are not removed.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformationTimestampTransformation", - "properties": { - "columnName": { + }, + "timeSegmentEnd": { + "description": "The end, exclusive, of the video's time segment in which the AnnotationSpec has been identified. Expressed as a number of seconds as measured from the start of the video, with fractions up to a microsecond precision, and with \"s\" appended at the end.", + "format": "google-duration", "type": "string" }, - "timeFormat": { - "description": "The format in which that time field is expressed. The time_format must either be one of: * `unix-seconds` * `unix-milliseconds` * `unix-microseconds` * `unix-nanoseconds` (for respectively number of seconds, milliseconds, microseconds and nanoseconds since start of the Unix epoch); or be written in `strftime` syntax. If time_format is not set, then the default format is RFC 3339 `date-time` format, where `time-offset` = `\"Z\"` (e.g. 1985-04-12T23:20:50.52Z)", + "timeSegmentStart": { + "description": "The beginning, inclusive, of the video's time segment in which the AnnotationSpec has been identified. Expressed as a number of seconds as measured from the start of the video, with fractions up to a microsecond precision, and with \"s\" appended at the end.", + "format": "google-duration", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingMetadata": { - "description": "Model metadata specific to TFT Forecasting.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingMetadata", + "GoogleCloudAiplatformV1SchemaPredictPredictionVideoClassificationPredictionResult": { + "description": "Prediction output format for Video Classification.", + "id": "GoogleCloudAiplatformV1SchemaPredictPredictionVideoClassificationPredictionResult", "properties": { - "evaluatedDataItemsBigqueryUri": { - "description": "BigQuery destination uri for exported evaluated examples.", + "confidence": { + "description": "The Model's confidence in correction of this prediction, higher value means higher confidence.", + "format": "float", + "type": "number" + }, + "displayName": { + "description": "The display name of the AnnotationSpec that had been identified.", "type": "string" }, - "trainCostMilliNodeHours": { - "description": "Output only. The actual training cost of the model, expressed in milli node hours, i.e. 1,000 value in this field means 1 node hour. Guaranteed to not exceed the train budget.", - "format": "int64", + "id": { + "description": "The resource ID of the AnnotationSpec that had been identified.", "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionWindowConfig": { - "description": "Config that contains the strategy used to generate sliding windows in time series training. A window is a series of rows that comprise the context up to the time of prediction, and the horizon following. The corresponding row for each window marks the start of the forecast horizon. Each window is used as an input example for training/evaluation.", - "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionWindowConfig", - "properties": { - "column": { - "description": "Name of the column that should be used to generate sliding windows. The column should contain either booleans or string booleans; if the value of the row is True, generate a sliding window with the horizon starting at that row. The column will not be used as a feature in training.", + }, + "timeSegmentEnd": { + "description": "The end, exclusive, of the video's time segment in which the AnnotationSpec has been identified. Expressed as a number of seconds as measured from the start of the video, with fractions up to a microsecond precision, and with \"s\" appended at the end. Note that for 'segment-classification' prediction type, this equals the original 'timeSegmentEnd' from the input instance, for other types it is the end of a shot or a 1 second interval respectively.", + "format": "google-duration", "type": "string" }, - "maxCount": { - "description": "Maximum number of windows that should be generated across all time series.", - "format": "int64", + "timeSegmentStart": { + "description": "The beginning, inclusive, of the video's time segment in which the AnnotationSpec has been identified. Expressed as a number of seconds as measured from the start of the video, with fractions up to a microsecond precision, and with \"s\" appended at the end. Note that for 'segment-classification' prediction type, this equals the original 'timeSegmentStart' from the input instance, for other types it is the start of a shot or a 1 second interval respectively.", + "format": "google-duration", "type": "string" }, - "strideLength": { - "description": "Stride length used to generate input examples. Within one time series, every {$STRIDE_LENGTH} rows will be used to generate a sliding window.", - "format": "int64", + "type": { + "description": "The type of the prediction. The requested types can be configured via parameters. This will be one of - segment-classification - shot-classification - one-sec-interval-classification", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaVertex": { - "description": "A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.", - "id": "GoogleCloudAiplatformV1SchemaVertex", + "GoogleCloudAiplatformV1SchemaPredictPredictionVideoObjectTrackingPredictionResult": { + "description": "Prediction output format for Video Object Tracking.", + "id": "GoogleCloudAiplatformV1SchemaPredictPredictionVideoObjectTrackingPredictionResult", "properties": { - "x": { - "description": "X coordinate.", - "format": "double", - "type": "number" - }, - "y": { - "description": "Y coordinate.", - "format": "double", + "confidence": { + "description": "The Model's confidence in correction of this prediction, higher value means higher confidence.", + "format": "float", "type": "number" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1SchemaVideoActionRecognitionAnnotation": { - "description": "Annotation details specific to video action recognition.", - "id": "GoogleCloudAiplatformV1SchemaVideoActionRecognitionAnnotation", - "properties": { - "annotationSpecId": { - "description": "The resource Id of the AnnotationSpec that this Annotation pertains to.", - "type": "string" }, "displayName": { - "description": "The display name of the AnnotationSpec that this Annotation pertains to.", - "type": "string" - }, - "timeSegment": { - "$ref": "GoogleCloudAiplatformV1SchemaTimeSegment", - "description": "This Annotation applies to the time period represented by the TimeSegment. If it's not set, the Annotation applies to the whole video." - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1SchemaVideoClassificationAnnotation": { - "description": "Annotation details specific to video classification.", - "id": "GoogleCloudAiplatformV1SchemaVideoClassificationAnnotation", - "properties": { - "annotationSpecId": { - "description": "The resource Id of the AnnotationSpec that this Annotation pertains to.", + "description": "The display name of the AnnotationSpec that had been identified.", "type": "string" }, - "displayName": { - "description": "The display name of the AnnotationSpec that this Annotation pertains to.", - "type": "string" + "frames": { + "description": "All of the frames of the video in which a single object instance has been detected. The bounding boxes in the frames identify the same object.", + "items": { + "$ref": "GoogleCloudAiplatformV1SchemaPredictPredictionVideoObjectTrackingPredictionResultFrame" + }, + "type": "array" }, - "timeSegment": { - "$ref": "GoogleCloudAiplatformV1SchemaTimeSegment", - "description": "This Annotation applies to the time period represented by the TimeSegment. If it's not set, the Annotation applies to the whole video." - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1SchemaVideoDataItem": { - "description": "Payload of Video DataItem.", - "id": "GoogleCloudAiplatformV1SchemaVideoDataItem", - "properties": { - "gcsUri": { - "description": "Required. Google Cloud Storage URI points to the original video in user's bucket. The video is up to 50 GB in size and up to 3 hour in duration.", + "id": { + "description": "The resource ID of the AnnotationSpec that had been identified.", "type": "string" }, - "mimeType": { - "description": "Output only. The mime type of the content of the video. Only the videos in below listed mime types are supported. Supported mime_type: - video/mp4 - video/avi - video/quicktime", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1SchemaVideoDatasetMetadata": { - "description": "The metadata of Datasets that contain Video DataItems.", - "id": "GoogleCloudAiplatformV1SchemaVideoDatasetMetadata", - "properties": { - "dataItemSchemaUri": { - "description": "Points to a YAML file stored on Google Cloud Storage describing payload of the Video DataItems that belong to this Dataset.", + "timeSegmentEnd": { + "description": "The end, inclusive, of the video's time segment in which the object instance has been detected. Expressed as a number of seconds as measured from the start of the video, with fractions up to a microsecond precision, and with \"s\" appended at the end.", + "format": "google-duration", "type": "string" }, - "gcsBucket": { - "description": "Google Cloud Storage Bucket name that contains the blob data of this Dataset.", + "timeSegmentStart": { + "description": "The beginning, inclusive, of the video's time segment in which the object instance has been detected. Expressed as a number of seconds as measured from the start of the video, with fractions up to a microsecond precision, and with \"s\" appended at the end.", + "format": "google-duration", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaVideoObjectTrackingAnnotation": { - "description": "Annotation details specific to video object tracking.", - "id": "GoogleCloudAiplatformV1SchemaVideoObjectTrackingAnnotation", + "GoogleCloudAiplatformV1SchemaPredictPredictionVideoObjectTrackingPredictionResultFrame": { + "description": "The fields `xMin`, `xMax`, `yMin`, and `yMax` refer to a bounding box, i.e. the rectangle over the video frame pinpointing the found AnnotationSpec. The coordinates are relative to the frame size, and the point 0,0 is in the top left of the frame.", + "id": "GoogleCloudAiplatformV1SchemaPredictPredictionVideoObjectTrackingPredictionResultFrame", "properties": { - "annotationSpecId": { - "description": "The resource Id of the AnnotationSpec that this Annotation pertains to.", - "type": "string" - }, - "displayName": { - "description": "The display name of the AnnotationSpec that this Annotation pertains to.", - "type": "string" - }, - "instanceId": { - "description": "The instance of the object, expressed as a positive integer. Used to track the same object across different frames.", - "format": "int64", - "type": "string" - }, "timeOffset": { - "description": "A time (frame) of a video to which this annotation pertains. Represented as the duration since the video's start.", + "description": "A time (frame) of a video in which the object has been detected. Expressed as a number of seconds as measured from the start of the video, with fractions up to a microsecond precision, and with \"s\" appended at the end.", "format": "google-duration", "type": "string" }, "xMax": { "description": "The rightmost coordinate of the bounding box.", - "format": "double", + "format": "float", "type": "number" }, "xMin": { "description": "The leftmost coordinate of the bounding box.", - "format": "double", + "format": "float", "type": "number" }, "yMax": { "description": "The bottommost coordinate of the bounding box.", - "format": "double", + "format": "float", "type": "number" }, "yMin": { "description": "The topmost coordinate of the bounding box.", - "format": "double", + "format": "float", "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaVisualInspectionClassificationLabelSavedQueryMetadata": { - "id": "GoogleCloudAiplatformV1SchemaVisualInspectionClassificationLabelSavedQueryMetadata", + "GoogleCloudAiplatformV1SchemaPredictionResult": { + "description": "Represents a line of JSONL in the batch prediction output file.", + "id": "GoogleCloudAiplatformV1SchemaPredictionResult", "properties": { - "multiLabel": { - "description": "Whether or not the classification label is multi_label.", - "type": "boolean" + "error": { + "$ref": "GoogleCloudAiplatformV1SchemaPredictionResultError", + "description": "The error result. Do not set prediction if this is set." + }, + "instance": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "User's input instance. Struct is used here instead of Any so that JsonFormat does not append an extra \"@type\" field when we convert the proto to JSON.", + "type": "object" + }, + "key": { + "description": "Optional user-provided key from the input instance.", + "type": "string" + }, + "prediction": { + "description": "The prediction result. Value is used here instead of Any so that JsonFormat does not append an extra \"@type\" field when we convert the proto to JSON and so we can represent array of objects. Do not set error if this is set.", + "type": "any" } }, "type": "object" }, - "GoogleCloudAiplatformV1SchemaVisualInspectionMaskSavedQueryMetadata": { - "id": "GoogleCloudAiplatformV1SchemaVisualInspectionMaskSavedQueryMetadata", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1SearchDataItemsResponse": { - "description": "Response message for DatasetService.SearchDataItems.", - "id": "GoogleCloudAiplatformV1SearchDataItemsResponse", + "GoogleCloudAiplatformV1SchemaPredictionResultError": { + "id": "GoogleCloudAiplatformV1SchemaPredictionResultError", "properties": { - "dataItemViews": { - "description": "The DataItemViews read.", - "items": { - "$ref": "GoogleCloudAiplatformV1DataItemView" - }, - "type": "array" + "message": { + "description": "Error message with additional details.", + "type": "string" }, - "nextPageToken": { - "description": "A token to retrieve next page of results. Pass to SearchDataItemsRequest.page_token to obtain that page.", + "status": { + "description": "Error status. This will be serialized into the enum name e.g. \"NOT_FOUND\".", + "enum": [ + "OK", + "CANCELLED", + "UNKNOWN", + "INVALID_ARGUMENT", + "DEADLINE_EXCEEDED", + "NOT_FOUND", + "ALREADY_EXISTS", + "PERMISSION_DENIED", + "UNAUTHENTICATED", + "RESOURCE_EXHAUSTED", + "FAILED_PRECONDITION", + "ABORTED", + "OUT_OF_RANGE", + "UNIMPLEMENTED", + "INTERNAL", + "UNAVAILABLE", + "DATA_LOSS" + ], + "enumDescriptions": [ + "Not an error; returned on success. HTTP Mapping: 200 OK", + "The operation was cancelled, typically by the caller. HTTP Mapping: 499 Client Closed Request", + "Unknown error. For example, this error may be returned when a `Status` value received from another address space belongs to an error space that is not known in this address space. Also errors raised by APIs that do not return enough error information may be converted to this error. HTTP Mapping: 500 Internal Server Error", + "The client specified an invalid argument. Note that this differs from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates arguments that are problematic regardless of the state of the system (e.g., a malformed file name). HTTP Mapping: 400 Bad Request", + "The deadline expired before the operation could complete. For operations that change the state of the system, this error may be returned even if the operation has completed successfully. For example, a successful response from a server could have been delayed long enough for the deadline to expire. HTTP Mapping: 504 Gateway Timeout", + "Some requested entity (e.g., file or directory) was not found. Note to server developers: if a request is denied for an entire class of users, such as gradual feature rollout or undocumented allowlist, `NOT_FOUND` may be used. If a request is denied for some users within a class of users, such as user-based access control, `PERMISSION_DENIED` must be used. HTTP Mapping: 404 Not Found", + "The entity that a client attempted to create (e.g., file or directory) already exists. HTTP Mapping: 409 Conflict", + "The caller does not have permission to execute the specified operation. `PERMISSION_DENIED` must not be used for rejections caused by exhausting some resource (use `RESOURCE_EXHAUSTED` instead for those errors). `PERMISSION_DENIED` must not be used if the caller can not be identified (use `UNAUTHENTICATED` instead for those errors). This error code does not imply the request is valid or the requested entity exists or satisfies other pre-conditions. HTTP Mapping: 403 Forbidden", + "The request does not have valid authentication credentials for the operation. HTTP Mapping: 401 Unauthorized", + "Some resource has been exhausted, perhaps a per-user quota, or perhaps the entire file system is out of space. HTTP Mapping: 429 Too Many Requests", + "The operation was rejected because the system is not in a state required for the operation's execution. For example, the directory to be deleted is non-empty, an rmdir operation is applied to a non-directory, etc. Service implementors can use the following guidelines to decide between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`: (a) Use `UNAVAILABLE` if the client can retry just the failing call. (b) Use `ABORTED` if the client should retry at a higher level. For example, when a client-specified test-and-set fails, indicating the client should restart a read-modify-write sequence. (c) Use `FAILED_PRECONDITION` if the client should not retry until the system state has been explicitly fixed. For example, if an \"rmdir\" fails because the directory is non-empty, `FAILED_PRECONDITION` should be returned since the client should not retry unless the files are deleted from the directory. HTTP Mapping: 400 Bad Request", + "The operation was aborted, typically due to a concurrency issue such as a sequencer check failure or transaction abort. See the guidelines above for deciding between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 409 Conflict", + "The operation was attempted past the valid range. E.g., seeking or reading past end-of-file. Unlike `INVALID_ARGUMENT`, this error indicates a problem that may be fixed if the system state changes. For example, a 32-bit file system will generate `INVALID_ARGUMENT` if asked to read at an offset that is not in the range [0,2^32-1], but it will generate `OUT_OF_RANGE` if asked to read from an offset past the current file size. There is a fair bit of overlap between `FAILED_PRECONDITION` and `OUT_OF_RANGE`. We recommend using `OUT_OF_RANGE` (the more specific error) when it applies so that callers who are iterating through a space can easily look for an `OUT_OF_RANGE` error to detect when they are done. HTTP Mapping: 400 Bad Request", + "The operation is not implemented or is not supported/enabled in this service. HTTP Mapping: 501 Not Implemented", + "Internal errors. This means that some invariants expected by the underlying system have been broken. This error code is reserved for serious errors. HTTP Mapping: 500 Internal Server Error", + "The service is currently unavailable. This is most likely a transient condition, which can be corrected by retrying with a backoff. Note that it is not always safe to retry non-idempotent operations. See the guidelines above for deciding between `FAILED_PRECONDITION`, `ABORTED`, and `UNAVAILABLE`. HTTP Mapping: 503 Service Unavailable", + "Unrecoverable data loss or corruption. HTTP Mapping: 500 Internal Server Error" + ], "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SearchFeaturesResponse": { - "description": "Response message for FeaturestoreService.SearchFeatures.", - "id": "GoogleCloudAiplatformV1SearchFeaturesResponse", + "GoogleCloudAiplatformV1SchemaTablesDatasetMetadata": { + "description": "The metadata of Datasets that contain tables data.", + "id": "GoogleCloudAiplatformV1SchemaTablesDatasetMetadata", "properties": { - "features": { - "description": "The Features matching the request. Fields returned: * `name` * `description` * `labels` * `create_time` * `update_time`", - "items": { - "$ref": "GoogleCloudAiplatformV1Feature" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token, which can be sent as SearchFeaturesRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", - "type": "string" + "inputConfig": { + "$ref": "GoogleCloudAiplatformV1SchemaTablesDatasetMetadataInputConfig" } }, "type": "object" }, - "GoogleCloudAiplatformV1SearchMigratableResourcesRequest": { - "description": "Request message for MigrationService.SearchMigratableResources.", - "id": "GoogleCloudAiplatformV1SearchMigratableResourcesRequest", + "GoogleCloudAiplatformV1SchemaTablesDatasetMetadataBigQuerySource": { + "id": "GoogleCloudAiplatformV1SchemaTablesDatasetMetadataBigQuerySource", "properties": { - "filter": { - "description": "A filter for your search. You can use the following types of filters: * Resource type filters. The following strings filter for a specific type of MigratableResource: * `ml_engine_model_version:*` * `automl_model:*` * `automl_dataset:*` * `data_labeling_dataset:*` * \"Migrated or not\" filters. The following strings filter for resources that either have or have not already been migrated: * `last_migrate_time:*` filters for migrated resources. * `NOT last_migrate_time:*` filters for not yet migrated resources.", - "type": "string" - }, - "pageSize": { - "description": "The standard page size. The default and maximum value is 100.", - "format": "int32", - "type": "integer" - }, - "pageToken": { - "description": "The standard page token.", + "uri": { + "description": "The URI of a BigQuery table. e.g. bq://projectId.bqDatasetId.bqTableId", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SearchMigratableResourcesResponse": { - "description": "Response message for MigrationService.SearchMigratableResources.", - "id": "GoogleCloudAiplatformV1SearchMigratableResourcesResponse", + "GoogleCloudAiplatformV1SchemaTablesDatasetMetadataGcsSource": { + "id": "GoogleCloudAiplatformV1SchemaTablesDatasetMetadataGcsSource", "properties": { - "migratableResources": { - "description": "All migratable resources that can be migrated to the location specified in the request.", + "uri": { + "description": "Cloud Storage URI of one or more files. Only CSV files are supported. The first line of the CSV file is used as the header. If there are multiple files, the header is the first line of the lexicographically first file, the other files must either contain the exact same header or omit the header.", "items": { - "$ref": "GoogleCloudAiplatformV1MigratableResource" + "type": "string" }, "type": "array" - }, - "nextPageToken": { - "description": "The standard next-page token. The migratable_resources may not fill page_size in SearchMigratableResourcesRequest even when there are subsequent pages.", - "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SearchModelDeploymentMonitoringStatsAnomaliesRequest": { - "description": "Request message for JobService.SearchModelDeploymentMonitoringStatsAnomalies.", - "id": "GoogleCloudAiplatformV1SearchModelDeploymentMonitoringStatsAnomaliesRequest", + "GoogleCloudAiplatformV1SchemaTablesDatasetMetadataInputConfig": { + "description": "The tables Dataset's data source. The Dataset doesn't store the data directly, but only pointer(s) to its data.", + "id": "GoogleCloudAiplatformV1SchemaTablesDatasetMetadataInputConfig", "properties": { - "deployedModelId": { - "description": "Required. The DeployedModel ID of the [ModelDeploymentMonitoringObjectiveConfig.deployed_model_id].", - "type": "string" - }, - "endTime": { - "description": "The latest timestamp of stats being generated. If not set, indicates feching stats till the latest possible one.", - "format": "google-datetime", - "type": "string" - }, - "featureDisplayName": { - "description": "The feature display name. If specified, only return the stats belonging to this feature. Format: ModelMonitoringStatsAnomalies.FeatureHistoricStatsAnomalies.feature_display_name, example: \"user_destination\".", - "type": "string" - }, - "objectives": { - "description": "Required. Objectives of the stats to retrieve.", - "items": { - "$ref": "GoogleCloudAiplatformV1SearchModelDeploymentMonitoringStatsAnomaliesRequestStatsAnomaliesObjective" - }, - "type": "array" - }, - "pageSize": { - "description": "The standard list page size.", - "format": "int32", - "type": "integer" + "bigquerySource": { + "$ref": "GoogleCloudAiplatformV1SchemaTablesDatasetMetadataBigQuerySource" }, - "pageToken": { - "description": "A page token received from a previous JobService.SearchModelDeploymentMonitoringStatsAnomalies call.", + "gcsSource": { + "$ref": "GoogleCloudAiplatformV1SchemaTablesDatasetMetadataGcsSource" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTextClassificationAnnotation": { + "description": "Annotation details specific to text classification.", + "id": "GoogleCloudAiplatformV1SchemaTextClassificationAnnotation", + "properties": { + "annotationSpecId": { + "description": "The resource Id of the AnnotationSpec that this Annotation pertains to.", "type": "string" }, - "startTime": { - "description": "The earliest timestamp of stats being generated. If not set, indicates fetching stats till the earliest possible one.", - "format": "google-datetime", + "displayName": { + "description": "The display name of the AnnotationSpec that this Annotation pertains to.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SearchModelDeploymentMonitoringStatsAnomaliesRequestStatsAnomaliesObjective": { - "description": "Stats requested for specific objective.", - "id": "GoogleCloudAiplatformV1SearchModelDeploymentMonitoringStatsAnomaliesRequestStatsAnomaliesObjective", + "GoogleCloudAiplatformV1SchemaTextDataItem": { + "description": "Payload of Text DataItem.", + "id": "GoogleCloudAiplatformV1SchemaTextDataItem", "properties": { - "topFeatureCount": { - "description": "If set, all attribution scores between SearchModelDeploymentMonitoringStatsAnomaliesRequest.start_time and SearchModelDeploymentMonitoringStatsAnomaliesRequest.end_time are fetched, and page token doesn't take effect in this case. Only used to retrieve attribution score for the top Features which has the highest attribution score in the latest monitoring run.", - "format": "int32", - "type": "integer" - }, - "type": { - "enum": [ - "MODEL_DEPLOYMENT_MONITORING_OBJECTIVE_TYPE_UNSPECIFIED", - "RAW_FEATURE_SKEW", - "RAW_FEATURE_DRIFT", - "FEATURE_ATTRIBUTION_SKEW", - "FEATURE_ATTRIBUTION_DRIFT" - ], - "enumDescriptions": [ - "Default value, should not be set.", - "Raw feature values' stats to detect skew between Training-Prediction datasets.", - "Raw feature values' stats to detect drift between Serving-Prediction datasets.", - "Feature attribution scores to detect skew between Training-Prediction datasets.", - "Feature attribution scores to detect skew between Prediction datasets collected within different time windows." - ], + "gcsUri": { + "description": "Output only. Google Cloud Storage URI points to the original text in user's bucket. The text file is up to 10MB in size.", + "readOnly": true, "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SearchModelDeploymentMonitoringStatsAnomaliesResponse": { - "description": "Response message for JobService.SearchModelDeploymentMonitoringStatsAnomalies.", - "id": "GoogleCloudAiplatformV1SearchModelDeploymentMonitoringStatsAnomaliesResponse", + "GoogleCloudAiplatformV1SchemaTextDatasetMetadata": { + "description": "The metadata of Datasets that contain Text DataItems.", + "id": "GoogleCloudAiplatformV1SchemaTextDatasetMetadata", "properties": { - "monitoringStats": { - "description": "Stats retrieved for requested objectives. There are at most 1000 ModelMonitoringStatsAnomalies.FeatureHistoricStatsAnomalies.prediction_stats in the response.", - "items": { - "$ref": "GoogleCloudAiplatformV1ModelMonitoringStatsAnomalies" - }, - "type": "array" + "dataItemSchemaUri": { + "description": "Points to a YAML file stored on Google Cloud Storage describing payload of the Text DataItems that belong to this Dataset.", + "type": "string" }, - "nextPageToken": { - "description": "The page token that can be used by the next JobService.SearchModelDeploymentMonitoringStatsAnomalies call.", + "gcsBucket": { + "description": "Google Cloud Storage Bucket name that contains the blob data of this Dataset.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SmoothGradConfig": { - "description": "Config for SmoothGrad approximation of gradients. When enabled, the gradients are approximated by averaging the gradients from noisy samples in the vicinity of the inputs. Adding noise can help improve the computed gradients. Refer to this paper for more details: https://arxiv.org/pdf/1706.03825.pdf", - "id": "GoogleCloudAiplatformV1SmoothGradConfig", + "GoogleCloudAiplatformV1SchemaTextExtractionAnnotation": { + "description": "Annotation details specific to text extraction.", + "id": "GoogleCloudAiplatformV1SchemaTextExtractionAnnotation", "properties": { - "featureNoiseSigma": { - "$ref": "GoogleCloudAiplatformV1FeatureNoiseSigma", - "description": "This is similar to noise_sigma, but provides additional flexibility. A separate noise sigma can be provided for each feature, which is useful if their distributions are different. No noise is added to features that are not set. If this field is unset, noise_sigma will be used for all features." + "annotationSpecId": { + "description": "The resource Id of the AnnotationSpec that this Annotation pertains to.", + "type": "string" }, - "noiseSigma": { - "description": "This is a single float value and will be used to add noise to all the features. Use this field when all features are normalized to have the same distribution: scale to range [0, 1], [-1, 1] or z-scoring, where features are normalized to have 0-mean and 1-variance. Learn more about [normalization](https://developers.google.com/machine-learning/data-prep/transform/normalization). For best results the recommended value is about 10% - 20% of the standard deviation of the input feature. Refer to section 3.2 of the SmoothGrad paper: https://arxiv.org/pdf/1706.03825.pdf. Defaults to 0.1. If the distribution is different per feature, set feature_noise_sigma instead for each feature.", - "format": "float", - "type": "number" + "displayName": { + "description": "The display name of the AnnotationSpec that this Annotation pertains to.", + "type": "string" }, - "noisySampleCount": { - "description": "The number of gradient samples to use for approximation. The higher this number, the more accurate the gradient is, but the runtime complexity increases by this factor as well. Valid range of its value is [1, 50]. Defaults to 3.", - "format": "int32", - "type": "integer" + "textSegment": { + "$ref": "GoogleCloudAiplatformV1SchemaTextSegment", + "description": "The segment of the text content." } }, "type": "object" }, - "GoogleCloudAiplatformV1SpecialistPool": { - "description": "SpecialistPool represents customers' own workforce to work on their data labeling jobs. It includes a group of specialist managers and workers. Managers are responsible for managing the workers in this pool as well as customers' data labeling jobs associated with this pool. Customers create specialist pool as well as start data labeling jobs on Cloud, managers and workers handle the jobs using CrowdCompute console.", - "id": "GoogleCloudAiplatformV1SpecialistPool", + "GoogleCloudAiplatformV1SchemaTextPromptDatasetMetadata": { + "description": "The metadata of Datasets that contain Text Prompt data.", + "id": "GoogleCloudAiplatformV1SchemaTextPromptDatasetMetadata", "properties": { - "displayName": { - "description": "Required. The user-defined name of the SpecialistPool. The name can be up to 128 characters long and can consist of any UTF-8 characters. This field should be unique on project-level.", + "candidateCount": { + "description": "Number of candidates.", + "format": "int64", "type": "string" }, - "name": { - "description": "Required. The resource name of the SpecialistPool.", + "gcsUri": { + "description": "The Google Cloud Storage URI that stores the prompt data.", "type": "string" }, - "pendingDataLabelingJobs": { - "description": "Output only. The resource name of the pending data labeling jobs.", - "items": { - "type": "string" - }, - "readOnly": true, - "type": "array" + "groundingConfig": { + "$ref": "GoogleCloudAiplatformV1SchemaPredictParamsGroundingConfig", + "description": "Grounding checking configuration." }, - "specialistManagerEmails": { - "description": "The email addresses of the managers in the SpecialistPool.", - "items": { - "type": "string" - }, - "type": "array" + "maxOutputTokens": { + "description": "Value of the maximum number of tokens generated set when the dataset was saved.", + "format": "int64", + "type": "string" }, - "specialistManagersCount": { - "description": "Output only. The number of managers in this SpecialistPool.", - "format": "int32", - "readOnly": true, - "type": "integer" + "note": { + "description": "User-created prompt note. Note size limit is 2KB.", + "type": "string" }, - "specialistWorkerEmails": { - "description": "The email addresses of workers in the SpecialistPool.", + "promptType": { + "description": "Type of the prompt dataset.", + "type": "string" + }, + "stopSequences": { + "description": "Customized stop sequences.", "items": { "type": "string" }, "type": "array" + }, + "temperature": { + "description": "Temperature value used for sampling set when the dataset was saved. This value is used to tune the degree of randomness.", + "format": "float", + "type": "number" + }, + "text": { + "description": "The content of the prompt dataset.", + "type": "string" + }, + "topK": { + "description": "Top K value set when the dataset was saved. This value determines how many candidates with highest probability from the vocab would be selected for each decoding step.", + "format": "int64", + "type": "string" + }, + "topP": { + "description": "Top P value set when the dataset was saved. Given topK tokens for decoding, top candidates will be selected until the sum of their probabilities is topP.", + "format": "float", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1StartNotebookRuntimeOperationMetadata": { - "description": "Metadata information for NotebookService.StartNotebookRuntime.", - "id": "GoogleCloudAiplatformV1StartNotebookRuntimeOperationMetadata", + "GoogleCloudAiplatformV1SchemaTextSegment": { + "description": "The text segment inside of DataItem.", + "id": "GoogleCloudAiplatformV1SchemaTextSegment", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "The operation generic information." + "content": { + "description": "The text content in the segment for output only.", + "type": "string" }, - "progressMessage": { - "description": "A human-readable message that shows the intermediate progress details of NotebookRuntime.", + "endOffset": { + "description": "Zero-based character index of the first character past the end of the text segment (counting character from the beginning of the text). The character at the end_offset is NOT included in the text segment.", + "format": "uint64", + "type": "string" + }, + "startOffset": { + "description": "Zero-based character index of the first character of the text segment (counting characters from the beginning of the text).", + "format": "uint64", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1StartNotebookRuntimeRequest": { - "description": "Request message for NotebookService.StartNotebookRuntime.", - "id": "GoogleCloudAiplatformV1StartNotebookRuntimeRequest", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1StopTrialRequest": { - "description": "Request message for VizierService.StopTrial.", - "id": "GoogleCloudAiplatformV1StopTrialRequest", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1StratifiedSplit": { - "description": "Assigns input data to the training, validation, and test sets so that the distribution of values found in the categorical column (as specified by the `key` field) is mirrored within each split. The fraction values determine the relative sizes of the splits. For example, if the specified column has three values, with 50% of the rows having value \"A\", 25% value \"B\", and 25% value \"C\", and the split fractions are specified as 80/10/10, then the training set will constitute 80% of the training data, with about 50% of the training set rows having the value \"A\" for the specified column, about 25% having the value \"B\", and about 25% having the value \"C\". Only the top 500 occurring values are used; any values not in the top 500 values are randomly assigned to a split. If less than three rows contain a specific value, those rows are randomly assigned. Supported only for tabular Datasets.", - "id": "GoogleCloudAiplatformV1StratifiedSplit", + "GoogleCloudAiplatformV1SchemaTextSentimentAnnotation": { + "description": "Annotation details specific to text sentiment.", + "id": "GoogleCloudAiplatformV1SchemaTextSentimentAnnotation", "properties": { - "key": { - "description": "Required. The key is a name of one of the Dataset's data columns. The key provided must be for a categorical column.", + "annotationSpecId": { + "description": "The resource Id of the AnnotationSpec that this Annotation pertains to.", "type": "string" }, - "testFraction": { - "description": "The fraction of the input data that is to be used to evaluate the Model.", - "format": "double", - "type": "number" + "displayName": { + "description": "The display name of the AnnotationSpec that this Annotation pertains to.", + "type": "string" }, - "trainingFraction": { - "description": "The fraction of the input data that is to be used to train the Model.", - "format": "double", - "type": "number" + "sentiment": { + "description": "The sentiment score for text.", + "format": "int32", + "type": "integer" }, - "validationFraction": { - "description": "The fraction of the input data that is to be used to validate the Model.", - "format": "double", - "type": "number" + "sentimentMax": { + "description": "The sentiment max score for text.", + "format": "int32", + "type": "integer" } }, "type": "object" }, - "GoogleCloudAiplatformV1StreamingPredictRequest": { - "description": "Request message for PredictionService.StreamingPredict. The first message must contain endpoint field and optionally input. The subsequent messages must contain input.", - "id": "GoogleCloudAiplatformV1StreamingPredictRequest", + "GoogleCloudAiplatformV1SchemaTextSentimentSavedQueryMetadata": { + "description": "The metadata of SavedQuery contains TextSentiment Annotations.", + "id": "GoogleCloudAiplatformV1SchemaTextSentimentSavedQueryMetadata", "properties": { - "inputs": { - "description": "The prediction input.", - "items": { - "$ref": "GoogleCloudAiplatformV1Tensor" - }, - "type": "array" - }, - "parameters": { - "$ref": "GoogleCloudAiplatformV1Tensor", - "description": "The parameters that govern the prediction." + "sentimentMax": { + "description": "The maximum sentiment of sentiment Anntoation in this SavedQuery.", + "format": "int32", + "type": "integer" } }, "type": "object" }, - "GoogleCloudAiplatformV1StreamingPredictResponse": { - "description": "Response message for PredictionService.StreamingPredict.", - "id": "GoogleCloudAiplatformV1StreamingPredictResponse", + "GoogleCloudAiplatformV1SchemaTimeSegment": { + "description": "A time period inside of a DataItem that has a time dimension (e.g. video).", + "id": "GoogleCloudAiplatformV1SchemaTimeSegment", "properties": { - "outputs": { - "description": "The prediction output.", - "items": { - "$ref": "GoogleCloudAiplatformV1Tensor" - }, - "type": "array" + "endTimeOffset": { + "description": "End of the time segment (exclusive), represented as the duration since the start of the DataItem.", + "format": "google-duration", + "type": "string" }, - "parameters": { - "$ref": "GoogleCloudAiplatformV1Tensor", - "description": "The parameters that govern the prediction." + "startTimeOffset": { + "description": "Start of the time segment (inclusive), represented as the duration since the start of the DataItem.", + "format": "google-duration", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1StreamingReadFeatureValuesRequest": { - "description": "Request message for FeaturestoreOnlineServingService.StreamingFeatureValuesRead.", - "id": "GoogleCloudAiplatformV1StreamingReadFeatureValuesRequest", + "GoogleCloudAiplatformV1SchemaTimeSeriesDatasetMetadata": { + "description": "The metadata of Datasets that contain time series data.", + "id": "GoogleCloudAiplatformV1SchemaTimeSeriesDatasetMetadata", "properties": { - "entityIds": { - "description": "Required. IDs of entities to read Feature values of. The maximum number of IDs is 100. For example, for a machine learning model predicting user clicks on a website, an entity ID could be `user_123`.", - "items": { - "type": "string" - }, - "type": "array" + "inputConfig": { + "$ref": "GoogleCloudAiplatformV1SchemaTimeSeriesDatasetMetadataInputConfig" }, - "featureSelector": { - "$ref": "GoogleCloudAiplatformV1FeatureSelector", - "description": "Required. Selector choosing Features of the target EntityType. Feature IDs will be deduplicated." + "timeColumn": { + "description": "The column name of the time column that identifies time order in the time series.", + "type": "string" + }, + "timeSeriesIdentifierColumn": { + "description": "The column name of the time series identifier column that identifies the time series.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1StringArray": { - "description": "A list of string values.", - "id": "GoogleCloudAiplatformV1StringArray", + "GoogleCloudAiplatformV1SchemaTimeSeriesDatasetMetadataBigQuerySource": { + "id": "GoogleCloudAiplatformV1SchemaTimeSeriesDatasetMetadataBigQuerySource", "properties": { - "values": { - "description": "A list of string values.", + "uri": { + "description": "The URI of a BigQuery table.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTimeSeriesDatasetMetadataGcsSource": { + "id": "GoogleCloudAiplatformV1SchemaTimeSeriesDatasetMetadataGcsSource", + "properties": { + "uri": { + "description": "Cloud Storage URI of one or more files. Only CSV files are supported. The first line of the CSV file is used as the header. If there are multiple files, the header is the first line of the lexicographically first file, the other files must either contain the exact same header or omit the header.", "items": { "type": "string" }, @@ -29185,2171 +30393,8972 @@ }, "type": "object" }, - "GoogleCloudAiplatformV1Study": { - "description": "A message representing a Study.", - "id": "GoogleCloudAiplatformV1Study", + "GoogleCloudAiplatformV1SchemaTimeSeriesDatasetMetadataInputConfig": { + "description": "The time series Dataset's data source. The Dataset doesn't store the data directly, but only pointer(s) to its data.", + "id": "GoogleCloudAiplatformV1SchemaTimeSeriesDatasetMetadataInputConfig", "properties": { - "createTime": { - "description": "Output only. Time at which the study was created.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "displayName": { - "description": "Required. Describes the Study, default value is empty string.", - "type": "string" - }, - "inactiveReason": { - "description": "Output only. A human readable reason why the Study is inactive. This should be empty if a study is ACTIVE or COMPLETED.", - "readOnly": true, - "type": "string" - }, - "name": { - "description": "Output only. The name of a study. The study's globally unique identifier. Format: `projects/{project}/locations/{location}/studies/{study}`", - "readOnly": true, - "type": "string" + "bigquerySource": { + "$ref": "GoogleCloudAiplatformV1SchemaTimeSeriesDatasetMetadataBigQuerySource" }, - "state": { - "description": "Output only. The detailed state of a Study.", - "enum": [ - "STATE_UNSPECIFIED", - "ACTIVE", - "INACTIVE", - "COMPLETED" - ], - "enumDescriptions": [ - "The study state is unspecified.", - "The study is active.", - "The study is stopped due to an internal error.", - "The study is done when the service exhausts the parameter search space or max_trial_count is reached." - ], - "readOnly": true, - "type": "string" + "gcsSource": { + "$ref": "GoogleCloudAiplatformV1SchemaTimeSeriesDatasetMetadataGcsSource" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecasting": { + "description": "A TrainingJob that trains and uploads an AutoML Forecasting Model.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecasting", + "properties": { + "inputs": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputs", + "description": "The input parameters of this TrainingJob." }, - "studySpec": { - "$ref": "GoogleCloudAiplatformV1StudySpec", - "description": "Required. Configuration of the Study." + "metadata": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingMetadata", + "description": "The metadata information." } }, "type": "object" }, - "GoogleCloudAiplatformV1StudySpec": { - "description": "Represents specification of a Study.", - "id": "GoogleCloudAiplatformV1StudySpec", + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputs": { + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputs", "properties": { - "algorithm": { - "description": "The search algorithm specified for the Study.", - "enum": [ - "ALGORITHM_UNSPECIFIED", - "GRID_SEARCH", - "RANDOM_SEARCH" - ], - "enumDescriptions": [ - "The default algorithm used by Vertex AI for [hyperparameter tuning](https://cloud.google.com/vertex-ai/docs/training/hyperparameter-tuning-overview) and [Vertex AI Vizier](https://cloud.google.com/vertex-ai/docs/vizier).", - "Simple grid search within the feasible space. To use grid search, all parameters must be `INTEGER`, `CATEGORICAL`, or `DISCRETE`.", - "Simple random search within the feasible space." - ], + "additionalExperiments": { + "description": "Additional experiment flags for the time series forcasting training.", + "items": { + "type": "string" + }, + "type": "array" + }, + "availableAtForecastColumns": { + "description": "Names of columns that are available and provided when a forecast is requested. These columns contain information for the given entity (identified by the time_series_identifier_column column) that is known at forecast. For example, predicted weather for a specific day.", + "items": { + "type": "string" + }, + "type": "array" + }, + "contextWindow": { + "description": "The amount of time into the past training and prediction data is used for model training and prediction respectively. Expressed in number of units defined by the `data_granularity` field.", + "format": "int64", "type": "string" }, - "convexAutomatedStoppingSpec": { - "$ref": "GoogleCloudAiplatformV1StudySpecConvexAutomatedStoppingSpec", - "description": "The automated early stopping spec using convex stopping rule." + "dataGranularity": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsGranularity", + "description": "Expected difference in time granularity between rows in the data." }, - "decayCurveStoppingSpec": { - "$ref": "GoogleCloudAiplatformV1StudySpecDecayCurveAutomatedStoppingSpec", - "description": "The automated early stopping spec using decay curve rule." + "enableProbabilisticInference": { + "description": "If probabilistic inference is enabled, the model will fit a distribution that captures the uncertainty of a prediction. At inference time, the predictive distribution is used to make a point prediction that minimizes the optimization objective. For example, the mean of a predictive distribution is the point prediction that minimizes RMSE loss. If quantiles are specified, then the quantiles of the distribution are also returned. The optimization objective cannot be minimize-quantile-loss.", + "type": "boolean" }, - "measurementSelectionType": { - "description": "Describe which measurement selection type will be used", - "enum": [ - "MEASUREMENT_SELECTION_TYPE_UNSPECIFIED", - "LAST_MEASUREMENT", - "BEST_MEASUREMENT" - ], - "enumDescriptions": [ - "Will be treated as LAST_MEASUREMENT.", - "Use the last measurement reported.", - "Use the best measurement reported." - ], + "exportEvaluatedDataItemsConfig": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionExportEvaluatedDataItemsConfig", + "description": "Configuration for exporting test set predictions to a BigQuery table. If this configuration is absent, then the export is not performed." + }, + "forecastHorizon": { + "description": "The amount of time into the future for which forecasted values for the target are returned. Expressed in number of units defined by the `data_granularity` field.", + "format": "int64", "type": "string" }, - "medianAutomatedStoppingSpec": { - "$ref": "GoogleCloudAiplatformV1StudySpecMedianAutomatedStoppingSpec", - "description": "The automated early stopping spec using median rule." + "hierarchyConfig": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionHierarchyConfig", + "description": "Configuration that defines the hierarchical relationship of time series and parameters for hierarchical forecasting strategies." }, - "metrics": { - "description": "Required. Metric specs for the Study.", + "holidayRegions": { + "description": "The geographical region based on which the holiday effect is applied in modeling by adding holiday categorical array feature that include all holidays matching the date. This option only allowed when data_granularity is day. By default, holiday effect modeling is disabled. To turn it on, specify the holiday region using this option.", "items": { - "$ref": "GoogleCloudAiplatformV1StudySpecMetricSpec" + "type": "string" }, "type": "array" }, - "observationNoise": { - "description": "The observation noise level of the study. Currently only supported by the Vertex AI Vizier service. Not supported by HyperparameterTuningJob or TrainingPipeline.", - "enum": [ - "OBSERVATION_NOISE_UNSPECIFIED", - "LOW", - "HIGH" - ], - "enumDescriptions": [ - "The default noise level chosen by Vertex AI.", - "Vertex AI assumes that the objective function is (nearly) perfectly reproducible, and will never repeat the same Trial parameters.", - "Vertex AI will estimate the amount of noise in metric evaluations, it may repeat the same Trial parameters more than once." - ], + "optimizationObjective": { + "description": "Objective function the model is optimizing towards. The training process creates a model that optimizes the value of the objective function over the validation set. The supported optimization objectives: * \"minimize-rmse\" (default) - Minimize root-mean-squared error (RMSE). * \"minimize-mae\" - Minimize mean-absolute error (MAE). * \"minimize-rmsle\" - Minimize root-mean-squared log error (RMSLE). * \"minimize-rmspe\" - Minimize root-mean-squared percentage error (RMSPE). * \"minimize-wape-mae\" - Minimize the combination of weighted absolute percentage error (WAPE) and mean-absolute-error (MAE). * \"minimize-quantile-loss\" - Minimize the quantile loss at the quantiles defined in `quantiles`. * \"minimize-mape\" - Minimize the mean absolute percentage error.", "type": "string" }, - "parameters": { - "description": "Required. The set of parameters to tune.", + "quantiles": { + "description": "Quantiles to use for minimize-quantile-loss `optimization_objective`, or for probabilistic inference. Up to 5 quantiles are allowed of values between 0 and 1, exclusive. Required if the value of optimization_objective is minimize-quantile-loss. Represents the percent quantiles to use for that objective. Quantiles must be unique.", "items": { - "$ref": "GoogleCloudAiplatformV1StudySpecParameterSpec" + "format": "double", + "type": "number" }, "type": "array" }, - "studyStoppingConfig": { - "$ref": "GoogleCloudAiplatformV1StudySpecStudyStoppingConfig", - "description": "Conditions for automated stopping of a Study. Enable automated stopping by configuring at least one condition." - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1StudySpecConvexAutomatedStoppingSpec": { - "description": "Configuration for ConvexAutomatedStoppingSpec. When there are enough completed trials (configured by min_measurement_count), for pending trials with enough measurements and steps, the policy first computes an overestimate of the objective value at max_num_steps according to the slope of the incomplete objective value curve. No prediction can be made if the curve is completely flat. If the overestimation is worse than the best objective value of the completed trials, this pending trial will be early-stopped, but a last measurement will be added to the pending trial with max_num_steps and predicted objective value from the autoregression model.", - "id": "GoogleCloudAiplatformV1StudySpecConvexAutomatedStoppingSpec", - "properties": { - "learningRateParameterName": { - "description": "The hyper-parameter name used in the tuning job that stands for learning rate. Leave it blank if learning rate is not in a parameter in tuning. The learning_rate is used to estimate the objective value of the ongoing trial.", + "targetColumn": { + "description": "The name of the column that the Model is to predict values for. This column must be unavailable at forecast.", "type": "string" }, - "maxStepCount": { - "description": "Steps used in predicting the final objective for early stopped trials. In general, it's set to be the same as the defined steps in training / tuning. If not defined, it will learn it from the completed trials. When use_steps is false, this field is set to the maximum elapsed seconds.", - "format": "int64", + "timeColumn": { + "description": "The name of the column that identifies time order in the time series. This column must be available at forecast.", "type": "string" }, - "minMeasurementCount": { - "description": "The minimal number of measurements in a Trial. Early-stopping checks will not trigger if less than min_measurement_count+1 completed trials or pending trials with less than min_measurement_count measurements. If not defined, the default value is 5.", - "format": "int64", + "timeSeriesAttributeColumns": { + "description": "Column names that should be used as attribute columns. The value of these columns does not vary as a function of time. For example, store ID or item color.", + "items": { + "type": "string" + }, + "type": "array" + }, + "timeSeriesIdentifierColumn": { + "description": "The name of the column that identifies the time series.", "type": "string" }, - "minStepCount": { - "description": "Minimum number of steps for a trial to complete. Trials which do not have a measurement with step_count > min_step_count won't be considered for early stopping. It's ok to set it to 0, and a trial can be early stopped at any stage. By default, min_step_count is set to be one-tenth of the max_step_count. When use_elapsed_duration is true, this field is set to the minimum elapsed seconds.", + "trainBudgetMilliNodeHours": { + "description": "Required. The train budget of creating this model, expressed in milli node hours i.e. 1,000 value in this field means 1 node hour. The training cost of the model will not exceed this budget. The final cost will be attempted to be close to the budget, though may end up being (even) noticeably smaller - at the backend's discretion. This especially may happen when further model training ceases to provide any improvements. If the budget is set to a value known to be insufficient to train a model for the given dataset, the training won't be attempted and will error. The train budget must be between 1,000 and 72,000 milli node hours, inclusive.", "format": "int64", "type": "string" }, - "updateAllStoppedTrials": { - "description": "ConvexAutomatedStoppingSpec by default only updates the trials that needs to be early stopped using a newly trained auto-regressive model. When this flag is set to True, all stopped trials from the beginning are potentially updated in terms of their `final_measurement`. Also, note that the training logic of autoregressive models is different in this case. Enabling this option has shown better results and this may be the default option in the future.", - "type": "boolean" + "transformations": { + "description": "Each transformation will apply transform function to given input column. And the result will be used for training. When creating transformation for BigQuery Struct column, the column should be flattened using \".\" as the delimiter.", + "items": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformation" + }, + "type": "array" }, - "useElapsedDuration": { - "description": "This bool determines whether or not the rule is applied based on elapsed_secs or steps. If use_elapsed_duration==false, the early stopping decision is made according to the predicted objective values according to the target steps. If use_elapsed_duration==true, elapsed_secs is used instead of steps. Also, in this case, the parameters max_num_steps and min_num_steps are overloaded to contain max_elapsed_seconds and min_elapsed_seconds.", - "type": "boolean" + "unavailableAtForecastColumns": { + "description": "Names of columns that are unavailable when a forecast is requested. This column contains information for the given entity (identified by the time_series_identifier_column) that is unknown before the forecast For example, actual weather on a given day.", + "items": { + "type": "string" + }, + "type": "array" + }, + "validationOptions": { + "description": "Validation options for the data validation component. The available options are: * \"fail-pipeline\" - default, will validate against the validation and fail the pipeline if it fails. * \"ignore-validation\" - ignore the results of the validation and continue", + "type": "string" + }, + "weightColumn": { + "description": "Column name that should be used as the weight column. Higher values in this column give more importance to the row during model training. The column must have numeric values between 0 and 10000 inclusively; 0 means the row is ignored for training. If weight column field is not set, then all rows are assumed to have equal weight of 1.", + "type": "string" + }, + "windowConfig": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionWindowConfig", + "description": "Config containing strategy for generating sliding windows." } }, "type": "object" }, - "GoogleCloudAiplatformV1StudySpecDecayCurveAutomatedStoppingSpec": { - "description": "The decay curve automated stopping rule builds a Gaussian Process Regressor to predict the final objective value of a Trial based on the already completed Trials and the intermediate measurements of the current Trial. Early stopping is requested for the current Trial if there is very low probability to exceed the optimal value found so far.", - "id": "GoogleCloudAiplatformV1StudySpecDecayCurveAutomatedStoppingSpec", + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsGranularity": { + "description": "A duration of time expressed in time granularity units.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsGranularity", "properties": { - "useElapsedDuration": { - "description": "True if Measurement.elapsed_duration is used as the x-axis of each Trials Decay Curve. Otherwise, Measurement.step_count will be used as the x-axis.", - "type": "boolean" + "quantity": { + "description": "The number of granularity_units between data points in the training data. If `granularity_unit` is `minute`, can be 1, 5, 10, 15, or 30. For all other values of `granularity_unit`, must be 1.", + "format": "int64", + "type": "string" + }, + "unit": { + "description": "The time granularity unit of this time period. The supported units are: * \"minute\" * \"hour\" * \"day\" * \"week\" * \"month\" * \"year\"", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1StudySpecMedianAutomatedStoppingSpec": { - "description": "The median automated stopping rule stops a pending Trial if the Trial's best objective_value is strictly below the median 'performance' of all completed Trials reported up to the Trial's last measurement. Currently, 'performance' refers to the running average of the objective values reported by the Trial in each measurement.", - "id": "GoogleCloudAiplatformV1StudySpecMedianAutomatedStoppingSpec", + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformation": { + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformation", "properties": { - "useElapsedDuration": { - "description": "True if median automated stopping rule applies on Measurement.elapsed_duration. It means that elapsed_duration field of latest measurement of current Trial is used to compute median objective value for each completed Trials.", - "type": "boolean" + "auto": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformationAutoTransformation" + }, + "categorical": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformationCategoricalTransformation" + }, + "numeric": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformationNumericTransformation" + }, + "text": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformationTextTransformation" + }, + "timestamp": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformationTimestampTransformation" } }, "type": "object" }, - "GoogleCloudAiplatformV1StudySpecMetricSpec": { - "description": "Represents a metric to optimize.", - "id": "GoogleCloudAiplatformV1StudySpecMetricSpec", + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformationAutoTransformation": { + "description": "Training pipeline will infer the proper transformation based on the statistic of dataset.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformationAutoTransformation", "properties": { - "goal": { - "description": "Required. The optimization goal of the metric.", - "enum": [ - "GOAL_TYPE_UNSPECIFIED", - "MAXIMIZE", - "MINIMIZE" - ], - "enumDescriptions": [ - "Goal Type will default to maximize.", - "Maximize the goal metric.", - "Minimize the goal metric." - ], - "type": "string" - }, - "metricId": { - "description": "Required. The ID of the metric. Must not contain whitespaces and must be unique amongst all MetricSpecs.", + "columnName": { "type": "string" - }, - "safetyConfig": { - "$ref": "GoogleCloudAiplatformV1StudySpecMetricSpecSafetyMetricConfig", - "description": "Used for safe search. In the case, the metric will be a safety metric. You must provide a separate metric for objective metric." } }, "type": "object" }, - "GoogleCloudAiplatformV1StudySpecMetricSpecSafetyMetricConfig": { - "description": "Used in safe optimization to specify threshold levels and risk tolerance.", - "id": "GoogleCloudAiplatformV1StudySpecMetricSpecSafetyMetricConfig", + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformationCategoricalTransformation": { + "description": "Training pipeline will perform following transformation functions. * The categorical string as is--no change to case, punctuation, spelling, tense, and so on. * Convert the category name to a dictionary lookup index and generate an embedding for each index. * Categories that appear less than 5 times in the training dataset are treated as the \"unknown\" category. The \"unknown\" category gets its own special lookup index and resulting embedding.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformationCategoricalTransformation", "properties": { - "desiredMinSafeTrialsFraction": { - "description": "Desired minimum fraction of safe trials (over total number of trials) that should be targeted by the algorithm at any time during the study (best effort). This should be between 0.0 and 1.0 and a value of 0.0 means that there is no minimum and an algorithm proceeds without targeting any specific fraction. A value of 1.0 means that the algorithm attempts to only Suggest safe Trials.", - "format": "double", - "type": "number" - }, - "safetyThreshold": { - "description": "Safety threshold (boundary value between safe and unsafe). NOTE that if you leave SafetyMetricConfig unset, a default value of 0 will be used.", - "format": "double", - "type": "number" + "columnName": { + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1StudySpecParameterSpec": { - "description": "Represents a single parameter to optimize.", - "id": "GoogleCloudAiplatformV1StudySpecParameterSpec", + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformationNumericTransformation": { + "description": "Training pipeline will perform following transformation functions. * The value converted to float32. * The z_score of the value. * log(value+1) when the value is greater than or equal to 0. Otherwise, this transformation is not applied and the value is considered a missing value. * z_score of log(value+1) when the value is greater than or equal to 0. Otherwise, this transformation is not applied and the value is considered a missing value. * A boolean value that indicates whether the value is valid.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformationNumericTransformation", "properties": { - "categoricalValueSpec": { - "$ref": "GoogleCloudAiplatformV1StudySpecParameterSpecCategoricalValueSpec", - "description": "The value spec for a 'CATEGORICAL' parameter." - }, - "conditionalParameterSpecs": { - "description": "A conditional parameter node is active if the parameter's value matches the conditional node's parent_value_condition. If two items in conditional_parameter_specs have the same name, they must have disjoint parent_value_condition.", - "items": { - "$ref": "GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpec" - }, - "type": "array" - }, - "discreteValueSpec": { - "$ref": "GoogleCloudAiplatformV1StudySpecParameterSpecDiscreteValueSpec", - "description": "The value spec for a 'DISCRETE' parameter." - }, - "doubleValueSpec": { - "$ref": "GoogleCloudAiplatformV1StudySpecParameterSpecDoubleValueSpec", - "description": "The value spec for a 'DOUBLE' parameter." - }, - "integerValueSpec": { - "$ref": "GoogleCloudAiplatformV1StudySpecParameterSpecIntegerValueSpec", - "description": "The value spec for an 'INTEGER' parameter." - }, - "parameterId": { - "description": "Required. The ID of the parameter. Must not contain whitespaces and must be unique amongst all ParameterSpecs.", - "type": "string" - }, - "scaleType": { - "description": "How the parameter should be scaled. Leave unset for `CATEGORICAL` parameters.", - "enum": [ - "SCALE_TYPE_UNSPECIFIED", - "UNIT_LINEAR_SCALE", - "UNIT_LOG_SCALE", - "UNIT_REVERSE_LOG_SCALE" - ], - "enumDescriptions": [ - "By default, no scaling is applied.", - "Scales the feasible space to (0, 1) linearly.", - "Scales the feasible space logarithmically to (0, 1). The entire feasible space must be strictly positive.", - "Scales the feasible space \"reverse\" logarithmically to (0, 1). The result is that values close to the top of the feasible space are spread out more than points near the bottom. The entire feasible space must be strictly positive." - ], + "columnName": { "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1StudySpecParameterSpecCategoricalValueSpec": { - "description": "Value specification for a parameter in `CATEGORICAL` type.", - "id": "GoogleCloudAiplatformV1StudySpecParameterSpecCategoricalValueSpec", + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformationTextTransformation": { + "description": "Training pipeline will perform following transformation functions. * The text as is--no change to case, punctuation, spelling, tense, and so on. * Convert the category name to a dictionary lookup index and generate an embedding for each index.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformationTextTransformation", "properties": { - "defaultValue": { - "description": "A default value for a `CATEGORICAL` parameter that is assumed to be a relatively good starting point. Unset value signals that there is no offered starting point. Currently only supported by the Vertex AI Vizier service. Not supported by HyperparameterTuningJob or TrainingPipeline.", + "columnName": { "type": "string" - }, - "values": { - "description": "Required. The list of possible categories.", - "items": { - "type": "string" - }, - "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpec": { - "description": "Represents a parameter spec with condition from its parent parameter.", - "id": "GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpec", + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformationTimestampTransformation": { + "description": "Training pipeline will perform following transformation functions. * Apply the transformation functions for Numerical columns. * Determine the year, month, day,and weekday. Treat each value from the timestamp as a Categorical column. * Invalid numerical values (for example, values that fall outside of a typical timestamp range, or are extreme values) receive no special treatment and are not removed.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingInputsTransformationTimestampTransformation", "properties": { - "parameterSpec": { - "$ref": "GoogleCloudAiplatformV1StudySpecParameterSpec", - "description": "Required. The spec for a conditional parameter." - }, - "parentCategoricalValues": { - "$ref": "GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecCategoricalValueCondition", - "description": "The spec for matching values from a parent parameter of `CATEGORICAL` type." - }, - "parentDiscreteValues": { - "$ref": "GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecDiscreteValueCondition", - "description": "The spec for matching values from a parent parameter of `DISCRETE` type." + "columnName": { + "type": "string" }, - "parentIntValues": { - "$ref": "GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecIntValueCondition", - "description": "The spec for matching values from a parent parameter of `INTEGER` type." + "timeFormat": { + "description": "The format in which that time field is expressed. The time_format must either be one of: * `unix-seconds` * `unix-milliseconds` * `unix-microseconds` * `unix-nanoseconds` (for respectively number of seconds, milliseconds, microseconds and nanoseconds since start of the Unix epoch); or be written in `strftime` syntax. If time_format is not set, then the default format is RFC 3339 `date-time` format, where `time-offset` = `\"Z\"` (e.g. 1985-04-12T23:20:50.52Z)", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecCategoricalValueCondition": { - "description": "Represents the spec to match categorical values from parent parameter.", - "id": "GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecCategoricalValueCondition", + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingMetadata": { + "description": "Model metadata specific to AutoML Forecasting.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlForecastingMetadata", "properties": { - "values": { - "description": "Required. Matches values of the parent parameter of 'CATEGORICAL' type. All values must exist in `categorical_value_spec` of parent parameter.", - "items": { - "type": "string" - }, - "type": "array" + "evaluatedDataItemsBigqueryUri": { + "description": "BigQuery destination uri for exported evaluated examples.", + "type": "string" + }, + "trainCostMilliNodeHours": { + "description": "Output only. The actual training cost of the model, expressed in milli node hours, i.e. 1,000 value in this field means 1 node hour. Guaranteed to not exceed the train budget.", + "format": "int64", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecDiscreteValueCondition": { - "description": "Represents the spec to match discrete values from parent parameter.", - "id": "GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecDiscreteValueCondition", + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageClassification": { + "description": "A TrainingJob that trains and uploads an AutoML Image Classification Model.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageClassification", "properties": { - "values": { - "description": "Required. Matches values of the parent parameter of 'DISCRETE' type. All values must exist in `discrete_value_spec` of parent parameter. The Epsilon of the value matching is 1e-10.", - "items": { - "format": "double", - "type": "number" - }, - "type": "array" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecIntValueCondition": { - "description": "Represents the spec to match integer values from parent parameter.", - "id": "GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecIntValueCondition", - "properties": { - "values": { - "description": "Required. Matches values of the parent parameter of 'INTEGER' type. All values must lie in `integer_value_spec` of parent parameter.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "GoogleCloudAiplatformV1StudySpecParameterSpecDiscreteValueSpec": { - "description": "Value specification for a parameter in `DISCRETE` type.", - "id": "GoogleCloudAiplatformV1StudySpecParameterSpecDiscreteValueSpec", - "properties": { - "defaultValue": { - "description": "A default value for a `DISCRETE` parameter that is assumed to be a relatively good starting point. Unset value signals that there is no offered starting point. It automatically rounds to the nearest feasible discrete point. Currently only supported by the Vertex AI Vizier service. Not supported by HyperparameterTuningJob or TrainingPipeline.", - "format": "double", - "type": "number" + "inputs": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageClassificationInputs", + "description": "The input parameters of this TrainingJob." }, - "values": { - "description": "Required. A list of possible values. The list should be in increasing order and at least 1e-10 apart. For instance, this parameter might have possible settings of 1.5, 2.5, and 4.0. This list should not contain more than 1,000 values.", - "items": { - "format": "double", - "type": "number" - }, - "type": "array" + "metadata": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageClassificationMetadata", + "description": "The metadata information." } }, "type": "object" }, - "GoogleCloudAiplatformV1StudySpecParameterSpecDoubleValueSpec": { - "description": "Value specification for a parameter in `DOUBLE` type.", - "id": "GoogleCloudAiplatformV1StudySpecParameterSpecDoubleValueSpec", + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageClassificationInputs": { + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageClassificationInputs", "properties": { - "defaultValue": { - "description": "A default value for a `DOUBLE` parameter that is assumed to be a relatively good starting point. Unset value signals that there is no offered starting point. Currently only supported by the Vertex AI Vizier service. Not supported by HyperparameterTuningJob or TrainingPipeline.", - "format": "double", - "type": "number" + "baseModelId": { + "description": "The ID of the `base` model. If it is specified, the new model will be trained based on the `base` model. Otherwise, the new model will be trained from scratch. The `base` model must be in the same Project and Location as the new Model to train, and have the same modelType.", + "type": "string" }, - "maxValue": { - "description": "Required. Inclusive maximum value of the parameter.", - "format": "double", - "type": "number" + "budgetMilliNodeHours": { + "description": "The training budget of creating this model, expressed in milli node hours i.e. 1,000 value in this field means 1 node hour. The actual metadata.costMilliNodeHours will be equal or less than this value. If further model training ceases to provide any improvements, it will stop without using the full budget and the metadata.successfulStopReason will be `model-converged`. Note, node_hour = actual_hour * number_of_nodes_involved. For modelType `cloud`(default), the budget must be between 8,000 and 800,000 milli node hours, inclusive. The default value is 192,000 which represents one day in wall time, considering 8 nodes are used. For model types `mobile-tf-low-latency-1`, `mobile-tf-versatile-1`, `mobile-tf-high-accuracy-1`, the training budget must be between 1,000 and 100,000 milli node hours, inclusive. The default value is 24,000 which represents one day in wall time on a single node that is used.", + "format": "int64", + "type": "string" }, - "minValue": { - "description": "Required. Inclusive minimum value of the parameter.", - "format": "double", - "type": "number" + "disableEarlyStopping": { + "description": "Use the entire training budget. This disables the early stopping feature. When false the early stopping feature is enabled, which means that AutoML Image Classification might stop training before the entire training budget has been used.", + "type": "boolean" + }, + "modelType": { + "enum": [ + "MODEL_TYPE_UNSPECIFIED", + "CLOUD", + "CLOUD_1", + "MOBILE_TF_LOW_LATENCY_1", + "MOBILE_TF_VERSATILE_1", + "MOBILE_TF_HIGH_ACCURACY_1", + "EFFICIENTNET", + "MAXVIT", + "VIT", + "COCA" + ], + "enumDescriptions": [ + "Should not be set.", + "A Model best tailored to be used within Google Cloud, and which cannot be exported. Default.", + "A model type best tailored to be used within Google Cloud, which cannot be exported externally. Compared to the CLOUD model above, it is expected to have higher prediction accuracy.", + "A model that, in addition to being available within Google Cloud, can also be exported (see ModelService.ExportModel) as TensorFlow or Core ML model and used on a mobile or edge device afterwards. Expected to have low latency, but may have lower prediction quality than other mobile models.", + "A model that, in addition to being available within Google Cloud, can also be exported (see ModelService.ExportModel) as TensorFlow or Core ML model and used on a mobile or edge device with afterwards.", + "A model that, in addition to being available within Google Cloud, can also be exported (see ModelService.ExportModel) as TensorFlow or Core ML model and used on a mobile or edge device afterwards. Expected to have a higher latency, but should also have a higher prediction quality than other mobile models.", + "EfficientNet model for Model Garden training with customizable hyperparameters. Best tailored to be used within Google Cloud, and cannot be exported externally.", + "MaxViT model for Model Garden training with customizable hyperparameters. Best tailored to be used within Google Cloud, and cannot be exported externally.", + "ViT model for Model Garden training with customizable hyperparameters. Best tailored to be used within Google Cloud, and cannot be exported externally.", + "CoCa model for Model Garden training with customizable hyperparameters. Best tailored to be used within Google Cloud, and cannot be exported externally." + ], + "type": "string" + }, + "multiLabel": { + "description": "If false, a single-label (multi-class) Model will be trained (i.e. assuming that for each image just up to one annotation may be applicable). If true, a multi-label Model will be trained (i.e. assuming that for each image multiple annotations may be applicable).", + "type": "boolean" + }, + "tunableParameter": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutomlImageTrainingTunableParameter", + "description": "Trainer type for Vision TrainRequest." + }, + "uptrainBaseModelId": { + "description": "The ID of `base` model for upTraining. If it is specified, the new model will be upTrained based on the `base` model for upTraining. Otherwise, the new model will be trained from scratch. The `base` model for upTraining must be in the same Project and Location as the new Model to train, and have the same modelType.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1StudySpecParameterSpecIntegerValueSpec": { - "description": "Value specification for a parameter in `INTEGER` type.", - "id": "GoogleCloudAiplatformV1StudySpecParameterSpecIntegerValueSpec", + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageClassificationMetadata": { + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageClassificationMetadata", "properties": { - "defaultValue": { - "description": "A default value for an `INTEGER` parameter that is assumed to be a relatively good starting point. Unset value signals that there is no offered starting point. Currently only supported by the Vertex AI Vizier service. Not supported by HyperparameterTuningJob or TrainingPipeline.", - "format": "int64", - "type": "string" - }, - "maxValue": { - "description": "Required. Inclusive maximum value of the parameter.", + "costMilliNodeHours": { + "description": "The actual training cost of creating this model, expressed in milli node hours, i.e. 1,000 value in this field means 1 node hour. Guaranteed to not exceed inputs.budgetMilliNodeHours.", "format": "int64", "type": "string" }, - "minValue": { - "description": "Required. Inclusive minimum value of the parameter.", - "format": "int64", + "successfulStopReason": { + "description": "For successful job completions, this is the reason why the job has finished.", + "enum": [ + "SUCCESSFUL_STOP_REASON_UNSPECIFIED", + "BUDGET_REACHED", + "MODEL_CONVERGED" + ], + "enumDescriptions": [ + "Should not be set.", + "The inputs.budgetMilliNodeHours had been reached.", + "Further training of the Model ceased to increase its quality, since it already has converged." + ], "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1StudySpecStudyStoppingConfig": { - "description": "The configuration (stopping conditions) for automated stopping of a Study. Conditions include trial budgets, time budgets, and convergence detection.", - "id": "GoogleCloudAiplatformV1StudySpecStudyStoppingConfig", + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageObjectDetection": { + "description": "A TrainingJob that trains and uploads an AutoML Image Object Detection Model.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageObjectDetection", "properties": { - "maxDurationNoProgress": { - "description": "If the objective value has not improved for this much time, stop the study. WARNING: Effective only for single-objective studies.", - "format": "google-duration", - "type": "string" - }, - "maxNumTrials": { - "description": "If there are more than this many trials, stop the study.", - "format": "int32", - "type": "integer" - }, - "maxNumTrialsNoProgress": { - "description": "If the objective value has not improved for this many consecutive trials, stop the study. WARNING: Effective only for single-objective studies.", - "format": "int32", - "type": "integer" - }, - "maximumRuntimeConstraint": { - "$ref": "GoogleCloudAiplatformV1StudyTimeConstraint", - "description": "If the specified time or duration has passed, stop the study." - }, - "minNumTrials": { - "description": "If there are fewer than this many COMPLETED trials, do not stop the study.", - "format": "int32", - "type": "integer" - }, - "minimumRuntimeConstraint": { - "$ref": "GoogleCloudAiplatformV1StudyTimeConstraint", - "description": "Each \"stopping rule\" in this proto specifies an \"if\" condition. Before Vizier would generate a new suggestion, it first checks each specified stopping rule, from top to bottom in this list. Note that the first few rules (e.g. minimum_runtime_constraint, min_num_trials) will prevent other stopping rules from being evaluated until they are met. For example, setting `min_num_trials=5` and `always_stop_after= 1 hour` means that the Study will ONLY stop after it has 5 COMPLETED trials, even if more than an hour has passed since its creation. It follows the first applicable rule (whose \"if\" condition is satisfied) to make a stopping decision. If none of the specified rules are applicable, then Vizier decides that the study should not stop. If Vizier decides that the study should stop, the study enters STOPPING state (or STOPPING_ASAP if should_stop_asap = true). IMPORTANT: The automatic study state transition happens precisely as described above; that is, deleting trials or updating StudyConfig NEVER automatically moves the study state back to ACTIVE. If you want to _resume_ a Study that was stopped, 1) change the stopping conditions if necessary, 2) activate the study, and then 3) ask for suggestions. If the specified time or duration has not passed, do not stop the study." + "inputs": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageObjectDetectionInputs", + "description": "The input parameters of this TrainingJob." }, - "shouldStopAsap": { - "description": "If true, a Study enters STOPPING_ASAP whenever it would normally enters STOPPING state. The bottom line is: set to true if you want to interrupt on-going evaluations of Trials as soon as the study stopping condition is met. (Please see Study.State documentation for the source of truth).", - "type": "boolean" + "metadata": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageObjectDetectionMetadata", + "description": "The metadata information" } }, "type": "object" }, - "GoogleCloudAiplatformV1StudyTimeConstraint": { - "description": "Time-based Constraint for Study", - "id": "GoogleCloudAiplatformV1StudyTimeConstraint", + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageObjectDetectionInputs": { + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageObjectDetectionInputs", "properties": { - "endTime": { - "description": "Compares the wallclock time to this time. Must use UTC timezone.", - "format": "google-datetime", + "budgetMilliNodeHours": { + "description": "The training budget of creating this model, expressed in milli node hours i.e. 1,000 value in this field means 1 node hour. The actual metadata.costMilliNodeHours will be equal or less than this value. If further model training ceases to provide any improvements, it will stop without using the full budget and the metadata.successfulStopReason will be `model-converged`. Note, node_hour = actual_hour * number_of_nodes_involved. For modelType `cloud`(default), the budget must be between 20,000 and 900,000 milli node hours, inclusive. The default value is 216,000 which represents one day in wall time, considering 9 nodes are used. For model types `mobile-tf-low-latency-1`, `mobile-tf-versatile-1`, `mobile-tf-high-accuracy-1` the training budget must be between 1,000 and 100,000 milli node hours, inclusive. The default value is 24,000 which represents one day in wall time on a single node that is used.", + "format": "int64", "type": "string" }, - "maxDuration": { - "description": "Counts the wallclock time passed since the creation of this Study.", - "format": "google-duration", + "disableEarlyStopping": { + "description": "Use the entire training budget. This disables the early stopping feature. When false the early stopping feature is enabled, which means that AutoML Image Object Detection might stop training before the entire training budget has been used.", + "type": "boolean" + }, + "modelType": { + "enum": [ + "MODEL_TYPE_UNSPECIFIED", + "CLOUD_HIGH_ACCURACY_1", + "CLOUD_LOW_LATENCY_1", + "CLOUD_1", + "MOBILE_TF_LOW_LATENCY_1", + "MOBILE_TF_VERSATILE_1", + "MOBILE_TF_HIGH_ACCURACY_1", + "CLOUD_STREAMING_1", + "SPINENET", + "YOLO" + ], + "enumDescriptions": [ + "Should not be set.", + "A model best tailored to be used within Google Cloud, and which cannot be exported. Expected to have a higher latency, but should also have a higher prediction quality than other cloud models.", + "A model best tailored to be used within Google Cloud, and which cannot be exported. Expected to have a low latency, but may have lower prediction quality than other cloud models.", + "A model best tailored to be used within Google Cloud, and which cannot be exported. Compared to the CLOUD_HIGH_ACCURACY_1 and CLOUD_LOW_LATENCY_1 models above, it is expected to have higher prediction quality and lower latency.", + "A model that, in addition to being available within Google Cloud can also be exported (see ModelService.ExportModel) and used on a mobile or edge device with TensorFlow afterwards. Expected to have low latency, but may have lower prediction quality than other mobile models.", + "A model that, in addition to being available within Google Cloud can also be exported (see ModelService.ExportModel) and used on a mobile or edge device with TensorFlow afterwards.", + "A model that, in addition to being available within Google Cloud, can also be exported (see ModelService.ExportModel) and used on a mobile or edge device with TensorFlow afterwards. Expected to have a higher latency, but should also have a higher prediction quality than other mobile models.", + "A model best tailored to be used within Google Cloud, and which cannot be exported. Expected to best support predictions in streaming with lower latency and lower prediction quality than other cloud models.", + "SpineNet for Model Garden training with customizable hyperparameters. Best tailored to be used within Google Cloud, and cannot be exported externally.", + "YOLO for Model Garden training with customizable hyperparameters. Best tailored to be used within Google Cloud, and cannot be exported externally." + ], + "type": "string" + }, + "tunableParameter": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutomlImageTrainingTunableParameter", + "description": "Trainer type for Vision TrainRequest." + }, + "uptrainBaseModelId": { + "description": "The ID of `base` model for upTraining. If it is specified, the new model will be upTrained based on the `base` model for upTraining. Otherwise, the new model will be trained from scratch. The `base` model for upTraining must be in the same Project and Location as the new Model to train, and have the same modelType.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SuggestTrialsMetadata": { - "description": "Details of operations that perform Trials suggestion.", - "id": "GoogleCloudAiplatformV1SuggestTrialsMetadata", + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageObjectDetectionMetadata": { + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageObjectDetectionMetadata", "properties": { - "clientId": { - "description": "The identifier of the client that is requesting the suggestion. If multiple SuggestTrialsRequests have the same `client_id`, the service will return the identical suggested Trial if the Trial is pending, and provide a new Trial if the last suggested Trial was completed.", + "costMilliNodeHours": { + "description": "The actual training cost of creating this model, expressed in milli node hours, i.e. 1,000 value in this field means 1 node hour. Guaranteed to not exceed inputs.budgetMilliNodeHours.", + "format": "int64", "type": "string" }, - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "Operation metadata for suggesting Trials." + "successfulStopReason": { + "description": "For successful job completions, this is the reason why the job has finished.", + "enum": [ + "SUCCESSFUL_STOP_REASON_UNSPECIFIED", + "BUDGET_REACHED", + "MODEL_CONVERGED" + ], + "enumDescriptions": [ + "Should not be set.", + "The inputs.budgetMilliNodeHours had been reached.", + "Further training of the Model ceased to increase its quality, since it already has converged." + ], + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1SuggestTrialsRequest": { - "description": "Request message for VizierService.SuggestTrials.", - "id": "GoogleCloudAiplatformV1SuggestTrialsRequest", + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageSegmentation": { + "description": "A TrainingJob that trains and uploads an AutoML Image Segmentation Model.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageSegmentation", "properties": { - "clientId": { - "description": "Required. The identifier of the client that is requesting the suggestion. If multiple SuggestTrialsRequests have the same `client_id`, the service will return the identical suggested Trial if the Trial is pending, and provide a new Trial if the last suggested Trial was completed.", - "type": "string" - }, - "contexts": { - "description": "Optional. This allows you to specify the \"context\" for a Trial; a context is a slice (a subspace) of the search space. Typical uses for contexts: 1) You are using Vizier to tune a server for best performance, but there's a strong weekly cycle. The context specifies the day-of-week. This allows Tuesday to generalize from Wednesday without assuming that everything is identical. 2) Imagine you're optimizing some medical treatment for people. As they walk in the door, you know certain facts about them (e.g. sex, weight, height, blood-pressure). Put that information in the context, and Vizier will adapt its suggestions to the patient. 3) You want to do a fair A/B test efficiently. Specify the \"A\" and \"B\" conditions as contexts, and Vizier will generalize between \"A\" and \"B\" conditions. If they are similar, this will allow Vizier to converge to the optimum faster than if \"A\" and \"B\" were separate Studies. NOTE: You can also enter contexts as REQUESTED Trials, e.g. via the CreateTrial() RPC; that's the asynchronous option where you don't need a close association between contexts and suggestions. NOTE: All the Parameters you set in a context MUST be defined in the Study. NOTE: You must supply 0 or $suggestion_count contexts. If you don't supply any contexts, Vizier will make suggestions from the full search space specified in the StudySpec; if you supply a full set of context, each suggestion will match the corresponding context. NOTE: A Context with no features set matches anything, and allows suggestions from the full search space. NOTE: Contexts MUST lie within the search space specified in the StudySpec. It's an error if they don't. NOTE: Contexts preferentially match ACTIVE then REQUESTED trials before new suggestions are generated. NOTE: Generation of suggestions involves a match between a Context and (optionally) a REQUESTED trial; if that match is not fully specified, a suggestion will be geneated in the merged subspace.", - "items": { - "$ref": "GoogleCloudAiplatformV1TrialContext" - }, - "type": "array" + "inputs": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageSegmentationInputs", + "description": "The input parameters of this TrainingJob." }, - "suggestionCount": { - "description": "Required. The number of suggestions requested. It must be positive.", - "format": "int32", - "type": "integer" + "metadata": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageSegmentationMetadata", + "description": "The metadata information." } }, "type": "object" }, - "GoogleCloudAiplatformV1SuggestTrialsResponse": { - "description": "Response message for VizierService.SuggestTrials.", - "id": "GoogleCloudAiplatformV1SuggestTrialsResponse", + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageSegmentationInputs": { + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageSegmentationInputs", "properties": { - "endTime": { - "description": "The time at which operation processing completed.", - "format": "google-datetime", + "baseModelId": { + "description": "The ID of the `base` model. If it is specified, the new model will be trained based on the `base` model. Otherwise, the new model will be trained from scratch. The `base` model must be in the same Project and Location as the new Model to train, and have the same modelType.", "type": "string" }, - "startTime": { - "description": "The time at which the operation was started.", - "format": "google-datetime", + "budgetMilliNodeHours": { + "description": "The training budget of creating this model, expressed in milli node hours i.e. 1,000 value in this field means 1 node hour. The actual metadata.costMilliNodeHours will be equal or less than this value. If further model training ceases to provide any improvements, it will stop without using the full budget and the metadata.successfulStopReason will be `model-converged`. Note, node_hour = actual_hour * number_of_nodes_involved. Or actual_wall_clock_hours = train_budget_milli_node_hours / (number_of_nodes_involved * 1000) For modelType `cloud-high-accuracy-1`(default), the budget must be between 20,000 and 2,000,000 milli node hours, inclusive. The default value is 192,000 which represents one day in wall time (1000 milli * 24 hours * 8 nodes).", + "format": "int64", "type": "string" }, - "studyState": { - "description": "The state of the Study.", + "modelType": { "enum": [ - "STATE_UNSPECIFIED", - "ACTIVE", - "INACTIVE", - "COMPLETED" + "MODEL_TYPE_UNSPECIFIED", + "CLOUD_HIGH_ACCURACY_1", + "CLOUD_LOW_ACCURACY_1", + "MOBILE_TF_LOW_LATENCY_1" ], "enumDescriptions": [ - "The study state is unspecified.", - "The study is active.", - "The study is stopped due to an internal error.", - "The study is done when the service exhausts the parameter search space or max_trial_count is reached." + "Should not be set.", + "A model to be used via prediction calls to uCAIP API. Expected to have a higher latency, but should also have a higher prediction quality than other models.", + "A model to be used via prediction calls to uCAIP API. Expected to have a lower latency but relatively lower prediction quality.", + "A model that, in addition to being available within Google Cloud, can also be exported (see ModelService.ExportModel) as TensorFlow model and used on a mobile or edge device afterwards. Expected to have low latency, but may have lower prediction quality than other mobile models." ], "type": "string" - }, - "trials": { - "description": "A list of Trials.", - "items": { - "$ref": "GoogleCloudAiplatformV1Trial" - }, - "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1SyncFeatureViewRequest": { - "description": "Request message for FeatureOnlineStoreAdminService.SyncFeatureView.", - "id": "GoogleCloudAiplatformV1SyncFeatureViewRequest", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1SyncFeatureViewResponse": { - "description": "Respose message for FeatureOnlineStoreAdminService.SyncFeatureView.", - "id": "GoogleCloudAiplatformV1SyncFeatureViewResponse", + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageSegmentationMetadata": { + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlImageSegmentationMetadata", "properties": { - "featureViewSync": { - "description": "Format: `projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}/featureViewSyncs/{feature_view_sync}`", + "costMilliNodeHours": { + "description": "The actual training cost of creating this model, expressed in milli node hours, i.e. 1,000 value in this field means 1 node hour. Guaranteed to not exceed inputs.budgetMilliNodeHours.", + "format": "int64", + "type": "string" + }, + "successfulStopReason": { + "description": "For successful job completions, this is the reason why the job has finished.", + "enum": [ + "SUCCESSFUL_STOP_REASON_UNSPECIFIED", + "BUDGET_REACHED", + "MODEL_CONVERGED" + ], + "enumDescriptions": [ + "Should not be set.", + "The inputs.budgetMilliNodeHours had been reached.", + "Further training of the Model ceased to increase its quality, since it already has converged." + ], "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1TFRecordDestination": { - "description": "The storage details for TFRecord output content.", - "id": "GoogleCloudAiplatformV1TFRecordDestination", + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTables": { + "description": "A TrainingJob that trains and uploads an AutoML Tables Model.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTables", "properties": { - "gcsDestination": { - "$ref": "GoogleCloudAiplatformV1GcsDestination", - "description": "Required. Google Cloud Storage location." + "inputs": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputs", + "description": "The input parameters of this TrainingJob." + }, + "metadata": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesMetadata", + "description": "The metadata information." } }, "type": "object" }, - "GoogleCloudAiplatformV1Tensor": { - "description": "A tensor value type.", - "id": "GoogleCloudAiplatformV1Tensor", + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputs": { + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputs", "properties": { - "boolVal": { - "description": "Type specific representations that make it easy to create tensor protos in all languages. Only the representation corresponding to \"dtype\" can be set. The values hold the flattened representation of the tensor in row major order. BOOL", - "items": { - "type": "boolean" - }, - "type": "array" - }, - "bytesVal": { - "description": "STRING", + "additionalExperiments": { + "description": "Additional experiment flags for the Tables training pipeline.", "items": { - "format": "byte", "type": "string" }, "type": "array" }, - "doubleVal": { - "description": "DOUBLE", - "items": { - "format": "double", - "type": "number" - }, - "type": "array" - }, - "dtype": { - "description": "The data type of tensor.", - "enum": [ - "DATA_TYPE_UNSPECIFIED", - "BOOL", - "STRING", - "FLOAT", - "DOUBLE", - "INT8", - "INT16", - "INT32", - "INT64", - "UINT8", - "UINT16", - "UINT32", - "UINT64" - ], - "enumDescriptions": [ - "Not a legal value for DataType. Used to indicate a DataType field has not been set.", - "Data types that all computation devices are expected to be capable to support.", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "type": "string" - }, - "floatVal": { - "description": "FLOAT", - "items": { - "format": "float", - "type": "number" - }, - "type": "array" + "disableEarlyStopping": { + "description": "Use the entire training budget. This disables the early stopping feature. By default, the early stopping feature is enabled, which means that AutoML Tables might stop training before the entire training budget has been used.", + "type": "boolean" }, - "int64Val": { - "description": "INT64", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" + "exportEvaluatedDataItemsConfig": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionExportEvaluatedDataItemsConfig", + "description": "Configuration for exporting test set predictions to a BigQuery table. If this configuration is absent, then the export is not performed." }, - "intVal": { - "description": "INT_8 INT_16 INT_32", - "items": { - "format": "int32", - "type": "integer" - }, - "type": "array" + "optimizationObjective": { + "description": "Objective function the model is optimizing towards. The training process creates a model that maximizes/minimizes the value of the objective function over the validation set. The supported optimization objectives depend on the prediction type. If the field is not set, a default objective function is used. classification (binary): \"maximize-au-roc\" (default) - Maximize the area under the receiver operating characteristic (ROC) curve. \"minimize-log-loss\" - Minimize log loss. \"maximize-au-prc\" - Maximize the area under the precision-recall curve. \"maximize-precision-at-recall\" - Maximize precision for a specified recall value. \"maximize-recall-at-precision\" - Maximize recall for a specified precision value. classification (multi-class): \"minimize-log-loss\" (default) - Minimize log loss. regression: \"minimize-rmse\" (default) - Minimize root-mean-squared error (RMSE). \"minimize-mae\" - Minimize mean-absolute error (MAE). \"minimize-rmsle\" - Minimize root-mean-squared log error (RMSLE).", + "type": "string" }, - "listVal": { - "description": "A list of tensor values.", - "items": { - "$ref": "GoogleCloudAiplatformV1Tensor" - }, - "type": "array" + "optimizationObjectivePrecisionValue": { + "description": "Required when optimization_objective is \"maximize-recall-at-precision\". Must be between 0 and 1, inclusive.", + "format": "float", + "type": "number" }, - "shape": { - "description": "Shape of the tensor.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" + "optimizationObjectiveRecallValue": { + "description": "Required when optimization_objective is \"maximize-precision-at-recall\". Must be between 0 and 1, inclusive.", + "format": "float", + "type": "number" }, - "stringVal": { - "description": "STRING", - "items": { - "type": "string" - }, - "type": "array" + "predictionType": { + "description": "The type of prediction the Model is to produce. \"classification\" - Predict one out of multiple target values is picked for each row. \"regression\" - Predict a value based on its relation to other values. This type is available only to columns that contain semantically numeric values, i.e. integers or floating point number, even if stored as e.g. strings.", + "type": "string" }, - "structVal": { - "additionalProperties": { - "$ref": "GoogleCloudAiplatformV1Tensor" - }, - "description": "A map of string to tensor.", - "type": "object" + "targetColumn": { + "description": "The column name of the target column that the model is to predict.", + "type": "string" }, - "tensorVal": { - "description": "Serialized raw tensor content.", - "format": "byte", + "trainBudgetMilliNodeHours": { + "description": "Required. The train budget of creating this model, expressed in milli node hours i.e. 1,000 value in this field means 1 node hour. The training cost of the model will not exceed this budget. The final cost will be attempted to be close to the budget, though may end up being (even) noticeably smaller - at the backend's discretion. This especially may happen when further model training ceases to provide any improvements. If the budget is set to a value known to be insufficient to train a model for the given dataset, the training won't be attempted and will error. The train budget must be between 1,000 and 72,000 milli node hours, inclusive.", + "format": "int64", "type": "string" }, - "uint64Val": { - "description": "UINT64", + "transformations": { + "description": "Each transformation will apply transform function to given input column. And the result will be used for training. When creating transformation for BigQuery Struct column, the column should be flattened using \".\" as the delimiter.", "items": { - "format": "uint64", - "type": "string" + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformation" }, "type": "array" }, - "uintVal": { - "description": "UINT8 UINT16 UINT32", - "items": { - "format": "uint32", - "type": "integer" - }, - "type": "array" + "weightColumnName": { + "description": "Column name that should be used as the weight column. Higher values in this column give more importance to the row during model training. The column must have numeric values between 0 and 10000 inclusively; 0 means the row is ignored for training. If weight column field is not set, then all rows are assumed to have equal weight of 1.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1Tensorboard": { - "description": "Tensorboard is a physical database that stores users' training metrics. A default Tensorboard is provided in each region of a Google Cloud project. If needed users can also create extra Tensorboards in their projects.", - "id": "GoogleCloudAiplatformV1Tensorboard", + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformation": { + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformation", "properties": { - "blobStoragePathPrefix": { - "description": "Output only. Consumer project Cloud Storage path prefix used to store blob data, which can either be a bucket or directory. Does not end with a '/'.", - "readOnly": true, - "type": "string" - }, - "createTime": { - "description": "Output only. Timestamp when this Tensorboard was created.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "description": { - "description": "Description of this Tensorboard.", - "type": "string" - }, - "displayName": { - "description": "Required. User provided name of this Tensorboard.", - "type": "string" + "auto": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationAutoTransformation" }, - "encryptionSpec": { - "$ref": "GoogleCloudAiplatformV1EncryptionSpec", - "description": "Customer-managed encryption key spec for a Tensorboard. If set, this Tensorboard and all sub-resources of this Tensorboard will be secured by this key." + "categorical": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationCategoricalTransformation" }, - "etag": { - "description": "Used to perform a consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", - "type": "string" + "numeric": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationNumericTransformation" }, - "isDefault": { - "description": "Used to indicate if the TensorBoard instance is the default one. Each project & region can have at most one default TensorBoard instance. Creation of a default TensorBoard instance and updating an existing TensorBoard instance to be default will mark all other TensorBoard instances (if any) as non default.", - "type": "boolean" + "repeatedCategorical": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationCategoricalArrayTransformation" }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "The labels with user-defined metadata to organize your Tensorboards. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. No more than 64 user labels can be associated with one Tensorboard (System labels are excluded). See https://goo.gl/xmQnxf for more information and examples of labels. System reserved label keys are prefixed with \"aiplatform.googleapis.com/\" and are immutable.", - "type": "object" + "repeatedNumeric": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationNumericArrayTransformation" }, - "name": { - "description": "Output only. Name of the Tensorboard. Format: `projects/{project}/locations/{location}/tensorboards/{tensorboard}`", - "readOnly": true, - "type": "string" + "repeatedText": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationTextArrayTransformation" }, - "runCount": { - "description": "Output only. The number of Runs stored in this Tensorboard.", - "format": "int32", - "readOnly": true, - "type": "integer" + "text": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationTextTransformation" }, - "updateTime": { - "description": "Output only. Timestamp when this Tensorboard was last updated.", - "format": "google-datetime", - "readOnly": true, - "type": "string" + "timestamp": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationTimestampTransformation" } }, "type": "object" }, - "GoogleCloudAiplatformV1TensorboardBlob": { - "description": "One blob (e.g, image, graph) viewable on a blob metric plot.", - "id": "GoogleCloudAiplatformV1TensorboardBlob", + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationAutoTransformation": { + "description": "Training pipeline will infer the proper transformation based on the statistic of dataset.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationAutoTransformation", "properties": { - "data": { - "description": "Optional. The bytes of the blob is not present unless it's returned by the ReadTensorboardBlobData endpoint.", - "format": "byte", - "type": "string" - }, - "id": { - "description": "Output only. A URI safe key uniquely identifying a blob. Can be used to locate the blob stored in the Cloud Storage bucket of the consumer project.", - "readOnly": true, + "columnName": { "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1TensorboardBlobSequence": { - "description": "One point viewable on a blob metric plot, but mostly just a wrapper message to work around repeated fields can't be used directly within `oneof` fields.", - "id": "GoogleCloudAiplatformV1TensorboardBlobSequence", + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationCategoricalArrayTransformation": { + "description": "Treats the column as categorical array and performs following transformation functions. * For each element in the array, convert the category name to a dictionary lookup index and generate an embedding for each index. Combine the embedding of all elements into a single embedding using the mean. * Empty arrays treated as an embedding of zeroes.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationCategoricalArrayTransformation", "properties": { - "values": { - "description": "List of blobs contained within the sequence.", - "items": { - "$ref": "GoogleCloudAiplatformV1TensorboardBlob" - }, - "type": "array" + "columnName": { + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1TensorboardExperiment": { - "description": "A TensorboardExperiment is a group of TensorboardRuns, that are typically the results of a training job run, in a Tensorboard.", - "id": "GoogleCloudAiplatformV1TensorboardExperiment", + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationCategoricalTransformation": { + "description": "Training pipeline will perform following transformation functions. * The categorical string as is--no change to case, punctuation, spelling, tense, and so on. * Convert the category name to a dictionary lookup index and generate an embedding for each index. * Categories that appear less than 5 times in the training dataset are treated as the \"unknown\" category. The \"unknown\" category gets its own special lookup index and resulting embedding.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationCategoricalTransformation", "properties": { - "createTime": { - "description": "Output only. Timestamp when this TensorboardExperiment was created.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "description": { - "description": "Description of this TensorboardExperiment.", - "type": "string" - }, - "displayName": { - "description": "User provided name of this TensorboardExperiment.", - "type": "string" - }, - "etag": { - "description": "Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "columnName": { "type": "string" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "The labels with user-defined metadata to organize your TensorboardExperiment. Label keys and values cannot be longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. No more than 64 user labels can be associated with one Dataset (System labels are excluded). See https://goo.gl/xmQnxf for more information and examples of labels. System reserved label keys are prefixed with `aiplatform.googleapis.com/` and are immutable. The following system labels exist for each Dataset: * `aiplatform.googleapis.com/dataset_metadata_schema`: output only. Its value is the metadata_schema's title.", - "type": "object" - }, - "name": { - "description": "Output only. Name of the TensorboardExperiment. Format: `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}`", - "readOnly": true, + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationNumericArrayTransformation": { + "description": "Treats the column as numerical array and performs following transformation functions. * All transformations for Numerical types applied to the average of the all elements. * The average of empty arrays is treated as zero.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationNumericArrayTransformation", + "properties": { + "columnName": { "type": "string" }, - "source": { - "description": "Immutable. Source of the TensorboardExperiment. Example: a custom training job.", + "invalidValuesAllowed": { + "description": "If invalid values is allowed, the training pipeline will create a boolean feature that indicated whether the value is valid. Otherwise, the training pipeline will discard the input row from trainining data.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationNumericTransformation": { + "description": "Training pipeline will perform following transformation functions. * The value converted to float32. * The z_score of the value. * log(value+1) when the value is greater than or equal to 0. Otherwise, this transformation is not applied and the value is considered a missing value. * z_score of log(value+1) when the value is greater than or equal to 0. Otherwise, this transformation is not applied and the value is considered a missing value. * A boolean value that indicates whether the value is valid.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationNumericTransformation", + "properties": { + "columnName": { "type": "string" }, - "updateTime": { - "description": "Output only. Timestamp when this TensorboardExperiment was last updated.", - "format": "google-datetime", - "readOnly": true, + "invalidValuesAllowed": { + "description": "If invalid values is allowed, the training pipeline will create a boolean feature that indicated whether the value is valid. Otherwise, the training pipeline will discard the input row from trainining data.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationTextArrayTransformation": { + "description": "Treats the column as text array and performs following transformation functions. * Concatenate all text values in the array into a single text value using a space (\" \") as a delimiter, and then treat the result as a single text value. Apply the transformations for Text columns. * Empty arrays treated as an empty text.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationTextArrayTransformation", + "properties": { + "columnName": { "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1TensorboardRun": { - "description": "TensorboardRun maps to a specific execution of a training job with a given set of hyperparameter values, model definition, dataset, etc", - "id": "GoogleCloudAiplatformV1TensorboardRun", + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationTextTransformation": { + "description": "Training pipeline will perform following transformation functions. * The text as is--no change to case, punctuation, spelling, tense, and so on. * Tokenize text to words. Convert each words to a dictionary lookup index and generate an embedding for each index. Combine the embedding of all elements into a single embedding using the mean. * Tokenization is based on unicode script boundaries. * Missing values get their own lookup index and resulting embedding. * Stop-words receive no special treatment and are not removed.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationTextTransformation", "properties": { - "createTime": { - "description": "Output only. Timestamp when this TensorboardRun was created.", - "format": "google-datetime", - "readOnly": true, + "columnName": { "type": "string" - }, - "description": { - "description": "Description of this TensorboardRun.", + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationTimestampTransformation": { + "description": "Training pipeline will perform following transformation functions. * Apply the transformation functions for Numerical columns. * Determine the year, month, day,and weekday. Treat each value from the * timestamp as a Categorical column. * Invalid numerical values (for example, values that fall outside of a typical timestamp range, or are extreme values) receive no special treatment and are not removed.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesInputsTransformationTimestampTransformation", + "properties": { + "columnName": { "type": "string" }, - "displayName": { - "description": "Required. User provided name of this TensorboardRun. This value must be unique among all TensorboardRuns belonging to the same parent TensorboardExperiment.", - "type": "string" + "invalidValuesAllowed": { + "description": "If invalid values is allowed, the training pipeline will create a boolean feature that indicated whether the value is valid. Otherwise, the training pipeline will discard the input row from trainining data.", + "type": "boolean" }, - "etag": { - "description": "Used to perform a consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "timeFormat": { + "description": "The format in which that time field is expressed. The time_format must either be one of: * `unix-seconds` * `unix-milliseconds` * `unix-microseconds` * `unix-nanoseconds` (for respectively number of seconds, milliseconds, microseconds and nanoseconds since start of the Unix epoch); or be written in `strftime` syntax. If time_format is not set, then the default format is RFC 3339 `date-time` format, where `time-offset` = `\"Z\"` (e.g. 1985-04-12T23:20:50.52Z)", "type": "string" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "The labels with user-defined metadata to organize your TensorboardRuns. This field will be used to filter and visualize Runs in the Tensorboard UI. For example, a Vertex AI training job can set a label aiplatform.googleapis.com/training_job_id=xxxxx to all the runs created within that job. An end user can set a label experiment_id=xxxxx for all the runs produced in a Jupyter notebook. These runs can be grouped by a label value and visualized together in the Tensorboard UI. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. No more than 64 user labels can be associated with one TensorboardRun (System labels are excluded). See https://goo.gl/xmQnxf for more information and examples of labels. System reserved label keys are prefixed with \"aiplatform.googleapis.com/\" and are immutable.", - "type": "object" - }, - "name": { - "description": "Output only. Name of the TensorboardRun. Format: `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}`", - "readOnly": true, + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesMetadata": { + "description": "Model metadata specific to AutoML Tables.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTablesMetadata", + "properties": { + "evaluatedDataItemsBigqueryUri": { + "description": "BigQuery destination uri for exported evaluated examples.", "type": "string" }, - "updateTime": { - "description": "Output only. Timestamp when this TensorboardRun was last updated.", - "format": "google-datetime", - "readOnly": true, + "trainCostMilliNodeHours": { + "description": "Output only. The actual training cost of the model, expressed in milli node hours, i.e. 1,000 value in this field means 1 node hour. Guaranteed to not exceed the train budget.", + "format": "int64", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1TensorboardTensor": { - "description": "One point viewable on a tensor metric plot.", - "id": "GoogleCloudAiplatformV1TensorboardTensor", + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTextClassification": { + "description": "A TrainingJob that trains and uploads an AutoML Text Classification Model.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTextClassification", "properties": { - "value": { - "description": "Required. Serialized form of https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/framework/tensor.proto", - "format": "byte", - "type": "string" - }, - "versionNumber": { - "description": "Optional. Version number of TensorProto used to serialize value.", + "inputs": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTextClassificationInputs", + "description": "The input parameters of this TrainingJob." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTextClassificationInputs": { + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTextClassificationInputs", + "properties": { + "multiLabel": { + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTextExtraction": { + "description": "A TrainingJob that trains and uploads an AutoML Text Extraction Model.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTextExtraction", + "properties": { + "inputs": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTextExtractionInputs", + "description": "The input parameters of this TrainingJob." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTextExtractionInputs": { + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTextExtractionInputs", + "properties": {}, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTextSentiment": { + "description": "A TrainingJob that trains and uploads an AutoML Text Sentiment Model.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTextSentiment", + "properties": { + "inputs": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTextSentimentInputs", + "description": "The input parameters of this TrainingJob." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTextSentimentInputs": { + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlTextSentimentInputs", + "properties": { + "sentimentMax": { + "description": "A sentiment is expressed as an integer ordinal, where higher value means a more positive sentiment. The range of sentiments that will be used is between 0 and sentimentMax (inclusive on both ends), and all the values in the range must be represented in the dataset before a model can be created. Only the Annotations with this sentimentMax will be used for training. sentimentMax value must be between 1 and 10 (inclusive).", "format": "int32", "type": "integer" } }, "type": "object" }, - "GoogleCloudAiplatformV1TensorboardTimeSeries": { - "description": "TensorboardTimeSeries maps to times series produced in training runs", - "id": "GoogleCloudAiplatformV1TensorboardTimeSeries", + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlVideoActionRecognition": { + "description": "A TrainingJob that trains and uploads an AutoML Video Action Recognition Model.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlVideoActionRecognition", "properties": { - "createTime": { - "description": "Output only. Timestamp when this TensorboardTimeSeries was created.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "description": { - "description": "Description of this TensorboardTimeSeries.", - "type": "string" - }, - "displayName": { - "description": "Required. User provided name of this TensorboardTimeSeries. This value should be unique among all TensorboardTimeSeries resources belonging to the same TensorboardRun resource (parent resource).", - "type": "string" - }, - "etag": { - "description": "Used to perform a consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", - "type": "string" - }, - "metadata": { - "$ref": "GoogleCloudAiplatformV1TensorboardTimeSeriesMetadata", - "description": "Output only. Scalar, Tensor, or Blob metadata for this TensorboardTimeSeries.", - "readOnly": true - }, - "name": { - "description": "Output only. Name of the TensorboardTimeSeries.", - "readOnly": true, - "type": "string" - }, - "pluginData": { - "description": "Data of the current plugin, with the size limited to 65KB.", - "format": "byte", - "type": "string" - }, - "pluginName": { - "description": "Immutable. Name of the plugin this time series pertain to. Such as Scalar, Tensor, Blob", - "type": "string" - }, - "updateTime": { - "description": "Output only. Timestamp when this TensorboardTimeSeries was last updated.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "valueType": { - "description": "Required. Immutable. Type of TensorboardTimeSeries value.", + "inputs": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlVideoActionRecognitionInputs", + "description": "The input parameters of this TrainingJob." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlVideoActionRecognitionInputs": { + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlVideoActionRecognitionInputs", + "properties": { + "modelType": { "enum": [ - "VALUE_TYPE_UNSPECIFIED", - "SCALAR", - "TENSOR", - "BLOB_SEQUENCE" + "MODEL_TYPE_UNSPECIFIED", + "CLOUD", + "MOBILE_VERSATILE_1", + "MOBILE_JETSON_VERSATILE_1", + "MOBILE_CORAL_VERSATILE_1" ], "enumDescriptions": [ - "The value type is unspecified.", - "Used for TensorboardTimeSeries that is a list of scalars. E.g. accuracy of a model over epochs/time.", - "Used for TensorboardTimeSeries that is a list of tensors. E.g. histograms of weights of layer in a model over epoch/time.", - "Used for TensorboardTimeSeries that is a list of blob sequences. E.g. set of sample images with labels over epochs/time." + "Should not be set.", + "A model best tailored to be used within Google Cloud, and which c annot be exported. Default.", + "A model that, in addition to being available within Google Cloud, can also be exported (see ModelService.ExportModel) as a TensorFlow or TensorFlow Lite model and used on a mobile or edge device afterwards.", + "A model that, in addition to being available within Google Cloud, can also be exported (see ModelService.ExportModel) to a Jetson device afterwards.", + "A model that, in addition to being available within Google Cloud, can also be exported (see ModelService.ExportModel) as a TensorFlow or TensorFlow Lite model and used on a Coral device afterwards." ], "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1TensorboardTimeSeriesMetadata": { - "description": "Describes metadata for a TensorboardTimeSeries.", - "id": "GoogleCloudAiplatformV1TensorboardTimeSeriesMetadata", + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlVideoClassification": { + "description": "A TrainingJob that trains and uploads an AutoML Video Classification Model.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlVideoClassification", "properties": { - "maxBlobSequenceLength": { - "description": "Output only. The largest blob sequence length (number of blobs) of all data points in this time series, if its ValueType is BLOB_SEQUENCE.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "maxStep": { - "description": "Output only. Max step index of all data points within a TensorboardTimeSeries.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "maxWallTime": { - "description": "Output only. Max wall clock timestamp of all data points within a TensorboardTimeSeries.", - "format": "google-datetime", - "readOnly": true, + "inputs": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlVideoClassificationInputs", + "description": "The input parameters of this TrainingJob." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlVideoClassificationInputs": { + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlVideoClassificationInputs", + "properties": { + "modelType": { + "enum": [ + "MODEL_TYPE_UNSPECIFIED", + "CLOUD", + "MOBILE_VERSATILE_1", + "MOBILE_JETSON_VERSATILE_1" + ], + "enumDescriptions": [ + "Should not be set.", + "A model best tailored to be used within Google Cloud, and which cannot be exported. Default.", + "A model that, in addition to being available within Google Cloud, can also be exported (see ModelService.ExportModel) as a TensorFlow or TensorFlow Lite model and used on a mobile or edge device afterwards.", + "A model that, in addition to being available within Google Cloud, can also be exported (see ModelService.ExportModel) to a Jetson device afterwards." + ], "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1ThresholdConfig": { - "description": "The config for feature monitoring threshold.", - "id": "GoogleCloudAiplatformV1ThresholdConfig", + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlVideoObjectTracking": { + "description": "A TrainingJob that trains and uploads an AutoML Video ObjectTracking Model.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlVideoObjectTracking", "properties": { - "value": { - "description": "Specify a threshold value that can trigger the alert. If this threshold config is for feature distribution distance: 1. For categorical feature, the distribution distance is calculated by L-inifinity norm. 2. For numerical feature, the distribution distance is calculated by Jensen–Shannon divergence. Each feature must have a non-zero threshold if they need to be monitored. Otherwise no alert will be triggered for that feature.", - "format": "double", - "type": "number" + "inputs": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlVideoObjectTrackingInputs", + "description": "The input parameters of this TrainingJob." } }, "type": "object" }, - "GoogleCloudAiplatformV1TimeSeriesData": { - "description": "All the data stored in a TensorboardTimeSeries.", - "id": "GoogleCloudAiplatformV1TimeSeriesData", + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlVideoObjectTrackingInputs": { + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutoMlVideoObjectTrackingInputs", "properties": { - "tensorboardTimeSeriesId": { - "description": "Required. The ID of the TensorboardTimeSeries, which will become the final component of the TensorboardTimeSeries' resource name", - "type": "string" - }, - "valueType": { - "description": "Required. Immutable. The value type of this time series. All the values in this time series data must match this value type.", + "modelType": { "enum": [ - "VALUE_TYPE_UNSPECIFIED", - "SCALAR", - "TENSOR", - "BLOB_SEQUENCE" + "MODEL_TYPE_UNSPECIFIED", + "CLOUD", + "MOBILE_VERSATILE_1", + "MOBILE_CORAL_VERSATILE_1", + "MOBILE_CORAL_LOW_LATENCY_1", + "MOBILE_JETSON_VERSATILE_1", + "MOBILE_JETSON_LOW_LATENCY_1" ], "enumDescriptions": [ - "The value type is unspecified.", - "Used for TensorboardTimeSeries that is a list of scalars. E.g. accuracy of a model over epochs/time.", - "Used for TensorboardTimeSeries that is a list of tensors. E.g. histograms of weights of layer in a model over epoch/time.", - "Used for TensorboardTimeSeries that is a list of blob sequences. E.g. set of sample images with labels over epochs/time." + "Should not be set.", + "A model best tailored to be used within Google Cloud, and which c annot be exported. Default.", + "A model that, in addition to being available within Google Cloud, can also be exported (see ModelService.ExportModel) as a TensorFlow or TensorFlow Lite model and used on a mobile or edge device afterwards.", + "A versatile model that is meant to be exported (see ModelService.ExportModel) and used on a Google Coral device.", + "A model that trades off quality for low latency, to be exported (see ModelService.ExportModel) and used on a Google Coral device.", + "A versatile model that is meant to be exported (see ModelService.ExportModel) and used on an NVIDIA Jetson device.", + "A model that trades off quality for low latency, to be exported (see ModelService.ExportModel) and used on an NVIDIA Jetson device." ], "type": "string" - }, - "values": { - "description": "Required. Data points in this time series.", - "items": { - "$ref": "GoogleCloudAiplatformV1TimeSeriesDataPoint" - }, - "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1TimeSeriesDataPoint": { - "description": "A TensorboardTimeSeries data point.", - "id": "GoogleCloudAiplatformV1TimeSeriesDataPoint", + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutomlImageTrainingTunableParameter": { + "description": "A wrapper class which contains the tunable parameters in an AutoML Image training job.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionAutomlImageTrainingTunableParameter", "properties": { - "blobs": { - "$ref": "GoogleCloudAiplatformV1TensorboardBlobSequence", - "description": "A blob sequence value." - }, - "scalar": { - "$ref": "GoogleCloudAiplatformV1Scalar", - "description": "A scalar value." - }, - "step": { - "description": "Step index of this data point within the run.", - "format": "int64", + "checkpointName": { + "description": "Optional. An unique name of pretrained model checkpoint provided in model garden, it will be mapped to a GCS location internally.", "type": "string" }, - "tensor": { - "$ref": "GoogleCloudAiplatformV1TensorboardTensor", - "description": "A tensor value." + "datasetConfig": { + "additionalProperties": { + "type": "string" + }, + "description": "Customizable dataset settings, used in the `model_garden_trainer`.", + "type": "object" }, - "wallTime": { - "description": "Wall clock timestamp when this data point is generated by the end user.", - "format": "google-datetime", + "studySpec": { + "$ref": "GoogleCloudAiplatformV1StudySpec", + "description": "Optioinal. StudySpec of hyperparameter tuning job. Required for `model_garden_trainer`." + }, + "trainerConfig": { + "additionalProperties": { + "type": "string" + }, + "description": "Customizable trainer settings, used in the `model_garden_trainer`.", + "type": "object" + }, + "trainerType": { + "enum": [ + "TRAINER_TYPE_UNSPECIFIED", + "AUTOML_TRAINER", + "MODEL_GARDEN_TRAINER" + ], + "enumDescriptions": [ + "Default value.", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionCustomJobMetadata": { + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionCustomJobMetadata", + "properties": { + "backingCustomJob": { + "description": "The resource name of the CustomJob that has been created to carry out this custom task.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionCustomTask": { + "description": "A TrainingJob that trains a custom code Model.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionCustomTask", + "properties": { + "inputs": { + "$ref": "GoogleCloudAiplatformV1CustomJobSpec", + "description": "The input parameters of this CustomTask." + }, + "metadata": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionCustomJobMetadata", + "description": "The metadata information." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionExportEvaluatedDataItemsConfig": { + "description": "Configuration for exporting test set predictions to a BigQuery table.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionExportEvaluatedDataItemsConfig", + "properties": { + "destinationBigqueryUri": { + "description": "URI of desired destination BigQuery table. Expected format: `bq://{project_id}:{dataset_id}:{table}` If not specified, then results are exported to the following auto-created BigQuery table: `{project_id}:export_evaluated_examples_{model_name}_{yyyy_MM_dd'T'HH_mm_ss_SSS'Z'}.evaluated_examples`", + "type": "string" + }, + "overrideExistingTable": { + "description": "If true and an export destination is specified, then the contents of the destination are overwritten. Otherwise, if the export destination already exists, then the export operation fails.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionHierarchyConfig": { + "description": "Configuration that defines the hierarchical relationship of time series and parameters for hierarchical forecasting strategies.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionHierarchyConfig", + "properties": { + "groupColumns": { + "description": "A list of time series attribute column names that define the time series hierarchy. Only one level of hierarchy is supported, ex. 'region' for a hierarchy of stores or 'department' for a hierarchy of products. If multiple columns are specified, time series will be grouped by their combined values, ex. ('blue', 'large') for 'color' and 'size', up to 5 columns are accepted. If no group columns are specified, all time series are considered to be part of the same group.", + "items": { + "type": "string" + }, + "type": "array" + }, + "groupTemporalTotalWeight": { + "description": "The weight of the loss for predictions aggregated over both the horizon and time series in the same hierarchy group.", + "format": "double", + "type": "number" + }, + "groupTotalWeight": { + "description": "The weight of the loss for predictions aggregated over time series in the same group.", + "format": "double", + "type": "number" + }, + "temporalTotalWeight": { + "description": "The weight of the loss for predictions aggregated over the horizon for a single time series.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionHyperparameterTuningJobMetadata": { + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionHyperparameterTuningJobMetadata", + "properties": { + "backingHyperparameterTuningJob": { + "description": "The resource name of the HyperparameterTuningJob that has been created to carry out this HyperparameterTuning task.", + "type": "string" + }, + "bestTrialBackingCustomJob": { + "description": "The resource name of the CustomJob that has been created to run the best Trial of this HyperparameterTuning task.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionHyperparameterTuningJobSpec": { + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionHyperparameterTuningJobSpec", + "properties": { + "maxFailedTrialCount": { + "description": "The number of failed Trials that need to be seen before failing the HyperparameterTuningJob. If set to 0, Vertex AI decides how many Trials must fail before the whole job fails.", + "format": "int32", + "type": "integer" + }, + "maxTrialCount": { + "description": "The desired total number of Trials.", + "format": "int32", + "type": "integer" + }, + "parallelTrialCount": { + "description": "The desired number of Trials to run in parallel.", + "format": "int32", + "type": "integer" + }, + "studySpec": { + "$ref": "GoogleCloudAiplatformV1StudySpec", + "description": "Study configuration of the HyperparameterTuningJob." + }, + "trialJobSpec": { + "$ref": "GoogleCloudAiplatformV1CustomJobSpec", + "description": "The spec of a trial job. The same spec applies to the CustomJobs created in all the trials." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionHyperparameterTuningTask": { + "description": "A TrainingJob that tunes Hypererparameters of a custom code Model.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionHyperparameterTuningTask", + "properties": { + "inputs": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionHyperparameterTuningJobSpec", + "description": "The input parameters of this HyperparameterTuningTask." + }, + "metadata": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionHyperparameterTuningJobMetadata", + "description": "The metadata information." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecasting": { + "description": "A TrainingJob that trains and uploads an AutoML Forecasting Model.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecasting", + "properties": { + "inputs": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputs", + "description": "The input parameters of this TrainingJob." + }, + "metadata": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingMetadata", + "description": "The metadata information." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputs": { + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputs", + "properties": { + "additionalExperiments": { + "description": "Additional experiment flags for the time series forcasting training.", + "items": { + "type": "string" + }, + "type": "array" + }, + "availableAtForecastColumns": { + "description": "Names of columns that are available and provided when a forecast is requested. These columns contain information for the given entity (identified by the time_series_identifier_column column) that is known at forecast. For example, predicted weather for a specific day.", + "items": { + "type": "string" + }, + "type": "array" + }, + "contextWindow": { + "description": "The amount of time into the past training and prediction data is used for model training and prediction respectively. Expressed in number of units defined by the `data_granularity` field.", + "format": "int64", + "type": "string" + }, + "dataGranularity": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsGranularity", + "description": "Expected difference in time granularity between rows in the data." + }, + "exportEvaluatedDataItemsConfig": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionExportEvaluatedDataItemsConfig", + "description": "Configuration for exporting test set predictions to a BigQuery table. If this configuration is absent, then the export is not performed." + }, + "forecastHorizon": { + "description": "The amount of time into the future for which forecasted values for the target are returned. Expressed in number of units defined by the `data_granularity` field.", + "format": "int64", + "type": "string" + }, + "hierarchyConfig": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionHierarchyConfig", + "description": "Configuration that defines the hierarchical relationship of time series and parameters for hierarchical forecasting strategies." + }, + "holidayRegions": { + "description": "The geographical region based on which the holiday effect is applied in modeling by adding holiday categorical array feature that include all holidays matching the date. This option only allowed when data_granularity is day. By default, holiday effect modeling is disabled. To turn it on, specify the holiday region using this option.", + "items": { + "type": "string" + }, + "type": "array" + }, + "optimizationObjective": { + "description": "Objective function the model is optimizing towards. The training process creates a model that optimizes the value of the objective function over the validation set. The supported optimization objectives: * \"minimize-rmse\" (default) - Minimize root-mean-squared error (RMSE). * \"minimize-mae\" - Minimize mean-absolute error (MAE). * \"minimize-rmsle\" - Minimize root-mean-squared log error (RMSLE). * \"minimize-rmspe\" - Minimize root-mean-squared percentage error (RMSPE). * \"minimize-wape-mae\" - Minimize the combination of weighted absolute percentage error (WAPE) and mean-absolute-error (MAE). * \"minimize-quantile-loss\" - Minimize the quantile loss at the quantiles defined in `quantiles`. * \"minimize-mape\" - Minimize the mean absolute percentage error.", + "type": "string" + }, + "quantiles": { + "description": "Quantiles to use for minimize-quantile-loss `optimization_objective`. Up to 5 quantiles are allowed of values between 0 and 1, exclusive. Required if the value of optimization_objective is minimize-quantile-loss. Represents the percent quantiles to use for that objective. Quantiles must be unique.", + "items": { + "format": "double", + "type": "number" + }, + "type": "array" + }, + "targetColumn": { + "description": "The name of the column that the Model is to predict values for. This column must be unavailable at forecast.", + "type": "string" + }, + "timeColumn": { + "description": "The name of the column that identifies time order in the time series. This column must be available at forecast.", + "type": "string" + }, + "timeSeriesAttributeColumns": { + "description": "Column names that should be used as attribute columns. The value of these columns does not vary as a function of time. For example, store ID or item color.", + "items": { + "type": "string" + }, + "type": "array" + }, + "timeSeriesIdentifierColumn": { + "description": "The name of the column that identifies the time series.", + "type": "string" + }, + "trainBudgetMilliNodeHours": { + "description": "Required. The train budget of creating this model, expressed in milli node hours i.e. 1,000 value in this field means 1 node hour. The training cost of the model will not exceed this budget. The final cost will be attempted to be close to the budget, though may end up being (even) noticeably smaller - at the backend's discretion. This especially may happen when further model training ceases to provide any improvements. If the budget is set to a value known to be insufficient to train a model for the given dataset, the training won't be attempted and will error. The train budget must be between 1,000 and 72,000 milli node hours, inclusive.", + "format": "int64", + "type": "string" + }, + "transformations": { + "description": "Each transformation will apply transform function to given input column. And the result will be used for training. When creating transformation for BigQuery Struct column, the column should be flattened using \".\" as the delimiter.", + "items": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformation" + }, + "type": "array" + }, + "unavailableAtForecastColumns": { + "description": "Names of columns that are unavailable when a forecast is requested. This column contains information for the given entity (identified by the time_series_identifier_column) that is unknown before the forecast For example, actual weather on a given day.", + "items": { + "type": "string" + }, + "type": "array" + }, + "validationOptions": { + "description": "Validation options for the data validation component. The available options are: * \"fail-pipeline\" - default, will validate against the validation and fail the pipeline if it fails. * \"ignore-validation\" - ignore the results of the validation and continue", + "type": "string" + }, + "weightColumn": { + "description": "Column name that should be used as the weight column. Higher values in this column give more importance to the row during model training. The column must have numeric values between 0 and 10000 inclusively; 0 means the row is ignored for training. If weight column field is not set, then all rows are assumed to have equal weight of 1. This column must be available at forecast.", + "type": "string" + }, + "windowConfig": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionWindowConfig", + "description": "Config containing strategy for generating sliding windows." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsGranularity": { + "description": "A duration of time expressed in time granularity units.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsGranularity", + "properties": { + "quantity": { + "description": "The number of granularity_units between data points in the training data. If `granularity_unit` is `minute`, can be 1, 5, 10, 15, or 30. For all other values of `granularity_unit`, must be 1.", + "format": "int64", + "type": "string" + }, + "unit": { + "description": "The time granularity unit of this time period. The supported units are: * \"minute\" * \"hour\" * \"day\" * \"week\" * \"month\" * \"year\"", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformation": { + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformation", + "properties": { + "auto": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformationAutoTransformation" + }, + "categorical": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformationCategoricalTransformation" + }, + "numeric": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformationNumericTransformation" + }, + "text": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformationTextTransformation" + }, + "timestamp": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformationTimestampTransformation" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformationAutoTransformation": { + "description": "Training pipeline will infer the proper transformation based on the statistic of dataset.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformationAutoTransformation", + "properties": { + "columnName": { + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformationCategoricalTransformation": { + "description": "Training pipeline will perform following transformation functions. * The categorical string as is--no change to case, punctuation, spelling, tense, and so on. * Convert the category name to a dictionary lookup index and generate an embedding for each index. * Categories that appear less than 5 times in the training dataset are treated as the \"unknown\" category. The \"unknown\" category gets its own special lookup index and resulting embedding.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformationCategoricalTransformation", + "properties": { + "columnName": { + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformationNumericTransformation": { + "description": "Training pipeline will perform following transformation functions. * The value converted to float32. * The z_score of the value. * log(value+1) when the value is greater than or equal to 0. Otherwise, this transformation is not applied and the value is considered a missing value. * z_score of log(value+1) when the value is greater than or equal to 0. Otherwise, this transformation is not applied and the value is considered a missing value.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformationNumericTransformation", + "properties": { + "columnName": { + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformationTextTransformation": { + "description": "Training pipeline will perform following transformation functions. * The text as is--no change to case, punctuation, spelling, tense, and so on. * Convert the category name to a dictionary lookup index and generate an embedding for each index.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformationTextTransformation", + "properties": { + "columnName": { + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformationTimestampTransformation": { + "description": "Training pipeline will perform following transformation functions. * Apply the transformation functions for Numerical columns. * Determine the year, month, day,and weekday. Treat each value from the timestamp as a Categorical column. * Invalid numerical values (for example, values that fall outside of a typical timestamp range, or are extreme values) receive no special treatment and are not removed.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingInputsTransformationTimestampTransformation", + "properties": { + "columnName": { + "type": "string" + }, + "timeFormat": { + "description": "The format in which that time field is expressed. The time_format must either be one of: * `unix-seconds` * `unix-milliseconds` * `unix-microseconds` * `unix-nanoseconds` (for respectively number of seconds, milliseconds, microseconds and nanoseconds since start of the Unix epoch); or be written in `strftime` syntax. If time_format is not set, then the default format is RFC 3339 `date-time` format, where `time-offset` = `\"Z\"` (e.g. 1985-04-12T23:20:50.52Z)", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingMetadata": { + "description": "Model metadata specific to Seq2Seq Plus Forecasting.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionSeq2SeqPlusForecastingMetadata", + "properties": { + "evaluatedDataItemsBigqueryUri": { + "description": "BigQuery destination uri for exported evaluated examples.", + "type": "string" + }, + "trainCostMilliNodeHours": { + "description": "Output only. The actual training cost of the model, expressed in milli node hours, i.e. 1,000 value in this field means 1 node hour. Guaranteed to not exceed the train budget.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecasting": { + "description": "A TrainingJob that trains and uploads an AutoML Forecasting Model.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecasting", + "properties": { + "inputs": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputs", + "description": "The input parameters of this TrainingJob." + }, + "metadata": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingMetadata", + "description": "The metadata information." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputs": { + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputs", + "properties": { + "additionalExperiments": { + "description": "Additional experiment flags for the time series forcasting training.", + "items": { + "type": "string" + }, + "type": "array" + }, + "availableAtForecastColumns": { + "description": "Names of columns that are available and provided when a forecast is requested. These columns contain information for the given entity (identified by the time_series_identifier_column column) that is known at forecast. For example, predicted weather for a specific day.", + "items": { + "type": "string" + }, + "type": "array" + }, + "contextWindow": { + "description": "The amount of time into the past training and prediction data is used for model training and prediction respectively. Expressed in number of units defined by the `data_granularity` field.", + "format": "int64", + "type": "string" + }, + "dataGranularity": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsGranularity", + "description": "Expected difference in time granularity between rows in the data." + }, + "exportEvaluatedDataItemsConfig": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionExportEvaluatedDataItemsConfig", + "description": "Configuration for exporting test set predictions to a BigQuery table. If this configuration is absent, then the export is not performed." + }, + "forecastHorizon": { + "description": "The amount of time into the future for which forecasted values for the target are returned. Expressed in number of units defined by the `data_granularity` field.", + "format": "int64", + "type": "string" + }, + "hierarchyConfig": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionHierarchyConfig", + "description": "Configuration that defines the hierarchical relationship of time series and parameters for hierarchical forecasting strategies." + }, + "holidayRegions": { + "description": "The geographical region based on which the holiday effect is applied in modeling by adding holiday categorical array feature that include all holidays matching the date. This option only allowed when data_granularity is day. By default, holiday effect modeling is disabled. To turn it on, specify the holiday region using this option.", + "items": { + "type": "string" + }, + "type": "array" + }, + "optimizationObjective": { + "description": "Objective function the model is optimizing towards. The training process creates a model that optimizes the value of the objective function over the validation set. The supported optimization objectives: * \"minimize-rmse\" (default) - Minimize root-mean-squared error (RMSE). * \"minimize-mae\" - Minimize mean-absolute error (MAE). * \"minimize-rmsle\" - Minimize root-mean-squared log error (RMSLE). * \"minimize-rmspe\" - Minimize root-mean-squared percentage error (RMSPE). * \"minimize-wape-mae\" - Minimize the combination of weighted absolute percentage error (WAPE) and mean-absolute-error (MAE). * \"minimize-quantile-loss\" - Minimize the quantile loss at the quantiles defined in `quantiles`. * \"minimize-mape\" - Minimize the mean absolute percentage error.", + "type": "string" + }, + "quantiles": { + "description": "Quantiles to use for minimize-quantile-loss `optimization_objective`. Up to 5 quantiles are allowed of values between 0 and 1, exclusive. Required if the value of optimization_objective is minimize-quantile-loss. Represents the percent quantiles to use for that objective. Quantiles must be unique.", + "items": { + "format": "double", + "type": "number" + }, + "type": "array" + }, + "targetColumn": { + "description": "The name of the column that the Model is to predict values for. This column must be unavailable at forecast.", + "type": "string" + }, + "timeColumn": { + "description": "The name of the column that identifies time order in the time series. This column must be available at forecast.", + "type": "string" + }, + "timeSeriesAttributeColumns": { + "description": "Column names that should be used as attribute columns. The value of these columns does not vary as a function of time. For example, store ID or item color.", + "items": { + "type": "string" + }, + "type": "array" + }, + "timeSeriesIdentifierColumn": { + "description": "The name of the column that identifies the time series.", + "type": "string" + }, + "trainBudgetMilliNodeHours": { + "description": "Required. The train budget of creating this model, expressed in milli node hours i.e. 1,000 value in this field means 1 node hour. The training cost of the model will not exceed this budget. The final cost will be attempted to be close to the budget, though may end up being (even) noticeably smaller - at the backend's discretion. This especially may happen when further model training ceases to provide any improvements. If the budget is set to a value known to be insufficient to train a model for the given dataset, the training won't be attempted and will error. The train budget must be between 1,000 and 72,000 milli node hours, inclusive.", + "format": "int64", + "type": "string" + }, + "transformations": { + "description": "Each transformation will apply transform function to given input column. And the result will be used for training. When creating transformation for BigQuery Struct column, the column should be flattened using \".\" as the delimiter.", + "items": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformation" + }, + "type": "array" + }, + "unavailableAtForecastColumns": { + "description": "Names of columns that are unavailable when a forecast is requested. This column contains information for the given entity (identified by the time_series_identifier_column) that is unknown before the forecast For example, actual weather on a given day.", + "items": { + "type": "string" + }, + "type": "array" + }, + "validationOptions": { + "description": "Validation options for the data validation component. The available options are: * \"fail-pipeline\" - default, will validate against the validation and fail the pipeline if it fails. * \"ignore-validation\" - ignore the results of the validation and continue", + "type": "string" + }, + "weightColumn": { + "description": "Column name that should be used as the weight column. Higher values in this column give more importance to the row during model training. The column must have numeric values between 0 and 10000 inclusively; 0 means the row is ignored for training. If weight column field is not set, then all rows are assumed to have equal weight of 1. This column must be available at forecast.", + "type": "string" + }, + "windowConfig": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionWindowConfig", + "description": "Config containing strategy for generating sliding windows." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsGranularity": { + "description": "A duration of time expressed in time granularity units.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsGranularity", + "properties": { + "quantity": { + "description": "The number of granularity_units between data points in the training data. If `granularity_unit` is `minute`, can be 1, 5, 10, 15, or 30. For all other values of `granularity_unit`, must be 1.", + "format": "int64", + "type": "string" + }, + "unit": { + "description": "The time granularity unit of this time period. The supported units are: * \"minute\" * \"hour\" * \"day\" * \"week\" * \"month\" * \"year\"", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformation": { + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformation", + "properties": { + "auto": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformationAutoTransformation" + }, + "categorical": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformationCategoricalTransformation" + }, + "numeric": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformationNumericTransformation" + }, + "text": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformationTextTransformation" + }, + "timestamp": { + "$ref": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformationTimestampTransformation" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformationAutoTransformation": { + "description": "Training pipeline will infer the proper transformation based on the statistic of dataset.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformationAutoTransformation", + "properties": { + "columnName": { + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformationCategoricalTransformation": { + "description": "Training pipeline will perform following transformation functions. * The categorical string as is--no change to case, punctuation, spelling, tense, and so on. * Convert the category name to a dictionary lookup index and generate an embedding for each index. * Categories that appear less than 5 times in the training dataset are treated as the \"unknown\" category. The \"unknown\" category gets its own special lookup index and resulting embedding.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformationCategoricalTransformation", + "properties": { + "columnName": { + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformationNumericTransformation": { + "description": "Training pipeline will perform following transformation functions. * The value converted to float32. * The z_score of the value. * log(value+1) when the value is greater than or equal to 0. Otherwise, this transformation is not applied and the value is considered a missing value. * z_score of log(value+1) when the value is greater than or equal to 0. Otherwise, this transformation is not applied and the value is considered a missing value.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformationNumericTransformation", + "properties": { + "columnName": { + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformationTextTransformation": { + "description": "Training pipeline will perform following transformation functions. * The text as is--no change to case, punctuation, spelling, tense, and so on. * Convert the category name to a dictionary lookup index and generate an embedding for each index.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformationTextTransformation", + "properties": { + "columnName": { + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformationTimestampTransformation": { + "description": "Training pipeline will perform following transformation functions. * Apply the transformation functions for Numerical columns. * Determine the year, month, day,and weekday. Treat each value from the timestamp as a Categorical column. * Invalid numerical values (for example, values that fall outside of a typical timestamp range, or are extreme values) receive no special treatment and are not removed.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingInputsTransformationTimestampTransformation", + "properties": { + "columnName": { + "type": "string" + }, + "timeFormat": { + "description": "The format in which that time field is expressed. The time_format must either be one of: * `unix-seconds` * `unix-milliseconds` * `unix-microseconds` * `unix-nanoseconds` (for respectively number of seconds, milliseconds, microseconds and nanoseconds since start of the Unix epoch); or be written in `strftime` syntax. If time_format is not set, then the default format is RFC 3339 `date-time` format, where `time-offset` = `\"Z\"` (e.g. 1985-04-12T23:20:50.52Z)", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingMetadata": { + "description": "Model metadata specific to TFT Forecasting.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionTftForecastingMetadata", + "properties": { + "evaluatedDataItemsBigqueryUri": { + "description": "BigQuery destination uri for exported evaluated examples.", + "type": "string" + }, + "trainCostMilliNodeHours": { + "description": "Output only. The actual training cost of the model, expressed in milli node hours, i.e. 1,000 value in this field means 1 node hour. Guaranteed to not exceed the train budget.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionWindowConfig": { + "description": "Config that contains the strategy used to generate sliding windows in time series training. A window is a series of rows that comprise the context up to the time of prediction, and the horizon following. The corresponding row for each window marks the start of the forecast horizon. Each window is used as an input example for training/evaluation.", + "id": "GoogleCloudAiplatformV1SchemaTrainingjobDefinitionWindowConfig", + "properties": { + "column": { + "description": "Name of the column that should be used to generate sliding windows. The column should contain either booleans or string booleans; if the value of the row is True, generate a sliding window with the horizon starting at that row. The column will not be used as a feature in training.", + "type": "string" + }, + "maxCount": { + "description": "Maximum number of windows that should be generated across all time series.", + "format": "int64", + "type": "string" + }, + "strideLength": { + "description": "Stride length used to generate input examples. Within one time series, every {$STRIDE_LENGTH} rows will be used to generate a sliding window.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaVertex": { + "description": "A vertex represents a 2D point in the image. NOTE: the normalized vertex coordinates are relative to the original image and range from 0 to 1.", + "id": "GoogleCloudAiplatformV1SchemaVertex", + "properties": { + "x": { + "description": "X coordinate.", + "format": "double", + "type": "number" + }, + "y": { + "description": "Y coordinate.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaVideoActionRecognitionAnnotation": { + "description": "Annotation details specific to video action recognition.", + "id": "GoogleCloudAiplatformV1SchemaVideoActionRecognitionAnnotation", + "properties": { + "annotationSpecId": { + "description": "The resource Id of the AnnotationSpec that this Annotation pertains to.", + "type": "string" + }, + "displayName": { + "description": "The display name of the AnnotationSpec that this Annotation pertains to.", + "type": "string" + }, + "timeSegment": { + "$ref": "GoogleCloudAiplatformV1SchemaTimeSegment", + "description": "This Annotation applies to the time period represented by the TimeSegment. If it's not set, the Annotation applies to the whole video." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaVideoClassificationAnnotation": { + "description": "Annotation details specific to video classification.", + "id": "GoogleCloudAiplatformV1SchemaVideoClassificationAnnotation", + "properties": { + "annotationSpecId": { + "description": "The resource Id of the AnnotationSpec that this Annotation pertains to.", + "type": "string" + }, + "displayName": { + "description": "The display name of the AnnotationSpec that this Annotation pertains to.", + "type": "string" + }, + "timeSegment": { + "$ref": "GoogleCloudAiplatformV1SchemaTimeSegment", + "description": "This Annotation applies to the time period represented by the TimeSegment. If it's not set, the Annotation applies to the whole video." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaVideoDataItem": { + "description": "Payload of Video DataItem.", + "id": "GoogleCloudAiplatformV1SchemaVideoDataItem", + "properties": { + "gcsUri": { + "description": "Required. Google Cloud Storage URI points to the original video in user's bucket. The video is up to 50 GB in size and up to 3 hour in duration.", + "type": "string" + }, + "mimeType": { + "description": "Output only. The mime type of the content of the video. Only the videos in below listed mime types are supported. Supported mime_type: - video/mp4 - video/avi - video/quicktime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaVideoDatasetMetadata": { + "description": "The metadata of Datasets that contain Video DataItems.", + "id": "GoogleCloudAiplatformV1SchemaVideoDatasetMetadata", + "properties": { + "dataItemSchemaUri": { + "description": "Points to a YAML file stored on Google Cloud Storage describing payload of the Video DataItems that belong to this Dataset.", + "type": "string" + }, + "gcsBucket": { + "description": "Google Cloud Storage Bucket name that contains the blob data of this Dataset.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaVideoObjectTrackingAnnotation": { + "description": "Annotation details specific to video object tracking.", + "id": "GoogleCloudAiplatformV1SchemaVideoObjectTrackingAnnotation", + "properties": { + "annotationSpecId": { + "description": "The resource Id of the AnnotationSpec that this Annotation pertains to.", + "type": "string" + }, + "displayName": { + "description": "The display name of the AnnotationSpec that this Annotation pertains to.", + "type": "string" + }, + "instanceId": { + "description": "The instance of the object, expressed as a positive integer. Used to track the same object across different frames.", + "format": "int64", + "type": "string" + }, + "timeOffset": { + "description": "A time (frame) of a video to which this annotation pertains. Represented as the duration since the video's start.", + "format": "google-duration", + "type": "string" + }, + "xMax": { + "description": "The rightmost coordinate of the bounding box.", + "format": "double", + "type": "number" + }, + "xMin": { + "description": "The leftmost coordinate of the bounding box.", + "format": "double", + "type": "number" + }, + "yMax": { + "description": "The bottommost coordinate of the bounding box.", + "format": "double", + "type": "number" + }, + "yMin": { + "description": "The topmost coordinate of the bounding box.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaVisualInspectionClassificationLabelSavedQueryMetadata": { + "id": "GoogleCloudAiplatformV1SchemaVisualInspectionClassificationLabelSavedQueryMetadata", + "properties": { + "multiLabel": { + "description": "Whether or not the classification label is multi_label.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SchemaVisualInspectionMaskSavedQueryMetadata": { + "id": "GoogleCloudAiplatformV1SchemaVisualInspectionMaskSavedQueryMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudAiplatformV1SearchDataItemsResponse": { + "description": "Response message for DatasetService.SearchDataItems.", + "id": "GoogleCloudAiplatformV1SearchDataItemsResponse", + "properties": { + "dataItemViews": { + "description": "The DataItemViews read.", + "items": { + "$ref": "GoogleCloudAiplatformV1DataItemView" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token to retrieve next page of results. Pass to SearchDataItemsRequest.page_token to obtain that page.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SearchFeaturesResponse": { + "description": "Response message for FeaturestoreService.SearchFeatures.", + "id": "GoogleCloudAiplatformV1SearchFeaturesResponse", + "properties": { + "features": { + "description": "The Features matching the request. Fields returned: * `name` * `description` * `labels` * `create_time` * `update_time`", + "items": { + "$ref": "GoogleCloudAiplatformV1Feature" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token, which can be sent as SearchFeaturesRequest.page_token to retrieve the next page. If this field is omitted, there are no subsequent pages.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SearchMigratableResourcesRequest": { + "description": "Request message for MigrationService.SearchMigratableResources.", + "id": "GoogleCloudAiplatformV1SearchMigratableResourcesRequest", + "properties": { + "filter": { + "description": "A filter for your search. You can use the following types of filters: * Resource type filters. The following strings filter for a specific type of MigratableResource: * `ml_engine_model_version:*` * `automl_model:*` * `automl_dataset:*` * `data_labeling_dataset:*` * \"Migrated or not\" filters. The following strings filter for resources that either have or have not already been migrated: * `last_migrate_time:*` filters for migrated resources. * `NOT last_migrate_time:*` filters for not yet migrated resources.", + "type": "string" + }, + "pageSize": { + "description": "The standard page size. The default and maximum value is 100.", + "format": "int32", + "type": "integer" + }, + "pageToken": { + "description": "The standard page token.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SearchMigratableResourcesResponse": { + "description": "Response message for MigrationService.SearchMigratableResources.", + "id": "GoogleCloudAiplatformV1SearchMigratableResourcesResponse", + "properties": { + "migratableResources": { + "description": "All migratable resources that can be migrated to the location specified in the request.", + "items": { + "$ref": "GoogleCloudAiplatformV1MigratableResource" + }, + "type": "array" + }, + "nextPageToken": { + "description": "The standard next-page token. The migratable_resources may not fill page_size in SearchMigratableResourcesRequest even when there are subsequent pages.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SearchModelDeploymentMonitoringStatsAnomaliesRequest": { + "description": "Request message for JobService.SearchModelDeploymentMonitoringStatsAnomalies.", + "id": "GoogleCloudAiplatformV1SearchModelDeploymentMonitoringStatsAnomaliesRequest", + "properties": { + "deployedModelId": { + "description": "Required. The DeployedModel ID of the [ModelDeploymentMonitoringObjectiveConfig.deployed_model_id].", + "type": "string" + }, + "endTime": { + "description": "The latest timestamp of stats being generated. If not set, indicates feching stats till the latest possible one.", + "format": "google-datetime", + "type": "string" + }, + "featureDisplayName": { + "description": "The feature display name. If specified, only return the stats belonging to this feature. Format: ModelMonitoringStatsAnomalies.FeatureHistoricStatsAnomalies.feature_display_name, example: \"user_destination\".", + "type": "string" + }, + "objectives": { + "description": "Required. Objectives of the stats to retrieve.", + "items": { + "$ref": "GoogleCloudAiplatformV1SearchModelDeploymentMonitoringStatsAnomaliesRequestStatsAnomaliesObjective" + }, + "type": "array" + }, + "pageSize": { + "description": "The standard list page size.", + "format": "int32", + "type": "integer" + }, + "pageToken": { + "description": "A page token received from a previous JobService.SearchModelDeploymentMonitoringStatsAnomalies call.", + "type": "string" + }, + "startTime": { + "description": "The earliest timestamp of stats being generated. If not set, indicates fetching stats till the earliest possible one.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SearchModelDeploymentMonitoringStatsAnomaliesRequestStatsAnomaliesObjective": { + "description": "Stats requested for specific objective.", + "id": "GoogleCloudAiplatformV1SearchModelDeploymentMonitoringStatsAnomaliesRequestStatsAnomaliesObjective", + "properties": { + "topFeatureCount": { + "description": "If set, all attribution scores between SearchModelDeploymentMonitoringStatsAnomaliesRequest.start_time and SearchModelDeploymentMonitoringStatsAnomaliesRequest.end_time are fetched, and page token doesn't take effect in this case. Only used to retrieve attribution score for the top Features which has the highest attribution score in the latest monitoring run.", + "format": "int32", + "type": "integer" + }, + "type": { + "enum": [ + "MODEL_DEPLOYMENT_MONITORING_OBJECTIVE_TYPE_UNSPECIFIED", + "RAW_FEATURE_SKEW", + "RAW_FEATURE_DRIFT", + "FEATURE_ATTRIBUTION_SKEW", + "FEATURE_ATTRIBUTION_DRIFT" + ], + "enumDescriptions": [ + "Default value, should not be set.", + "Raw feature values' stats to detect skew between Training-Prediction datasets.", + "Raw feature values' stats to detect drift between Serving-Prediction datasets.", + "Feature attribution scores to detect skew between Training-Prediction datasets.", + "Feature attribution scores to detect skew between Prediction datasets collected within different time windows." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SearchModelDeploymentMonitoringStatsAnomaliesResponse": { + "description": "Response message for JobService.SearchModelDeploymentMonitoringStatsAnomalies.", + "id": "GoogleCloudAiplatformV1SearchModelDeploymentMonitoringStatsAnomaliesResponse", + "properties": { + "monitoringStats": { + "description": "Stats retrieved for requested objectives. There are at most 1000 ModelMonitoringStatsAnomalies.FeatureHistoricStatsAnomalies.prediction_stats in the response.", + "items": { + "$ref": "GoogleCloudAiplatformV1ModelMonitoringStatsAnomalies" + }, + "type": "array" + }, + "nextPageToken": { + "description": "The page token that can be used by the next JobService.SearchModelDeploymentMonitoringStatsAnomalies call.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SearchNearestEntitiesRequest": { + "description": "The request message for FeatureOnlineStoreService.SearchNearestEntities.", + "id": "GoogleCloudAiplatformV1SearchNearestEntitiesRequest", + "properties": { + "query": { + "$ref": "GoogleCloudAiplatformV1NearestNeighborQuery", + "description": "Required. The query." + }, + "returnFullEntity": { + "description": "Optional. If set to true, the full entities (including all vector values and metadata) of the nearest neighbors are returned; otherwise only entity id of the nearest neighbors will be returned. Note that returning full entities will significantly increase the latency and cost of the query.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SearchNearestEntitiesResponse": { + "description": "Response message for FeatureOnlineStoreService.SearchNearestEntities", + "id": "GoogleCloudAiplatformV1SearchNearestEntitiesResponse", + "properties": { + "nearestNeighbors": { + "$ref": "GoogleCloudAiplatformV1NearestNeighbors", + "description": "The nearest neighbors of the query entity." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1Segment": { + "description": "Segment of the content.", + "id": "GoogleCloudAiplatformV1Segment", + "properties": { + "endIndex": { + "description": "Output only. End index in the given Part, measured in bytes. Offset from the start of the Part, exclusive, starting at zero.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "partIndex": { + "description": "Output only. The index of a Part object within its parent Content object.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "startIndex": { + "description": "Output only. Start index in the given Part, measured in bytes. Offset from the start of the Part, inclusive, starting at zero.", + "format": "int32", + "readOnly": true, + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1ShieldedVmConfig": { + "description": "A set of Shielded Instance options. See [Images using supported Shielded VM features](https://cloud.google.com/compute/docs/instances/modifying-shielded-vm).", + "id": "GoogleCloudAiplatformV1ShieldedVmConfig", + "properties": { + "enableSecureBoot": { + "description": "Defines whether the instance has [Secure Boot](https://cloud.google.com/compute/shielded-vm/docs/shielded-vm#secure-boot) enabled. Secure Boot helps ensure that the system only runs authentic software by verifying the digital signature of all boot components, and halting the boot process if signature verification fails.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SmoothGradConfig": { + "description": "Config for SmoothGrad approximation of gradients. When enabled, the gradients are approximated by averaging the gradients from noisy samples in the vicinity of the inputs. Adding noise can help improve the computed gradients. Refer to this paper for more details: https://arxiv.org/pdf/1706.03825.pdf", + "id": "GoogleCloudAiplatformV1SmoothGradConfig", + "properties": { + "featureNoiseSigma": { + "$ref": "GoogleCloudAiplatformV1FeatureNoiseSigma", + "description": "This is similar to noise_sigma, but provides additional flexibility. A separate noise sigma can be provided for each feature, which is useful if their distributions are different. No noise is added to features that are not set. If this field is unset, noise_sigma will be used for all features." + }, + "noiseSigma": { + "description": "This is a single float value and will be used to add noise to all the features. Use this field when all features are normalized to have the same distribution: scale to range [0, 1], [-1, 1] or z-scoring, where features are normalized to have 0-mean and 1-variance. Learn more about [normalization](https://developers.google.com/machine-learning/data-prep/transform/normalization). For best results the recommended value is about 10% - 20% of the standard deviation of the input feature. Refer to section 3.2 of the SmoothGrad paper: https://arxiv.org/pdf/1706.03825.pdf. Defaults to 0.1. If the distribution is different per feature, set feature_noise_sigma instead for each feature.", + "format": "float", + "type": "number" + }, + "noisySampleCount": { + "description": "The number of gradient samples to use for approximation. The higher this number, the more accurate the gradient is, but the runtime complexity increases by this factor as well. Valid range of its value is [1, 50]. Defaults to 3.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SpecialistPool": { + "description": "SpecialistPool represents customers' own workforce to work on their data labeling jobs. It includes a group of specialist managers and workers. Managers are responsible for managing the workers in this pool as well as customers' data labeling jobs associated with this pool. Customers create specialist pool as well as start data labeling jobs on Cloud, managers and workers handle the jobs using CrowdCompute console.", + "id": "GoogleCloudAiplatformV1SpecialistPool", + "properties": { + "displayName": { + "description": "Required. The user-defined name of the SpecialistPool. The name can be up to 128 characters long and can consist of any UTF-8 characters. This field should be unique on project-level.", + "type": "string" + }, + "name": { + "description": "Required. The resource name of the SpecialistPool.", + "type": "string" + }, + "pendingDataLabelingJobs": { + "description": "Output only. The resource name of the pending data labeling jobs.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "specialistManagerEmails": { + "description": "The email addresses of the managers in the SpecialistPool.", + "items": { + "type": "string" + }, + "type": "array" + }, + "specialistManagersCount": { + "description": "Output only. The number of managers in this SpecialistPool.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "specialistWorkerEmails": { + "description": "The email addresses of workers in the SpecialistPool.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1StartNotebookRuntimeOperationMetadata": { + "description": "Metadata information for NotebookService.StartNotebookRuntime.", + "id": "GoogleCloudAiplatformV1StartNotebookRuntimeOperationMetadata", + "properties": { + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "The operation generic information." + }, + "progressMessage": { + "description": "A human-readable message that shows the intermediate progress details of NotebookRuntime.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1StartNotebookRuntimeRequest": { + "description": "Request message for NotebookService.StartNotebookRuntime.", + "id": "GoogleCloudAiplatformV1StartNotebookRuntimeRequest", + "properties": {}, + "type": "object" + }, + "GoogleCloudAiplatformV1StopTrialRequest": { + "description": "Request message for VizierService.StopTrial.", + "id": "GoogleCloudAiplatformV1StopTrialRequest", + "properties": {}, + "type": "object" + }, + "GoogleCloudAiplatformV1StratifiedSplit": { + "description": "Assigns input data to the training, validation, and test sets so that the distribution of values found in the categorical column (as specified by the `key` field) is mirrored within each split. The fraction values determine the relative sizes of the splits. For example, if the specified column has three values, with 50% of the rows having value \"A\", 25% value \"B\", and 25% value \"C\", and the split fractions are specified as 80/10/10, then the training set will constitute 80% of the training data, with about 50% of the training set rows having the value \"A\" for the specified column, about 25% having the value \"B\", and about 25% having the value \"C\". Only the top 500 occurring values are used; any values not in the top 500 values are randomly assigned to a split. If less than three rows contain a specific value, those rows are randomly assigned. Supported only for tabular Datasets.", + "id": "GoogleCloudAiplatformV1StratifiedSplit", + "properties": { + "key": { + "description": "Required. The key is a name of one of the Dataset's data columns. The key provided must be for a categorical column.", + "type": "string" + }, + "testFraction": { + "description": "The fraction of the input data that is to be used to evaluate the Model.", + "format": "double", + "type": "number" + }, + "trainingFraction": { + "description": "The fraction of the input data that is to be used to train the Model.", + "format": "double", + "type": "number" + }, + "validationFraction": { + "description": "The fraction of the input data that is to be used to validate the Model.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1StreamRawPredictRequest": { + "description": "Request message for PredictionService.StreamRawPredict.", + "id": "GoogleCloudAiplatformV1StreamRawPredictRequest", + "properties": { + "httpBody": { + "$ref": "GoogleApiHttpBody", + "description": "The prediction input. Supports HTTP headers and arbitrary data payload." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1StreamingPredictRequest": { + "description": "Request message for PredictionService.StreamingPredict. The first message must contain endpoint field and optionally input. The subsequent messages must contain input.", + "id": "GoogleCloudAiplatformV1StreamingPredictRequest", + "properties": { + "inputs": { + "description": "The prediction input.", + "items": { + "$ref": "GoogleCloudAiplatformV1Tensor" + }, + "type": "array" + }, + "parameters": { + "$ref": "GoogleCloudAiplatformV1Tensor", + "description": "The parameters that govern the prediction." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1StreamingPredictResponse": { + "description": "Response message for PredictionService.StreamingPredict.", + "id": "GoogleCloudAiplatformV1StreamingPredictResponse", + "properties": { + "outputs": { + "description": "The prediction output.", + "items": { + "$ref": "GoogleCloudAiplatformV1Tensor" + }, + "type": "array" + }, + "parameters": { + "$ref": "GoogleCloudAiplatformV1Tensor", + "description": "The parameters that govern the prediction." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1StreamingReadFeatureValuesRequest": { + "description": "Request message for FeaturestoreOnlineServingService.StreamingFeatureValuesRead.", + "id": "GoogleCloudAiplatformV1StreamingReadFeatureValuesRequest", + "properties": { + "entityIds": { + "description": "Required. IDs of entities to read Feature values of. The maximum number of IDs is 100. For example, for a machine learning model predicting user clicks on a website, an entity ID could be `user_123`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "featureSelector": { + "$ref": "GoogleCloudAiplatformV1FeatureSelector", + "description": "Required. Selector choosing Features of the target EntityType. Feature IDs will be deduplicated." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1StringArray": { + "description": "A list of string values.", + "id": "GoogleCloudAiplatformV1StringArray", + "properties": { + "values": { + "description": "A list of string values.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1Study": { + "description": "A message representing a Study.", + "id": "GoogleCloudAiplatformV1Study", + "properties": { + "createTime": { + "description": "Output only. Time at which the study was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "Required. Describes the Study, default value is empty string.", + "type": "string" + }, + "inactiveReason": { + "description": "Output only. A human readable reason why the Study is inactive. This should be empty if a study is ACTIVE or COMPLETED.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. The name of a study. The study's globally unique identifier. Format: `projects/{project}/locations/{location}/studies/{study}`", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The detailed state of a Study.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "INACTIVE", + "COMPLETED" + ], + "enumDescriptions": [ + "The study state is unspecified.", + "The study is active.", + "The study is stopped due to an internal error.", + "The study is done when the service exhausts the parameter search space or max_trial_count is reached." + ], + "readOnly": true, + "type": "string" + }, + "studySpec": { + "$ref": "GoogleCloudAiplatformV1StudySpec", + "description": "Required. Configuration of the Study." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1StudySpec": { + "description": "Represents specification of a Study.", + "id": "GoogleCloudAiplatformV1StudySpec", + "properties": { + "algorithm": { + "description": "The search algorithm specified for the Study.", + "enum": [ + "ALGORITHM_UNSPECIFIED", + "GRID_SEARCH", + "RANDOM_SEARCH" + ], + "enumDescriptions": [ + "The default algorithm used by Vertex AI for [hyperparameter tuning](https://cloud.google.com/vertex-ai/docs/training/hyperparameter-tuning-overview) and [Vertex AI Vizier](https://cloud.google.com/vertex-ai/docs/vizier).", + "Simple grid search within the feasible space. To use grid search, all parameters must be `INTEGER`, `CATEGORICAL`, or `DISCRETE`.", + "Simple random search within the feasible space." + ], + "type": "string" + }, + "convexAutomatedStoppingSpec": { + "$ref": "GoogleCloudAiplatformV1StudySpecConvexAutomatedStoppingSpec", + "description": "The automated early stopping spec using convex stopping rule." + }, + "decayCurveStoppingSpec": { + "$ref": "GoogleCloudAiplatformV1StudySpecDecayCurveAutomatedStoppingSpec", + "description": "The automated early stopping spec using decay curve rule." + }, + "measurementSelectionType": { + "description": "Describe which measurement selection type will be used", + "enum": [ + "MEASUREMENT_SELECTION_TYPE_UNSPECIFIED", + "LAST_MEASUREMENT", + "BEST_MEASUREMENT" + ], + "enumDescriptions": [ + "Will be treated as LAST_MEASUREMENT.", + "Use the last measurement reported.", + "Use the best measurement reported." + ], + "type": "string" + }, + "medianAutomatedStoppingSpec": { + "$ref": "GoogleCloudAiplatformV1StudySpecMedianAutomatedStoppingSpec", + "description": "The automated early stopping spec using median rule." + }, + "metrics": { + "description": "Required. Metric specs for the Study.", + "items": { + "$ref": "GoogleCloudAiplatformV1StudySpecMetricSpec" + }, + "type": "array" + }, + "observationNoise": { + "description": "The observation noise level of the study. Currently only supported by the Vertex AI Vizier service. Not supported by HyperparameterTuningJob or TrainingPipeline.", + "enum": [ + "OBSERVATION_NOISE_UNSPECIFIED", + "LOW", + "HIGH" + ], + "enumDescriptions": [ + "The default noise level chosen by Vertex AI.", + "Vertex AI assumes that the objective function is (nearly) perfectly reproducible, and will never repeat the same Trial parameters.", + "Vertex AI will estimate the amount of noise in metric evaluations, it may repeat the same Trial parameters more than once." + ], + "type": "string" + }, + "parameters": { + "description": "Required. The set of parameters to tune.", + "items": { + "$ref": "GoogleCloudAiplatformV1StudySpecParameterSpec" + }, + "type": "array" + }, + "studyStoppingConfig": { + "$ref": "GoogleCloudAiplatformV1StudySpecStudyStoppingConfig", + "description": "Conditions for automated stopping of a Study. Enable automated stopping by configuring at least one condition." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1StudySpecConvexAutomatedStoppingSpec": { + "description": "Configuration for ConvexAutomatedStoppingSpec. When there are enough completed trials (configured by min_measurement_count), for pending trials with enough measurements and steps, the policy first computes an overestimate of the objective value at max_num_steps according to the slope of the incomplete objective value curve. No prediction can be made if the curve is completely flat. If the overestimation is worse than the best objective value of the completed trials, this pending trial will be early-stopped, but a last measurement will be added to the pending trial with max_num_steps and predicted objective value from the autoregression model.", + "id": "GoogleCloudAiplatformV1StudySpecConvexAutomatedStoppingSpec", + "properties": { + "learningRateParameterName": { + "description": "The hyper-parameter name used in the tuning job that stands for learning rate. Leave it blank if learning rate is not in a parameter in tuning. The learning_rate is used to estimate the objective value of the ongoing trial.", + "type": "string" + }, + "maxStepCount": { + "description": "Steps used in predicting the final objective for early stopped trials. In general, it's set to be the same as the defined steps in training / tuning. If not defined, it will learn it from the completed trials. When use_steps is false, this field is set to the maximum elapsed seconds.", + "format": "int64", + "type": "string" + }, + "minMeasurementCount": { + "description": "The minimal number of measurements in a Trial. Early-stopping checks will not trigger if less than min_measurement_count+1 completed trials or pending trials with less than min_measurement_count measurements. If not defined, the default value is 5.", + "format": "int64", + "type": "string" + }, + "minStepCount": { + "description": "Minimum number of steps for a trial to complete. Trials which do not have a measurement with step_count > min_step_count won't be considered for early stopping. It's ok to set it to 0, and a trial can be early stopped at any stage. By default, min_step_count is set to be one-tenth of the max_step_count. When use_elapsed_duration is true, this field is set to the minimum elapsed seconds.", + "format": "int64", + "type": "string" + }, + "updateAllStoppedTrials": { + "description": "ConvexAutomatedStoppingSpec by default only updates the trials that needs to be early stopped using a newly trained auto-regressive model. When this flag is set to True, all stopped trials from the beginning are potentially updated in terms of their `final_measurement`. Also, note that the training logic of autoregressive models is different in this case. Enabling this option has shown better results and this may be the default option in the future.", + "type": "boolean" + }, + "useElapsedDuration": { + "description": "This bool determines whether or not the rule is applied based on elapsed_secs or steps. If use_elapsed_duration==false, the early stopping decision is made according to the predicted objective values according to the target steps. If use_elapsed_duration==true, elapsed_secs is used instead of steps. Also, in this case, the parameters max_num_steps and min_num_steps are overloaded to contain max_elapsed_seconds and min_elapsed_seconds.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1StudySpecDecayCurveAutomatedStoppingSpec": { + "description": "The decay curve automated stopping rule builds a Gaussian Process Regressor to predict the final objective value of a Trial based on the already completed Trials and the intermediate measurements of the current Trial. Early stopping is requested for the current Trial if there is very low probability to exceed the optimal value found so far.", + "id": "GoogleCloudAiplatformV1StudySpecDecayCurveAutomatedStoppingSpec", + "properties": { + "useElapsedDuration": { + "description": "True if Measurement.elapsed_duration is used as the x-axis of each Trials Decay Curve. Otherwise, Measurement.step_count will be used as the x-axis.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1StudySpecMedianAutomatedStoppingSpec": { + "description": "The median automated stopping rule stops a pending Trial if the Trial's best objective_value is strictly below the median 'performance' of all completed Trials reported up to the Trial's last measurement. Currently, 'performance' refers to the running average of the objective values reported by the Trial in each measurement.", + "id": "GoogleCloudAiplatformV1StudySpecMedianAutomatedStoppingSpec", + "properties": { + "useElapsedDuration": { + "description": "True if median automated stopping rule applies on Measurement.elapsed_duration. It means that elapsed_duration field of latest measurement of current Trial is used to compute median objective value for each completed Trials.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1StudySpecMetricSpec": { + "description": "Represents a metric to optimize.", + "id": "GoogleCloudAiplatformV1StudySpecMetricSpec", + "properties": { + "goal": { + "description": "Required. The optimization goal of the metric.", + "enum": [ + "GOAL_TYPE_UNSPECIFIED", + "MAXIMIZE", + "MINIMIZE" + ], + "enumDescriptions": [ + "Goal Type will default to maximize.", + "Maximize the goal metric.", + "Minimize the goal metric." + ], + "type": "string" + }, + "metricId": { + "description": "Required. The ID of the metric. Must not contain whitespaces and must be unique amongst all MetricSpecs.", + "type": "string" + }, + "safetyConfig": { + "$ref": "GoogleCloudAiplatformV1StudySpecMetricSpecSafetyMetricConfig", + "description": "Used for safe search. In the case, the metric will be a safety metric. You must provide a separate metric for objective metric." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1StudySpecMetricSpecSafetyMetricConfig": { + "description": "Used in safe optimization to specify threshold levels and risk tolerance.", + "id": "GoogleCloudAiplatformV1StudySpecMetricSpecSafetyMetricConfig", + "properties": { + "desiredMinSafeTrialsFraction": { + "description": "Desired minimum fraction of safe trials (over total number of trials) that should be targeted by the algorithm at any time during the study (best effort). This should be between 0.0 and 1.0 and a value of 0.0 means that there is no minimum and an algorithm proceeds without targeting any specific fraction. A value of 1.0 means that the algorithm attempts to only Suggest safe Trials.", + "format": "double", + "type": "number" + }, + "safetyThreshold": { + "description": "Safety threshold (boundary value between safe and unsafe). NOTE that if you leave SafetyMetricConfig unset, a default value of 0 will be used.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1StudySpecParameterSpec": { + "description": "Represents a single parameter to optimize.", + "id": "GoogleCloudAiplatformV1StudySpecParameterSpec", + "properties": { + "categoricalValueSpec": { + "$ref": "GoogleCloudAiplatformV1StudySpecParameterSpecCategoricalValueSpec", + "description": "The value spec for a 'CATEGORICAL' parameter." + }, + "conditionalParameterSpecs": { + "description": "A conditional parameter node is active if the parameter's value matches the conditional node's parent_value_condition. If two items in conditional_parameter_specs have the same name, they must have disjoint parent_value_condition.", + "items": { + "$ref": "GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpec" + }, + "type": "array" + }, + "discreteValueSpec": { + "$ref": "GoogleCloudAiplatformV1StudySpecParameterSpecDiscreteValueSpec", + "description": "The value spec for a 'DISCRETE' parameter." + }, + "doubleValueSpec": { + "$ref": "GoogleCloudAiplatformV1StudySpecParameterSpecDoubleValueSpec", + "description": "The value spec for a 'DOUBLE' parameter." + }, + "integerValueSpec": { + "$ref": "GoogleCloudAiplatformV1StudySpecParameterSpecIntegerValueSpec", + "description": "The value spec for an 'INTEGER' parameter." + }, + "parameterId": { + "description": "Required. The ID of the parameter. Must not contain whitespaces and must be unique amongst all ParameterSpecs.", + "type": "string" + }, + "scaleType": { + "description": "How the parameter should be scaled. Leave unset for `CATEGORICAL` parameters.", + "enum": [ + "SCALE_TYPE_UNSPECIFIED", + "UNIT_LINEAR_SCALE", + "UNIT_LOG_SCALE", + "UNIT_REVERSE_LOG_SCALE" + ], + "enumDescriptions": [ + "By default, no scaling is applied.", + "Scales the feasible space to (0, 1) linearly.", + "Scales the feasible space logarithmically to (0, 1). The entire feasible space must be strictly positive.", + "Scales the feasible space \"reverse\" logarithmically to (0, 1). The result is that values close to the top of the feasible space are spread out more than points near the bottom. The entire feasible space must be strictly positive." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1StudySpecParameterSpecCategoricalValueSpec": { + "description": "Value specification for a parameter in `CATEGORICAL` type.", + "id": "GoogleCloudAiplatformV1StudySpecParameterSpecCategoricalValueSpec", + "properties": { + "defaultValue": { + "description": "A default value for a `CATEGORICAL` parameter that is assumed to be a relatively good starting point. Unset value signals that there is no offered starting point. Currently only supported by the Vertex AI Vizier service. Not supported by HyperparameterTuningJob or TrainingPipeline.", + "type": "string" + }, + "values": { + "description": "Required. The list of possible categories.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpec": { + "description": "Represents a parameter spec with condition from its parent parameter.", + "id": "GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpec", + "properties": { + "parameterSpec": { + "$ref": "GoogleCloudAiplatformV1StudySpecParameterSpec", + "description": "Required. The spec for a conditional parameter." + }, + "parentCategoricalValues": { + "$ref": "GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecCategoricalValueCondition", + "description": "The spec for matching values from a parent parameter of `CATEGORICAL` type." + }, + "parentDiscreteValues": { + "$ref": "GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecDiscreteValueCondition", + "description": "The spec for matching values from a parent parameter of `DISCRETE` type." + }, + "parentIntValues": { + "$ref": "GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecIntValueCondition", + "description": "The spec for matching values from a parent parameter of `INTEGER` type." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecCategoricalValueCondition": { + "description": "Represents the spec to match categorical values from parent parameter.", + "id": "GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecCategoricalValueCondition", + "properties": { + "values": { + "description": "Required. Matches values of the parent parameter of 'CATEGORICAL' type. All values must exist in `categorical_value_spec` of parent parameter.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecDiscreteValueCondition": { + "description": "Represents the spec to match discrete values from parent parameter.", + "id": "GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecDiscreteValueCondition", + "properties": { + "values": { + "description": "Required. Matches values of the parent parameter of 'DISCRETE' type. All values must exist in `discrete_value_spec` of parent parameter. The Epsilon of the value matching is 1e-10.", + "items": { + "format": "double", + "type": "number" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecIntValueCondition": { + "description": "Represents the spec to match integer values from parent parameter.", + "id": "GoogleCloudAiplatformV1StudySpecParameterSpecConditionalParameterSpecIntValueCondition", + "properties": { + "values": { + "description": "Required. Matches values of the parent parameter of 'INTEGER' type. All values must lie in `integer_value_spec` of parent parameter.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1StudySpecParameterSpecDiscreteValueSpec": { + "description": "Value specification for a parameter in `DISCRETE` type.", + "id": "GoogleCloudAiplatformV1StudySpecParameterSpecDiscreteValueSpec", + "properties": { + "defaultValue": { + "description": "A default value for a `DISCRETE` parameter that is assumed to be a relatively good starting point. Unset value signals that there is no offered starting point. It automatically rounds to the nearest feasible discrete point. Currently only supported by the Vertex AI Vizier service. Not supported by HyperparameterTuningJob or TrainingPipeline.", + "format": "double", + "type": "number" + }, + "values": { + "description": "Required. A list of possible values. The list should be in increasing order and at least 1e-10 apart. For instance, this parameter might have possible settings of 1.5, 2.5, and 4.0. This list should not contain more than 1,000 values.", + "items": { + "format": "double", + "type": "number" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1StudySpecParameterSpecDoubleValueSpec": { + "description": "Value specification for a parameter in `DOUBLE` type.", + "id": "GoogleCloudAiplatformV1StudySpecParameterSpecDoubleValueSpec", + "properties": { + "defaultValue": { + "description": "A default value for a `DOUBLE` parameter that is assumed to be a relatively good starting point. Unset value signals that there is no offered starting point. Currently only supported by the Vertex AI Vizier service. Not supported by HyperparameterTuningJob or TrainingPipeline.", + "format": "double", + "type": "number" + }, + "maxValue": { + "description": "Required. Inclusive maximum value of the parameter.", + "format": "double", + "type": "number" + }, + "minValue": { + "description": "Required. Inclusive minimum value of the parameter.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1StudySpecParameterSpecIntegerValueSpec": { + "description": "Value specification for a parameter in `INTEGER` type.", + "id": "GoogleCloudAiplatformV1StudySpecParameterSpecIntegerValueSpec", + "properties": { + "defaultValue": { + "description": "A default value for an `INTEGER` parameter that is assumed to be a relatively good starting point. Unset value signals that there is no offered starting point. Currently only supported by the Vertex AI Vizier service. Not supported by HyperparameterTuningJob or TrainingPipeline.", + "format": "int64", + "type": "string" + }, + "maxValue": { + "description": "Required. Inclusive maximum value of the parameter.", + "format": "int64", + "type": "string" + }, + "minValue": { + "description": "Required. Inclusive minimum value of the parameter.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1StudySpecStudyStoppingConfig": { + "description": "The configuration (stopping conditions) for automated stopping of a Study. Conditions include trial budgets, time budgets, and convergence detection.", + "id": "GoogleCloudAiplatformV1StudySpecStudyStoppingConfig", + "properties": { + "maxDurationNoProgress": { + "description": "If the objective value has not improved for this much time, stop the study. WARNING: Effective only for single-objective studies.", + "format": "google-duration", + "type": "string" + }, + "maxNumTrials": { + "description": "If there are more than this many trials, stop the study.", + "format": "int32", + "type": "integer" + }, + "maxNumTrialsNoProgress": { + "description": "If the objective value has not improved for this many consecutive trials, stop the study. WARNING: Effective only for single-objective studies.", + "format": "int32", + "type": "integer" + }, + "maximumRuntimeConstraint": { + "$ref": "GoogleCloudAiplatformV1StudyTimeConstraint", + "description": "If the specified time or duration has passed, stop the study." + }, + "minNumTrials": { + "description": "If there are fewer than this many COMPLETED trials, do not stop the study.", + "format": "int32", + "type": "integer" + }, + "minimumRuntimeConstraint": { + "$ref": "GoogleCloudAiplatformV1StudyTimeConstraint", + "description": "Each \"stopping rule\" in this proto specifies an \"if\" condition. Before Vizier would generate a new suggestion, it first checks each specified stopping rule, from top to bottom in this list. Note that the first few rules (e.g. minimum_runtime_constraint, min_num_trials) will prevent other stopping rules from being evaluated until they are met. For example, setting `min_num_trials=5` and `always_stop_after= 1 hour` means that the Study will ONLY stop after it has 5 COMPLETED trials, even if more than an hour has passed since its creation. It follows the first applicable rule (whose \"if\" condition is satisfied) to make a stopping decision. If none of the specified rules are applicable, then Vizier decides that the study should not stop. If Vizier decides that the study should stop, the study enters STOPPING state (or STOPPING_ASAP if should_stop_asap = true). IMPORTANT: The automatic study state transition happens precisely as described above; that is, deleting trials or updating StudyConfig NEVER automatically moves the study state back to ACTIVE. If you want to _resume_ a Study that was stopped, 1) change the stopping conditions if necessary, 2) activate the study, and then 3) ask for suggestions. If the specified time or duration has not passed, do not stop the study." + }, + "shouldStopAsap": { + "description": "If true, a Study enters STOPPING_ASAP whenever it would normally enters STOPPING state. The bottom line is: set to true if you want to interrupt on-going evaluations of Trials as soon as the study stopping condition is met. (Please see Study.State documentation for the source of truth).", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1StudyTimeConstraint": { + "description": "Time-based Constraint for Study", + "id": "GoogleCloudAiplatformV1StudyTimeConstraint", + "properties": { + "endTime": { + "description": "Compares the wallclock time to this time. Must use UTC timezone.", + "format": "google-datetime", + "type": "string" + }, + "maxDuration": { + "description": "Counts the wallclock time passed since the creation of this Study.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SuggestTrialsMetadata": { + "description": "Details of operations that perform Trials suggestion.", + "id": "GoogleCloudAiplatformV1SuggestTrialsMetadata", + "properties": { + "clientId": { + "description": "The identifier of the client that is requesting the suggestion. If multiple SuggestTrialsRequests have the same `client_id`, the service will return the identical suggested Trial if the Trial is pending, and provide a new Trial if the last suggested Trial was completed.", + "type": "string" + }, + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "Operation metadata for suggesting Trials." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SuggestTrialsRequest": { + "description": "Request message for VizierService.SuggestTrials.", + "id": "GoogleCloudAiplatformV1SuggestTrialsRequest", + "properties": { + "clientId": { + "description": "Required. The identifier of the client that is requesting the suggestion. If multiple SuggestTrialsRequests have the same `client_id`, the service will return the identical suggested Trial if the Trial is pending, and provide a new Trial if the last suggested Trial was completed.", + "type": "string" + }, + "contexts": { + "description": "Optional. This allows you to specify the \"context\" for a Trial; a context is a slice (a subspace) of the search space. Typical uses for contexts: 1) You are using Vizier to tune a server for best performance, but there's a strong weekly cycle. The context specifies the day-of-week. This allows Tuesday to generalize from Wednesday without assuming that everything is identical. 2) Imagine you're optimizing some medical treatment for people. As they walk in the door, you know certain facts about them (e.g. sex, weight, height, blood-pressure). Put that information in the context, and Vizier will adapt its suggestions to the patient. 3) You want to do a fair A/B test efficiently. Specify the \"A\" and \"B\" conditions as contexts, and Vizier will generalize between \"A\" and \"B\" conditions. If they are similar, this will allow Vizier to converge to the optimum faster than if \"A\" and \"B\" were separate Studies. NOTE: You can also enter contexts as REQUESTED Trials, e.g. via the CreateTrial() RPC; that's the asynchronous option where you don't need a close association between contexts and suggestions. NOTE: All the Parameters you set in a context MUST be defined in the Study. NOTE: You must supply 0 or $suggestion_count contexts. If you don't supply any contexts, Vizier will make suggestions from the full search space specified in the StudySpec; if you supply a full set of context, each suggestion will match the corresponding context. NOTE: A Context with no features set matches anything, and allows suggestions from the full search space. NOTE: Contexts MUST lie within the search space specified in the StudySpec. It's an error if they don't. NOTE: Contexts preferentially match ACTIVE then REQUESTED trials before new suggestions are generated. NOTE: Generation of suggestions involves a match between a Context and (optionally) a REQUESTED trial; if that match is not fully specified, a suggestion will be geneated in the merged subspace.", + "items": { + "$ref": "GoogleCloudAiplatformV1TrialContext" + }, + "type": "array" + }, + "suggestionCount": { + "description": "Required. The number of suggestions requested. It must be positive.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SuggestTrialsResponse": { + "description": "Response message for VizierService.SuggestTrials.", + "id": "GoogleCloudAiplatformV1SuggestTrialsResponse", + "properties": { + "endTime": { + "description": "The time at which operation processing completed.", + "format": "google-datetime", + "type": "string" + }, + "startTime": { + "description": "The time at which the operation was started.", + "format": "google-datetime", + "type": "string" + }, + "studyState": { + "description": "The state of the Study.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "INACTIVE", + "COMPLETED" + ], + "enumDescriptions": [ + "The study state is unspecified.", + "The study is active.", + "The study is stopped due to an internal error.", + "The study is done when the service exhausts the parameter search space or max_trial_count is reached." + ], + "type": "string" + }, + "trials": { + "description": "A list of Trials.", + "items": { + "$ref": "GoogleCloudAiplatformV1Trial" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1SyncFeatureViewRequest": { + "description": "Request message for FeatureOnlineStoreAdminService.SyncFeatureView.", + "id": "GoogleCloudAiplatformV1SyncFeatureViewRequest", + "properties": {}, + "type": "object" + }, + "GoogleCloudAiplatformV1SyncFeatureViewResponse": { + "description": "Respose message for FeatureOnlineStoreAdminService.SyncFeatureView.", + "id": "GoogleCloudAiplatformV1SyncFeatureViewResponse", + "properties": { + "featureViewSync": { + "description": "Format: `projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}/featureViewSyncs/{feature_view_sync}`", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1TFRecordDestination": { + "description": "The storage details for TFRecord output content.", + "id": "GoogleCloudAiplatformV1TFRecordDestination", + "properties": { + "gcsDestination": { + "$ref": "GoogleCloudAiplatformV1GcsDestination", + "description": "Required. Google Cloud Storage location." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1Tensor": { + "description": "A tensor value type.", + "id": "GoogleCloudAiplatformV1Tensor", + "properties": { + "boolVal": { + "description": "Type specific representations that make it easy to create tensor protos in all languages. Only the representation corresponding to \"dtype\" can be set. The values hold the flattened representation of the tensor in row major order. BOOL", + "items": { + "type": "boolean" + }, + "type": "array" + }, + "bytesVal": { + "description": "STRING", + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + }, + "doubleVal": { + "description": "DOUBLE", + "items": { + "format": "double", + "type": "number" + }, + "type": "array" + }, + "dtype": { + "description": "The data type of tensor.", + "enum": [ + "DATA_TYPE_UNSPECIFIED", + "BOOL", + "STRING", + "FLOAT", + "DOUBLE", + "INT8", + "INT16", + "INT32", + "INT64", + "UINT8", + "UINT16", + "UINT32", + "UINT64" + ], + "enumDescriptions": [ + "Not a legal value for DataType. Used to indicate a DataType field has not been set.", + "Data types that all computation devices are expected to be capable to support.", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "floatVal": { + "description": "FLOAT", + "items": { + "format": "float", + "type": "number" + }, + "type": "array" + }, + "int64Val": { + "description": "INT64", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "intVal": { + "description": "INT_8 INT_16 INT_32", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "listVal": { + "description": "A list of tensor values.", + "items": { + "$ref": "GoogleCloudAiplatformV1Tensor" + }, + "type": "array" + }, + "shape": { + "description": "Shape of the tensor.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "stringVal": { + "description": "STRING", + "items": { + "type": "string" + }, + "type": "array" + }, + "structVal": { + "additionalProperties": { + "$ref": "GoogleCloudAiplatformV1Tensor" + }, + "description": "A map of string to tensor.", + "type": "object" + }, + "tensorVal": { + "description": "Serialized raw tensor content.", + "format": "byte", + "type": "string" + }, + "uint64Val": { + "description": "UINT64", + "items": { + "format": "uint64", + "type": "string" + }, + "type": "array" + }, + "uintVal": { + "description": "UINT8 UINT16 UINT32", + "items": { + "format": "uint32", + "type": "integer" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1Tensorboard": { + "description": "Tensorboard is a physical database that stores users' training metrics. A default Tensorboard is provided in each region of a Google Cloud project. If needed users can also create extra Tensorboards in their projects.", + "id": "GoogleCloudAiplatformV1Tensorboard", + "properties": { + "blobStoragePathPrefix": { + "description": "Output only. Consumer project Cloud Storage path prefix used to store blob data, which can either be a bucket or directory. Does not end with a '/'.", + "readOnly": true, + "type": "string" + }, + "createTime": { + "description": "Output only. Timestamp when this Tensorboard was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Description of this Tensorboard.", + "type": "string" + }, + "displayName": { + "description": "Required. User provided name of this Tensorboard.", + "type": "string" + }, + "encryptionSpec": { + "$ref": "GoogleCloudAiplatformV1EncryptionSpec", + "description": "Customer-managed encryption key spec for a Tensorboard. If set, this Tensorboard and all sub-resources of this Tensorboard will be secured by this key." + }, + "etag": { + "description": "Used to perform a consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "type": "string" + }, + "isDefault": { + "description": "Used to indicate if the TensorBoard instance is the default one. Each project & region can have at most one default TensorBoard instance. Creation of a default TensorBoard instance and updating an existing TensorBoard instance to be default will mark all other TensorBoard instances (if any) as non default.", + "type": "boolean" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "The labels with user-defined metadata to organize your Tensorboards. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. No more than 64 user labels can be associated with one Tensorboard (System labels are excluded). See https://goo.gl/xmQnxf for more information and examples of labels. System reserved label keys are prefixed with \"aiplatform.googleapis.com/\" and are immutable.", + "type": "object" + }, + "name": { + "description": "Output only. Name of the Tensorboard. Format: `projects/{project}/locations/{location}/tensorboards/{tensorboard}`", + "readOnly": true, + "type": "string" + }, + "runCount": { + "description": "Output only. The number of Runs stored in this Tensorboard.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "updateTime": { + "description": "Output only. Timestamp when this Tensorboard was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1TensorboardBlob": { + "description": "One blob (e.g, image, graph) viewable on a blob metric plot.", + "id": "GoogleCloudAiplatformV1TensorboardBlob", + "properties": { + "data": { + "description": "Optional. The bytes of the blob is not present unless it's returned by the ReadTensorboardBlobData endpoint.", + "format": "byte", + "type": "string" + }, + "id": { + "description": "Output only. A URI safe key uniquely identifying a blob. Can be used to locate the blob stored in the Cloud Storage bucket of the consumer project.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1TensorboardBlobSequence": { + "description": "One point viewable on a blob metric plot, but mostly just a wrapper message to work around repeated fields can't be used directly within `oneof` fields.", + "id": "GoogleCloudAiplatformV1TensorboardBlobSequence", + "properties": { + "values": { + "description": "List of blobs contained within the sequence.", + "items": { + "$ref": "GoogleCloudAiplatformV1TensorboardBlob" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1TensorboardExperiment": { + "description": "A TensorboardExperiment is a group of TensorboardRuns, that are typically the results of a training job run, in a Tensorboard.", + "id": "GoogleCloudAiplatformV1TensorboardExperiment", + "properties": { + "createTime": { + "description": "Output only. Timestamp when this TensorboardExperiment was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Description of this TensorboardExperiment.", + "type": "string" + }, + "displayName": { + "description": "User provided name of this TensorboardExperiment.", + "type": "string" + }, + "etag": { + "description": "Used to perform consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "The labels with user-defined metadata to organize your TensorboardExperiment. Label keys and values cannot be longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. No more than 64 user labels can be associated with one Dataset (System labels are excluded). See https://goo.gl/xmQnxf for more information and examples of labels. System reserved label keys are prefixed with `aiplatform.googleapis.com/` and are immutable. The following system labels exist for each Dataset: * `aiplatform.googleapis.com/dataset_metadata_schema`: output only. Its value is the metadata_schema's title.", + "type": "object" + }, + "name": { + "description": "Output only. Name of the TensorboardExperiment. Format: `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}`", + "readOnly": true, + "type": "string" + }, + "source": { + "description": "Immutable. Source of the TensorboardExperiment. Example: a custom training job.", + "type": "string" + }, + "updateTime": { + "description": "Output only. Timestamp when this TensorboardExperiment was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1TensorboardRun": { + "description": "TensorboardRun maps to a specific execution of a training job with a given set of hyperparameter values, model definition, dataset, etc", + "id": "GoogleCloudAiplatformV1TensorboardRun", + "properties": { + "createTime": { + "description": "Output only. Timestamp when this TensorboardRun was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Description of this TensorboardRun.", + "type": "string" + }, + "displayName": { + "description": "Required. User provided name of this TensorboardRun. This value must be unique among all TensorboardRuns belonging to the same parent TensorboardExperiment.", + "type": "string" + }, + "etag": { + "description": "Used to perform a consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "The labels with user-defined metadata to organize your TensorboardRuns. This field will be used to filter and visualize Runs in the Tensorboard UI. For example, a Vertex AI training job can set a label aiplatform.googleapis.com/training_job_id=xxxxx to all the runs created within that job. An end user can set a label experiment_id=xxxxx for all the runs produced in a Jupyter notebook. These runs can be grouped by a label value and visualized together in the Tensorboard UI. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. No more than 64 user labels can be associated with one TensorboardRun (System labels are excluded). See https://goo.gl/xmQnxf for more information and examples of labels. System reserved label keys are prefixed with \"aiplatform.googleapis.com/\" and are immutable.", + "type": "object" + }, + "name": { + "description": "Output only. Name of the TensorboardRun. Format: `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}`", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. Timestamp when this TensorboardRun was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1TensorboardTensor": { + "description": "One point viewable on a tensor metric plot.", + "id": "GoogleCloudAiplatformV1TensorboardTensor", + "properties": { + "value": { + "description": "Required. Serialized form of https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/framework/tensor.proto", + "format": "byte", + "type": "string" + }, + "versionNumber": { + "description": "Optional. Version number of TensorProto used to serialize value.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1TensorboardTimeSeries": { + "description": "TensorboardTimeSeries maps to times series produced in training runs", + "id": "GoogleCloudAiplatformV1TensorboardTimeSeries", + "properties": { + "createTime": { + "description": "Output only. Timestamp when this TensorboardTimeSeries was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Description of this TensorboardTimeSeries.", + "type": "string" + }, + "displayName": { + "description": "Required. User provided name of this TensorboardTimeSeries. This value should be unique among all TensorboardTimeSeries resources belonging to the same TensorboardRun resource (parent resource).", + "type": "string" + }, + "etag": { + "description": "Used to perform a consistent read-modify-write updates. If not set, a blind \"overwrite\" update happens.", + "type": "string" + }, + "metadata": { + "$ref": "GoogleCloudAiplatformV1TensorboardTimeSeriesMetadata", + "description": "Output only. Scalar, Tensor, or Blob metadata for this TensorboardTimeSeries.", + "readOnly": true + }, + "name": { + "description": "Output only. Name of the TensorboardTimeSeries.", + "readOnly": true, + "type": "string" + }, + "pluginData": { + "description": "Data of the current plugin, with the size limited to 65KB.", + "format": "byte", + "type": "string" + }, + "pluginName": { + "description": "Immutable. Name of the plugin this time series pertain to. Such as Scalar, Tensor, Blob", + "type": "string" + }, + "updateTime": { + "description": "Output only. Timestamp when this TensorboardTimeSeries was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "valueType": { + "description": "Required. Immutable. Type of TensorboardTimeSeries value.", + "enum": [ + "VALUE_TYPE_UNSPECIFIED", + "SCALAR", + "TENSOR", + "BLOB_SEQUENCE" + ], + "enumDescriptions": [ + "The value type is unspecified.", + "Used for TensorboardTimeSeries that is a list of scalars. E.g. accuracy of a model over epochs/time.", + "Used for TensorboardTimeSeries that is a list of tensors. E.g. histograms of weights of layer in a model over epoch/time.", + "Used for TensorboardTimeSeries that is a list of blob sequences. E.g. set of sample images with labels over epochs/time." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1TensorboardTimeSeriesMetadata": { + "description": "Describes metadata for a TensorboardTimeSeries.", + "id": "GoogleCloudAiplatformV1TensorboardTimeSeriesMetadata", + "properties": { + "maxBlobSequenceLength": { + "description": "Output only. The largest blob sequence length (number of blobs) of all data points in this time series, if its ValueType is BLOB_SEQUENCE.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "maxStep": { + "description": "Output only. Max step index of all data points within a TensorboardTimeSeries.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "maxWallTime": { + "description": "Output only. Max wall clock timestamp of all data points within a TensorboardTimeSeries.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1ThresholdConfig": { + "description": "The config for feature monitoring threshold.", + "id": "GoogleCloudAiplatformV1ThresholdConfig", + "properties": { + "value": { + "description": "Specify a threshold value that can trigger the alert. If this threshold config is for feature distribution distance: 1. For categorical feature, the distribution distance is calculated by L-inifinity norm. 2. For numerical feature, the distribution distance is calculated by Jensen–Shannon divergence. Each feature must have a non-zero threshold if they need to be monitored. Otherwise no alert will be triggered for that feature.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1TimeSeriesData": { + "description": "All the data stored in a TensorboardTimeSeries.", + "id": "GoogleCloudAiplatformV1TimeSeriesData", + "properties": { + "tensorboardTimeSeriesId": { + "description": "Required. The ID of the TensorboardTimeSeries, which will become the final component of the TensorboardTimeSeries' resource name", + "type": "string" + }, + "valueType": { + "description": "Required. Immutable. The value type of this time series. All the values in this time series data must match this value type.", + "enum": [ + "VALUE_TYPE_UNSPECIFIED", + "SCALAR", + "TENSOR", + "BLOB_SEQUENCE" + ], + "enumDescriptions": [ + "The value type is unspecified.", + "Used for TensorboardTimeSeries that is a list of scalars. E.g. accuracy of a model over epochs/time.", + "Used for TensorboardTimeSeries that is a list of tensors. E.g. histograms of weights of layer in a model over epoch/time.", + "Used for TensorboardTimeSeries that is a list of blob sequences. E.g. set of sample images with labels over epochs/time." + ], + "type": "string" + }, + "values": { + "description": "Required. Data points in this time series.", + "items": { + "$ref": "GoogleCloudAiplatformV1TimeSeriesDataPoint" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1TimeSeriesDataPoint": { + "description": "A TensorboardTimeSeries data point.", + "id": "GoogleCloudAiplatformV1TimeSeriesDataPoint", + "properties": { + "blobs": { + "$ref": "GoogleCloudAiplatformV1TensorboardBlobSequence", + "description": "A blob sequence value." + }, + "scalar": { + "$ref": "GoogleCloudAiplatformV1Scalar", + "description": "A scalar value." + }, + "step": { + "description": "Step index of this data point within the run.", + "format": "int64", + "type": "string" + }, + "tensor": { + "$ref": "GoogleCloudAiplatformV1TensorboardTensor", + "description": "A tensor value." + }, + "wallTime": { + "description": "Wall clock timestamp when this data point is generated by the end user.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1TimestampSplit": { + "description": "Assigns input data to training, validation, and test sets based on a provided timestamps. The youngest data pieces are assigned to training set, next to validation set, and the oldest to the test set. Supported only for tabular Datasets.", + "id": "GoogleCloudAiplatformV1TimestampSplit", + "properties": { + "key": { + "description": "Required. The key is a name of one of the Dataset's data columns. The values of the key (the values in the column) must be in RFC 3339 `date-time` format, where `time-offset` = `\"Z\"` (e.g. 1985-04-12T23:20:50.52Z). If for a piece of data the key is not present or has an invalid value, that piece is ignored by the pipeline.", + "type": "string" + }, + "testFraction": { + "description": "The fraction of the input data that is to be used to evaluate the Model.", + "format": "double", + "type": "number" + }, + "trainingFraction": { + "description": "The fraction of the input data that is to be used to train the Model.", + "format": "double", + "type": "number" + }, + "validationFraction": { + "description": "The fraction of the input data that is to be used to validate the Model.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1TokensInfo": { + "description": "Tokens info with a list of tokens and the corresponding list of token ids.", + "id": "GoogleCloudAiplatformV1TokensInfo", + "properties": { + "tokenIds": { + "description": "A list of token ids from the input.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "tokens": { + "description": "A list of tokens from the input.", + "items": { + "format": "byte", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1Tool": { + "description": "Tool details that the model may use to generate response. A `Tool` is a piece of code that enables the system to interact with external systems to perform an action, or set of actions, outside of knowledge and scope of the model. A Tool object should contain exactly one type of Tool (e.g FunctionDeclaration, Retrieval or GoogleSearchRetrieval).", + "id": "GoogleCloudAiplatformV1Tool", + "properties": { + "functionDeclarations": { + "description": "Optional. Function tool type. One or more function declarations to be passed to the model along with the current user query. Model may decide to call a subset of these functions by populating FunctionCall in the response. User should provide a FunctionResponse for each function call in the next turn. Based on the function responses, Model will generate the final response back to the user. Maximum 64 function declarations can be provided.", + "items": { + "$ref": "GoogleCloudAiplatformV1FunctionDeclaration" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1TrainingConfig": { + "description": "CMLE training config. For every active learning labeling iteration, system will train a machine learning model on CMLE. The trained model will be used by data sampling algorithm to select DataItems.", + "id": "GoogleCloudAiplatformV1TrainingConfig", + "properties": { + "timeoutTrainingMilliHours": { + "description": "The timeout hours for the CMLE training job, expressed in milli hours i.e. 1,000 value in this field means 1 hour.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1TrainingPipeline": { + "description": "The TrainingPipeline orchestrates tasks associated with training a Model. It always executes the training task, and optionally may also export data from Vertex AI's Dataset which becomes the training input, upload the Model to Vertex AI, and evaluate the Model.", + "id": "GoogleCloudAiplatformV1TrainingPipeline", + "properties": { + "createTime": { + "description": "Output only. Time when the TrainingPipeline was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "Required. The user-defined name of this TrainingPipeline.", + "type": "string" + }, + "encryptionSpec": { + "$ref": "GoogleCloudAiplatformV1EncryptionSpec", + "description": "Customer-managed encryption key spec for a TrainingPipeline. If set, this TrainingPipeline will be secured by this key. Note: Model trained by this TrainingPipeline is also secured by this key if model_to_upload is not set separately." + }, + "endTime": { + "description": "Output only. Time when the TrainingPipeline entered any of the following states: `PIPELINE_STATE_SUCCEEDED`, `PIPELINE_STATE_FAILED`, `PIPELINE_STATE_CANCELLED`.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "error": { + "$ref": "GoogleRpcStatus", + "description": "Output only. Only populated when the pipeline's state is `PIPELINE_STATE_FAILED` or `PIPELINE_STATE_CANCELLED`.", + "readOnly": true + }, + "inputDataConfig": { + "$ref": "GoogleCloudAiplatformV1InputDataConfig", + "description": "Specifies Vertex AI owned input data that may be used for training the Model. The TrainingPipeline's training_task_definition should make clear whether this config is used and if there are any special requirements on how it should be filled. If nothing about this config is mentioned in the training_task_definition, then it should be assumed that the TrainingPipeline does not depend on this configuration." + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "The labels with user-defined metadata to organize TrainingPipelines. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels.", + "type": "object" + }, + "modelId": { + "description": "Optional. The ID to use for the uploaded Model, which will become the final component of the model resource name. This value may be up to 63 characters, and valid characters are `[a-z0-9_-]`. The first character cannot be a number or hyphen.", + "type": "string" + }, + "modelToUpload": { + "$ref": "GoogleCloudAiplatformV1Model", + "description": "Describes the Model that may be uploaded (via ModelService.UploadModel) by this TrainingPipeline. The TrainingPipeline's training_task_definition should make clear whether this Model description should be populated, and if there are any special requirements regarding how it should be filled. If nothing is mentioned in the training_task_definition, then it should be assumed that this field should not be filled and the training task either uploads the Model without a need of this information, or that training task does not support uploading a Model as part of the pipeline. When the Pipeline's state becomes `PIPELINE_STATE_SUCCEEDED` and the trained Model had been uploaded into Vertex AI, then the model_to_upload's resource name is populated. The Model is always uploaded into the Project and Location in which this pipeline is." + }, + "name": { + "description": "Output only. Resource name of the TrainingPipeline.", + "readOnly": true, + "type": "string" + }, + "parentModel": { + "description": "Optional. When specify this field, the `model_to_upload` will not be uploaded as a new model, instead, it will become a new version of this `parent_model`.", + "type": "string" + }, + "startTime": { + "description": "Output only. Time when the TrainingPipeline for the first time entered the `PIPELINE_STATE_RUNNING` state.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The detailed state of the pipeline.", + "enum": [ + "PIPELINE_STATE_UNSPECIFIED", + "PIPELINE_STATE_QUEUED", + "PIPELINE_STATE_PENDING", + "PIPELINE_STATE_RUNNING", + "PIPELINE_STATE_SUCCEEDED", + "PIPELINE_STATE_FAILED", + "PIPELINE_STATE_CANCELLING", + "PIPELINE_STATE_CANCELLED", + "PIPELINE_STATE_PAUSED" + ], + "enumDescriptions": [ + "The pipeline state is unspecified.", + "The pipeline has been created or resumed, and processing has not yet begun.", + "The service is preparing to run the pipeline.", + "The pipeline is in progress.", + "The pipeline completed successfully.", + "The pipeline failed.", + "The pipeline is being cancelled. From this state, the pipeline may only go to either PIPELINE_STATE_SUCCEEDED, PIPELINE_STATE_FAILED or PIPELINE_STATE_CANCELLED.", + "The pipeline has been cancelled.", + "The pipeline has been stopped, and can be resumed." + ], + "readOnly": true, + "type": "string" + }, + "trainingTaskDefinition": { + "description": "Required. A Google Cloud Storage path to the YAML file that defines the training task which is responsible for producing the model artifact, and may also include additional auxiliary work. The definition files that can be used here are found in gs://google-cloud-aiplatform/schema/trainingjob/definition/. Note: The URI given on output will be immutable and probably different, including the URI scheme, than the one given on input. The output URI will point to a location where the user only has a read access.", + "type": "string" + }, + "trainingTaskInputs": { + "description": "Required. The training task's parameter(s), as specified in the training_task_definition's `inputs`.", + "type": "any" + }, + "trainingTaskMetadata": { + "description": "Output only. The metadata information as specified in the training_task_definition's `metadata`. This metadata is an auxiliary runtime and final information about the training task. While the pipeline is running this information is populated only at a best effort basis. Only present if the pipeline's training_task_definition contains `metadata` object.", + "readOnly": true, + "type": "any" + }, + "updateTime": { + "description": "Output only. Time when the TrainingPipeline was most recently updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1Trial": { + "description": "A message representing a Trial. A Trial contains a unique set of Parameters that has been or will be evaluated, along with the objective metrics got by running the Trial.", + "id": "GoogleCloudAiplatformV1Trial", + "properties": { + "clientId": { + "description": "Output only. The identifier of the client that originally requested this Trial. Each client is identified by a unique client_id. When a client asks for a suggestion, Vertex AI Vizier will assign it a Trial. The client should evaluate the Trial, complete it, and report back to Vertex AI Vizier. If suggestion is asked again by same client_id before the Trial is completed, the same Trial will be returned. Multiple clients with different client_ids can ask for suggestions simultaneously, each of them will get their own Trial.", + "readOnly": true, + "type": "string" + }, + "customJob": { + "description": "Output only. The CustomJob name linked to the Trial. It's set for a HyperparameterTuningJob's Trial.", + "readOnly": true, + "type": "string" + }, + "endTime": { + "description": "Output only. Time when the Trial's status changed to `SUCCEEDED` or `INFEASIBLE`.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "finalMeasurement": { + "$ref": "GoogleCloudAiplatformV1Measurement", + "description": "Output only. The final measurement containing the objective value.", + "readOnly": true + }, + "id": { + "description": "Output only. The identifier of the Trial assigned by the service.", + "readOnly": true, + "type": "string" + }, + "infeasibleReason": { + "description": "Output only. A human readable string describing why the Trial is infeasible. This is set only if Trial state is `INFEASIBLE`.", + "readOnly": true, + "type": "string" + }, + "measurements": { + "description": "Output only. A list of measurements that are strictly lexicographically ordered by their induced tuples (steps, elapsed_duration). These are used for early stopping computations.", + "items": { + "$ref": "GoogleCloudAiplatformV1Measurement" + }, + "readOnly": true, + "type": "array" + }, + "name": { + "description": "Output only. Resource name of the Trial assigned by the service.", + "readOnly": true, + "type": "string" + }, + "parameters": { + "description": "Output only. The parameters of the Trial.", + "items": { + "$ref": "GoogleCloudAiplatformV1TrialParameter" + }, + "readOnly": true, + "type": "array" + }, + "startTime": { + "description": "Output only. Time when the Trial was started.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. The detailed state of the Trial.", + "enum": [ + "STATE_UNSPECIFIED", + "REQUESTED", + "ACTIVE", + "STOPPING", + "SUCCEEDED", + "INFEASIBLE" + ], + "enumDescriptions": [ + "The Trial state is unspecified.", + "Indicates that a specific Trial has been requested, but it has not yet been suggested by the service.", + "Indicates that the Trial has been suggested.", + "Indicates that the Trial should stop according to the service.", + "Indicates that the Trial is completed successfully.", + "Indicates that the Trial should not be attempted again. The service will set a Trial to INFEASIBLE when it's done but missing the final_measurement." + ], + "readOnly": true, + "type": "string" + }, + "webAccessUris": { + "additionalProperties": { + "type": "string" + }, + "description": "Output only. URIs for accessing [interactive shells](https://cloud.google.com/vertex-ai/docs/training/monitor-debug-interactive-shell) (one URI for each training node). Only available if this trial is part of a HyperparameterTuningJob and the job's trial_job_spec.enable_web_access field is `true`. The keys are names of each node used for the trial; for example, `workerpool0-0` for the primary node, `workerpool1-0` for the first node in the second worker pool, and `workerpool1-1` for the second node in the second worker pool. The values are the URIs for each node's interactive shell.", + "readOnly": true, + "type": "object" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1TrialContext": { + "description": "Next ID: 3", + "id": "GoogleCloudAiplatformV1TrialContext", + "properties": { + "description": { + "description": "A human-readable field which can store a description of this context. This will become part of the resulting Trial's description field.", + "type": "string" + }, + "parameters": { + "description": "If/when a Trial is generated or selected from this Context, its Parameters will match any parameters specified here. (I.e. if this context specifies parameter name:'a' int_value:3, then a resulting Trial will have int_value:3 for its parameter named 'a'.) Note that we first attempt to match existing REQUESTED Trials with contexts, and if there are no matches, we generate suggestions in the subspace defined by the parameters specified here. NOTE: a Context without any Parameters matches the entire feasible search space.", + "items": { + "$ref": "GoogleCloudAiplatformV1TrialParameter" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1TrialParameter": { + "description": "A message representing a parameter to be tuned.", + "id": "GoogleCloudAiplatformV1TrialParameter", + "properties": { + "parameterId": { + "description": "Output only. The ID of the parameter. The parameter should be defined in StudySpec's Parameters.", + "readOnly": true, + "type": "string" + }, + "value": { + "description": "Output only. The value of the parameter. `number_value` will be set if a parameter defined in StudySpec is in type 'INTEGER', 'DOUBLE' or 'DISCRETE'. `string_value` will be set if a parameter defined in StudySpec is in type 'CATEGORICAL'.", + "readOnly": true, + "type": "any" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1UndeployIndexOperationMetadata": { + "description": "Runtime operation information for IndexEndpointService.UndeployIndex.", + "id": "GoogleCloudAiplatformV1UndeployIndexOperationMetadata", + "properties": { + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "The operation generic information." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1UndeployIndexRequest": { + "description": "Request message for IndexEndpointService.UndeployIndex.", + "id": "GoogleCloudAiplatformV1UndeployIndexRequest", + "properties": { + "deployedIndexId": { + "description": "Required. The ID of the DeployedIndex to be undeployed from the IndexEndpoint.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1UndeployIndexResponse": { + "description": "Response message for IndexEndpointService.UndeployIndex.", + "id": "GoogleCloudAiplatformV1UndeployIndexResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudAiplatformV1UndeployModelOperationMetadata": { + "description": "Runtime operation information for EndpointService.UndeployModel.", + "id": "GoogleCloudAiplatformV1UndeployModelOperationMetadata", + "properties": { + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "The operation generic information." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1UndeployModelRequest": { + "description": "Request message for EndpointService.UndeployModel.", + "id": "GoogleCloudAiplatformV1UndeployModelRequest", + "properties": { + "deployedModelId": { + "description": "Required. The ID of the DeployedModel to be undeployed from the Endpoint.", + "type": "string" + }, + "trafficSplit": { + "additionalProperties": { + "format": "int32", + "type": "integer" + }, + "description": "If this field is provided, then the Endpoint's traffic_split will be overwritten with it. If last DeployedModel is being undeployed from the Endpoint, the [Endpoint.traffic_split] will always end up empty when this call returns. A DeployedModel will be successfully undeployed only if it doesn't have any traffic assigned to it when this method executes, or if this field unassigns any traffic to it.", + "type": "object" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1UndeployModelResponse": { + "description": "Response message for EndpointService.UndeployModel.", + "id": "GoogleCloudAiplatformV1UndeployModelResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudAiplatformV1UnmanagedContainerModel": { + "description": "Contains model information necessary to perform batch prediction without requiring a full model import.", + "id": "GoogleCloudAiplatformV1UnmanagedContainerModel", + "properties": { + "artifactUri": { + "description": "The path to the directory containing the Model artifact and any of its supporting files.", + "type": "string" + }, + "containerSpec": { + "$ref": "GoogleCloudAiplatformV1ModelContainerSpec", + "description": "Input only. The specification of the container that is to be used when deploying this Model." + }, + "predictSchemata": { + "$ref": "GoogleCloudAiplatformV1PredictSchemata", + "description": "Contains the schemata used in Model's predictions and explanations" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1UpdateDeploymentResourcePoolOperationMetadata": { + "description": "Runtime operation information for UpdateDeploymentResourcePool method.", + "id": "GoogleCloudAiplatformV1UpdateDeploymentResourcePoolOperationMetadata", + "properties": { + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "The operation generic information." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1UpdateExplanationDatasetOperationMetadata": { + "description": "Runtime operation information for ModelService.UpdateExplanationDataset.", + "id": "GoogleCloudAiplatformV1UpdateExplanationDatasetOperationMetadata", + "properties": { + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "The common part of the operation metadata." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1UpdateExplanationDatasetRequest": { + "description": "Request message for ModelService.UpdateExplanationDataset.", + "id": "GoogleCloudAiplatformV1UpdateExplanationDatasetRequest", + "properties": { + "examples": { + "$ref": "GoogleCloudAiplatformV1Examples", + "description": "The example config containing the location of the dataset." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1UpdateExplanationDatasetResponse": { + "description": "Response message of ModelService.UpdateExplanationDataset operation.", + "id": "GoogleCloudAiplatformV1UpdateExplanationDatasetResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudAiplatformV1UpdateFeatureGroupOperationMetadata": { + "description": "Details of operations that perform update FeatureGroup.", + "id": "GoogleCloudAiplatformV1UpdateFeatureGroupOperationMetadata", + "properties": { + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "Operation metadata for FeatureGroup." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1UpdateFeatureOnlineStoreOperationMetadata": { + "description": "Details of operations that perform update FeatureOnlineStore.", + "id": "GoogleCloudAiplatformV1UpdateFeatureOnlineStoreOperationMetadata", + "properties": { + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "Operation metadata for FeatureOnlineStore." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1UpdateFeatureOperationMetadata": { + "description": "Details of operations that perform update Feature.", + "id": "GoogleCloudAiplatformV1UpdateFeatureOperationMetadata", + "properties": { + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "Operation metadata for Feature Update." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1UpdateFeatureViewOperationMetadata": { + "description": "Details of operations that perform update FeatureView.", + "id": "GoogleCloudAiplatformV1UpdateFeatureViewOperationMetadata", + "properties": { + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "Operation metadata for FeatureView Update." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1UpdateFeaturestoreOperationMetadata": { + "description": "Details of operations that perform update Featurestore.", + "id": "GoogleCloudAiplatformV1UpdateFeaturestoreOperationMetadata", + "properties": { + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "Operation metadata for Featurestore." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1UpdateIndexOperationMetadata": { + "description": "Runtime operation information for IndexService.UpdateIndex.", + "id": "GoogleCloudAiplatformV1UpdateIndexOperationMetadata", + "properties": { + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "The operation generic information." + }, + "nearestNeighborSearchOperationMetadata": { + "$ref": "GoogleCloudAiplatformV1NearestNeighborSearchOperationMetadata", + "description": "The operation metadata with regard to Matching Engine Index operation." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1UpdateModelDeploymentMonitoringJobOperationMetadata": { + "description": "Runtime operation information for JobService.UpdateModelDeploymentMonitoringJob.", + "id": "GoogleCloudAiplatformV1UpdateModelDeploymentMonitoringJobOperationMetadata", + "properties": { + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "The operation generic information." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1UpdateSpecialistPoolOperationMetadata": { + "description": "Runtime operation metadata for SpecialistPoolService.UpdateSpecialistPool.", + "id": "GoogleCloudAiplatformV1UpdateSpecialistPoolOperationMetadata", + "properties": { + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "The operation generic information." + }, + "specialistPool": { + "description": "Output only. The name of the SpecialistPool to which the specialists are being added. Format: `projects/{project_id}/locations/{location_id}/specialistPools/{specialist_pool}`", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1UpdateTensorboardOperationMetadata": { + "description": "Details of operations that perform update Tensorboard.", + "id": "GoogleCloudAiplatformV1UpdateTensorboardOperationMetadata", + "properties": { + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "Operation metadata for Tensorboard." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1UpgradeNotebookRuntimeOperationMetadata": { + "description": "Metadata information for NotebookService.UpgradeNotebookRuntime.", + "id": "GoogleCloudAiplatformV1UpgradeNotebookRuntimeOperationMetadata", + "properties": { + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "The operation generic information." + }, + "progressMessage": { + "description": "A human-readable message that shows the intermediate progress details of NotebookRuntime.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1UpgradeNotebookRuntimeRequest": { + "description": "Request message for NotebookService.UpgradeNotebookRuntime.", + "id": "GoogleCloudAiplatformV1UpgradeNotebookRuntimeRequest", + "properties": {}, + "type": "object" + }, + "GoogleCloudAiplatformV1UploadModelOperationMetadata": { + "description": "Details of ModelService.UploadModel operation.", + "id": "GoogleCloudAiplatformV1UploadModelOperationMetadata", + "properties": { + "genericMetadata": { + "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", + "description": "The common part of the operation metadata." + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1UploadModelRequest": { + "description": "Request message for ModelService.UploadModel.", + "id": "GoogleCloudAiplatformV1UploadModelRequest", + "properties": { + "model": { + "$ref": "GoogleCloudAiplatformV1Model", + "description": "Required. The Model to create." + }, + "modelId": { + "description": "Optional. The ID to use for the uploaded Model, which will become the final component of the model resource name. This value may be up to 63 characters, and valid characters are `[a-z0-9_-]`. The first character cannot be a number or hyphen.", + "type": "string" + }, + "parentModel": { + "description": "Optional. The resource name of the model into which to upload the version. Only specify this field when uploading a new version.", + "type": "string" + }, + "serviceAccount": { + "description": "Optional. The user-provided custom service account to use to do the model upload. If empty, [Vertex AI Service Agent](https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) will be used to access resources needed to upload the model. This account must belong to the target project where the model is uploaded to, i.e., the project specified in the `parent` field of this request and have necessary read permissions (to Google Cloud Storage, Artifact Registry, etc.).", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1UploadModelResponse": { + "description": "Response message of ModelService.UploadModel operation.", + "id": "GoogleCloudAiplatformV1UploadModelResponse", + "properties": { + "model": { + "description": "The name of the uploaded Model resource. Format: `projects/{project}/locations/{location}/models/{model}`", + "type": "string" + }, + "modelVersionId": { + "description": "Output only. The version ID of the model that is uploaded.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1UpsertDatapointsRequest": { + "description": "Request message for IndexService.UpsertDatapoints", + "id": "GoogleCloudAiplatformV1UpsertDatapointsRequest", + "properties": { + "datapoints": { + "description": "A list of datapoints to be created/updated.", + "items": { + "$ref": "GoogleCloudAiplatformV1IndexDatapoint" + }, + "type": "array" + }, + "updateMask": { + "description": "Optional. Update mask is used to specify the fields to be overwritten in the datapoints by the update. The fields specified in the update_mask are relative to each IndexDatapoint inside datapoints, not the full request. Updatable fields: * Use `all_restricts` to update both restricts and numeric_restricts.", + "format": "google-fieldmask", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1UpsertDatapointsResponse": { + "description": "Response message for IndexService.UpsertDatapoints", + "id": "GoogleCloudAiplatformV1UpsertDatapointsResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudAiplatformV1UserActionReference": { + "description": "References an API call. It contains more information about long running operation and Jobs that are triggered by the API call.", + "id": "GoogleCloudAiplatformV1UserActionReference", + "properties": { + "dataLabelingJob": { + "description": "For API calls that start a LabelingJob. Resource name of the LabelingJob. Format: `projects/{project}/locations/{location}/dataLabelingJobs/{data_labeling_job}`", + "type": "string" + }, + "method": { + "description": "The method name of the API RPC call. For example, \"/google.cloud.aiplatform.{apiVersion}.DatasetService.CreateDataset\"", + "type": "string" + }, + "operation": { + "description": "For API calls that return a long running operation. Resource name of the long running operation. Format: `projects/{project}/locations/{location}/operations/{operation}`", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1Value": { + "description": "Value is the value of the field.", + "id": "GoogleCloudAiplatformV1Value", + "properties": { + "doubleValue": { + "description": "A double value.", + "format": "double", + "type": "number" + }, + "intValue": { + "description": "An integer value.", + "format": "int64", + "type": "string" + }, + "stringValue": { + "description": "A string value.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1VideoMetadata": { + "description": "Metadata describes the input video content.", + "id": "GoogleCloudAiplatformV1VideoMetadata", + "properties": { + "endOffset": { + "description": "Optional. The end offset of the video.", + "format": "google-duration", + "type": "string" + }, + "startOffset": { + "description": "Optional. The start offset of the video.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1WorkerPoolSpec": { + "description": "Represents the spec of a worker pool in a job.", + "id": "GoogleCloudAiplatformV1WorkerPoolSpec", + "properties": { + "containerSpec": { + "$ref": "GoogleCloudAiplatformV1ContainerSpec", + "description": "The custom container task." + }, + "diskSpec": { + "$ref": "GoogleCloudAiplatformV1DiskSpec", + "description": "Disk spec." + }, + "machineSpec": { + "$ref": "GoogleCloudAiplatformV1MachineSpec", + "description": "Optional. Immutable. The specification of a single machine." + }, + "nfsMounts": { + "description": "Optional. List of NFS mount spec.", + "items": { + "$ref": "GoogleCloudAiplatformV1NfsMount" + }, + "type": "array" + }, + "pythonPackageSpec": { + "$ref": "GoogleCloudAiplatformV1PythonPackageSpec", + "description": "The Python packaged task." + }, + "replicaCount": { + "description": "Optional. The number of worker replicas to use for this worker pool.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1WriteFeatureValuesPayload": { + "description": "Contains Feature values to be written for a specific entity.", + "id": "GoogleCloudAiplatformV1WriteFeatureValuesPayload", + "properties": { + "entityId": { + "description": "Required. The ID of the entity.", + "type": "string" + }, + "featureValues": { + "additionalProperties": { + "$ref": "GoogleCloudAiplatformV1FeatureValue" + }, + "description": "Required. Feature values to be written, mapping from Feature ID to value. Up to 100,000 `feature_values` entries may be written across all payloads. The feature generation time, aligned by days, must be no older than five years (1825 days) and no later than one year (366 days) in the future.", + "type": "object" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1WriteFeatureValuesRequest": { + "description": "Request message for FeaturestoreOnlineServingService.WriteFeatureValues.", + "id": "GoogleCloudAiplatformV1WriteFeatureValuesRequest", + "properties": { + "payloads": { + "description": "Required. The entities to be written. Up to 100,000 feature values can be written across all `payloads`.", + "items": { + "$ref": "GoogleCloudAiplatformV1WriteFeatureValuesPayload" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1WriteFeatureValuesResponse": { + "description": "Response message for FeaturestoreOnlineServingService.WriteFeatureValues.", + "id": "GoogleCloudAiplatformV1WriteFeatureValuesResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudAiplatformV1WriteTensorboardExperimentDataRequest": { + "description": "Request message for TensorboardService.WriteTensorboardExperimentData.", + "id": "GoogleCloudAiplatformV1WriteTensorboardExperimentDataRequest", + "properties": { + "writeRunDataRequests": { + "description": "Required. Requests containing per-run TensorboardTimeSeries data to write.", + "items": { + "$ref": "GoogleCloudAiplatformV1WriteTensorboardRunDataRequest" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1WriteTensorboardExperimentDataResponse": { + "description": "Response message for TensorboardService.WriteTensorboardExperimentData.", + "id": "GoogleCloudAiplatformV1WriteTensorboardExperimentDataResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudAiplatformV1WriteTensorboardRunDataRequest": { + "description": "Request message for TensorboardService.WriteTensorboardRunData.", + "id": "GoogleCloudAiplatformV1WriteTensorboardRunDataRequest", + "properties": { + "tensorboardRun": { + "description": "Required. The resource name of the TensorboardRun to write data to. Format: `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}`", + "type": "string" + }, + "timeSeriesData": { + "description": "Required. The TensorboardTimeSeries data to write. Values with in a time series are indexed by their step value. Repeated writes to the same step will overwrite the existing value for that step. The upper limit of data points per write request is 5000.", + "items": { + "$ref": "GoogleCloudAiplatformV1TimeSeriesData" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudAiplatformV1WriteTensorboardRunDataResponse": { + "description": "Response message for TensorboardService.WriteTensorboardRunData.", + "id": "GoogleCloudAiplatformV1WriteTensorboardRunDataResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudAiplatformV1XraiAttribution": { + "description": "An explanation method that redistributes Integrated Gradients attributions to segmented regions, taking advantage of the model's fully differentiable structure. Refer to this paper for more details: https://arxiv.org/abs/1906.02825 Supported only by image Models.", + "id": "GoogleCloudAiplatformV1XraiAttribution", + "properties": { + "blurBaselineConfig": { + "$ref": "GoogleCloudAiplatformV1BlurBaselineConfig", + "description": "Config for XRAI with blur baseline. When enabled, a linear path from the maximally blurred image to the input image is created. Using a blurred baseline instead of zero (black image) is motivated by the BlurIG approach explained here: https://arxiv.org/abs/2004.03383" + }, + "smoothGradConfig": { + "$ref": "GoogleCloudAiplatformV1SmoothGradConfig", + "description": "Config for SmoothGrad approximation of gradients. When enabled, the gradients are approximated by averaging the gradients from noisy samples in the vicinity of the inputs. Adding noise can help improve the computed gradients. Refer to this paper for more details: https://arxiv.org/pdf/1706.03825.pdf" + }, + "stepCount": { + "description": "Required. The number of steps for approximating the path integral. A good value to start is 50 and gradually increase until the sum to diff property is met within the desired error range. Valid range of its value is [1, 100], inclusively.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudLocationListLocationsResponse": { + "description": "The response message for Locations.ListLocations.", + "id": "GoogleCloudLocationListLocationsResponse", + "properties": { + "locations": { + "description": "A list of locations that matches the specified filter in the request.", + "items": { + "$ref": "GoogleCloudLocationLocation" + }, + "type": "array" + }, + "nextPageToken": { + "description": "The standard List next-page token.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudLocationLocation": { + "description": "A resource that represents a Google Cloud location.", + "id": "GoogleCloudLocationLocation", + "properties": { + "displayName": { + "description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", + "type": "object" + }, + "locationId": { + "description": "The canonical id for this location. For example: `\"us-east1\"`.", + "type": "string" + }, + "metadata": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "Service-specific metadata. For example the available capacity at the given location.", + "type": "object" + }, + "name": { + "description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", + "type": "string" + } + }, + "type": "object" + }, + "GoogleIamV1Binding": { + "description": "Associates `members`, or principals, with a `role`.", + "id": "GoogleIamV1Binding", + "properties": { + "condition": { + "$ref": "GoogleTypeExpr", + "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." + }, + "members": { + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "role": { + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", + "type": "string" + } + }, + "type": "object" + }, + "GoogleIamV1Policy": { + "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", + "id": "GoogleIamV1Policy", + "properties": { + "bindings": { + "description": "Associates a list of `members`, or principals, with a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", + "items": { + "$ref": "GoogleIamV1Binding" + }, + "type": "array" + }, + "etag": { + "description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.", + "format": "byte", + "type": "string" + }, + "version": { + "description": "Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleIamV1SetIamPolicyRequest": { + "description": "Request message for `SetIamPolicy` method.", + "id": "GoogleIamV1SetIamPolicyRequest", + "properties": { + "policy": { + "$ref": "GoogleIamV1Policy", + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." + } + }, + "type": "object" + }, + "GoogleIamV1TestIamPermissionsResponse": { + "description": "Response message for `TestIamPermissions` method.", + "id": "GoogleIamV1TestIamPermissionsResponse", + "properties": { + "permissions": { + "description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleLongrunningListOperationsResponse": { + "description": "The response message for Operations.ListOperations.", + "id": "GoogleLongrunningListOperationsResponse", + "properties": { + "nextPageToken": { + "description": "The standard List next-page token.", + "type": "string" + }, + "operations": { + "description": "A list of operations that matches the specified filter in the request.", + "items": { + "$ref": "GoogleLongrunningOperation" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleLongrunningOperation": { + "description": "This resource represents a long-running operation that is the result of a network API call.", + "id": "GoogleLongrunningOperation", + "properties": { + "done": { + "description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", + "type": "boolean" + }, + "error": { + "$ref": "GoogleRpcStatus", + "description": "The error result of the operation in case of failure or cancellation." + }, + "metadata": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", + "type": "object" + }, + "name": { + "description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", + "type": "string" + }, + "response": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", + "type": "object" + } + }, + "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", + "properties": {}, + "type": "object" + }, + "GoogleRpcStatus": { + "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": "GoogleRpcStatus", + "properties": { + "code": { + "description": "The status code, which should be an enum value of google.rpc.Code.", + "format": "int32", + "type": "integer" + }, + "details": { + "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", + "items": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "type": "object" + }, + "type": "array" + }, + "message": { + "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleTypeColor": { + "description": "Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to and from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't have information about the absolute color space that should be used to interpret the RGB value—for example, sRGB, Adobe RGB, DCI-P3, and BT.2020. By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most `1e-5`. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ...", + "id": "GoogleTypeColor", + "properties": { + "alpha": { + "description": "The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).", + "format": "float", + "type": "number" + }, + "blue": { + "description": "The amount of blue in the color as a value in the interval [0, 1].", + "format": "float", + "type": "number" + }, + "green": { + "description": "The amount of green in the color as a value in the interval [0, 1].", + "format": "float", + "type": "number" + }, + "red": { + "description": "The amount of red in the color as a value in the interval [0, 1].", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "GoogleTypeDate": { + "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "id": "GoogleTypeDate", + "properties": { + "day": { + "description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", + "format": "int32", + "type": "integer" + }, + "month": { + "description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", + "format": "int32", + "type": "integer" + }, + "year": { + "description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleTypeExpr": { + "description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.", + "id": "GoogleTypeExpr", + "properties": { + "description": { + "description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.", + "type": "string" + }, + "expression": { + "description": "Textual representation of an expression in Common Expression Language syntax.", + "type": "string" + }, + "location": { + "description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", + "type": "string" + }, + "title": { + "description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleTypeInterval": { + "description": "Represents a time interval, encoded as a Timestamp start (inclusive) and a Timestamp end (exclusive). The start must be less than or equal to the end. When the start equals the end, the interval is empty (matches no time). When both start and end are unspecified, the interval matches any time.", + "id": "GoogleTypeInterval", + "properties": { + "endTime": { + "description": "Optional. Exclusive end of the interval. If specified, a Timestamp matching this interval will have to be before the end.", + "format": "google-datetime", + "type": "string" + }, + "startTime": { + "description": "Optional. Inclusive start of the interval. If specified, a Timestamp matching this interval will have to be the same or after the start.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "GoogleTypeMoney": { + "description": "Represents an amount of money with its currency type.", + "id": "GoogleTypeMoney", + "properties": { + "currencyCode": { + "description": "The three-letter currency code defined in ISO 4217.", + "type": "string" + }, + "nanos": { + "description": "Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.", + "format": "int32", + "type": "integer" + }, + "units": { + "description": "The whole units of the amount. For example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "IntelligenceCloudAutomlXpsMetricEntry": { + "id": "IntelligenceCloudAutomlXpsMetricEntry", + "properties": { + "argentumMetricId": { + "description": "For billing metrics that are using legacy sku's, set the legacy billing metric id here. This will be sent to Chemist as the \"cloudbilling.googleapis.com/argentum_metric_id\" label. Otherwise leave empty.", + "type": "string" + }, + "doubleValue": { + "description": "A double value.", + "format": "double", + "type": "number" + }, + "int64Value": { + "description": "A signed 64-bit integer value.", + "format": "int64", + "type": "string" + }, + "metricName": { + "description": "The metric name defined in the service configuration.", + "type": "string" + }, + "systemLabels": { + "description": "Billing system labels for this (metric, value) pair.", + "items": { + "$ref": "IntelligenceCloudAutomlXpsMetricEntryLabel" + }, + "type": "array" + } + }, + "type": "object" + }, + "IntelligenceCloudAutomlXpsMetricEntryLabel": { + "id": "IntelligenceCloudAutomlXpsMetricEntryLabel", + "properties": { + "labelName": { + "description": "The name of the label.", + "type": "string" + }, + "labelValue": { + "description": "The value of the label.", + "type": "string" + } + }, + "type": "object" + }, + "IntelligenceCloudAutomlXpsReportingMetrics": { + "id": "IntelligenceCloudAutomlXpsReportingMetrics", + "properties": { + "effectiveTrainingDuration": { + "deprecated": true, + "description": "The effective time training used. If set, this is used for quota management and billing. Deprecated. AutoML BE doesn't use this. Don't set.", + "format": "google-duration", + "type": "string" + }, + "metricEntries": { + "description": "One entry per metric name. The values must be aggregated per metric name.", + "items": { + "$ref": "IntelligenceCloudAutomlXpsMetricEntry" + }, + "type": "array" + } + }, + "type": "object" + }, + "LanguageLabsAidaTrustRecitationProtoDocAttribution": { + "description": "The proto defines the attribution information for a document using whatever fields are most applicable for that document's datasource. For example, a Wikipedia article's attribution is in the form of its article title, a website is in the form of a URL, and a Github repo is in the form of a repo name. Next id: 30", + "id": "LanguageLabsAidaTrustRecitationProtoDocAttribution", + "properties": { + "amarnaId": { + "type": "string" + }, + "arxivId": { + "type": "string" + }, + "author": { + "type": "string" + }, + "bibkey": { + "type": "string" + }, + "biorxivId": { + "description": "ID of the paper in bioarxiv like ddoi.org/{biorxiv_id} eg: https://doi.org/10.1101/343517", + "type": "string" + }, + "bookTitle": { + "type": "string" + }, + "bookVolumeId": { + "description": "The Oceanographers full-view books dataset uses a 'volume id' as the unique ID of a book. There is a deterministic function from a volume id to a URL under the books.google.com domain. Marked as 'optional' since a volume ID of zero is potentially possible and we want to distinguish that from the volume ID not being set.", + "format": "int64", + "type": "string" + }, + "category": { + "enum": [ + "CATEGORY_UNSPECIFIED", + "CATEGORY_NEWS", + "CATEGORY_NON_NEWS_WEBDOC", + "CATEGORY_UNKNOWN_MISSING_SIGNAL" + ], + "enumDescriptions": [ + "", + "The doc has a url and the news classifier has classified this doc as news.", + "The doc has a url and the news classifier classified this doc as non-news.", + "The doc has a url but the url was missing from the news classifier URL table." + ], + "type": "string" + }, + "conversationId": { + "type": "string" + }, + "dataset": { + "description": "The dataset this document comes from.", + "enum": [ + "DATASET_UNSPECIFIED", + "WIKIPEDIA", + "WEBDOCS", + "WEBDOCS_FINETUNE", + "GITHUB_MIRROR", + "BOOKS_FULL_VIEW", + "BOOKS_PRIVATE", + "GNEWS", + "ULM_DOCJOINS", + "ULM_DOCJOINS_DEDUPED", + "MEENA_FC", + "PODCAST", + "AQUA", + "WEB_ASR", + "BARD_GOLDEN", + "COMMON_SENSE_REASONING", + "MATH", + "MATH_REASONING", + "CLEAN_ARXIV", + "LAMDA_FACTUALITY_E2E_QUERY_GENERATION", + "LAMDA_FACTUALITY_E2E_RESPONSE_GENERATION", + "MASSIVE_FORUM_THREAD_SCORED_BARD", + "MASSIVE_FORUM_THREAD_SCORED_LONG_200", + "MASSIVE_FORUM_THREAD_SCORED_LONG_500", + "DOCUMENT_CHUNKS", + "MEENA_RESEARCH_PHASE_GOLDEN_MARKDOWN", + "MEENA_RESEARCH_PHASE_GOOGLERS", + "MEENA_RESPONSE_SAFETY_HUMAN_GEN", + "MEENA_RESPONSE_SAFETY_SCHEMA_NO_BROADCAST", + "MEENA_RESPONSE_SAFETY_V3_HUMAN_GEN2", + "MEENA_RESPONSE_SAFETY_V3_SCHEMA_NO_BROADCAST", + "LAMDA_FACTUALITY_TRIGGER", + "LAMDA_SAFETY_V2_SCHEMA_NO_BROADCAST", + "LAMDA_SSI_DISCRIMINATIVE", + "ASSISTANT_PERSONALITY_SAFETY", + "PODCAST_FINETUNE_DIALOG", + "WORLD_QUERY_GENERATOR", + "C4_JOINED_DOCJOINS", + "HOL4_THEORIES", + "HOL_LIGHT_THEORIES", + "HOLSTEPS", + "ISABELLE_STEP", + "ISABELLE_THEORIES", + "LEAN_MATHLIB_THEORIES", + "LEAN_STEP", + "MIZAR_THEORIES", + "COQ_STEP", + "COQ_THEORIES", + "AMPS_KHAN", + "AMPS_MATHEMATICA", + "CODEY_CODE", + "CODE_QA_SE", + "CODE_QA_SO", + "CODE_QA_FT_FORMAT", + "CODE_QA_FT_KNOWLEDGE", + "CODE_QA_GITHUB_FILTERED_CODE", + "BARD_PERSONALITY_GOLDEN", + "ULM_DOCJOINS_WITH_URLS_EN", + "ULM_DOCJOINS_WITH_URLS_I18N", + "GOODALL_MTV5_GITHUB", + "GOODALL_MTV5_BOOKS", + "GOODALL_MTV5_C4", + "GOODALL_MTV5_WIKIPEDIA", + "GOODALL_MW_TOP_100B", + "GOODALL_MW_STACK_EXCHANGE", + "GOODALL_MW_TOP_0_10B", + "GOODALL_MW_TOP_10B_20B", + "CODEY_NOTEBOOK_LM_PRETRAINING", + "VERTEX_SAFE_FLAN", + "GITHUB_MIRROR_V1_0_1", + "GITHUB_MIRROR_V2_1_0", + "CMS_WIKIPEDIA_LANG_FILTERED", + "CMS_STACKOVERFLOW_MULTILINGUAL", + "CMS_STACKEXCHANGE", + "PUBMED", + "GEMINI_DOCJOINS_EN_TOP10B_GCC", + "GEMINI_DOCJOINS_EN_TOP10B_TOP20B_GCC", + "GEMINI_DOCJOINS_EN_TOP20B_TOP100B_GCC", + "GEMINI_DOCJOINS_EN_TOP100B_ALL_INDEXED_GCC", + "GEMINI_DOCJOINS_I18N_TOP10B_GCC", + "GEMINI_DOCJOINS_I18N_TOP10B_TOP20B_GCC", + "GEMINI_DOCJOINS_I18N_TOP20B_TOP100B_GCC", + "SIMPLIFIED_HTML_V1_GCC", + "GEMINI_DOCJOINS_TOXICITY_TAGGED_GCC", + "CMS_GITHUB_V4", + "GITHUB_HTML_V4", + "GITHUB_OTHER_V4", + "GITHUB_LONG_TAIL_V4", + "CMS_GITHUB_MULTIFILE_V4", + "GITHUB_DIFFS_WITH_COMMIT_MESSAGE", + "ULM_ARXIV", + "NONPUB_COPYRIGHT_BOOKS_V2_70_CONF_040623_LONG_DEDUP_ENONLY", + "NONPUB_COPYRIGHT_BOOKS_V2_70_CONF_040623_LONG_DEDUP_NONENONLY", + "QUORA", + "PODCASTS_ROBOTSTXT", + "COMBINED_REDDIT", + "CANARIES_SHUFFLED", + "CLM_TRANSLATE_DATAV2_ALLTIERS_GCC_MIX", + "TECHDOCS_DATA_SOURCE", + "SCIENCE_PDF_70M_DOCS_FILTERED", + "GEMINI_V1_CMS_WIKIPEDIA_LANG_FILTERED", + "GEMINI_V1_WIKIPEDIA_DIFFS", + "GEMINI_V1_DOCJOINS_EN_TOP10B_GCC_NODEDUP_050523", + "GEMINI_V1_DOCJOINS_EN_TOP10B_TOP20B_GCC_NODEDUP_050523", + "GEMINI_V1_DOCJOINS_EN_TOP20B_TOP100B_GCC_NODEDUP_050523", + "GEMINI_V1_DOCJOINS_EN_TOP100B_ALL_INDEXED_GCC_NODEDUP_050523", + "GEMINI_V1_DOCJOINS_I18N_TOP10B_GCC_050523", + "GEMINI_V1_DOCJOINS_I18N_TOP10B_TOP20B_GCC_050523", + "GEMINI_V1_DOCJOINS_I18N_TOP20B_TOP100B_GCC_050523", + "GEMINI_V1_SIMPLIFIED_HTML_V2_GCC", + "GEMINI_V1_CMS_STACKOVERFLOW_MULTILINGUAL_V2", + "GEMINI_V1_CMS_STACKEXCHANGE_DECONT", + "GEMINI_V1_QUORA", + "GEMINI_V1_COMBINED_REDDIT", + "GEMINI_V1_DOCJOIN_100B_EN_TOXICITY_TAGGED_GCC_FIXED_TAGS", + "GEMINI_V1_PUBMED", + "GEMINI_V1_WEB_MATH_V2", + "GEMINI_V1_CMS_GITHUB_V7", + "GEMINI_V1_CMS_GITHUB_DECONTAMINATED_V_7", + "GEMINI_V1_GITHUB_DIFF_WITH_COMMIT_MESSAGE_V2", + "GEMINI_V1_GITHUB_HTML_CSS_XML_V4", + "GEMINI_V1_GITHUB_OTHER_V4", + "GEMINI_V1_GITHUB_LONG_TAIL_V4", + "GEMINI_V1_GITHUB_JUPTYER_NOTEBOOKS_SSTABLE", + "GEMINI_V1_ULM_ARXIV_SSTABLE", + "GEMINI_V1_PODCASTS_ROBOTSTXT", + "GEMINI_V1_SCIENCE_PDF_68M_HQ_DOCS_GCC", + "GEMINI_V1_GITHUB_TECHDOCS_V2", + "GEMINI_V1_NONPUB_COPYRIGHT_BOOKS_V2_70_CONF_LONG_DEDUP_EN", + "GEMINI_V1_NONPUB_COPYRIGHT_BOOKS_V2_70_CONF_LONG_DEDUP_NONEN", + "GEMINI_V1_STEM_BOOKS_650K_TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_M3W_V2_FILTERED", + "GEMINI_V1_VQCOCA_1B_MULTIRES_WEBLI_EN_V4_350M_PREFIXED_FILTERED_IMAGE2TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_SCREENAI_PREFIXED_FILTERED_IMAGE2TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_CULTURE_PREFIXED_FILTERED_IMAGE2TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_CC3M_EN_PREFIXED_IMAGE2TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_CC3M_I18N_PREFIXED_IMAGE2TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_OCR_EN_PREFIXED_FILTERED_IMAGE2TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_OCR_NON_EN_PREFIXED_FILTERED_IMAGE2TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_VTP_4F_VIDEO2TEXT_PREFIX", + "GEMINI_V1_FORMAL_MATH_WITHOUT_HOLSTEPS_AND_MIZAR", + "GEMINI_V1_TRANSLATE_DATAV2_ALLTIERS_GCC_MIX", + "GEMINI_V1_CANARIES_SHUFFLED_DOCJOIN_EN_NONEN_CODE_ARXIV_TRANSLATE", + "DUET_CLOUD_SECURITY_DOCS", + "DUET_GITHUB_CODE_SNIPPETS", + "DUET_GITHUB_FILES", + "DUET_GOBYEXAMPLE", + "DUET_GOLANG_DOCS", + "DUET_CLOUD_DOCS_TROUBLESHOOTING_TABLES", + "DUET_DEVSITE_DOCS", + "DUET_CLOUD_BLOG_POSTS", + "DUET_CLOUD_PODCAST_EPISODES", + "DUET_YOUTUBE_VIDEOS", + "DUET_CLOUD_SKILLS_BOOST", + "DUET_CLOUD_DOCS", + "DUET_CLOUD_GITHUB_CODE_SNIPPETS_GENERATED", + "DUET_CLOUD_GITHUB_CODE_SNIPPETS_HANDWRITTEN", + "DUET_GOOGLESQL_GENERATION", + "DUET_CLOUD_IX_PROMPTS", + "DUET_RAD", + "BARD_ARCADE_GITHUB", + "MOBILE_ASSISTANT_MAGI_FILTERED_0825_373K", + "MOBILE_ASSISTANT_PALM24B_FILTERED_400K", + "GENESIS_NEWS_INSIGHTS", + "CLOUD_SECURITY_PRETRAINING", + "CLOUD_SECURITY_FINETUNING", + "CLOUD_SECURITY_RAG_CISA", + "LABS_AQA_DSCOUT", + "LABS_AQA_TAILWIND", + "LABS_AQA_DELEWARE", + "GEMINI_MULTIMODAL_FT_URL", + "GEMINI_MULTIMODAL_FT_YT", + "GEMINI_MULTIMODAL_FT_SHUTTERSTOCK", + "GEMINI_MULTIMODAL_FT_NONE", + "GEMINI_MULTIMODAL_FT_OTHER", + "GEMINI_MULTIMODAL_FT_INK", + "GEMINI_MULTIMODAL_IT", + "GEMINI_IT_SHUTTERSTOCK", + "GEMINI_IT_M3W", + "GEMINI_IT_HEDGING", + "GEMINI_IT_DSCOUT_FACTUALITY", + "GEMINI_IT_AQUAMUSE", + "GEMINI_IT_SHOTGUN", + "GEMINI_IT_ACI_BENCH", + "GEMINI_IT_SPIDER_FILTERED", + "GEMINI_IT_TAB_SUM_BQ", + "GEMINI_IT_QA_WITH_URL", + "GEMINI_IT_CODE_INSTRUCT", + "GEMINI_IT_MED_PALM", + "GEMINI_IT_TASK_ORIENTED_DIALOG", + "GEMINI_IT_NIMBUS_GROUNDING_TO_PROMPT", + "GEMINI_IT_EITL_GEN", + "GEMINI_IT_HITL_GEN", + "GEMINI_IT_MECH", + "GEMINI_IT_TABLE_GEN", + "GEMINI_IT_NIMBUS_DECIBEL", + "GEMINI_IT_CLOUD_CODE_IF", + "GEMINI_IT_CLOUD_EUR_LEX_JSON", + "GEMINI_IT_CLOUD_OASST", + "GEMINI_IT_CLOUD_SELF_INSTRUCT", + "GEMINI_IT_CLOUD_UCS_AQUAMUSE", + "GEMIT_BRIDGE_SUFFIX_FT", + "GEMINI_GOOSE_PUBLIC", + "GEMINI_GOOSE_SILOED", + "GEMINI_V2_CMS_WIKIPEDIA_LANG_FILTERED_GCC_PII", + "GEMINI_V2_WIKIPEDIA_DIFFS_COMPLIANT", + "GEMINI_V2_ENGLISH_ARTICLES_TOP10B_211123_PII_FILTERED", + "GEMINI_V2_ENGLISH_NONARTICLES_TOP10B_211123_PII_FILTERED", + "GEMINI_V2_GEMINI_DOCJOINS_NONEN_TOP10B_111323_WITHOUT_CJKT_STOP_NONARTICLES_COMPLIANT", + "GEMINI_V2_GEMINI_DOCJOINS_NONEN_TOP10B_111323_WITHOUT_CJKT_STOP_ARTICLES_COMPLIANT", + "GEMINI_V2_ENGLISH_ARTICLES_TOP20B_211123_PII_FILTERED", + "GEMINI_V2_ENGLISH_NONARTICLES_TOP20B_211123_PII_FILTERED", + "GEMINI_V2_GEMINI_DOCJOINS_NONEN_TOP20B_111323_WITHOUT_CJKT_STOP_NONARTICLES_COMPLIANT", + "GEMINI_V2_GEMINI_DOCJOINS_NONEN_TOP20B_111323_WITHOUT_CJKT_STOP_ARTICLES_COMPLIANT", + "GEMINI_V2_ENGLISH_ARTICLES_TOP100B_211123_PII_FILTERED", + "GEMINI_V2_ENGLISH_NONARTICLES_TOP100B_211123_PII_FILTERED", + "GEMINI_V2_GEMINI_DOCJOINS_NONEN_TOP100B_111323_WITHOUT_CJKT_STOP_NONARTICLES_COMPLIANT", + "GEMINI_V2_GEMINI_DOCJOINS_NONEN_TOP100B_111323_WITHOUT_CJKT_STOP_ARTICLES_COMPLIANT", + "GEMINI_V2_ENGLISH_ARTICLES_TOP500B_211123_PII_FILTERED", + "GEMINI_V2_ENGLISH_NONARTICLES_TOP500B_211123_PII_FILTERED", + "GEMINI_V2_QUORA_COMPLIANT", + "GEMINI_V2_FORUMS_V2_COMPLIANT", + "GEMINI_V2_CMS_STACKOVERFLOW_MULTILINGUAL_V2_COMPLIANT", + "GEMINI_V2_SIMPLIFIED_HTML_V2_CORRECT_FORMAT_COMPLIANT", + "GEMINI_V2_GEMINI_DOCJOINS_TOXICITY_TAGGED_FIXED_TAGS_COMPLIANT", + "GEMINI_V2_CODEWEB_V1_COMPLIANT", + "GEMINI_V2_LEETCODE_GCC_PII", + "GEMINI_V2_CODE_CONTESTS_COMPLIANT", + "GEMINI_V2_CMS_GITHUB_MULTI_FILE_FOR_FIM_GEMBAGZ_FIXED_BYTES_LENGTHS", + "GEMINI_V2_GITHUB_EVALED_LANGUAGES_COMPLIANT", + "GEMINI_V2_GITHUB_NON_EVAL_HIGH_PRI_LANGUAGES_COMPLIANT", + "GEMINI_V2_GITHUB_LOW_PRI_LANGUAGES_AND_CONFIGS_COMPLIANT", + "GEMINI_V2_GITHUB_LONG_TAIL_AND_STRUCTURED_DATA_COMPLIANT", + "GEMINI_V2_GITHUB_PYTHON_NOTEBOOKS_COMPLIANT", + "GEMINI_V2_GITHUB_DIFFS_COMPLIANT", + "GEMINI_V2_GITHUB_TECHDOCS_COMPLIANT", + "GEMINI_V2_HIGH_QUALITY_CODE_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_SCIENCE_PDF_68M_HQ_DOCS_DEDUP_COMPLIANT_CLEAN_TEX", + "GEMINI_V2_ARXIV_2023_COMPLIANT", + "GEMINI_V2_FORMAL_COMPLIANT", + "GEMINI_V2_CMS_STACKEXCHANGE_COMPLIANT", + "GEMINI_V2_PUBMED_COMPLIANT", + "GEMINI_V2_WEB_MATH_V3_COMPLIANT", + "GEMINI_V2_SCIENCEWEB_V0_GCC_PII", + "GEMINI_V2_WEB_POLYMATH_V1_COMPLIANT", + "GEMINI_V2_MATH_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_BIOLOGY_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_PHYSICS_V2_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_CHEMISTRY_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_MACHINE_LEARNING_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_QA_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_ECONOMICS_V2_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_MEDICAL_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_CHESS_COMPLIANT", + "GEMINI_V2_YOUTUBE_SCIENCE_V4_FILTERED_COMPLIANT", + "GEMINI_V2_GOALDMINE_XL_GENERATED_PLUS_GT_NO_DM_MATH_COMPLIANT", + "GEMINI_V2_FIRSTTIMES_SCIENCE_PDF_DEDUP_HQ_LENGTH_FILTERED_COMPLIANT", + "GEMINI_V2_PODCASTS_COMPLIANT", + "GEMINI_V2_EN_NONSCIENCE_PDF_DEDUP_46M_DOCS_COMPLIANT", + "GEMINI_V2_NONPUB_COPYRIGHT_BOOKS_V3_70_CONF_082323_LONG_DEDUP_ENONLY_COMPLIANT", + "GEMINI_V2_STEM_COPYRIGHT_BOOKS_V3_111823_LONG_DEDUP_ENONLY_COMPLIANT", + "GEMINI_V2_STEM_BOOKS_318K_TEXT_COMPLIANT", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_M3W_WITH_IMAGE_TOKENS_INSERTED_INTERLEAVED_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_M3W_WITH_IMAGE_TOKENS_INSERTED_INTERLEAVED_COMPLIANT_PII_FILTERED_SOFT", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_WEBLI_EN_V4_350M_T2I_TEXT_TO_IMAGE_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_SHUTTERSTOCK_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_WEBLI_EN_V4_350M_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_WEBLI_OCR_I18N_680M_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_CLOUDAI_DOC_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_SCREENAI_FULL_HTML_75M_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_SCREENAI_V1_1_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_WEBLI_OCR_DOC_240M_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_SHUTTERSTOCK_VIDEO_VIDEO_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_M4W_INTERLEAVED_COMPLIANT_PII_FILTERED_SOFT", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_CULTURE_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_WEBLI_DETECTION_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_WEBLI_ALT_TEXT_NONEN_500M_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_SPATIAL_AWARE_PALI_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_CLOUDAI_TABLE2HTML_3D_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_TABLE2MD_V2_EN_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_TABLE2MD_V2_NON_EN_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_CLOUDAI_3D_DOC_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_CC3M_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_INFOGRAPHICS_LARGE_WEB_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_BIORXIV_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_PHOTOMATH_IM2SOL_PROBLEM_AND_SOLUTION_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_PLOT2TABLE_V2_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_TIKZ_DERENDERING_MERGED_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_CLOUDAI_TABLE2HTML_2D_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_WIKIPEDIA_EQUATIONS_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_PHOTOMATH_EQ2LATEX_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_ARXIV_EQUATIONS_V2_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_USM2B_MLPV5_YT_ASR_SUP_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_ASR_1P5M_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_ASR_4M_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_TTS_SUP_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_TTS_1P5M_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_TTS_4M_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_PODIOSET_INTERLEAVE_ENUS_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_PODIOSET_INTERLEAVE_I18N_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_INTERLEAVE_SCIENCE_ENUS_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_INTERLEAVE_SCIENCE_I18N_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_INTERLEAVE_1P5M_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_INTERLEAVE_HEAD_4M_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_CLM_TRANSLATE_DATAV3_WEB_UNWMT_INCR_MIX", + "GEMINI_V2_NTL_NTLV4A_MONOLINGUAL_DEDUP_N5", + "GEMINI_V2_NTL_STT_TRANSLATE_DEDUP_N5", + "GEMINI_V2_NTL_TRANSLIT_BILEX_TRANSLATE_DEDUP_N5", + "GEMINI_V2_NTL_SYN_BT_TRANSLATE_DEDUP_N5", + "GEMINI_V2_NTL_SYN_FT_FIXED_TRANSLATE_DEDUP_N5", + "GEMINI_V2_CANARIES_SHUFFLED_COMPLIANT", + "CLOUD_GEMIT_CLOUD_FACTUALITY_GROUNDING_MAGI", + "CLOUD_GEMIT_MT_DIALGUE_LMSYS", + "CLOUD_GEMIT_MTS_DIALOGUE_V3", + "CLOUD_GEMIT_COMMIT_MSG_GEN_V3", + "CLOUD_GEMIT_CODE_IF_V1", + "CLOUD_GEMIT_CODE_SELF_REPAIR", + "CLOUD_GEMIT_IDENTITY", + "CLOUD_GEMIT_SEARCH_AUGMENTED_RESPONSE_GENERATION", + "CLOUD_GEMIT_AMPS", + "CLOUD_GEMIT_AQUA", + "CLOUD_GEMIT_COMMON_SENSE_REASONING_SCHEMA", + "CLOUD_GEMIT_GSM8K_SCHEMA" + ], + "enumDescriptions": [ + "", + "Wikipedia article Tensorflow datasets used by Tarzan and maintained by TFDS team.", + "Webdocs that have been filtered from the docjoins by the Tarzan team for use in the Tarzan training set.", + "", + "", + "'Full view' books dataset maintained by Oceanographers team, meaning 'ok to view the book in full in all localities'. Largely the same as 'public domain', but with potentially subtle distinction.", + "Filtered private books used by ULM: http://google3/learning/multipod/pax/lm/params/ulm/tasks.py;l=123;rcl=494241309. which corresponds with /cns/mf-d/home/multipod-language-data/private_books/books_filtered_en_resharded@50000", + "Google news dataset referenced in: http://google3/learning/brain/research/conversation/meena/t5/pretrain_tasks.py;l=922;rcl=496534668", + "The docjoins data for ULM /cns/yo-d/home/multipod-language-data/docjoins/rs=6.3/20220728/100B_docstructure_split/examples_en.tfrecord_lattice_05_score_01_HFV13@3929", + "", + "Meena full conversations. http://google3/learning/brain/research/conversation/meena/t5/pretrain_mixtures.py;l=675;rcl=496583228", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Academic dataset of math text. http://google3/learning/brain/research/conversation/meena/seqio/mixtures/experimental/bard.py;rcl=500222380", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Datasets managed by the Goodall team: deepmind-goodall@google.com", + "", + "", + "", + "", + "", + "", + "", + "Datasets used by Codepoet", + "Datasets used by Vertex", + "", + "", + "Datasets used by Gemini Public data", + "", + "", + "", + "Public webdocs", + "", + "", + "", + "", + "", + "", + "", + "", + "Github", + "", + "", + "", + "", + "", + "Arxiv", + "Others", + "", + "", + "", + "", + "", + "", + "", + "", + "Gemini V1, order by precedence. Wikipedia", + "", + "Public webdocs", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Github dataset with license info. We prefer this to help cite proper licenses for code recitation.", + "", + "", + "", + "", + "", + "", + "ArXiv", + "Citable misc", + "", + "", + "Non-public books", + "", + "", + "Other", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Duet AI finetune datasets, order by precedence.", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Bard ARCADE finetune dataset.", + "Mobile assistant finetune datasets.", + "", + "Genesis fine-tune datasets.", + "Cloud Security fine-tune datasets.", + "", + "", + "LABS AQA fine-tune datasets.", + "", + "", + "Gemini multimodal instruction tune(IT) and fine tune(FT) datasets datasets.", + "", + "", + "", + "", + "", + "", + "Gemini IT 1.2.7 datasets", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Gemit Bridge ULM FT dataset", + "Gemini Goose FT datasets.", + "", + "Gemini V2 datasets", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Cloud gemit pro FT datasets.", + "", + "", + "", + "", + "", + "", + "Cloud gemit ultra FT datasets.", + "", + "", + "", + "" + ], + "type": "string" + }, + "filepath": { + "type": "string" + }, + "geminiId": { + "type": "string" + }, + "gnewsArticleTitle": { + "type": "string" + }, + "goodallExampleId": { + "type": "string" + }, + "isOptOut": { + "description": "Whether the document is opted out.", + "type": "boolean" + }, + "isPrompt": { + "type": "boolean" + }, + "lamdaExampleId": { + "type": "string" + }, + "license": { + "type": "string" + }, + "meenaConversationId": { + "type": "string" + }, + "naturalLanguageCode": { + "description": "Natural (not programming) language of the document. Language code as defined by http://www.unicode.org/reports/tr35/#Identifiers and https://tools.ietf.org/html/bcp47. Currently applicable to full-view books. Use docinfo-util.h to set & read language fields. See go/iii.", + "type": "string" + }, + "noAttribution": { + "description": "True if this doc has no attribution information available. We use an explicit field for this instead of just implicitly leaving all the DocAttribution fields blank to distinguish a case where a bug/oversight has left the attribution information empty vs when we really have no attribution information available.", + "type": "boolean" + }, + "podcastUtteranceId": { + "type": "string" + }, + "publicationDate": { + "$ref": "GoogleTypeDate" + }, + "qualityScoreExperimentOnly": { + "description": "This field is for opt-out experiment only, MUST never be used during actual production/serving. ", + "format": "double", + "type": "number" + }, + "repo": { + "description": "Github repository", + "type": "string" + }, + "url": { + "description": "URL of a webdoc", + "type": "string" + }, + "volumeId": { + "type": "string" + }, + "wikipediaArticleTitle": { + "description": "Wikipedia article title. The Wikipedia TFDS dataset includes article titles but not URLs. While a URL is to the best of our knowledge a deterministic function of the title, we store the original title to reflect the information in the original dataset.", + "type": "string" + }, + "youtubeVideoId": { + "description": "The unique video id from Youtube. Example: AkoGsW52Ir0", + "type": "string" + } + }, + "type": "object" + }, + "LanguageLabsAidaTrustRecitationProtoRecitationResult": { + "description": "The recitation result for one input", + "id": "LanguageLabsAidaTrustRecitationProtoRecitationResult", + "properties": { + "dynamicSegmentResults": { + "items": { + "$ref": "LanguageLabsAidaTrustRecitationProtoSegmentResult" + }, + "type": "array" + }, + "recitationAction": { + "description": "The recitation action for one given input. When its segments contain different actions, the overall action will be returned in the precedence of BLOCK > CITE > NO_ACTION. When the given input is not found in any source, the recitation action will not be specified.", + "enum": [ + "ACTION_UNSPECIFIED", + "CITE", + "BLOCK", + "NO_ACTION", + "EXEMPT_FOUND_IN_PROMPT" + ], + "enumDescriptions": [ + "", + "indicate that attribution must be shown for a Segment", + "indicate that a Segment should be blocked from being used", + "for tagging high-frequency code snippets", + "The recitation was found in prompt and is exempted from overall results" + ], + "type": "string" + }, + "trainingSegmentResults": { + "items": { + "$ref": "LanguageLabsAidaTrustRecitationProtoSegmentResult" + }, + "type": "array" + } + }, + "type": "object" + }, + "LanguageLabsAidaTrustRecitationProtoSegmentResult": { + "description": "The recitation result for each segment in a given input.", + "id": "LanguageLabsAidaTrustRecitationProtoSegmentResult", + "properties": { + "attributionDataset": { + "description": "The dataset the segment came from.", + "enum": [ + "DATASET_UNSPECIFIED", + "WIKIPEDIA", + "WEBDOCS", + "WEBDOCS_FINETUNE", + "GITHUB_MIRROR", + "BOOKS_FULL_VIEW", + "BOOKS_PRIVATE", + "GNEWS", + "ULM_DOCJOINS", + "ULM_DOCJOINS_DEDUPED", + "MEENA_FC", + "PODCAST", + "AQUA", + "WEB_ASR", + "BARD_GOLDEN", + "COMMON_SENSE_REASONING", + "MATH", + "MATH_REASONING", + "CLEAN_ARXIV", + "LAMDA_FACTUALITY_E2E_QUERY_GENERATION", + "LAMDA_FACTUALITY_E2E_RESPONSE_GENERATION", + "MASSIVE_FORUM_THREAD_SCORED_BARD", + "MASSIVE_FORUM_THREAD_SCORED_LONG_200", + "MASSIVE_FORUM_THREAD_SCORED_LONG_500", + "DOCUMENT_CHUNKS", + "MEENA_RESEARCH_PHASE_GOLDEN_MARKDOWN", + "MEENA_RESEARCH_PHASE_GOOGLERS", + "MEENA_RESPONSE_SAFETY_HUMAN_GEN", + "MEENA_RESPONSE_SAFETY_SCHEMA_NO_BROADCAST", + "MEENA_RESPONSE_SAFETY_V3_HUMAN_GEN2", + "MEENA_RESPONSE_SAFETY_V3_SCHEMA_NO_BROADCAST", + "LAMDA_FACTUALITY_TRIGGER", + "LAMDA_SAFETY_V2_SCHEMA_NO_BROADCAST", + "LAMDA_SSI_DISCRIMINATIVE", + "ASSISTANT_PERSONALITY_SAFETY", + "PODCAST_FINETUNE_DIALOG", + "WORLD_QUERY_GENERATOR", + "C4_JOINED_DOCJOINS", + "HOL4_THEORIES", + "HOL_LIGHT_THEORIES", + "HOLSTEPS", + "ISABELLE_STEP", + "ISABELLE_THEORIES", + "LEAN_MATHLIB_THEORIES", + "LEAN_STEP", + "MIZAR_THEORIES", + "COQ_STEP", + "COQ_THEORIES", + "AMPS_KHAN", + "AMPS_MATHEMATICA", + "CODEY_CODE", + "CODE_QA_SE", + "CODE_QA_SO", + "CODE_QA_FT_FORMAT", + "CODE_QA_FT_KNOWLEDGE", + "CODE_QA_GITHUB_FILTERED_CODE", + "BARD_PERSONALITY_GOLDEN", + "ULM_DOCJOINS_WITH_URLS_EN", + "ULM_DOCJOINS_WITH_URLS_I18N", + "GOODALL_MTV5_GITHUB", + "GOODALL_MTV5_BOOKS", + "GOODALL_MTV5_C4", + "GOODALL_MTV5_WIKIPEDIA", + "GOODALL_MW_TOP_100B", + "GOODALL_MW_STACK_EXCHANGE", + "GOODALL_MW_TOP_0_10B", + "GOODALL_MW_TOP_10B_20B", + "CODEY_NOTEBOOK_LM_PRETRAINING", + "VERTEX_SAFE_FLAN", + "GITHUB_MIRROR_V1_0_1", + "GITHUB_MIRROR_V2_1_0", + "CMS_WIKIPEDIA_LANG_FILTERED", + "CMS_STACKOVERFLOW_MULTILINGUAL", + "CMS_STACKEXCHANGE", + "PUBMED", + "GEMINI_DOCJOINS_EN_TOP10B_GCC", + "GEMINI_DOCJOINS_EN_TOP10B_TOP20B_GCC", + "GEMINI_DOCJOINS_EN_TOP20B_TOP100B_GCC", + "GEMINI_DOCJOINS_EN_TOP100B_ALL_INDEXED_GCC", + "GEMINI_DOCJOINS_I18N_TOP10B_GCC", + "GEMINI_DOCJOINS_I18N_TOP10B_TOP20B_GCC", + "GEMINI_DOCJOINS_I18N_TOP20B_TOP100B_GCC", + "SIMPLIFIED_HTML_V1_GCC", + "GEMINI_DOCJOINS_TOXICITY_TAGGED_GCC", + "CMS_GITHUB_V4", + "GITHUB_HTML_V4", + "GITHUB_OTHER_V4", + "GITHUB_LONG_TAIL_V4", + "CMS_GITHUB_MULTIFILE_V4", + "GITHUB_DIFFS_WITH_COMMIT_MESSAGE", + "ULM_ARXIV", + "NONPUB_COPYRIGHT_BOOKS_V2_70_CONF_040623_LONG_DEDUP_ENONLY", + "NONPUB_COPYRIGHT_BOOKS_V2_70_CONF_040623_LONG_DEDUP_NONENONLY", + "QUORA", + "PODCASTS_ROBOTSTXT", + "COMBINED_REDDIT", + "CANARIES_SHUFFLED", + "CLM_TRANSLATE_DATAV2_ALLTIERS_GCC_MIX", + "TECHDOCS_DATA_SOURCE", + "SCIENCE_PDF_70M_DOCS_FILTERED", + "GEMINI_V1_CMS_WIKIPEDIA_LANG_FILTERED", + "GEMINI_V1_WIKIPEDIA_DIFFS", + "GEMINI_V1_DOCJOINS_EN_TOP10B_GCC_NODEDUP_050523", + "GEMINI_V1_DOCJOINS_EN_TOP10B_TOP20B_GCC_NODEDUP_050523", + "GEMINI_V1_DOCJOINS_EN_TOP20B_TOP100B_GCC_NODEDUP_050523", + "GEMINI_V1_DOCJOINS_EN_TOP100B_ALL_INDEXED_GCC_NODEDUP_050523", + "GEMINI_V1_DOCJOINS_I18N_TOP10B_GCC_050523", + "GEMINI_V1_DOCJOINS_I18N_TOP10B_TOP20B_GCC_050523", + "GEMINI_V1_DOCJOINS_I18N_TOP20B_TOP100B_GCC_050523", + "GEMINI_V1_SIMPLIFIED_HTML_V2_GCC", + "GEMINI_V1_CMS_STACKOVERFLOW_MULTILINGUAL_V2", + "GEMINI_V1_CMS_STACKEXCHANGE_DECONT", + "GEMINI_V1_QUORA", + "GEMINI_V1_COMBINED_REDDIT", + "GEMINI_V1_DOCJOIN_100B_EN_TOXICITY_TAGGED_GCC_FIXED_TAGS", + "GEMINI_V1_PUBMED", + "GEMINI_V1_WEB_MATH_V2", + "GEMINI_V1_CMS_GITHUB_V7", + "GEMINI_V1_CMS_GITHUB_DECONTAMINATED_V_7", + "GEMINI_V1_GITHUB_DIFF_WITH_COMMIT_MESSAGE_V2", + "GEMINI_V1_GITHUB_HTML_CSS_XML_V4", + "GEMINI_V1_GITHUB_OTHER_V4", + "GEMINI_V1_GITHUB_LONG_TAIL_V4", + "GEMINI_V1_GITHUB_JUPTYER_NOTEBOOKS_SSTABLE", + "GEMINI_V1_ULM_ARXIV_SSTABLE", + "GEMINI_V1_PODCASTS_ROBOTSTXT", + "GEMINI_V1_SCIENCE_PDF_68M_HQ_DOCS_GCC", + "GEMINI_V1_GITHUB_TECHDOCS_V2", + "GEMINI_V1_NONPUB_COPYRIGHT_BOOKS_V2_70_CONF_LONG_DEDUP_EN", + "GEMINI_V1_NONPUB_COPYRIGHT_BOOKS_V2_70_CONF_LONG_DEDUP_NONEN", + "GEMINI_V1_STEM_BOOKS_650K_TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_M3W_V2_FILTERED", + "GEMINI_V1_VQCOCA_1B_MULTIRES_WEBLI_EN_V4_350M_PREFIXED_FILTERED_IMAGE2TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_SCREENAI_PREFIXED_FILTERED_IMAGE2TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_CULTURE_PREFIXED_FILTERED_IMAGE2TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_CC3M_EN_PREFIXED_IMAGE2TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_CC3M_I18N_PREFIXED_IMAGE2TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_OCR_EN_PREFIXED_FILTERED_IMAGE2TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_OCR_NON_EN_PREFIXED_FILTERED_IMAGE2TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_VTP_4F_VIDEO2TEXT_PREFIX", + "GEMINI_V1_FORMAL_MATH_WITHOUT_HOLSTEPS_AND_MIZAR", + "GEMINI_V1_TRANSLATE_DATAV2_ALLTIERS_GCC_MIX", + "GEMINI_V1_CANARIES_SHUFFLED_DOCJOIN_EN_NONEN_CODE_ARXIV_TRANSLATE", + "DUET_CLOUD_SECURITY_DOCS", + "DUET_GITHUB_CODE_SNIPPETS", + "DUET_GITHUB_FILES", + "DUET_GOBYEXAMPLE", + "DUET_GOLANG_DOCS", + "DUET_CLOUD_DOCS_TROUBLESHOOTING_TABLES", + "DUET_DEVSITE_DOCS", + "DUET_CLOUD_BLOG_POSTS", + "DUET_CLOUD_PODCAST_EPISODES", + "DUET_YOUTUBE_VIDEOS", + "DUET_CLOUD_SKILLS_BOOST", + "DUET_CLOUD_DOCS", + "DUET_CLOUD_GITHUB_CODE_SNIPPETS_GENERATED", + "DUET_CLOUD_GITHUB_CODE_SNIPPETS_HANDWRITTEN", + "DUET_GOOGLESQL_GENERATION", + "DUET_CLOUD_IX_PROMPTS", + "DUET_RAD", + "BARD_ARCADE_GITHUB", + "MOBILE_ASSISTANT_MAGI_FILTERED_0825_373K", + "MOBILE_ASSISTANT_PALM24B_FILTERED_400K", + "GENESIS_NEWS_INSIGHTS", + "CLOUD_SECURITY_PRETRAINING", + "CLOUD_SECURITY_FINETUNING", + "CLOUD_SECURITY_RAG_CISA", + "LABS_AQA_DSCOUT", + "LABS_AQA_TAILWIND", + "LABS_AQA_DELEWARE", + "GEMINI_MULTIMODAL_FT_URL", + "GEMINI_MULTIMODAL_FT_YT", + "GEMINI_MULTIMODAL_FT_SHUTTERSTOCK", + "GEMINI_MULTIMODAL_FT_NONE", + "GEMINI_MULTIMODAL_FT_OTHER", + "GEMINI_MULTIMODAL_FT_INK", + "GEMINI_MULTIMODAL_IT", + "GEMINI_IT_SHUTTERSTOCK", + "GEMINI_IT_M3W", + "GEMINI_IT_HEDGING", + "GEMINI_IT_DSCOUT_FACTUALITY", + "GEMINI_IT_AQUAMUSE", + "GEMINI_IT_SHOTGUN", + "GEMINI_IT_ACI_BENCH", + "GEMINI_IT_SPIDER_FILTERED", + "GEMINI_IT_TAB_SUM_BQ", + "GEMINI_IT_QA_WITH_URL", + "GEMINI_IT_CODE_INSTRUCT", + "GEMINI_IT_MED_PALM", + "GEMINI_IT_TASK_ORIENTED_DIALOG", + "GEMINI_IT_NIMBUS_GROUNDING_TO_PROMPT", + "GEMINI_IT_EITL_GEN", + "GEMINI_IT_HITL_GEN", + "GEMINI_IT_MECH", + "GEMINI_IT_TABLE_GEN", + "GEMINI_IT_NIMBUS_DECIBEL", + "GEMINI_IT_CLOUD_CODE_IF", + "GEMINI_IT_CLOUD_EUR_LEX_JSON", + "GEMINI_IT_CLOUD_OASST", + "GEMINI_IT_CLOUD_SELF_INSTRUCT", + "GEMINI_IT_CLOUD_UCS_AQUAMUSE", + "GEMIT_BRIDGE_SUFFIX_FT", + "GEMINI_GOOSE_PUBLIC", + "GEMINI_GOOSE_SILOED", + "GEMINI_V2_CMS_WIKIPEDIA_LANG_FILTERED_GCC_PII", + "GEMINI_V2_WIKIPEDIA_DIFFS_COMPLIANT", + "GEMINI_V2_ENGLISH_ARTICLES_TOP10B_211123_PII_FILTERED", + "GEMINI_V2_ENGLISH_NONARTICLES_TOP10B_211123_PII_FILTERED", + "GEMINI_V2_GEMINI_DOCJOINS_NONEN_TOP10B_111323_WITHOUT_CJKT_STOP_NONARTICLES_COMPLIANT", + "GEMINI_V2_GEMINI_DOCJOINS_NONEN_TOP10B_111323_WITHOUT_CJKT_STOP_ARTICLES_COMPLIANT", + "GEMINI_V2_ENGLISH_ARTICLES_TOP20B_211123_PII_FILTERED", + "GEMINI_V2_ENGLISH_NONARTICLES_TOP20B_211123_PII_FILTERED", + "GEMINI_V2_GEMINI_DOCJOINS_NONEN_TOP20B_111323_WITHOUT_CJKT_STOP_NONARTICLES_COMPLIANT", + "GEMINI_V2_GEMINI_DOCJOINS_NONEN_TOP20B_111323_WITHOUT_CJKT_STOP_ARTICLES_COMPLIANT", + "GEMINI_V2_ENGLISH_ARTICLES_TOP100B_211123_PII_FILTERED", + "GEMINI_V2_ENGLISH_NONARTICLES_TOP100B_211123_PII_FILTERED", + "GEMINI_V2_GEMINI_DOCJOINS_NONEN_TOP100B_111323_WITHOUT_CJKT_STOP_NONARTICLES_COMPLIANT", + "GEMINI_V2_GEMINI_DOCJOINS_NONEN_TOP100B_111323_WITHOUT_CJKT_STOP_ARTICLES_COMPLIANT", + "GEMINI_V2_ENGLISH_ARTICLES_TOP500B_211123_PII_FILTERED", + "GEMINI_V2_ENGLISH_NONARTICLES_TOP500B_211123_PII_FILTERED", + "GEMINI_V2_QUORA_COMPLIANT", + "GEMINI_V2_FORUMS_V2_COMPLIANT", + "GEMINI_V2_CMS_STACKOVERFLOW_MULTILINGUAL_V2_COMPLIANT", + "GEMINI_V2_SIMPLIFIED_HTML_V2_CORRECT_FORMAT_COMPLIANT", + "GEMINI_V2_GEMINI_DOCJOINS_TOXICITY_TAGGED_FIXED_TAGS_COMPLIANT", + "GEMINI_V2_CODEWEB_V1_COMPLIANT", + "GEMINI_V2_LEETCODE_GCC_PII", + "GEMINI_V2_CODE_CONTESTS_COMPLIANT", + "GEMINI_V2_CMS_GITHUB_MULTI_FILE_FOR_FIM_GEMBAGZ_FIXED_BYTES_LENGTHS", + "GEMINI_V2_GITHUB_EVALED_LANGUAGES_COMPLIANT", + "GEMINI_V2_GITHUB_NON_EVAL_HIGH_PRI_LANGUAGES_COMPLIANT", + "GEMINI_V2_GITHUB_LOW_PRI_LANGUAGES_AND_CONFIGS_COMPLIANT", + "GEMINI_V2_GITHUB_LONG_TAIL_AND_STRUCTURED_DATA_COMPLIANT", + "GEMINI_V2_GITHUB_PYTHON_NOTEBOOKS_COMPLIANT", + "GEMINI_V2_GITHUB_DIFFS_COMPLIANT", + "GEMINI_V2_GITHUB_TECHDOCS_COMPLIANT", + "GEMINI_V2_HIGH_QUALITY_CODE_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_SCIENCE_PDF_68M_HQ_DOCS_DEDUP_COMPLIANT_CLEAN_TEX", + "GEMINI_V2_ARXIV_2023_COMPLIANT", + "GEMINI_V2_FORMAL_COMPLIANT", + "GEMINI_V2_CMS_STACKEXCHANGE_COMPLIANT", + "GEMINI_V2_PUBMED_COMPLIANT", + "GEMINI_V2_WEB_MATH_V3_COMPLIANT", + "GEMINI_V2_SCIENCEWEB_V0_GCC_PII", + "GEMINI_V2_WEB_POLYMATH_V1_COMPLIANT", + "GEMINI_V2_MATH_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_BIOLOGY_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_PHYSICS_V2_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_CHEMISTRY_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_MACHINE_LEARNING_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_QA_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_ECONOMICS_V2_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_MEDICAL_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_CHESS_COMPLIANT", + "GEMINI_V2_YOUTUBE_SCIENCE_V4_FILTERED_COMPLIANT", + "GEMINI_V2_GOALDMINE_XL_GENERATED_PLUS_GT_NO_DM_MATH_COMPLIANT", + "GEMINI_V2_FIRSTTIMES_SCIENCE_PDF_DEDUP_HQ_LENGTH_FILTERED_COMPLIANT", + "GEMINI_V2_PODCASTS_COMPLIANT", + "GEMINI_V2_EN_NONSCIENCE_PDF_DEDUP_46M_DOCS_COMPLIANT", + "GEMINI_V2_NONPUB_COPYRIGHT_BOOKS_V3_70_CONF_082323_LONG_DEDUP_ENONLY_COMPLIANT", + "GEMINI_V2_STEM_COPYRIGHT_BOOKS_V3_111823_LONG_DEDUP_ENONLY_COMPLIANT", + "GEMINI_V2_STEM_BOOKS_318K_TEXT_COMPLIANT", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_M3W_WITH_IMAGE_TOKENS_INSERTED_INTERLEAVED_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_M3W_WITH_IMAGE_TOKENS_INSERTED_INTERLEAVED_COMPLIANT_PII_FILTERED_SOFT", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_WEBLI_EN_V4_350M_T2I_TEXT_TO_IMAGE_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_SHUTTERSTOCK_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_WEBLI_EN_V4_350M_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_WEBLI_OCR_I18N_680M_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_CLOUDAI_DOC_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_SCREENAI_FULL_HTML_75M_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_SCREENAI_V1_1_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_WEBLI_OCR_DOC_240M_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_SHUTTERSTOCK_VIDEO_VIDEO_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_M4W_INTERLEAVED_COMPLIANT_PII_FILTERED_SOFT", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_CULTURE_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_WEBLI_DETECTION_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_WEBLI_ALT_TEXT_NONEN_500M_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_SPATIAL_AWARE_PALI_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_CLOUDAI_TABLE2HTML_3D_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_TABLE2MD_V2_EN_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_TABLE2MD_V2_NON_EN_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_CLOUDAI_3D_DOC_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_CC3M_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_INFOGRAPHICS_LARGE_WEB_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_BIORXIV_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_PHOTOMATH_IM2SOL_PROBLEM_AND_SOLUTION_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_PLOT2TABLE_V2_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_TIKZ_DERENDERING_MERGED_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_CLOUDAI_TABLE2HTML_2D_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_WIKIPEDIA_EQUATIONS_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_PHOTOMATH_EQ2LATEX_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_ARXIV_EQUATIONS_V2_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_USM2B_MLPV5_YT_ASR_SUP_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_ASR_1P5M_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_ASR_4M_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_TTS_SUP_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_TTS_1P5M_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_TTS_4M_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_PODIOSET_INTERLEAVE_ENUS_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_PODIOSET_INTERLEAVE_I18N_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_INTERLEAVE_SCIENCE_ENUS_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_INTERLEAVE_SCIENCE_I18N_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_INTERLEAVE_1P5M_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_INTERLEAVE_HEAD_4M_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_CLM_TRANSLATE_DATAV3_WEB_UNWMT_INCR_MIX", + "GEMINI_V2_NTL_NTLV4A_MONOLINGUAL_DEDUP_N5", + "GEMINI_V2_NTL_STT_TRANSLATE_DEDUP_N5", + "GEMINI_V2_NTL_TRANSLIT_BILEX_TRANSLATE_DEDUP_N5", + "GEMINI_V2_NTL_SYN_BT_TRANSLATE_DEDUP_N5", + "GEMINI_V2_NTL_SYN_FT_FIXED_TRANSLATE_DEDUP_N5", + "GEMINI_V2_CANARIES_SHUFFLED_COMPLIANT", + "CLOUD_GEMIT_CLOUD_FACTUALITY_GROUNDING_MAGI", + "CLOUD_GEMIT_MT_DIALGUE_LMSYS", + "CLOUD_GEMIT_MTS_DIALOGUE_V3", + "CLOUD_GEMIT_COMMIT_MSG_GEN_V3", + "CLOUD_GEMIT_CODE_IF_V1", + "CLOUD_GEMIT_CODE_SELF_REPAIR", + "CLOUD_GEMIT_IDENTITY", + "CLOUD_GEMIT_SEARCH_AUGMENTED_RESPONSE_GENERATION", + "CLOUD_GEMIT_AMPS", + "CLOUD_GEMIT_AQUA", + "CLOUD_GEMIT_COMMON_SENSE_REASONING_SCHEMA", + "CLOUD_GEMIT_GSM8K_SCHEMA" + ], + "enumDescriptions": [ + "", + "Wikipedia article Tensorflow datasets used by Tarzan and maintained by TFDS team.", + "Webdocs that have been filtered from the docjoins by the Tarzan team for use in the Tarzan training set.", + "", + "", + "'Full view' books dataset maintained by Oceanographers team, meaning 'ok to view the book in full in all localities'. Largely the same as 'public domain', but with potentially subtle distinction.", + "Filtered private books used by ULM: http://google3/learning/multipod/pax/lm/params/ulm/tasks.py;l=123;rcl=494241309. which corresponds with /cns/mf-d/home/multipod-language-data/private_books/books_filtered_en_resharded@50000", + "Google news dataset referenced in: http://google3/learning/brain/research/conversation/meena/t5/pretrain_tasks.py;l=922;rcl=496534668", + "The docjoins data for ULM /cns/yo-d/home/multipod-language-data/docjoins/rs=6.3/20220728/100B_docstructure_split/examples_en.tfrecord_lattice_05_score_01_HFV13@3929", + "", + "Meena full conversations. http://google3/learning/brain/research/conversation/meena/t5/pretrain_mixtures.py;l=675;rcl=496583228", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Academic dataset of math text. http://google3/learning/brain/research/conversation/meena/seqio/mixtures/experimental/bard.py;rcl=500222380", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Datasets managed by the Goodall team: deepmind-goodall@google.com", + "", + "", + "", + "", + "", + "", + "", + "Datasets used by Codepoet", + "Datasets used by Vertex", + "", + "", + "Datasets used by Gemini Public data", + "", + "", + "", + "Public webdocs", + "", + "", + "", + "", + "", + "", + "", + "", + "Github", + "", + "", + "", + "", + "", + "Arxiv", + "Others", + "", + "", + "", + "", + "", + "", + "", + "", + "Gemini V1, order by precedence. Wikipedia", + "", + "Public webdocs", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Github dataset with license info. We prefer this to help cite proper licenses for code recitation.", + "", + "", + "", + "", + "", + "", + "ArXiv", + "Citable misc", + "", + "", + "Non-public books", + "", + "", + "Other", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Duet AI finetune datasets, order by precedence.", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Bard ARCADE finetune dataset.", + "Mobile assistant finetune datasets.", + "", + "Genesis fine-tune datasets.", + "Cloud Security fine-tune datasets.", + "", + "", + "LABS AQA fine-tune datasets.", + "", + "", + "Gemini multimodal instruction tune(IT) and fine tune(FT) datasets datasets.", + "", + "", + "", + "", + "", + "", + "Gemini IT 1.2.7 datasets", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Gemit Bridge ULM FT dataset", + "Gemini Goose FT datasets.", + "", + "Gemini V2 datasets", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Cloud gemit pro FT datasets.", + "", + "", + "", + "", + "", + "", + "Cloud gemit ultra FT datasets.", + "", + "", + "", + "" + ], + "type": "string" + }, + "displayAttributionMessage": { + "description": "human-friendly string that contains information from doc_attribution which could be shown by clients", + "type": "string" + }, + "docAttribution": { + "$ref": "LanguageLabsAidaTrustRecitationProtoDocAttribution", + "description": "populated when recitation_action == CITE" + }, + "docOccurrences": { + "description": "number of documents that contained this segment", + "format": "int32", + "type": "integer" + }, + "endIndex": { + "format": "int32", + "type": "integer" + }, + "rawText": { + "description": "The raw text in the given input that is corresponding to the segment. It will be available only when 'return_segment_raw_text' is enabled in the request options.", + "type": "string" + }, + "segmentRecitationAction": { + "enum": [ + "ACTION_UNSPECIFIED", + "CITE", + "BLOCK", + "NO_ACTION", + "EXEMPT_FOUND_IN_PROMPT" + ], + "enumDescriptions": [ + "", + "indicate that attribution must be shown for a Segment", + "indicate that a Segment should be blocked from being used", + "for tagging high-frequency code snippets", + "The recitation was found in prompt and is exempted from overall results" + ], + "type": "string" + }, + "startIndex": { + "description": "The segment boundary start (inclusive) and end index (exclusive) in the given text. In the streaming RPC, the indexes always start from the beginning of the first text in the entire stream. The indexes are measured in UTF-16 code units.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "LanguageLabsAidaTrustRecitationProtoStreamRecitationResult": { + "description": "The recitation result for one stream input", + "id": "LanguageLabsAidaTrustRecitationProtoStreamRecitationResult", + "properties": { + "dynamicSegmentResults": { + "description": "The recitation result against the given dynamic data source.", + "items": { + "$ref": "LanguageLabsAidaTrustRecitationProtoSegmentResult" + }, + "type": "array" + }, + "fullyCheckedTextIndex": { + "description": "Last index of input text fully checked for recitation in the entire streaming context. Would return `-1` if no Input was checked for recitation.", + "format": "int32", + "type": "integer" + }, + "recitationAction": { + "description": "The recitation action for one given input. When its segments contain different actions, the overall action will be returned in the precedence of BLOCK > CITE > NO_ACTION.", + "enum": [ + "ACTION_UNSPECIFIED", + "CITE", + "BLOCK", + "NO_ACTION", + "EXEMPT_FOUND_IN_PROMPT" + ], + "enumDescriptions": [ + "", + "indicate that attribution must be shown for a Segment", + "indicate that a Segment should be blocked from being used", + "for tagging high-frequency code snippets", + "The recitation was found in prompt and is exempted from overall results" + ], + "type": "string" + }, + "trainingSegmentResults": { + "description": "The recitation result against model training data.", + "items": { + "$ref": "LanguageLabsAidaTrustRecitationProtoSegmentResult" + }, + "type": "array" + } + }, + "type": "object" + }, + "LearningGenaiRecitationDocAttribution": { + "description": "The proto defines the attribution information for a document using whatever fields are most applicable for that document's datasource. For example, a Wikipedia article's attribution is in the form of its article title, a website is in the form of a URL, and a Github repo is in the form of a repo name. Next id: 30", + "id": "LearningGenaiRecitationDocAttribution", + "properties": { + "amarnaId": { + "type": "string" + }, + "arxivId": { + "type": "string" + }, + "author": { + "type": "string" + }, + "bibkey": { + "type": "string" + }, + "biorxivId": { + "description": "ID of the paper in bioarxiv like ddoi.org/{biorxiv_id} eg: https://doi.org/10.1101/343517", + "type": "string" + }, + "bookTitle": { + "type": "string" + }, + "bookVolumeId": { + "description": "The Oceanographers full-view books dataset uses a 'volume id' as the unique ID of a book. There is a deterministic function from a volume id to a URL under the books.google.com domain. Marked as 'optional' since a volume ID of zero is potentially possible and we want to distinguish that from the volume ID not being set.", + "format": "int64", + "type": "string" + }, + "conversationId": { + "type": "string" + }, + "dataset": { + "description": "The dataset this document comes from.", + "enum": [ + "DATASET_UNSPECIFIED", + "WIKIPEDIA", + "WEBDOCS", + "WEBDOCS_FINETUNE", + "GITHUB_MIRROR", + "BOOKS_FULL_VIEW", + "BOOKS_PRIVATE", + "GNEWS", + "ULM_DOCJOINS", + "ULM_DOCJOINS_DEDUPED", + "MEENA_FC", + "PODCAST", + "AQUA", + "WEB_ASR", + "BARD_GOLDEN", + "COMMON_SENSE_REASONING", + "MATH", + "MATH_REASONING", + "CLEAN_ARXIV", + "LAMDA_FACTUALITY_E2E_QUERY_GENERATION", + "LAMDA_FACTUALITY_E2E_RESPONSE_GENERATION", + "MASSIVE_FORUM_THREAD_SCORED_BARD", + "MASSIVE_FORUM_THREAD_SCORED_LONG_200", + "MASSIVE_FORUM_THREAD_SCORED_LONG_500", + "DOCUMENT_CHUNKS", + "MEENA_RESEARCH_PHASE_GOLDEN_MARKDOWN", + "MEENA_RESEARCH_PHASE_GOOGLERS", + "MEENA_RESPONSE_SAFETY_HUMAN_GEN", + "MEENA_RESPONSE_SAFETY_SCHEMA_NO_BROADCAST", + "MEENA_RESPONSE_SAFETY_V3_HUMAN_GEN2", + "MEENA_RESPONSE_SAFETY_V3_SCHEMA_NO_BROADCAST", + "LAMDA_FACTUALITY_TRIGGER", + "LAMDA_SAFETY_V2_SCHEMA_NO_BROADCAST", + "LAMDA_SSI_DISCRIMINATIVE", + "ASSISTANT_PERSONALITY_SAFETY", + "PODCAST_FINETUNE_DIALOG", + "WORLD_QUERY_GENERATOR", + "C4_JOINED_DOCJOINS", + "HOL4_THEORIES", + "HOL_LIGHT_THEORIES", + "HOLSTEPS", + "ISABELLE_STEP", + "ISABELLE_THEORIES", + "LEAN_MATHLIB_THEORIES", + "LEAN_STEP", + "MIZAR_THEORIES", + "COQ_STEP", + "COQ_THEORIES", + "AMPS_KHAN", + "AMPS_MATHEMATICA", + "CODEY_CODE", + "CODE_QA_SE", + "CODE_QA_SO", + "CODE_QA_FT_FORMAT", + "CODE_QA_FT_KNOWLEDGE", + "CODE_QA_GITHUB_FILTERED_CODE", + "BARD_PERSONALITY_GOLDEN", + "ULM_DOCJOINS_WITH_URLS_EN", + "ULM_DOCJOINS_WITH_URLS_I18N", + "GOODALL_MTV5_GITHUB", + "GOODALL_MTV5_BOOKS", + "GOODALL_MTV5_C4", + "GOODALL_MTV5_WIKIPEDIA", + "GOODALL_MW_TOP_100B", + "GOODALL_MW_STACK_EXCHANGE", + "GOODALL_MW_TOP_0_10B", + "GOODALL_MW_TOP_10B_20B", + "CODEY_NOTEBOOK_LM_PRETRAINING", + "VERTEX_SAFE_FLAN", + "GITHUB_MIRROR_V1_0_1", + "GITHUB_MIRROR_V2_1_0", + "CMS_WIKIPEDIA_LANG_FILTERED", + "CMS_STACKOVERFLOW_MULTILINGUAL", + "CMS_STACKEXCHANGE", + "PUBMED", + "GEMINI_DOCJOINS_EN_TOP10B_GCC", + "GEMINI_DOCJOINS_EN_TOP10B_TOP20B_GCC", + "GEMINI_DOCJOINS_EN_TOP20B_TOP100B_GCC", + "GEMINI_DOCJOINS_EN_TOP100B_ALL_INDEXED_GCC", + "GEMINI_DOCJOINS_I18N_TOP10B_GCC", + "GEMINI_DOCJOINS_I18N_TOP10B_TOP20B_GCC", + "GEMINI_DOCJOINS_I18N_TOP20B_TOP100B_GCC", + "SIMPLIFIED_HTML_V1_GCC", + "GEMINI_DOCJOINS_TOXICITY_TAGGED_GCC", + "CMS_GITHUB_V4", + "GITHUB_HTML_V4", + "GITHUB_OTHER_V4", + "GITHUB_LONG_TAIL_V4", + "CMS_GITHUB_MULTIFILE_V4", + "GITHUB_DIFFS_WITH_COMMIT_MESSAGE", + "ULM_ARXIV", + "NONPUB_COPYRIGHT_BOOKS_V2_70_CONF_040623_LONG_DEDUP_ENONLY", + "NONPUB_COPYRIGHT_BOOKS_V2_70_CONF_040623_LONG_DEDUP_NONENONLY", + "QUORA", + "PODCASTS_ROBOTSTXT", + "COMBINED_REDDIT", + "CANARIES_SHUFFLED", + "CLM_TRANSLATE_DATAV2_ALLTIERS_GCC_MIX", + "TECHDOCS_DATA_SOURCE", + "SCIENCE_PDF_70M_DOCS_FILTERED", + "GEMINI_V1_CMS_WIKIPEDIA_LANG_FILTERED", + "GEMINI_V1_WIKIPEDIA_DIFFS", + "GEMINI_V1_DOCJOINS_EN_TOP10B_GCC_NODEDUP_050523", + "GEMINI_V1_DOCJOINS_EN_TOP10B_TOP20B_GCC_NODEDUP_050523", + "GEMINI_V1_DOCJOINS_EN_TOP20B_TOP100B_GCC_NODEDUP_050523", + "GEMINI_V1_DOCJOINS_EN_TOP100B_ALL_INDEXED_GCC_NODEDUP_050523", + "GEMINI_V1_DOCJOINS_I18N_TOP10B_GCC_050523", + "GEMINI_V1_DOCJOINS_I18N_TOP10B_TOP20B_GCC_050523", + "GEMINI_V1_DOCJOINS_I18N_TOP20B_TOP100B_GCC_050523", + "GEMINI_V1_SIMPLIFIED_HTML_V2_GCC", + "GEMINI_V1_CMS_STACKOVERFLOW_MULTILINGUAL_V2", + "GEMINI_V1_CMS_STACKEXCHANGE_DECONT", + "GEMINI_V1_QUORA", + "GEMINI_V1_COMBINED_REDDIT", + "GEMINI_V1_DOCJOIN_100B_EN_TOXICITY_TAGGED_GCC_FIXED_TAGS", + "GEMINI_V1_PUBMED", + "GEMINI_V1_WEB_MATH_V2", + "GEMINI_V1_CMS_GITHUB_V7", + "GEMINI_V1_CMS_GITHUB_DECONTAMINATED_V_7", + "GEMINI_V1_GITHUB_DIFF_WITH_COMMIT_MESSAGE_V2", + "GEMINI_V1_GITHUB_HTML_CSS_XML_V4", + "GEMINI_V1_GITHUB_OTHER_V4", + "GEMINI_V1_GITHUB_LONG_TAIL_V4", + "GEMINI_V1_GITHUB_JUPTYER_NOTEBOOKS_SSTABLE", + "GEMINI_V1_ULM_ARXIV_SSTABLE", + "GEMINI_V1_PODCASTS_ROBOTSTXT", + "GEMINI_V1_SCIENCE_PDF_68M_HQ_DOCS_GCC", + "GEMINI_V1_GITHUB_TECHDOCS_V2", + "GEMINI_V1_NONPUB_COPYRIGHT_BOOKS_V2_70_CONF_LONG_DEDUP_EN", + "GEMINI_V1_NONPUB_COPYRIGHT_BOOKS_V2_70_CONF_LONG_DEDUP_NONEN", + "GEMINI_V1_STEM_BOOKS_650K_TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_M3W_V2_FILTERED", + "GEMINI_V1_VQCOCA_1B_MULTIRES_WEBLI_EN_V4_350M_PREFIXED_FILTERED_IMAGE2TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_SCREENAI_PREFIXED_FILTERED_IMAGE2TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_CULTURE_PREFIXED_FILTERED_IMAGE2TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_CC3M_EN_PREFIXED_IMAGE2TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_CC3M_I18N_PREFIXED_IMAGE2TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_OCR_EN_PREFIXED_FILTERED_IMAGE2TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_OCR_NON_EN_PREFIXED_FILTERED_IMAGE2TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_VTP_4F_VIDEO2TEXT_PREFIX", + "GEMINI_V1_FORMAL_MATH_WITHOUT_HOLSTEPS_AND_MIZAR", + "GEMINI_V1_TRANSLATE_DATAV2_ALLTIERS_GCC_MIX", + "GEMINI_V1_CANARIES_SHUFFLED_DOCJOIN_EN_NONEN_CODE_ARXIV_TRANSLATE", + "DUET_CLOUD_SECURITY_DOCS", + "DUET_GITHUB_CODE_SNIPPETS", + "DUET_GITHUB_FILES", + "DUET_GOBYEXAMPLE", + "DUET_GOLANG_DOCS", + "DUET_CLOUD_DOCS_TROUBLESHOOTING_TABLES", + "DUET_DEVSITE_DOCS", + "DUET_CLOUD_BLOG_POSTS", + "DUET_CLOUD_PODCAST_EPISODES", + "DUET_YOUTUBE_VIDEOS", + "DUET_CLOUD_SKILLS_BOOST", + "DUET_CLOUD_DOCS", + "DUET_CLOUD_GITHUB_CODE_SNIPPETS_GENERATED", + "DUET_CLOUD_GITHUB_CODE_SNIPPETS_HANDWRITTEN", + "DUET_GOOGLESQL_GENERATION", + "DUET_CLOUD_IX_PROMPTS", + "DUET_RAD", + "BARD_ARCADE_GITHUB", + "MOBILE_ASSISTANT_MAGI_FILTERED_0825_373K", + "MOBILE_ASSISTANT_PALM24B_FILTERED_400K", + "GENESIS_NEWS_INSIGHTS", + "LABS_AQA_DSCOUT", + "LABS_AQA_TAILWIND", + "LABS_AQA_DELEWARE", + "GEMINI_MULTIMODAL_FT_URL", + "GEMINI_MULTIMODAL_FT_YT", + "GEMINI_MULTIMODAL_FT_SHUTTERSTOCK", + "GEMINI_MULTIMODAL_FT_NONE", + "GEMINI_MULTIMODAL_FT_OTHER", + "GEMINI_MULTIMODAL_FT_INK", + "GEMINI_MULTIMODAL_IT", + "GEMINI_IT_SHUTTERSTOCK", + "GEMINI_IT_M3W", + "GEMINI_IT_HEDGING", + "GEMINI_IT_DSCOUT_FACTUALITY", + "GEMINI_IT_AQUAMUSE", + "GEMINI_IT_SHOTGUN", + "GEMINI_IT_ACI_BENCH", + "GEMINI_IT_SPIDER_FILTERED", + "GEMINI_IT_TAB_SUM_BQ", + "GEMINI_IT_QA_WITH_URL", + "GEMINI_IT_CODE_INSTRUCT", + "GEMINI_IT_MED_PALM", + "GEMINI_IT_TASK_ORIENTED_DIALOG", + "GEMINI_IT_NIMBUS_GROUNDING_TO_PROMPT", + "GEMINI_IT_EITL_GEN", + "GEMINI_IT_HITL_GEN", + "GEMINI_IT_MECH", + "GEMINI_IT_TABLE_GEN", + "GEMINI_IT_NIMBUS_DECIBEL", + "GEMINI_IT_CLOUD_CODE_IF", + "GEMINI_IT_CLOUD_EUR_LEX_JSON", + "GEMINI_IT_CLOUD_OASST", + "GEMINI_IT_CLOUD_SELF_INSTRUCT", + "GEMINI_IT_CLOUD_UCS_AQUAMUSE", + "GEMIT_BRIDGE_SUFFIX_FT", + "CLOUD_SECURITY_PRETRAINING", + "CLOUD_SECURITY_FINETUNING", + "CLOUD_SECURITY_RAG_CISA", + "GEMINI_GOOSE_PUBLIC", + "GEMINI_GOOSE_SILOED", + "GEMINI_V2_CMS_WIKIPEDIA_LANG_FILTERED_GCC_PII", + "GEMINI_V2_WIKIPEDIA_DIFFS_COMPLIANT", + "GEMINI_V2_ENGLISH_ARTICLES_TOP10B_211123_PII_FILTERED", + "GEMINI_V2_ENGLISH_NONARTICLES_TOP10B_211123_PII_FILTERED", + "GEMINI_V2_GEMINI_DOCJOINS_NONEN_TOP10B_111323_WITHOUT_CJKT_STOP_NONARTICLES_COMPLIANT", + "GEMINI_V2_GEMINI_DOCJOINS_NONEN_TOP10B_111323_WITHOUT_CJKT_STOP_ARTICLES_COMPLIANT", + "GEMINI_V2_ENGLISH_ARTICLES_TOP20B_211123_PII_FILTERED", + "GEMINI_V2_ENGLISH_NONARTICLES_TOP20B_211123_PII_FILTERED", + "GEMINI_V2_GEMINI_DOCJOINS_NONEN_TOP20B_111323_WITHOUT_CJKT_STOP_NONARTICLES_COMPLIANT", + "GEMINI_V2_GEMINI_DOCJOINS_NONEN_TOP20B_111323_WITHOUT_CJKT_STOP_ARTICLES_COMPLIANT", + "GEMINI_V2_ENGLISH_ARTICLES_TOP100B_211123_PII_FILTERED", + "GEMINI_V2_ENGLISH_NONARTICLES_TOP100B_211123_PII_FILTERED", + "GEMINI_V2_GEMINI_DOCJOINS_NONEN_TOP100B_111323_WITHOUT_CJKT_STOP_NONARTICLES_COMPLIANT", + "GEMINI_V2_GEMINI_DOCJOINS_NONEN_TOP100B_111323_WITHOUT_CJKT_STOP_ARTICLES_COMPLIANT", + "GEMINI_V2_ENGLISH_ARTICLES_TOP500B_211123_PII_FILTERED", + "GEMINI_V2_ENGLISH_NONARTICLES_TOP500B_211123_PII_FILTERED", + "GEMINI_V2_QUORA_COMPLIANT", + "GEMINI_V2_FORUMS_V2_COMPLIANT", + "GEMINI_V2_CMS_STACKOVERFLOW_MULTILINGUAL_V2_COMPLIANT", + "GEMINI_V2_SIMPLIFIED_HTML_V2_CORRECT_FORMAT_COMPLIANT", + "GEMINI_V2_GEMINI_DOCJOINS_TOXICITY_TAGGED_FIXED_TAGS_COMPLIANT", + "GEMINI_V2_CODEWEB_V1_COMPLIANT", + "GEMINI_V2_LEETCODE_GCC_PII", + "GEMINI_V2_CODE_CONTESTS_COMPLIANT", + "GEMINI_V2_CMS_GITHUB_MULTI_FILE_FOR_FIM_GEMBAGZ_FIXED_BYTES_LENGTHS", + "GEMINI_V2_GITHUB_EVALED_LANGUAGES_COMPLIANT", + "GEMINI_V2_GITHUB_NON_EVAL_HIGH_PRI_LANGUAGES_COMPLIANT", + "GEMINI_V2_GITHUB_LOW_PRI_LANGUAGES_AND_CONFIGS_COMPLIANT", + "GEMINI_V2_GITHUB_LONG_TAIL_AND_STRUCTURED_DATA_COMPLIANT", + "GEMINI_V2_GITHUB_PYTHON_NOTEBOOKS_COMPLIANT", + "GEMINI_V2_GITHUB_DIFFS_COMPLIANT", + "GEMINI_V2_GITHUB_TECHDOCS_COMPLIANT", + "GEMINI_V2_HIGH_QUALITY_CODE_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_SCIENCE_PDF_68M_HQ_DOCS_DEDUP_COMPLIANT_CLEAN_TEX", + "GEMINI_V2_ARXIV_2023_COMPLIANT", + "GEMINI_V2_FORMAL_COMPLIANT", + "GEMINI_V2_CMS_STACKEXCHANGE_COMPLIANT", + "GEMINI_V2_PUBMED_COMPLIANT", + "GEMINI_V2_WEB_MATH_V3_COMPLIANT", + "GEMINI_V2_SCIENCEWEB_V0_GCC_PII", + "GEMINI_V2_WEB_POLYMATH_V1_COMPLIANT", + "GEMINI_V2_MATH_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_BIOLOGY_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_PHYSICS_V2_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_CHEMISTRY_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_MACHINE_LEARNING_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_QA_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_ECONOMICS_V2_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_MEDICAL_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_CHESS_COMPLIANT", + "GEMINI_V2_YOUTUBE_SCIENCE_V4_FILTERED_COMPLIANT", + "GEMINI_V2_GOALDMINE_XL_GENERATED_PLUS_GT_NO_DM_MATH_COMPLIANT", + "GEMINI_V2_FIRSTTIMES_SCIENCE_PDF_DEDUP_HQ_LENGTH_FILTERED_COMPLIANT", + "GEMINI_V2_PODCASTS_COMPLIANT", + "GEMINI_V2_EN_NONSCIENCE_PDF_DEDUP_46M_DOCS_COMPLIANT", + "GEMINI_V2_NONPUB_COPYRIGHT_BOOKS_V3_70_CONF_082323_LONG_DEDUP_ENONLY_COMPLIANT", + "GEMINI_V2_STEM_COPYRIGHT_BOOKS_V3_111823_LONG_DEDUP_ENONLY_COMPLIANT", + "GEMINI_V2_STEM_BOOKS_318K_TEXT_COMPLIANT", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_M3W_WITH_IMAGE_TOKENS_INSERTED_INTERLEAVED_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_M3W_WITH_IMAGE_TOKENS_INSERTED_INTERLEAVED_COMPLIANT_PII_FILTERED_SOFT", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_WEBLI_EN_V4_350M_T2I_TEXT_TO_IMAGE_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_SHUTTERSTOCK_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_WEBLI_EN_V4_350M_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_WEBLI_OCR_I18N_680M_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_CLOUDAI_DOC_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_SCREENAI_FULL_HTML_75M_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_SCREENAI_V1_1_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_WEBLI_OCR_DOC_240M_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_SHUTTERSTOCK_VIDEO_VIDEO_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_M4W_INTERLEAVED_COMPLIANT_PII_FILTERED_SOFT", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_CULTURE_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_WEBLI_DETECTION_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_WEBLI_ALT_TEXT_NONEN_500M_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_SPATIAL_AWARE_PALI_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_CLOUDAI_TABLE2HTML_3D_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_TABLE2MD_V2_EN_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_TABLE2MD_V2_NON_EN_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_CLOUDAI_3D_DOC_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_CC3M_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_INFOGRAPHICS_LARGE_WEB_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_BIORXIV_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_PHOTOMATH_IM2SOL_PROBLEM_AND_SOLUTION_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_PLOT2TABLE_V2_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_TIKZ_DERENDERING_MERGED_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_CLOUDAI_TABLE2HTML_2D_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_WIKIPEDIA_EQUATIONS_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_PHOTOMATH_EQ2LATEX_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_ARXIV_EQUATIONS_V2_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_USM2B_MLPV5_YT_ASR_SUP_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_ASR_1P5M_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_ASR_4M_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_TTS_SUP_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_TTS_1P5M_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_TTS_4M_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_PODIOSET_INTERLEAVE_ENUS_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_PODIOSET_INTERLEAVE_I18N_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_INTERLEAVE_SCIENCE_ENUS_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_INTERLEAVE_SCIENCE_I18N_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_INTERLEAVE_1P5M_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_INTERLEAVE_HEAD_4M_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_CLM_TRANSLATE_DATAV3_WEB_UNWMT_INCR_MIX", + "GEMINI_V2_NTL_NTLV4A_MONOLINGUAL_DEDUP_N5", + "GEMINI_V2_NTL_STT_TRANSLATE_DEDUP_N5", + "GEMINI_V2_NTL_TRANSLIT_BILEX_TRANSLATE_DEDUP_N5", + "GEMINI_V2_NTL_SYN_BT_TRANSLATE_DEDUP_N5", + "GEMINI_V2_NTL_SYN_FT_FIXED_TRANSLATE_DEDUP_N5", + "GEMINI_V2_CANARIES_SHUFFLED_COMPLIANT", + "CLOUD_GEMIT_CLOUD_FACTUALITY_GROUNDING_MAGI", + "CLOUD_GEMIT_MT_DIALGUE_LMSYS", + "CLOUD_GEMIT_MTS_DIALOGUE_V3", + "CLOUD_GEMIT_COMMIT_MSG_GEN_V3", + "CLOUD_GEMIT_CODE_IF_V1", + "CLOUD_GEMIT_CODE_SELF_REPAIR", + "CLOUD_GEMIT_IDENTITY", + "CLOUD_GEMIT_SEARCH_AUGMENTED_RESPONSE_GENERATION", + "CLOUD_GEMIT_AMPS", + "CLOUD_GEMIT_AQUA", + "CLOUD_GEMIT_COMMON_SENSE_REASONING_SCHEMA", + "CLOUD_GEMIT_GSM8K_SCHEMA" + ], + "enumDescriptions": [ + "", + "Wikipedia article Tensorflow datasets used by Tarzan and maintained by TFDS team.", + "Webdocs that have been filtered from the docjoins by the Tarzan team for use in the Tarzan training set.", + "", + "", + "'Full view' books dataset maintained by Oceanographers team, meaning 'ok to view the book in full in all localities'. Largely the same as 'public domain', but with potentially subtle distinction.", + "Filtered private books used by ULM: http://google3/learning/multipod/pax/lm/params/ulm/tasks.py;l=123;rcl=494241309. which corresponds with /cns/mf-d/home/multipod-language-data/private_books/books_filtered_en_resharded@50000", + "Google news dataset referenced in: http://google3/learning/brain/research/conversation/meena/t5/pretrain_tasks.py;l=922;rcl=496534668", + "The docjoins data for ULM /cns/yo-d/home/multipod-language-data/docjoins/rs=6.3/20220728/100B_docstructure_split/examples_en.tfrecord_lattice_05_score_01_HFV13@3929", + "", + "Meena full conversations. http://google3/learning/brain/research/conversation/meena/t5/pretrain_mixtures.py;l=675;rcl=496583228", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Academic dataset of math text. http://google3/learning/brain/research/conversation/meena/seqio/mixtures/experimental/bard.py;rcl=500222380", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Datasets managed by the Goodall team: deepmind-goodall@google.com", + "", + "", + "", + "", + "", + "", + "", + "Datasets used by Codepoet", + "Datasets used by Vertex", + "", + "", + "Datasets used by Gemini Public data", + "", + "", + "", + "Public webdocs", + "", + "", + "", + "", + "", + "", + "", + "", + "Github", + "", + "", + "", + "", + "", + "Arxiv", + "Others", + "", + "", + "", + "", + "", + "", + "", + "", + "Gemini V1, order by precedence. Wikipedia", + "", + "Public webdocs", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Github Github dataset with license info. We prefer this to help cite proper licenses for code recitation.", + "", + "", + "", + "", + "", + "", + "ArXiv", + "Citable misc", + "", + "", + "Non-public books", + "", + "", + "Other", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Duet AI finetune datasets, order by precedence.", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Bard ARCADE finetune dataset", + "Mobile assistant finetune datasets.", + "", + "Genesis fine tuned datasets.", + "LABS AQA fine-tune datasets.", + "", + "", + "Gemini multimodal instruction tune(IT) and fine tune(FT) datasets datasets.", + "", + "", + "", + "", + "", + "", + "Gemini IT 1.2.7 datasets", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Gemit Bridge ULM FT dataset", + "Cloud Security fine tuned datasets.", + "", + "", + "Gemini Goose FT datasets.", + "", + "Gemini V2 datasets", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Cloud gemit pro FT datasets.", + "", + "", + "", + "", + "", + "", + "Cloud gemit ultra FT datasets.", + "", + "", + "", + "" + ], + "type": "string" + }, + "filepath": { + "type": "string" + }, + "geminiId": { + "type": "string" + }, + "gnewsArticleTitle": { + "type": "string" + }, + "goodallExampleId": { + "type": "string" + }, + "isOptOut": { + "description": "Whether the document is opted out.", + "type": "boolean" + }, + "isPrompt": { + "description": "When true, this attribution came from the user's prompt.", + "type": "boolean" + }, + "lamdaExampleId": { + "type": "string" + }, + "license": { + "type": "string" + }, + "meenaConversationId": { + "type": "string" + }, + "naturalLanguageCode": { + "description": "Natural (not programming) language of the document. Language code as defined by http://www.unicode.org/reports/tr35/#Identifiers and https://tools.ietf.org/html/bcp47. Currently applicable to full-view books. Use docinfo-util.h to set & read language fields. See go/iii.", + "type": "string" + }, + "noAttribution": { + "description": "True if this doc has no attribution information available. We use an explicit field for this instead of just implicitly leaving all the DocAttribution fields blank to distinguish a case where a bug/oversight has left the attribution information empty vs when we really have no attribution information available.", + "type": "boolean" + }, + "podcastUtteranceId": { + "type": "string" + }, + "publicationDate": { + "$ref": "GoogleTypeDate" + }, + "qualityScoreExperimentOnly": { + "description": "This field is for opt-out experiment only, MUST never be used during actual production/serving. ", + "format": "double", + "type": "number" + }, + "repo": { + "description": "Github repository", + "type": "string" + }, + "url": { + "description": "URL of a webdoc", + "type": "string" + }, + "volumeId": { + "type": "string" + }, + "wikipediaArticleTitle": { + "description": "Wikipedia article title. The Wikipedia TFDS dataset includes article titles but not URLs. While a URL is to the best of our knowledge a deterministic function of the title, we store the original title to reflect the information in the original dataset.", + "type": "string" + }, + "youtubeVideoId": { + "type": "string" + } + }, + "type": "object" + }, + "LearningGenaiRecitationRecitationResult": { + "description": "The recitation result for one input", + "id": "LearningGenaiRecitationRecitationResult", + "properties": { + "dynamicSegmentResults": { + "items": { + "$ref": "LearningGenaiRecitationSegmentResult" + }, + "type": "array" + }, + "recitationAction": { + "description": "The recitation action for one given input. When its segments contain different actions, the overall action will be returned in the precedence of BLOCK > CITE > NO_ACTION. When the given input is not found in any source, the recitation action will be NO_ACTION.", + "enum": [ + "ACTION_UNSPECIFIED", + "CITE", + "BLOCK", + "NO_ACTION", + "EXEMPT_FOUND_IN_PROMPT" + ], + "enumDescriptions": [ + "", + "indicate that attribution must be shown for a Segment", + "indicate that a Segment should be blocked from being used", + "for tagging high-frequency code snippets", + "The recitation was found in prompt and is exempted from overall results" + ], + "type": "string" + }, + "trainingSegmentResults": { + "items": { + "$ref": "LearningGenaiRecitationSegmentResult" + }, + "type": "array" + } + }, + "type": "object" + }, + "LearningGenaiRecitationSegmentResult": { + "description": "The recitation result for each segment in a given input.", + "id": "LearningGenaiRecitationSegmentResult", + "properties": { + "attributionDataset": { + "description": "The dataset the segment came from.", + "enum": [ + "DATASET_UNSPECIFIED", + "WIKIPEDIA", + "WEBDOCS", + "WEBDOCS_FINETUNE", + "GITHUB_MIRROR", + "BOOKS_FULL_VIEW", + "BOOKS_PRIVATE", + "GNEWS", + "ULM_DOCJOINS", + "ULM_DOCJOINS_DEDUPED", + "MEENA_FC", + "PODCAST", + "AQUA", + "WEB_ASR", + "BARD_GOLDEN", + "COMMON_SENSE_REASONING", + "MATH", + "MATH_REASONING", + "CLEAN_ARXIV", + "LAMDA_FACTUALITY_E2E_QUERY_GENERATION", + "LAMDA_FACTUALITY_E2E_RESPONSE_GENERATION", + "MASSIVE_FORUM_THREAD_SCORED_BARD", + "MASSIVE_FORUM_THREAD_SCORED_LONG_200", + "MASSIVE_FORUM_THREAD_SCORED_LONG_500", + "DOCUMENT_CHUNKS", + "MEENA_RESEARCH_PHASE_GOLDEN_MARKDOWN", + "MEENA_RESEARCH_PHASE_GOOGLERS", + "MEENA_RESPONSE_SAFETY_HUMAN_GEN", + "MEENA_RESPONSE_SAFETY_SCHEMA_NO_BROADCAST", + "MEENA_RESPONSE_SAFETY_V3_HUMAN_GEN2", + "MEENA_RESPONSE_SAFETY_V3_SCHEMA_NO_BROADCAST", + "LAMDA_FACTUALITY_TRIGGER", + "LAMDA_SAFETY_V2_SCHEMA_NO_BROADCAST", + "LAMDA_SSI_DISCRIMINATIVE", + "ASSISTANT_PERSONALITY_SAFETY", + "PODCAST_FINETUNE_DIALOG", + "WORLD_QUERY_GENERATOR", + "C4_JOINED_DOCJOINS", + "HOL4_THEORIES", + "HOL_LIGHT_THEORIES", + "HOLSTEPS", + "ISABELLE_STEP", + "ISABELLE_THEORIES", + "LEAN_MATHLIB_THEORIES", + "LEAN_STEP", + "MIZAR_THEORIES", + "COQ_STEP", + "COQ_THEORIES", + "AMPS_KHAN", + "AMPS_MATHEMATICA", + "CODEY_CODE", + "CODE_QA_SE", + "CODE_QA_SO", + "CODE_QA_FT_FORMAT", + "CODE_QA_FT_KNOWLEDGE", + "CODE_QA_GITHUB_FILTERED_CODE", + "BARD_PERSONALITY_GOLDEN", + "ULM_DOCJOINS_WITH_URLS_EN", + "ULM_DOCJOINS_WITH_URLS_I18N", + "GOODALL_MTV5_GITHUB", + "GOODALL_MTV5_BOOKS", + "GOODALL_MTV5_C4", + "GOODALL_MTV5_WIKIPEDIA", + "GOODALL_MW_TOP_100B", + "GOODALL_MW_STACK_EXCHANGE", + "GOODALL_MW_TOP_0_10B", + "GOODALL_MW_TOP_10B_20B", + "CODEY_NOTEBOOK_LM_PRETRAINING", + "VERTEX_SAFE_FLAN", + "GITHUB_MIRROR_V1_0_1", + "GITHUB_MIRROR_V2_1_0", + "CMS_WIKIPEDIA_LANG_FILTERED", + "CMS_STACKOVERFLOW_MULTILINGUAL", + "CMS_STACKEXCHANGE", + "PUBMED", + "GEMINI_DOCJOINS_EN_TOP10B_GCC", + "GEMINI_DOCJOINS_EN_TOP10B_TOP20B_GCC", + "GEMINI_DOCJOINS_EN_TOP20B_TOP100B_GCC", + "GEMINI_DOCJOINS_EN_TOP100B_ALL_INDEXED_GCC", + "GEMINI_DOCJOINS_I18N_TOP10B_GCC", + "GEMINI_DOCJOINS_I18N_TOP10B_TOP20B_GCC", + "GEMINI_DOCJOINS_I18N_TOP20B_TOP100B_GCC", + "SIMPLIFIED_HTML_V1_GCC", + "GEMINI_DOCJOINS_TOXICITY_TAGGED_GCC", + "CMS_GITHUB_V4", + "GITHUB_HTML_V4", + "GITHUB_OTHER_V4", + "GITHUB_LONG_TAIL_V4", + "CMS_GITHUB_MULTIFILE_V4", + "GITHUB_DIFFS_WITH_COMMIT_MESSAGE", + "ULM_ARXIV", + "NONPUB_COPYRIGHT_BOOKS_V2_70_CONF_040623_LONG_DEDUP_ENONLY", + "NONPUB_COPYRIGHT_BOOKS_V2_70_CONF_040623_LONG_DEDUP_NONENONLY", + "QUORA", + "PODCASTS_ROBOTSTXT", + "COMBINED_REDDIT", + "CANARIES_SHUFFLED", + "CLM_TRANSLATE_DATAV2_ALLTIERS_GCC_MIX", + "TECHDOCS_DATA_SOURCE", + "SCIENCE_PDF_70M_DOCS_FILTERED", + "GEMINI_V1_CMS_WIKIPEDIA_LANG_FILTERED", + "GEMINI_V1_WIKIPEDIA_DIFFS", + "GEMINI_V1_DOCJOINS_EN_TOP10B_GCC_NODEDUP_050523", + "GEMINI_V1_DOCJOINS_EN_TOP10B_TOP20B_GCC_NODEDUP_050523", + "GEMINI_V1_DOCJOINS_EN_TOP20B_TOP100B_GCC_NODEDUP_050523", + "GEMINI_V1_DOCJOINS_EN_TOP100B_ALL_INDEXED_GCC_NODEDUP_050523", + "GEMINI_V1_DOCJOINS_I18N_TOP10B_GCC_050523", + "GEMINI_V1_DOCJOINS_I18N_TOP10B_TOP20B_GCC_050523", + "GEMINI_V1_DOCJOINS_I18N_TOP20B_TOP100B_GCC_050523", + "GEMINI_V1_SIMPLIFIED_HTML_V2_GCC", + "GEMINI_V1_CMS_STACKOVERFLOW_MULTILINGUAL_V2", + "GEMINI_V1_CMS_STACKEXCHANGE_DECONT", + "GEMINI_V1_QUORA", + "GEMINI_V1_COMBINED_REDDIT", + "GEMINI_V1_DOCJOIN_100B_EN_TOXICITY_TAGGED_GCC_FIXED_TAGS", + "GEMINI_V1_PUBMED", + "GEMINI_V1_WEB_MATH_V2", + "GEMINI_V1_CMS_GITHUB_V7", + "GEMINI_V1_CMS_GITHUB_DECONTAMINATED_V_7", + "GEMINI_V1_GITHUB_DIFF_WITH_COMMIT_MESSAGE_V2", + "GEMINI_V1_GITHUB_HTML_CSS_XML_V4", + "GEMINI_V1_GITHUB_OTHER_V4", + "GEMINI_V1_GITHUB_LONG_TAIL_V4", + "GEMINI_V1_GITHUB_JUPTYER_NOTEBOOKS_SSTABLE", + "GEMINI_V1_ULM_ARXIV_SSTABLE", + "GEMINI_V1_PODCASTS_ROBOTSTXT", + "GEMINI_V1_SCIENCE_PDF_68M_HQ_DOCS_GCC", + "GEMINI_V1_GITHUB_TECHDOCS_V2", + "GEMINI_V1_NONPUB_COPYRIGHT_BOOKS_V2_70_CONF_LONG_DEDUP_EN", + "GEMINI_V1_NONPUB_COPYRIGHT_BOOKS_V2_70_CONF_LONG_DEDUP_NONEN", + "GEMINI_V1_STEM_BOOKS_650K_TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_M3W_V2_FILTERED", + "GEMINI_V1_VQCOCA_1B_MULTIRES_WEBLI_EN_V4_350M_PREFIXED_FILTERED_IMAGE2TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_SCREENAI_PREFIXED_FILTERED_IMAGE2TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_CULTURE_PREFIXED_FILTERED_IMAGE2TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_CC3M_EN_PREFIXED_IMAGE2TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_CC3M_I18N_PREFIXED_IMAGE2TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_OCR_EN_PREFIXED_FILTERED_IMAGE2TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_OCR_NON_EN_PREFIXED_FILTERED_IMAGE2TEXT", + "GEMINI_V1_VQCOCA_1B_MULTIRES_VTP_4F_VIDEO2TEXT_PREFIX", + "GEMINI_V1_FORMAL_MATH_WITHOUT_HOLSTEPS_AND_MIZAR", + "GEMINI_V1_TRANSLATE_DATAV2_ALLTIERS_GCC_MIX", + "GEMINI_V1_CANARIES_SHUFFLED_DOCJOIN_EN_NONEN_CODE_ARXIV_TRANSLATE", + "DUET_CLOUD_SECURITY_DOCS", + "DUET_GITHUB_CODE_SNIPPETS", + "DUET_GITHUB_FILES", + "DUET_GOBYEXAMPLE", + "DUET_GOLANG_DOCS", + "DUET_CLOUD_DOCS_TROUBLESHOOTING_TABLES", + "DUET_DEVSITE_DOCS", + "DUET_CLOUD_BLOG_POSTS", + "DUET_CLOUD_PODCAST_EPISODES", + "DUET_YOUTUBE_VIDEOS", + "DUET_CLOUD_SKILLS_BOOST", + "DUET_CLOUD_DOCS", + "DUET_CLOUD_GITHUB_CODE_SNIPPETS_GENERATED", + "DUET_CLOUD_GITHUB_CODE_SNIPPETS_HANDWRITTEN", + "DUET_GOOGLESQL_GENERATION", + "DUET_CLOUD_IX_PROMPTS", + "DUET_RAD", + "BARD_ARCADE_GITHUB", + "MOBILE_ASSISTANT_MAGI_FILTERED_0825_373K", + "MOBILE_ASSISTANT_PALM24B_FILTERED_400K", + "GENESIS_NEWS_INSIGHTS", + "LABS_AQA_DSCOUT", + "LABS_AQA_TAILWIND", + "LABS_AQA_DELEWARE", + "GEMINI_MULTIMODAL_FT_URL", + "GEMINI_MULTIMODAL_FT_YT", + "GEMINI_MULTIMODAL_FT_SHUTTERSTOCK", + "GEMINI_MULTIMODAL_FT_NONE", + "GEMINI_MULTIMODAL_FT_OTHER", + "GEMINI_MULTIMODAL_FT_INK", + "GEMINI_MULTIMODAL_IT", + "GEMINI_IT_SHUTTERSTOCK", + "GEMINI_IT_M3W", + "GEMINI_IT_HEDGING", + "GEMINI_IT_DSCOUT_FACTUALITY", + "GEMINI_IT_AQUAMUSE", + "GEMINI_IT_SHOTGUN", + "GEMINI_IT_ACI_BENCH", + "GEMINI_IT_SPIDER_FILTERED", + "GEMINI_IT_TAB_SUM_BQ", + "GEMINI_IT_QA_WITH_URL", + "GEMINI_IT_CODE_INSTRUCT", + "GEMINI_IT_MED_PALM", + "GEMINI_IT_TASK_ORIENTED_DIALOG", + "GEMINI_IT_NIMBUS_GROUNDING_TO_PROMPT", + "GEMINI_IT_EITL_GEN", + "GEMINI_IT_HITL_GEN", + "GEMINI_IT_MECH", + "GEMINI_IT_TABLE_GEN", + "GEMINI_IT_NIMBUS_DECIBEL", + "GEMINI_IT_CLOUD_CODE_IF", + "GEMINI_IT_CLOUD_EUR_LEX_JSON", + "GEMINI_IT_CLOUD_OASST", + "GEMINI_IT_CLOUD_SELF_INSTRUCT", + "GEMINI_IT_CLOUD_UCS_AQUAMUSE", + "GEMIT_BRIDGE_SUFFIX_FT", + "CLOUD_SECURITY_PRETRAINING", + "CLOUD_SECURITY_FINETUNING", + "CLOUD_SECURITY_RAG_CISA", + "GEMINI_GOOSE_PUBLIC", + "GEMINI_GOOSE_SILOED", + "GEMINI_V2_CMS_WIKIPEDIA_LANG_FILTERED_GCC_PII", + "GEMINI_V2_WIKIPEDIA_DIFFS_COMPLIANT", + "GEMINI_V2_ENGLISH_ARTICLES_TOP10B_211123_PII_FILTERED", + "GEMINI_V2_ENGLISH_NONARTICLES_TOP10B_211123_PII_FILTERED", + "GEMINI_V2_GEMINI_DOCJOINS_NONEN_TOP10B_111323_WITHOUT_CJKT_STOP_NONARTICLES_COMPLIANT", + "GEMINI_V2_GEMINI_DOCJOINS_NONEN_TOP10B_111323_WITHOUT_CJKT_STOP_ARTICLES_COMPLIANT", + "GEMINI_V2_ENGLISH_ARTICLES_TOP20B_211123_PII_FILTERED", + "GEMINI_V2_ENGLISH_NONARTICLES_TOP20B_211123_PII_FILTERED", + "GEMINI_V2_GEMINI_DOCJOINS_NONEN_TOP20B_111323_WITHOUT_CJKT_STOP_NONARTICLES_COMPLIANT", + "GEMINI_V2_GEMINI_DOCJOINS_NONEN_TOP20B_111323_WITHOUT_CJKT_STOP_ARTICLES_COMPLIANT", + "GEMINI_V2_ENGLISH_ARTICLES_TOP100B_211123_PII_FILTERED", + "GEMINI_V2_ENGLISH_NONARTICLES_TOP100B_211123_PII_FILTERED", + "GEMINI_V2_GEMINI_DOCJOINS_NONEN_TOP100B_111323_WITHOUT_CJKT_STOP_NONARTICLES_COMPLIANT", + "GEMINI_V2_GEMINI_DOCJOINS_NONEN_TOP100B_111323_WITHOUT_CJKT_STOP_ARTICLES_COMPLIANT", + "GEMINI_V2_ENGLISH_ARTICLES_TOP500B_211123_PII_FILTERED", + "GEMINI_V2_ENGLISH_NONARTICLES_TOP500B_211123_PII_FILTERED", + "GEMINI_V2_QUORA_COMPLIANT", + "GEMINI_V2_FORUMS_V2_COMPLIANT", + "GEMINI_V2_CMS_STACKOVERFLOW_MULTILINGUAL_V2_COMPLIANT", + "GEMINI_V2_SIMPLIFIED_HTML_V2_CORRECT_FORMAT_COMPLIANT", + "GEMINI_V2_GEMINI_DOCJOINS_TOXICITY_TAGGED_FIXED_TAGS_COMPLIANT", + "GEMINI_V2_CODEWEB_V1_COMPLIANT", + "GEMINI_V2_LEETCODE_GCC_PII", + "GEMINI_V2_CODE_CONTESTS_COMPLIANT", + "GEMINI_V2_CMS_GITHUB_MULTI_FILE_FOR_FIM_GEMBAGZ_FIXED_BYTES_LENGTHS", + "GEMINI_V2_GITHUB_EVALED_LANGUAGES_COMPLIANT", + "GEMINI_V2_GITHUB_NON_EVAL_HIGH_PRI_LANGUAGES_COMPLIANT", + "GEMINI_V2_GITHUB_LOW_PRI_LANGUAGES_AND_CONFIGS_COMPLIANT", + "GEMINI_V2_GITHUB_LONG_TAIL_AND_STRUCTURED_DATA_COMPLIANT", + "GEMINI_V2_GITHUB_PYTHON_NOTEBOOKS_COMPLIANT", + "GEMINI_V2_GITHUB_DIFFS_COMPLIANT", + "GEMINI_V2_GITHUB_TECHDOCS_COMPLIANT", + "GEMINI_V2_HIGH_QUALITY_CODE_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_SCIENCE_PDF_68M_HQ_DOCS_DEDUP_COMPLIANT_CLEAN_TEX", + "GEMINI_V2_ARXIV_2023_COMPLIANT", + "GEMINI_V2_FORMAL_COMPLIANT", + "GEMINI_V2_CMS_STACKEXCHANGE_COMPLIANT", + "GEMINI_V2_PUBMED_COMPLIANT", + "GEMINI_V2_WEB_MATH_V3_COMPLIANT", + "GEMINI_V2_SCIENCEWEB_V0_GCC_PII", + "GEMINI_V2_WEB_POLYMATH_V1_COMPLIANT", + "GEMINI_V2_MATH_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_BIOLOGY_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_PHYSICS_V2_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_CHEMISTRY_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_MACHINE_LEARNING_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_QA_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_ECONOMICS_V2_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_MEDICAL_TARGETED_DATA_COMPLIANT2", + "GEMINI_V2_CHESS_COMPLIANT", + "GEMINI_V2_YOUTUBE_SCIENCE_V4_FILTERED_COMPLIANT", + "GEMINI_V2_GOALDMINE_XL_GENERATED_PLUS_GT_NO_DM_MATH_COMPLIANT", + "GEMINI_V2_FIRSTTIMES_SCIENCE_PDF_DEDUP_HQ_LENGTH_FILTERED_COMPLIANT", + "GEMINI_V2_PODCASTS_COMPLIANT", + "GEMINI_V2_EN_NONSCIENCE_PDF_DEDUP_46M_DOCS_COMPLIANT", + "GEMINI_V2_NONPUB_COPYRIGHT_BOOKS_V3_70_CONF_082323_LONG_DEDUP_ENONLY_COMPLIANT", + "GEMINI_V2_STEM_COPYRIGHT_BOOKS_V3_111823_LONG_DEDUP_ENONLY_COMPLIANT", + "GEMINI_V2_STEM_BOOKS_318K_TEXT_COMPLIANT", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_M3W_WITH_IMAGE_TOKENS_INSERTED_INTERLEAVED_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_M3W_WITH_IMAGE_TOKENS_INSERTED_INTERLEAVED_COMPLIANT_PII_FILTERED_SOFT", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_WEBLI_EN_V4_350M_T2I_TEXT_TO_IMAGE_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_SHUTTERSTOCK_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_WEBLI_EN_V4_350M_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_WEBLI_OCR_I18N_680M_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_CLOUDAI_DOC_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_SCREENAI_FULL_HTML_75M_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_SCREENAI_V1_1_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_WEBLI_OCR_DOC_240M_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_SHUTTERSTOCK_VIDEO_VIDEO_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_M4W_INTERLEAVED_COMPLIANT_PII_FILTERED_SOFT", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_CULTURE_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_WEBLI_DETECTION_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_WEBLI_ALT_TEXT_NONEN_500M_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_SPATIAL_AWARE_PALI_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_CLOUDAI_TABLE2HTML_3D_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_TABLE2MD_V2_EN_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_TABLE2MD_V2_NON_EN_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_CLOUDAI_3D_DOC_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_CC3M_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_INFOGRAPHICS_LARGE_WEB_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_BIORXIV_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_PHOTOMATH_IM2SOL_PROBLEM_AND_SOLUTION_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_PLOT2TABLE_V2_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_TIKZ_DERENDERING_MERGED_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_CLOUDAI_TABLE2HTML_2D_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_WIKIPEDIA_EQUATIONS_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_PHOTOMATH_EQ2LATEX_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_CACHED_VQCOCA_MMFT_17T_ARXIV_EQUATIONS_V2_IMAGE_TO_TEXT_COMPLIANT_PII_FILTERED", + "GEMINI_V2_USM2B_MLPV5_YT_ASR_SUP_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_ASR_1P5M_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_ASR_4M_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_TTS_SUP_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_TTS_1P5M_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_TTS_4M_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_PODIOSET_INTERLEAVE_ENUS_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_PODIOSET_INTERLEAVE_I18N_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_INTERLEAVE_SCIENCE_ENUS_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_INTERLEAVE_SCIENCE_I18N_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_INTERLEAVE_1P5M_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_USM2B_MLPV5_YT_INTERLEAVE_HEAD_4M_GEMBAGZ_V2_COMPLIANT", + "GEMINI_V2_CLM_TRANSLATE_DATAV3_WEB_UNWMT_INCR_MIX", + "GEMINI_V2_NTL_NTLV4A_MONOLINGUAL_DEDUP_N5", + "GEMINI_V2_NTL_STT_TRANSLATE_DEDUP_N5", + "GEMINI_V2_NTL_TRANSLIT_BILEX_TRANSLATE_DEDUP_N5", + "GEMINI_V2_NTL_SYN_BT_TRANSLATE_DEDUP_N5", + "GEMINI_V2_NTL_SYN_FT_FIXED_TRANSLATE_DEDUP_N5", + "GEMINI_V2_CANARIES_SHUFFLED_COMPLIANT", + "CLOUD_GEMIT_CLOUD_FACTUALITY_GROUNDING_MAGI", + "CLOUD_GEMIT_MT_DIALGUE_LMSYS", + "CLOUD_GEMIT_MTS_DIALOGUE_V3", + "CLOUD_GEMIT_COMMIT_MSG_GEN_V3", + "CLOUD_GEMIT_CODE_IF_V1", + "CLOUD_GEMIT_CODE_SELF_REPAIR", + "CLOUD_GEMIT_IDENTITY", + "CLOUD_GEMIT_SEARCH_AUGMENTED_RESPONSE_GENERATION", + "CLOUD_GEMIT_AMPS", + "CLOUD_GEMIT_AQUA", + "CLOUD_GEMIT_COMMON_SENSE_REASONING_SCHEMA", + "CLOUD_GEMIT_GSM8K_SCHEMA" + ], + "enumDescriptions": [ + "", + "Wikipedia article Tensorflow datasets used by Tarzan and maintained by TFDS team.", + "Webdocs that have been filtered from the docjoins by the Tarzan team for use in the Tarzan training set.", + "", + "", + "'Full view' books dataset maintained by Oceanographers team, meaning 'ok to view the book in full in all localities'. Largely the same as 'public domain', but with potentially subtle distinction.", + "Filtered private books used by ULM: http://google3/learning/multipod/pax/lm/params/ulm/tasks.py;l=123;rcl=494241309. which corresponds with /cns/mf-d/home/multipod-language-data/private_books/books_filtered_en_resharded@50000", + "Google news dataset referenced in: http://google3/learning/brain/research/conversation/meena/t5/pretrain_tasks.py;l=922;rcl=496534668", + "The docjoins data for ULM /cns/yo-d/home/multipod-language-data/docjoins/rs=6.3/20220728/100B_docstructure_split/examples_en.tfrecord_lattice_05_score_01_HFV13@3929", + "", + "Meena full conversations. http://google3/learning/brain/research/conversation/meena/t5/pretrain_mixtures.py;l=675;rcl=496583228", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Academic dataset of math text. http://google3/learning/brain/research/conversation/meena/seqio/mixtures/experimental/bard.py;rcl=500222380", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Datasets managed by the Goodall team: deepmind-goodall@google.com", + "", + "", + "", + "", + "", + "", + "", + "Datasets used by Codepoet", + "Datasets used by Vertex", + "", + "", + "Datasets used by Gemini Public data", + "", + "", + "", + "Public webdocs", + "", + "", + "", + "", + "", + "", + "", + "", + "Github", + "", + "", + "", + "", + "", + "Arxiv", + "Others", + "", + "", + "", + "", + "", + "", + "", + "", + "Gemini V1, order by precedence. Wikipedia", + "", + "Public webdocs", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Github Github dataset with license info. We prefer this to help cite proper licenses for code recitation.", + "", + "", + "", + "", + "", + "", + "ArXiv", + "Citable misc", + "", + "", + "Non-public books", + "", + "", + "Other", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Duet AI finetune datasets, order by precedence.", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Bard ARCADE finetune dataset", + "Mobile assistant finetune datasets.", + "", + "Genesis fine tuned datasets.", + "LABS AQA fine-tune datasets.", + "", + "", + "Gemini multimodal instruction tune(IT) and fine tune(FT) datasets datasets.", + "", + "", + "", + "", + "", + "", + "Gemini IT 1.2.7 datasets", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Gemit Bridge ULM FT dataset", + "Cloud Security fine tuned datasets.", + "", + "", + "Gemini Goose FT datasets.", + "", + "Gemini V2 datasets", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Cloud gemit pro FT datasets.", + "", + "", + "", + "", + "", + "", + "Cloud gemit ultra FT datasets.", + "", + "", + "", + "" + ], + "type": "string" + }, + "displayAttributionMessage": { + "description": "human-friendly string that contains information from doc_attribution which could be shown by clients", + "type": "string" + }, + "docAttribution": { + "$ref": "LearningGenaiRecitationDocAttribution", + "description": "populated when recitation_action == CITE" + }, + "docOccurrences": { + "description": "number of documents that contained this segment", + "format": "int32", + "type": "integer" + }, + "endIndex": { + "format": "int32", + "type": "integer" + }, + "rawText": { + "description": "The raw text in the given input that is corresponding to the segment. It will be available only when 'return_segment_raw_text' is enabled in the request options.", + "type": "string" + }, + "segmentRecitationAction": { + "enum": [ + "ACTION_UNSPECIFIED", + "CITE", + "BLOCK", + "NO_ACTION", + "EXEMPT_FOUND_IN_PROMPT" + ], + "enumDescriptions": [ + "", + "indicate that attribution must be shown for a Segment", + "indicate that a Segment should be blocked from being used", + "for tagging high-frequency code snippets", + "The recitation was found in prompt and is exempted from overall results" + ], + "type": "string" + }, + "startIndex": { + "description": "The segment boundary start (inclusive) and end index (exclusive) in the given text. In the streaming RPC, the indexes always start from the beginning of the first text in the entire stream. The indexes are measured in UTF-16 code units.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "LearningGenaiRootCalculationType": { + "description": "The type used for final weights calculation.", + "id": "LearningGenaiRootCalculationType", + "properties": { + "scoreType": { + "enum": [ + "TYPE_UNKNOWN", + "TYPE_SAFE", + "TYPE_POLICY", + "TYPE_GENERATION" + ], + "enumDescriptions": [ + "Unknown scorer type.", + "Safety scorer.", + "Policy scorer.", + "Generation scorer." + ], + "type": "string" + }, + "weights": { + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "LearningGenaiRootClassifierOutput": { + "id": "LearningGenaiRootClassifierOutput", + "properties": { + "ruleOutput": { + "$ref": "LearningGenaiRootRuleOutput", + "deprecated": true, + "description": "If set, this is the output of the first matching rule." + }, + "ruleOutputs": { + "description": "outputs of all matching rule.", + "items": { + "$ref": "LearningGenaiRootRuleOutput" + }, + "type": "array" + }, + "state": { + "$ref": "LearningGenaiRootClassifierState", + "description": "The results of data_providers and metrics." + } + }, + "type": "object" + }, + "LearningGenaiRootClassifierOutputSummary": { + "id": "LearningGenaiRootClassifierOutputSummary", + "properties": { + "metrics": { + "items": { + "$ref": "LearningGenaiRootMetricOutput" + }, + "type": "array" + }, + "ruleOutput": { + "$ref": "LearningGenaiRootRuleOutput", + "deprecated": true, + "description": "Output of the first matching rule." + }, + "ruleOutputs": { + "description": "outputs of all matching rule.", + "items": { + "$ref": "LearningGenaiRootRuleOutput" + }, + "type": "array" + } + }, + "type": "object" + }, + "LearningGenaiRootClassifierState": { + "description": "DataProviderOutput and MetricOutput can be saved between calls to the Classifier framework. For instance, you can run the query classifier, get outputs from those metrics, then use them in a result classifier as well. Example rule based on this idea: and_rules { rule { metric_name: 'query_safesearch_v2' ... } rule { metric_name: 'response_safesearch_v2' ... } }", + "id": "LearningGenaiRootClassifierState", + "properties": { + "dataProviderOutput": { + "items": { + "$ref": "LearningGenaiRootDataProviderOutput" + }, + "type": "array" + }, + "metricOutput": { + "items": { + "$ref": "LearningGenaiRootMetricOutput" + }, + "type": "array" + } + }, + "type": "object" + }, + "LearningGenaiRootCodeyChatMetadata": { + "description": "Stores all metadata relating to AIDA DoConversation.", + "id": "LearningGenaiRootCodeyChatMetadata", + "properties": { + "codeLanguage": { + "description": "Indicates the programming language of the code if the message is a code chunk.", + "enum": [ + "UNSPECIFIED", + "ALL", + "TEXT", + "CPP", + "PYTHON", + "KOTLIN", + "JAVA", + "JAVASCRIPT", + "GO", + "R", + "JUPYTER_NOTEBOOK", + "TYPESCRIPT", + "HTML", + "SQL", + "BASH", + "C", + "DART", + "GRADLE", + "JAVADOC", + "JSON", + "MAKEFILE", + "MARKDOWN", + "PROTO", + "XML", + "YAML" + ], + "enumDescriptions": [ + "Unspecified Language.", + "All languages.", + "Not code.", + "The most common, well-supported languages. C++ code.", + "Python code.", + "Kotlin code.", + "Java code.", + "JavaScript code.", + "Go code.", + "R code.", + "Jupyter notebook.", + "TypeScript code.", + "HTML code.", + "SQL code.", + "Other languages in alphabetical order. BASH code.", + "C code.", + "Dart code.", + "Gradle code.", + "API documentation.", + "JSON code.", + "Makefile code.", + "Markdown code.", + "Protocol buffer.", + "XML code.", + "YAML code." + ], + "type": "string" + } + }, + "type": "object" + }, + "LearningGenaiRootCodeyCheckpoint": { + "description": "Describes a sample at a checkpoint for post-processing.", + "id": "LearningGenaiRootCodeyCheckpoint", + "properties": { + "codeyTruncatorMetadata": { + "$ref": "LearningGenaiRootCodeyTruncatorMetadata", + "description": "Metadata that describes what was truncated at this checkpoint." + }, + "currentSample": { + "description": "Current state of the sample after truncator.", + "type": "string" + }, + "postInferenceStep": { + "description": "Postprocessor run that yielded this checkpoint.", + "enum": [ + "STEP_POST_PROCESSING_STEP_UNSPECIFIED", + "STEP_ORIGINAL_MODEL_OUTPUT", + "STEP_MODEL_OUTPUT_DEDUPLICATION", + "STEP_STOP_SEQUENCE_TRUNCATION", + "STEP_HEURISTIC_TRUNCATION", + "STEP_WALD_TRUNCATION", + "STEP_WHITESPACE_TRUNCATION", + "STEP_FINAL_DEDUPLICATION", + "STEP_TOXICITY_CHECK", + "STEP_RECITATION_CHECK", + "STEP_RETURNED", + "STEP_WALKBACK_CORRECTION", + "STEP_SCORE_THRESHOLDING", + "STEP_MODEL_CONFIG_STOP_SEQUENCE_TRUNCATION", + "STEP_CUSTOM_STOP_SEQUENCE_TRUNCATION", + "STEP_EXPECTED_SAMPLE_SIZE" + ], + "enumDeprecated": [ + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "", + "Original model outputs as-is.", + "Original model outputs after deduplication.", + "StopSequencePostProcessor.", + "Heuristic SuffixTruncator step.", + "Go service post-processor.", + "Truncate trailing whitespace and filter whitespace-only completions.", + "Deduplicate after all truncations.", + "Toxicity returns true.", + "Recitation causes BLOCK.", + "Return the response to the API.", + "Correcting walkback constraint (samples are dropped if they don't match the prefix constraint).", + "Thresholding samples based on a minimum score.", + "StopSequencePostProcessor.", + "StopSequencePostProcessor.", + "Drop extra number of samples that exceeds expected_samples." + ], "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1TimestampSplit": { - "description": "Assigns input data to training, validation, and test sets based on a provided timestamps. The youngest data pieces are assigned to training set, next to validation set, and the oldest to the test set. Supported only for tabular Datasets.", - "id": "GoogleCloudAiplatformV1TimestampSplit", + "LearningGenaiRootCodeyCompletionMetadata": { + "description": "Stores all metadata relating to Completion.", + "id": "LearningGenaiRootCodeyCompletionMetadata", "properties": { - "key": { - "description": "Required. The key is a name of one of the Dataset's data columns. The values of the key (the values in the column) must be in RFC 3339 `date-time` format, where `time-offset` = `\"Z\"` (e.g. 1985-04-12T23:20:50.52Z). If for a piece of data the key is not present or has an invalid value, that piece is ignored by the pipeline.", - "type": "string" - }, - "testFraction": { - "description": "The fraction of the input data that is to be used to evaluate the Model.", - "format": "double", - "type": "number" - }, - "trainingFraction": { - "description": "The fraction of the input data that is to be used to train the Model.", - "format": "double", - "type": "number" - }, - "validationFraction": { - "description": "The fraction of the input data that is to be used to validate the Model.", - "format": "double", - "type": "number" + "checkpoints": { + "items": { + "$ref": "LearningGenaiRootCodeyCheckpoint" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1TokensInfo": { - "description": "Tokens info with a list of tokens and the corresponding list of token ids.", - "id": "GoogleCloudAiplatformV1TokensInfo", + "LearningGenaiRootCodeyOutput": { + "description": "Top-level wrapper used to store all things codey-related.", + "id": "LearningGenaiRootCodeyOutput", "properties": { - "tokenIds": { - "description": "A list of token ids from the input.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" + "codeyChatMetadata": { + "$ref": "LearningGenaiRootCodeyChatMetadata" }, - "tokens": { - "description": "A list of tokens from the input.", - "items": { - "format": "byte", - "type": "string" - }, - "type": "array" + "codeyCompletionMetadata": { + "$ref": "LearningGenaiRootCodeyCompletionMetadata" } }, "type": "object" }, - "GoogleCloudAiplatformV1TrainingConfig": { - "description": "CMLE training config. For every active learning labeling iteration, system will train a machine learning model on CMLE. The trained model will be used by data sampling algorithm to select DataItems.", - "id": "GoogleCloudAiplatformV1TrainingConfig", + "LearningGenaiRootCodeyTruncatorMetadata": { + "description": "Metadata describing what was truncated at each checkpoint.", + "id": "LearningGenaiRootCodeyTruncatorMetadata", "properties": { - "timeoutTrainingMilliHours": { - "description": "The timeout hours for the CMLE training job, expressed in milli hours i.e. 1,000 value in this field means 1 hour.", - "format": "int64", + "cutoffIndex": { + "description": "Index of the current sample that trims off truncated text.", + "format": "int32", + "type": "integer" + }, + "truncatedText": { + "description": "Text that was truncated at a specific checkpoint.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1TrainingPipeline": { - "description": "The TrainingPipeline orchestrates tasks associated with training a Model. It always executes the training task, and optionally may also export data from Vertex AI's Dataset which becomes the training input, upload the Model to Vertex AI, and evaluate the Model.", - "id": "GoogleCloudAiplatformV1TrainingPipeline", + "LearningGenaiRootDataProviderOutput": { + "id": "LearningGenaiRootDataProviderOutput", "properties": { - "createTime": { - "description": "Output only. Time when the TrainingPipeline was created.", - "format": "google-datetime", - "readOnly": true, + "name": { "type": "string" }, - "displayName": { - "description": "Required. The user-defined name of this TrainingPipeline.", + "status": { + "$ref": "UtilStatusProto", + "description": "If set, this DataProvider failed and this is the error message." + } + }, + "type": "object" + }, + "LearningGenaiRootFilterMetadata": { + "id": "LearningGenaiRootFilterMetadata", + "properties": { + "confidence": { + "description": "Filter confidence.", + "enum": [ + "FILTER_CONFIDENCE_UNKNOWN", + "FILTER_CONFIDENCE_VERY_LOW", + "FILTER_CONFIDENCE_LOW", + "FILTER_CONFIDENCE_MEDIUM", + "FILTER_CONFIDENCE_HIGH", + "FILTER_CONFIDENCE_VERY_HIGH" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ], "type": "string" }, - "encryptionSpec": { - "$ref": "GoogleCloudAiplatformV1EncryptionSpec", - "description": "Customer-managed encryption key spec for a TrainingPipeline. If set, this TrainingPipeline will be secured by this key. Note: Model trained by this TrainingPipeline is also secured by this key if model_to_upload is not set separately." + "debugInfo": { + "$ref": "LearningGenaiRootFilterMetadataFilterDebugInfo", + "description": "Debug info for the message." }, - "endTime": { - "description": "Output only. Time when the TrainingPipeline entered any of the following states: `PIPELINE_STATE_SUCCEEDED`, `PIPELINE_STATE_FAILED`, `PIPELINE_STATE_CANCELLED`.", - "format": "google-datetime", - "readOnly": true, + "fallback": { + "description": "A fallback message chosen by the applied filter.", "type": "string" }, - "error": { - "$ref": "GoogleRpcStatus", - "description": "Output only. Only populated when the pipeline's state is `PIPELINE_STATE_FAILED` or `PIPELINE_STATE_CANCELLED`.", - "readOnly": true - }, - "inputDataConfig": { - "$ref": "GoogleCloudAiplatformV1InputDataConfig", - "description": "Specifies Vertex AI owned input data that may be used for training the Model. The TrainingPipeline's training_task_definition should make clear whether this config is used and if there are any special requirements on how it should be filled. If nothing about this config is mentioned in the training_task_definition, then it should be assumed that the TrainingPipeline does not depend on this configuration." - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "The labels with user-defined metadata to organize TrainingPipelines. Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. See https://goo.gl/xmQnxf for more information and examples of labels.", - "type": "object" - }, - "modelId": { - "description": "Optional. The ID to use for the uploaded Model, which will become the final component of the model resource name. This value may be up to 63 characters, and valid characters are `[a-z0-9_-]`. The first character cannot be a number or hyphen.", + "info": { + "description": "Additional info for the filter.", "type": "string" }, - "modelToUpload": { - "$ref": "GoogleCloudAiplatformV1Model", - "description": "Describes the Model that may be uploaded (via ModelService.UploadModel) by this TrainingPipeline. The TrainingPipeline's training_task_definition should make clear whether this Model description should be populated, and if there are any special requirements regarding how it should be filled. If nothing is mentioned in the training_task_definition, then it should be assumed that this field should not be filled and the training task either uploads the Model without a need of this information, or that training task does not support uploading a Model as part of the pipeline. When the Pipeline's state becomes `PIPELINE_STATE_SUCCEEDED` and the trained Model had been uploaded into Vertex AI, then the model_to_upload's resource name is populated. The Model is always uploaded into the Project and Location in which this pipeline is." - }, "name": { - "description": "Output only. Resource name of the TrainingPipeline.", - "readOnly": true, - "type": "string" - }, - "parentModel": { - "description": "Optional. When specify this field, the `model_to_upload` will not be uploaded as a new model, instead, it will become a new version of this `parent_model`.", - "type": "string" - }, - "startTime": { - "description": "Output only. Time when the TrainingPipeline for the first time entered the `PIPELINE_STATE_RUNNING` state.", - "format": "google-datetime", - "readOnly": true, + "description": "Name of the filter that triggered.", "type": "string" }, - "state": { - "description": "Output only. The detailed state of the pipeline.", + "reason": { + "description": "Filter reason.", "enum": [ - "PIPELINE_STATE_UNSPECIFIED", - "PIPELINE_STATE_QUEUED", - "PIPELINE_STATE_PENDING", - "PIPELINE_STATE_RUNNING", - "PIPELINE_STATE_SUCCEEDED", - "PIPELINE_STATE_FAILED", - "PIPELINE_STATE_CANCELLING", - "PIPELINE_STATE_CANCELLED", - "PIPELINE_STATE_PAUSED" + "FILTER_REASON_UNKNOWN", + "FILTER_REASON_NOT_FILTERED", + "FILTER_REASON_SENSITIVE", + "FILTER_REASON_RECITATION", + "FILTER_REASON_LANGUAGE", + "FILTER_REASON_TAKEDOWN", + "FILTER_REASON_CLASSIFIER", + "FILTER_REASON_EMPTY_RESPONSE", + "FILTER_REASON_SIMILARITY_TAKEDOWN", + "FILTER_REASON_UNSAFE", + "FILTER_REASON_PAIRWISE_CLASSIFIER", + "FILTER_REASON_CODEY", + "FILTER_REASON_URL", + "FILTER_REASON_EMAIL", + "FILTER_REASON_SAFETY_CAT", + "FILTER_REASON_REQUEST_RESPONSE_TAKEDOWN", + "FILTER_REASON_RAI_PQC", + "FILTER_REASON_ATLAS", + "FILTER_REASON_RAI_CSAM", + "FILTER_REASON_RAI_FRINGE", + "FILTER_REASON_RAI_SPII", + "FILTER_REASON_RAI_IMAGE_VIOLENCE", + "FILTER_REASON_RAI_IMAGE_PORN", + "FILTER_REASON_RAI_IMAGE_CSAM", + "FILTER_REASON_RAI_IMAGE_PEDO", + "FILTER_REASON_RAI_VIDEO_FRAME_VIOLENCE", + "FILTER_REASON_RAI_VIDEO_FRAME_PORN", + "FILTER_REASON_RAI_VIDEO_FRAME_CSAM", + "FILTER_REASON_RAI_VIDEO_FRAME_PEDO", + "FILTER_REASON_RAI_CONTEXTUAL_DANGEROUS", + "FILTER_REASON_RAI_GRAIL_TEXT", + "FILTER_REASON_RAI_GRAIL_IMAGE", + "FILTER_REASON_RAI_SAFETYCAT", + "FILTER_REASON_TOXICITY", + "FILTER_REASON_ATLAS_PRICING", + "FILTER_REASON_ATLAS_BILLING", + "FILTER_REASON_ATLAS_NON_ENGLISH_QUESTION", + "FILTER_REASON_ATLAS_NOT_RELATED_TO_GCP", + "FILTER_REASON_ATLAS_AWS_AZURE_RELATED" ], "enumDescriptions": [ - "The pipeline state is unspecified.", - "The pipeline has been created or resumed, and processing has not yet begun.", - "The service is preparing to run the pipeline.", - "The pipeline is in progress.", - "The pipeline completed successfully.", - "The pipeline failed.", - "The pipeline is being cancelled. From this state, the pipeline may only go to either PIPELINE_STATE_SUCCEEDED, PIPELINE_STATE_FAILED or PIPELINE_STATE_CANCELLED.", - "The pipeline has been cancelled.", - "The pipeline has been stopped, and can be resumed." + "Unknown filter reason.", + "Input not filtered.", + "Sensitive content.", + "Recited content.", + "Language filtering", + "Takedown policy", + "Classifier Module", + "Empty response message.", + "Similarity takedown.", + "Unsafe responses from scorers.", + "Pairwise classifier.", + "Codey Filter.", + "URLs Filter.", + "Emails Filter.", + "SafetyCat filter.", + "Request Response takedown.", + "RAI Filter.", + "Atlas specific topic filter", + "RAI Filter.", + "RAI Filter.", + "RAI Filter.", + "RAI Filter", + "RAI Filter", + "RAI Filter", + "RAI Filter", + "RAI Filter", + "RAI Filter", + "RAI Filter", + "RAI Filter", + "RAI Filter", + "Grail Text", + "Grail Image", + "SafetyCat.", + "Toxic content.", + "Atlas specific topic filter for pricing questions.", + "Atlas specific topic filter for billing questions.", + "Atlas specific topic filter for non english questions.", + "Atlas specific topic filter for non GCP questions.", + "Atlas specific topic filter aws/azure related questions." ], - "readOnly": true, - "type": "string" - }, - "trainingTaskDefinition": { - "description": "Required. A Google Cloud Storage path to the YAML file that defines the training task which is responsible for producing the model artifact, and may also include additional auxiliary work. The definition files that can be used here are found in gs://google-cloud-aiplatform/schema/trainingjob/definition/. Note: The URI given on output will be immutable and probably different, including the URI scheme, than the one given on input. The output URI will point to a location where the user only has a read access.", "type": "string" }, - "trainingTaskInputs": { - "description": "Required. The training task's parameter(s), as specified in the training_task_definition's `inputs`.", - "type": "any" - }, - "trainingTaskMetadata": { - "description": "Output only. The metadata information as specified in the training_task_definition's `metadata`. This metadata is an auxiliary runtime and final information about the training task. While the pipeline is running this information is populated only at a best effort basis. Only present if the pipeline's training_task_definition contains `metadata` object.", - "readOnly": true, - "type": "any" - }, - "updateTime": { - "description": "Output only. Time when the TrainingPipeline was most recently updated.", - "format": "google-datetime", - "readOnly": true, + "text": { + "description": "The input query or generated response that is getting filtered.", "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1Trial": { - "description": "A message representing a Trial. A Trial contains a unique set of Parameters that has been or will be evaluated, along with the objective metrics got by running the Trial.", - "id": "GoogleCloudAiplatformV1Trial", + "LearningGenaiRootFilterMetadataFilterDebugInfo": { + "id": "LearningGenaiRootFilterMetadataFilterDebugInfo", "properties": { - "clientId": { - "description": "Output only. The identifier of the client that originally requested this Trial. Each client is identified by a unique client_id. When a client asks for a suggestion, Vertex AI Vizier will assign it a Trial. The client should evaluate the Trial, complete it, and report back to Vertex AI Vizier. If suggestion is asked again by same client_id before the Trial is completed, the same Trial will be returned. Multiple clients with different client_ids can ask for suggestions simultaneously, each of them will get their own Trial.", - "readOnly": true, - "type": "string" + "classifierOutput": { + "$ref": "LearningGenaiRootClassifierOutput" }, - "customJob": { - "description": "Output only. The CustomJob name linked to the Trial. It's set for a HyperparameterTuningJob's Trial.", - "readOnly": true, + "defaultMetadata": { "type": "string" }, - "endTime": { - "description": "Output only. Time when the Trial's status changed to `SUCCEEDED` or `INFEASIBLE`.", - "format": "google-datetime", - "readOnly": true, - "type": "string" + "languageFilterResult": { + "$ref": "LearningGenaiRootLanguageFilterResult" }, - "finalMeasurement": { - "$ref": "GoogleCloudAiplatformV1Measurement", - "description": "Output only. The final measurement containing the objective value.", - "readOnly": true + "raiOutput": { + "$ref": "LearningGenaiRootRAIOutput", + "description": "Safety filter output information for LLM Root RAI harm check." }, - "id": { - "description": "Output only. The identifier of the Trial assigned by the service.", - "readOnly": true, - "type": "string" + "raiResult": { + "$ref": "CloudAiNlLlmProtoServiceRaiResult" }, - "infeasibleReason": { - "description": "Output only. A human readable string describing why the Trial is infeasible. This is set only if Trial state is `INFEASIBLE`.", - "readOnly": true, - "type": "string" + "raiSignal": { + "$ref": "CloudAiNlLlmProtoServiceRaiSignal", + "deprecated": true }, - "measurements": { - "description": "Output only. A list of measurements that are strictly lexicographically ordered by their induced tuples (steps, elapsed_duration). These are used for early stopping computations.", + "streamRecitationResult": { + "$ref": "LanguageLabsAidaTrustRecitationProtoStreamRecitationResult", + "deprecated": true + }, + "takedownResult": { + "$ref": "LearningGenaiRootTakedownResult" + }, + "toxicityResult": { + "$ref": "LearningGenaiRootToxicityResult" + } + }, + "type": "object" + }, + "LearningGenaiRootGroundingMetadata": { + "id": "LearningGenaiRootGroundingMetadata", + "properties": { + "citations": { "items": { - "$ref": "GoogleCloudAiplatformV1Measurement" + "$ref": "LearningGenaiRootGroundingMetadataCitation" }, - "readOnly": true, "type": "array" }, - "name": { - "description": "Output only. Resource name of the Trial assigned by the service.", - "readOnly": true, - "type": "string" + "groundingCancelled": { + "description": "True if grounding is cancelled, for example, no facts being retrieved.", + "type": "boolean" }, - "parameters": { - "description": "Output only. The parameters of the Trial.", + "searchQueries": { "items": { - "$ref": "GoogleCloudAiplatformV1TrialParameter" + "type": "string" }, - "readOnly": true, "type": "array" + } + }, + "type": "object" + }, + "LearningGenaiRootGroundingMetadataCitation": { + "id": "LearningGenaiRootGroundingMetadataCitation", + "properties": { + "endIndex": { + "description": "Index in the prediction output where the citation ends (exclusive). Must be > start_index and < len(output).", + "format": "int32", + "type": "integer" }, - "startTime": { - "description": "Output only. Time when the Trial was started.", - "format": "google-datetime", - "readOnly": true, - "type": "string" + "factIndex": { + "description": "Index of the fact supporting this claim. Should be within the range of the `world_facts` in the GenerateResponse.", + "format": "int32", + "type": "integer" }, - "state": { - "description": "Output only. The detailed state of the Trial.", - "enum": [ - "STATE_UNSPECIFIED", - "REQUESTED", - "ACTIVE", - "STOPPING", - "SUCCEEDED", - "INFEASIBLE" - ], - "enumDescriptions": [ - "The Trial state is unspecified.", - "Indicates that a specific Trial has been requested, but it has not yet been suggested by the service.", - "Indicates that the Trial has been suggested.", - "Indicates that the Trial should stop according to the service.", - "Indicates that the Trial is completed successfully.", - "Indicates that the Trial should not be attempted again. The service will set a Trial to INFEASIBLE when it's done but missing the final_measurement." - ], - "readOnly": true, - "type": "string" + "score": { + "description": "Confidence score of this entailment. Value is [0,1] with 1 is the most confidence.", + "format": "double", + "type": "number" }, - "webAccessUris": { - "additionalProperties": { - "type": "string" - }, - "description": "Output only. URIs for accessing [interactive shells](https://cloud.google.com/vertex-ai/docs/training/monitor-debug-interactive-shell) (one URI for each training node). Only available if this trial is part of a HyperparameterTuningJob and the job's trial_job_spec.enable_web_access field is `true`. The keys are names of each node used for the trial; for example, `workerpool0-0` for the primary node, `workerpool1-0` for the first node in the second worker pool, and `workerpool1-1` for the second node in the second worker pool. The values are the URIs for each node's interactive shell.", - "readOnly": true, - "type": "object" + "startIndex": { + "description": "Index in the prediction output where the citation starts (inclusive). Must be >= 0 and < end_index.", + "format": "int32", + "type": "integer" } }, "type": "object" }, - "GoogleCloudAiplatformV1TrialContext": { - "description": "Next ID: 3", - "id": "GoogleCloudAiplatformV1TrialContext", + "LearningGenaiRootHarm": { + "id": "LearningGenaiRootHarm", "properties": { - "description": { - "description": "A human-readable field which can store a description of this context. This will become part of the resulting Trial's description field.", - "type": "string" + "contextualDangerous": { + "description": "Please do not use, this is still under development.", + "type": "boolean" }, - "parameters": { - "description": "If/when a Trial is generated or selected from this Context, its Parameters will match any parameters specified here. (I.e. if this context specifies parameter name:'a' int_value:3, then a resulting Trial will have int_value:3 for its parameter named 'a'.) Note that we first attempt to match existing REQUESTED Trials with contexts, and if there are no matches, we generate suggestions in the subspace defined by the parameters specified here. NOTE: a Context without any Parameters matches the entire feasible search space.", + "csam": { + "type": "boolean" + }, + "fringe": { + "type": "boolean" + }, + "grailImageHarmType": { + "$ref": "LearningGenaiRootHarmGrailImageHarmType" + }, + "grailTextHarmType": { + "$ref": "LearningGenaiRootHarmGrailTextHarmType" + }, + "imageCsam": { + "type": "boolean" + }, + "imagePedo": { + "type": "boolean" + }, + "imagePorn": { + "description": "Image signals", + "type": "boolean" + }, + "imageViolence": { + "type": "boolean" + }, + "pqc": { + "type": "boolean" + }, + "safetycat": { + "$ref": "LearningGenaiRootHarmSafetyCatCategories" + }, + "spii": { + "$ref": "LearningGenaiRootHarmSpiiFilter", + "description": "Spii Filter uses buckets http://google3/google/privacy/dlp/v2/storage.proto;l=77;rcl=584719820 to classify the input. LMRoot converts the bucket into double score. For example the score for \"POSSIBLE\" is 3 / 5 = 0.6 ." + }, + "threshold": { + "format": "double", + "type": "number" + }, + "videoFrameCsam": { + "type": "boolean" + }, + "videoFramePedo": { + "type": "boolean" + }, + "videoFramePorn": { + "description": "Video frame signals", + "type": "boolean" + }, + "videoFrameViolence": { + "type": "boolean" + } + }, + "type": "object" + }, + "LearningGenaiRootHarmGrailImageHarmType": { + "description": "Harm type for images", + "id": "LearningGenaiRootHarmGrailImageHarmType", + "properties": { + "imageHarmType": { "items": { - "$ref": "GoogleCloudAiplatformV1TrialParameter" + "enum": [ + "IMAGE_HARM_TYPE_UNSPECIFIED", + "IMAGE_HARM_TYPE_PORN", + "IMAGE_HARM_TYPE_VIOLENCE", + "IMAGE_HARM_TYPE_CSAI", + "IMAGE_HARM_TYPE_PEDO", + "IMAGE_HARM_TYPE_MINORS", + "IMAGE_HARM_TYPE_DANGEROUS", + "IMAGE_HARM_TYPE_MEDICAL", + "IMAGE_HARM_TYPE_RACY", + "IMAGE_HARM_TYPE_OBSCENE", + "IMAGE_HARM_TYPE_MINOR_PRESENCE", + "IMAGE_HARM_TYPE_GENERATIVE_MINOR_PRESENCE", + "IMAGE_HARM_TYPE_GENERATIVE_REALISTIC_VISIBLE_FACE" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" }, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1TrialParameter": { - "description": "A message representing a parameter to be tuned.", - "id": "GoogleCloudAiplatformV1TrialParameter", + "LearningGenaiRootHarmGrailTextHarmType": { + "description": "Harm type for text", + "id": "LearningGenaiRootHarmGrailTextHarmType", "properties": { - "parameterId": { - "description": "Output only. The ID of the parameter. The parameter should be defined in StudySpec's Parameters.", - "readOnly": true, - "type": "string" - }, - "value": { - "description": "Output only. The value of the parameter. `number_value` will be set if a parameter defined in StudySpec is in type 'INTEGER', 'DOUBLE' or 'DISCRETE'. `string_value` will be set if a parameter defined in StudySpec is in type 'CATEGORICAL'.", - "readOnly": true, - "type": "any" + "harmType": { + "items": { + "enum": [ + "HARM_TYPE_UNSPECIFIED", + "HARM_TYPE_HATE", + "HARM_TYPE_TOXICITY", + "HARM_TYPE_VIOLENCE", + "HARM_TYPE_CSAI", + "HARM_TYPE_SEXUAL", + "HARM_TYPE_FRINGE", + "HARM_TYPE_POLITICAL", + "HARM_TYPE_MEMORIZATION", + "HARM_TYPE_SPII", + "HARM_TYPE_NEW_DANGEROUS", + "HARM_TYPE_MEDICAL", + "HARM_TYPE_HARASSMENT" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "New definition of dangerous.", + "", + "" + ], + "type": "string" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1UndeployIndexOperationMetadata": { - "description": "Runtime operation information for IndexEndpointService.UndeployIndex.", - "id": "GoogleCloudAiplatformV1UndeployIndexOperationMetadata", + "LearningGenaiRootHarmSafetyCatCategories": { + "id": "LearningGenaiRootHarmSafetyCatCategories", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "The operation generic information." + "categories": { + "items": { + "enum": [ + "SAFETYCAT_CATEGORY_UNSPECIFIED", + "TOXICITY", + "OBSCENE", + "SEXUAL", + "INSULT", + "IDENTITY_HATE", + "DEATH_HARM_TRAGEDY", + "VIOLENCE_ABUSE", + "FIREARMS_WEAPONS", + "PUBLIC_SAFETY", + "HEALTH", + "RELIGION_BELIEF", + "DRUGS", + "WAR_CONFLICT", + "POLITICS", + "FINANCE", + "LEGAL", + "DANGEROUS", + "DANGEROUS_SEVERITY", + "HARASSMENT_SEVERITY", + "HATE_SEVERITY", + "SEXUAL_SEVERITY" + ], + "enumDescriptions": [ + "", + "SafetyCat categories.", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "Following categories are only supported in SAFETY_CAT_TEXT_V3_PAX model", + "", + "", + "", + "" + ], + "type": "string" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1UndeployIndexRequest": { - "description": "Request message for IndexEndpointService.UndeployIndex.", - "id": "GoogleCloudAiplatformV1UndeployIndexRequest", + "LearningGenaiRootHarmSpiiFilter": { + "id": "LearningGenaiRootHarmSpiiFilter", "properties": { - "deployedIndexId": { - "description": "Required. The ID of the DeployedIndex to be undeployed from the IndexEndpoint.", - "type": "string" + "usBankRoutingMicr": { + "type": "boolean" + }, + "usEmployerIdentificationNumber": { + "type": "boolean" + }, + "usSocialSecurityNumber": { + "type": "boolean" } }, "type": "object" }, - "GoogleCloudAiplatformV1UndeployIndexResponse": { - "description": "Response message for IndexEndpointService.UndeployIndex.", - "id": "GoogleCloudAiplatformV1UndeployIndexResponse", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1UndeployModelOperationMetadata": { - "description": "Runtime operation information for EndpointService.UndeployModel.", - "id": "GoogleCloudAiplatformV1UndeployModelOperationMetadata", + "LearningGenaiRootInternalMetadata": { + "id": "LearningGenaiRootInternalMetadata", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "The operation generic information." + "scoredTokens": { + "items": { + "$ref": "LearningGenaiRootScoredToken" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1UndeployModelRequest": { - "description": "Request message for EndpointService.UndeployModel.", - "id": "GoogleCloudAiplatformV1UndeployModelRequest", + "LearningGenaiRootLanguageFilterResult": { + "id": "LearningGenaiRootLanguageFilterResult", "properties": { - "deployedModelId": { - "description": "Required. The ID of the DeployedModel to be undeployed from the Endpoint.", + "allowed": { + "description": "False when query or response should be filtered out due to unsupported language.", + "type": "boolean" + }, + "detectedLanguage": { + "description": "Language of the query or response.", "type": "string" }, - "trafficSplit": { - "additionalProperties": { - "format": "int32", - "type": "integer" - }, - "description": "If this field is provided, then the Endpoint's traffic_split will be overwritten with it. If last DeployedModel is being undeployed from the Endpoint, the [Endpoint.traffic_split] will always end up empty when this call returns. A DeployedModel will be successfully undeployed only if it doesn't have any traffic assigned to it when this method executes, or if this field unassigns any traffic to it.", - "type": "object" + "detectedLanguageProbability": { + "description": "Probability of the language predicted as returned by LangID.", + "format": "float", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1UndeployModelResponse": { - "description": "Response message for EndpointService.UndeployModel.", - "id": "GoogleCloudAiplatformV1UndeployModelResponse", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1UnmanagedContainerModel": { - "description": "Contains model information necessary to perform batch prediction without requiring a full model import.", - "id": "GoogleCloudAiplatformV1UnmanagedContainerModel", + "LearningGenaiRootMetricOutput": { + "id": "LearningGenaiRootMetricOutput", "properties": { - "artifactUri": { - "description": "The path to the directory containing the Model artifact and any of its supporting files.", + "debug": { "type": "string" }, - "containerSpec": { - "$ref": "GoogleCloudAiplatformV1ModelContainerSpec", - "description": "Input only. The specification of the container that is to be used when deploying this Model." + "name": { + "description": "Name of the metric.", + "type": "string" }, - "predictSchemata": { - "$ref": "GoogleCloudAiplatformV1PredictSchemata", - "description": "Contains the schemata used in Model's predictions and explanations" + "numericValue": { + "format": "double", + "type": "number" + }, + "status": { + "$ref": "UtilStatusProto" + }, + "stringValue": { + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1UpdateDeploymentResourcePoolOperationMetadata": { - "description": "Runtime operation information for UpdateDeploymentResourcePool method.", - "id": "GoogleCloudAiplatformV1UpdateDeploymentResourcePoolOperationMetadata", + "LearningGenaiRootRAIOutput": { + "description": "This is per harm.", + "id": "LearningGenaiRootRAIOutput", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "The operation generic information." + "allowed": { + "type": "boolean" + }, + "harm": { + "$ref": "LearningGenaiRootHarm" + }, + "name": { + "type": "string" + }, + "score": { + "format": "double", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1UpdateExplanationDatasetOperationMetadata": { - "description": "Runtime operation information for ModelService.UpdateExplanationDataset.", - "id": "GoogleCloudAiplatformV1UpdateExplanationDatasetOperationMetadata", + "LearningGenaiRootRegexTakedownResult": { + "id": "LearningGenaiRootRegexTakedownResult", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "The common part of the operation metadata." + "allowed": { + "description": "False when query or response should be taken down due to match with a blocked regex, true otherwise.", + "type": "boolean" + }, + "takedownRegex": { + "description": "Regex used to decide that query or response should be taken down. Empty when query or response is kept.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1UpdateExplanationDatasetRequest": { - "description": "Request message for ModelService.UpdateExplanationDataset.", - "id": "GoogleCloudAiplatformV1UpdateExplanationDatasetRequest", + "LearningGenaiRootRequestResponseTakedownResult": { + "id": "LearningGenaiRootRequestResponseTakedownResult", "properties": { - "examples": { - "$ref": "GoogleCloudAiplatformV1Examples", - "description": "The example config containing the location of the dataset." + "allowed": { + "description": "False when response has to be taken down per above config.", + "type": "boolean" + }, + "requestTakedownRegex": { + "description": "Regex used to match the request.", + "type": "string" + }, + "responseTakedownRegex": { + "description": "Regex used to decide that response should be taken down. Empty when response is kept.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1UpdateExplanationDatasetResponse": { - "description": "Response message of ModelService.UpdateExplanationDataset operation.", - "id": "GoogleCloudAiplatformV1UpdateExplanationDatasetResponse", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1UpdateFeatureGroupOperationMetadata": { - "description": "Details of operations that perform update FeatureGroup.", - "id": "GoogleCloudAiplatformV1UpdateFeatureGroupOperationMetadata", + "LearningGenaiRootRoutingDecision": { + "description": "Holds the final routing decision, by storing the model_config_id. And individual scores each model got.", + "id": "LearningGenaiRootRoutingDecision", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "Operation metadata for FeatureGroup." + "metadata": { + "$ref": "LearningGenaiRootRoutingDecisionMetadata" + }, + "modelConfigId": { + "description": "The selected model to route traffic to.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1UpdateFeatureOnlineStoreOperationMetadata": { - "description": "Details of operations that perform update FeatureOnlineStore.", - "id": "GoogleCloudAiplatformV1UpdateFeatureOnlineStoreOperationMetadata", + "LearningGenaiRootRoutingDecisionMetadata": { + "description": "Debug metadata about the routing decision.", + "id": "LearningGenaiRootRoutingDecisionMetadata", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "Operation metadata for FeatureOnlineStore." + "scoreBasedRoutingMetadata": { + "$ref": "LearningGenaiRootRoutingDecisionMetadataScoreBased" + }, + "tokenLengthBasedRoutingMetadata": { + "$ref": "LearningGenaiRootRoutingDecisionMetadataTokenLengthBased" } }, "type": "object" }, - "GoogleCloudAiplatformV1UpdateFeatureOperationMetadata": { - "description": "Details of operations that perform update Feature.", - "id": "GoogleCloudAiplatformV1UpdateFeatureOperationMetadata", + "LearningGenaiRootRoutingDecisionMetadataScoreBased": { + "description": "If we are routing using scored based configuration, then the metadata about that is available in this proto.", + "id": "LearningGenaiRootRoutingDecisionMetadataScoreBased", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "Operation metadata for Feature Update." + "matchedRule": { + "$ref": "LearningGenaiRootScoreBasedRoutingConfigRule", + "description": "The rule that was matched." + }, + "score": { + "$ref": "LearningGenaiRootScore", + "description": "The score that was generated by the router i.e. the model." + }, + "usedDefaultFallback": { + "description": "No rules were matched & therefore used the default fallback.", + "type": "boolean" } }, "type": "object" }, - "GoogleCloudAiplatformV1UpdateFeatureViewOperationMetadata": { - "description": "Details of operations that perform update FeatureView.", - "id": "GoogleCloudAiplatformV1UpdateFeatureViewOperationMetadata", + "LearningGenaiRootRoutingDecisionMetadataTokenLengthBased": { + "id": "LearningGenaiRootRoutingDecisionMetadataTokenLengthBased", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "Operation metadata for FeatureView Update." + "modelInputTokenMetadata": { + "items": { + "$ref": "LearningGenaiRootRoutingDecisionMetadataTokenLengthBasedModelInputTokenMetadata" + }, + "type": "array" + }, + "modelMaxTokenMetadata": { + "items": { + "$ref": "LearningGenaiRootRoutingDecisionMetadataTokenLengthBasedModelMaxTokenMetadata" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1UpdateFeaturestoreOperationMetadata": { - "description": "Details of operations that perform update Featurestore.", - "id": "GoogleCloudAiplatformV1UpdateFeaturestoreOperationMetadata", + "LearningGenaiRootRoutingDecisionMetadataTokenLengthBasedModelInputTokenMetadata": { + "id": "LearningGenaiRootRoutingDecisionMetadataTokenLengthBasedModelInputTokenMetadata", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "Operation metadata for Featurestore." + "computedInputTokenLength": { + "description": "The length computed by backends using the formatter & tokenizer specific to the model", + "format": "int32", + "type": "integer" + }, + "modelId": { + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1UpdateIndexOperationMetadata": { - "description": "Runtime operation information for IndexService.UpdateIndex.", - "id": "GoogleCloudAiplatformV1UpdateIndexOperationMetadata", + "LearningGenaiRootRoutingDecisionMetadataTokenLengthBasedModelMaxTokenMetadata": { + "id": "LearningGenaiRootRoutingDecisionMetadataTokenLengthBasedModelMaxTokenMetadata", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "The operation generic information." + "maxNumInputTokens": { + "format": "int32", + "type": "integer" }, - "nearestNeighborSearchOperationMetadata": { - "$ref": "GoogleCloudAiplatformV1NearestNeighborSearchOperationMetadata", - "description": "The operation metadata with regard to Matching Engine Index operation." + "maxNumOutputTokens": { + "format": "int32", + "type": "integer" + }, + "modelId": { + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1UpdateModelDeploymentMonitoringJobOperationMetadata": { - "description": "Runtime operation information for JobService.UpdateModelDeploymentMonitoringJob.", - "id": "GoogleCloudAiplatformV1UpdateModelDeploymentMonitoringJobOperationMetadata", + "LearningGenaiRootRuleOutput": { + "id": "LearningGenaiRootRuleOutput", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "The operation generic information." + "decision": { + "enum": [ + "NO_MATCH", + "MATCH" + ], + "enumDescriptions": [ + "This rule was not matched. When used in a ClassifierOutput, this means that no rules were matched.", + "This is a generic \"match\" message, indicating that a rule was triggered. Usually you would use this for a categorization classifier." + ], + "type": "string" + }, + "name": { + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1UpdateSpecialistPoolOperationMetadata": { - "description": "Runtime operation metadata for SpecialistPoolService.UpdateSpecialistPool.", - "id": "GoogleCloudAiplatformV1UpdateSpecialistPoolOperationMetadata", + "LearningGenaiRootScore": { + "id": "LearningGenaiRootScore", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "The operation generic information." + "calculationType": { + "$ref": "LearningGenaiRootCalculationType" }, - "specialistPool": { - "description": "Output only. The name of the SpecialistPool to which the specialists are being added. Format: `projects/{project_id}/locations/{location_id}/specialistPools/{specialist_pool}`", - "readOnly": true, - "type": "string" + "internalMetadata": { + "$ref": "LearningGenaiRootInternalMetadata", + "description": "The internal_metadata is intended to be used by internal processors and will be cleared before returns." + }, + "thresholdType": { + "$ref": "LearningGenaiRootThresholdType" + }, + "tokensAndLogprobPerDecodingStep": { + "$ref": "LearningGenaiRootTokensAndLogProbPerDecodingStep", + "description": "Top candidate tokens and log probabilities at each decoding step." + }, + "value": { + "format": "double", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1UpdateTensorboardOperationMetadata": { - "description": "Details of operations that perform update Tensorboard.", - "id": "GoogleCloudAiplatformV1UpdateTensorboardOperationMetadata", + "LearningGenaiRootScoreBasedRoutingConfigRule": { + "id": "LearningGenaiRootScoreBasedRoutingConfigRule", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "Operation metadata for Tensorboard." + "equalOrGreaterThan": { + "$ref": "LearningGenaiRootScore", + "description": "NOTE: Hardest examples have smaller values in their routing scores." + }, + "lessThan": { + "$ref": "LearningGenaiRootScore" + }, + "modelConfigId": { + "description": "This model_config_id points to ModelConfig::id which allows us to find the ModelConfig to route to. This is part of the banks specified in the ModelBankConfig.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1UploadModelOperationMetadata": { - "description": "Details of ModelService.UploadModel operation.", - "id": "GoogleCloudAiplatformV1UploadModelOperationMetadata", + "LearningGenaiRootScoredSimilarityTakedownPhrase": { + "description": "Proto containing the results from the Universal Sentence Encoder / Other models", + "id": "LearningGenaiRootScoredSimilarityTakedownPhrase", "properties": { - "genericMetadata": { - "$ref": "GoogleCloudAiplatformV1GenericOperationMetadata", - "description": "The common part of the operation metadata." + "phrase": { + "$ref": "LearningGenaiRootSimilarityTakedownPhrase" + }, + "similarityScore": { + "format": "float", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1UploadModelRequest": { - "description": "Request message for ModelService.UploadModel.", - "id": "GoogleCloudAiplatformV1UploadModelRequest", + "LearningGenaiRootScoredToken": { + "description": "A token with its own score.", + "id": "LearningGenaiRootScoredToken", "properties": { - "model": { - "$ref": "GoogleCloudAiplatformV1Model", - "description": "Required. The Model to create." - }, - "modelId": { - "description": "Optional. The ID to use for the uploaded Model, which will become the final component of the model resource name. This value may be up to 63 characters, and valid characters are `[a-z0-9_-]`. The first character cannot be a number or hyphen.", - "type": "string" + "endTokenScore": { + "description": "Each end_token_score is a logprob for how well the completion would end at a particular token. See http://google3/labs/language/aida/config/proto/model_config.proto;l=376;rcl=573039459", + "format": "float", + "type": "number" }, - "parentModel": { - "description": "Optional. The resource name of the model into which to upload the version. Only specify this field when uploading a new version.", - "type": "string" + "score": { + "description": "Each score is the logprob for the token in model response.", + "format": "float", + "type": "number" }, - "serviceAccount": { - "description": "Optional. The user-provided custom service account to use to do the model upload. If empty, [Vertex AI Service Agent](https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) will be used to access resources needed to upload the model. This account must belong to the target project where the model is uploaded to, i.e., the project specified in the `parent` field of this request and have necessary read permissions (to Google Cloud Storage, Artifact Registry, etc.).", + "token": { "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1UploadModelResponse": { - "description": "Response message of ModelService.UploadModel operation.", - "id": "GoogleCloudAiplatformV1UploadModelResponse", + "LearningGenaiRootSimilarityTakedownPhrase": { + "description": "Each SimilarityTakedownPhrase treats a logical group of blocked and allowed phrases together along with a corresponding punt If the closest matching response is of the allowed type, we allow the response If the closest matching response is of the blocked type, we block the response. eg: Blocked phrase - \"All lives matter\"", + "id": "LearningGenaiRootSimilarityTakedownPhrase", "properties": { - "model": { - "description": "The name of the uploaded Model resource. Format: `projects/{project}/locations/{location}/models/{model}`", - "type": "string" - }, - "modelVersionId": { - "description": "Output only. The version ID of the model that is uploaded.", - "readOnly": true, + "blockedPhrase": { "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1UpsertDatapointsRequest": { - "description": "Request message for IndexService.UpsertDatapoints", - "id": "GoogleCloudAiplatformV1UpsertDatapointsRequest", + "LearningGenaiRootSimilarityTakedownResult": { + "id": "LearningGenaiRootSimilarityTakedownResult", "properties": { - "datapoints": { - "description": "A list of datapoints to be created/updated.", + "allowed": { + "description": "False when query or response should be taken down by any of the takedown rules, true otherwise.", + "type": "boolean" + }, + "scoredPhrases": { + "description": "List of similar phrases with score. Set only if allowed=false.", "items": { - "$ref": "GoogleCloudAiplatformV1IndexDatapoint" + "$ref": "LearningGenaiRootScoredSimilarityTakedownPhrase" }, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1UpsertDatapointsResponse": { - "description": "Response message for IndexService.UpsertDatapoints", - "id": "GoogleCloudAiplatformV1UpsertDatapointsResponse", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1UserActionReference": { - "description": "References an API call. It contains more information about long running operation and Jobs that are triggered by the API call.", - "id": "GoogleCloudAiplatformV1UserActionReference", + "LearningGenaiRootTakedownResult": { + "id": "LearningGenaiRootTakedownResult", "properties": { - "dataLabelingJob": { - "description": "For API calls that start a LabelingJob. Resource name of the LabelingJob. Format: `projects/{project}/locations/{location}/dataLabelingJobs/{data_labeling_job}`", - "type": "string" + "allowed": { + "description": "False when query or response should be taken down by any of the takedown rules, true otherwise.", + "type": "boolean" }, - "method": { - "description": "The method name of the API RPC call. For example, \"/google.cloud.aiplatform.{apiVersion}.DatasetService.CreateDataset\"", - "type": "string" + "regexTakedownResult": { + "$ref": "LearningGenaiRootRegexTakedownResult" }, - "operation": { - "description": "For API calls that return a long running operation. Resource name of the long running operation. Format: `projects/{project}/locations/{location}/operations/{operation}`", - "type": "string" + "requestResponseTakedownResult": { + "$ref": "LearningGenaiRootRequestResponseTakedownResult" + }, + "similarityTakedownResult": { + "$ref": "LearningGenaiRootSimilarityTakedownResult" } }, "type": "object" }, - "GoogleCloudAiplatformV1Value": { - "description": "Value is the value of the field.", - "id": "GoogleCloudAiplatformV1Value", + "LearningGenaiRootThresholdType": { + "description": "The type of score that bundled with a threshold, and will not be attending the final score calculation. How each score type uses the threshold can be implementation details.", + "id": "LearningGenaiRootThresholdType", "properties": { - "doubleValue": { - "description": "A double value.", - "format": "double", - "type": "number" - }, - "intValue": { - "description": "An integer value.", - "format": "int64", + "scoreType": { + "enum": [ + "TYPE_UNKNOWN", + "TYPE_SAFE", + "TYPE_POLICY", + "TYPE_GENERATION" + ], + "enumDescriptions": [ + "Unknown scorer type.", + "Safety scorer.", + "Policy scorer.", + "Generation scorer." + ], "type": "string" }, - "stringValue": { - "description": "A string value.", - "type": "string" + "threshold": { + "format": "double", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1WorkerPoolSpec": { - "description": "Represents the spec of a worker pool in a job.", - "id": "GoogleCloudAiplatformV1WorkerPoolSpec", + "LearningGenaiRootTokensAndLogProbPerDecodingStep": { + "description": "Results of RandomSamplingParams::top_k_logprob_per_decoding_step.", + "id": "LearningGenaiRootTokensAndLogProbPerDecodingStep", "properties": { - "containerSpec": { - "$ref": "GoogleCloudAiplatformV1ContainerSpec", - "description": "The custom container task." - }, - "diskSpec": { - "$ref": "GoogleCloudAiplatformV1DiskSpec", - "description": "Disk spec." - }, - "machineSpec": { - "$ref": "GoogleCloudAiplatformV1MachineSpec", - "description": "Optional. Immutable. The specification of a single machine." - }, - "nfsMounts": { - "description": "Optional. List of NFS mount spec.", + "chosenCandidates": { + "description": "Length = total number of decoding steps. The chosen candidates may or may not be in top_candidates.", "items": { - "$ref": "GoogleCloudAiplatformV1NfsMount" + "$ref": "LearningGenaiRootTokensAndLogProbPerDecodingStepCandidate" }, "type": "array" }, - "pythonPackageSpec": { - "$ref": "GoogleCloudAiplatformV1PythonPackageSpec", - "description": "The Python packaged task." - }, - "replicaCount": { - "description": "Optional. The number of worker replicas to use for this worker pool.", - "format": "int64", - "type": "string" + "topCandidates": { + "description": "Length = total number of decoding steps.", + "items": { + "$ref": "LearningGenaiRootTokensAndLogProbPerDecodingStepTopCandidates" + }, + "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1WriteFeatureValuesPayload": { - "description": "Contains Feature values to be written for a specific entity.", - "id": "GoogleCloudAiplatformV1WriteFeatureValuesPayload", + "LearningGenaiRootTokensAndLogProbPerDecodingStepCandidate": { + "description": "A candidate at a decoding step.", + "id": "LearningGenaiRootTokensAndLogProbPerDecodingStepCandidate", "properties": { - "entityId": { - "description": "Required. The ID of the entity.", - "type": "string" + "logProbability": { + "description": "The candidate's log probability.", + "format": "float", + "type": "number" }, - "featureValues": { - "additionalProperties": { - "$ref": "GoogleCloudAiplatformV1FeatureValue" - }, - "description": "Required. Feature values to be written, mapping from Feature ID to value. Up to 100,000 `feature_values` entries may be written across all payloads. The feature generation time, aligned by days, must be no older than five years (1825 days) and no later than one year (366 days) in the future.", - "type": "object" + "token": { + "description": "The candidate’s token value.", + "type": "string" } }, "type": "object" }, - "GoogleCloudAiplatformV1WriteFeatureValuesRequest": { - "description": "Request message for FeaturestoreOnlineServingService.WriteFeatureValues.", - "id": "GoogleCloudAiplatformV1WriteFeatureValuesRequest", + "LearningGenaiRootTokensAndLogProbPerDecodingStepTopCandidates": { + "description": "Candidates with top log probabilities at each decoding step.", + "id": "LearningGenaiRootTokensAndLogProbPerDecodingStepTopCandidates", "properties": { - "payloads": { - "description": "Required. The entities to be written. Up to 100,000 feature values can be written across all `payloads`.", + "candidates": { + "description": "Sorted by log probability in descending order.", "items": { - "$ref": "GoogleCloudAiplatformV1WriteFeatureValuesPayload" + "$ref": "LearningGenaiRootTokensAndLogProbPerDecodingStepCandidate" }, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1WriteFeatureValuesResponse": { - "description": "Response message for FeaturestoreOnlineServingService.WriteFeatureValues.", - "id": "GoogleCloudAiplatformV1WriteFeatureValuesResponse", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1WriteTensorboardExperimentDataRequest": { - "description": "Request message for TensorboardService.WriteTensorboardExperimentData.", - "id": "GoogleCloudAiplatformV1WriteTensorboardExperimentDataRequest", + "LearningGenaiRootToxicityResult": { + "description": "A model can generate multiple signals and this captures all the generated signals for a single message.", + "id": "LearningGenaiRootToxicityResult", "properties": { - "writeRunDataRequests": { - "description": "Required. Requests containing per-run TensorboardTimeSeries data to write.", + "signals": { "items": { - "$ref": "GoogleCloudAiplatformV1WriteTensorboardRunDataRequest" + "$ref": "LearningGenaiRootToxicitySignal" }, "type": "array" } }, "type": "object" }, - "GoogleCloudAiplatformV1WriteTensorboardExperimentDataResponse": { - "description": "Response message for TensorboardService.WriteTensorboardExperimentData.", - "id": "GoogleCloudAiplatformV1WriteTensorboardExperimentDataResponse", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1WriteTensorboardRunDataRequest": { - "description": "Request message for TensorboardService.WriteTensorboardRunData.", - "id": "GoogleCloudAiplatformV1WriteTensorboardRunDataRequest", + "LearningGenaiRootToxicitySignal": { + "description": "Proto to capture a signal generated by the toxicity model.", + "id": "LearningGenaiRootToxicitySignal", "properties": { - "tensorboardRun": { - "description": "Required. The resource name of the TensorboardRun to write data to. Format: `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}`", + "allowed": { + "type": "boolean" + }, + "label": { + "enum": [ + "LABEL_UNSPECIFIED", + "NOT_SENSITIVE", + "SENSITIVE", + "ACCIDENTS_DISASTERS", + "ADULT", + "COMPUTER_SECURITY", + "CONTROVERSIAL_SOCIAL_ISSUES", + "DEATH_TRAGEDY", + "DRUGS", + "IDENTITY_ETHNICITY", + "FINANCIAL_HARDSHIP", + "FIREARMS_WEAPONS", + "HEALTH", + "INSULT", + "LEGAL", + "MENTAL_HEALTH", + "POLITICS", + "RELIGION_BELIEFS", + "SAFETY", + "SELF_HARM", + "SPECIAL_NEEDS", + "TERRORISM", + "TOXIC", + "TROUBLED_RELATIONSHIP", + "VIOLENCE_ABUSE", + "VULGAR", + "WAR_CONFLICT" + ], + "enumDescriptions": [ + "Default label.", + "Input is not sensitive.", + "Input is sensitive.", + "Input is related to accidents or disasters.", + "Input contains adult content.", + "Input is related to computer security.", + "Input contains controversial social issues.", + "Input is related to death tragedy.", + "Input is related to drugs.", + "Input is related to identity or ethnicity.", + "Input is related to financial hardship.", + "Input is related to firearms or weapons.", + "Input contains health related information.", + "Input may be an insult.", + "Input is related to legal content.", + "Input contains mental health related information.", + "Input is related to politics.", + "Input is related to religions or beliefs.", + "Input is related to safety.", + "Input is related to self-harm.", + "Input is related to special needs.", + "Input is related to terrorism.", + "Input is toxic.", + "Input is related to troubled relationships.", + "Input contains content about violence or abuse.", + "Input is vulgar.", + "Input is related to war and conflict." + ], "type": "string" }, - "timeSeriesData": { - "description": "Required. The TensorboardTimeSeries data to write. Values with in a time series are indexed by their step value. Repeated writes to the same step will overwrite the existing value for that step. The upper limit of data points per write request is 5000.", - "items": { - "$ref": "GoogleCloudAiplatformV1TimeSeriesData" - }, - "type": "array" + "score": { + "format": "float", + "type": "number" } }, "type": "object" }, - "GoogleCloudAiplatformV1WriteTensorboardRunDataResponse": { - "description": "Response message for TensorboardService.WriteTensorboardRunData.", - "id": "GoogleCloudAiplatformV1WriteTensorboardRunDataResponse", - "properties": {}, - "type": "object" - }, - "GoogleCloudAiplatformV1XraiAttribution": { - "description": "An explanation method that redistributes Integrated Gradients attributions to segmented regions, taking advantage of the model's fully differentiable structure. Refer to this paper for more details: https://arxiv.org/abs/1906.02825 Supported only by image Models.", - "id": "GoogleCloudAiplatformV1XraiAttribution", + "LearningServingLlmMessageMetadata": { + "description": "LINT.IfChange This metadata contains additional information required for debugging.", + "id": "LearningServingLlmMessageMetadata", "properties": { - "blurBaselineConfig": { - "$ref": "GoogleCloudAiplatformV1BlurBaselineConfig", - "description": "Config for XRAI with blur baseline. When enabled, a linear path from the maximally blurred image to the input image is created. Using a blurred baseline instead of zero (black image) is motivated by the BlurIG approach explained here: https://arxiv.org/abs/2004.03383" + "classifierSummary": { + "$ref": "LearningGenaiRootClassifierOutputSummary", + "description": "Summary of classifier output. We attach this to all messages regardless of whether classification rules triggered or not." }, - "smoothGradConfig": { - "$ref": "GoogleCloudAiplatformV1SmoothGradConfig", - "description": "Config for SmoothGrad approximation of gradients. When enabled, the gradients are approximated by averaging the gradients from noisy samples in the vicinity of the inputs. Adding noise can help improve the computed gradients. Refer to this paper for more details: https://arxiv.org/pdf/1706.03825.pdf" + "codeyOutput": { + "$ref": "LearningGenaiRootCodeyOutput", + "description": "Contains metadata related to Codey Processors." }, - "stepCount": { - "description": "Required. The number of steps for approximating the path integral. A good value to start is 50 and gradually increase until the sum to diff property is met within the desired error range. Valid range of its value is [1, 100], inclusively.", - "format": "int32", + "currentStreamTextLength": { + "format": "uint32", "type": "integer" - } - }, - "type": "object" - }, - "GoogleCloudLocationListLocationsResponse": { - "description": "The response message for Locations.ListLocations.", - "id": "GoogleCloudLocationListLocationsResponse", - "properties": { - "locations": { - "description": "A list of locations that matches the specified filter in the request.", + }, + "deleted": { + "description": "Whether the corresponding message has been deleted.", + "type": "boolean" + }, + "filterMeta": { + "description": "Metadata for filters that triggered.", "items": { - "$ref": "GoogleCloudLocationLocation" + "$ref": "LearningGenaiRootFilterMetadata" }, "type": "array" }, - "nextPageToken": { - "description": "The standard List next-page token.", - "type": "string" - } - }, - "type": "object" - }, - "GoogleCloudLocationLocation": { - "description": "A resource that represents a Google Cloud location.", - "id": "GoogleCloudLocationLocation", - "properties": { - "displayName": { - "description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", + "finalMessageScore": { + "$ref": "LearningGenaiRootScore", + "description": "This score is finally used for ranking the message. This will be same as the score present in `Message.score` field." + }, + "finishReason": { + "description": "NOT YET IMPLEMENTED.", + "enum": [ + "UNSPECIFIED", + "RETURN", + "STOP", + "MAX_TOKENS", + "FILTER" + ], + "enumDescriptions": [ + "", + "Return all the tokens back. This typically implies no filtering or stop sequence was triggered.", + "Finished due to provided stop sequence.", + "Model has emitted the maximum number of tokens as specified by max_decoding_steps.", + "Finished due to triggering some post-processing filter." + ], "type": "string" }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", - "type": "object" + "groundingMetadata": { + "$ref": "LearningGenaiRootGroundingMetadata" }, - "locationId": { - "description": "The canonical id for this location. For example: `\"us-east1\"`.", + "isCode": { + "description": "Applies to streaming response message only. Whether the message is a code.", + "type": "boolean" + }, + "isFallback": { + "description": "Applies to Response message only. Indicates whether the message is a fallback and the response would have otherwise been empty.", + "type": "boolean" + }, + "langidResult": { + "$ref": "NlpSaftLangIdResult", + "description": "Result from nlp_saft DetectLanguage method. Currently the predicted language code and language probability is used." + }, + "language": { + "description": "Detected language.", "type": "string" }, - "metadata": { - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - }, - "description": "Service-specific metadata. For example the available capacity at the given location.", - "type": "object" + "lmPrefix": { + "description": "The LM prefix used to generate this response.", + "type": "string" }, - "name": { - "description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", + "originalText": { + "description": "The original text generated by LLM. This is the raw output for debugging purposes.", "type": "string" - } - }, - "type": "object" - }, - "GoogleIamV1Binding": { - "description": "Associates `members`, or principals, with a `role`.", - "id": "GoogleIamV1Binding", - "properties": { - "condition": { - "$ref": "GoogleTypeExpr", - "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, - "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "perStreamDecodedTokenCount": { + "description": "NOT YET IMPLEMENTED. Applies to streaming only. Number of tokens decoded / emitted by the model as part of this stream. This may be different from token_count, which contains number of tokens returned in this response after any response rewriting / truncation.", + "format": "int32", + "type": "integer" + }, + "raiOutputs": { + "description": "Results of running RAI on the query or this response candidate. One output per rai_config. It will be populated regardless of whether the threshold is exceeded or not.", "items": { - "type": "string" + "$ref": "LearningGenaiRootRAIOutput" }, "type": "array" }, - "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", - "type": "string" - } - }, - "type": "object" - }, - "GoogleIamV1Policy": { - "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", - "id": "GoogleIamV1Policy", - "properties": { - "bindings": { - "description": "Associates a list of `members`, or principals, with a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", + "recitationResult": { + "$ref": "LearningGenaiRecitationRecitationResult", + "description": "Recitation Results. It will be populated as long as Recitation processing is enabled, regardless of recitation outcome." + }, + "returnTokenCount": { + "description": "NOT YET IMPLEMENTED. Number of tokens returned as part of this candidate.", + "format": "int32", + "type": "integer" + }, + "scores": { + "description": "All the different scores for a message are logged here.", "items": { - "$ref": "GoogleIamV1Binding" + "$ref": "LearningGenaiRootScore" }, "type": "array" }, - "etag": { - "description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.", - "format": "byte", - "type": "string" + "streamTerminated": { + "description": "Whether the response is terminated during streaming return. Only used for streaming requests.", + "type": "boolean" }, - "version": { - "description": "Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", + "totalDecodedTokenCount": { + "description": "NOT YET IMPLEMENTED. Aggregated number of total tokens decoded so far. For streaming, this is sum of all the tokens decoded so far i.e. aggregated count.", "format": "int32", "type": "integer" - } - }, - "type": "object" - }, - "GoogleIamV1SetIamPolicyRequest": { - "description": "Request message for `SetIamPolicy` method.", - "id": "GoogleIamV1SetIamPolicyRequest", - "properties": { - "policy": { - "$ref": "GoogleIamV1Policy", - "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." - } - }, - "type": "object" - }, - "GoogleIamV1TestIamPermissionsResponse": { - "description": "Response message for `TestIamPermissions` method.", - "id": "GoogleIamV1TestIamPermissionsResponse", - "properties": { - "permissions": { - "description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", + }, + "translatedUserPrompts": { + "description": "Translated user-prompt used for RAI post processing. This is for internal processing only. We will translate in pre-processor and pass the translated text to the post processor using this field. It will be empty if non of the signals requested need translation.", "items": { "type": "string" }, "type": "array" + }, + "vertexRaiResult": { + "$ref": "CloudAiNlLlmProtoServiceRaiResult", + "description": "The metadata from Vertex SafetyCat processors" } }, "type": "object" }, - "GoogleLongrunningListOperationsResponse": { - "description": "The response message for Operations.ListOperations.", - "id": "GoogleLongrunningListOperationsResponse", + "NlpSaftLangIdLocalesResult": { + "id": "NlpSaftLangIdLocalesResult", "properties": { - "nextPageToken": { - "description": "The standard List next-page token.", - "type": "string" - }, - "operations": { - "description": "A list of operations that matches the specified filter in the request.", + "predictions": { + "description": "List of locales in which the text would be considered acceptable. Sorted in descending order according to each locale's respective likelihood. For example, if a Portuguese text is acceptable in both Brazil and Portugal, but is more strongly associated with Brazil, then the predictions would be [\"pt-BR\", \"pt-PT\"], in that order. May be empty, indicating that the model did not predict any acceptable locales.", "items": { - "$ref": "GoogleLongrunningOperation" + "$ref": "NlpSaftLangIdLocalesResultLocale" }, "type": "array" } }, "type": "object" }, - "GoogleLongrunningOperation": { - "description": "This resource represents a long-running operation that is the result of a network API call.", - "id": "GoogleLongrunningOperation", + "NlpSaftLangIdLocalesResultLocale": { + "id": "NlpSaftLangIdLocalesResultLocale", "properties": { - "done": { - "description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", - "type": "boolean" - }, - "error": { - "$ref": "GoogleRpcStatus", - "description": "The error result of the operation in case of failure or cancellation." - }, - "metadata": { - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - }, - "description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", - "type": "object" - }, - "name": { - "description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", + "languageCode": { + "description": "A BCP 47 language code that includes region information. For example, \"pt-BR\" or \"pt-PT\". This field will always be populated.", "type": "string" - }, - "response": { - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - }, - "description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", - "type": "object" } }, "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", - "properties": {}, - "type": "object" - }, - "GoogleRpcStatus": { - "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": "GoogleRpcStatus", + "NlpSaftLangIdResult": { + "id": "NlpSaftLangIdResult", "properties": { - "code": { - "description": "The status code, which should be an enum value of google.rpc.Code.", - "format": "int32", - "type": "integer" + "modelVersion": { + "description": "The version of the model used to create these annotations.", + "enum": [ + "VERSION_UNSPECIFIED", + "INDEXING_20181017", + "INDEXING_20191206", + "INDEXING_20200313", + "INDEXING_20210618", + "STANDARD_20220516" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ], + "type": "string" }, - "details": { - "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", + "predictions": { + "description": "This field stores the n-best list of possible BCP 47 language code strings for a given input sorted in descending order according to each code's respective probability.", "items": { - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - }, - "type": "object" + "$ref": "NlpSaftLanguageSpan" }, "type": "array" }, - "message": { - "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", - "type": "string" + "spanPredictions": { + "description": "This field stores language predictions of subspans of the input, when available. Each LanguageSpanSequence is a sequence of LanguageSpans. A particular sequence of LanguageSpans has an associated probability, and need not necessarily cover the entire input. If no language could be predicted for any span, then this field may be empty.", + "items": { + "$ref": "NlpSaftLanguageSpanSequence" + }, + "type": "array" } }, "type": "object" }, - "GoogleTypeColor": { - "description": "Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to and from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't have information about the absolute color space that should be used to interpret the RGB value—for example, sRGB, Adobe RGB, DCI-P3, and BT.2020. By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most `1e-5`. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ...", - "id": "GoogleTypeColor", + "NlpSaftLanguageSpan": { + "id": "NlpSaftLanguageSpan", "properties": { - "alpha": { - "description": "The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).", - "format": "float", - "type": "number" + "end": { + "format": "int32", + "type": "integer" }, - "blue": { - "description": "The amount of blue in the color as a value in the interval [0, 1].", - "format": "float", - "type": "number" + "languageCode": { + "description": "A BCP 47 language code for this span.", + "type": "string" }, - "green": { - "description": "The amount of green in the color as a value in the interval [0, 1].", - "format": "float", - "type": "number" + "locales": { + "$ref": "NlpSaftLangIdLocalesResult", + "description": "Optional field containing any information that was predicted about the specific locale(s) of the span." }, - "red": { - "description": "The amount of red in the color as a value in the interval [0, 1].", + "probability": { + "description": "A probability associated with this prediction.", "format": "float", "type": "number" + }, + "start": { + "description": "Start and end byte offsets, inclusive, within the given input string. A value of -1 implies that this field is not set. Both fields must either be set with a nonnegative value or both are unset. If both are unset then this LanguageSpan applies to the entire input.", + "format": "int32", + "type": "integer" } }, "type": "object" }, - "GoogleTypeExpr": { - "description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.", - "id": "GoogleTypeExpr", + "NlpSaftLanguageSpanSequence": { + "id": "NlpSaftLanguageSpanSequence", "properties": { - "description": { - "description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.", - "type": "string" - }, - "expression": { - "description": "Textual representation of an expression in Common Expression Language syntax.", - "type": "string" - }, - "location": { - "description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", - "type": "string" + "languageSpans": { + "description": "A sequence of LanguageSpan objects, each assigning a language to a subspan of the input.", + "items": { + "$ref": "NlpSaftLanguageSpan" + }, + "type": "array" }, - "title": { - "description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", - "type": "string" + "probability": { + "description": "The probability of this sequence of LanguageSpans.", + "format": "float", + "type": "number" } }, "type": "object" }, - "GoogleTypeInterval": { - "description": "Represents a time interval, encoded as a Timestamp start (inclusive) and a Timestamp end (exclusive). The start must be less than or equal to the end. When the start equals the end, the interval is empty (matches no time). When both start and end are unspecified, the interval matches any time.", - "id": "GoogleTypeInterval", - "properties": { - "endTime": { - "description": "Optional. Exclusive end of the interval. If specified, a Timestamp matching this interval will have to be before the end.", - "format": "google-datetime", - "type": "string" - }, - "startTime": { - "description": "Optional. Inclusive start of the interval. If specified, a Timestamp matching this interval will have to be the same or after the start.", - "format": "google-datetime", - "type": "string" - } - }, + "Proto2BridgeMessageSet": { + "description": "This is proto2's version of MessageSet.", + "id": "Proto2BridgeMessageSet", + "properties": {}, "type": "object" }, - "GoogleTypeMoney": { - "description": "Represents an amount of money with its currency type.", - "id": "GoogleTypeMoney", + "UtilStatusProto": { + "description": "Wire-format for a Status object", + "id": "UtilStatusProto", "properties": { - "currencyCode": { - "description": "The three-letter currency code defined in ISO 4217.", - "type": "string" + "canonicalCode": { + "description": "The canonical error code (see codes.proto) that most closely corresponds to this status. This may be missing, and in the common case of the generic space, it definitely will be.", + "format": "int32", + "type": "integer" }, - "nanos": { - "description": "Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.", + "code": { + "description": "Numeric code drawn from the space specified below. Often, this is the canonical error space, and code is drawn from google3/util/task/codes.proto", "format": "int32", "type": "integer" }, - "units": { - "description": "The whole units of the amount. For example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar.", - "format": "int64", + "message": { + "description": "Detail message", + "type": "string" + }, + "messageSet": { + "$ref": "Proto2BridgeMessageSet", + "description": "message_set associates an arbitrary proto message with the status." + }, + "space": { + "description": "The following are usually only present when code != 0 Space to which this status belongs", "type": "string" } }, diff --git a/discovery/googleapis/alloydb__v1.json b/discovery/googleapis/alloydb__v1.json index 0e9062545..3cfd3bc0b 100644 --- a/discovery/googleapis/alloydb__v1.json +++ b/discovery/googleapis/alloydb__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231031", + "revision": "20240216", "rootUrl": "https://alloydb.googleapis.com/", "servicePath": "", "title": "AlloyDB API", @@ -1641,6 +1641,11 @@ "readOnly": true, "type": "boolean" }, + "satisfiesPzs": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, "sizeBytes": { "description": "Output only. The size of the backup in bytes.", "format": "int64", @@ -1898,6 +1903,11 @@ "readOnly": true, "type": "boolean" }, + "satisfiesPzs": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, "secondaryConfig": { "$ref": "SecondaryConfig", "description": "Cross Region replication config specific to SECONDARY cluster." @@ -2388,6 +2398,11 @@ "readOnly": true, "type": "boolean" }, + "satisfiesPzs": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, "state": { "description": "Output only. The current serving state of the instance.", "enum": [ @@ -2638,7 +2653,7 @@ "type": "string" }, "network": { - "description": "Required. The resource link for the VPC network in which cluster resources are created and from which they are accessible via Private IP. The network must belong to the same project as the cluster. It is specified in the form: \"projects/{project_number}/global/networks/{network_id}\". This is required to create a cluster.", + "description": "Optional. The resource link for the VPC network in which cluster resources are created and from which they are accessible via Private IP. The network must belong to the same project as the cluster. It is specified in the form: \"projects/{project_number}/global/networks/{network_id}\". This is required to create a cluster.", "type": "string" } }, @@ -3078,6 +3093,44 @@ }, "type": "object" }, + "StorageDatabasecenterPartnerapiV1mainCustomMetadataData": { + "description": "Any custom metadata associated with the resource. i.e. A spanner instance can have multiple databases with its own unique metadata. Information for these individual databases can be captured in custom metadata data", + "id": "StorageDatabasecenterPartnerapiV1mainCustomMetadataData", + "properties": { + "databaseMetadata": { + "items": { + "$ref": "StorageDatabasecenterPartnerapiV1mainDatabaseMetadata" + }, + "type": "array" + } + }, + "type": "object" + }, + "StorageDatabasecenterPartnerapiV1mainDatabaseMetadata": { + "description": "Metadata for individual databases created in an instance. i.e. spanner instance can have multiple databases with unique configuration settings.", + "id": "StorageDatabasecenterPartnerapiV1mainDatabaseMetadata", + "properties": { + "backupConfiguration": { + "$ref": "StorageDatabasecenterPartnerapiV1mainBackupConfiguration", + "description": "Backup configuration for this database" + }, + "backupRun": { + "$ref": "StorageDatabasecenterPartnerapiV1mainBackupRun", + "description": "Information about the last backup attempt for this database" + }, + "product": { + "$ref": "StorageDatabasecenterProtoCommonProduct" + }, + "resourceId": { + "$ref": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceId" + }, + "resourceName": { + "description": "Required. Database name. Resource name to follow CAIS resource_name format as noted here go/condor-common-datamodel", + "type": "string" + } + }, + "type": "object" + }, "StorageDatabasecenterPartnerapiV1mainDatabaseResourceFeed": { "description": "DatabaseResourceFeed is the top level proto to be used to ingest different database resource level events into Condor platform.", "id": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceFeed", @@ -3093,20 +3146,25 @@ "FEEDTYPE_UNSPECIFIED", "RESOURCE_METADATA", "OBSERVABILITY_DATA", - "SECURITY_FINDING_DATA" + "SECURITY_FINDING_DATA", + "RECOMMENDATION_SIGNAL_DATA" ], "enumDescriptions": [ "", "Database resource metadata feed from control plane", "Database resource monitoring data", - "Database resource security health signal data" + "Database resource security health signal data", + "Database resource recommendation signal data" ], "type": "string" }, - "resourceHealthSignalData": { - "$ref": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceHealthSignalData", + "recommendationSignalData": { + "$ref": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceRecommendationSignalData", "description": "More feed data would be added in subsequent CLs" }, + "resourceHealthSignalData": { + "$ref": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceHealthSignalData" + }, "resourceId": { "$ref": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceId", "deprecated": true, @@ -3177,7 +3235,7 @@ "type": "string" }, "resourceContainer": { - "description": "Closest parent container of this resource. In GCP, 'container' refers to a Cloud Resource Manager project. It must be resource name of a Cloud Resource Manager project with the format of \"provider//\", such as \"gcp/projects/123\". For GCP provided resources, number should be project number.", + "description": "Closest parent container of this resource. In GCP, 'container' refers to a Cloud Resource Manager project. It must be resource name of a Cloud Resource Manager project with the format of \"provider//\", such as \"projects/123\". For GCP provided resources, number should be project number.", "type": "string" }, "resourceName": { @@ -3260,7 +3318,18 @@ "SIGNAL_TYPE_EXPOSED_TO_REMOTE_ACCESS", "SIGNAL_TYPE_DATABASE_NAMES_EXPOSED", "SIGNAL_TYPE_SENSITIVE_TRACE_INFO_NOT_MASKED", - "SIGNAL_TYPE_PUBLIC_IP_ENABLED" + "SIGNAL_TYPE_PUBLIC_IP_ENABLED", + "SIGNAL_TYPE_IDLE", + "SIGNAL_TYPE_OVERPROVISIONED", + "SIGNAL_TYPE_HIGH_NUMBER_OF_OPEN_TABLES", + "SIGNAL_TYPE_HIGH_NUMBER_OF_TABLES", + "SIGNAL_TYPE_HIGH_TRANSACTION_ID_UTILIZATION", + "SIGNAL_TYPE_UNDERPROVISIONED", + "SIGNAL_TYPE_OUT_OF_DISK", + "SIGNAL_TYPE_SERVER_CERTIFICATE_NEAR_EXPIRY", + "SIGNAL_TYPE_DATABASE_AUDITING_DISABLED", + "SIGNAL_TYPE_RESTRICT_AUTHORIZED_NETWORKS", + "SIGNAL_TYPE_VIOLATE_POLICY_RESTRICT_PUBLIC_IP" ], "enumDeprecated": [ false, @@ -3312,6 +3381,17 @@ false, false, false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, false ], "enumDescriptions": [ @@ -3333,7 +3413,7 @@ "Represents if a resource violates NIST 800-53.", "Represents if a resource violates ISO-27001.", "Represents if a resource violates PCI-DSS v3.2.1.", - "LINT.IfChange(scc_signals) Represents if log_checkpoints database flag for a Cloud SQL for PostgreSQL instance is not set to on.", + "Represents if log_checkpoints database flag for a Cloud SQL for PostgreSQL instance is not set to on.", "Represents if the log_duration database flag for a Cloud SQL for PostgreSQL instance is not set to on.", "Represents if the log_error_verbosity database flag for a Cloud SQL for PostgreSQL instance is not set to default or stricter (default or terse).", "Represents if the log_lock_waits database flag for a Cloud SQL for PostgreSQL instance is not set to on.", @@ -3364,7 +3444,18 @@ "Represents if the remote access database flag for a Cloud SQL for SQL Server instance is not set to off.", "Represents if the skip_show_database database flag for a Cloud SQL for MySQL instance is not set to on.", "Represents if the 3625 (trace flag) database flag for a Cloud SQL for SQL Server instance is not set to on.", - "Represents if public IP is enabled. LINT.ThenChange(//depot/google3/storage/databasecenter/ingestion/borgjob/message_adapter/health_signal_feed/health_signal_mapping.h)" + "Represents if public IP is enabled.", + "Represents Idle instance helps to reduce costs.", + "Represents instances that are unnecessarily large for given workload.", + "Represents high number of concurrently opened tables.", + "Represents high table count close to SLA limit.", + "Represents high number of unvacuumed transactions", + "Represents need for more CPU and/or memory", + "Represents out of disk.", + "Represents server certificate is near expiry.", + "Represents database auditing is disabled.", + "Represents not restricted to authorized networks.", + "Represents violate org policy restrict public ip." ], "type": "string" }, @@ -3417,7 +3508,7 @@ "type": "string" }, "resourceType": { - "description": "Required. The type of resource this ID is identifying. Ex alloydb.googleapis.com/Cluster, alloydb.googleapis.com/Instance, spanner.googleapis.com/Instance REQUIRED Please refer go/condor-common-datamodel", + "description": "Required. The type of resource this ID is identifying. Ex redis.googleapis.com/Instance, redis.googleapis.com/Cluster, alloydb.googleapis.com/Cluster, alloydb.googleapis.com/Instance, spanner.googleapis.com/Instance REQUIRED Please refer go/condor-common-datamodel", "type": "string" }, "uniqueId": { @@ -3469,12 +3560,15 @@ "type": "string" }, "customMetadata": { - "additionalProperties": { - "description": "Properties of the object.", - "type": "any" + "$ref": "StorageDatabasecenterPartnerapiV1mainCustomMetadataData", + "description": "Any custom metadata associated with the resource" + }, + "entitlements": { + "description": "Entitlements associated with the resource", + "items": { + "$ref": "StorageDatabasecenterPartnerapiV1mainEntitlement" }, - "description": "Any custom metadata associated with the resource (a JSON field)", - "type": "object" + "type": "array" }, "expectedState": { "description": "The state that the instance is expected to be in. For example, an instance state can transition to UNHEALTHY due to wrong patch update, while the expected state will remain at the HEALTHY.", @@ -3504,13 +3598,35 @@ "description": "The type of the instance. Specified at creation time.", "enum": [ "INSTANCE_TYPE_UNSPECIFIED", + "SUB_RESOURCE_TYPE_UNSPECIFIED", "PRIMARY", "SECONDARY", "READ_REPLICA", - "OTHER" + "OTHER", + "SUB_RESOURCE_TYPE_PRIMARY", + "SUB_RESOURCE_TYPE_SECONDARY", + "SUB_RESOURCE_TYPE_READ_REPLICA", + "SUB_RESOURCE_TYPE_OTHER" + ], + "enumDeprecated": [ + true, + false, + true, + true, + true, + true, + false, + false, + false, + false ], "enumDescriptions": [ "", + "For rest of the other categories.", + "A regular primary database instance.", + "A cluster or an instance acting as a secondary.", + "An instance acting as a read-replica.", + "For rest of the other categories.", "A regular primary database instance.", "A cluster or an instance acting as a secondary.", "An instance acting as a read-replica.", @@ -3531,7 +3647,7 @@ "description": "The product this resource represents." }, "resourceContainer": { - "description": "Closest parent Cloud Resource Manager container of this resource. It must be resource name of a Cloud Resource Manager project with the format of \"provider//\", such as \"gcp/projects/123\". For GCP provided resources, number should be project number.", + "description": "Closest parent Cloud Resource Manager container of this resource. It must be resource name of a Cloud Resource Manager project with the format of \"/\", such as \"projects/123\". For GCP provided resources, number should be project number.", "type": "string" }, "resourceName": { @@ -3553,6 +3669,288 @@ }, "type": "object" }, + "StorageDatabasecenterPartnerapiV1mainDatabaseResourceRecommendationSignalData": { + "description": "Common model for database resource recommendation signal data.", + "id": "StorageDatabasecenterPartnerapiV1mainDatabaseResourceRecommendationSignalData", + "properties": { + "additionalMetadata": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Required. Any other additional metadata specific to recommendation", + "type": "object" + }, + "lastRefreshTime": { + "description": "Required. last time recommendationw as refreshed", + "format": "google-datetime", + "type": "string" + }, + "recommendationState": { + "description": "Required. Recommendation state", + "enum": [ + "UNSPECIFIED", + "ACTIVE", + "CLAIMED", + "SUCCEEDED", + "FAILED", + "DISMISSED" + ], + "enumDescriptions": [ + "", + "Recommendation is active and can be applied. ACTIVE recommendations can be marked as CLAIMED, SUCCEEDED, or FAILED.", + "Recommendation is in claimed state. Recommendations content is immutable and cannot be updated by Google. CLAIMED recommendations can be marked as CLAIMED, SUCCEEDED, or FAILED.", + "Recommendation is in succeeded state. Recommendations content is immutable and cannot be updated by Google. SUCCEEDED recommendations can be marked as SUCCEEDED, or FAILED.", + "Recommendation is in failed state. Recommendations content is immutable and cannot be updated by Google. FAILED recommendations can be marked as SUCCEEDED, or FAILED.", + "Recommendation is in dismissed state. Recommendation content can be updated by Google. DISMISSED recommendations can be marked as ACTIVE." + ], + "type": "string" + }, + "recommender": { + "description": "Required. Name of recommendation. Examples: organizations/1234/locations/us-central1/recommenders/google.cloudsql.instance.PerformanceRecommender/recommendations/9876", + "type": "string" + }, + "recommenderId": { + "description": "Required. ID of recommender. Examples: \"google.cloudsql.instance.PerformanceRecommender\"", + "type": "string" + }, + "recommenderSubtype": { + "description": "Required. Contains an identifier for a subtype of recommendations produced for the same recommender. Subtype is a function of content and impact, meaning a new subtype might be added when significant changes to `content` or `primary_impact.category` are introduced. See the Recommenders section to see a list of subtypes for a given Recommender. Examples: For recommender = \"google.cloudsql.instance.PerformanceRecommender\", recommender_subtype can be \"MYSQL_HIGH_NUMBER_OF_OPEN_TABLES_BEST_PRACTICE\"/\"POSTGRES_HIGH_TRANSACTION_ID_UTILIZATION_BEST_PRACTICE\"", + "type": "string" + }, + "resourceName": { + "description": "Required. Database resource name associated with the signal. Resource name to follow CAIS resource_name format as noted here go/condor-common-datamodel", + "type": "string" + }, + "signalType": { + "description": "Required. Type of signal, for example, `SIGNAL_TYPE_IDLE`, `SIGNAL_TYPE_HIGH_NUMBER_OF_TABLES`, etc.", + "enum": [ + "SIGNAL_TYPE_UNSPECIFIED", + "SIGNAL_TYPE_NOT_PROTECTED_BY_AUTOMATIC_FAILOVER", + "SIGNAL_TYPE_GROUP_NOT_REPLICATING_ACROSS_REGIONS", + "SIGNAL_TYPE_NOT_AVAILABLE_IN_MULTIPLE_ZONES", + "SIGNAL_TYPE_NOT_AVAILABLE_IN_MULTIPLE_REGIONS", + "SIGNAL_TYPE_NO_PROMOTABLE_REPLICA", + "SIGNAL_TYPE_NO_AUTOMATED_BACKUP_POLICY", + "SIGNAL_TYPE_SHORT_BACKUP_RETENTION", + "SIGNAL_TYPE_LAST_BACKUP_FAILED", + "SIGNAL_TYPE_LAST_BACKUP_OLD", + "SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_2_0", + "SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_3", + "SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_2", + "SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_1", + "SIGNAL_TYPE_VIOLATES_CIS_GCP_FOUNDATION_1_0", + "SIGNAL_TYPE_VIOLATES_NIST_800_53", + "SIGNAL_TYPE_VIOLATES_ISO_27001", + "SIGNAL_TYPE_VIOLATES_PCI_DSS_V3_2_1", + "SIGNAL_TYPE_LOGS_NOT_OPTIMIZED_FOR_TROUBLESHOOTING", + "SIGNAL_TYPE_QUERY_DURATIONS_NOT_LOGGED", + "SIGNAL_TYPE_VERBOSE_ERROR_LOGGING", + "SIGNAL_TYPE_QUERY_LOCK_WAITS_NOT_LOGGED", + "SIGNAL_TYPE_LOGGING_MOST_ERRORS", + "SIGNAL_TYPE_LOGGING_ONLY_CRITICAL_ERRORS", + "SIGNAL_TYPE_MINIMAL_ERROR_LOGGING", + "SIGNAL_TYPE_QUERY_STATISTICS_LOGGED", + "SIGNAL_TYPE_EXCESSIVE_LOGGING_OF_CLIENT_HOSTNAME", + "SIGNAL_TYPE_EXCESSIVE_LOGGING_OF_PARSER_STATISTICS", + "SIGNAL_TYPE_EXCESSIVE_LOGGING_OF_PLANNER_STATISTICS", + "SIGNAL_TYPE_NOT_LOGGING_ONLY_DDL_STATEMENTS", + "SIGNAL_TYPE_LOGGING_QUERY_STATISTICS", + "SIGNAL_TYPE_NOT_LOGGING_TEMPORARY_FILES", + "SIGNAL_TYPE_CONNECTION_MAX_NOT_CONFIGURED", + "SIGNAL_TYPE_USER_OPTIONS_CONFIGURED", + "SIGNAL_TYPE_EXPOSED_TO_PUBLIC_ACCESS", + "SIGNAL_TYPE_UNENCRYPTED_CONNECTIONS", + "SIGNAL_TYPE_NO_ROOT_PASSWORD", + "SIGNAL_TYPE_WEAK_ROOT_PASSWORD", + "SIGNAL_TYPE_ENCRYPTION_KEY_NOT_CUSTOMER_MANAGED", + "SIGNAL_TYPE_SERVER_AUTHENTICATION_NOT_REQUIRED", + "SIGNAL_TYPE_EXPOSED_BY_OWNERSHIP_CHAINING", + "SIGNAL_TYPE_EXPOSED_TO_EXTERNAL_SCRIPTS", + "SIGNAL_TYPE_EXPOSED_TO_LOCAL_DATA_LOADS", + "SIGNAL_TYPE_CONNECTION_ATTEMPTS_NOT_LOGGED", + "SIGNAL_TYPE_DISCONNECTIONS_NOT_LOGGED", + "SIGNAL_TYPE_LOGGING_EXCESSIVE_STATEMENT_INFO", + "SIGNAL_TYPE_EXPOSED_TO_REMOTE_ACCESS", + "SIGNAL_TYPE_DATABASE_NAMES_EXPOSED", + "SIGNAL_TYPE_SENSITIVE_TRACE_INFO_NOT_MASKED", + "SIGNAL_TYPE_PUBLIC_IP_ENABLED", + "SIGNAL_TYPE_IDLE", + "SIGNAL_TYPE_OVERPROVISIONED", + "SIGNAL_TYPE_HIGH_NUMBER_OF_OPEN_TABLES", + "SIGNAL_TYPE_HIGH_NUMBER_OF_TABLES", + "SIGNAL_TYPE_HIGH_TRANSACTION_ID_UTILIZATION", + "SIGNAL_TYPE_UNDERPROVISIONED", + "SIGNAL_TYPE_OUT_OF_DISK", + "SIGNAL_TYPE_SERVER_CERTIFICATE_NEAR_EXPIRY", + "SIGNAL_TYPE_DATABASE_AUDITING_DISABLED", + "SIGNAL_TYPE_RESTRICT_AUTHORIZED_NETWORKS", + "SIGNAL_TYPE_VIOLATE_POLICY_RESTRICT_PUBLIC_IP" + ], + "enumDeprecated": [ + false, + false, + false, + true, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Unspecified.", + "Represents if a resource is protected by automatic failover. Checks for resources that are configured to have redundancy within a region that enables automatic failover.", + "Represents if a group is replicating across regions. Checks for resources that are configured to have redundancy, and ongoing replication, across regions.", + "Represents if the resource is available in multiple zones or not.", + "Represents if a resource is available in multiple regions.", + "Represents if a resource has a promotable replica.", + "Represents if a resource has an automated backup policy.", + "Represents if a resources has a short backup retention period.", + "Represents if the last backup of a resource failed.", + "Represents if the last backup of a resource is older than some threshold value.", + "Represents if a resource violates CIS GCP Foundation 2.0.", + "Represents if a resource violates CIS GCP Foundation 1.3.", + "Represents if a resource violates CIS GCP Foundation 1.2.", + "Represents if a resource violates CIS GCP Foundation 1.1.", + "Represents if a resource violates CIS GCP Foundation 1.0.", + "Represents if a resource violates NIST 800-53.", + "Represents if a resource violates ISO-27001.", + "Represents if a resource violates PCI-DSS v3.2.1.", + "Represents if log_checkpoints database flag for a Cloud SQL for PostgreSQL instance is not set to on.", + "Represents if the log_duration database flag for a Cloud SQL for PostgreSQL instance is not set to on.", + "Represents if the log_error_verbosity database flag for a Cloud SQL for PostgreSQL instance is not set to default or stricter (default or terse).", + "Represents if the log_lock_waits database flag for a Cloud SQL for PostgreSQL instance is not set to on.", + "Represents if the log_min_error_statement database flag for a Cloud SQL for PostgreSQL instance is not set appropriately.", + "Represents if the log_min_error_statement database flag for a Cloud SQL for PostgreSQL instance does not have an appropriate severity level.", + "Represents if the log_min_messages database flag for a Cloud SQL for PostgreSQL instance is not set to warning or another recommended value.", + "Represents if the databaseFlags property of instance metadata for the log_executor_status field is set to on.", + "Represents if the log_hostname database flag for a Cloud SQL for PostgreSQL instance is not set to off.", + "Represents if the log_parser_stats database flag for a Cloud SQL for PostgreSQL instance is not set to off.", + "Represents if the log_planner_stats database flag for a Cloud SQL for PostgreSQL instance is not set to off.", + "Represents if the log_statement database flag for a Cloud SQL for PostgreSQL instance is not set to DDL (all data definition statements).", + "Represents if the log_statement_stats database flag for a Cloud SQL for PostgreSQL instance is not set to off.", + "Represents if the log_temp_files database flag for a Cloud SQL for PostgreSQL instance is not set to \"0\". (NOTE: 0 = ON)", + "Represents if the user connections database flag for a Cloud SQL for SQL Server instance is configured.", + "Represents if the user options database flag for Cloud SQL SQL Server instance is configured or not.", + "Represents if a resource is exposed to public access.", + "Represents if a resources requires all incoming connections to use SSL or not.", + "Represents if a Cloud SQL database has a password configured for the root account or not.", + "Represents if a Cloud SQL database has a weak password configured for the root account.", + "Represents if a SQL database instance is not encrypted with customer-managed encryption keys (CMEK).", + "Represents if The contained database authentication database flag for a Cloud SQL for SQL Server instance is not set to off.", + "Represents if the cross_db_ownership_chaining database flag for a Cloud SQL for SQL Server instance is not set to off.", + "Represents if he external scripts enabled database flag for a Cloud SQL for SQL Server instance is not set to off.", + "Represents if the local_infile database flag for a Cloud SQL for MySQL instance is not set to off.", + "Represents if the log_connections database flag for a Cloud SQL for PostgreSQL instance is not set to on.", + "Represents if the log_disconnections database flag for a Cloud SQL for PostgreSQL instance is not set to on.", + "Represents if the log_min_duration_statement database flag for a Cloud SQL for PostgreSQL instance is not set to -1.", + "Represents if the remote access database flag for a Cloud SQL for SQL Server instance is not set to off.", + "Represents if the skip_show_database database flag for a Cloud SQL for MySQL instance is not set to on.", + "Represents if the 3625 (trace flag) database flag for a Cloud SQL for SQL Server instance is not set to on.", + "Represents if public IP is enabled.", + "Represents Idle instance helps to reduce costs.", + "Represents instances that are unnecessarily large for given workload.", + "Represents high number of concurrently opened tables.", + "Represents high table count close to SLA limit.", + "Represents high number of unvacuumed transactions", + "Represents need for more CPU and/or memory", + "Represents out of disk.", + "Represents server certificate is near expiry.", + "Represents database auditing is disabled.", + "Represents not restricted to authorized networks.", + "Represents violate org policy restrict public ip." + ], + "type": "string" + } + }, + "type": "object" + }, + "StorageDatabasecenterPartnerapiV1mainEntitlement": { + "description": "Proto representing the access that a user has to a specific feature/service. NextId: 3.", + "id": "StorageDatabasecenterPartnerapiV1mainEntitlement", + "properties": { + "entitlementState": { + "description": "The current state of user's accessibility to a feature/benefit.", + "enum": [ + "ENTITLEMENT_STATE_UNSPECIFIED", + "ENTITLED", + "REVOKED" + ], + "enumDescriptions": [ + "", + "User is entitled to a feature/benefit, but whether it has been successfully provisioned is decided by provisioning state.", + "User is entitled to a feature/benefit, but it was requested to be revoked. Whether the revoke has been successful is decided by provisioning state." + ], + "type": "string" + }, + "type": { + "description": "An enum that represents the type of this entitlement.", + "enum": [ + "ENTITLEMENT_TYPE_UNSPECIFIED", + "DUET_AI" + ], + "enumDescriptions": [ + "", + "The root entitlement representing Duet AI package ownership." + ], + "type": "string" + } + }, + "type": "object" + }, "StorageDatabasecenterPartnerapiV1mainOperationError": { "description": "An error that occurred during a backup creation operation.", "id": "StorageDatabasecenterPartnerapiV1mainOperationError", @@ -3606,20 +4004,50 @@ "description": "The specific engine that the underlying database is running.", "enum": [ "ENGINE_UNSPECIFIED", + "ENGINE_MYSQL", "MYSQL", + "ENGINE_POSTGRES", "POSTGRES", + "ENGINE_SQL_SERVER", "SQL_SERVER", + "ENGINE_NATIVE", "NATIVE", - "SPANGRES", + "ENGINE_CLOUD_SPANNER_WITH_POSTGRES_DIALECT", + "ENGINE_CLOUD_SPANNER_WITH_GOOGLESQL_DIALECT", + "ENGINE_MEMORYSTORE_FOR_REDIS", + "ENGINE_MEMORYSTORE_FOR_REDIS_CLUSTER", "ENGINE_OTHER" ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true, + false, + false, + false, + false, + false + ], "enumDescriptions": [ "UNSPECIFIED means engine type is not known or available.", + "MySQL binary running as an engine in the database instance.", "MySQL binary running as engine in database instance.", "Postgres binary running as engine in database instance.", + "Postgres binary running as engine in database instance.", "SQLServer binary running as engine in database instance.", + "SQLServer binary running as engine in database instance.", + "Native database binary running as engine in instance.", "Native database binary running as engine in instance.", - "Cloud Spanner with Postgres dialect.", + "Cloud Spanner with PostgreSQL dialect.", + "Cloud Spanner with Google SQL dialect.", + "Memorystore with Redis dialect.", + "Memorystore with Redis cluster dialect.", "Other refers to rest of other database engine. This is to be when engine is known, but it is not present in this enum." ], "type": "string" @@ -3628,18 +4056,38 @@ "description": "Type of specific database product. It could be CloudSQL, AlloyDB etc..", "enum": [ "PRODUCT_TYPE_UNSPECIFIED", + "PRODUCT_TYPE_CLOUD_SQL", "CLOUD_SQL", + "PRODUCT_TYPE_ALLOYDB", "ALLOYDB", - "SPANNER", + "PRODUCT_TYPE_SPANNER", + "PRODUCT_TYPE_ON_PREM", "ON_PREM", + "PRODUCT_TYPE_MEMORYSTORE", "PRODUCT_TYPE_OTHER" ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + false, + true, + false, + false + ], "enumDescriptions": [ "UNSPECIFIED means product type is not known or available.", "Cloud SQL product area in GCP", + "Cloud SQL product area in GCP", + "AlloyDB product area in GCP", "AlloyDB product area in GCP", "Spanner product area in GCP", "On premises database product.", + "On premises database product.", + "Memorystore product area in GCP", "Other refers to rest of other product type. This is to be when product type is known, but it is not present in this enum." ], "type": "string" diff --git a/discovery/googleapis/analyticshub__v1.json b/discovery/googleapis/analyticshub__v1.json index c83ef5889..c1c1ca0e7 100644 --- a/discovery/googleapis/analyticshub__v1.json +++ b/discovery/googleapis/analyticshub__v1.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231016", + "revision": "20240219", "rootUrl": "https://analyticshub.googleapis.com/", "servicePath": "", "title": "Analytics Hub API", @@ -861,6 +861,35 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "getIamPolicy": { + "description": "Gets the IAM policy.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/subscriptions/{subscriptionsId}:getIamPolicy", + "httpMethod": "POST", + "id": "analyticshub.projects.locations.subscriptions.getIamPolicy", + "parameterOrder": [ + "resource" + ], + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/subscriptions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "request": { + "$ref": "GetIamPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "list": { "description": "Lists all subscriptions in a given project and location.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/subscriptions", @@ -960,6 +989,35 @@ "https://www.googleapis.com/auth/bigquery", "https://www.googleapis.com/auth/cloud-platform" ] + }, + "setIamPolicy": { + "description": "Sets the IAM policy.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/subscriptions/{subscriptionsId}:setIamPolicy", + "httpMethod": "POST", + "id": "analyticshub.projects.locations.subscriptions.setIamPolicy", + "parameterOrder": [ + "resource" + ], + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/subscriptions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:setIamPolicy", + "request": { + "$ref": "SetIamPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] } } } @@ -1037,14 +1095,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -1111,7 +1169,18 @@ "DcrExchangeConfig": { "description": "Data Clean Room (DCR), used for privacy-safe and secured data sharing.", "id": "DcrExchangeConfig", - "properties": {}, + "properties": { + "singleLinkedDatasetPerCleanroom": { + "description": "Output only. If True, when subscribing to this DCR, it will create only one linked dataset containing all resources shared within the cleanroom. If False, when subscribing to this DCR, it will create 1 linked dataset per listing. This is not configurable, and by default, all new DCRs will have the restriction set to True.", + "readOnly": true, + "type": "boolean" + }, + "singleSelectedResourceSharingRestriction": { + "description": "Output only. If True, this DCR restricts the contributors to sharing only a single resource in a Listing. And no two resources should have the same IDs. So if a contributor adds a view with a conflicting name, the CreateListing API will reject the request. if False, the data contributor can publish an entire dataset (as before). This is not configurable, and by default, all new DCRs will have the restriction set to True.", + "readOnly": true, + "type": "boolean" + } + }, "type": "object" }, "DefaultExchangeConfig": { diff --git a/discovery/googleapis/analyticsreporting__v4.json b/discovery/googleapis/analyticsreporting__v4.json index 34dcf2aee..a96fb0e65 100644 --- a/discovery/googleapis/analyticsreporting__v4.json +++ b/discovery/googleapis/analyticsreporting__v4.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20230626", + "revision": "20240123", "rootUrl": "https://analyticsreporting.googleapis.com/", "servicePath": "", "title": "Analytics Reporting API", diff --git a/discovery/googleapis/androiddeviceprovisioning__v1.json b/discovery/googleapis/androiddeviceprovisioning__v1.json index a8d732060..1e9438bc8 100644 --- a/discovery/googleapis/androiddeviceprovisioning__v1.json +++ b/discovery/googleapis/androiddeviceprovisioning__v1.json @@ -16,7 +16,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240227", "rootUrl": "https://androiddeviceprovisioning.googleapis.com/", "servicePath": "", "title": "Android Device Provisioning Partner API", diff --git a/discovery/googleapis/androidenterprise__v1.json b/discovery/googleapis/androidenterprise__v1.json index 9708410f0..b57397430 100644 --- a/discovery/googleapis/androidenterprise__v1.json +++ b/discovery/googleapis/androidenterprise__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240227", "rootUrl": "https://androidenterprise.googleapis.com/", "servicePath": "", "title": "Google Play EMM API", diff --git a/discovery/googleapis/androidmanagement__v1.json b/discovery/googleapis/androidmanagement__v1.json index ff78fd55c..b27c46a5b 100644 --- a/discovery/googleapis/androidmanagement__v1.json +++ b/discovery/googleapis/androidmanagement__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231113", + "revision": "20240221", "rootUrl": "https://androidmanagement.googleapis.com/", "servicePath": "", "title": "Android Management API", @@ -152,7 +152,7 @@ ] }, "delete": { - "description": "Deletes an enterprise. Only available for EMM-managed enterprises.", + "description": "Permanently deletes an enterprise and all accounts and data associated with it. Warning: this will result in a cascaded deletion of all AM API devices associated with the deleted enterprise. Only available for EMM-managed enterprises.", "flatPath": "v1/enterprises/{enterprisesId}", "httpMethod": "DELETE", "id": "androidmanagement.enterprises.delete", @@ -516,31 +516,6 @@ "https://www.googleapis.com/auth/androidmanagement" ] }, - "delete": { - "description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns google.rpc.Code.UNIMPLEMENTED.", - "flatPath": "v1/enterprises/{enterprisesId}/devices/{devicesId}/operations/{operationsId}", - "httpMethod": "DELETE", - "id": "androidmanagement.enterprises.devices.operations.delete", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "The name of the operation resource to be deleted.", - "location": "path", - "pattern": "^enterprises/[^/]+/devices/[^/]+/operations/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/{+name}", - "response": { - "$ref": "Empty" - }, - "scopes": [ - "https://www.googleapis.com/auth/androidmanagement" - ] - }, "get": { "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", "flatPath": "v1/enterprises/{enterprisesId}/devices/{devicesId}/operations/{operationsId}", @@ -729,6 +704,99 @@ } } }, + "migrationTokens": { + "methods": { + "create": { + "description": "Creates a migration token, to migrate an existing device from being managed by the EMM's Device Policy Controller (DPC) to being managed by the Android Management API.", + "flatPath": "v1/enterprises/{enterprisesId}/migrationTokens", + "httpMethod": "POST", + "id": "androidmanagement.enterprises.migrationTokens.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The enterprise in which this migration token will be created. Format: enterprises/{enterprise}", + "location": "path", + "pattern": "^enterprises/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/migrationTokens", + "request": { + "$ref": "MigrationToken" + }, + "response": { + "$ref": "MigrationToken" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidmanagement" + ] + }, + "get": { + "description": "Gets a migration token.", + "flatPath": "v1/enterprises/{enterprisesId}/migrationTokens/{migrationTokensId}", + "httpMethod": "GET", + "id": "androidmanagement.enterprises.migrationTokens.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the migration token to retrieve. Format: enterprises/{enterprise}/migrationTokens/{migration_token}", + "location": "path", + "pattern": "^enterprises/[^/]+/migrationTokens/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "MigrationToken" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidmanagement" + ] + }, + "list": { + "description": "Lists migration tokens.", + "flatPath": "v1/enterprises/{enterprisesId}/migrationTokens", + "httpMethod": "GET", + "id": "androidmanagement.enterprises.migrationTokens.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of migration tokens to return. Fewer migration tokens may be returned. If unspecified, at most 100 migration tokens will be returned. The maximum value is 100; values above 100 will be coerced to 100.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous ListMigrationTokens call. Provide this to retrieve the subsequent page.When paginating, all other parameters provided to ListMigrationTokens must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The enterprise which the migration tokens belong to. Format: enterprises/{enterprise}", + "location": "path", + "pattern": "^enterprises/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/migrationTokens", + "response": { + "$ref": "ListMigrationTokensResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidmanagement" + ] + } + } + }, "policies": { "methods": { "delete": { @@ -1118,7 +1186,7 @@ "type": "object" }, "AdvancedSecurityOverrides": { - "description": "Security policies set to secure values by default. To maintain the security posture of a device, we don't recommend overriding any of the default values.", + "description": "Advanced security settings. In most cases, setting these is not needed.", "id": "AdvancedSecurityOverrides", "properties": { "commonCriteriaMode": { @@ -1163,6 +1231,22 @@ ], "type": "string" }, + "mtePolicy": { + "description": "Optional. Controls Memory Tagging Extension (MTE) (https://source.android.com/docs/security/test/memory-safety/arm-mte) on the device. The device needs to be rebooted to apply changes to the MTE policy.", + "enum": [ + "MTE_POLICY_UNSPECIFIED", + "MTE_USER_CHOICE", + "MTE_ENFORCED", + "MTE_DISABLED" + ], + "enumDescriptions": [ + "Unspecified. Defaults to MTE_USER_CHOICE.", + "The user can choose to enable or disable MTE on the device if the device supports this.", + "MTE is enabled on the device and the user is not allowed to change this setting. This can be set on fully managed devices and work profiles on company-owned devices. A nonComplianceDetail with MANAGEMENT_MODE is reported for other management modes. A nonComplianceDetail with DEVICE_INCOMPATIBLE is reported if the device does not support MTE.Supported on Android 14 and above. A nonComplianceDetail with API_LEVEL is reported if the Android version is less than 14.", + "MTE is disabled on the device and the user is not allowed to change this setting. This applies only on fully managed devices. In other cases, a nonComplianceDetail with MANAGEMENT_MODE is reported. A nonComplianceDetail with DEVICE_INCOMPATIBLE is reported if the device does not support MTE.Supported on Android 14 and above. A nonComplianceDetail with API_LEVEL is reported if the Android version is less than 14." + ], + "type": "string" + }, "personalAppsThatCanReadWorkNotifications": { "description": "Personal apps that can read work profile notifications using a NotificationListenerService (https://developer.android.com/reference/android/service/notification/NotificationListenerService). By default, no personal apps (aside from system apps) can read work notifications. Each value in the list must be a package name.", "items": { @@ -1536,7 +1620,7 @@ "type": "object" }, "ApplicationPolicy": { - "description": "Policy for an individual app. Note: Application availability on a given device cannot be changed using this policy if installAppsDisabled is enabled. The maximum number of applications that you can specify per enterprise policy is 3,000.", + "description": "Policy for an individual app. Note: Application availability on a given device cannot be changed using this policy if installAppsDisabled is enabled. The maximum number of applications that you can specify per policy is 3,000.", "id": "ApplicationPolicy", "properties": { "accessibleTrackIds": { @@ -1590,6 +1674,18 @@ ], "type": "string" }, + "credentialProviderPolicy": { + "description": "Optional. Whether the app is allowed to act as a credential provider on Android 14 and above.", + "enum": [ + "CREDENTIAL_PROVIDER_POLICY_UNSPECIFIED", + "CREDENTIAL_PROVIDER_ALLOWED" + ], + "enumDescriptions": [ + "Unspecified. The behaviour is governed by credentialProviderPolicyDefault.", + "App is allowed to act as a credential provider." + ], + "type": "string" + }, "defaultPermissionPolicy": { "description": "The default policy for all permissions requested by the app. If specified, this overrides the policy-level default_permission_policy which applies to all apps. It does not override the permission_grants which applies to all apps.", "enum": [ @@ -1601,7 +1697,7 @@ "enumDescriptions": [ "Policy not specified. If no policy is specified for a permission at any level, then the PROMPT behavior is used by default.", "Prompt the user to grant a permission.", - "Automatically grant a permission.", + "Automatically grant a permission.On Android 12 and above, Manifest.permission.READ_SMS (https://developer.android.com/reference/android/Manifest.permission#READ_SMS) and following sensor-related permissions can only be granted on fully managed devices: Manifest.permission.ACCESS_FINE_LOCATION (https://developer.android.com/reference/android/Manifest.permission#ACCESS_FINE_LOCATION) Manifest.permission.ACCESS_BACKGROUND_LOCATION (https://developer.android.com/reference/android/Manifest.permission#ACCESS_BACKGROUND_LOCATION) Manifest.permission.ACCESS_COARSE_LOCATION (https://developer.android.com/reference/android/Manifest.permission#ACCESS_COARSE_LOCATION) Manifest.permission.CAMERA (https://developer.android.com/reference/android/Manifest.permission#CAMERA) Manifest.permission.RECORD_AUDIO (https://developer.android.com/reference/android/Manifest.permission#RECORD_AUDIO) Manifest.permission.ACTIVITY_RECOGNITION (https://developer.android.com/reference/android/Manifest.permission#ACTIVITY_RECOGNITION) Manifest.permission.BODY_SENSORS (https://developer.android.com/reference/android/Manifest.permission#BODY_SENSORS)", "Automatically deny a permission." ], "type": "string" @@ -1645,6 +1741,18 @@ "$ref": "ExtensionConfig", "description": "Configuration to enable this app as an extension app, with the capability of interacting with Android Device Policy offline.This field can be set for at most one app." }, + "installConstraint": { + "description": "Optional. The constraints for installing the app. You can specify a maximum of one InstallConstraint. Multiple constraints are rejected.", + "items": { + "$ref": "InstallConstraint" + }, + "type": "array" + }, + "installPriority": { + "description": "Optional. Amongst apps with installType set to: FORCE_INSTALLED PREINSTALLEDthis controls the relative priority of installation. A value of 0 (default) means this app has no priority over other apps. For values between 1 and 10,000, a lower value means a higher priority. Values outside of the range 0 to 10,000 inclusive are rejected.", + "format": "int32", + "type": "integer" + }, "installType": { "description": "The type of installation to perform.", "enum": [ @@ -2363,7 +2471,8 @@ "DISABLED", "DELETED", "PROVISIONING", - "LOST" + "LOST", + "PREPARING_FOR_MIGRATION" ], "enumDescriptions": [ "This value is disallowed.", @@ -2371,7 +2480,8 @@ "The device is disabled.", "The device was deleted. This state is never returned by an API call, but is used in the final status report when the device acknowledges the deletion. If the device is deleted via the API call, this state is published to Pub/Sub. If the user deletes the work profile or resets the device, the device state will remain unknown to the server.", "The device is being provisioned. Newly enrolled devices are in this state until they have a policy applied.", - "The device is lost. This state is only possible on organization-owned devices." + "The device is lost. This state is only possible on organization-owned devices.", + "The device is preparing for migrating to Android Management API. No further action is needed for the migration to continue." ], "type": "string" }, @@ -2394,6 +2504,11 @@ }, "type": "array" }, + "dpcMigrationInfo": { + "$ref": "DpcMigrationInfo", + "description": "Output only. Information related to whether this device was migrated from being managed by another Device Policy Controller (DPC).", + "readOnly": true + }, "enrollmentTime": { "description": "The time of device enrollment.", "format": "google-datetime", @@ -2449,7 +2564,7 @@ "type": "string" }, "memoryEvents": { - "description": "Events related to memory and storage measurements in chronological order. This information is only available if memoryInfoEnabled is true in the device's policy.", + "description": "Events related to memory and storage measurements in chronological order. This information is only available if memoryInfoEnabled is true in the device's policy.Events are retained for a certain period of time and old events are deleted.", "items": { "$ref": "MemoryEvent" }, @@ -2526,7 +2641,8 @@ "DISABLED", "DELETED", "PROVISIONING", - "LOST" + "LOST", + "PREPARING_FOR_MIGRATION" ], "enumDescriptions": [ "This value is disallowed.", @@ -2534,7 +2650,8 @@ "The device is disabled.", "The device was deleted. This state is never returned by an API call, but is used in the final status report when the device acknowledges the deletion. If the device is deleted via the API call, this state is published to Pub/Sub. If the user deletes the work profile or resets the device, the device state will remain unknown to the server.", "The device is being provisioned. Newly enrolled devices are in this state until they have a policy applied.", - "The device is lost. This state is only possible on organization-owned devices." + "The device is lost. This state is only possible on organization-owned devices.", + "The device is preparing for migrating to Android Management API. No further action is needed for the migration to continue." ], "type": "string" }, @@ -2657,6 +2774,22 @@ ], "type": "string" }, + "minimumWifiSecurityLevel": { + "description": "The minimum required security level of Wi-Fi networks that the device can connect to.", + "enum": [ + "MINIMUM_WIFI_SECURITY_LEVEL_UNSPECIFIED", + "OPEN_NETWORK_SECURITY", + "PERSONAL_NETWORK_SECURITY", + "ENTERPRISE_NETWORK_SECURITY" + ], + "enumDescriptions": [ + "Defaults to OPEN_NETWORK_SECURITY, which means the device will be able to connect to all types of Wi-Fi networks.", + "The device will be able to connect to all types of Wi-Fi networks.", + "A personal network such as WEP, WPA2-PSK is the minimum required security. The device will not be able to connect to open wifi networks. This is stricter than OPEN_NETWORK_SECURITY. A nonComplianceDetail with API_LEVEL is reported if the Android version is less than 13.", + "An enterprise EAP network is the minimum required security level. The device will not be able to connect to Wi-Fi network below this security level. This is stricter than PERSONAL_NETWORK_SECURITY. A nonComplianceDetail with API_LEVEL is reported if the Android version is less than 13." + ], + "type": "string" + }, "ultraWidebandState": { "description": "Controls the state of the ultra wideband setting and whether the user can toggle it on or off.", "enum": [ @@ -2824,6 +2957,23 @@ }, "type": "object" }, + "DpcMigrationInfo": { + "description": "Information related to whether this device was migrated from being managed by another Device Policy Controller (DPC).", + "id": "DpcMigrationInfo", + "properties": { + "additionalData": { + "description": "Output only. If this device was migrated from another DPC, the additionalData field of the migration token is populated here.", + "readOnly": true, + "type": "string" + }, + "previousDpc": { + "description": "Output only. If this device was migrated from another DPC, this is its package name. Not populated otherwise.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "Empty": { "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": "Empty", @@ -3207,6 +3357,55 @@ }, "type": "object" }, + "InstallConstraint": { + "description": "Amongst apps with InstallType set to: FORCE_INSTALLED PREINSTALLEDthis defines a set of restrictions for the app installation. At least one of the fields must be set. When multiple fields are set, then all the constraints need to be satisfied for the app to be installed.", + "id": "InstallConstraint", + "properties": { + "chargingConstraint": { + "description": "Optional. Charging constraint.", + "enum": [ + "CHARGING_CONSTRAINT_UNSPECIFIED", + "CHARGING_NOT_REQUIRED", + "INSTALL_ONLY_WHEN_CHARGING" + ], + "enumDescriptions": [ + "Unspecified. Default to CHARGING_NOT_REQUIRED.", + "Device doesn't have to be charging.", + "Device has to be charging." + ], + "type": "string" + }, + "deviceIdleConstraint": { + "description": "Optional. Device idle constraint.", + "enum": [ + "DEVICE_IDLE_CONSTRAINT_UNSPECIFIED", + "DEVICE_IDLE_NOT_REQUIRED", + "INSTALL_ONLY_WHEN_DEVICE_IDLE" + ], + "enumDescriptions": [ + "Unspecified. Default to DEVICE_IDLE_NOT_REQUIRED.", + "Device doesn't have to be idle, app can be installed while the user is interacting with the device.", + "Device has to be idle." + ], + "type": "string" + }, + "networkTypeConstraint": { + "description": "Optional. Network type constraint.", + "enum": [ + "NETWORK_TYPE_CONSTRAINT_UNSPECIFIED", + "INSTALL_ON_ANY_NETWORK", + "INSTALL_ONLY_ON_UNMETERED_NETWORK" + ], + "enumDescriptions": [ + "Unspecified. Default to INSTALL_ON_ANY_NETWORK.", + "Any active networks (Wi-Fi, cellular, etc.).", + "Any unmetered network (e.g. Wi-FI)." + ], + "type": "string" + } + }, + "type": "object" + }, "IssueCommandResponse": { "description": "Response on issuing a command. This is currently empty as a placeholder.", "id": "IssueCommandResponse", @@ -3505,6 +3704,24 @@ }, "type": "object" }, + "ListMigrationTokensResponse": { + "description": "Response to a request to list migration tokens for a given enterprise.", + "id": "ListMigrationTokensResponse", + "properties": { + "migrationTokens": { + "description": "The migration tokens from the specified enterprise.", + "items": { + "$ref": "MigrationToken" + }, + "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" + }, "ListOperationsResponse": { "description": "The response message for Operations.ListOperations.", "id": "ListOperationsResponse", @@ -3743,7 +3960,7 @@ "type": "object" }, "MemoryEvent": { - "description": "An event related to memory and storage measurements.", + "description": "An event related to memory and storage measurements.To distinguish between new and old events, we recommend using the createTime field.", "id": "MemoryEvent", "properties": { "byteCount": { @@ -3796,6 +4013,76 @@ }, "type": "object" }, + "MigrationToken": { + "description": "A token to initiate the migration of a device from being managed by a third-party DPC to being managed by Android Management API. A migration token is valid only for a single device.", + "id": "MigrationToken", + "properties": { + "additionalData": { + "description": "Immutable. Optional EMM-specified additional data. Once the device is migrated this will be populated in the migrationAdditionalData field of the Device resource. This must be at most 1024 characters.", + "type": "string" + }, + "createTime": { + "description": "Output only. Time when this migration token was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "device": { + "description": "Output only. Once this migration token is used to migrate a device, the name of the resulting Device resource will be populated here, in the form enterprises/{enterprise}/devices/{device}.", + "readOnly": true, + "type": "string" + }, + "deviceId": { + "description": "Required. Immutable. The id of the device, as in the Play EMM API. This corresponds to the deviceId parameter in Play EMM API's Devices.get (https://developers.google.com/android/work/play/emm-api/v1/devices/get#parameters) call.", + "type": "string" + }, + "expireTime": { + "description": "Immutable. The time when this migration token expires. This can be at most seven days from the time of creation. The migration token is deleted seven days after it expires.", + "format": "google-datetime", + "type": "string" + }, + "managementMode": { + "description": "Required. Immutable. The management mode of the device or profile being migrated.", + "enum": [ + "MANAGEMENT_MODE_UNSPECIFIED", + "WORK_PROFILE_PERSONALLY_OWNED", + "WORK_PROFILE_COMPANY_OWNED", + "FULLY_MANAGED" + ], + "enumDescriptions": [ + "This value must not be used.", + "A work profile on a personally owned device. Supported only on devices running Android 9 and above.", + "A work profile on a company-owned device. Supported only on devices running Android 11 and above.", + "A fully-managed device. Supported only on devices running Android 9 and above." + ], + "type": "string" + }, + "name": { + "description": "Output only. The name of the migration token, which is generated by the server during creation, in the form enterprises/{enterprise}/migrationTokens/{migration_token}.", + "readOnly": true, + "type": "string" + }, + "policy": { + "description": "Required. Immutable. The name of the policy initially applied to the enrolled device, in the form enterprises/{enterprise}/policies/{policy}.", + "type": "string" + }, + "ttl": { + "description": "Input only. The time that this migration token is valid for. This is input-only, and for returning a migration token the server will populate the expireTime field. This can be at most seven days. The default is seven days.", + "format": "google-duration", + "type": "string" + }, + "userId": { + "description": "Required. Immutable. The user id of the Managed Google Play account on the device, as in the Play EMM API. This corresponds to the userId parameter in Play EMM API's Devices.get (https://developers.google.com/android/work/play/emm-api/v1/devices/get#parameters) call.", + "type": "string" + }, + "value": { + "description": "Output only. The value of the migration token.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "NetworkInfo": { "description": "Device network info.", "id": "NetworkInfo", @@ -3926,7 +4213,9 @@ "PASSWORD_POLICIES_PASSWORD_NOT_SUFFICIENT", "ONC_WIFI_INVALID_VALUE", "ONC_WIFI_API_LEVEL", - "ONC_WIFI_INVALID_ENTERPRISE_CONFIG" + "ONC_WIFI_INVALID_ENTERPRISE_CONFIG", + "ONC_WIFI_USER_SHOULD_REMOVE_NETWORK", + "ONC_WIFI_KEY_PAIR_ALIAS_NOT_CORRESPONDING_TO_EXISTING_KEY" ], "enumDescriptions": [ "Specific non-compliance reason is not specified. Fields in specific_non_compliance_context are not set.", @@ -3935,7 +4224,9 @@ "The device password does not satisfy password requirements. passwordPoliciesContext is set. nonComplianceReason is set to USER_ACTION.", "There is an incorrect value in ONC Wi-Fi configuration. fieldPath specifies which field value is incorrect. oncWifiContext is set. nonComplianceReason is set to INVALID_VALUE.", "The ONC Wi-Fi setting is not supported in the API level of the Android version running on the device. fieldPath specifies which field value is not supported. oncWifiContext is set. nonComplianceReason is set to API_LEVEL.", - "The enterprise Wi-Fi network is missing either the root CA or domain name. nonComplianceReason is set to INVALID_VALUE." + "The enterprise Wi-Fi network is missing either the root CA or domain name. nonComplianceReason is set to INVALID_VALUE.", + "User needs to remove the configured Wi-Fi network manually. This is applicable only on work profiles on personally-owned devices. nonComplianceReason is set to USER_ACTION.", + "Key pair alias specified via ClientCertKeyPairAlias (https://chromium.googlesource.com/chromium/src/+/main/components/onc/docs/onc_spec.md#eap-type) field in openNetworkConfiguration does not correspond to an existing key installed on the device. nonComplianceReason is set to INVALID_VALUE." ], "type": "string" } @@ -4307,7 +4598,7 @@ "enumDescriptions": [ "Policy not specified. If no policy is specified for a permission at any level, then the PROMPT behavior is used by default.", "Prompt the user to grant a permission.", - "Automatically grant a permission.", + "Automatically grant a permission.On Android 12 and above, Manifest.permission.READ_SMS (https://developer.android.com/reference/android/Manifest.permission#READ_SMS) and following sensor-related permissions can only be granted on fully managed devices: Manifest.permission.ACCESS_FINE_LOCATION (https://developer.android.com/reference/android/Manifest.permission#ACCESS_FINE_LOCATION) Manifest.permission.ACCESS_BACKGROUND_LOCATION (https://developer.android.com/reference/android/Manifest.permission#ACCESS_BACKGROUND_LOCATION) Manifest.permission.ACCESS_COARSE_LOCATION (https://developer.android.com/reference/android/Manifest.permission#ACCESS_COARSE_LOCATION) Manifest.permission.CAMERA (https://developer.android.com/reference/android/Manifest.permission#CAMERA) Manifest.permission.RECORD_AUDIO (https://developer.android.com/reference/android/Manifest.permission#RECORD_AUDIO) Manifest.permission.ACTIVITY_RECOGNITION (https://developer.android.com/reference/android/Manifest.permission#ACTIVITY_RECOGNITION) Manifest.permission.BODY_SENSORS (https://developer.android.com/reference/android/Manifest.permission#BODY_SENSORS)", "Automatically deny a permission." ], "type": "string" @@ -4442,14 +4733,15 @@ }, "advancedSecurityOverrides": { "$ref": "AdvancedSecurityOverrides", - "description": "Security policies set to secure values by default. To maintain the security posture of a device, we don't recommend overriding any of the default values." + "description": "Advanced security settings. In most cases, setting these is not needed." }, "alwaysOnVpnPackage": { "$ref": "AlwaysOnVpnPackage", "description": "Configuration for an always-on VPN connection. Use with vpn_config_disabled to prevent modification of this setting." }, "androidDevicePolicyTracks": { - "description": "The app tracks for Android Device Policy the device can access. The device receives the latest version among all accessible tracks. If no tracks are specified, then the device only uses the production track.", + "deprecated": true, + "description": "This setting is not supported. Any value is ignored.", "items": { "enum": [ "APP_TRACK_UNSPECIFIED", @@ -4484,7 +4776,7 @@ "type": "string" }, "applications": { - "description": "Policy applied to apps.", + "description": "Policy applied to apps. This can have at most 3,000 elements.", "items": { "$ref": "ApplicationPolicy" }, @@ -4570,6 +4862,20 @@ "description": "Whether creating windows besides app windows is disabled.", "type": "boolean" }, + "credentialProviderPolicyDefault": { + "description": "Controls which apps are allowed to act as credential providers on Android 14 and above. These apps store credentials, see this (https://developer.android.com/training/sign-in/passkeys) and this (https://developer.android.com/reference/androidx/credentials/CredentialManager) for details. See also credentialProviderPolicy.", + "enum": [ + "CREDENTIAL_PROVIDER_POLICY_DEFAULT_UNSPECIFIED", + "CREDENTIAL_PROVIDER_DEFAULT_DISALLOWED", + "CREDENTIAL_PROVIDER_DEFAULT_DISALLOWED_EXCEPT_SYSTEM" + ], + "enumDescriptions": [ + "Unspecified. Defaults to CREDENTIAL_PROVIDER_DEFAULT_DISALLOWED.", + "Apps with credentialProviderPolicy unspecified are not allowed to act as a credential provider.", + "Apps with credentialProviderPolicy unspecified are not allowed to act as a credential provider except for the OEM default credential providers. OEM default credential providers are always allowed to act as credential providers." + ], + "type": "string" + }, "credentialsConfigDisabled": { "description": "Whether configuring user credentials is disabled.", "type": "boolean" @@ -4598,7 +4904,7 @@ "enumDescriptions": [ "Policy not specified. If no policy is specified for a permission at any level, then the PROMPT behavior is used by default.", "Prompt the user to grant a permission.", - "Automatically grant a permission.", + "Automatically grant a permission.On Android 12 and above, Manifest.permission.READ_SMS (https://developer.android.com/reference/android/Manifest.permission#READ_SMS) and following sensor-related permissions can only be granted on fully managed devices: Manifest.permission.ACCESS_FINE_LOCATION (https://developer.android.com/reference/android/Manifest.permission#ACCESS_FINE_LOCATION) Manifest.permission.ACCESS_BACKGROUND_LOCATION (https://developer.android.com/reference/android/Manifest.permission#ACCESS_BACKGROUND_LOCATION) Manifest.permission.ACCESS_COARSE_LOCATION (https://developer.android.com/reference/android/Manifest.permission#ACCESS_COARSE_LOCATION) Manifest.permission.CAMERA (https://developer.android.com/reference/android/Manifest.permission#CAMERA) Manifest.permission.RECORD_AUDIO (https://developer.android.com/reference/android/Manifest.permission#RECORD_AUDIO) Manifest.permission.ACTIVITY_RECOGNITION (https://developer.android.com/reference/android/Manifest.permission#ACTIVITY_RECOGNITION) Manifest.permission.BODY_SENSORS (https://developer.android.com/reference/android/Manifest.permission#BODY_SENSORS)", "Automatically deny a permission." ], "type": "string" @@ -4889,6 +5195,20 @@ ], "type": "string" }, + "printingPolicy": { + "description": "Optional. Controls whether printing is allowed. This is supported on devices running Android 9 and above. .", + "enum": [ + "PRINTING_POLICY_UNSPECIFIED", + "PRINTING_DISALLOWED", + "PRINTING_ALLOWED" + ], + "enumDescriptions": [ + "Unspecified. Defaults to PRINTING_ALLOWED.", + "Printing is disallowed. A nonComplianceDetail with API_LEVEL is reported if the Android version is less than 9.", + "Printing is allowed." + ], + "type": "string" + }, "privateKeySelectionEnabled": { "description": "Allows showing UI on a device for a user to choose a private key alias if there are no matching rules in ChoosePrivateKeyRules. For devices below Android P, setting this may leave enterprise keys vulnerable. This value will have no effect if any application has CERT_SELECTION delegation scope.", "type": "boolean" @@ -5063,9 +5383,9 @@ ], "enumDescriptions": [ "Unspecified.", - "SafetyNet detects that the device is running an unknown OS (basicIntegrity check succeeds but ctsProfileMatch fails).", - "SafetyNet detects that the device is running a compromised OS (basicIntegrity check fails).", - "SafetyNet detects that the device does not have a strong guarantee of system integrity, such as a hardware-backed keystore (https://developer.android.com/training/articles/security-key-attestation)." + "Play Integrity API detects that the device is running an unknown OS (basicIntegrity check succeeds but ctsProfileMatch fails).", + "Play Integrity API detects that the device is running a compromised OS (basicIntegrity check fails).", + "Play Integrity API detects that the device does not have a strong guarantee of system integrity, if the MEETS_STRONG_INTEGRITY label doesn't show in the device integrity field (https://developer.android.com/google/play/integrity/verdicts#device-integrity-field)." ], "type": "string" } diff --git a/discovery/googleapis/androidpublisher__v3.json b/discovery/googleapis/androidpublisher__v3.json index b2072e86f..cf9ac97d8 100644 --- a/discovery/googleapis/androidpublisher__v3.json +++ b/discovery/googleapis/androidpublisher__v3.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231128", + "revision": "20240228", "rootUrl": "https://androidpublisher.googleapis.com/", "servicePath": "", "title": "Google Play Android Developer API", @@ -109,6 +109,35 @@ }, "resources": { "applications": { + "methods": { + "dataSafety": { + "description": "Writes the Safety Labels declaration of an app.", + "flatPath": "androidpublisher/v3/applications/{packageName}/dataSafety", + "httpMethod": "POST", + "id": "androidpublisher.applications.dataSafety", + "parameterOrder": [ + "packageName" + ], + "parameters": { + "packageName": { + "description": "Required. Package name of the app.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/dataSafety", + "request": { + "$ref": "SafetyLabelsUpdateRequest" + }, + "response": { + "$ref": "SafetyLabelsUpdateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + } + }, "resources": { "deviceTierConfigs": { "methods": { @@ -215,6 +244,172 @@ } } }, + "apprecovery": { + "methods": { + "addTargeting": { + "description": "Incrementally update targeting for a recovery action. Note that only the criteria selected during the creation of recovery action can be expanded.", + "flatPath": "androidpublisher/v3/applications/{packageName}/appRecoveries/{appRecoveryId}:addTargeting", + "httpMethod": "POST", + "id": "androidpublisher.apprecovery.addTargeting", + "parameterOrder": [ + "packageName", + "appRecoveryId" + ], + "parameters": { + "appRecoveryId": { + "description": "Required. ID corresponding to the app recovery action.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "packageName": { + "description": "Required. Package name of the app for which recovery action is to be updated.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/appRecoveries/{appRecoveryId}:addTargeting", + "request": { + "$ref": "AddTargetingRequest" + }, + "response": { + "$ref": "AddTargetingResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "appRecoveries": { + "description": "List all app recovery action resources associated with a particular package name and app version.", + "flatPath": "androidpublisher/v3/applications/{packageName}/appRecoveries", + "httpMethod": "POST", + "id": "androidpublisher.apprecovery.appRecoveries", + "parameterOrder": [ + "packageName" + ], + "parameters": { + "packageName": { + "description": "Required. Package name of the app for which list of recovery actions is requested.", + "location": "path", + "required": true, + "type": "string" + }, + "versionCode": { + "description": "Required. Version code targeted by the list of recovery actions.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/appRecoveries", + "response": { + "$ref": "ListAppRecoveriesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "cancel": { + "description": "Cancel an already executing app recovery action. Note that this action changes status of the recovery action to CANCELED.", + "flatPath": "androidpublisher/v3/applications/{packageName}/appRecoveries/{appRecoveryId}:cancel", + "httpMethod": "POST", + "id": "androidpublisher.apprecovery.cancel", + "parameterOrder": [ + "packageName", + "appRecoveryId" + ], + "parameters": { + "appRecoveryId": { + "description": "Required. ID corresponding to the app recovery action.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "packageName": { + "description": "Required. Package name of the app for which recovery action cancellation is requested.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/appRecoveries/{appRecoveryId}:cancel", + "request": { + "$ref": "CancelAppRecoveryRequest" + }, + "response": { + "$ref": "CancelAppRecoveryResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "create": { + "description": "Create an app recovery action with recovery status as DRAFT. Note that this action does not execute the recovery action.", + "flatPath": "androidpublisher/v3/applications/{packageName}/appRecoveries", + "httpMethod": "POST", + "id": "androidpublisher.apprecovery.create", + "parameterOrder": [ + "packageName" + ], + "parameters": { + "packageName": { + "description": "Required. Package name of the app on which recovery action is performed.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/appRecoveries", + "request": { + "$ref": "CreateDraftAppRecoveryRequest" + }, + "response": { + "$ref": "AppRecoveryAction" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "deploy": { + "description": "Deploy an already created app recovery action with recovery status DRAFT. Note that this action activates the recovery action for all targeted users and changes its status to ACTIVE.", + "flatPath": "androidpublisher/v3/applications/{packageName}/appRecoveries/{appRecoveryId}:deploy", + "httpMethod": "POST", + "id": "androidpublisher.apprecovery.deploy", + "parameterOrder": [ + "packageName", + "appRecoveryId" + ], + "parameters": { + "appRecoveryId": { + "description": "Required. ID corresponding to the app recovery action to deploy.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + }, + "packageName": { + "description": "Required. Package name of the app for which recovery action is deployed.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/appRecoveries/{appRecoveryId}:deploy", + "request": { + "$ref": "DeployAppRecoveryRequest" + }, + "response": { + "$ref": "DeployAppRecoveryResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + } + } + }, "edits": { "methods": { "commit": { @@ -2136,6 +2331,87 @@ }, "inappproducts": { "methods": { + "batchDelete": { + "description": "Deletes in-app products (managed products or subscriptions). Set the latencyTolerance field on nested requests to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT to achieve maximum update throughput. This method should not be used to delete subscriptions. See [this article](https://android-developers.googleblog.com/2023/06/changes-to-google-play-developer-api-june-2023.html) for more information.", + "flatPath": "androidpublisher/v3/applications/{packageName}/inappproducts:batchDelete", + "httpMethod": "POST", + "id": "androidpublisher.inappproducts.batchDelete", + "parameterOrder": [ + "packageName" + ], + "parameters": { + "packageName": { + "description": "Package name of the app.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/inappproducts:batchDelete", + "request": { + "$ref": "InappproductsBatchDeleteRequest" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "batchGet": { + "description": "Reads multiple in-app products, which can be managed products or subscriptions. This method should not be used to retrieve subscriptions. See [this article](https://android-developers.googleblog.com/2023/06/changes-to-google-play-developer-api-june-2023.html) for more information.", + "flatPath": "androidpublisher/v3/applications/{packageName}/inappproducts:batchGet", + "httpMethod": "GET", + "id": "androidpublisher.inappproducts.batchGet", + "parameterOrder": [ + "packageName" + ], + "parameters": { + "packageName": { + "description": "Package name of the app.", + "location": "path", + "required": true, + "type": "string" + }, + "sku": { + "description": "Unique identifier for the in-app products.", + "location": "query", + "repeated": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/inappproducts:batchGet", + "response": { + "$ref": "InappproductsBatchGetResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "batchUpdate": { + "description": "Updates or inserts one or more in-app products (managed products or subscriptions). Set the latencyTolerance field on nested requests to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT to achieve maximum update throughput. This method should no longer be used to update subscriptions. See [this article](https://android-developers.googleblog.com/2023/06/changes-to-google-play-developer-api-june-2023.html) for more information.", + "flatPath": "androidpublisher/v3/applications/{packageName}/inappproducts:batchUpdate", + "httpMethod": "POST", + "id": "androidpublisher.inappproducts.batchUpdate", + "parameterOrder": [ + "packageName" + ], + "parameters": { + "packageName": { + "description": "Package name of the app.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/inappproducts:batchUpdate", + "request": { + "$ref": "InappproductsBatchUpdateRequest" + }, + "response": { + "$ref": "InappproductsBatchUpdateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, "delete": { "description": "Deletes an in-app product (a managed product or a subscription). This method should no longer be used to delete subscriptions. See [this article](https://android-developers.googleblog.com/2023/06/changes-to-google-play-developer-api-june-2023.html) for more information.", "flatPath": "androidpublisher/v3/applications/{packageName}/inappproducts/{sku}", @@ -2146,6 +2422,21 @@ "sku" ], "parameters": { + "latencyTolerance": { + "description": "Optional. The latency tolerance for the propagation of this product update. Defaults to latency-sensitive.", + "enum": [ + "PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED", + "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE", + "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" + ], + "enumDescriptions": [ + "Defaults to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE.", + "The update will propagate to clients within several minutes on average and up to a few hours in rare cases. Throughput is limited to 7,200 updates per app per hour.", + "The update will propagate to clients within 24 hours. Supports high throughput of up to 720,000 updates per app per hour using batch modification methods." + ], + "location": "query", + "type": "string" + }, "packageName": { "description": "Package name of the app.", "location": "path", @@ -2285,6 +2576,21 @@ "location": "query", "type": "boolean" }, + "latencyTolerance": { + "description": "Optional. The latency tolerance for the propagation of this product update. Defaults to latency-sensitive.", + "enum": [ + "PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED", + "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE", + "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" + ], + "enumDescriptions": [ + "Defaults to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE.", + "The update will propagate to clients within several minutes on average and up to a few hours in rare cases. Throughput is limited to 7,200 updates per app per hour.", + "The update will propagate to clients within 24 hours. Supports high throughput of up to 720,000 updates per app per hour using batch modification methods." + ], + "location": "query", + "type": "string" + }, "packageName": { "description": "Package name of the app.", "location": "path", @@ -2329,6 +2635,21 @@ "location": "query", "type": "boolean" }, + "latencyTolerance": { + "description": "Optional. The latency tolerance for the propagation of this product update. Defaults to latency-sensitive.", + "enum": [ + "PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED", + "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE", + "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" + ], + "enumDescriptions": [ + "Defaults to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE.", + "The update will propagate to clients within several minutes on average and up to a few hours in rare cases. Throughput is limited to 7,200 updates per app per hour.", + "The update will propagate to clients within 24 hours. Supports high throughput of up to 720,000 updates per app per hour using batch modification methods." + ], + "location": "query", + "type": "string" + }, "packageName": { "description": "Package name of the app.", "location": "path", @@ -2476,7 +2797,8 @@ "subscriptions": { "methods": { "archive": { - "description": "Archives a subscription. Can only be done if at least one base plan was active in the past, and no base plan is available for new or existing subscribers currently. This action is irreversible, and the subscription ID will remain reserved.", + "deprecated": true, + "description": "Deprecated: subscription archiving is not supported.", "flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}:archive", "httpMethod": "POST", "id": "androidpublisher.monetization.subscriptions.archive", @@ -2509,6 +2831,63 @@ "https://www.googleapis.com/auth/androidpublisher" ] }, + "batchGet": { + "description": "Reads one or more subscriptions.", + "flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions:batchGet", + "httpMethod": "GET", + "id": "androidpublisher.monetization.subscriptions.batchGet", + "parameterOrder": [ + "packageName" + ], + "parameters": { + "packageName": { + "description": "Required. The parent app (package name) for which the subscriptions should be retrieved. Must be equal to the package_name field on all the requests.", + "location": "path", + "required": true, + "type": "string" + }, + "productIds": { + "description": "Required. A list of up to 100 subscription product IDs to retrieve. All the IDs must be different.", + "location": "query", + "repeated": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/subscriptions:batchGet", + "response": { + "$ref": "BatchGetSubscriptionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "batchUpdate": { + "description": "Updates a batch of subscriptions. Set the latencyTolerance field on nested requests to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT to achieve maximum update throughput.", + "flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions:batchUpdate", + "httpMethod": "POST", + "id": "androidpublisher.monetization.subscriptions.batchUpdate", + "parameterOrder": [ + "packageName" + ], + "parameters": { + "packageName": { + "description": "Required. The parent app (package name) for which the subscriptions should be updated. Must be equal to the package_name field on all the Subscription resources.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/subscriptions:batchUpdate", + "request": { + "$ref": "BatchUpdateSubscriptionsRequest" + }, + "response": { + "$ref": "BatchUpdateSubscriptionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, "create": { "description": "Creates a new subscription. Newly added base plans will remain in draft state until activated.", "flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions", @@ -2632,7 +3011,8 @@ "type": "string" }, "showArchived": { - "description": "Whether archived subscriptions should be included in the response. Defaults to false.", + "deprecated": true, + "description": "Deprecated: subscription archiving is not supported.", "location": "query", "type": "boolean" } @@ -2655,11 +3035,31 @@ "productId" ], "parameters": { - "packageName": { - "description": "Immutable. Package name of the parent app.", - "location": "path", - "required": true, - "type": "string" + "allowMissing": { + "description": "Optional. If set to true, and the subscription with the given package_name and product_id doesn't exist, the subscription will be created. If a new subscription is created, update_mask is ignored.", + "location": "query", + "type": "boolean" + }, + "latencyTolerance": { + "description": "Optional. The latency tolerance for the propagation of this product update. Defaults to latency-sensitive.", + "enum": [ + "PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED", + "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE", + "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" + ], + "enumDescriptions": [ + "Defaults to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE.", + "The update will propagate to clients within several minutes on average and up to a few hours in rare cases. Throughput is limited to 7,200 updates per app per hour.", + "The update will propagate to clients within 24 hours. Supports high throughput of up to 720,000 updates per app per hour using batch modification methods." + ], + "location": "query", + "type": "string" + }, + "packageName": { + "description": "Immutable. Package name of the parent app.", + "location": "path", + "required": true, + "type": "string" }, "productId": { "description": "Immutable. Unique product ID of the product. Unique within the parent app. Product IDs must be composed of lower-case letters (a-z), numbers (0-9), underscores (_) and dots (.). It must start with a lower-case letter or number, and be between 1 and 40 (inclusive) characters in length.", @@ -2735,6 +3135,74 @@ "https://www.googleapis.com/auth/androidpublisher" ] }, + "batchMigratePrices": { + "description": "Batch variant of the MigrateBasePlanPrices endpoint. Set the latencyTolerance field on nested requests to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT to achieve maximum update throughput.", + "flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans:batchMigratePrices", + "httpMethod": "POST", + "id": "androidpublisher.monetization.subscriptions.basePlans.batchMigratePrices", + "parameterOrder": [ + "packageName", + "productId" + ], + "parameters": { + "packageName": { + "description": "Required. The parent app (package name) for which the subscriptions should be created or updated. Must be equal to the package_name field on all the Subscription resources.", + "location": "path", + "required": true, + "type": "string" + }, + "productId": { + "description": "Required. The product ID of the parent subscription, if all updated offers belong to the same subscription. If this batch update spans multiple subscriptions, set this field to \"-\". Must be set.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans:batchMigratePrices", + "request": { + "$ref": "BatchMigrateBasePlanPricesRequest" + }, + "response": { + "$ref": "BatchMigrateBasePlanPricesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "batchUpdateStates": { + "description": "Activates or deactivates base plans across one or multiple subscriptions. Set the latencyTolerance field on nested requests to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT to achieve maximum update throughput.", + "flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans:batchUpdateStates", + "httpMethod": "POST", + "id": "androidpublisher.monetization.subscriptions.basePlans.batchUpdateStates", + "parameterOrder": [ + "packageName", + "productId" + ], + "parameters": { + "packageName": { + "description": "Required. The parent app (package name) of the updated base plans.", + "location": "path", + "required": true, + "type": "string" + }, + "productId": { + "description": "Required. The product ID of the parent subscription, if all updated base plans belong to the same subscription. If this batch update spans multiple subscriptions, set this field to \"-\". Must be set.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans:batchUpdateStates", + "request": { + "$ref": "BatchUpdateBasePlanStatesRequest" + }, + "response": { + "$ref": "BatchUpdateBasePlanStatesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, "deactivate": { "description": "Deactivates a base plan. Once deactivated, the base plan will become unavailable to new subscribers, but existing subscribers will maintain their subscription", "flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}:deactivate", @@ -2904,6 +3372,129 @@ "https://www.googleapis.com/auth/androidpublisher" ] }, + "batchGet": { + "description": "Reads one or more subscription offers.", + "flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers:batchGet", + "httpMethod": "POST", + "id": "androidpublisher.monetization.subscriptions.basePlans.offers.batchGet", + "parameterOrder": [ + "packageName", + "productId", + "basePlanId" + ], + "parameters": { + "basePlanId": { + "description": "Required. The parent base plan (ID) for which the offers should be read. May be specified as '-' to read offers from multiple base plans.", + "location": "path", + "required": true, + "type": "string" + }, + "packageName": { + "description": "Required. The parent app (package name) for which the subscriptions should be created or updated. Must be equal to the package_name field on all the requests.", + "location": "path", + "required": true, + "type": "string" + }, + "productId": { + "description": "Required. The product ID of the parent subscription, if all updated offers belong to the same subscription. If this request spans multiple subscriptions, set this field to \"-\". Must be set.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers:batchGet", + "request": { + "$ref": "BatchGetSubscriptionOffersRequest" + }, + "response": { + "$ref": "BatchGetSubscriptionOffersResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "batchUpdate": { + "description": "Updates a batch of subscription offers. Set the latencyTolerance field on nested requests to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT to achieve maximum update throughput.", + "flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers:batchUpdate", + "httpMethod": "POST", + "id": "androidpublisher.monetization.subscriptions.basePlans.offers.batchUpdate", + "parameterOrder": [ + "packageName", + "productId", + "basePlanId" + ], + "parameters": { + "basePlanId": { + "description": "Required. The parent base plan (ID) for which the offers should be updated. May be specified as '-' to update offers from multiple base plans.", + "location": "path", + "required": true, + "type": "string" + }, + "packageName": { + "description": "Required. The parent app (package name) of the updated subscription offers. Must be equal to the package_name field on all the updated SubscriptionOffer resources.", + "location": "path", + "required": true, + "type": "string" + }, + "productId": { + "description": "Required. The product ID of the parent subscription, if all updated offers belong to the same subscription. If this request spans multiple subscriptions, set this field to \"-\". Must be set.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers:batchUpdate", + "request": { + "$ref": "BatchUpdateSubscriptionOffersRequest" + }, + "response": { + "$ref": "BatchUpdateSubscriptionOffersResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, + "batchUpdateStates": { + "description": "Updates a batch of subscription offer states. Set the latencyTolerance field on nested requests to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT to achieve maximum update throughput.", + "flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers:batchUpdateStates", + "httpMethod": "POST", + "id": "androidpublisher.monetization.subscriptions.basePlans.offers.batchUpdateStates", + "parameterOrder": [ + "packageName", + "productId", + "basePlanId" + ], + "parameters": { + "basePlanId": { + "description": "Required. The parent base plan (ID) for which the offers should be updated. May be specified as '-' to update offers from multiple base plans.", + "location": "path", + "required": true, + "type": "string" + }, + "packageName": { + "description": "Required. The parent app (package name) of the updated subscription offers. Must be equal to the package_name field on all the updated SubscriptionOffer resources.", + "location": "path", + "required": true, + "type": "string" + }, + "productId": { + "description": "Required. The product ID of the parent subscription, if all updated offers belong to the same subscription. If this request spans multiple subscriptions, set this field to \"-\". Must be set.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers:batchUpdateStates", + "request": { + "$ref": "BatchUpdateSubscriptionOfferStatesRequest" + }, + "response": { + "$ref": "BatchUpdateSubscriptionOfferStatesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] + }, "create": { "description": "Creates a new subscription offer. Only auto-renewing base plans can have subscription offers. The offer state will be DRAFT until it is activated.", "flatPath": "androidpublisher/v3/applications/{packageName}/subscriptions/{productId}/basePlans/{basePlanId}/offers", @@ -3151,12 +3742,32 @@ "offerId" ], "parameters": { + "allowMissing": { + "description": "Optional. If set to true, and the subscription offer with the given package_name, product_id, base_plan_id and offer_id doesn't exist, an offer will be created. If a new offer is created, update_mask is ignored.", + "location": "query", + "type": "boolean" + }, "basePlanId": { "description": "Required. Immutable. The ID of the base plan to which this offer is an extension.", "location": "path", "required": true, "type": "string" }, + "latencyTolerance": { + "description": "Optional. The latency tolerance for the propagation of this product update. Defaults to latency-sensitive.", + "enum": [ + "PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED", + "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE", + "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" + ], + "enumDescriptions": [ + "Defaults to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE.", + "The update will propagate to clients within several minutes on average and up to a few hours in rare cases. Throughput is limited to 7,200 updates per app per hour.", + "The update will propagate to clients within 24 hours. Supports high throughput of up to 720,000 updates per app per hour using batch modification methods." + ], + "location": "query", + "type": "string" + }, "offerId": { "description": "Required. Immutable. Unique ID of this subscription offer. Must be unique within the base plan.", "location": "path", @@ -3618,6 +4229,40 @@ "scopes": [ "https://www.googleapis.com/auth/androidpublisher" ] + }, + "revoke": { + "description": "Revoke a subscription purchase for the user.", + "flatPath": "androidpublisher/v3/applications/{packageName}/purchases/subscriptionsv2/tokens/{token}:revoke", + "httpMethod": "POST", + "id": "androidpublisher.purchases.subscriptionsv2.revoke", + "parameterOrder": [ + "packageName", + "token" + ], + "parameters": { + "packageName": { + "description": "Required. The package of the application for which this subscription was purchased (for example, 'com.some.thing').", + "location": "path", + "required": true, + "type": "string" + }, + "token": { + "description": "Required. The token provided to the user's device when the subscription was purchased.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "androidpublisher/v3/applications/{packageName}/purchases/subscriptionsv2/tokens/{token}:revoke", + "request": { + "$ref": "RevokeSubscriptionPurchaseRequest" + }, + "response": { + "$ref": "RevokeSubscriptionPurchaseResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/androidpublisher" + ] } } }, @@ -4150,15 +4795,116 @@ "ActivateBasePlanRequest": { "description": "Request message for ActivateBasePlan.", "id": "ActivateBasePlanRequest", - "properties": {}, + "properties": { + "basePlanId": { + "description": "Required. The unique base plan ID of the base plan to activate.", + "type": "string" + }, + "latencyTolerance": { + "description": "Optional. The latency tolerance for the propagation of this product update. Defaults to latency-sensitive.", + "enum": [ + "PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED", + "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE", + "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" + ], + "enumDescriptions": [ + "Defaults to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE.", + "The update will propagate to clients within several minutes on average and up to a few hours in rare cases. Throughput is limited to 7,200 updates per app per hour.", + "The update will propagate to clients within 24 hours. Supports high throughput of up to 720,000 updates per app per hour using batch modification methods." + ], + "type": "string" + }, + "packageName": { + "description": "Required. The parent app (package name) of the base plan to activate.", + "type": "string" + }, + "productId": { + "description": "Required. The parent subscription (ID) of the base plan to activate.", + "type": "string" + } + }, "type": "object" }, "ActivateSubscriptionOfferRequest": { "description": "Request message for ActivateSubscriptionOffer.", "id": "ActivateSubscriptionOfferRequest", + "properties": { + "basePlanId": { + "description": "Required. The parent base plan (ID) of the offer to activate.", + "type": "string" + }, + "latencyTolerance": { + "description": "Optional. The latency tolerance for the propagation of this product update. Defaults to latency-sensitive.", + "enum": [ + "PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED", + "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE", + "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" + ], + "enumDescriptions": [ + "Defaults to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE.", + "The update will propagate to clients within several minutes on average and up to a few hours in rare cases. Throughput is limited to 7,200 updates per app per hour.", + "The update will propagate to clients within 24 hours. Supports high throughput of up to 720,000 updates per app per hour using batch modification methods." + ], + "type": "string" + }, + "offerId": { + "description": "Required. The unique offer ID of the offer to activate.", + "type": "string" + }, + "packageName": { + "description": "Required. The parent app (package name) of the offer to activate.", + "type": "string" + }, + "productId": { + "description": "Required. The parent subscription (ID) of the offer to activate.", + "type": "string" + } + }, + "type": "object" + }, + "AddTargetingRequest": { + "description": "Request message for AddTargeting.", + "id": "AddTargetingRequest", + "properties": { + "targetingUpdate": { + "$ref": "TargetingUpdate", + "description": "Specifies targeting updates such as regions, android sdk versions etc." + } + }, + "type": "object" + }, + "AddTargetingResponse": { + "description": "Response message for AddTargeting.", + "id": "AddTargetingResponse", "properties": {}, "type": "object" }, + "AllUsers": { + "description": "Object representation to describe all set of users.", + "id": "AllUsers", + "properties": { + "isAllUsersRequested": { + "description": "Required. Set to true if all set of users are needed.", + "type": "boolean" + } + }, + "type": "object" + }, + "AndroidSdks": { + "description": "Android api level targeting data for app recovery action targeting.", + "id": "AndroidSdks", + "properties": { + "sdkLevels": { + "description": "Android api levels of devices targeted by recovery action. See https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels for different api levels in android.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "Apk": { "description": "Information about an APK. The resource for ApksService.", "id": "Apk", @@ -4350,8 +5096,101 @@ }, "type": "object" }, + "AppRecoveryAction": { + "description": "Information about an app recovery action.", + "id": "AppRecoveryAction", + "properties": { + "appRecoveryId": { + "description": "ID corresponding to the app recovery action.", + "format": "int64", + "type": "string" + }, + "cancelTime": { + "description": "Timestamp of when the app recovery action is canceled by the developer. Only set if the recovery action has been canceled.", + "format": "google-datetime", + "type": "string" + }, + "createTime": { + "description": "Timestamp of when the app recovery action is created by the developer. It is always set after creation of the recovery action.", + "format": "google-datetime", + "type": "string" + }, + "deployTime": { + "description": "Timestamp of when the app recovery action is deployed to the users. Only set if the recovery action has been deployed.", + "format": "google-datetime", + "type": "string" + }, + "lastUpdateTime": { + "description": "Timestamp of when the developer last updated recovery action. In case the action is cancelled, it corresponds to cancellation time. It is always set after creation of the recovery action.", + "format": "google-datetime", + "type": "string" + }, + "remoteInAppUpdateData": { + "$ref": "RemoteInAppUpdateData", + "description": "Data about the remote in-app update action such as such as recovered user base, recoverable user base etc. Set only if the recovery action type is Remote In-App Update." + }, + "status": { + "description": "The status of the recovery action.", + "enum": [ + "RECOVERY_STATUS_UNSPECIFIED", + "RECOVERY_STATUS_ACTIVE", + "RECOVERY_STATUS_CANCELED", + "RECOVERY_STATUS_DRAFT", + "RECOVERY_STATUS_GENERATION_IN_PROGRESS", + "RECOVERY_STATUS_GENERATION_FAILED" + ], + "enumDescriptions": [ + "RecoveryStatus is unspecified.", + "The app recovery action has not been canceled since it has been created.", + "The recovery action has been canceled. The action cannot be resumed.", + "The recovery action is in the draft state and has not yet been deployed to users.", + "The recovery action is generating recovery apks.", + "The app recovery action generation has failed." + ], + "type": "string" + }, + "targeting": { + "$ref": "Targeting", + "description": "Specifies targeting criteria for the recovery action such as regions, android sdk versions, app versions etc." + } + }, + "type": "object" + }, + "AppVersionList": { + "description": "Data format for a list of app versions.", + "id": "AppVersionList", + "properties": { + "versionCodes": { + "description": "List of app version codes.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "AppVersionRange": { + "description": "Data format for a continuous range of app versions.", + "id": "AppVersionRange", + "properties": { + "versionCodeEnd": { + "description": "Highest app version in the range, inclusive.", + "format": "int64", + "type": "string" + }, + "versionCodeStart": { + "description": "Lowest app version in the range, inclusive.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "ArchiveSubscriptionRequest": { - "description": "Request message for ArchiveSubscription.", + "deprecated": true, + "description": "Deprecated: subscription archiving is not supported.", "id": "ArchiveSubscriptionRequest", "properties": {}, "type": "object" @@ -4405,6 +5244,10 @@ "description": "Represents a base plan that automatically renews at the end of its subscription period.", "id": "AutoRenewingBasePlanType", "properties": { + "accountHoldDuration": { + "description": "Optional. Account hold period of the subscription, specified in ISO 8601 format. Acceptable values must be in DAYS and in the range P0D (zero days) to P30D (30 days). If not specified, the default value is P30D (30 days).", + "type": "string" + }, "billingPeriodDuration": { "description": "Required. Subscription period, specified in ISO 8601 format. For a list of acceptable billing periods, refer to the help center.", "type": "string" @@ -4521,6 +5364,187 @@ }, "type": "object" }, + "BatchGetSubscriptionOffersRequest": { + "description": "Request message for BatchGetSubscriptionOffers endpoint.", + "id": "BatchGetSubscriptionOffersRequest", + "properties": { + "requests": { + "description": "Required. A list of update requests of up to 100 elements. All requests must update different subscriptions.", + "items": { + "$ref": "GetSubscriptionOfferRequest" + }, + "type": "array" + } + }, + "type": "object" + }, + "BatchGetSubscriptionOffersResponse": { + "description": "Response message for BatchGetSubscriptionOffers endpoint.", + "id": "BatchGetSubscriptionOffersResponse", + "properties": { + "subscriptionOffers": { + "items": { + "$ref": "SubscriptionOffer" + }, + "type": "array" + } + }, + "type": "object" + }, + "BatchGetSubscriptionsResponse": { + "description": "Response message for BatchGetSubscriptions endpoint.", + "id": "BatchGetSubscriptionsResponse", + "properties": { + "subscriptions": { + "description": "The list of requested subscriptions, in the same order as the request.", + "items": { + "$ref": "Subscription" + }, + "type": "array" + } + }, + "type": "object" + }, + "BatchMigrateBasePlanPricesRequest": { + "description": "Request message for BatchMigrateBasePlanPrices.", + "id": "BatchMigrateBasePlanPricesRequest", + "properties": { + "requests": { + "description": "Required. Up to 100 price migration requests. All requests must update different base plans.", + "items": { + "$ref": "MigrateBasePlanPricesRequest" + }, + "type": "array" + } + }, + "type": "object" + }, + "BatchMigrateBasePlanPricesResponse": { + "description": "Response message for BatchMigrateBasePlanPrices.", + "id": "BatchMigrateBasePlanPricesResponse", + "properties": { + "responses": { + "description": "Contains one response per requested price migration, in the same order as the request.", + "items": { + "$ref": "MigrateBasePlanPricesResponse" + }, + "type": "array" + } + }, + "type": "object" + }, + "BatchUpdateBasePlanStatesRequest": { + "description": "Request message for BatchUpdateBasePlanStates.", + "id": "BatchUpdateBasePlanStatesRequest", + "properties": { + "requests": { + "description": "Required. The update request list of up to 100 elements. All requests must update different base plans.", + "items": { + "$ref": "UpdateBasePlanStateRequest" + }, + "type": "array" + } + }, + "type": "object" + }, + "BatchUpdateBasePlanStatesResponse": { + "description": "Response message for BatchUpdateBasePlanStates.", + "id": "BatchUpdateBasePlanStatesResponse", + "properties": { + "subscriptions": { + "description": "The list of updated subscriptions. This list will match the requests one to one, in the same order.", + "items": { + "$ref": "Subscription" + }, + "type": "array" + } + }, + "type": "object" + }, + "BatchUpdateSubscriptionOfferStatesRequest": { + "description": "Request message for BatchUpdateSubscriptionOfferStates.", + "id": "BatchUpdateSubscriptionOfferStatesRequest", + "properties": { + "requests": { + "description": "Required. The update request list of up to 100 elements. All requests must update different offers.", + "items": { + "$ref": "UpdateSubscriptionOfferStateRequest" + }, + "type": "array" + } + }, + "type": "object" + }, + "BatchUpdateSubscriptionOfferStatesResponse": { + "description": "Response message for BatchUpdateSubscriptionOfferStates.", + "id": "BatchUpdateSubscriptionOfferStatesResponse", + "properties": { + "subscriptionOffers": { + "description": "The updated subscription offers list.", + "items": { + "$ref": "SubscriptionOffer" + }, + "type": "array" + } + }, + "type": "object" + }, + "BatchUpdateSubscriptionOffersRequest": { + "description": "Request message for BatchUpdateSubscriptionOffers.", + "id": "BatchUpdateSubscriptionOffersRequest", + "properties": { + "requests": { + "description": "Required. A list of update requests of up to 100 elements. All requests must update different subscription offers.", + "items": { + "$ref": "UpdateSubscriptionOfferRequest" + }, + "type": "array" + } + }, + "type": "object" + }, + "BatchUpdateSubscriptionOffersResponse": { + "description": "Response message for BatchUpdateSubscriptionOffers.", + "id": "BatchUpdateSubscriptionOffersResponse", + "properties": { + "subscriptionOffers": { + "description": "The updated subscription offers list.", + "items": { + "$ref": "SubscriptionOffer" + }, + "type": "array" + } + }, + "type": "object" + }, + "BatchUpdateSubscriptionsRequest": { + "description": "Request message for BatchUpdateSubscription.", + "id": "BatchUpdateSubscriptionsRequest", + "properties": { + "requests": { + "description": "Required. A list of update requests of up to 100 elements. All requests must update different subscriptions.", + "items": { + "$ref": "UpdateSubscriptionRequest" + }, + "type": "array" + } + }, + "type": "object" + }, + "BatchUpdateSubscriptionsResponse": { + "description": "Response message for BatchUpdateSubscription.", + "id": "BatchUpdateSubscriptionsResponse", + "properties": { + "subscriptions": { + "description": "The updated subscriptions list.", + "items": { + "$ref": "Subscription" + }, + "type": "array" + } + }, + "type": "object" + }, "Bundle": { "description": "Information about an app bundle. The resource for BundlesService.", "id": "Bundle", @@ -4559,6 +5583,18 @@ }, "type": "object" }, + "CancelAppRecoveryRequest": { + "description": "Request message for CancelAppRecovery.", + "id": "CancelAppRecoveryRequest", + "properties": {}, + "type": "object" + }, + "CancelAppRecoveryResponse": { + "description": "Response message for CancelAppRecovery.", + "id": "CancelAppRecoveryResponse", + "properties": {}, + "type": "object" + }, "CancelSurveyResult": { "description": "Result of the cancel survey when the subscription was canceled by the user.", "id": "CancelSurveyResult", @@ -4709,16 +5745,89 @@ }, "type": "object" }, + "CreateDraftAppRecoveryRequest": { + "description": "Request message for CreateDraftAppRecovery.", + "id": "CreateDraftAppRecoveryRequest", + "properties": { + "remoteInAppUpdate": { + "$ref": "RemoteInAppUpdate", + "description": "Action type is remote in-app update. As a consequence of this action, a downloadable recovery module is also created for testing purposes." + }, + "targeting": { + "$ref": "Targeting", + "description": "Specifies targeting criteria for the recovery action such as regions, android sdk versions, app versions etc." + } + }, + "type": "object" + }, "DeactivateBasePlanRequest": { "description": "Request message for DeactivateBasePlan.", "id": "DeactivateBasePlanRequest", - "properties": {}, + "properties": { + "basePlanId": { + "description": "Required. The unique base plan ID of the base plan to deactivate.", + "type": "string" + }, + "latencyTolerance": { + "description": "Optional. The latency tolerance for the propagation of this product update. Defaults to latency-sensitive.", + "enum": [ + "PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED", + "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE", + "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" + ], + "enumDescriptions": [ + "Defaults to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE.", + "The update will propagate to clients within several minutes on average and up to a few hours in rare cases. Throughput is limited to 7,200 updates per app per hour.", + "The update will propagate to clients within 24 hours. Supports high throughput of up to 720,000 updates per app per hour using batch modification methods." + ], + "type": "string" + }, + "packageName": { + "description": "Required. The parent app (package name) of the base plan to deactivate.", + "type": "string" + }, + "productId": { + "description": "Required. The parent subscription (ID) of the base plan to deactivate.", + "type": "string" + } + }, "type": "object" }, "DeactivateSubscriptionOfferRequest": { "description": "Request message for DeactivateSubscriptionOffer.", "id": "DeactivateSubscriptionOfferRequest", - "properties": {}, + "properties": { + "basePlanId": { + "description": "Required. The parent base plan (ID) of the offer to deactivate.", + "type": "string" + }, + "latencyTolerance": { + "description": "Optional. The latency tolerance for the propagation of this product update. Defaults to latency-sensitive.", + "enum": [ + "PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED", + "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE", + "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" + ], + "enumDescriptions": [ + "Defaults to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE.", + "The update will propagate to clients within several minutes on average and up to a few hours in rare cases. Throughput is limited to 7,200 updates per app per hour.", + "The update will propagate to clients within 24 hours. Supports high throughput of up to 720,000 updates per app per hour using batch modification methods." + ], + "type": "string" + }, + "offerId": { + "description": "Required. The unique offer ID of the offer to deactivate.", + "type": "string" + }, + "packageName": { + "description": "Required. The parent app (package name) of the offer to deactivate.", + "type": "string" + }, + "productId": { + "description": "Required. The parent subscription (ID) of the offer to deactivate.", + "type": "string" + } + }, "type": "object" }, "DeferredItemReplacement": { @@ -4764,6 +5873,18 @@ }, "type": "object" }, + "DeployAppRecoveryRequest": { + "description": "Request message for DeployAppRecovery.", + "id": "DeployAppRecoveryRequest", + "properties": {}, + "type": "object" + }, + "DeployAppRecoveryResponse": { + "description": "Response message for DeployAppRecovery.", + "id": "DeployAppRecoveryResponse", + "properties": {}, + "type": "object" + }, "DeveloperComment": { "description": "Developer entry from conversation between user and developer.", "id": "DeveloperComment", @@ -5332,6 +6453,13 @@ }, "type": "array" }, + "generatedRecoveryModules": { + "description": "Generated recovery apks for recovery actions signed with a key corresponding to certificate_sha256_hash. This includes all generated recovery APKs, also those in draft or cancelled state. This field is not set if no recovery actions were created for this signing key.", + "items": { + "$ref": "GeneratedRecoveryApk" + }, + "type": "array" + }, "generatedSplitApks": { "description": "List of generated split APKs, signed with a key corresponding to certificate_sha256_hash.", "items": { @@ -5357,25 +6485,65 @@ }, "type": "object" }, - "GeneratedAssetPackSlice": { - "description": "Download metadata for an asset pack slice.", - "id": "GeneratedAssetPackSlice", + "GeneratedAssetPackSlice": { + "description": "Download metadata for an asset pack slice.", + "id": "GeneratedAssetPackSlice", + "properties": { + "downloadId": { + "description": "Download ID, which uniquely identifies the APK to download. Should be supplied to `generatedapks.download` method.", + "type": "string" + }, + "moduleName": { + "description": "Name of the module that this asset slice belongs to.", + "type": "string" + }, + "sliceId": { + "description": "Asset slice ID.", + "type": "string" + }, + "version": { + "description": "Asset module version.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GeneratedRecoveryApk": { + "description": "Download metadata for an app recovery module.", + "id": "GeneratedRecoveryApk", "properties": { "downloadId": { "description": "Download ID, which uniquely identifies the APK to download. Should be supplied to `generatedapks.download` method.", "type": "string" }, "moduleName": { - "description": "Name of the module that this asset slice belongs to.", + "description": "Name of the module which recovery apk belongs to.", "type": "string" }, - "sliceId": { - "description": "Asset slice ID.", + "recoveryId": { + "description": "ID of the recovery action.", + "format": "int64", "type": "string" }, - "version": { - "description": "Asset module version.", - "format": "int64", + "recoveryStatus": { + "description": "The status of the recovery action corresponding to the recovery apk.", + "enum": [ + "RECOVERY_STATUS_UNSPECIFIED", + "RECOVERY_STATUS_ACTIVE", + "RECOVERY_STATUS_CANCELED", + "RECOVERY_STATUS_DRAFT", + "RECOVERY_STATUS_GENERATION_IN_PROGRESS", + "RECOVERY_STATUS_GENERATION_FAILED" + ], + "enumDescriptions": [ + "RecoveryStatus is unspecified.", + "The app recovery action has not been canceled since it has been created.", + "The recovery action has been canceled. The action cannot be resumed.", + "The recovery action is in the draft state and has not yet been deployed to users.", + "The recovery action is generating recovery apks.", + "The app recovery action generation has failed." + ], "type": "string" } }, @@ -5432,6 +6600,29 @@ }, "type": "object" }, + "GetSubscriptionOfferRequest": { + "description": "Request message for GetSubscriptionOffer.", + "id": "GetSubscriptionOfferRequest", + "properties": { + "basePlanId": { + "description": "Required. The parent base plan (ID) of the offer to get.", + "type": "string" + }, + "offerId": { + "description": "Required. The unique offer ID of the offer to get.", + "type": "string" + }, + "packageName": { + "description": "Required. The parent app (package name) of the offer to get.", + "type": "string" + }, + "productId": { + "description": "Required. The parent subscription (ID) of the offer to get.", + "type": "string" + } + }, + "type": "object" + }, "Grant": { "description": "An access grant resource.", "id": "Grant", @@ -5671,6 +6862,91 @@ }, "type": "object" }, + "InappproductsBatchDeleteRequest": { + "description": "Request to delete multiple in-app products.", + "id": "InappproductsBatchDeleteRequest", + "properties": { + "requests": { + "description": "Individual delete requests. At least one request is required. Can contain up to 100 requests. All requests must correspond to different in-app products.", + "items": { + "$ref": "InappproductsDeleteRequest" + }, + "type": "array" + } + }, + "type": "object" + }, + "InappproductsBatchGetResponse": { + "description": "Response message for BatchGetSubscriptions endpoint.", + "id": "InappproductsBatchGetResponse", + "properties": { + "inappproduct": { + "description": "The list of requested in-app products, in the same order as the request.", + "items": { + "$ref": "InAppProduct" + }, + "type": "array" + } + }, + "type": "object" + }, + "InappproductsBatchUpdateRequest": { + "description": "Request to update or insert one or more in-app products.", + "id": "InappproductsBatchUpdateRequest", + "properties": { + "requests": { + "description": "Required. Individual update requests. At least one request is required. Can contain up to 100 requests. All requests must correspond to different in-app products.", + "items": { + "$ref": "InappproductsUpdateRequest" + }, + "type": "array" + } + }, + "type": "object" + }, + "InappproductsBatchUpdateResponse": { + "description": "Response for a batch in-app product update.", + "id": "InappproductsBatchUpdateResponse", + "properties": { + "inappproducts": { + "description": "The updated or inserted in-app products.", + "items": { + "$ref": "InAppProduct" + }, + "type": "array" + } + }, + "type": "object" + }, + "InappproductsDeleteRequest": { + "description": "Request to delete an in-app product.", + "id": "InappproductsDeleteRequest", + "properties": { + "latencyTolerance": { + "description": "Optional. The latency tolerance for the propagation of this product update. Defaults to latency-sensitive.", + "enum": [ + "PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED", + "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE", + "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" + ], + "enumDescriptions": [ + "Defaults to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE.", + "The update will propagate to clients within several minutes on average and up to a few hours in rare cases. Throughput is limited to 7,200 updates per app per hour.", + "The update will propagate to clients within 24 hours. Supports high throughput of up to 720,000 updates per app per hour using batch modification methods." + ], + "type": "string" + }, + "packageName": { + "description": "Package name of the app.", + "type": "string" + }, + "sku": { + "description": "Unique identifier for the in-app product.", + "type": "string" + } + }, + "type": "object" + }, "InappproductsListResponse": { "description": "Response listing all in-app products.", "id": "InappproductsListResponse", @@ -5698,6 +6974,47 @@ }, "type": "object" }, + "InappproductsUpdateRequest": { + "description": "Request to update an in-app product.", + "id": "InappproductsUpdateRequest", + "properties": { + "allowMissing": { + "description": "If set to true, and the in-app product with the given package_name and sku doesn't exist, the in-app product will be created.", + "type": "boolean" + }, + "autoConvertMissingPrices": { + "description": "If true the prices for all regions targeted by the parent app that don't have a price specified for this in-app product will be auto converted to the target currency based on the default price. Defaults to false.", + "type": "boolean" + }, + "inappproduct": { + "$ref": "InAppProduct", + "description": "The new in-app product." + }, + "latencyTolerance": { + "description": "Optional. The latency tolerance for the propagation of this product update. Defaults to latency-sensitive.", + "enum": [ + "PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED", + "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE", + "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" + ], + "enumDescriptions": [ + "Defaults to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE.", + "The update will propagate to clients within several minutes on average and up to a few hours in rare cases. Throughput is limited to 7,200 updates per app per hour.", + "The update will propagate to clients within 24 hours. Supports high throughput of up to 720,000 updates per app per hour using batch modification methods." + ], + "type": "string" + }, + "packageName": { + "description": "Package name of the app.", + "type": "string" + }, + "sku": { + "description": "Unique identifier for the in-app product.", + "type": "string" + } + }, + "type": "object" + }, "InternalAppSharingArtifact": { "description": "An artifact resource which gets created when uploading an APK or Android App Bundle through internal app sharing.", "id": "InternalAppSharingArtifact", @@ -5763,6 +7080,20 @@ }, "type": "object" }, + "ListAppRecoveriesResponse": { + "description": "Response message for ListAppRecoveries. -- api-linter: core::0158::response-next-page-token-field=disabled", + "id": "ListAppRecoveriesResponse", + "properties": { + "recoveryActions": { + "description": "List of recovery actions associated with the requested package name.", + "items": { + "$ref": "AppRecoveryAction" + }, + "type": "array" + } + }, + "type": "object" + }, "ListDeviceTierConfigsResponse": { "description": "Response listing existing device tier configs.", "id": "ListDeviceTierConfigsResponse", @@ -5931,6 +7262,32 @@ "description": "Request message for MigrateBasePlanPrices.", "id": "MigrateBasePlanPricesRequest", "properties": { + "basePlanId": { + "description": "Required. The unique base plan ID of the base plan to update prices on.", + "type": "string" + }, + "latencyTolerance": { + "description": "Optional. The latency tolerance for the propagation of this product update. Defaults to latency-sensitive.", + "enum": [ + "PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED", + "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE", + "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" + ], + "enumDescriptions": [ + "Defaults to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE.", + "The update will propagate to clients within several minutes on average and up to a few hours in rare cases. Throughput is limited to 7,200 updates per app per hour.", + "The update will propagate to clients within 24 hours. Supports high throughput of up to 720,000 updates per app per hour using batch modification methods." + ], + "type": "string" + }, + "packageName": { + "description": "Required. Package name of the parent app. Must be equal to the package_name field on the Subscription resource.", + "type": "string" + }, + "productId": { + "description": "Required. The ID of the subscription to update. Must be equal to the product_id field on the Subscription resource.", + "type": "string" + }, "regionalPriceMigrations": { "description": "Required. The regional prices to update.", "items": { @@ -6515,7 +7872,7 @@ "id": "RegionalTaxRateInfo", "properties": { "eligibleForStreamingServiceTaxRate": { - "description": "You must tell us if your app contains streaming products to correctly charge US state and local sales tax. Field only supported in United States.", + "description": "You must tell us if your app contains streaming products to correctly charge US state and local sales tax. Field only supported in the United States.", "type": "boolean" }, "streamingTaxType": { @@ -6563,6 +7920,20 @@ }, "type": "object" }, + "Regions": { + "description": "Region targeting data for app recovery action targeting.", + "id": "Regions", + "properties": { + "regionCode": { + "description": "Regions targeted by the recovery action. Region codes are ISO 3166 Alpha-2 country codes. For example, US stands for United States of America. See https://www.iso.org/iso-3166-country-codes.html for the complete list of country codes.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "RegionsVersion": { "description": "The version of the available regions being used for the specified resource.", "id": "RegionsVersion", @@ -6574,6 +7945,53 @@ }, "type": "object" }, + "RemoteInAppUpdate": { + "description": "Object representation for Remote in-app update action type.", + "id": "RemoteInAppUpdate", + "properties": { + "isRemoteInAppUpdateRequested": { + "description": "Required. Set to true if Remote In-App Update action type is needed.", + "type": "boolean" + } + }, + "type": "object" + }, + "RemoteInAppUpdateData": { + "description": "Data related to Remote In-App Update action such as recovered user count, affected user count etc.", + "id": "RemoteInAppUpdateData", + "properties": { + "remoteAppUpdateDataPerBundle": { + "description": "Data related to the recovery action at bundle level.", + "items": { + "$ref": "RemoteInAppUpdateDataPerBundle" + }, + "type": "array" + } + }, + "type": "object" + }, + "RemoteInAppUpdateDataPerBundle": { + "description": "Data related to the recovery action at bundle level.", + "id": "RemoteInAppUpdateDataPerBundle", + "properties": { + "recoveredDeviceCount": { + "description": "Total number of devices which have been rescued.", + "format": "int64", + "type": "string" + }, + "totalDeviceCount": { + "description": "Total number of devices affected by this recovery action associated with bundle of the app.", + "format": "int64", + "type": "string" + }, + "versionCode": { + "description": "Version Code corresponding to the target bundle.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "ReplacementCancellation": { "description": "Information specific to cancellations caused by subscription replacement.", "id": "ReplacementCancellation", @@ -6661,6 +8079,57 @@ }, "type": "object" }, + "RevocationContext": { + "description": "Revocation context of the purchases.subscriptionsv2.revoke API.", + "id": "RevocationContext", + "properties": { + "proratedRefund": { + "$ref": "RevocationContextProratedRefund", + "description": "Optional. Used when users should be refunded a prorated amount they paid for their subscription based on the amount of time remaining in a subscription." + } + }, + "type": "object" + }, + "RevocationContextProratedRefund": { + "description": "Used to determine if the refund type in the RevocationContext is a prorated refund.", + "id": "RevocationContextProratedRefund", + "properties": {}, + "type": "object" + }, + "RevokeSubscriptionPurchaseRequest": { + "description": "Request for the purchases.subscriptionsv2.revoke API.", + "id": "RevokeSubscriptionPurchaseRequest", + "properties": { + "revocationContext": { + "$ref": "RevocationContext", + "description": "Required. Additional details around the subscription revocation." + } + }, + "type": "object" + }, + "RevokeSubscriptionPurchaseResponse": { + "description": "Response for the purchases.subscriptionsv2.revoke API.", + "id": "RevokeSubscriptionPurchaseResponse", + "properties": {}, + "type": "object" + }, + "SafetyLabelsUpdateRequest": { + "description": "Request to update Safety Labels of an app.", + "id": "SafetyLabelsUpdateRequest", + "properties": { + "safetyLabels": { + "description": "Required. Contents of the CSV file containing Data Safety responses. For the format of this file, see the Help Center documentation at https://support.google.com/googleplay/android-developer/answer/10787469?#zippy=%2Cunderstand-the-csv-format To download an up to date template, follow the steps at https://support.google.com/googleplay/android-developer/answer/10787469?#zippy=%2Cexport-to-a-csv-file", + "type": "string" + } + }, + "type": "object" + }, + "SafetyLabelsUpdateResponse": { + "description": "Response for SafetyLabelsUpdate rpc.", + "id": "SafetyLabelsUpdateResponse", + "properties": {}, + "type": "object" + }, "ScreenDensity": { "description": "Represents a screen density.", "id": "ScreenDensity", @@ -6837,7 +8306,8 @@ "id": "Subscription", "properties": { "archived": { - "description": "Output only. Whether this subscription is archived. Archived subscriptions are not available to any subscriber any longer, cannot be updated, and are not returned in list requests unless the show archived flag is passed in.", + "deprecated": true, + "description": "Output only. Deprecated: subscription archiving is not supported.", "readOnly": true, "type": "boolean" }, @@ -7478,6 +8948,33 @@ "properties": {}, "type": "object" }, + "Targeting": { + "description": "Targeting details for a recovery action such as regions, android sdk levels, app versions etc.", + "id": "Targeting", + "properties": { + "allUsers": { + "$ref": "AllUsers", + "description": "All users are targeted." + }, + "androidSdks": { + "$ref": "AndroidSdks", + "description": "Targeting is based on android api levels of devices." + }, + "regions": { + "$ref": "Regions", + "description": "Targeting is based on the user account region." + }, + "versionList": { + "$ref": "AppVersionList", + "description": "Target version codes as a list." + }, + "versionRange": { + "$ref": "AppVersionRange", + "description": "Target version codes as a range." + } + }, + "type": "object" + }, "TargetingInfo": { "description": "Targeting information about the generated apks.", "id": "TargetingInfo", @@ -7514,6 +9011,25 @@ }, "type": "object" }, + "TargetingUpdate": { + "description": "Update type for targeting. Note it is always a subset Targeting.", + "id": "TargetingUpdate", + "properties": { + "allUsers": { + "$ref": "AllUsers", + "description": "All users are targeted." + }, + "androidSdks": { + "$ref": "AndroidSdks", + "description": "Additional android sdk levels are targeted by the recovery action." + }, + "regions": { + "$ref": "Regions", + "description": "Additional regions are targeted by the recovery action." + } + }, + "type": "object" + }, "TestPurchase": { "description": "Whether this subscription purchase is a test purchase.", "id": "TestPurchase", @@ -7789,6 +9305,112 @@ }, "type": "object" }, + "UpdateBasePlanStateRequest": { + "description": "Request message to update the state of a subscription base plan.", + "id": "UpdateBasePlanStateRequest", + "properties": { + "activateBasePlanRequest": { + "$ref": "ActivateBasePlanRequest", + "description": "Activates a base plan. Once activated, base plans will be available to new subscribers." + }, + "deactivateBasePlanRequest": { + "$ref": "DeactivateBasePlanRequest", + "description": "Deactivates a base plan. Once deactivated, the base plan will become unavailable to new subscribers, but existing subscribers will maintain their subscription" + } + }, + "type": "object" + }, + "UpdateSubscriptionOfferRequest": { + "description": "Request message for UpdateSubscriptionOffer.", + "id": "UpdateSubscriptionOfferRequest", + "properties": { + "allowMissing": { + "description": "Optional. If set to true, and the subscription offer with the given package_name, product_id, base_plan_id and offer_id doesn't exist, an offer will be created. If a new offer is created, update_mask is ignored.", + "type": "boolean" + }, + "latencyTolerance": { + "description": "Optional. The latency tolerance for the propagation of this product update. Defaults to latency-sensitive.", + "enum": [ + "PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED", + "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE", + "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" + ], + "enumDescriptions": [ + "Defaults to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE.", + "The update will propagate to clients within several minutes on average and up to a few hours in rare cases. Throughput is limited to 7,200 updates per app per hour.", + "The update will propagate to clients within 24 hours. Supports high throughput of up to 720,000 updates per app per hour using batch modification methods." + ], + "type": "string" + }, + "regionsVersion": { + "$ref": "RegionsVersion", + "description": "Required. The version of the available regions being used for the subscription_offer." + }, + "subscriptionOffer": { + "$ref": "SubscriptionOffer", + "description": "Required. The subscription offer to update." + }, + "updateMask": { + "description": "Required. The list of fields to be updated.", + "format": "google-fieldmask", + "type": "string" + } + }, + "type": "object" + }, + "UpdateSubscriptionOfferStateRequest": { + "description": "Request message to update the state of a subscription offer.", + "id": "UpdateSubscriptionOfferStateRequest", + "properties": { + "activateSubscriptionOfferRequest": { + "$ref": "ActivateSubscriptionOfferRequest", + "description": "Activates an offer. Once activated, the offer will be available to new subscribers." + }, + "deactivateSubscriptionOfferRequest": { + "$ref": "DeactivateSubscriptionOfferRequest", + "description": "Deactivates an offer. Once deactivated, the offer will become unavailable to new subscribers, but existing subscribers will maintain their subscription" + } + }, + "type": "object" + }, + "UpdateSubscriptionRequest": { + "description": "Request message for UpdateSubscription.", + "id": "UpdateSubscriptionRequest", + "properties": { + "allowMissing": { + "description": "Optional. If set to true, and the subscription with the given package_name and product_id doesn't exist, the subscription will be created. If a new subscription is created, update_mask is ignored.", + "type": "boolean" + }, + "latencyTolerance": { + "description": "Optional. The latency tolerance for the propagation of this product update. Defaults to latency-sensitive.", + "enum": [ + "PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED", + "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE", + "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" + ], + "enumDescriptions": [ + "Defaults to PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE.", + "The update will propagate to clients within several minutes on average and up to a few hours in rare cases. Throughput is limited to 7,200 updates per app per hour.", + "The update will propagate to clients within 24 hours. Supports high throughput of up to 720,000 updates per app per hour using batch modification methods." + ], + "type": "string" + }, + "regionsVersion": { + "$ref": "RegionsVersion", + "description": "Required. The version of the available regions being used for the subscription." + }, + "subscription": { + "$ref": "Subscription", + "description": "Required. The subscription to update." + }, + "updateMask": { + "description": "Required. The list of fields to be updated.", + "format": "google-fieldmask", + "type": "string" + } + }, + "type": "object" + }, "UpgradeTargetingRule": { "description": "Represents a targeting rule of the form: User currently has {scope} [with billing period {billing_period}].", "id": "UpgradeTargetingRule", diff --git a/discovery/googleapis/apigateway__v1.json b/discovery/googleapis/apigateway__v1.json index f33be0fb7..3eee7a227 100644 --- a/discovery/googleapis/apigateway__v1.json +++ b/discovery/googleapis/apigateway__v1.json @@ -24,7 +24,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231101", + "revision": "20240207", "rootUrl": "https://apigateway.googleapis.com/", "servicePath": "", "title": "API Gateway API", @@ -1338,14 +1338,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, diff --git a/discovery/googleapis/apigee__v1.json b/discovery/googleapis/apigee__v1.json index b5f3d6b5c..db586957d 100644 --- a/discovery/googleapis/apigee__v1.json +++ b/discovery/googleapis/apigee__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231114", + "revision": "20240220", "rootUrl": "https://apigee.googleapis.com/", "servicePath": "", "title": "Apigee API", @@ -169,7 +169,7 @@ ] }, "delete": { - "description": "Delete an Apigee organization. For organizations with BillingType EVALUATION, an immediate deletion is performed. For paid organizations, a soft-deletion is performed. The organization can be restored within the soft-deletion period which can be controlled using the retention field in the request.", + "description": "Delete an Apigee organization. For organizations with BillingType EVALUATION, an immediate deletion is performed. For paid organizations (Subscription or Pay-as-you-go), a soft-deletion is performed. The organization can be restored within the soft-deletion period, which is specified using the `retention` field in the request or by filing a support ticket with Apigee. During the data retention period specified in the request, the Apigee organization cannot be recreated in the same Google Cloud project. **IMPORTANT: The default data retention setting for this operation is 7 days. To permanently delete the organization in 24 hours, set the retention parameter to `MINIMUM`.**", "flatPath": "v1/organizations/{organizationsId}", "httpMethod": "DELETE", "id": "apigee.organizations.delete", @@ -185,7 +185,7 @@ "type": "string" }, "retention": { - "description": "Optional. This setting is applicable only for organizations that are soft-deleted (i.e., BillingType is not EVALUATION). It controls how long Organization data will be retained after the initial delete operation completes. During this period, the Organization may be restored to its last known state. After this period, the Organization will no longer be able to be restored.", + "description": "Optional. This setting is applicable only for organizations that are soft-deleted (i.e., BillingType is not EVALUATION). It controls how long Organization data will be retained after the initial delete operation completes. During this period, the Organization may be restored to its last known state. After this period, the Organization will no longer be able to be restored. **Note: During the data retention period specified using this field, the Apigee organization cannot be recreated in the same GCP project.**", "enum": [ "DELETION_RETENTION_UNSPECIFIED", "MINIMUM" @@ -321,6 +321,31 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "getSecuritySettings": { + "description": "GetSecuritySettings gets the security settings for API Security.", + "flatPath": "v1/organizations/{organizationsId}/securitySettings", + "httpMethod": "GET", + "id": "apigee.organizations.getSecuritySettings", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the SecuritySettings to retrieve. This will always be: 'organizations/{org}/securitySettings'.", + "location": "path", + "pattern": "^organizations/[^/]+/securitySettings$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudApigeeV1SecuritySettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "getSyncAuthorization": { "description": "Lists the service accounts with the permissions required to allow the Synchronizer to download environment data from the control plane. An ETag is returned in the response to `getSyncAuthorization`. Pass that ETag when calling [setSyncAuthorization](setSyncAuthorization) to ensure that you are updating the correct version. If you don't pass the ETag in the call to `setSyncAuthorization`, then the existing authorization is overwritten indiscriminately. For more information, see [Configure the Synchronizer](https://cloud.google.com/apigee/docs/hybrid/latest/synchronizer-access). **Note**: Available to Apigee hybrid only.", "flatPath": "v1/organizations/{organizationsId}:getSyncAuthorization", @@ -457,6 +482,40 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "updateSecuritySettings": { + "description": "UpdateSecuritySettings updates the current security settings for API Security.", + "flatPath": "v1/organizations/{organizationsId}/securitySettings", + "httpMethod": "PATCH", + "id": "apigee.organizations.updateSecuritySettings", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Identifier. Full resource name is always `organizations/{org}/securitySettings`.", + "location": "path", + "pattern": "^organizations/[^/]+/securitySettings$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. The list of fields to update. Allowed fields are: - ml_retraining_feedback_enabled", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleCloudApigeeV1SecuritySettings" + }, + "response": { + "$ref": "GoogleCloudApigeeV1SecuritySettings" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } }, "resources": { @@ -1468,6 +1527,34 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "update": { + "description": "Update key value entry scoped to an organization, environment, or API proxy for an existing key.", + "flatPath": "v1/organizations/{organizationsId}/apis/{apisId}/keyvaluemaps/{keyvaluemapsId}/entries/{entriesId}", + "httpMethod": "PUT", + "id": "apigee.organizations.apis.keyvaluemaps.entries.update", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Scope as indicated by the URI in which to create the key value map entry. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}`.", + "location": "path", + "pattern": "^organizations/[^/]+/apis/[^/]+/keyvaluemaps/[^/]+/entries/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleCloudApigeeV1KeyValueEntry" + }, + "response": { + "$ref": "GoogleCloudApigeeV1KeyValueEntry" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } } @@ -3040,7 +3127,7 @@ ], "parameters": { "parent": { - "description": "Parent of the developer app key. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps`", + "description": "Parent of the developer app key. Use the following structure in your request: 'organizations/{org}/developers/{developerEmail}/apps/{appName}'", "location": "path", "pattern": "^organizations/[^/]+/developers/[^/]+/apps/[^/]+$", "required": true, @@ -3242,7 +3329,7 @@ ], "parameters": { "parent": { - "description": "Parent of the developer app key. Use the following structure in your request: `organizations/{org}/developers/{developer_email}/apps`", + "description": "Parent of the developer app key. Use the following structure in your request: 'organizations/{org}/developers/{developerEmail}/apps/{appName}'", "location": "path", "pattern": "^organizations/[^/]+/developers/[^/]+/apps/[^/]+$", "required": true, @@ -3691,7 +3778,7 @@ ], "parameters": { "name": { - "description": "ID of the environment group. Overrides any ID in the environment_group resource.", + "description": "Optional. ID of the environment group. Overrides any ID in the environment_group resource.", "location": "query", "type": "string" }, @@ -3857,7 +3944,7 @@ "type": "string" }, "updateMask": { - "description": "List of fields to be updated.", + "description": "Optional. List of fields to be updated.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -5889,6 +5976,34 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "update": { + "description": "Update key value entry scoped to an organization, environment, or API proxy for an existing key.", + "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/keyvaluemaps/{keyvaluemapsId}/entries/{entriesId}", + "httpMethod": "PUT", + "id": "apigee.organizations.environments.keyvaluemaps.entries.update", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Scope as indicated by the URI in which to create the key value map entry. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}`.", + "location": "path", + "pattern": "^organizations/[^/]+/environments/[^/]+/keyvaluemaps/[^/]+/entries/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleCloudApigeeV1KeyValueEntry" + }, + "response": { + "$ref": "GoogleCloudApigeeV1KeyValueEntry" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } } @@ -6655,6 +6770,34 @@ }, "securityIncidents": { "methods": { + "batchUpdate": { + "description": "BatchUpdateSecurityIncident updates multiple existing security incidents.", + "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityIncidents:batchUpdate", + "httpMethod": "POST", + "id": "apigee.organizations.environments.securityIncidents.batchUpdate", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Optional. The parent resource shared by all security incidents being updated. If this is set, the parent field in the UpdateSecurityIncidentRequest messages must either be empty or match this field.", + "location": "path", + "pattern": "^organizations/[^/]+/environments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/securityIncidents:batchUpdate", + "request": { + "$ref": "GoogleCloudApigeeV1BatchUpdateSecurityIncidentsRequest" + }, + "response": { + "$ref": "GoogleCloudApigeeV1BatchUpdateSecurityIncidentsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "GetSecurityIncident gets the specified security incident. Returns NOT_FOUND if security incident is not present for the specified organization and environment.", "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityIncidents/{securityIncidentsId}", @@ -6720,6 +6863,40 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "patch": { + "description": "UpdateSecurityIncidents updates an existing security incident.", + "flatPath": "v1/organizations/{organizationsId}/environments/{environmentsId}/securityIncidents/{securityIncidentsId}", + "httpMethod": "PATCH", + "id": "apigee.organizations.environments.securityIncidents.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Immutable. Name of the security incident resource. Format: organizations/{org}/environments/{environment}/securityIncidents/{incident} Example: organizations/apigee-org/environments/dev/securityIncidents/1234-5678-9101-1111", + "location": "path", + "pattern": "^organizations/[^/]+/environments/[^/]+/securityIncidents/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. The list of fields to update. Allowed fields are: LINT.IfChange(allowed_update_fields_comment) - observability LINT.ThenChange()", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleCloudApigeeV1SecurityIncident" + }, + "response": { + "$ref": "GoogleCloudApigeeV1SecurityIncident" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } }, @@ -8564,6 +8741,34 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "update": { + "description": "Update key value entry scoped to an organization, environment, or API proxy for an existing key.", + "flatPath": "v1/organizations/{organizationsId}/keyvaluemaps/{keyvaluemapsId}/entries/{entriesId}", + "httpMethod": "PUT", + "id": "apigee.organizations.keyvaluemaps.entries.update", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Scope as indicated by the URI in which to create the key value map entry. Use **one** of the following structures in your request: * `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}`. * `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}` * `organizations/{organization}/keyvaluemaps/{keyvaluemap}`.", + "location": "path", + "pattern": "^organizations/[^/]+/keyvaluemaps/[^/]+/entries/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleCloudApigeeV1KeyValueEntry" + }, + "response": { + "$ref": "GoogleCloudApigeeV1KeyValueEntry" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } } @@ -10762,6 +10967,35 @@ }, "type": "object" }, + "GoogleCloudApigeeV1BatchUpdateSecurityIncidentsRequest": { + "description": "Request for BatchUpdateSecurityIncident.", + "id": "GoogleCloudApigeeV1BatchUpdateSecurityIncidentsRequest", + "properties": { + "requests": { + "description": "Optional. Required. The request message specifying the resources to update. A maximum of 1000 can be modified in a batch.", + "items": { + "$ref": "GoogleCloudApigeeV1UpdateSecurityIncidentRequest" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudApigeeV1BatchUpdateSecurityIncidentsResponse": { + "description": "Response for BatchUpdateSecurityIncident.", + "id": "GoogleCloudApigeeV1BatchUpdateSecurityIncidentsResponse", + "properties": { + "securityIncidents": { + "description": "Output only. Updated security incidents", + "items": { + "$ref": "GoogleCloudApigeeV1SecurityIncident" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudApigeeV1CanaryEvaluation": { "description": "CanaryEvaluation represents the canary analysis between two versions of the runtime that is serving requests.", "id": "GoogleCloudApigeeV1CanaryEvaluation", @@ -12301,7 +12535,7 @@ "type": "string" }, "forwardProxyUri": { - "description": "Optional. Url of the forward proxy to be applied to the runtime instances in this environment. Must be in the format of {scheme}://{hostname}:{port}. Note that scheme must be one of \"http\" or \"https\", and port must be supplied.", + "description": "Optional. URI of the forward proxy to be applied to the runtime instances in this environment. Must be in the format of {scheme}://{hostname}:{port}. Note that the scheme must be one of \"http\" or \"https\", and the port must be supplied. To remove a forward proxy setting, update the field to an empty value. Note: At this time, PUT operations to add forwardProxyUri to an existing environment fail if the environment has nodeConfig set up. To successfully add the forwardProxyUri setting in this case, include the NodeConfig details with the request.", "type": "string" }, "hasAttachedFlowHooks": { @@ -12354,8 +12588,8 @@ ], "enumDescriptions": [ "Environment type not specified.", - "Base environment has limited capacity and capabilities and are usually used when you are getting started with Apigee or while experimenting. Refer to Apigee's public documentation for more details.", - "This is the default type and it supports API management features and higher capacity than Base environment. Refer to Apigee's public documentation for more details.", + "This is the default type. Base environment has limited capacity and capabilities and are usually used when you are getting started with Apigee or while experimenting. Refer to Apigee's public documentation for more details.", + "Intermediate environment supports API management features and higher capacity than Base environment. Refer to Apigee's public documentation for more details.", "Comprehensive environment supports advanced capabilites and even higher capacity than Intermediate environment. Refer to Apigee's public documentation for more details." ], "type": "string" @@ -15854,11 +16088,46 @@ "type": "object" }, "GoogleCloudApigeeV1SecurityActionConditionConfig": { - "description": "The following are a list of conditions. A valid SecurityAction must contain at least one condition. Within a condition, each element is ORed. Across conditions elements are ANDed. For example if a SecurityAction has the following: api_keys: [\"key1\", \"key2\"] and developers: [\"dev1\", \"dev2\"] then this is interpreted as: enforce the action if the incoming request has ((api_key = \"key1\" OR api_key=\"key\") AND (developer=\"dev1\" OR developer=\"dev2\"))", + "description": "The following are a list of conditions. A valid SecurityAction must contain at least one condition. Within a condition, each element is ORed. Across conditions elements are ANDed. For example if a SecurityAction has the following: ip_address_ranges: [\"ip1\", \"ip2\"] and bot_reasons: [\"Flooder\", \"Robot Abuser\"] then this is interpreted as: enforce the action if the incoming request has ((ip_address_ranges = \"ip1\" OR ip_address_ranges = \"ip2\") AND (bot_reasons=\"Flooder\" OR bot_reasons=\"Robot Abuser\")). Conditions other than ip_address_ranges and bot_reasons cannot be ANDed.", "id": "GoogleCloudApigeeV1SecurityActionConditionConfig", "properties": { + "accessTokens": { + "description": "Optional. A list of access_tokens. Limit 1000 per action.", + "items": { + "type": "string" + }, + "type": "array" + }, + "apiKeys": { + "description": "Optional. A list of API keys. Limit 1000 per action.", + "items": { + "type": "string" + }, + "type": "array" + }, + "apiProducts": { + "description": "Optional. A list of API Products. Limit 1000 per action.", + "items": { + "type": "string" + }, + "type": "array" + }, "botReasons": { - "description": "Optional. A list of Bot Reasons. Current options: Flooder, Brute Guessor, Static Content Scraper, OAuth Abuser, Robot Abuser, TorListRule, Advanced Anomaly Detection and Advanced API Scraper.", + "description": "Optional. A list of Bot Reasons. Current options: Flooder, Brute Guessor, Static Content Scraper, OAuth Abuser, Robot Abuser, TorListRule, Advanced Anomaly Detection, Advanced API Scraper, Search Engine Crawlers, Public Clouds, Public Cloud AWS, Public Cloud Azure, and Public Cloud Google.", + "items": { + "type": "string" + }, + "type": "array" + }, + "developerApps": { + "description": "Optional. A list of developer apps. Limit 1000 per action.", + "items": { + "type": "string" + }, + "type": "array" + }, + "developers": { + "description": "Optional. A list of developers. Limit 1000 per action.", "items": { "type": "string" }, @@ -15870,6 +16139,13 @@ "type": "string" }, "type": "array" + }, + "userAgents": { + "description": "Optional. A list of user agents to deny. We look for exact matches. Limit 50 per action.", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" @@ -15964,10 +16240,30 @@ "readOnly": true, "type": "string" }, + "lastObservabilityChangeTime": { + "description": "Output only. The time when the incident observability was last changed.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, "name": { "description": "Immutable. Name of the security incident resource. Format: organizations/{org}/environments/{environment}/securityIncidents/{incident} Example: organizations/apigee-org/environments/dev/securityIncidents/1234-5678-9101-1111", "type": "string" }, + "observability": { + "description": "Optional. Indicates if the user archived this incident.", + "enum": [ + "OBSERVABILITY_UNSPECIFIED", + "ACTIVE", + "ARCHIVED" + ], + "enumDescriptions": [ + "The incident observability is unspecified.", + "The incident is currently active. Can change to this status from archived.", + "The incident is currently archived and was archived by the customer." + ], + "type": "string" + }, "riskLevel": { "description": "Output only. Risk level of the incident.", "enum": [ @@ -16002,7 +16298,8 @@ "type": "string" }, "displayName": { - "description": "Display name of the security profile.", + "deprecated": true, + "description": "DEPRECATED: DO NOT USE Display name of the security profile.", "type": "string" }, "environments": { @@ -16045,7 +16342,8 @@ "type": "string" }, "revisionPublishTime": { - "description": "Output only. The time when revision was published. Once published, the security profile revision cannot be updated further and can be attached to environments.", + "deprecated": true, + "description": "Output only. DEPRECATED: DO NOT USE The time when revision was published. Once published, the security profile revision cannot be updated further and can be attached to environments.", "format": "google-datetime", "readOnly": true, "type": "string" @@ -16099,7 +16397,8 @@ "type": "string" }, "securityProfileRevisionId": { - "description": "Revision ID of the security profile.", + "deprecated": true, + "description": "DEPRECATED: DO NOT USE Revision ID of the security profile.", "format": "int64", "type": "string" } @@ -16357,6 +16656,21 @@ }, "type": "object" }, + "GoogleCloudApigeeV1SecuritySettings": { + "description": "SecuritySettings reflects the current state of the SecuritySettings feature.", + "id": "GoogleCloudApigeeV1SecuritySettings", + "properties": { + "mlRetrainingFeedbackEnabled": { + "description": "Optional. If true the user consents to the use of ML models for Abuse detection.", + "type": "boolean" + }, + "name": { + "description": "Identifier. Full resource name is always `organizations/{org}/securitySettings`.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudApigeeV1ServiceIssuersMapping": { "id": "GoogleCloudApigeeV1ServiceIssuersMapping", "properties": { @@ -17007,6 +17321,22 @@ }, "type": "object" }, + "GoogleCloudApigeeV1UpdateSecurityIncidentRequest": { + "description": "Request for UpdateSecurityIncident.", + "id": "GoogleCloudApigeeV1UpdateSecurityIncidentRequest", + "properties": { + "securityIncident": { + "$ref": "GoogleCloudApigeeV1SecurityIncident", + "description": "Required. The security incident to update. Must contain all existing populated fields of the current incident." + }, + "updateMask": { + "description": "Required. The list of fields to update. Allowed fields are: LINT.IfChange(allowed_update_fields_comment) - observability LINT.ThenChange()", + "format": "google-fieldmask", + "type": "string" + } + }, + "type": "object" + }, "GoogleIamV1AuditConfig": { "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "GoogleIamV1AuditConfig", @@ -17064,14 +17394,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, diff --git a/discovery/googleapis/apigeeregistry__v1.json b/discovery/googleapis/apigeeregistry__v1.json index bb7a78c3a..caf7b5cc8 100644 --- a/discovery/googleapis/apigeeregistry__v1.json +++ b/discovery/googleapis/apigeeregistry__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231109", + "revision": "20231204", "rootUrl": "https://apigeeregistry.googleapis.com/", "servicePath": "", "title": "Apigee Registry API", diff --git a/discovery/googleapis/apikeys__v2.json b/discovery/googleapis/apikeys__v2.json index cff21b815..cfd36d38f 100644 --- a/discovery/googleapis/apikeys__v2.json +++ b/discovery/googleapis/apikeys__v2.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231114", + "revision": "20240220", "rootUrl": "https://apikeys.googleapis.com/", "servicePath": "", "title": "API Keys API", diff --git a/discovery/googleapis/appengine__v1.json b/discovery/googleapis/appengine__v1.json index ec3708df0..82b43b13f 100644 --- a/discovery/googleapis/appengine__v1.json +++ b/discovery/googleapis/appengine__v1.json @@ -30,7 +30,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231109", + "revision": "20240218", "rootUrl": "https://appengine.googleapis.com/", "servicePath": "", "title": "App Engine Admin API", @@ -2062,13 +2062,11 @@ "id": "ContainerState", "properties": { "currentReasons": { - "$ref": "Reasons", - "deprecated": true + "$ref": "Reasons" }, "previousReasons": { "$ref": "Reasons", - "deprecated": true, - "description": "The previous and current reasons for a container state will be sent for a container event. CLHs that need to know the signal that caused the container event to trigger (edges) as opposed to just knowing the state can act upon differences in the previous and current reasons.Reasons will be provided for every system: service management, data governance, abuse, and billing.If this is a CCFE-triggered event used for reconciliation then the current reasons will be set to their *_CONTROL_PLANE_SYNC state. The previous reasons will contain the last known set of non-unknown non-control_plane_sync reasons for the state.Reasons fields are deprecated. New tenants should only use the state field. If you must know the reason(s) behind a specific state, please consult with CCFE team first (cloud-ccfe-discuss@google.com)." + "description": "The previous and current reasons for a container state will be sent for a container event. CLHs that need to know the signal that caused the container event to trigger (edges) as opposed to just knowing the state can act upon differences in the previous and current reasons.Reasons will be provided for every system: service management, data governance, abuse, and billing.If this is a CCFE-triggered event used for reconciliation then the current reasons will be set to their *_CONTROL_PLANE_SYNC state. The previous reasons will contain the last known set of non-unknown non-control_plane_sync reasons for the state." }, "state": { "description": "The current state of the container. This state is the culmination of all of the opinions from external systems that CCFE knows about of the container.", @@ -3526,6 +3524,10 @@ "$ref": "Date", "description": "Date when Runtime is deprecated." }, + "displayName": { + "description": "User-friendly display name, e.g. 'Node.js 12', etc.", + "type": "string" + }, "endOfSupportDate": { "$ref": "Date", "description": "Date when Runtime is end of support." @@ -3572,6 +3574,13 @@ ], "type": "string" }, + "supportedOperatingSystems": { + "description": "Supported operating systems for the runtime, e.g., 'ubuntu22', etc.", + "items": { + "type": "string" + }, + "type": "array" + }, "warnings": { "description": "Warning messages, e.g., a deprecation warning.", "items": { diff --git a/discovery/googleapis/apphub__v1.json b/discovery/googleapis/apphub__v1.json new file mode 100644 index 000000000..88096ced7 --- /dev/null +++ b/discovery/googleapis/apphub__v1.json @@ -0,0 +1,2335 @@ +{ + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/cloud-platform": { + "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." + } + } + } + }, + "basePath": "", + "baseUrl": "https://apphub.googleapis.com/", + "batchPath": "batch", + "canonicalName": "App Hub", + "description": "", + "discoveryVersion": "v1", + "documentationLink": "https://cloud.google.com/app-hub/docs/", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "id": "apphub:v1", + "kind": "discovery#restDescription", + "name": "apphub", + "ownerDomain": "google.com", + "ownerName": "Google", + "protocol": "rest", + "revision": "20240217", + "rootUrl": "https://apphub.googleapis.com/", + "servicePath": "", + "title": "App Hub API", + "version": "v1", + "version_module": true, + "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" + } + }, + "resources": { + "projects": { + "resources": { + "locations": { + "methods": { + "detachServiceProjectAttachment": { + "description": "Detaches a service project from a host project. You can call this API from either a host or service project.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}:detachServiceProjectAttachment", + "httpMethod": "POST", + "id": "apphub.projects.locations.detachServiceProjectAttachment", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Value for name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:detachServiceProjectAttachment", + "request": { + "$ref": "DetachServiceProjectAttachmentRequest" + }, + "response": { + "$ref": "DetachServiceProjectAttachmentResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets information about a location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}", + "httpMethod": "GET", + "id": "apphub.projects.locations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Resource name for the location.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Location" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists information about the supported locations for this service.", + "flatPath": "v1/projects/{projectsId}/locations", + "httpMethod": "GET", + "id": "apphub.projects.locations.list", + "parameterOrder": [ + "name" + ], + "parameters": { + "filter": { + "description": "A filter to narrow down results to a preferred subset. The filtering language accepts strings like `\"displayName=tokyo\"`, and is documented in more detail in [AIP-160](https://google.aip.dev/160).", + "location": "query", + "type": "string" + }, + "name": { + "description": "The resource that owns the locations collection, if applicable.", + "location": "path", + "pattern": "^projects/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "The maximum number of results to return. If not set, the service selects a default.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token received from the `next_page_token` field in the response. Send that page token to receive the subsequent page.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}/locations", + "response": { + "$ref": "ListLocationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "lookupServiceProjectAttachment": { + "description": "Looks up a service project attachment. You can call this API from either a host or service project.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}:lookupServiceProjectAttachment", + "httpMethod": "GET", + "id": "apphub.projects.locations.lookupServiceProjectAttachment", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Value for name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:lookupServiceProjectAttachment", + "response": { + "$ref": "LookupServiceProjectAttachmentResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "applications": { + "methods": { + "create": { + "description": "Creates an Application in a host project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/applications", + "httpMethod": "POST", + "id": "apphub.projects.locations.applications.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "applicationId": { + "description": "Required. The Application identifier. Must contain only lowercase letters, numbers or hyphens, with the first character a letter, the last a letter or a number, and a 63 character maximum.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Value for parent.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/applications", + "request": { + "$ref": "Application" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes an Application in a host project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}", + "httpMethod": "DELETE", + "id": "apphub.projects.locations.applications.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Value for name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets an Application in a host project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}", + "httpMethod": "GET", + "id": "apphub.projects.locations.applications.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Value for name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Application" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getIamPolicy": { + "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}:getIamPolicy", + "httpMethod": "GET", + "id": "apphub.projects.locations.applications.getIamPolicy", + "parameterOrder": [ + "resource" + ], + "parameters": { + "options.requestedPolicyVersion": { + "description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", + "format": "int32", + "location": "query", + "type": "integer" + }, + "resource": { + "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists Applications in a host project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/applications", + "httpMethod": "GET", + "id": "apphub.projects.locations.applications.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Filtering results", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. Hint for how to order the results", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A token identifying a page of results the server should return.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Value for parent.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/applications", + "response": { + "$ref": "ListApplicationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates an Application in a host project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}", + "httpMethod": "PATCH", + "id": "apphub.projects.locations.applications.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Identifier. The resource name of an Application. Format: \"projects/{host-project-id}/locations/{location}/applications/{application-id}\"", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "Required. Field mask is used to specify the fields to be overwritten in the Application resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. The API changes the values of the fields as specified in the update_mask. The API ignores the values of all fields not covered by the update_mask. You can also unset a field by not specifying it in the updated message, but adding the field to the mask. This clears whatever value the field previously had.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "Application" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "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}/locations/{locationsId}/applications/{applicationsId}:setIamPolicy", + "httpMethod": "POST", + "id": "apphub.projects.locations.applications.setIamPolicy", + "parameterOrder": [ + "resource" + ], + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:setIamPolicy", + "request": { + "$ref": "SetIamPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}:testIamPermissions", + "httpMethod": "POST", + "id": "apphub.projects.locations.applications.testIamPermissions", + "parameterOrder": [ + "resource" + ], + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "services": { + "methods": { + "create": { + "description": "Creates a Service in an Application.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/services", + "httpMethod": "POST", + "id": "apphub.projects.locations.applications.services.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Value for parent.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "serviceId": { + "description": "Required. The Service identifier. Must contain only lowercase letters, numbers or hyphens, with the first character a letter, the last a letter or a number, and a 63 character maximum.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/services", + "request": { + "$ref": "Service" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a Service in an Application.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/services/{servicesId}", + "httpMethod": "DELETE", + "id": "apphub.projects.locations.applications.services.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Value for name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+/services/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets a Service in an Application.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/services/{servicesId}", + "httpMethod": "GET", + "id": "apphub.projects.locations.applications.services.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Value for name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+/services/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Service" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "List Services in an Application.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/services", + "httpMethod": "GET", + "id": "apphub.projects.locations.applications.services.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Filtering results", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. Hint for how to order the results", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A token identifying a page of results the server should return.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Value for parent.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/services", + "response": { + "$ref": "ListServicesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a Service in an Application.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/services/{servicesId}", + "httpMethod": "PATCH", + "id": "apphub.projects.locations.applications.services.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Identifier. The resource name of a Service. Format: \"projects/{host-project-id}/locations/{location}/applications/{application-id}/services/{service-id}\"", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+/services/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "Required. Field mask is used to specify the fields to be overwritten in the Service resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. The API changes the values of the fields as specified in the update_mask. The API ignores the values of all fields not covered by the update_mask. You can also unset a field by not specifying it in the updated message, but adding the field to the mask. This clears whatever value the field previously had.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "Service" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "workloads": { + "methods": { + "create": { + "description": "Creates a Workload in an Application.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/workloads", + "httpMethod": "POST", + "id": "apphub.projects.locations.applications.workloads.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Value for parent.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "workloadId": { + "description": "Required. The Workload identifier. Must contain only lowercase letters, numbers or hyphens, with the first character a letter, the last a letter or a number, and a 63 character maximum.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/workloads", + "request": { + "$ref": "Workload" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a Workload in an Application.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/workloads/{workloadsId}", + "httpMethod": "DELETE", + "id": "apphub.projects.locations.applications.workloads.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Value for name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+/workloads/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets a Workload in an Application.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/workloads/{workloadsId}", + "httpMethod": "GET", + "id": "apphub.projects.locations.applications.workloads.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Value for name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+/workloads/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Workload" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists Workloads in an Application.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/workloads", + "httpMethod": "GET", + "id": "apphub.projects.locations.applications.workloads.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Filtering results", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. Hint for how to order the results", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A token identifying a page of results the server should return.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Value for parent.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/workloads", + "response": { + "$ref": "ListWorkloadsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a Workload in an Application.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/applications/{applicationsId}/workloads/{workloadsId}", + "httpMethod": "PATCH", + "id": "apphub.projects.locations.applications.workloads.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Identifier. The resource name of the Workload. Format: \"projects/{host-project-id}/locations/{location}/applications/{application-id}/workloads/{workload-id}\"", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/applications/[^/]+/workloads/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "Required. Field mask is used to specify the fields to be overwritten in the Workload resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. The API changes the values of the fields as specified in the update_mask. The API ignores the values of all fields not covered by the update_mask. You can also unset a field by not specifying it in the updated message, but adding the field to the mask. This clears whatever value the field previously had.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "Workload" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, + "discoveredServices": { + "methods": { + "get": { + "description": "Gets a discovered service in a host project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/discoveredServices/{discoveredServicesId}", + "httpMethod": "GET", + "id": "apphub.projects.locations.discoveredServices.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Value for name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/discoveredServices/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "DiscoveredService" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists discovered services that can be added to an application in a host project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/discoveredServices", + "httpMethod": "GET", + "id": "apphub.projects.locations.discoveredServices.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Filtering results", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. Hint for how to order the results", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A token identifying a page of results the server should return.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Value for parent.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/discoveredServices", + "response": { + "$ref": "ListDiscoveredServicesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "discoveredWorkloads": { + "methods": { + "get": { + "description": "Gets a discovered workload in a host project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/discoveredWorkloads/{discoveredWorkloadsId}", + "httpMethod": "GET", + "id": "apphub.projects.locations.discoveredWorkloads.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Value for name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/discoveredWorkloads/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "DiscoveredWorkload" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists discovered workloads that can be added to an application in a host project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/discoveredWorkloads", + "httpMethod": "GET", + "id": "apphub.projects.locations.discoveredWorkloads.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Filtering results", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. Hint for how to order the results", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A token identifying a page of results the server should return.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Value for parent.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/discoveredWorkloads", + "response": { + "$ref": "ListDiscoveredWorkloadsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "operations": { + "methods": { + "cancel": { + "description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel", + "httpMethod": "POST", + "id": "apphub.projects.locations.operations.cancel", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource to be cancelled.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:cancel", + "request": { + "$ref": "CancelOperationRequest" + }, + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", + "httpMethod": "DELETE", + "id": "apphub.projects.locations.operations.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource to be deleted.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", + "httpMethod": "GET", + "id": "apphub.projects.locations.operations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations", + "httpMethod": "GET", + "id": "apphub.projects.locations.operations.list", + "parameterOrder": [ + "name" + ], + "parameters": { + "filter": { + "description": "The standard list filter.", + "location": "query", + "type": "string" + }, + "name": { + "description": "The name of the operation's parent resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "The standard list page size.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The standard list page token.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}/operations", + "response": { + "$ref": "ListOperationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "serviceProjectAttachments": { + "methods": { + "create": { + "description": "Attaches a service project to the host project.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceProjectAttachments", + "httpMethod": "POST", + "id": "apphub.projects.locations.serviceProjectAttachments.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Value for parent.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "serviceProjectAttachmentId": { + "description": "Required. The service project attachment identifier must contain the project_id of the service project specified in the service_project_attachment.service_project field. Hint: \"projects/{project_id}\"", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/serviceProjectAttachments", + "request": { + "$ref": "ServiceProjectAttachment" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a service project attached to the host project.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceProjectAttachments/{serviceProjectAttachmentsId}", + "httpMethod": "DELETE", + "id": "apphub.projects.locations.serviceProjectAttachments.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Value for name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/serviceProjectAttachments/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets a service project attached to the host project.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceProjectAttachments/{serviceProjectAttachmentsId}", + "httpMethod": "GET", + "id": "apphub.projects.locations.serviceProjectAttachments.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Value for name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/serviceProjectAttachments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "ServiceProjectAttachment" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "List service projects attached to the host project.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceProjectAttachments", + "httpMethod": "GET", + "id": "apphub.projects.locations.serviceProjectAttachments.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Filtering results", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. Hint for how to order the results", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A token identifying a page of results the server should return.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Value for parent.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/serviceProjectAttachments", + "response": { + "$ref": "ListServiceProjectAttachmentsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + } + } + } + }, + "schemas": { + "Application": { + "description": "Application defines the governance boundary for App Hub Entities that perform a logical end-to-end business function. App Hub supports application level IAM permission to align with governance requirements.", + "id": "Application", + "properties": { + "attributes": { + "$ref": "Attributes", + "description": "Optional. Consumer provided attributes." + }, + "createTime": { + "description": "Output only. Create time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. User-defined description of an Application. Can have a maximum length of 2048 characters.", + "type": "string" + }, + "displayName": { + "description": "Optional. User-defined name for the Application. Can have a maximum length of 63 characters.", + "type": "string" + }, + "name": { + "description": "Identifier. The resource name of an Application. Format: \"projects/{host-project-id}/locations/{location}/applications/{application-id}\"", + "type": "string" + }, + "scope": { + "$ref": "Scope", + "description": "Required. Immutable. Defines what data can be included into this Application. Limits which Services and Workloads can be registered." + }, + "state": { + "description": "Output only. Application state.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "ACTIVE", + "DELETING" + ], + "enumDescriptions": [ + "Unspecified state.", + "The Application is being created.", + "The Application is ready to register Services and Workloads.", + "The Application is being deleted." + ], + "readOnly": true, + "type": "string" + }, + "uid": { + "description": "Output only. A universally unique identifier (in UUID4 format) for the `Application`.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. Update time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "Attributes": { + "description": "Consumer provided attributes.", + "id": "Attributes", + "properties": { + "businessOwners": { + "description": "Optional. Business team that ensures user needs are met and value is delivered", + "items": { + "$ref": "ContactInfo" + }, + "type": "array" + }, + "criticality": { + "$ref": "Criticality", + "description": "Optional. User-defined criticality information." + }, + "developerOwners": { + "description": "Optional. Developer team that owns development and coding.", + "items": { + "$ref": "ContactInfo" + }, + "type": "array" + }, + "environment": { + "$ref": "Environment", + "description": "Optional. User-defined environment information." + }, + "operatorOwners": { + "description": "Optional. Operator team that ensures runtime and operations.", + "items": { + "$ref": "ContactInfo" + }, + "type": "array" + } + }, + "type": "object" + }, + "AuditConfig": { + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", + "id": "AuditConfig", + "properties": { + "auditLogConfigs": { + "description": "The configuration for logging of each type of permission.", + "items": { + "$ref": "AuditLogConfig" + }, + "type": "array" + }, + "service": { + "description": "Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.", + "type": "string" + } + }, + "type": "object" + }, + "AuditLogConfig": { + "description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.", + "id": "AuditLogConfig", + "properties": { + "exemptedMembers": { + "description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", + "items": { + "type": "string" + }, + "type": "array" + }, + "logType": { + "description": "The log type that this config enables.", + "enum": [ + "LOG_TYPE_UNSPECIFIED", + "ADMIN_READ", + "DATA_WRITE", + "DATA_READ" + ], + "enumDescriptions": [ + "Default case. Should never be this.", + "Admin reads. Example: CloudIAM getIamPolicy", + "Data writes. Example: CloudSQL Users create", + "Data reads. Example: CloudSQL Users list" + ], + "type": "string" + } + }, + "type": "object" + }, + "Binding": { + "description": "Associates `members`, or principals, with a `role`.", + "id": "Binding", + "properties": { + "condition": { + "$ref": "Expr", + "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." + }, + "members": { + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "role": { + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", + "type": "string" + } + }, + "type": "object" + }, + "CancelOperationRequest": { + "description": "The request message for Operations.CancelOperation.", + "id": "CancelOperationRequest", + "properties": {}, + "type": "object" + }, + "ContactInfo": { + "description": "Contact information of stakeholders.", + "id": "ContactInfo", + "properties": { + "displayName": { + "description": "Optional. Contact's name. Can have a maximum length of 63 characters.", + "type": "string" + }, + "email": { + "description": "Required. Email address of the contacts.", + "type": "string" + } + }, + "type": "object" + }, + "Criticality": { + "description": "Criticality of the Application, Service, or Workload", + "id": "Criticality", + "properties": { + "type": { + "description": "Required. Criticality Type.", + "enum": [ + "TYPE_UNSPECIFIED", + "MISSION_CRITICAL", + "HIGH", + "MEDIUM", + "LOW" + ], + "enumDescriptions": [ + "Unspecified type.", + "Mission critical service, application or workload.", + "High impact.", + "Medium impact.", + "Low impact." + ], + "type": "string" + } + }, + "type": "object" + }, + "DetachServiceProjectAttachmentRequest": { + "description": "Request for DetachServiceProjectAttachment.", + "id": "DetachServiceProjectAttachmentRequest", + "properties": {}, + "type": "object" + }, + "DetachServiceProjectAttachmentResponse": { + "description": "Response for DetachServiceProjectAttachment.", + "id": "DetachServiceProjectAttachmentResponse", + "properties": {}, + "type": "object" + }, + "DiscoveredService": { + "description": "DiscoveredService is a network/api interface that exposes some functionality to clients for consumption over the network. A discovered service can be registered to a App Hub service.", + "id": "DiscoveredService", + "properties": { + "name": { + "description": "Identifier. The resource name of the discovered service. Format: \"projects/{host-project-id}/locations/{location}/discoveredServices/{uuid}\"\"", + "type": "string" + }, + "serviceProperties": { + "$ref": "ServiceProperties", + "description": "Output only. Properties of an underlying compute resource that can comprise a Service. These are immutable.", + "readOnly": true + }, + "serviceReference": { + "$ref": "ServiceReference", + "description": "Output only. Reference to an underlying networking resource that can comprise a Service. These are immutable.", + "readOnly": true + } + }, + "type": "object" + }, + "DiscoveredWorkload": { + "description": "DiscoveredWorkload is a binary deployment (such as managed instance groups (MIGs) and GKE deployments) that performs the smallest logical subset of business functionality. A discovered workload can be registered to an App Hub Workload.", + "id": "DiscoveredWorkload", + "properties": { + "name": { + "description": "Identifier. The resource name of the discovered workload. Format: \"projects/{host-project-id}/locations/{location}/discoveredWorkloads/{uuid}\"", + "type": "string" + }, + "workloadProperties": { + "$ref": "WorkloadProperties", + "description": "Output only. Properties of an underlying compute resource represented by the Workload. These are immutable.", + "readOnly": true + }, + "workloadReference": { + "$ref": "WorkloadReference", + "description": "Output only. Reference of an underlying compute resource represented by the Workload. These are immutable.", + "readOnly": true + } + }, + "type": "object" + }, + "Empty": { + "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": "Empty", + "properties": {}, + "type": "object" + }, + "Environment": { + "description": "Environment of the Application, Service, or Workload", + "id": "Environment", + "properties": { + "type": { + "description": "Required. Environment Type.", + "enum": [ + "TYPE_UNSPECIFIED", + "PRODUCTION", + "STAGING", + "TEST", + "DEVELOPMENT" + ], + "enumDescriptions": [ + "Unspecified type.", + "Production environment.", + "Staging environment.", + "Test environment.", + "Development environment." + ], + "type": "string" + } + }, + "type": "object" + }, + "Expr": { + "description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.", + "id": "Expr", + "properties": { + "description": { + "description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.", + "type": "string" + }, + "expression": { + "description": "Textual representation of an expression in Common Expression Language syntax.", + "type": "string" + }, + "location": { + "description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", + "type": "string" + }, + "title": { + "description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", + "type": "string" + } + }, + "type": "object" + }, + "ListApplicationsResponse": { + "description": "Response for ListApplications.", + "id": "ListApplicationsResponse", + "properties": { + "applications": { + "description": "List of Applications.", + "items": { + "$ref": "Application" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token identifying a page of results the server should return.", + "type": "string" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListDiscoveredServicesResponse": { + "description": "Response for ListDiscoveredServices.", + "id": "ListDiscoveredServicesResponse", + "properties": { + "discoveredServices": { + "description": "List of discovered services.", + "items": { + "$ref": "DiscoveredService" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token identifying a page of results the server should return.", + "type": "string" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListDiscoveredWorkloadsResponse": { + "description": "Response for ListDiscoveredWorkloads.", + "id": "ListDiscoveredWorkloadsResponse", + "properties": { + "discoveredWorkloads": { + "description": "List of discovered workloads.", + "items": { + "$ref": "DiscoveredWorkload" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token identifying a page of results the server should return.", + "type": "string" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListLocationsResponse": { + "description": "The response message for Locations.ListLocations.", + "id": "ListLocationsResponse", + "properties": { + "locations": { + "description": "A list of locations that matches the specified filter in the request.", + "items": { + "$ref": "Location" + }, + "type": "array" + }, + "nextPageToken": { + "description": "The standard List next-page token.", + "type": "string" + } + }, + "type": "object" + }, + "ListOperationsResponse": { + "description": "The response message for Operations.ListOperations.", + "id": "ListOperationsResponse", + "properties": { + "nextPageToken": { + "description": "The standard List next-page token.", + "type": "string" + }, + "operations": { + "description": "A list of operations that matches the specified filter in the request.", + "items": { + "$ref": "Operation" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListServiceProjectAttachmentsResponse": { + "description": "Response for ListServiceProjectAttachments.", + "id": "ListServiceProjectAttachmentsResponse", + "properties": { + "nextPageToken": { + "description": "A token identifying a page of results the server should return.", + "type": "string" + }, + "serviceProjectAttachments": { + "description": "List of service project attachments.", + "items": { + "$ref": "ServiceProjectAttachment" + }, + "type": "array" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListServicesResponse": { + "description": "Response for ListServices.", + "id": "ListServicesResponse", + "properties": { + "nextPageToken": { + "description": "A token identifying a page of results the server should return.", + "type": "string" + }, + "services": { + "description": "List of Services.", + "items": { + "$ref": "Service" + }, + "type": "array" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListWorkloadsResponse": { + "description": "Response for ListWorkloads.", + "id": "ListWorkloadsResponse", + "properties": { + "nextPageToken": { + "description": "A token identifying a page of results the server should return.", + "type": "string" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + }, + "workloads": { + "description": "List of Workloads.", + "items": { + "$ref": "Workload" + }, + "type": "array" + } + }, + "type": "object" + }, + "Location": { + "description": "A resource that represents a Google Cloud location.", + "id": "Location", + "properties": { + "displayName": { + "description": "The friendly name for this location, typically a nearby city name. For example, \"Tokyo\".", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Cross-service attributes for the location. For example {\"cloud.googleapis.com/region\": \"us-east1\"}", + "type": "object" + }, + "locationId": { + "description": "The canonical id for this location. For example: `\"us-east1\"`.", + "type": "string" + }, + "metadata": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "Service-specific metadata. For example the available capacity at the given location.", + "type": "object" + }, + "name": { + "description": "Resource name for the location, which may vary between implementations. For example: `\"projects/example-project/locations/us-east1\"`", + "type": "string" + } + }, + "type": "object" + }, + "LookupServiceProjectAttachmentResponse": { + "description": "Response for LookupServiceProjectAttachment.", + "id": "LookupServiceProjectAttachmentResponse", + "properties": { + "serviceProjectAttachment": { + "$ref": "ServiceProjectAttachment", + "description": "Service project attachment for a project if exists, empty otherwise." + } + }, + "type": "object" + }, + "Operation": { + "description": "This resource represents a long-running operation that is the result of a network API call.", + "id": "Operation", + "properties": { + "done": { + "description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", + "type": "boolean" + }, + "error": { + "$ref": "Status", + "description": "The error result of the operation in case of failure or cancellation." + }, + "metadata": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", + "type": "object" + }, + "name": { + "description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", + "type": "string" + }, + "response": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", + "type": "object" + } + }, + "type": "object" + }, + "OperationMetadata": { + "description": "Represents the metadata of the long-running operation.", + "id": "OperationMetadata", + "properties": { + "apiVersion": { + "description": "Output only. API version used to start the operation.", + "readOnly": true, + "type": "string" + }, + "createTime": { + "description": "Output only. The time the operation was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "endTime": { + "description": "Output only. The time the operation finished running.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "requestedCancellation": { + "description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have been cancelled successfully have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", + "readOnly": true, + "type": "boolean" + }, + "statusMessage": { + "description": "Output only. Human-readable status of the operation, if any.", + "readOnly": true, + "type": "string" + }, + "target": { + "description": "Output only. Server-defined resource path for the target of the operation.", + "readOnly": true, + "type": "string" + }, + "verb": { + "description": "Output only. Name of the verb executed by the operation.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "Policy": { + "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", + "id": "Policy", + "properties": { + "auditConfigs": { + "description": "Specifies cloud audit logging configuration for this policy.", + "items": { + "$ref": "AuditConfig" + }, + "type": "array" + }, + "bindings": { + "description": "Associates a list of `members`, or principals, with a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", + "items": { + "$ref": "Binding" + }, + "type": "array" + }, + "etag": { + "description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.", + "format": "byte", + "type": "string" + }, + "version": { + "description": "Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "ReconciliationOperationMetadata": { + "description": "Operation metadata returned by the CLH during resource state reconciliation.", + "id": "ReconciliationOperationMetadata", + "properties": { + "deleteResource": { + "deprecated": true, + "description": "DEPRECATED. Use exclusive_action instead.", + "type": "boolean" + }, + "exclusiveAction": { + "description": "Excluisive action returned by the CLH.", + "enum": [ + "UNKNOWN_REPAIR_ACTION", + "DELETE", + "RETRY" + ], + "enumDeprecated": [ + false, + true, + false + ], + "enumDescriptions": [ + "Unknown repair action.", + "The resource has to be deleted. When using this bit, the CLH should fail the operation. DEPRECATED. Instead use DELETE_RESOURCE OperationSignal in SideChannel.", + "This resource could not be repaired but the repair should be tried again at a later time. This can happen if there is a dependency that needs to be resolved first- e.g. if a parent resource must be repaired before a child resource." + ], + "type": "string" + } + }, + "type": "object" + }, + "Scope": { + "description": "Scope of an application.", + "id": "Scope", + "properties": { + "type": { + "description": "Required. Scope Type.", + "enum": [ + "TYPE_UNSPECIFIED", + "REGIONAL" + ], + "enumDescriptions": [ + "Unspecified type.", + "Regional type." + ], + "type": "string" + } + }, + "type": "object" + }, + "Service": { + "description": "Service is an App Hub data model that contains a discovered service, which represents a network/api interface that exposes some functionality to clients for consumption over the network.", + "id": "Service", + "properties": { + "attributes": { + "$ref": "Attributes", + "description": "Optional. Consumer provided attributes." + }, + "createTime": { + "description": "Output only. Create time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. User-defined description of a Service. Can have a maximum length of 2048 characters.", + "type": "string" + }, + "discoveredService": { + "description": "Required. Immutable. The resource name of the original discovered service.", + "type": "string" + }, + "displayName": { + "description": "Optional. User-defined name for the Service. Can have a maximum length of 63 characters.", + "type": "string" + }, + "name": { + "description": "Identifier. The resource name of a Service. Format: \"projects/{host-project-id}/locations/{location}/applications/{application-id}/services/{service-id}\"", + "type": "string" + }, + "serviceProperties": { + "$ref": "ServiceProperties", + "description": "Output only. Properties of an underlying compute resource that can comprise a Service. These are immutable.", + "readOnly": true + }, + "serviceReference": { + "$ref": "ServiceReference", + "description": "Output only. Reference to an underlying networking resource that can comprise a Service. These are immutable.", + "readOnly": true + }, + "state": { + "description": "Output only. Service state.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "ACTIVE", + "DELETING", + "DETACHED" + ], + "enumDescriptions": [ + "Unspecified state.", + "The service is being created.", + "The service is ready.", + "The service is being deleted.", + "The underlying networking resources have been deleted." + ], + "readOnly": true, + "type": "string" + }, + "uid": { + "description": "Output only. A universally unique identifier (UUID) for the `Service` in the UUID4 format.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. Update time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ServiceProjectAttachment": { + "description": "ServiceProjectAttachment represents an attachment from a service project to a host project. Service projects contain the underlying cloud infrastructure resources, and expose these resources to the host project through a ServiceProjectAttachment. With the attachments, the host project can provide an aggregated view of resources across all service projects.", + "id": "ServiceProjectAttachment", + "properties": { + "createTime": { + "description": "Output only. Create time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Identifier. The resource name of a ServiceProjectAttachment. Format: \"projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}.\"", + "type": "string" + }, + "serviceProject": { + "description": "Required. Immutable. Service project name in the format: \"projects/abc\" or \"projects/123\". As input, project name with either project id or number are accepted. As output, this field will contain project number.", + "type": "string" + }, + "state": { + "description": "Output only. ServiceProjectAttachment state.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "ACTIVE", + "DELETING" + ], + "enumDescriptions": [ + "Unspecified state.", + "The ServiceProjectAttachment is being created.", + "The ServiceProjectAttachment is ready. This means Services and Workloads under the corresponding ServiceProjectAttachment is ready for registration.", + "The ServiceProjectAttachment is being deleted." + ], + "readOnly": true, + "type": "string" + }, + "uid": { + "description": "Output only. A globally unique identifier (in UUID4 format) for the `ServiceProjectAttachment`.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ServiceProperties": { + "description": "Properties of an underlying cloud resource that can comprise a Service.", + "id": "ServiceProperties", + "properties": { + "gcpProject": { + "description": "Output only. The service project identifier that the underlying cloud resource resides in.", + "readOnly": true, + "type": "string" + }, + "location": { + "description": "Output only. The location that the underlying resource resides in, for example, us-west1.", + "readOnly": true, + "type": "string" + }, + "zone": { + "description": "Output only. The location that the underlying resource resides in if it is zonal, for example, us-west1-a).", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ServiceReference": { + "description": "Reference to an underlying networking resource that can comprise a Service.", + "id": "ServiceReference", + "properties": { + "uri": { + "description": "Output only. The underlying resource URI (For example, URI of Forwarding Rule, URL Map, and Backend Service).", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "SetIamPolicyRequest": { + "description": "Request message for `SetIamPolicy` method.", + "id": "SetIamPolicyRequest", + "properties": { + "policy": { + "$ref": "Policy", + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." + }, + "updateMask": { + "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", + "format": "google-fieldmask", + "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", + "properties": { + "code": { + "description": "The status code, which should be an enum value of google.rpc.Code.", + "format": "int32", + "type": "integer" + }, + "details": { + "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", + "items": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "type": "object" + }, + "type": "array" + }, + "message": { + "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", + "type": "string" + } + }, + "type": "object" + }, + "TestIamPermissionsRequest": { + "description": "Request message for `TestIamPermissions` method.", + "id": "TestIamPermissionsRequest", + "properties": { + "permissions": { + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "TestIamPermissionsResponse": { + "description": "Response message for `TestIamPermissions` method.", + "id": "TestIamPermissionsResponse", + "properties": { + "permissions": { + "description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "Workload": { + "description": "Workload is an App Hub data model that contains a discovered workload, which represents a binary deployment (such as managed instance groups (MIGs) and GKE deployments) that performs the smallest logical subset of business functionality.", + "id": "Workload", + "properties": { + "attributes": { + "$ref": "Attributes", + "description": "Optional. Consumer provided attributes." + }, + "createTime": { + "description": "Output only. Create time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. User-defined description of a Workload. Can have a maximum length of 2048 characters.", + "type": "string" + }, + "discoveredWorkload": { + "description": "Required. Immutable. The resource name of the original discovered workload.", + "type": "string" + }, + "displayName": { + "description": "Optional. User-defined name for the Workload. Can have a maximum length of 63 characters.", + "type": "string" + }, + "name": { + "description": "Identifier. The resource name of the Workload. Format: \"projects/{host-project-id}/locations/{location}/applications/{application-id}/workloads/{workload-id}\"", + "type": "string" + }, + "state": { + "description": "Output only. Workload state.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "ACTIVE", + "DELETING", + "DETACHED" + ], + "enumDescriptions": [ + "Unspecified state.", + "The Workload is being created.", + "The Workload is ready.", + "The Workload is being deleted.", + "The underlying compute resources have been deleted." + ], + "readOnly": true, + "type": "string" + }, + "uid": { + "description": "Output only. A universally unique identifier (UUID) for the `Workload` in the UUID4 format.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. Update time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "workloadProperties": { + "$ref": "WorkloadProperties", + "description": "Output only. Properties of an underlying compute resource represented by the Workload. These are immutable.", + "readOnly": true + }, + "workloadReference": { + "$ref": "WorkloadReference", + "description": "Output only. Reference of an underlying compute resource represented by the Workload. These are immutable.", + "readOnly": true + } + }, + "type": "object" + }, + "WorkloadProperties": { + "description": "Properties of an underlying compute resource represented by the Workload.", + "id": "WorkloadProperties", + "properties": { + "gcpProject": { + "description": "Output only. The service project identifier that the underlying cloud resource resides in. Empty for non cloud resources.", + "readOnly": true, + "type": "string" + }, + "location": { + "description": "Output only. The location that the underlying compute resource resides in (e.g us-west1).", + "readOnly": true, + "type": "string" + }, + "zone": { + "description": "Output only. The location that the underlying compute resource resides in if it is zonal (e.g us-west1-a).", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "WorkloadReference": { + "description": "Reference of an underlying compute resource represented by the Workload.", + "id": "WorkloadReference", + "properties": { + "uri": { + "description": "Output only. The underlying compute resource uri.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + } + } +} diff --git a/discovery/googleapis/artifactregistry__v1.json b/discovery/googleapis/artifactregistry__v1.json index 9341f57a0..f844f552f 100644 --- a/discovery/googleapis/artifactregistry__v1.json +++ b/discovery/googleapis/artifactregistry__v1.json @@ -23,51 +23,6 @@ "description": "Regional Endpoint", "endpointUrl": "https://artifactregistry.me-central2.rep.googleapis.com/", "location": "me-central2" - }, - { - "description": "Locational Endpoint", - "endpointUrl": "https://apt.me-central2.rep.pkg.dev/", - "location": "me-central2" - }, - { - "description": "Locational Endpoint", - "endpointUrl": "https://docker.me-central2.rep.pkg.dev/", - "location": "me-central2" - }, - { - "description": "Locational Endpoint", - "endpointUrl": "https://go.me-central2.rep.pkg.dev/", - "location": "me-central2" - }, - { - "description": "Locational Endpoint", - "endpointUrl": "https://googet.me-central2.rep.pkg.dev/", - "location": "me-central2" - }, - { - "description": "Locational Endpoint", - "endpointUrl": "https://kfp.me-central2.rep.pkg.dev/", - "location": "me-central2" - }, - { - "description": "Locational Endpoint", - "endpointUrl": "https://maven.me-central2.rep.pkg.dev/", - "location": "me-central2" - }, - { - "description": "Locational Endpoint", - "endpointUrl": "https://npm.me-central2.rep.pkg.dev/", - "location": "me-central2" - }, - { - "description": "Locational Endpoint", - "endpointUrl": "https://python.me-central2.rep.pkg.dev/", - "location": "me-central2" - }, - { - "description": "Locational Endpoint", - "endpointUrl": "https://yum.me-central2.rep.pkg.dev/", - "location": "me-central2" } ], "icons": { @@ -80,7 +35,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231114", + "revision": "20240213", "rootUrl": "https://artifactregistry.googleapis.com/", "servicePath": "", "title": "Artifact Registry API", @@ -1818,14 +1773,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -1908,12 +1863,6 @@ ], "type": "string" }, - "versionAge": { - "deprecated": true, - "description": "DEPRECATED: Use older_than.", - "format": "google-duration", - "type": "string" - }, "versionNamePrefixes": { "description": "Match versions by version name prefix. Applied on any prefix match.", "items": { @@ -3053,6 +3002,10 @@ "description": "The user-provided description of the repository.", "type": "string" }, + "disallowUnspecifiedMode": { + "description": "Optional. If this is true, aunspecified repo type will be treated as error. Is used for new repo types that don't have any specific fields. Right now is used by AOSS team when creating repos for customers.", + "type": "boolean" + }, "dockerConfig": { "$ref": "DockerRepositoryConfig", "description": "Docker repository config contains repository level configuration for the repositories of docker type." diff --git a/discovery/googleapis/assuredworkloads__v1.json b/discovery/googleapis/assuredworkloads__v1.json index 85d3cded0..4582de30e 100644 --- a/discovery/googleapis/assuredworkloads__v1.json +++ b/discovery/googleapis/assuredworkloads__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231110", + "revision": "20240222", "rootUrl": "https://assuredworkloads.googleapis.com/", "servicePath": "", "title": "Assured Workloads API", @@ -295,6 +295,31 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "enableResourceMonitoring": { + "description": "Enable resource violation monitoring for a workload.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/workloads/{workloadsId}:enableResourceMonitoring", + "httpMethod": "POST", + "id": "assuredworkloads.organizations.locations.workloads.enableResourceMonitoring", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The `name` field is used to identify the workload. Format: organizations/{org_id}/locations/{location_id}/workloads/{workload_id}", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/workloads/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:enableResourceMonitoring", + "response": { + "$ref": "GoogleCloudAssuredworkloadsV1EnableResourceMonitoringResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Gets Assured Workload associated with a CRM Node", "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/workloads/{workloadsId}", @@ -572,7 +597,7 @@ }, "schemas": { "GoogleCloudAssuredworkloadsV1AcknowledgeViolationRequest": { - "description": "Request for acknowledging the violation Next Id: 5", + "description": "Request for acknowledging the violation", "id": "GoogleCloudAssuredworkloadsV1AcknowledgeViolationRequest", "properties": { "acknowledgeType": { @@ -713,6 +738,12 @@ }, "type": "object" }, + "GoogleCloudAssuredworkloadsV1EnableResourceMonitoringResponse": { + "description": "Response for EnableResourceMonitoring endpoint.", + "id": "GoogleCloudAssuredworkloadsV1EnableResourceMonitoringResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudAssuredworkloadsV1ListViolationsResponse": { "description": "Response of ListViolations endpoint.", "id": "GoogleCloudAssuredworkloadsV1ListViolationsResponse", diff --git a/discovery/googleapis/authorizedbuyersmarketplace__v1.json b/discovery/googleapis/authorizedbuyersmarketplace__v1.json index 0097233f4..357b9f7de 100644 --- a/discovery/googleapis/authorizedbuyersmarketplace__v1.json +++ b/discovery/googleapis/authorizedbuyersmarketplace__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231128", + "revision": "20240226", "rootUrl": "https://authorizedbuyersmarketplace.googleapis.com/", "servicePath": "", "title": "Authorized Buyers Marketplace API", @@ -1584,12 +1584,14 @@ "enum": [ "CREATIVE_FORMAT_UNSPECIFIED", "DISPLAY", - "VIDEO" + "VIDEO", + "AUDIO" ], "enumDescriptions": [ "A placeholder for an unspecified creative format.", "Banner creatives such as image or HTML5 assets.", - "Video creatives that can be played in a video player." + "Video creatives that can be played in a video player.", + "Audio creatives that can play during audio content or point to a third party ad server." ], "readOnly": true, "type": "string" diff --git a/discovery/googleapis/backupdr__v1.json b/discovery/googleapis/backupdr__v1.json index 7d62dcb83..0d7147dc0 100644 --- a/discovery/googleapis/backupdr__v1.json +++ b/discovery/googleapis/backupdr__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231029", + "revision": "20240214", "rootUrl": "https://backupdr.googleapis.com/", "servicePath": "", "title": "Backup and DR Service API", @@ -181,6 +181,38 @@ } }, "resources": { + "backupVaults": { + "methods": { + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/backupVaults/{backupVaultsId}:testIamPermissions", + "httpMethod": "POST", + "id": "backupdr.projects.locations.backupVaults.testIamPermissions", + "parameterOrder": [ + "resource" + ], + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/backupVaults/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "managementServers": { "methods": { "create": { @@ -597,14 +629,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -813,7 +845,7 @@ "type": "string" }, "type": { - "description": "Required. The type of the ManagementServer resource.", + "description": "Optional. The type of the ManagementServer resource.", "enum": [ "INSTANCE_TYPE_UNSPECIFIED", "BACKUP_RESTORE" diff --git a/discovery/googleapis/baremetalsolution__v2.json b/discovery/googleapis/baremetalsolution__v2.json index ffae770e5..58c0382fb 100644 --- a/discovery/googleapis/baremetalsolution__v2.json +++ b/discovery/googleapis/baremetalsolution__v2.json @@ -24,7 +24,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231106", + "revision": "20240221", "rootUrl": "https://baremetalsolution.googleapis.com/", "servicePath": "", "title": "Bare Metal Solution API", @@ -332,6 +332,31 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "loadAuthInfo": { + "description": "Load auth info for a server.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:loadAuthInfo", + "httpMethod": "GET", + "id": "baremetalsolution.projects.locations.instances.loadAuthInfo", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the server.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:loadAuthInfo", + "response": { + "$ref": "LoadInstanceAuthInfoResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "patch": { "description": "Update details of a single server.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}", @@ -1808,6 +1833,10 @@ "readOnly": true, "type": "boolean" }, + "kmsKeyVersion": { + "description": "Optional. Name of the KMS crypto key version used to encrypt the initial passwords. The key has to have ASYMMETRIC_DECRYPT purpose. Format is `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}/cryptoKeyVersions/{version}`.", + "type": "string" + }, "labels": { "additionalProperties": { "type": "string" @@ -1862,6 +1891,13 @@ "description": "Immutable. Pod name. Pod is an independent part of infrastructure. Instance can only be connected to the assets (networks, volumes) allocated in the same pod.", "type": "string" }, + "sshKeys": { + "description": "Optional. List of SSH Keys used during instance provisioning.", + "items": { + "type": "string" + }, + "type": "array" + }, "state": { "description": "Output only. The state of the server.", "enum": [ @@ -1943,6 +1979,10 @@ "description": "Instance type. [Available types](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)", "type": "string" }, + "kmsKeyVersion": { + "description": "Name of the KMS crypto key version used to encrypt the initial passwords. The key has to have ASYMMETRIC_DECRYPT purpose.", + "type": "string" + }, "logicalInterfaces": { "description": "List of logical interfaces for the instance. The number of logical interfaces will be the same as number of hardware bond/nic on the chosen network template. Filled if InstanceConfig.multivlan_config is true.", "items": { @@ -2276,6 +2316,27 @@ }, "type": "object" }, + "LoadInstanceAuthInfoResponse": { + "description": "Response for LoadInstanceAuthInfo.", + "id": "LoadInstanceAuthInfoResponse", + "properties": { + "sshKeys": { + "description": "List of ssh keys.", + "items": { + "$ref": "SSHKey" + }, + "type": "array" + }, + "userAccounts": { + "additionalProperties": { + "$ref": "UserAccount" + }, + "description": "Map of username to the user account info.", + "type": "object" + } + }, + "type": "object" + }, "Location": { "description": "A resource that represents a Google Cloud location.", "id": "Location", @@ -2395,7 +2456,7 @@ "type": "boolean" }, "sizeGb": { - "description": "The size of this LUN, in gigabytes.", + "description": "The size of this LUN, in GiB.", "format": "int64", "type": "string" }, @@ -3336,6 +3397,21 @@ }, "type": "object" }, + "UserAccount": { + "description": "User account provisioned for the customer.", + "id": "UserAccount", + "properties": { + "encryptedPassword": { + "description": "Encrypted initial password value.", + "type": "string" + }, + "kmsKeyVersion": { + "description": "KMS CryptoKey Version used to encrypt the password.", + "type": "string" + } + }, + "type": "object" + }, "VRF": { "description": "A network VRF.", "id": "VRF", @@ -3487,13 +3563,15 @@ "VOLUME_PERFORMANCE_TIER_UNSPECIFIED", "VOLUME_PERFORMANCE_TIER_SHARED", "VOLUME_PERFORMANCE_TIER_ASSIGNED", - "VOLUME_PERFORMANCE_TIER_HT" + "VOLUME_PERFORMANCE_TIER_HT", + "VOLUME_PERFORMANCE_TIER_QOS2_PERFORMANCE" ], "enumDescriptions": [ "Value is not specified.", "Regular volumes, shared aggregates.", "Assigned aggregates.", - "High throughput aggregates." + "High throughput aggregates.", + "QoS 2.0 high performance storage." ], "type": "string" }, @@ -3645,13 +3723,15 @@ "VOLUME_PERFORMANCE_TIER_UNSPECIFIED", "VOLUME_PERFORMANCE_TIER_SHARED", "VOLUME_PERFORMANCE_TIER_ASSIGNED", - "VOLUME_PERFORMANCE_TIER_HT" + "VOLUME_PERFORMANCE_TIER_HT", + "VOLUME_PERFORMANCE_TIER_QOS2_PERFORMANCE" ], "enumDescriptions": [ "Value is not specified.", "Regular volumes, shared aggregates.", "Assigned aggregates.", - "High throughput aggregates." + "High throughput aggregates.", + "QoS 2.0 high performance storage." ], "type": "string" }, diff --git a/discovery/googleapis/batch__v1.json b/discovery/googleapis/batch__v1.json index fd0708a47..009096dad 100644 --- a/discovery/googleapis/batch__v1.json +++ b/discovery/googleapis/batch__v1.json @@ -12,7 +12,7 @@ "baseUrl": "https://batch.googleapis.com/", "batchPath": "batch", "canonicalName": "Batch", - "description": "An API to manage the running of batch jobs on Google Cloud Platform.", + "description": "An API to manage the running of batch resources on Google Cloud Platform.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/batch/", "icons": { @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231103", + "revision": "20240214", "rootUrl": "https://batch.googleapis.com/", "servicePath": "", "title": "Batch API", @@ -776,11 +776,11 @@ "id": "AgentScript", "properties": { "path": { - "description": "Script file path on the host VM. To specify an interpreter, please add a `#!`(also known as [shebang line](https://en.wikipedia.org/wiki/Shebang_(Unix))) as the first line of the file.(For example, to execute the script using bash, `#!/bin/bash` should be the first line of the file. To execute the script using`Python3`, `#!/usr/bin/env python3` should be the first line of the file.) Otherwise, the file will by default be excuted by `/bin/sh`.", + "description": "Script file path on the host VM. To specify an interpreter, please add a `#!`(also known as [shebang line](https://en.wikipedia.org/wiki/Shebang_(Unix))) as the first line of the file.(For example, to execute the script using bash, `#!/bin/bash` should be the first line of the file. To execute the script using`Python3`, `#!/usr/bin/env python3` should be the first line of the file.) Otherwise, the file will by default be executed by `/bin/sh`.", "type": "string" }, "text": { - "description": "Shell script text. To specify an interpreter, please add a `#!\\n` at the beginning of the text.(For example, to execute the script using bash, `#!/bin/bash\\n` should be added. To execute the script using`Python3`, `#!/usr/bin/env python3\\n` should be added.) Otherwise, the script will by default be excuted by `/bin/sh`.", + "description": "Shell script text. To specify an interpreter, please add a `#!\\n` at the beginning of the text.(For example, to execute the script using bash, `#!/bin/bash\\n` should be added. To execute the script using`Python3`, `#!/usr/bin/env python3\\n` should be added.) Otherwise, the script will by default be executed by `/bin/sh`.", "type": "string" } }, @@ -990,7 +990,7 @@ }, "network": { "$ref": "NetworkPolicy", - "description": "The network policy. If you define an instance template in the InstancePolicyOrTemplate field, Batch will use the network settings in the instance template instead of this field." + "description": "The network policy. If you define an instance template in the `InstancePolicyOrTemplate` field, Batch will use the network settings in the instance template instead of this field." }, "placement": { "$ref": "PlacementPolicy", @@ -999,6 +999,13 @@ "serviceAccount": { "$ref": "ServiceAccount", "description": "Service account that VMs will run as." + }, + "tags": { + "description": "Optional. Tags applied to the VM instances. The tags identify valid sources or targets for network firewalls. Each tag must be 1-63 characters long, and comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt).", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" @@ -1039,9 +1046,14 @@ "type": "object" }, "CloudLoggingOption": { - "description": "CloudLoggingOption contains additional settings for cloud logging generated by Batch job.", + "description": "`CloudLoggingOption` contains additional settings for Cloud Logging logs generated by Batch job.", "id": "CloudLoggingOption", - "properties": {}, + "properties": { + "useGenericTaskMonitoredResource": { + "description": "Optional. Set this flag to true to change the [monitored resource type](https://cloud.google.com/monitoring/api/resources) for Cloud Logging logs generated by this Batch job from the [`batch.googleapis.com/Job`](https://cloud.google.com/monitoring/api/resources#tag_batch.googleapis.com/Job) type to the formerly used [`generic_task`](https://cloud.google.com/monitoring/api/resources#tag_generic_task) type.", + "type": "boolean" + } + }, "type": "object" }, "ComputeResource": { @@ -1081,6 +1093,10 @@ }, "type": "array" }, + "enableImageStreaming": { + "description": "Optional. If set to true, this container runnable uses Image streaming. Use Image streaming to allow the runnable to initialize without waiting for the entire container image to download, which can significantly reduce startup time for large container images. When `enableImageStreaming` is set to true, the container runtime is [containerd](https://containerd.io/) instead of Docker. Additionally, this container runnable only supports the following `container` subfields: `imageUri`, `commands[]`, `entrypoint`, and `volumes[]`; any other `container` subfields are ignored. For more information about the requirements and limitations for using Image streaming with Batch, see the [`image-streaming` sample on GitHub](https://github.com/GoogleCloudPlatform/batch-samples/tree/main/api-samples/image-streaming).", + "type": "boolean" + }, "entrypoint": { "description": "Overrides the `ENTRYPOINT` specified in the container.", "type": "string" @@ -1094,11 +1110,11 @@ "type": "string" }, "password": { - "description": "Optional password for logging in to a docker registry. If password matches `projects/*/secrets/*/versions/*` then Batch will read the password from the Secret Manager;", + "description": "Required if the container image is from a private Docker registry. The password to login to the Docker registry that contains the image. For security, it is strongly recommended to specify an encrypted password by using a Secret Manager secret: `projects/*/secrets/*/versions/*`. Warning: If you specify the password using plain text, you risk the password being exposed to any users who can view the job or its logs. To avoid this risk, specify a secret that contains the password instead. Learn more about [Secret Manager](https://cloud.google.com/secret-manager/docs/) and [using Secret Manager with Batch](https://cloud.google.com/batch/docs/create-run-job-secret-manager).", "type": "string" }, "username": { - "description": "Optional username for logging in to a docker registry. If username matches `projects/*/secrets/*/versions/*` then Batch will read the username from the Secret Manager.", + "description": "Required if the container image is from a private Docker registry. The username to login to the Docker registry that contains the image. You can either specify the username directly by using plain text or specify an encrypted username by using a Secret Manager secret: `projects/*/secrets/*/versions/*`. However, using a secret is recommended for enhanced security. Caution: If you specify the username using plain text, you risk the username being exposed to any users who can view the job or its logs. To avoid this risk, specify a secret that contains the username instead. Learn more about [Secret Manager](https://cloud.google.com/secret-manager/docs/) and [using Secret Manager with Batch](https://cloud.google.com/batch/docs/create-run-job-secret-manager).", "type": "string" }, "volumes": { @@ -1344,7 +1360,7 @@ "type": "array" }, "uid": { - "description": "Output only. A system generated unique ID (in UUID4 format) for the Job.", + "description": "Output only. A system generated unique ID for the Job.", "readOnly": true, "type": "string" }, @@ -1598,7 +1614,7 @@ "properties": { "cloudLoggingOption": { "$ref": "CloudLoggingOption", - "description": "Optional. Additional settings for Cloud Logging. It will only take effect when the destination of LogsPolicy is set to CLOUD_LOGGING." + "description": "Optional. Additional settings for Cloud Logging. It will only take effect when the destination of `LogsPolicy` is set to `CLOUD_LOGGING`." }, "destination": { "description": "Where logs should be saved.", @@ -1932,11 +1948,11 @@ "id": "Script", "properties": { "path": { - "description": "Script file path on the host VM. To specify an interpreter, please add a `#!`(also known as [shebang line](https://en.wikipedia.org/wiki/Shebang_(Unix))) as the first line of the file.(For example, to execute the script using bash, `#!/bin/bash` should be the first line of the file. To execute the script using`Python3`, `#!/usr/bin/env python3` should be the first line of the file.) Otherwise, the file will by default be excuted by `/bin/sh`.", + "description": "Script file path on the host VM. To specify an interpreter, please add a `#!`(also known as [shebang line](https://en.wikipedia.org/wiki/Shebang_(Unix))) as the first line of the file.(For example, to execute the script using bash, `#!/bin/bash` should be the first line of the file. To execute the script using`Python3`, `#!/usr/bin/env python3` should be the first line of the file.) Otherwise, the file will by default be executed by `/bin/sh`.", "type": "string" }, "text": { - "description": "Shell script text. To specify an interpreter, please add a `#!\\n` at the beginning of the text.(For example, to execute the script using bash, `#!/bin/bash\\n` should be added. To execute the script using`Python3`, `#!/usr/bin/env python3\\n` should be added.) Otherwise, the script will by default be excuted by `/bin/sh`.", + "description": "Shell script text. To specify an interpreter, please add a `#!\\n` at the beginning of the text.(For example, to execute the script using bash, `#!/bin/bash\\n` should be added. To execute the script using`Python3`, `#!/usr/bin/env python3\\n` should be added.) Otherwise, the script will by default be executed by `/bin/sh`.", "type": "string" } }, @@ -2079,7 +2095,11 @@ "type": "boolean" }, "requireHostsFile": { - "description": "When true, Batch will populate a file with a list of all VMs assigned to the TaskGroup and set the BATCH_HOSTS_FILE environment variable to the path of that file. Defaults to false.", + "description": "When true, Batch will populate a file with a list of all VMs assigned to the TaskGroup and set the BATCH_HOSTS_FILE environment variable to the path of that file. Defaults to false. The host file supports up to 1000 VMs.", + "type": "boolean" + }, + "runAsNonRoot": { + "description": "Optional. If not set or set to false, Batch uses the root user to execute runnables. If set to true, Batch runs the runnables using a non-root user. Currently, the non-root user Batch used is generated by OS Login. For more information, see [About OS Login](https://cloud.google.com/compute/docs/oslogin).", "type": "boolean" }, "schedulingPolicy": { diff --git a/discovery/googleapis/beyondcorp__v1.json b/discovery/googleapis/beyondcorp__v1.json index a6cd9a6cd..f48b0baf0 100644 --- a/discovery/googleapis/beyondcorp__v1.json +++ b/discovery/googleapis/beyondcorp__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231101", + "revision": "20240207", "rootUrl": "https://beyondcorp.googleapis.com/", "servicePath": "", "title": "BeyondCorp API", @@ -3126,14 +3126,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, diff --git a/discovery/googleapis/biglake__v1.json b/discovery/googleapis/biglake__v1.json index 682891386..3d4151821 100644 --- a/discovery/googleapis/biglake__v1.json +++ b/discovery/googleapis/biglake__v1.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231023", + "revision": "20240219", "rootUrl": "https://biglake.googleapis.com/", "servicePath": "", "title": "BigLake API", diff --git a/discovery/googleapis/bigquery__v2.json b/discovery/googleapis/bigquery__v2.json index ea4c46c93..da056d5ac 100644 --- a/discovery/googleapis/bigquery__v2.json +++ b/discovery/googleapis/bigquery__v2.json @@ -29,12 +29,13 @@ "basePath": "/bigquery/v2/", "baseUrl": "https://bigquery.googleapis.com/bigquery/v2/", "batchPath": "batch/bigquery/v2", + "canonicalName": "Bigquery", "description": "A data platform for customers to create, manage, share and query data.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/bigquery/", "icons": { - "x16": "https://www.google.com/images/icons/product/search-16.gif", - "x32": "https://www.google.com/images/icons/product/search-32.gif" + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" }, "id": "bigquery:v2", "kind": "discovery#restDescription", @@ -42,24 +43,51 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231021", + "revision": "20240214", "rootUrl": "https://bigquery.googleapis.com/", "servicePath": "bigquery/v2/", "title": "BigQuery API", "version": "v2", "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 the response.", + "description": "Data format for response.", "enum": [ - "json" + "json", + "media", + "proto" ], "enumDescriptions": [ - "Responses with Content-Type of application/json" + "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", @@ -82,12 +110,17 @@ "type": "boolean" }, "quotaUser": { - "description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.", + "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" }, - "userIp": { - "description": "Deprecated. Please use quotaUser instead.", + "upload_protocol": { + "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").", "location": "query", "type": "string" } @@ -97,6 +130,7 @@ "methods": { "delete": { "description": "Deletes the dataset specified by the datasetId value. Before you can delete a dataset, you must delete all its tables, either manually or by specifying deleteContents. Immediately after deletion, you can create another dataset with the same name.", + "flatPath": "projects/{projectsId}/datasets/{datasetsId}", "httpMethod": "DELETE", "id": "bigquery.datasets.delete", "parameterOrder": [ @@ -105,8 +139,9 @@ ], "parameters": { "datasetId": { - "description": "Dataset ID of dataset being deleted", + "description": "Required. Dataset ID of dataset being deleted", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" }, @@ -116,13 +151,14 @@ "type": "boolean" }, "projectId": { - "description": "Project ID of the dataset being deleted", + "description": "Required. Project ID of the dataset being deleted", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" } }, - "path": "projects/{projectId}/datasets/{datasetId}", + "path": "projects/{+projectId}/datasets/{+datasetId}", "scopes": [ "https://www.googleapis.com/auth/bigquery", "https://www.googleapis.com/auth/cloud-platform" @@ -130,6 +166,7 @@ }, "get": { "description": "Returns the dataset specified by datasetID.", + "flatPath": "projects/{projectsId}/datasets/{datasetsId}", "httpMethod": "GET", "id": "bigquery.datasets.get", "parameterOrder": [ @@ -138,24 +175,38 @@ ], "parameters": { "datasetId": { - "description": "Dataset ID of the requested dataset", + "description": "Required. Dataset ID of the requested dataset", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" }, "datasetView": { - "description": "Specifies the view that determines which dataset information is returned. By default, metadata and ACL information are returned. Allowed values: METADATA, ACL, FULL.", + "description": "Optional. Specifies the view that determines which dataset information is returned. By default, metadata and ACL information are returned.", + "enum": [ + "DATASET_VIEW_UNSPECIFIED", + "METADATA", + "ACL", + "FULL" + ], + "enumDescriptions": [ + "The default value. Default to the FULL view.", + "Includes metadata information for the dataset, such as location, etag, lastModifiedTime, etc.", + "Includes ACL information for the dataset, which defines dataset access for one or more entities.", + "Includes both dataset metadata and ACL information." + ], "location": "query", "type": "string" }, "projectId": { - "description": "Project ID of the requested dataset", + "description": "Required. Project ID of the requested dataset", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" } }, - "path": "projects/{projectId}/datasets/{datasetId}", + "path": "projects/{+projectId}/datasets/{+datasetId}", "response": { "$ref": "Dataset" }, @@ -167,6 +218,7 @@ }, "insert": { "description": "Creates a new empty dataset.", + "flatPath": "projects/{projectsId}/datasets", "httpMethod": "POST", "id": "bigquery.datasets.insert", "parameterOrder": [ @@ -174,13 +226,14 @@ ], "parameters": { "projectId": { - "description": "Project ID of the new dataset", + "description": "Required. Project ID of the new dataset", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" } }, - "path": "projects/{projectId}/datasets", + "path": "projects/{+projectId}/datasets", "request": { "$ref": "Dataset" }, @@ -193,7 +246,8 @@ ] }, "list": { - "description": "Lists all datasets in the specified project to which you have been granted the READER dataset role.", + "description": "Lists all datasets in the specified project to which the user has been granted the READER dataset role.", + "flatPath": "projects/{projectsId}/datasets", "httpMethod": "GET", "id": "bigquery.datasets.list", "parameterOrder": [ @@ -206,12 +260,12 @@ "type": "boolean" }, "filter": { - "description": "An expression for filtering the results of the request by label. The syntax is \"labels.[:]\". Multiple filters can be ANDed together by connecting with a space. Example: \"labels.department:receiving labels.active\". See Filtering datasets using labels for details.", + "description": "An expression for filtering the results of the request by label. The syntax is \\\"labels.[:]\\\". Multiple filters can be ANDed together by connecting with a space. Example: \\\"labels.department:receiving labels.active\\\". See [Filtering datasets using labels](/bigquery/docs/labeling-datasets#filtering_datasets_using_labels) for details.", "location": "query", "type": "string" }, "maxResults": { - "description": "The maximum number of results to return", + "description": "The maximum number of results to return in a single response page. Leverage the page tokens to iterate through the entire collection.", "format": "uint32", "location": "query", "type": "integer" @@ -222,13 +276,14 @@ "type": "string" }, "projectId": { - "description": "Project ID of the datasets to be listed", + "description": "Required. Project ID of the datasets to be listed", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" } }, - "path": "projects/{projectId}/datasets", + "path": "projects/{+projectId}/datasets", "response": { "$ref": "DatasetList" }, @@ -239,7 +294,8 @@ ] }, "patch": { - "description": "Updates information in an existing dataset. The update method replaces the entire dataset resource, whereas the patch method only replaces fields that are provided in the submitted dataset resource. This method supports patch semantics.", + "description": "Updates information in an existing dataset. The update method replaces the entire dataset resource, whereas the patch method only replaces fields that are provided in the submitted dataset resource. This method supports RFC5789 patch semantics.", + "flatPath": "projects/{projectsId}/datasets/{datasetsId}", "httpMethod": "PATCH", "id": "bigquery.datasets.patch", "parameterOrder": [ @@ -248,19 +304,21 @@ ], "parameters": { "datasetId": { - "description": "Dataset ID of the dataset being updated", + "description": "Required. Dataset ID of the dataset being updated", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" }, "projectId": { - "description": "Project ID of the dataset being updated", + "description": "Required. Project ID of the dataset being updated", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" } }, - "path": "projects/{projectId}/datasets/{datasetId}", + "path": "projects/{+projectId}/datasets/{+datasetId}", "request": { "$ref": "Dataset" }, @@ -272,8 +330,46 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "undelete": { + "description": "Undeletes a dataset which is within time travel window based on datasetId. If a time is specified, the dataset version deleted at that time is undeleted, else the last live version is undeleted.", + "flatPath": "projects/{projectsId}/datasets/{datasetsId}:undelete", + "httpMethod": "POST", + "id": "bigquery.datasets.undelete", + "parameterOrder": [ + "projectId", + "datasetId" + ], + "parameters": { + "datasetId": { + "description": "Required. Dataset ID of dataset being deleted", + "location": "path", + "pattern": "^[^/]+$", + "required": true, + "type": "string" + }, + "projectId": { + "description": "Required. Project ID of the dataset to be undeleted", + "location": "path", + "pattern": "^[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "projects/{+projectId}/datasets/{+datasetId}:undelete", + "request": { + "$ref": "UndeleteDatasetRequest" + }, + "response": { + "$ref": "Dataset" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "update": { "description": "Updates information in an existing dataset. The update method replaces the entire dataset resource, whereas the patch method only replaces fields that are provided in the submitted dataset resource.", + "flatPath": "projects/{projectsId}/datasets/{datasetsId}", "httpMethod": "PUT", "id": "bigquery.datasets.update", "parameterOrder": [ @@ -282,19 +378,21 @@ ], "parameters": { "datasetId": { - "description": "Dataset ID of the dataset being updated", + "description": "Required. Dataset ID of the dataset being updated", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" }, "projectId": { - "description": "Project ID of the dataset being updated", + "description": "Required. Project ID of the dataset being updated", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" } }, - "path": "projects/{projectId}/datasets/{datasetId}", + "path": "projects/{+projectId}/datasets/{+datasetId}", "request": { "$ref": "Dataset" }, @@ -312,6 +410,7 @@ "methods": { "cancel": { "description": "Requests that a job be cancelled. This call will return immediately, and the client will need to poll for the job status to see if the cancel completed successfully. Cancelled jobs may still incur costs.", + "flatPath": "projects/{projectsId}/jobs/{jobsId}/cancel", "httpMethod": "POST", "id": "bigquery.jobs.cancel", "parameterOrder": [ @@ -320,24 +419,26 @@ ], "parameters": { "jobId": { - "description": "[Required] Job ID of the job to cancel", + "description": "Required. Job ID of the job to cancel", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" }, "location": { - "description": "The geographic location of the job. Required except for US and EU. See details at https://cloud.google.com/bigquery/docs/locations#specifying_your_location.", + "description": "The geographic location of the job. You must specify the location to run the job for the following scenarios: - If the location to run a job is not in the `us` or the `eu` multi-regional location - If the job's location is in a single region (for example, `us-central1`) For more information, see https://cloud.google.com/bigquery/docs/locations#specifying_your_location.", "location": "query", "type": "string" }, "projectId": { - "description": "[Required] Project ID of the job to cancel", + "description": "Required. Project ID of the job to cancel", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" } }, - "path": "projects/{projectId}/jobs/{jobId}/cancel", + "path": "projects/{+projectId}/jobs/{+jobId}/cancel", "response": { "$ref": "JobCancelResponse" }, @@ -384,6 +485,7 @@ }, "get": { "description": "Returns information about a specific job. Job information is available for a six month period after creation. Requires that you're the person who ran the job, or have the Is Owner project role.", + "flatPath": "projects/{projectsId}/jobs/{jobsId}", "httpMethod": "GET", "id": "bigquery.jobs.get", "parameterOrder": [ @@ -392,24 +494,26 @@ ], "parameters": { "jobId": { - "description": "[Required] Job ID of the requested job", + "description": "Required. Job ID of the requested job.", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" }, "location": { - "description": "The geographic location of the job. Required except for US and EU. See details at https://cloud.google.com/bigquery/docs/locations#specifying_your_location.", + "description": "The geographic location of the job. You must specify the location to run the job for the following scenarios: - If the location to run a job is not in the `us` or the `eu` multi-regional location - If the job's location is in a single region (for example, `us-central1`) For more information, see https://cloud.google.com/bigquery/docs/locations#specifying_your_location.", "location": "query", "type": "string" }, "projectId": { - "description": "[Required] Project ID of the requested job", + "description": "Required. Project ID of the requested job.", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" } }, - "path": "projects/{projectId}/jobs/{jobId}", + "path": "projects/{+projectId}/jobs/{+jobId}", "response": { "$ref": "Job" }, @@ -420,7 +524,8 @@ ] }, "getQueryResults": { - "description": "Retrieves the results of a query job.", + "description": "RPC to get the results of a query job.", + "flatPath": "projects/{projectsId}/queries/{queriesId}", "httpMethod": "GET", "id": "bigquery.jobs.getQueryResults", "parameterOrder": [ @@ -428,48 +533,55 @@ "jobId" ], "parameters": { + "formatOptions.useInt64Timestamp": { + "description": "Optional. Output timestamp as usec int64. Default is false.", + "location": "query", + "type": "boolean" + }, "jobId": { - "description": "[Required] Job ID of the query job", + "description": "Required. Job ID of the query job.", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" }, "location": { - "description": "The geographic location where the job should run. Required except for US and EU. See details at https://cloud.google.com/bigquery/docs/locations#specifying_your_location.", + "description": "The geographic location of the job. You must specify the location to run the job for the following scenarios: - If the location to run a job is not in the `us` or the `eu` multi-regional location - If the job's location is in a single region (for example, `us-central1`) For more information, see https://cloud.google.com/bigquery/docs/locations#specifying_your_location.", "location": "query", "type": "string" }, "maxResults": { - "description": "Maximum number of results to read", + "description": "Maximum number of results to read.", "format": "uint32", "location": "query", "type": "integer" }, "pageToken": { - "description": "Page token, returned by a previous call, to request the next page of results", + "description": "Page token, returned by a previous call, to request the next page of results.", "location": "query", "type": "string" }, "projectId": { - "description": "[Required] Project ID of the query job", + "description": "Required. Project ID of the query job.", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" }, "startIndex": { - "description": "Zero-based index of the starting row", + "description": "Zero-based index of the starting row.", "format": "uint64", "location": "query", "type": "string" }, "timeoutMs": { - "description": "How long to wait for the query to complete, in milliseconds, before returning. Default is 10 seconds. If the timeout passes before the job completes, the 'jobComplete' field in the response will be false", + "description": "Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 10 seconds (10,000 milliseconds). If the query is complete, the jobComplete field in the response is true. If the query has not yet completed, jobComplete is false. You can request a longer timeout period in the timeoutMs field. However, the call is not guaranteed to wait for the specified timeout; it typically returns after around 200 seconds (200,000 milliseconds), even if the query is not complete. If jobComplete is false, you can continue to wait for the query to complete by calling the getQueryResults method until the jobComplete field in the getQueryResults response is true.", "format": "uint32", "location": "query", "type": "integer" } }, - "path": "projects/{projectId}/queries/{jobId}", + "path": "projects/{+projectId}/queries/{+jobId}", "response": { "$ref": "GetQueryResultsResponse" }, @@ -480,7 +592,8 @@ ] }, "insert": { - "description": "Starts a new asynchronous job. Requires the Can View project role.", + "description": "Starts a new asynchronous job. This API has two different kinds of endpoint URIs, as this method supports a variety of use cases. * The *Metadata* URI is used for most interactions, as it accepts the job configuration directly. * The *Upload* URI is ONLY for the case when you're sending both a load job configuration and a data stream together. In this case, the Upload URI accepts the job configuration and the data as two distinct multipart MIME parts.", + "flatPath": "projects/{projectsId}/jobs", "httpMethod": "POST", "id": "bigquery.jobs.insert", "mediaUpload": { @@ -490,11 +603,11 @@ "protocols": { "resumable": { "multipart": true, - "path": "/resumable/upload/bigquery/v2/projects/{projectId}/jobs" + "path": "/resumable/upload/bigquery/v2/projects/{+projectId}/jobs" }, "simple": { "multipart": true, - "path": "/upload/bigquery/v2/projects/{projectId}/jobs" + "path": "/upload/bigquery/v2/projects/{+projectId}/jobs" } } }, @@ -503,13 +616,14 @@ ], "parameters": { "projectId": { - "description": "Project ID of the project that will be billed for the job", + "description": "Project ID of project that will be billed for the job.", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" } }, - "path": "projects/{projectId}/jobs", + "path": "projects/{+projectId}/jobs", "request": { "$ref": "Job" }, @@ -527,6 +641,7 @@ }, "list": { "description": "Lists all jobs that you started in the specified project. Job information is available for a six month period after creation. The job list is sorted in reverse chronological order, by job creation time. Requires the Can View project role, or the Is Owner project role if you set the allUsers property.", + "flatPath": "projects/{projectsId}/jobs", "httpMethod": "GET", "id": "bigquery.jobs.list", "parameterOrder": [ @@ -534,41 +649,42 @@ ], "parameters": { "allUsers": { - "description": "Whether to display jobs owned by all users in the project. Default false", + "description": "Whether to display jobs owned by all users in the project. Default False.", "location": "query", "type": "boolean" }, "maxCreationTime": { - "description": "Max value for job creation time, in milliseconds since the POSIX epoch. If set, only jobs created before or at this timestamp are returned", + "description": "Max value for job creation time, in milliseconds since the POSIX epoch. If set, only jobs created before or at this timestamp are returned.", "format": "uint64", "location": "query", "type": "string" }, "maxResults": { - "description": "Maximum number of results to return", + "description": "The maximum number of results to return in a single response page. Leverage the page tokens to iterate through the entire collection.", "format": "uint32", "location": "query", "type": "integer" }, "minCreationTime": { - "description": "Min value for job creation time, in milliseconds since the POSIX epoch. If set, only jobs created after or at this timestamp are returned", + "description": "Min value for job creation time, in milliseconds since the POSIX epoch. If set, only jobs created after or at this timestamp are returned.", "format": "uint64", "location": "query", "type": "string" }, "pageToken": { - "description": "Page token, returned by a previous call, to request the next page of results", + "description": "Page token, returned by a previous call, to request the next page of results.", "location": "query", "type": "string" }, "parentJobId": { - "description": "If set, retrieves only jobs whose parent is this job. Otherwise, retrieves only jobs which have no parent", + "description": "If set, show only child jobs of the specified parent. Otherwise, show all top-level jobs.", "location": "query", "type": "string" }, "projectId": { - "description": "Project ID of the jobs to list", + "description": "Project ID of the jobs to list.", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" }, @@ -602,7 +718,7 @@ "type": "string" } }, - "path": "projects/{projectId}/jobs", + "path": "projects/{+projectId}/jobs", "response": { "$ref": "JobList" }, @@ -614,6 +730,7 @@ }, "query": { "description": "Runs a BigQuery SQL query synchronously and returns query results if the query completes within a specified timeout.", + "flatPath": "projects/{projectsId}/queries", "httpMethod": "POST", "id": "bigquery.jobs.query", "parameterOrder": [ @@ -621,13 +738,14 @@ ], "parameters": { "projectId": { - "description": "Project ID of the project billed for the query", + "description": "Required. Project ID of the query request.", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" } }, - "path": "projects/{projectId}/queries", + "path": "projects/{+projectId}/queries", "request": { "$ref": "QueryRequest" }, @@ -822,7 +940,8 @@ "projects": { "methods": { "getServiceAccount": { - "description": "Returns the email address of the service account for your project used for interactions with Google Cloud KMS.", + "description": "RPC to get the service account for a project used for interactions with Google Cloud KMS", + "flatPath": "projects/{projectsId}/serviceAccount", "httpMethod": "GET", "id": "bigquery.projects.getServiceAccount", "parameterOrder": [ @@ -830,13 +949,14 @@ ], "parameters": { "projectId": { - "description": "Project ID for which the service account is requested.", + "description": "Required. ID of the project.", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" } }, - "path": "projects/{projectId}/serviceAccount", + "path": "projects/{+projectId}/serviceAccount", "response": { "$ref": "GetServiceAccountResponse" }, @@ -847,18 +967,20 @@ ] }, "list": { - "description": "Lists all projects to which you have been granted any project role.", + "description": "RPC to list projects to which the user has been granted any project role. Users of this method are encouraged to consider the [Resource Manager](https://cloud.google.com/resource-manager/docs/) API, which provides the underlying data for this method and has more capabilities.", + "flatPath": "projects", "httpMethod": "GET", "id": "bigquery.projects.list", + "parameterOrder": [], "parameters": { "maxResults": { - "description": "Maximum number of results to return", + "description": "`maxResults` unset returns all results, up to 50 per page. Additionally, the number of projects in a page may be fewer than `maxResults` because projects are retrieved and then filtered to only projects with the BigQuery API enabled.", "format": "uint32", "location": "query", "type": "integer" }, "pageToken": { - "description": "Page token, returned by a previous call, to request the next page of results", + "description": "Page token, returned by a previous call, to request the next page of results. If not present, no further pages are present.", "location": "query", "type": "string" } @@ -1227,7 +1349,8 @@ "tabledata": { "methods": { "insertAll": { - "description": "Streams data into BigQuery one record at a time without needing to run a load job. Requires the WRITER dataset role.", + "description": "Streams data into BigQuery one record at a time without needing to run a load job.", + "flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}/insertAll", "httpMethod": "POST", "id": "bigquery.tabledata.insertAll", "parameterOrder": [ @@ -1237,25 +1360,28 @@ ], "parameters": { "datasetId": { - "description": "Dataset ID of the destination table.", + "description": "Required. Dataset ID of the destination.", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" }, "projectId": { - "description": "Project ID of the destination table.", + "description": "Required. Project ID of the destination.", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" }, "tableId": { - "description": "Table ID of the destination table.", + "description": "Required. Table ID of the destination.", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" } }, - "path": "projects/{projectId}/datasets/{datasetId}/tables/{tableId}/insertAll", + "path": "projects/{+projectId}/datasets/{+datasetId}/tables/{+tableId}/insertAll", "request": { "$ref": "TableDataInsertAllRequest" }, @@ -1269,7 +1395,8 @@ ] }, "list": { - "description": "Retrieves table data from a specified set of rows. Requires the READER dataset role.", + "description": "List the content of a table in rows.", + "flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}/data", "httpMethod": "GET", "id": "bigquery.tabledata.list", "parameterOrder": [ @@ -1279,47 +1406,55 @@ ], "parameters": { "datasetId": { - "description": "Dataset ID of the table to read", + "description": "Required. Dataset id of the table to list.", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" }, + "formatOptions.useInt64Timestamp": { + "description": "Optional. Output timestamp as usec int64. Default is false.", + "location": "query", + "type": "boolean" + }, "maxResults": { - "description": "Maximum number of results to return", + "description": "Row limit of the table.", "format": "uint32", "location": "query", "type": "integer" }, "pageToken": { - "description": "Page token, returned by a previous call, identifying the result set", + "description": "To retrieve the next page of table data, set this field to the string provided in the pageToken field of the response body from your previous call to tabledata.list.", "location": "query", "type": "string" }, "projectId": { - "description": "Project ID of the table to read", + "description": "Required. Project id of the table to list.", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" }, "selectedFields": { - "description": "List of fields to return (comma-separated). If unspecified, all fields are returned", + "description": "Subset of fields to return, supports select into sub fields. Example: selected_fields = \"a,e.d.f\";", "location": "query", "type": "string" }, "startIndex": { - "description": "Zero-based index of the starting row to read", + "description": "Start row index of the table.", "format": "uint64", "location": "query", "type": "string" }, "tableId": { - "description": "Table ID of the table to read", + "description": "Required. Table id of the table to list.", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" } }, - "path": "projects/{projectId}/datasets/{datasetId}/tables/{tableId}/data", + "path": "projects/{+projectId}/datasets/{+datasetId}/tables/{+tableId}/data", "response": { "$ref": "TableDataList" }, @@ -1335,6 +1470,7 @@ "methods": { "delete": { "description": "Deletes the table specified by tableId from the dataset. If the table contains data, all the data will be deleted.", + "flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}", "httpMethod": "DELETE", "id": "bigquery.tables.delete", "parameterOrder": [ @@ -1344,25 +1480,28 @@ ], "parameters": { "datasetId": { - "description": "Dataset ID of the table to delete", + "description": "Required. Dataset ID of the table to delete", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" }, "projectId": { - "description": "Project ID of the table to delete", + "description": "Required. Project ID of the table to delete", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" }, "tableId": { - "description": "Table ID of the table to delete", + "description": "Required. Table ID of the table to delete", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" } }, - "path": "projects/{projectId}/datasets/{datasetId}/tables/{tableId}", + "path": "projects/{+projectId}/datasets/{+datasetId}/tables/{+tableId}", "scopes": [ "https://www.googleapis.com/auth/bigquery", "https://www.googleapis.com/auth/cloud-platform" @@ -1370,6 +1509,7 @@ }, "get": { "description": "Gets the specified table resource by table ID. This method does not return the data in the table, it only returns the table resource, which describes the structure of this table.", + "flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}", "httpMethod": "GET", "id": "bigquery.tables.get", "parameterOrder": [ @@ -1379,47 +1519,50 @@ ], "parameters": { "datasetId": { - "description": "Dataset ID of the requested table", + "description": "Required. Dataset ID of the requested table", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" }, "projectId": { - "description": "Project ID of the requested table", + "description": "Required. Project ID of the requested table", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" }, "selectedFields": { - "description": "List of fields to return (comma-separated). If unspecified, all fields are returned", + "description": "List of table schema fields to return (comma-separated). If unspecified, all fields are returned. A fieldMask cannot be used here because the fields will automatically be converted from camelCase to snake_case and the conversion will fail if there are underscores. Since these are fields in BigQuery table schemas, underscores are allowed.", "location": "query", "type": "string" }, "tableId": { - "description": "Table ID of the requested table", + "description": "Required. Table ID of the requested table", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" }, "view": { - "description": "Specifies the view that determines which table information is returned. By default, basic table information and storage statistics (STORAGE_STATS) are returned.", + "description": "Optional. Specifies the view that determines which table information is returned. By default, basic table information and storage statistics (STORAGE_STATS) are returned.", "enum": [ + "TABLE_METADATA_VIEW_UNSPECIFIED", "BASIC", - "FULL", "STORAGE_STATS", - "TABLE_METADATA_VIEW_UNSPECIFIED" + "FULL" ], "enumDescriptions": [ + "The default value. Default to the STORAGE_STATS view.", "Includes basic table information including schema and partitioning specification. This view does not include storage statistics such as numRows or numBytes. This view is significantly more efficient and should be used to support high query rates.", - "Includes all table information, including storage statistics. It returns same information as STORAGE_STATS view, but may contain additional information in the future.", "Includes all information in the BASIC view as well as storage statistics (numBytes, numLongTermBytes, numRows and lastModifiedTime).", - "The default value. Default to the STORAGE_STATS view." + "Includes all table information, including storage statistics. It returns same information as STORAGE_STATS view, but may contain additional information in the future." ], "location": "query", "type": "string" } }, - "path": "projects/{projectId}/datasets/{datasetId}/tables/{tableId}", + "path": "projects/{+projectId}/datasets/{+datasetId}/tables/{+tableId}", "response": { "$ref": "Table" }, @@ -1461,6 +1604,7 @@ }, "insert": { "description": "Creates a new, empty table in the dataset.", + "flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables", "httpMethod": "POST", "id": "bigquery.tables.insert", "parameterOrder": [ @@ -1469,19 +1613,21 @@ ], "parameters": { "datasetId": { - "description": "Dataset ID of the new table", + "description": "Required. Dataset ID of the new table", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" }, "projectId": { - "description": "Project ID of the new table", + "description": "Required. Project ID of the new table", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" } }, - "path": "projects/{projectId}/datasets/{datasetId}/tables", + "path": "projects/{+projectId}/datasets/{+datasetId}/tables", "request": { "$ref": "Table" }, @@ -1495,6 +1641,7 @@ }, "list": { "description": "Lists all tables in the specified dataset. Requires the READER dataset role.", + "flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables", "httpMethod": "GET", "id": "bigquery.tables.list", "parameterOrder": [ @@ -1503,13 +1650,14 @@ ], "parameters": { "datasetId": { - "description": "Dataset ID of the tables to list", + "description": "Required. Dataset ID of the tables to list", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" }, "maxResults": { - "description": "Maximum number of results to return", + "description": "The maximum number of results to return in a single response page. Leverage the page tokens to iterate through the entire collection.", "format": "uint32", "location": "query", "type": "integer" @@ -1520,13 +1668,14 @@ "type": "string" }, "projectId": { - "description": "Project ID of the tables to list", + "description": "Required. Project ID of the tables to list", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" } }, - "path": "projects/{projectId}/datasets/{datasetId}/tables", + "path": "projects/{+projectId}/datasets/{+datasetId}/tables", "response": { "$ref": "TableList" }, @@ -1537,7 +1686,8 @@ ] }, "patch": { - "description": "Updates information in an existing table. The update method replaces the entire table resource, whereas the patch method only replaces fields that are provided in the submitted table resource. This method supports patch semantics.", + "description": "Updates information in an existing table. The update method replaces the entire table resource, whereas the patch method only replaces fields that are provided in the submitted table resource. This method supports RFC5789 patch semantics.", + "flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}", "httpMethod": "PATCH", "id": "bigquery.tables.patch", "parameterOrder": [ @@ -1547,30 +1697,33 @@ ], "parameters": { "autodetect_schema": { - "description": "When true will autodetect schema, else will keep original schema", + "description": "Optional. When true will autodetect schema, else will keep original schema", "location": "query", "type": "boolean" }, "datasetId": { - "description": "Dataset ID of the table to update", + "description": "Required. Dataset ID of the table to update", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" }, "projectId": { - "description": "Project ID of the table to update", + "description": "Required. Project ID of the table to update", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" }, "tableId": { - "description": "Table ID of the table to update", + "description": "Required. Table ID of the table to update", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" } }, - "path": "projects/{projectId}/datasets/{datasetId}/tables/{tableId}", + "path": "projects/{+projectId}/datasets/{+datasetId}/tables/{+tableId}", "request": { "$ref": "Table" }, @@ -1642,7 +1795,8 @@ ] }, "update": { - "description": "Updates information in an existing table. The update method replaces the entire table resource, whereas the patch method only replaces fields that are provided in the submitted table resource.", + "description": "Updates information in an existing table. The update method replaces the entire Table resource, whereas the patch method only replaces fields that are provided in the submitted Table resource.", + "flatPath": "projects/{projectsId}/datasets/{datasetsId}/tables/{tablesId}", "httpMethod": "PUT", "id": "bigquery.tables.update", "parameterOrder": [ @@ -1652,30 +1806,33 @@ ], "parameters": { "autodetect_schema": { - "description": "When true will autodetect schema, else will keep original schema", + "description": "Optional. When true will autodetect schema, else will keep original schema", "location": "query", "type": "boolean" }, "datasetId": { - "description": "Dataset ID of the table to update", + "description": "Required. Dataset ID of the table to update", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" }, "projectId": { - "description": "Project ID of the table to update", + "description": "Required. Project ID of the table to update", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" }, "tableId": { - "description": "Table ID of the table to update", + "description": "Required. Table ID of the table to update", "location": "path", + "pattern": "^[^/]+$", "required": true, "type": "string" } }, - "path": "projects/{projectId}/datasets/{datasetId}/tables/{tableId}", + "path": "projects/{+projectId}/datasets/{+datasetId}/tables/{+tableId}", "request": { "$ref": "Table" }, @@ -2171,42 +2328,89 @@ "type": "object" }, "AvroOptions": { + "description": "Options for external data sources.", "id": "AvroOptions", "properties": { "useAvroLogicalTypes": { - "description": "[Optional] If sourceFormat is set to \"AVRO\", indicates whether to interpret logical types as the corresponding BigQuery data type (for example, TIMESTAMP), instead of using the raw type (for example, INTEGER).", + "description": "Optional. If sourceFormat is set to \"AVRO\", indicates whether to interpret logical types as the corresponding BigQuery data type (for example, TIMESTAMP), instead of using the raw type (for example, INTEGER).", "type": "boolean" } }, "type": "object" }, "BiEngineReason": { + "description": "Reason why BI Engine didn't accelerate the query (or sub-query).", "id": "BiEngineReason", "properties": { "code": { - "default": "", - "description": "[Output-only] High-level BI Engine reason for partial or disabled acceleration.", + "description": "Output only. High-level BI Engine reason for partial or disabled acceleration", + "enum": [ + "CODE_UNSPECIFIED", + "NO_RESERVATION", + "INSUFFICIENT_RESERVATION", + "UNSUPPORTED_SQL_TEXT", + "INPUT_TOO_LARGE", + "OTHER_REASON", + "TABLE_EXCLUDED" + ], + "enumDescriptions": [ + "BiEngineReason not specified.", + "No reservation available for BI Engine acceleration.", + "Not enough memory available for BI Engine acceleration.", + "This particular SQL text is not supported for acceleration by BI Engine.", + "Input too large for acceleration by BI Engine.", + "Catch-all code for all other cases for partial or disabled acceleration.", + "One or more tables were not eligible for BI Engine acceleration." + ], + "readOnly": true, "type": "string" }, "message": { - "default": "", - "description": "[Output-only] Free form human-readable reason for partial or disabled acceleration.", + "description": "Output only. Free form human-readable reason for partial or disabled acceleration.", + "readOnly": true, "type": "string" } }, "type": "object" }, "BiEngineStatistics": { + "description": "Statistics for a BI Engine specific query. Populated as part of JobStatistics2", "id": "BiEngineStatistics", "properties": { "accelerationMode": { - "default": "", - "description": "[Output-only] Specifies which mode of BI Engine acceleration was performed (if any).", + "description": "Output only. Specifies which mode of BI Engine acceleration was performed (if any).", + "enum": [ + "BI_ENGINE_ACCELERATION_MODE_UNSPECIFIED", + "BI_ENGINE_DISABLED", + "PARTIAL_INPUT", + "FULL_INPUT", + "FULL_QUERY" + ], + "enumDescriptions": [ + "BiEngineMode type not specified.", + "BI Engine acceleration was attempted but disabled. bi_engine_reasons specifies a more detailed reason.", + "Some inputs were accelerated using BI Engine. See bi_engine_reasons for why parts of the query were not accelerated.", + "All of the query inputs were accelerated using BI Engine.", + "All of the query was accelerated using BI Engine." + ], + "readOnly": true, "type": "string" }, "biEngineMode": { - "default": "", - "description": "[Output-only] Specifies which mode of BI Engine acceleration was performed (if any).", + "description": "Output only. Specifies which mode of BI Engine acceleration was performed (if any).", + "enum": [ + "ACCELERATION_MODE_UNSPECIFIED", + "DISABLED", + "PARTIAL", + "FULL" + ], + "enumDescriptions": [ + "BiEngineMode type not specified.", + "BI Engine disabled the acceleration. bi_engine_reasons specifies a more detailed reason.", + "Part of the query was accelerated using BI Engine. See bi_engine_reasons for why parts of the query were not accelerated.", + "All of the query was accelerated using BI Engine." + ], + "readOnly": true, "type": "string" }, "biEngineReasons": { @@ -2220,22 +2424,39 @@ "type": "object" }, "BigLakeConfiguration": { + "description": "Configuration for BigLake managed tables.", "id": "BigLakeConfiguration", "properties": { "connectionId": { - "description": "[Required] Required and immutable. Credential reference for accessing external storage system. Normalized as project_id.location_id.connection_id.", + "description": "Required. The connection specifying the credentials to be used to read and write to external storage, such as Cloud Storage. The connection_id can have the form \"..\" or \"projects//locations//connections/\".", "type": "string" }, "fileFormat": { - "description": "[Required] Required and immutable. Open source file format that the table data is stored in. Currently only PARQUET is supported.", + "description": "Required. The file format the table data is stored in.", + "enum": [ + "FILE_FORMAT_UNSPECIFIED", + "PARQUET" + ], + "enumDescriptions": [ + "Default Value.", + "Apache Parquet format." + ], "type": "string" }, "storageUri": { - "description": "[Required] Required and immutable. Fully qualified location prefix of the external folder where data is stored. Normalized to standard format: \"gs:////\". Starts with \"gs://\" rather than \"/bigstore/\". Ends with \"/\". Does not contain \"*\". See also BigLakeStorageMetadata on how it is used.", + "description": "Required. The fully qualified location prefix of the external folder where table data is stored. The '*' wildcard character is not allowed. The URI should be in the format \"gs://bucket/path_to_table/\"", "type": "string" }, "tableFormat": { - "description": "[Required] Required and immutable. Open source file format that the table data is stored in. Currently only PARQUET is supported.", + "description": "Required. The table format the metadata only snapshots are stored in.", + "enum": [ + "TABLE_FORMAT_UNSPECIFIED", + "ICEBERG" + ], + "enumDescriptions": [ + "Default Value.", + "Apache Iceberg format." + ], "type": "string" } }, @@ -2245,12 +2466,12 @@ "id": "BigQueryModelTraining", "properties": { "currentIteration": { - "description": "[Output-only, Beta] Index of current ML training iteration. Updated during create model query job to show job progress.", + "description": "Deprecated.", "format": "int32", "type": "integer" }, "expectedTotalIterations": { - "description": "[Output-only, Beta] Expected number of iterations for the create model query job specified as num_iterations in the input query. The actual total number of iterations may be less than this number due to early stop.", + "description": "Deprecated.", "format": "int64", "type": "string" } @@ -2258,47 +2479,50 @@ "type": "object" }, "BigtableColumn": { + "description": "Information related to a Bigtable column.", "id": "BigtableColumn", "properties": { "encoding": { - "description": "[Optional] The encoding of the values when the type is not STRING. Acceptable encoding values are: TEXT - indicates values are alphanumeric text strings. BINARY - indicates values are encoded using HBase Bytes.toBytes family of functions. 'encoding' can also be set at the column family level. However, the setting at this level takes precedence if 'encoding' is set at both levels.", + "description": "Optional. The encoding of the values when the type is not STRING. Acceptable encoding values are: TEXT - indicates values are alphanumeric text strings. BINARY - indicates values are encoded using HBase Bytes.toBytes family of functions. 'encoding' can also be set at the column family level. However, the setting at this level takes precedence if 'encoding' is set at both levels.", "type": "string" }, "fieldName": { - "description": "[Optional] If the qualifier is not a valid BigQuery field identifier i.e. does not match [a-zA-Z][a-zA-Z0-9_]*, a valid identifier must be provided as the column field name and is used as field name in queries.", + "description": "Optional. If the qualifier is not a valid BigQuery field identifier i.e. does not match a-zA-Z*, a valid identifier must be provided as the column field name and is used as field name in queries.", "type": "string" }, "onlyReadLatest": { - "description": "[Optional] If this is set, only the latest version of value in this column are exposed. 'onlyReadLatest' can also be set at the column family level. However, the setting at this level takes precedence if 'onlyReadLatest' is set at both levels.", + "description": "Optional. If this is set, only the latest version of value in this column are exposed. 'onlyReadLatest' can also be set at the column family level. However, the setting at this level takes precedence if 'onlyReadLatest' is set at both levels.", "type": "boolean" }, "qualifierEncoded": { - "description": "[Required] Qualifier of the column. Columns in the parent column family that has this exact qualifier are exposed as . field. If the qualifier is valid UTF-8 string, it can be specified in the qualifier_string field. Otherwise, a base-64 encoded value must be set to qualifier_encoded. The column field name is the same as the column qualifier. However, if the qualifier is not a valid BigQuery field identifier i.e. does not match [a-zA-Z][a-zA-Z0-9_]*, a valid identifier must be provided as field_name.", + "description": "[Required] Qualifier of the column. Columns in the parent column family that has this exact qualifier are exposed as . field. If the qualifier is valid UTF-8 string, it can be specified in the qualifier_string field. Otherwise, a base-64 encoded value must be set to qualifier_encoded. The column field name is the same as the column qualifier. However, if the qualifier is not a valid BigQuery field identifier i.e. does not match a-zA-Z*, a valid identifier must be provided as field_name.", "format": "byte", "type": "string" }, "qualifierString": { + "description": "Qualifier string.", "type": "string" }, "type": { - "description": "[Optional] The type to convert the value in cells of this column. The values are expected to be encoded using HBase Bytes.toBytes function when using the BINARY encoding value. Following BigQuery types are allowed (case-sensitive) - BYTES STRING INTEGER FLOAT BOOLEAN Default type is BYTES. 'type' can also be set at the column family level. However, the setting at this level takes precedence if 'type' is set at both levels.", + "description": "Optional. The type to convert the value in cells of this column. The values are expected to be encoded using HBase Bytes.toBytes function when using the BINARY encoding value. Following BigQuery types are allowed (case-sensitive): * BYTES * STRING * INTEGER * FLOAT * BOOLEAN * JSON Default type is BYTES. 'type' can also be set at the column family level. However, the setting at this level takes precedence if 'type' is set at both levels.", "type": "string" } }, "type": "object" }, "BigtableColumnFamily": { + "description": "Information related to a Bigtable column family.", "id": "BigtableColumnFamily", "properties": { "columns": { - "description": "[Optional] Lists of columns that should be exposed as individual fields as opposed to a list of (column name, value) pairs. All columns whose qualifier matches a qualifier in this list can be accessed as .. Other columns can be accessed as a list through .Column field.", + "description": "Optional. Lists of columns that should be exposed as individual fields as opposed to a list of (column name, value) pairs. All columns whose qualifier matches a qualifier in this list can be accessed as .. Other columns can be accessed as a list through .Column field.", "items": { "$ref": "BigtableColumn" }, "type": "array" }, "encoding": { - "description": "[Optional] The encoding of the values when the type is not STRING. Acceptable encoding values are: TEXT - indicates values are alphanumeric text strings. BINARY - indicates values are encoded using HBase Bytes.toBytes family of functions. This can be overridden for a specific column by listing that column in 'columns' and specifying an encoding for it.", + "description": "Optional. The encoding of the values when the type is not STRING. Acceptable encoding values are: TEXT - indicates values are alphanumeric text strings. BINARY - indicates values are encoded using HBase Bytes.toBytes family of functions. This can be overridden for a specific column by listing that column in 'columns' and specifying an encoding for it.", "type": "string" }, "familyId": { @@ -2306,32 +2530,37 @@ "type": "string" }, "onlyReadLatest": { - "description": "[Optional] If this is set only the latest version of value are exposed for all columns in this column family. This can be overridden for a specific column by listing that column in 'columns' and specifying a different setting for that column.", + "description": "Optional. If this is set only the latest version of value are exposed for all columns in this column family. This can be overridden for a specific column by listing that column in 'columns' and specifying a different setting for that column.", "type": "boolean" }, "type": { - "description": "[Optional] The type to convert the value in cells of this column family. The values are expected to be encoded using HBase Bytes.toBytes function when using the BINARY encoding value. Following BigQuery types are allowed (case-sensitive) - BYTES STRING INTEGER FLOAT BOOLEAN Default type is BYTES. This can be overridden for a specific column by listing that column in 'columns' and specifying a type for it.", + "description": "Optional. The type to convert the value in cells of this column family. The values are expected to be encoded using HBase Bytes.toBytes function when using the BINARY encoding value. Following BigQuery types are allowed (case-sensitive): * BYTES * STRING * INTEGER * FLOAT * BOOLEAN * JSON Default type is BYTES. This can be overridden for a specific column by listing that column in 'columns' and specifying a type for it.", "type": "string" } }, "type": "object" }, "BigtableOptions": { + "description": "Options specific to Google Cloud Bigtable data sources.", "id": "BigtableOptions", "properties": { "columnFamilies": { - "description": "[Optional] List of column families to expose in the table schema along with their types. This list restricts the column families that can be referenced in queries and specifies their value types. You can use this list to do type conversions - see the 'type' field for more details. If you leave this list empty, all column families are present in the table schema and their values are read as BYTES. During a query only the column families referenced in that query are read from Bigtable.", + "description": "Optional. List of column families to expose in the table schema along with their types. This list restricts the column families that can be referenced in queries and specifies their value types. You can use this list to do type conversions - see the 'type' field for more details. If you leave this list empty, all column families are present in the table schema and their values are read as BYTES. During a query only the column families referenced in that query are read from Bigtable.", "items": { "$ref": "BigtableColumnFamily" }, "type": "array" }, "ignoreUnspecifiedColumnFamilies": { - "description": "[Optional] If field is true, then the column families that are not specified in columnFamilies list are not exposed in the table schema. Otherwise, they are read with BYTES type values. The default value is false.", + "description": "Optional. If field is true, then the column families that are not specified in columnFamilies list are not exposed in the table schema. Otherwise, they are read with BYTES type values. The default value is false.", + "type": "boolean" + }, + "outputColumnFamiliesAsJson": { + "description": "Optional. If field is true, then each column family will be read as a single JSON column. Otherwise they are read as a repeated cell structure containing timestamp/value tuples. The default value is false.", "type": "boolean" }, "readRowkeyAsString": { - "description": "[Optional] If field is true, then the rowkey column families will be read and converted to string. Otherwise they are read with BYTES type values and users need to manually cast them with CAST if necessary. The default value is false.", + "description": "Optional. If field is true, then the rowkey column families will be read and converted to string. Otherwise they are read with BYTES type values and users need to manually cast them with CAST if necessary. The default value is false.", "type": "boolean" } }, @@ -2424,14 +2653,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -2441,27 +2670,27 @@ "id": "BqmlIterationResult", "properties": { "durationMs": { - "description": "[Output-only, Beta] Time taken to run the training iteration in milliseconds.", + "description": "Deprecated.", "format": "int64", "type": "string" }, "evalLoss": { - "description": "[Output-only, Beta] Eval loss computed on the eval data at the end of the iteration. The eval loss is used for early stopping to avoid overfitting. No eval loss if eval_split_method option is specified as no_split or auto_split with input data size less than 500 rows.", + "description": "Deprecated.", "format": "double", "type": "number" }, "index": { - "description": "[Output-only, Beta] Index of the ML training iteration, starting from zero for each training run.", + "description": "Deprecated.", "format": "int32", "type": "integer" }, "learnRate": { - "description": "[Output-only, Beta] Learning rate used for this iteration, it varies for different training iterations if learn_rate_strategy option is not constant.", + "description": "Deprecated.", "format": "double", "type": "number" }, "trainingLoss": { - "description": "[Output-only, Beta] Training loss computed on the training data at the end of the iteration. The training loss function is defined by model type.", + "description": "Deprecated.", "format": "double", "type": "number" } @@ -2472,23 +2701,23 @@ "id": "BqmlTrainingRun", "properties": { "iterationResults": { - "description": "[Output-only, Beta] List of each iteration results.", + "description": "Deprecated.", "items": { "$ref": "BqmlIterationResult" }, "type": "array" }, "startTime": { - "description": "[Output-only, Beta] Training run start time in milliseconds since the epoch.", + "description": "Deprecated.", "format": "date-time", "type": "string" }, "state": { - "description": "[Output-only, Beta] Different state applicable for a training run. IN PROGRESS: Training run is in progress. FAILED: Training run ended due to a non-retryable failure. SUCCEEDED: Training run successfully completed. CANCELLED: Training run cancelled by the user.", + "description": "Deprecated.", "type": "string" }, "trainingOptions": { - "description": "[Output-only, Beta] Training options used by this training run. These options are mutable for subsequent training runs. Default values are explicitly stored for options not specified in the input query of the first training run. For subsequent training runs, any option not explicitly specified in the input query will be copied from the previous training run.", + "description": "Deprecated.", "properties": { "earlyStop": { "type": "boolean" @@ -2560,14 +2789,15 @@ "type": "object" }, "CloneDefinition": { + "description": "Information about base table and clone time of a table clone.", "id": "CloneDefinition", "properties": { "baseTableReference": { "$ref": "TableReference", - "description": "[Required] Reference describing the ID of the table that was cloned." + "description": "Required. Reference describing the ID of the table that was cloned." }, "cloneTime": { - "description": "[Required] The time at which the base table was cloned. This value is reported in the JSON response using RFC3339 format.", + "description": "Required. The time at which the base table was cloned. This value is reported in the JSON response using RFC3339 format.", "format": "date-time", "type": "string" } @@ -2621,10 +2851,11 @@ "type": "object" }, "Clustering": { + "description": "Configures table clustering.", "id": "Clustering", "properties": { "fields": { - "description": "[Repeated] One or more fields on which data should be clustered. Only top-level, non-repeated, simple-type fields are supported. When you cluster a table using multiple columns, the order of columns you specify is important. The order of the specified columns determines the sort order of the data.", + "description": "One or more fields on which data should be clustered. Only top-level, non-repeated, simple-type fields are supported. The ordering of the clustering fields should be prioritized from most to least important for filtering purposes. Additional information on limitations can be found here: https://cloud.google.com/bigquery/docs/creating-clustered-tables#limitations", "items": { "type": "string" }, @@ -2677,66 +2908,79 @@ "type": "object" }, "ConnectionProperty": { + "description": "A connection-level property to customize query behavior. Under JDBC, these correspond directly to connection properties passed to the DriverManager. Under ODBC, these correspond to properties in the connection string. Currently supported connection properties: * **dataset_project_id**: represents the default project for datasets that are used in the query. Setting the system variable `@@dataset_project_id` achieves the same behavior. For more information about system variables, see: https://cloud.google.com/bigquery/docs/reference/system-variables * **time_zone**: represents the default timezone used to run the query. * **session_id**: associates the query with a given session. * **query_label**: associates the query with a given job label. If set, all subsequent queries in a script or session will have this label. For the format in which a you can specify a query label, see labels in the JobConfiguration resource type: https://cloud.google.com/bigquery/docs/reference/rest/v2/Job#jobconfiguration Additional properties are allowed, but ignored. Specifying multiple connection properties with the same key returns an error.", "id": "ConnectionProperty", "properties": { "key": { - "description": "[Required] Name of the connection property to set.", + "description": "The key of the property to set.", "type": "string" }, "value": { - "description": "[Required] Value of the connection property.", + "description": "The value of the property to set.", "type": "string" } }, "type": "object" }, "CsvOptions": { + "description": "Information related to a CSV data source.", "id": "CsvOptions", "properties": { "allowJaggedRows": { - "description": "[Optional] Indicates if BigQuery should accept rows that are missing trailing optional columns. If true, BigQuery treats missing trailing columns as null values. If false, records with missing trailing columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false.", + "description": "Optional. Indicates if BigQuery should accept rows that are missing trailing optional columns. If true, BigQuery treats missing trailing columns as null values. If false, records with missing trailing columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false.", "type": "boolean" }, "allowQuotedNewlines": { - "description": "[Optional] Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false.", + "description": "Optional. Indicates if BigQuery should allow quoted data sections that contain newline characters in a CSV file. The default value is false.", "type": "boolean" }, "encoding": { - "description": "[Optional] The character encoding of the data. The supported values are UTF-8 or ISO-8859-1. The default value is UTF-8. BigQuery decodes the data after the raw, binary data has been split using the values of the quote and fieldDelimiter properties.", + "description": "Optional. The character encoding of the data. The supported values are UTF-8, ISO-8859-1, UTF-16BE, UTF-16LE, UTF-32BE, and UTF-32LE. The default value is UTF-8. BigQuery decodes the data after the raw, binary data has been split using the values of the quote and fieldDelimiter properties.", "type": "string" }, "fieldDelimiter": { - "description": "[Optional] The separator for fields in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. BigQuery also supports the escape sequence \"\\t\" to specify a tab separator. The default value is a comma (',').", + "description": "Optional. The separator character for fields in a CSV file. The separator is interpreted as a single byte. For files encoded in ISO-8859-1, any single character can be used as a separator. For files encoded in UTF-8, characters represented in decimal range 1-127 (U+0001-U+007F) can be used without any modification. UTF-8 characters encoded with multiple bytes (i.e. U+0080 and above) will have only the first byte used for separating fields. The remaining bytes will be treated as a part of the field. BigQuery also supports the escape sequence \"\\t\" (U+0009) to specify a tab separator. The default value is comma (\",\", U+002C).", "type": "string" }, "nullMarker": { - "description": "[Optional] An custom string that will represent a NULL value in CSV import data.", + "description": "[Optional] A custom string that will represent a NULL value in CSV import data.", "type": "string" }, "preserveAsciiControlCharacters": { - "description": "[Optional] Preserves the embedded ASCII control characters (the first 32 characters in the ASCII-table, from '\\x00' to '\\x1F') when loading from CSV. Only applicable to CSV, ignored for other formats.", + "description": "Optional. Indicates if the embedded ASCII control characters (the first 32 characters in the ASCII-table, from '\\x00' to '\\x1F') are preserved.", "type": "boolean" }, "quote": { "default": "\"", - "description": "[Optional] The value that is used to quote data sections in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. The default value is a double-quote ('\"'). If your data does not contain quoted sections, set the property value to an empty string. If your data contains quoted newline characters, you must also set the allowQuotedNewlines property to true.", + "description": "Optional. The value that is used to quote data sections in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. The default value is a double-quote (\"). If your data does not contain quoted sections, set the property value to an empty string. If your data contains quoted newline characters, you must also set the allowQuotedNewlines property to true. To include the specific quote character within a quoted value, precede it with an additional matching quote character. For example, if you want to escape the default character ' \" ', use ' \"\" '.", "pattern": ".?", "type": "string" }, "skipLeadingRows": { - "description": "[Optional] The number of rows at the top of a CSV file that BigQuery will skip when reading the data. The default value is 0. This property is useful if you have header rows in the file that should be skipped. When autodetect is on, the behavior is the following: * skipLeadingRows unspecified - Autodetect tries to detect headers in the first row. If they are not detected, the row is read as data. Otherwise data is read starting from the second row. * skipLeadingRows is 0 - Instructs autodetect that there are no headers and data should be read starting from the first row. * skipLeadingRows = N > 0 - Autodetect skips N-1 rows and tries to detect headers in row N. If headers are not detected, row N is just skipped. Otherwise row N is used to extract column names for the detected schema.", + "description": "Optional. The number of rows at the top of a CSV file that BigQuery will skip when reading the data. The default value is 0. This property is useful if you have header rows in the file that should be skipped. When autodetect is on, the behavior is the following: * skipLeadingRows unspecified - Autodetect tries to detect headers in the first row. If they are not detected, the row is read as data. Otherwise data is read starting from the second row. * skipLeadingRows is 0 - Instructs autodetect that there are no headers and data should be read starting from the first row. * skipLeadingRows = N > 0 - Autodetect skips N-1 rows and tries to detect headers in row N. If headers are not detected, row N is just skipped. Otherwise row N is used to extract column names for the detected schema.", "format": "int64", "type": "string" } }, "type": "object" }, + "DataFormatOptions": { + "description": "Options for data format adjustments.", + "id": "DataFormatOptions", + "properties": { + "useInt64Timestamp": { + "description": "Optional. Output timestamp as usec int64. Default is false.", + "type": "boolean" + } + }, + "type": "object" + }, "DataMaskingStatistics": { + "description": "Statistics for data-masking.", "id": "DataMaskingStatistics", "properties": { "dataMaskingApplied": { - "default": "false", - "description": "[Output-only] [Preview] Whether any accessed data was protected by data masking. The actual evaluation is done by accessStats.masked_field_count > 0. Since this is only used for the discovery_doc generation purpose, as long as the type (boolean) matches, client library can leverage this. The actual evaluation of the variable is done else-where.", + "description": "Whether any accessed data was protected by the data masking.", "type": "boolean" } }, @@ -2765,8 +3009,9 @@ "id": "Dataset", "properties": { "access": { - "description": "[Optional] An array of objects that define dataset access for one or more entities. You can set this property when inserting or updating a dataset in order to control who is allowed to access the data. If unspecified at dataset creation time, BigQuery adds default dataset access for the following entities: access.specialGroup: projectReaders; access.role: READER; access.specialGroup: projectWriters; access.role: WRITER; access.specialGroup: projectOwners; access.role: OWNER; access.userByEmail: [dataset creator email]; access.role: OWNER;", + "description": "Optional. An array of objects that define dataset access for one or more entities. You can set this property when inserting or updating a dataset in order to control who is allowed to access the data. If unspecified at dataset creation time, BigQuery adds default dataset access for the following entities: access.specialGroup: projectReaders; access.role: READER; access.specialGroup: projectWriters; access.role: WRITER; access.specialGroup: projectOwners; access.role: OWNER; access.userByEmail: [dataset creator email]; access.role: OWNER;", "items": { + "description": "An object that defines dataset access for an entity.", "properties": { "dataset": { "$ref": "DatasetAccessEntry", @@ -2785,7 +3030,7 @@ "type": "string" }, "role": { - "description": "[Required] An IAM role ID that should be granted to the user, group, or domain specified in this access entry. The following legacy mappings will be applied: OWNER roles/bigquery.dataOwner WRITER roles/bigquery.dataEditor READER roles/bigquery.dataViewer This field will accept any of the above formats, but will return only the legacy format. For example, if you set this field to \"roles/bigquery.dataOwner\", it will be returned back as \"OWNER\".", + "description": "An IAM role ID that should be granted to the user, group, or domain specified in this access entry. The following legacy mappings will be applied: OWNER <=> roles/bigquery.dataOwner WRITER <=> roles/bigquery.dataEditor READER <=> roles/bigquery.dataViewer This field will accept any of the above formats, but will return only the legacy format. For example, if you set this field to \"roles/bigquery.dataOwner\", it will be returned back as \"OWNER\".", "type": "string" }, "routine": { @@ -2802,7 +3047,7 @@ }, "view": { "$ref": "TableReference", - "description": "[Pick one] A view from a different dataset to grant access to. Queries executed against that view will have read access to tables in this dataset. The role field is not required when this field is set. If that view is updated by any user, access to the view needs to be granted again via an update operation." + "description": "[Pick one] A view from a different dataset to grant access to. Queries executed against that view will have read access to views/tables/routines in this dataset. The role field is not required when this field is set. If that view is updated by any user, access to the view needs to be granted again via an update operation." } }, "type": "object" @@ -2810,62 +3055,77 @@ "type": "array" }, "creationTime": { - "description": "[Output-only] The time when this dataset was created, in milliseconds since the epoch.", + "description": "Output only. The time when this dataset was created, in milliseconds since the epoch.", "format": "int64", + "readOnly": true, "type": "string" }, "datasetReference": { "$ref": "DatasetReference", - "description": "[Required] A reference that identifies the dataset." + "description": "Required. A reference that identifies the dataset." }, "defaultCollation": { - "description": "[Output-only] The default collation of the dataset.", + "description": "Optional. Defines the default collation specification of future tables created in the dataset. If a table is created in this dataset without table-level default collation, then the table inherits the dataset default collation, which is applied to the string fields that do not have explicit collation specified. A change to this field affects only tables created afterwards, and does not alter the existing tables. The following values are supported: * 'und:ci': undetermined locale, case insensitive. * '': empty string. Default to case-sensitive behavior.", "type": "string" }, "defaultEncryptionConfiguration": { - "$ref": "EncryptionConfiguration" + "$ref": "EncryptionConfiguration", + "description": "The default encryption key for all tables in the dataset. Once this property is set, all newly-created partitioned tables in the dataset will have encryption key set to this value, unless table creation request (or query) overrides the key." }, "defaultPartitionExpirationMs": { - "description": "[Optional] The default partition expiration for all partitioned tables in the dataset, in milliseconds. Once this property is set, all newly-created partitioned tables in the dataset will have an expirationMs property in the timePartitioning settings set to this value, and changing the value will only affect new tables, not existing ones. The storage in a partition will have an expiration time of its partition time plus this value. Setting this property overrides the use of defaultTableExpirationMs for partitioned tables: only one of defaultTableExpirationMs and defaultPartitionExpirationMs will be used for any new partitioned table. If you provide an explicit timePartitioning.expirationMs when creating or updating a partitioned table, that value takes precedence over the default partition expiration time indicated by this property.", + "description": "This default partition expiration, expressed in milliseconds. When new time-partitioned tables are created in a dataset where this property is set, the table will inherit this value, propagated as the `TimePartitioning.expirationMs` property on the new table. If you set `TimePartitioning.expirationMs` explicitly when creating a table, the `defaultPartitionExpirationMs` of the containing dataset is ignored. When creating a partitioned table, if `defaultPartitionExpirationMs` is set, the `defaultTableExpirationMs` value is ignored and the table will not be inherit a table expiration deadline.", "format": "int64", "type": "string" }, "defaultRoundingMode": { - "description": "[Output-only] The default rounding mode of the dataset.", + "description": "Optional. Defines the default rounding mode specification of new tables created within this dataset. During table creation, if this field is specified, the table within this dataset will inherit the default rounding mode of the dataset. Setting the default rounding mode on a table overrides this option. Existing tables in the dataset are unaffected. If columns are defined during that table creation, they will immediately inherit the table's default rounding mode, unless otherwise specified.", + "enum": [ + "ROUNDING_MODE_UNSPECIFIED", + "ROUND_HALF_AWAY_FROM_ZERO", + "ROUND_HALF_EVEN" + ], + "enumDescriptions": [ + "Unspecified will default to using ROUND_HALF_AWAY_FROM_ZERO.", + "ROUND_HALF_AWAY_FROM_ZERO rounds half values away from zero when applying precision and scale upon writing of NUMERIC and BIGNUMERIC values. For Scale: 0 1.1, 1.2, 1.3, 1.4 => 1 1.5, 1.6, 1.7, 1.8, 1.9 => 2", + "ROUND_HALF_EVEN rounds half values to the nearest even value when applying precision and scale upon writing of NUMERIC and BIGNUMERIC values. For Scale: 0 1.1, 1.2, 1.3, 1.4 => 1 1.5 => 2 1.6, 1.7, 1.8, 1.9 => 2 2.5 => 2" + ], "type": "string" }, "defaultTableExpirationMs": { - "description": "[Optional] The default lifetime of all tables in the dataset, in milliseconds. The minimum value is 3600000 milliseconds (one hour). Once this property is set, all newly-created tables in the dataset will have an expirationTime property set to the creation time plus the value in this property, and changing the value will only affect new tables, not existing ones. When the expirationTime for a given table is reached, that table will be deleted automatically. If a table's expirationTime is modified or removed before the table expires, or if you provide an explicit expirationTime when creating a table, that value takes precedence over the default expiration time indicated by this property.", + "description": "Optional. The default lifetime of all tables in the dataset, in milliseconds. The minimum lifetime value is 3600000 milliseconds (one hour). To clear an existing default expiration with a PATCH request, set to 0. Once this property is set, all newly-created tables in the dataset will have an expirationTime property set to the creation time plus the value in this property, and changing the value will only affect new tables, not existing ones. When the expirationTime for a given table is reached, that table will be deleted automatically. If a table's expirationTime is modified or removed before the table expires, or if you provide an explicit expirationTime when creating a table, that value takes precedence over the default expiration time indicated by this property.", "format": "int64", "type": "string" }, "description": { - "description": "[Optional] A user-friendly description of the dataset.", + "description": "Optional. A user-friendly description of the dataset.", "type": "string" }, "etag": { - "description": "[Output-only] A hash of the resource.", + "description": "Output only. A hash of the resource.", + "readOnly": true, "type": "string" }, "externalDatasetReference": { "$ref": "ExternalDatasetReference", - "description": "[Optional] Information about the external metadata storage where the dataset is defined. Filled out when the dataset type is EXTERNAL." + "description": "Optional. Reference to a read-only external dataset defined in data catalogs outside of BigQuery. Filled out when the dataset type is EXTERNAL." }, "friendlyName": { - "description": "[Optional] A descriptive name for the dataset.", + "description": "Optional. A descriptive name for the dataset.", "type": "string" }, "id": { - "description": "[Output-only] The fully-qualified unique name of the dataset in the format projectId:datasetId. The dataset name without the project name is given in the datasetId field. When creating a new dataset, leave this field blank, and instead specify the datasetId field.", + "description": "Output only. The fully-qualified unique name of the dataset in the format projectId:datasetId. The dataset name without the project name is given in the datasetId field. When creating a new dataset, leave this field blank, and instead specify the datasetId field.", + "readOnly": true, "type": "string" }, "isCaseInsensitive": { - "description": "[Optional] Indicates if table names are case insensitive in the dataset.", + "description": "Optional. TRUE if the dataset and its table names are case-insensitive, otherwise FALSE. By default, this is FALSE, which means the dataset and its table names are case-sensitive. This field does not affect routine references.", "type": "boolean" }, "kind": { "default": "bigquery#dataset", - "description": "[Output-only] The resource type.", + "description": "Output only. The resource type.", + "readOnly": true, "type": "string" }, "labels": { @@ -2876,59 +3136,90 @@ "type": "object" }, "lastModifiedTime": { - "description": "[Output-only] The date when this dataset or any of its tables was last modified, in milliseconds since the epoch.", + "description": "Output only. The date when this dataset was last modified, in milliseconds since the epoch.", "format": "int64", + "readOnly": true, "type": "string" }, + "linkedDatasetSource": { + "$ref": "LinkedDatasetSource", + "description": "Optional. The source dataset reference when the dataset is of type LINKED. For all other dataset types it is not set. This field cannot be updated once it is set. Any attempt to update this field using Update and Patch API Operations will be ignored." + }, "location": { - "description": "The geographic location where the dataset should reside. The default value is US. See details at https://cloud.google.com/bigquery/docs/locations.", + "description": "The geographic location where the dataset should reside. See https://cloud.google.com/bigquery/docs/locations for supported locations.", "type": "string" }, "maxTimeTravelHours": { - "description": "[Optional] Number of hours for the max time travel for all tables in the dataset.", + "description": "Optional. Defines the time travel window in hours. The value can be from 48 to 168 hours (2 to 7 days). The default value is 168 hours if this is not set.", "format": "int64", "type": "string" }, + "satisfiesPzi": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, "satisfiesPzs": { - "description": "[Output-only] Reserved for future use.", + "description": "Output only. Reserved for future use.", + "readOnly": true, "type": "boolean" }, "selfLink": { - "description": "[Output-only] A URL that can be used to access the resource again. You can use this URL in Get or Update requests to the resource.", + "description": "Output only. A URL that can be used to access the resource again. You can use this URL in Get or Update requests to the resource.", + "readOnly": true, "type": "string" }, "storageBillingModel": { - "description": "[Optional] Storage billing model to be used for all tables in the dataset. Can be set to PHYSICAL. Default is LOGICAL.", + "description": "Optional. Updates storage_billing_model for the dataset.", + "enum": [ + "STORAGE_BILLING_MODEL_UNSPECIFIED", + "LOGICAL", + "PHYSICAL" + ], + "enumDescriptions": [ + "Value not set.", + "Billing for logical bytes.", + "Billing for physical bytes." + ], "type": "string" }, "tags": { - "description": "[Optional]The tags associated with this dataset. Tag keys are globally unique.", + "description": "Output only. Tags for the Dataset.", "items": { + "description": "A global tag managed by Resource Manager. https://cloud.google.com/iam/docs/tags-access-control#definitions", "properties": { "tagKey": { - "description": "[Required] The namespaced friendly name of the tag key, e.g. \"12345/environment\" where 12345 is org id.", + "description": "Required. The namespaced friendly name of the tag key, e.g. \"12345/environment\" where 12345 is org id.", "type": "string" }, "tagValue": { - "description": "[Required] Friendly short name of the tag value, e.g. \"production\".", + "description": "Required. The friendly short name of the tag value, e.g. \"production\".", "type": "string" } }, "type": "object" }, + "readOnly": true, "type": "array" + }, + "type": { + "description": "Output only. Same as `type` in `ListFormatDataset`. The type of the dataset, one of: * DEFAULT - only accessible by owner and authorized accounts, * PUBLIC - accessible by everyone, * LINKED - linked dataset, * EXTERNAL - dataset with definition in external metadata catalog. -- *BIGLAKE_METASTORE - dataset that references a database created in BigLakeMetastore service. --", + "readOnly": true, + "type": "string" } }, "type": "object" }, "DatasetAccessEntry": { + "description": "Grants all resources of particular types in a particular dataset read access to the current dataset. Similar to how individually authorized views work, updates to any resource granted through its dataset (including creation of new resources) requires read permission to referenced resources, plus write permission to the authorizing dataset.", "id": "DatasetAccessEntry", "properties": { "dataset": { "$ref": "DatasetReference", - "description": "[Required] The dataset this entry applies to." + "description": "The dataset this entry applies to" }, "targetTypes": { + "description": "Which resources in the dataset this entry applies to. Currently, only views are supported, but additional target types may be added in the future.", "items": { "enum": [ "TARGET_TYPE_UNSPECIFIED", @@ -2948,18 +3239,20 @@ "type": "object" }, "DatasetList": { + "description": "Response format for a page of results when listing datasets.", "id": "DatasetList", "properties": { "datasets": { "description": "An array of the dataset resources in the project. Each resource contains basic information. For full information about a particular dataset resource, use the Datasets: get method. This property is omitted when there are no datasets in the project.", "items": { + "description": "A dataset resource with only a subset of fields, to be returned in a list of datasets.", "properties": { "datasetReference": { "$ref": "DatasetReference", "description": "The dataset reference. Use this property to access specific parts of the dataset's ID, such as project ID or dataset ID." }, "friendlyName": { - "description": "A descriptive name for the dataset, if one exists.", + "description": "An alternate name for the dataset. The friendly name is purely decorative in nature.", "type": "string" }, "id": { @@ -2967,8 +3260,7 @@ "type": "string" }, "kind": { - "default": "bigquery#dataset", - "description": "The resource type. This property always returns the value \"bigquery#dataset\".", + "description": "The resource type. This property always returns the value \"bigquery#dataset\"", "type": "string" }, "labels": { @@ -2979,7 +3271,7 @@ "type": "object" }, "location": { - "description": "The geographic location where the data resides.", + "description": "The geographic location where the dataset resides.", "type": "string" } }, @@ -2988,17 +3280,26 @@ "type": "array" }, "etag": { - "description": "A hash value of the results page. You can use this property to determine if the page has changed since the last request.", + "description": "Output only. A hash value of the results page. You can use this property to determine if the page has changed since the last request.", + "readOnly": true, "type": "string" }, "kind": { "default": "bigquery#datasetList", - "description": "The list type. This property always returns the value \"bigquery#datasetList\".", + "description": "Output only. The resource type. This property always returns the value \"bigquery#datasetList\"", + "readOnly": true, "type": "string" }, "nextPageToken": { "description": "A token that can be used to request the next results page. This property is omitted on the final results page.", "type": "string" + }, + "unreachable": { + "description": "A list of skipped locations that were unreachable. For more information about BigQuery locations, see: https://cloud.google.com/bigquery/docs/locations. Example: \"europe-west5\"", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" @@ -3007,47 +3308,38 @@ "id": "DatasetReference", "properties": { "datasetId": { - "annotations": { - "required": [ - "bigquery.datasets.update" - ] - }, - "description": "[Required] A unique ID for this dataset, without the project name. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.", + "description": "Required. A unique ID for this dataset, without the project name. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.", "type": "string" }, "projectId": { - "annotations": { - "required": [ - "bigquery.datasets.update" - ] - }, - "description": "[Optional] The ID of the project containing this dataset.", + "description": "Optional. The ID of the project containing this dataset.", "type": "string" } }, "type": "object" }, "DestinationTableProperties": { + "description": "Properties for the destination table.", "id": "DestinationTableProperties", "properties": { "description": { - "description": "[Optional] The description for the destination table. This will only be used if the destination table is newly created. If the table already exists and a value different than the current description is provided, the job will fail.", + "description": "Optional. The description for the destination table. This will only be used if the destination table is newly created. If the table already exists and a value different than the current description is provided, the job will fail.", "type": "string" }, "expirationTime": { - "description": "[Internal] This field is for Google internal use only.", + "description": "Internal use only.", "format": "date-time", "type": "string" }, "friendlyName": { - "description": "[Optional] The friendly name for the destination table. This will only be used if the destination table is newly created. If the table already exists and a value different than the current friendly name is provided, the job will fail.", + "description": "Optional. Friendly name for the destination table. If the table already exists, it should be same as the existing friendly name.", "type": "string" }, "labels": { "additionalProperties": { "type": "string" }, - "description": "[Optional] The labels associated with this table. You can use these to organize and group your tables. This will only be used if the destination table is newly created. If the table already exists and labels are different than the current labels are provided, the job will fail.", + "description": "Optional. The labels associated with this table. You can use these to organize and group your tables. This will only be used if the destination table is newly created. If the table already exists and labels are different than the current labels are provided, the job will fail.", "type": "object" } }, @@ -3066,21 +3358,25 @@ "type": "object" }, "DmlStatistics": { + "description": "Detailed statistics for DML statements", "id": "DmlStatistics", "properties": { "deletedRowCount": { - "description": "Number of deleted Rows. populated by DML DELETE, MERGE and TRUNCATE statements.", + "description": "Output only. Number of deleted Rows. populated by DML DELETE, MERGE and TRUNCATE statements.", "format": "int64", + "readOnly": true, "type": "string" }, "insertedRowCount": { - "description": "Number of inserted Rows. Populated by DML INSERT and MERGE statements.", + "description": "Output only. Number of inserted Rows. Populated by DML INSERT and MERGE statements", "format": "int64", + "readOnly": true, "type": "string" }, "updatedRowCount": { - "description": "Number of updated Rows. Populated by DML UPDATE and MERGE statements.", + "description": "Output only. Number of updated Rows. Populated by DML UPDATE and MERGE statements.", "format": "int64", + "readOnly": true, "type": "string" } }, @@ -3160,6 +3456,7 @@ "type": "object" }, "ErrorProto": { + "description": "Error details.", "id": "ErrorProto", "properties": { "debugInfo": { @@ -3217,6 +3514,7 @@ "type": "object" }, "ExplainQueryStage": { + "description": "A single stage of query execution.", "id": "ExplainQueryStage", "properties": { "completedParallelInputs": { @@ -3224,6 +3522,21 @@ "format": "int64", "type": "string" }, + "computeMode": { + "description": "Output only. Compute mode for this stage.", + "enum": [ + "COMPUTE_MODE_UNSPECIFIED", + "BIGQUERY", + "BI_ENGINE" + ], + "enumDescriptions": [ + "ComputeMode type not specified.", + "This stage was processed using BigQuery slots.", + "This stage was processed using BI Engine compute." + ], + "readOnly": true, + "type": "string" + }, "computeMsAvg": { "description": "Milliseconds the average shard spent on CPU-bound tasks.", "format": "int64", @@ -3245,12 +3558,12 @@ "type": "number" }, "endMs": { - "description": "Stage end time represented as milliseconds since epoch.", + "description": "Stage end time represented as milliseconds since the epoch.", "format": "int64", "type": "string" }, "id": { - "description": "Unique ID for stage within plan.", + "description": "Unique ID for the stage within the plan.", "format": "int64", "type": "string" }, @@ -3263,11 +3576,11 @@ "type": "array" }, "name": { - "description": "Human-readable name for stage.", + "description": "Human-readable name for the stage.", "type": "string" }, "parallelInputs": { - "description": "Number of parallel input segments to be processed.", + "description": "Number of parallel input segments to be processed", "format": "int64", "type": "string" }, @@ -3317,12 +3630,12 @@ "type": "string" }, "startMs": { - "description": "Stage start time represented as milliseconds since epoch.", + "description": "Stage start time represented as milliseconds since the epoch.", "format": "int64", "type": "string" }, "status": { - "description": "Current status for the stage.", + "description": "Current status for this stage.", "type": "string" }, "steps": { @@ -3376,6 +3689,7 @@ "type": "object" }, "ExplainQueryStep": { + "description": "An operation within a stage.", "id": "ExplainQueryStep", "properties": { "kind": { @@ -3383,7 +3697,7 @@ "type": "string" }, "substeps": { - "description": "Human-readable stage descriptions.", + "description": "Human-readable description of the step(s).", "items": { "type": "string" }, @@ -3408,6 +3722,23 @@ }, "type": "object" }, + "ExportDataStatistics": { + "description": "Statistics for the EXPORT DATA statement as part of Query Job. EXTRACT JOB statistics are populated in JobStatistics4.", + "id": "ExportDataStatistics", + "properties": { + "fileCount": { + "description": "Number of destination files generated in case of EXPORT DATA statement only.", + "format": "int64", + "type": "string" + }, + "rowCount": { + "description": "[Alpha] Number of destination rows generated in case of EXPORT DATA statement only.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "Expr": { "description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.", "id": "Expr", @@ -3440,78 +3771,130 @@ }, "avroOptions": { "$ref": "AvroOptions", - "description": "Additional properties to set if sourceFormat is set to Avro." + "description": "Optional. Additional properties to set if sourceFormat is set to AVRO." }, "bigtableOptions": { "$ref": "BigtableOptions", - "description": "[Optional] Additional options if sourceFormat is set to BIGTABLE." + "description": "Optional. Additional options if sourceFormat is set to BIGTABLE." }, "compression": { - "description": "[Optional] The compression type of the data source. Possible values include GZIP and NONE. The default value is NONE. This setting is ignored for Google Cloud Bigtable, Google Cloud Datastore backups and Avro formats.", + "description": "Optional. The compression type of the data source. Possible values include GZIP and NONE. The default value is NONE. This setting is ignored for Google Cloud Bigtable, Google Cloud Datastore backups, Avro, ORC and Parquet formats. An empty string is an invalid value.", "type": "string" }, "connectionId": { - "description": "[Optional, Trusted Tester] Connection for external data source.", + "description": "Optional. The connection specifying the credentials to be used to read external storage, such as Azure Blob, Cloud Storage, or S3. The connection_id can have the form \"..\" or \"projects//locations//connections/\".", "type": "string" }, "csvOptions": { "$ref": "CsvOptions", - "description": "Additional properties to set if sourceFormat is set to CSV." + "description": "Optional. Additional properties to set if sourceFormat is set to CSV." }, "decimalTargetTypes": { - "description": "[Optional] Defines the list of possible SQL data types to which the source decimal values are converted. This list and the precision and the scale parameters of the decimal field determine the target type. In the order of NUMERIC, BIGNUMERIC, and STRING, a type is picked if it is in the specified list and if it supports the precision and the scale. STRING supports all precision and scale values. If none of the listed types supports the precision and the scale, the type supporting the widest range in the specified list is picked, and if a value exceeds the supported range when reading the data, an error will be thrown. Example: Suppose the value of this field is [\"NUMERIC\", \"BIGNUMERIC\"]. If (precision,scale) is: (38,9) -> NUMERIC; (39,9) -> BIGNUMERIC (NUMERIC cannot hold 30 integer digits); (38,10) -> BIGNUMERIC (NUMERIC cannot hold 10 fractional digits); (76,38) -> BIGNUMERIC; (77,38) -> BIGNUMERIC (error if value exeeds supported range). This field cannot contain duplicate types. The order of the types in this field is ignored. For example, [\"BIGNUMERIC\", \"NUMERIC\"] is the same as [\"NUMERIC\", \"BIGNUMERIC\"] and NUMERIC always takes precedence over BIGNUMERIC. Defaults to [\"NUMERIC\", \"STRING\"] for ORC and [\"NUMERIC\"] for the other file formats.", + "description": "Defines the list of possible SQL data types to which the source decimal values are converted. This list and the precision and the scale parameters of the decimal field determine the target type. In the order of NUMERIC, BIGNUMERIC, and STRING, a type is picked if it is in the specified list and if it supports the precision and the scale. STRING supports all precision and scale values. If none of the listed types supports the precision and the scale, the type supporting the widest range in the specified list is picked, and if a value exceeds the supported range when reading the data, an error will be thrown. Example: Suppose the value of this field is [\"NUMERIC\", \"BIGNUMERIC\"]. If (precision,scale) is: * (38,9) -> NUMERIC; * (39,9) -> BIGNUMERIC (NUMERIC cannot hold 30 integer digits); * (38,10) -> BIGNUMERIC (NUMERIC cannot hold 10 fractional digits); * (76,38) -> BIGNUMERIC; * (77,38) -> BIGNUMERIC (error if value exeeds supported range). This field cannot contain duplicate types. The order of the types in this field is ignored. For example, [\"BIGNUMERIC\", \"NUMERIC\"] is the same as [\"NUMERIC\", \"BIGNUMERIC\"] and NUMERIC always takes precedence over BIGNUMERIC. Defaults to [\"NUMERIC\", \"STRING\"] for ORC and [\"NUMERIC\"] for the other file formats.", "items": { + "enum": [ + "DECIMAL_TARGET_TYPE_UNSPECIFIED", + "NUMERIC", + "BIGNUMERIC", + "STRING" + ], + "enumDescriptions": [ + "Invalid type.", + "Decimal values could be converted to NUMERIC type.", + "Decimal values could be converted to BIGNUMERIC type.", + "Decimal values could be converted to STRING type." + ], "type": "string" }, "type": "array" }, "fileSetSpecType": { - "description": "[Optional] Specifies how source URIs are interpreted for constructing the file set to load. By default source URIs are expanded against the underlying storage. Other options include specifying manifest files. Only applicable to object storage systems.", + "description": "Optional. Specifies how source URIs are interpreted for constructing the file set to load. By default source URIs are expanded against the underlying storage. Other options include specifying manifest files. Only applicable to object storage systems.", + "enum": [ + "FILE_SET_SPEC_TYPE_FILE_SYSTEM_MATCH", + "FILE_SET_SPEC_TYPE_NEW_LINE_DELIMITED_MANIFEST" + ], + "enumDescriptions": [ + "This option expands source URIs by listing files from the object store. It is the default behavior if FileSetSpecType is not set.", + "This option indicates that the provided URIs are newline-delimited manifest files, with one URI per line. Wildcard URIs are not supported." + ], "type": "string" }, "googleSheetsOptions": { "$ref": "GoogleSheetsOptions", - "description": "[Optional] Additional options if sourceFormat is set to GOOGLE_SHEETS." + "description": "Optional. Additional options if sourceFormat is set to GOOGLE_SHEETS." }, "hivePartitioningOptions": { "$ref": "HivePartitioningOptions", - "description": "[Optional] Options to configure hive partitioning support." + "description": "Optional. When set, configures hive partitioning support. Not all storage formats support hive partitioning -- requesting hive partitioning on an unsupported format will lead to an error, as will providing an invalid specification." }, "ignoreUnknownValues": { - "description": "[Optional] Indicates if BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. The sourceFormat property determines what BigQuery treats as an extra value: CSV: Trailing columns JSON: Named values that don't match any column names Google Cloud Bigtable: This setting is ignored. Google Cloud Datastore backups: This setting is ignored. Avro: This setting is ignored.", + "description": "Optional. Indicates if BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. The sourceFormat property determines what BigQuery treats as an extra value: CSV: Trailing columns JSON: Named values that don't match any column names Google Cloud Bigtable: This setting is ignored. Google Cloud Datastore backups: This setting is ignored. Avro: This setting is ignored. ORC: This setting is ignored. Parquet: This setting is ignored.", "type": "boolean" }, + "jsonExtension": { + "description": "Optional. Load option to be used together with source_format newline-delimited JSON to indicate that a variant of JSON is being loaded. To load newline-delimited GeoJSON, specify GEOJSON (and source_format must be set to NEWLINE_DELIMITED_JSON).", + "enum": [ + "JSON_EXTENSION_UNSPECIFIED", + "GEOJSON" + ], + "enumDescriptions": [ + "The default if provided value is not one included in the enum, or the value is not specified. The source formate is parsed without any modification.", + "Use GeoJSON variant of JSON. See https://tools.ietf.org/html/rfc7946." + ], + "type": "string" + }, "jsonOptions": { "$ref": "JsonOptions", - "description": "Additional properties to set if `sourceFormat` is set to `NEWLINE_DELIMITED_JSON`." + "description": "Optional. Additional properties to set if sourceFormat is set to JSON." }, "maxBadRecords": { - "description": "[Optional] The maximum number of bad records that BigQuery can ignore when reading data. If the number of bad records exceeds this value, an invalid error is returned in the job result. This is only valid for CSV, JSON, and Google Sheets. The default value is 0, which requires that all records are valid. This setting is ignored for Google Cloud Bigtable, Google Cloud Datastore backups and Avro formats.", + "description": "Optional. The maximum number of bad records that BigQuery can ignore when reading data. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid. This setting is ignored for Google Cloud Bigtable, Google Cloud Datastore backups, Avro, ORC and Parquet formats.", "format": "int32", "type": "integer" }, "metadataCacheMode": { - "description": "[Optional] Metadata Cache Mode for the table. Set this to enable caching of metadata from external data source.", + "description": "Optional. Metadata Cache Mode for the table. Set this to enable caching of metadata from external data source.", + "enum": [ + "METADATA_CACHE_MODE_UNSPECIFIED", + "AUTOMATIC", + "MANUAL" + ], + "enumDescriptions": [ + "Unspecified metadata cache mode.", + "Set this mode to trigger automatic background refresh of metadata cache from the external source. Queries will use the latest available cache version within the table's maxStaleness interval.", + "Set this mode to enable triggering manual refresh of the metadata cache from external source. Queries will use the latest manually triggered cache version within the table's maxStaleness interval." + ], "type": "string" }, "objectMetadata": { - "description": "ObjectMetadata is used to create Object Tables. Object Tables contain a listing of objects (with their metadata) found at the source_uris. If ObjectMetadata is set, source_format should be omitted. Currently SIMPLE is the only supported Object Metadata type.", + "description": "Optional. ObjectMetadata is used to create Object Tables. Object Tables contain a listing of objects (with their metadata) found at the source_uris. If ObjectMetadata is set, source_format should be omitted. Currently SIMPLE is the only supported Object Metadata type.", + "enum": [ + "OBJECT_METADATA_UNSPECIFIED", + "DIRECTORY", + "SIMPLE" + ], + "enumDescriptions": [ + "Unspecified by default.", + "A synonym for `SIMPLE`.", + "Directory listing of objects." + ], "type": "string" }, "parquetOptions": { "$ref": "ParquetOptions", - "description": "Additional properties to set if sourceFormat is set to Parquet." + "description": "Optional. Additional properties to set if sourceFormat is set to PARQUET." }, "referenceFileSchemaUri": { - "description": "[Optional] Provide a referencing file with the expected table schema. Enabled for the format: AVRO, PARQUET, ORC.", + "description": "Optional. When creating an external table, the user can provide a reference file with the table schema. This is enabled for the following formats: AVRO, PARQUET, ORC.", "type": "string" }, "schema": { "$ref": "TableSchema", - "description": "[Optional] The schema for the data. Schema is required for CSV and JSON formats. Schema is disallowed for Google Cloud Bigtable, Cloud Datastore backups, and Avro formats." + "description": "Optional. The schema for the data. Schema is required for CSV and JSON formats if autodetect is not on. Schema is disallowed for Google Cloud Bigtable, Cloud Datastore backups, Avro, ORC and Parquet formats." }, "sourceFormat": { - "description": "[Required] The data format. For CSV files, specify \"CSV\". For Google sheets, specify \"GOOGLE_SHEETS\". For newline-delimited JSON, specify \"NEWLINE_DELIMITED_JSON\". For Avro files, specify \"AVRO\". For Google Cloud Datastore backups, specify \"DATASTORE_BACKUP\". [Beta] For Google Cloud Bigtable, specify \"BIGTABLE\".", + "description": "[Required] The data format. For CSV files, specify \"CSV\". For Google sheets, specify \"GOOGLE_SHEETS\". For newline-delimited JSON, specify \"NEWLINE_DELIMITED_JSON\". For Avro files, specify \"AVRO\". For Google Cloud Datastore backups, specify \"DATASTORE_BACKUP\". For Apache Iceberg tables, specify \"ICEBERG\". For ORC files, specify \"ORC\". For Parquet files, specify \"PARQUET\". [Beta] For Google Cloud Bigtable, specify \"BIGTABLE\".", "type": "string" }, "sourceUris": { @@ -3525,14 +3908,46 @@ "type": "object" }, "ExternalDatasetReference": { + "description": "Configures the access a dataset defined in an external metadata storage.", "id": "ExternalDatasetReference", "properties": { "connection": { - "description": "[Required] The connection id that is used to access the external_source. Format: projects/{project_id}/locations/{location_id}/connections/{connection_id}", + "description": "Required. The connection id that is used to access the external_source. Format: projects/{project_id}/locations/{location_id}/connections/{connection_id}", "type": "string" }, "externalSource": { - "description": "[Required] External source that backs this dataset.", + "description": "Required. External source that backs this dataset.", + "type": "string" + } + }, + "type": "object" + }, + "ExternalServiceCost": { + "description": "The external service cost is a portion of the total cost, these costs are not additive with total_bytes_billed. Moreover, this field only track external service costs that will show up as BigQuery costs (e.g. training BigQuery ML job with google cloud CAIP or Automl Tables services), not other costs which may be accrued by running the query (e.g. reading from Bigtable or Cloud Storage). The external service costs with different billing sku (e.g. CAIP job is charged based on VM usage) are converted to BigQuery billed_bytes and slot_ms with equivalent amount of US dollars. Services may not directly correlate to these metrics, but these are the equivalents for billing purposes. Output only.", + "id": "ExternalServiceCost", + "properties": { + "bytesBilled": { + "description": "External service cost in terms of bigquery bytes billed.", + "format": "int64", + "type": "string" + }, + "bytesProcessed": { + "description": "External service cost in terms of bigquery bytes processed.", + "format": "int64", + "type": "string" + }, + "externalService": { + "description": "External service name.", + "type": "string" + }, + "reservedSlotCount": { + "description": "Non-preemptable reserved slots used for external job. For example, reserved slots for Cloua AI Platform job are the VM usages converted to BigQuery slot with equivalent mount of price.", + "format": "int64", + "type": "string" + }, + "slotMs": { + "description": "External service cost in terms of bigquery slot milliseconds.", + "format": "int64", "type": "string" } }, @@ -3582,6 +3997,7 @@ "type": "object" }, "GetQueryResultsResponse": { + "description": "Response object of GetQueryResults.", "id": "GetQueryResultsResponse", "properties": { "cacheHit": { @@ -3589,10 +4005,11 @@ "type": "boolean" }, "errors": { - "description": "[Output-only] The first errors or warnings encountered during the running of the job. The final message includes the number of errors that caused the process to stop. Errors here do not necessarily mean that the job has completed or was unsuccessful.", + "description": "Output only. The first errors or warnings encountered during the running of the job. The final message includes the number of errors that caused the process to stop. Errors here do not necessarily mean that the job has completed or was unsuccessful. For more information about error messages, see [Error messages](https://cloud.google.com/bigquery/docs/error-messages).", "items": { "$ref": "ErrorProto" }, + "readOnly": true, "type": "array" }, "etag": { @@ -3613,16 +4030,17 @@ "type": "string" }, "numDmlAffectedRows": { - "description": "[Output-only] The number of rows affected by a DML statement. Present only for DML statements INSERT, UPDATE or DELETE.", + "description": "Output only. The number of rows affected by a DML statement. Present only for DML statements INSERT, UPDATE or DELETE.", "format": "int64", + "readOnly": true, "type": "string" }, "pageToken": { - "description": "A token used for paging results.", + "description": "A token used for paging results. When this token is non-empty, it indicates additional results are available.", "type": "string" }, "rows": { - "description": "An object with as many results as can be contained within the maximum permitted reply size. To get any additional rows, you can call GetQueryResults and specify the jobReference returned above. Present only when the query completes successfully.", + "description": "An object with as many results as can be contained within the maximum permitted reply size. To get any additional rows, you can call GetQueryResults and specify the jobReference returned above. Present only when the query completes successfully. The REST-based representation of this data leverages a series of JSON f,v objects for indicating fields and values.", "items": { "$ref": "TableRow" }, @@ -3646,6 +4064,7 @@ "type": "object" }, "GetServiceAccountResponse": { + "description": "Response object of GetServiceAccount", "id": "GetServiceAccountResponse", "properties": { "email": { @@ -3679,40 +4098,75 @@ "type": "object" }, "GoogleSheetsOptions": { + "description": "Options specific to Google Sheets data sources.", "id": "GoogleSheetsOptions", "properties": { "range": { - "description": "[Optional] Range of a sheet to query from. Only used when non-empty. Typical format: sheet_name!top_left_cell_id:bottom_right_cell_id For example: sheet1!A1:B20", + "description": "Optional. Range of a sheet to query from. Only used when non-empty. Typical format: sheet_name!top_left_cell_id:bottom_right_cell_id For example: sheet1!A1:B20", "type": "string" }, "skipLeadingRows": { - "description": "[Optional] The number of rows at the top of a sheet that BigQuery will skip when reading the data. The default value is 0. This property is useful if you have header rows that should be skipped. When autodetect is on, behavior is the following: * skipLeadingRows unspecified - Autodetect tries to detect headers in the first row. If they are not detected, the row is read as data. Otherwise data is read starting from the second row. * skipLeadingRows is 0 - Instructs autodetect that there are no headers and data should be read starting from the first row. * skipLeadingRows = N > 0 - Autodetect skips N-1 rows and tries to detect headers in row N. If headers are not detected, row N is just skipped. Otherwise row N is used to extract column names for the detected schema.", + "description": "Optional. The number of rows at the top of a sheet that BigQuery will skip when reading the data. The default value is 0. This property is useful if you have header rows that should be skipped. When autodetect is on, the behavior is the following: * skipLeadingRows unspecified - Autodetect tries to detect headers in the first row. If they are not detected, the row is read as data. Otherwise data is read starting from the second row. * skipLeadingRows is 0 - Instructs autodetect that there are no headers and data should be read starting from the first row. * skipLeadingRows = N > 0 - Autodetect skips N-1 rows and tries to detect headers in row N. If headers are not detected, row N is just skipped. Otherwise row N is used to extract column names for the detected schema.", "format": "int64", "type": "string" } }, "type": "object" }, - "HivePartitioningOptions": { - "id": "HivePartitioningOptions", + "HighCardinalityJoin": { + "description": "High cardinality join detailed information.", + "id": "HighCardinalityJoin", "properties": { - "fields": { - "description": "[Output-only] For permanent external tables, this field is populated with the hive partition keys in the order they were inferred. The types of the partition keys can be deduced by checking the table schema (which will include the partition keys). Not every API will populate this field in the output. For example, Tables.Get will populate it, but Tables.List will not contain this field.", - "items": { - "type": "string" - }, - "type": "array" + "leftRows": { + "description": "Output only. Count of left input rows.", + "format": "int64", + "readOnly": true, + "type": "string" }, - "mode": { - "description": "[Optional] When set, what mode of hive partitioning to use when reading data. The following modes are supported. (1) AUTO: automatically infer partition key name(s) and type(s). (2) STRINGS: automatically infer partition key name(s). All types are interpreted as strings. (3) CUSTOM: partition key schema is encoded in the source URI prefix. Not all storage formats support hive partitioning. Requesting hive partitioning on an unsupported format will lead to an error. Currently supported types include: AVRO, CSV, JSON, ORC and Parquet.", + "outputRows": { + "description": "Output only. Count of the output rows.", + "format": "int64", + "readOnly": true, "type": "string" }, - "requirePartitionFilter": { - "description": "[Optional] If set to true, queries over this table require a partition filter that can be used for partition elimination to be specified. Note that this field should only be true when creating a permanent external table or querying a temporary external table. Hive-partitioned loads with requirePartitionFilter explicitly set to true will fail.", - "type": "boolean" + "rightRows": { + "description": "Output only. Count of right input rows.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "stepIndex": { + "description": "Output only. The index of the join operator in the ExplainQueryStep lists.", + "format": "int32", + "readOnly": true, + "type": "integer" + } + }, + "type": "object" + }, + "HivePartitioningOptions": { + "description": "Options for configuring hive partitioning detect.", + "id": "HivePartitioningOptions", + "properties": { + "fields": { + "description": "Output only. For permanent external tables, this field is populated with the hive partition keys in the order they were inferred. The types of the partition keys can be deduced by checking the table schema (which will include the partition keys). Not every API will populate this field in the output. For example, Tables.Get will populate it, but Tables.List will not contain this field.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "mode": { + "description": "Optional. When set, what mode of hive partitioning to use when reading data. The following modes are supported: * AUTO: automatically infer partition key name(s) and type(s). * STRINGS: automatically infer partition key name(s). All types are strings. * CUSTOM: partition key schema is encoded in the source URI prefix. Not all storage formats support hive partitioning. Requesting hive partitioning on an unsupported format will lead to an error. Currently supported formats are: JSON, CSV, ORC, Avro and Parquet.", + "type": "string" + }, + "requirePartitionFilter": { + "default": "false", + "description": "Optional. If set to true, queries over this table require a partition filter that can be used for partition elimination to be specified. Note that this field should only be true when creating a permanent external table or querying a temporary external table. Hive-partitioned loads with require_partition_filter explicitly set to true will fail.", + "type": "boolean" }, "sourceUriPrefix": { - "description": "[Optional] When hive partition detection is requested, a common prefix for all source uris should be supplied. The prefix must end immediately before the partition key encoding begins. For example, consider files following this data layout. gs://bucket/path_to_table/dt=2019-01-01/country=BR/id=7/file.avro gs://bucket/path_to_table/dt=2018-12-31/country=CA/id=3/file.avro When hive partitioning is requested with either AUTO or STRINGS detection, the common prefix can be either of gs://bucket/path_to_table or gs://bucket/path_to_table/ (trailing slash does not matter).", + "description": "Optional. When hive partition detection is requested, a common prefix for all source uris must be required. The prefix must end immediately before the partition key encoding begins. For example, consider files following this data layout: gs://bucket/path_to_table/dt=2019-06-01/country=USA/id=7/file.avro gs://bucket/path_to_table/dt=2019-05-31/country=CA/id=3/file.avro When hive partitioning is requested with either AUTO or STRINGS detection, the common prefix can be either of gs://bucket/path_to_table or gs://bucket/path_to_table/. CUSTOM detection requires encoding the partitioning schema immediately after the common prefix. For CUSTOM, any of * gs://bucket/path_to_table/{dt:DATE}/{country:STRING}/{id:INTEGER} * gs://bucket/path_to_table/{dt:STRING}/{country:STRING}/{id:INTEGER} * gs://bucket/path_to_table/{dt:DATE}/{country:STRING}/{id:STRING} would all be valid source URI prefixes.", "type": "string" } }, @@ -3884,30 +4338,85 @@ "type": "object" }, "IndexUnusedReason": { + "description": "Reason about why no search index was used in the search query (or sub-query).", "id": "IndexUnusedReason", "properties": { "baseTable": { "$ref": "TableReference", - "description": "[Output-only] Specifies the base table involved in the reason that no search index was used." + "description": "Specifies the base table involved in the reason that no search index was used." }, "code": { - "default": "$(reason.code)", - "description": "[Output-only] Specifies the high-level reason for the scenario when no search index was used.", + "description": "Specifies the high-level reason for the scenario when no search index was used.", + "enum": [ + "CODE_UNSPECIFIED", + "INDEX_CONFIG_NOT_AVAILABLE", + "PENDING_INDEX_CREATION", + "BASE_TABLE_TRUNCATED", + "INDEX_CONFIG_MODIFIED", + "TIME_TRAVEL_QUERY", + "NO_PRUNING_POWER", + "UNINDEXED_SEARCH_FIELDS", + "UNSUPPORTED_SEARCH_PATTERN", + "OPTIMIZED_WITH_MATERIALIZED_VIEW", + "SECURED_BY_DATA_MASKING", + "MISMATCHED_TEXT_ANALYZER", + "BASE_TABLE_TOO_SMALL", + "BASE_TABLE_TOO_LARGE", + "ESTIMATED_PERFORMANCE_GAIN_TOO_LOW", + "NOT_SUPPORTED_IN_STANDARD_EDITION", + "INDEX_SUPPRESSED_BY_FUNCTION_OPTION", + "QUERY_CACHE_HIT", + "INTERNAL_ERROR", + "OTHER_REASON" + ], + "enumDescriptions": [ + "Code not specified.", + "Indicates the search index configuration has not been created.", + "Indicates the search index creation has not been completed.", + "Indicates the base table has been truncated (rows have been removed from table with TRUNCATE TABLE statement) since the last time the search index was refreshed.", + "Indicates the search index configuration has been changed since the last time the search index was refreshed.", + "Indicates the search query accesses data at a timestamp before the last time the search index was refreshed.", + "Indicates the usage of search index will not contribute to any pruning improvement for the search function, e.g. when the search predicate is in a disjunction with other non-search predicates.", + "Indicates the search index does not cover all fields in the search function.", + "Indicates the search index does not support the given search query pattern.", + "Indicates the query has been optimized by using a materialized view.", + "Indicates the query has been secured by data masking, and thus search indexes are not applicable.", + "Indicates that the search index and the search function call do not have the same text analyzer.", + "Indicates the base table is too small (below a certain threshold). The index does not provide noticeable search performance gains when the base table is too small.", + "Indicates that the total size of indexed base tables in your organization exceeds your region's limit and the index is not used in the query. To index larger base tables, you can use your own reservation for index-management jobs.", + "Indicates that the estimated performance gain from using the search index is too low for the given search query.", + "Indicates that search indexes can not be used for search query with STANDARD edition.", + "Indicates that an option in the search function that cannot make use of the index has been selected.", + "Indicates that the query was cached, and thus the search index was not used.", + "Indicates an internal error that causes the search index to be unused.", + "Indicates that the reason search indexes cannot be used in the query is not covered by any of the other IndexUnusedReason options." + ], "type": "string" }, "indexName": { - "default": "$(reason.index_name)", - "description": "[Output-only] Specifies the name of the unused search index, if available.", + "description": "Specifies the name of the unused search index, if available.", "type": "string" }, "message": { - "default": "$(reason.message)", - "description": "[Output-only] Free form human-readable reason for the scenario when no search index was used.", + "description": "Free form human-readable reason for the scenario when no search index was used.", "type": "string" } }, "type": "object" }, + "InputDataChange": { + "description": "Details about the input data change insight.", + "id": "InputDataChange", + "properties": { + "recordsReadDiffPercentage": { + "description": "Output only. Records read difference percentage compared to a previous run.", + "format": "float", + "readOnly": true, + "type": "number" + } + }, + "type": "object" + }, "IntArray": { "description": "An array of int.", "id": "IntArray", @@ -3985,8 +4494,20 @@ "type": "object" }, "IterationResult": { + "description": "Information about a single iteration of the training run.", "id": "IterationResult", "properties": { + "arimaResult": { + "$ref": "ArimaResult", + "description": "Arima result." + }, + "clusterInfos": { + "description": "Information about top clusters for clustering models.", + "items": { + "$ref": "ClusterInfo" + }, + "type": "array" + }, "durationMs": { "description": "Time taken to run the iteration in milliseconds.", "format": "int64", @@ -4007,6 +4528,13 @@ "format": "double", "type": "number" }, + "principalComponentInfos": { + "description": "The information of the principal components.", + "items": { + "$ref": "PrincipalComponentInfo" + }, + "type": "array" + }, "trainingLoss": { "description": "Loss computed on the training data at the end of iteration.", "format": "double", @@ -4020,49 +4548,63 @@ "properties": { "configuration": { "$ref": "JobConfiguration", - "description": "[Required] Describes the job configuration." + "description": "Required. Describes the job configuration." }, "etag": { - "description": "[Output-only] A hash of this resource.", + "description": "Output only. A hash of this resource.", + "readOnly": true, "type": "string" }, "id": { - "description": "[Output-only] Opaque ID field of the job", + "description": "Output only. Opaque ID field of the job.", + "readOnly": true, "type": "string" }, "jobCreationReason": { - "description": "[Output-only] If set, it provides the reason why a Job was created. If not set, it should be treated as the default: REQUESTED. This feature is not yet available. Jobs will always be created.", - "type": "any" + "$ref": "JobCreationReason", + "description": "Output only. If set, it provides the reason why a Job was created. If not set, it should be treated as the default: REQUESTED. This feature is not yet available. Jobs will always be created.", + "readOnly": true }, "jobReference": { "$ref": "JobReference", - "description": "[Optional] Reference describing the unique-per-user name of the job." + "description": "Optional. Reference describing the unique-per-user name of the job." }, "kind": { "default": "bigquery#job", - "description": "[Output-only] The type of the resource.", + "description": "Output only. The type of the resource.", + "readOnly": true, + "type": "string" + }, + "principal_subject": { + "description": "Output only. [Full-projection-only] String representation of identity of requesting party. Populated for both first- and third-party identities. Only present for APIs that support third-party identities.", + "readOnly": true, "type": "string" }, "selfLink": { - "description": "[Output-only] A URL that can be used to access this resource again.", + "description": "Output only. A URL that can be used to access the resource again.", + "readOnly": true, "type": "string" }, "statistics": { "$ref": "JobStatistics", - "description": "[Output-only] Information about the job, including starting time and ending time of the job." + "description": "Output only. Information about the job, including starting time and ending time of the job.", + "readOnly": true }, "status": { "$ref": "JobStatus", - "description": "[Output-only] The status of this job. Examine this value when polling an asynchronous job to see if the job is complete." + "description": "Output only. The status of this job. Examine this value when polling an asynchronous job to see if the job is complete.", + "readOnly": true }, "user_email": { - "description": "[Output-only] Email address of the user who ran the job.", + "description": "Output only. Email address of the user who ran the job.", + "readOnly": true, "type": "string" } }, "type": "object" }, "JobCancelResponse": { + "description": "Describes format of a jobs cancellation response.", "id": "JobCancelResponse", "properties": { "job": { @@ -4085,7 +4627,7 @@ "description": "[Pick one] Copies a table." }, "dryRun": { - "description": "[Optional] If set, don't actually run this job. A valid query will return a mostly empty response with some processing statistics, while an invalid query will return the same error it would if it wasn't a dry run. Behavior of non-query jobs is undefined.", + "description": "Optional. If set, don't actually run this job. A valid query will return a mostly empty response with some processing statistics, while an invalid query will return the same error it would if it wasn't a dry run. Behavior of non-query jobs is undefined.", "type": "boolean" }, "extract": { @@ -4093,12 +4635,12 @@ "description": "[Pick one] Configures an extract job." }, "jobTimeoutMs": { - "description": "[Optional] Job timeout in milliseconds. If this time limit is exceeded, BigQuery may attempt to terminate the job.", + "description": "Optional. Job timeout in milliseconds. If this time limit is exceeded, BigQuery might attempt to stop the job.", "format": "int64", "type": "string" }, "jobType": { - "description": "[Output-only] The type of the job. Can be QUERY, LOAD, EXTRACT, COPY or UNKNOWN.", + "description": "Output only. The type of the job. Can be QUERY, LOAD, EXTRACT, COPY or UNKNOWN.", "type": "string" }, "labels": { @@ -4120,14 +4662,15 @@ "type": "object" }, "JobConfigurationExtract": { + "description": "JobConfigurationExtract configures a job that exports data from a BigQuery table into Google Cloud Storage.", "id": "JobConfigurationExtract", "properties": { "compression": { - "description": "[Optional] The compression type to use for exported files. Possible values include GZIP, DEFLATE, SNAPPY, and NONE. The default value is NONE. DEFLATE and SNAPPY are only supported for Avro. Not applicable when extracting models.", + "description": "Optional. The compression type to use for exported files. Possible values include DEFLATE, GZIP, NONE, SNAPPY, and ZSTD. The default value is NONE. Not all compression formats are support for all file formats. DEFLATE is only supported for Avro. ZSTD is only supported for Parquet. Not applicable when extracting models.", "type": "string" }, "destinationFormat": { - "description": "[Optional] The exported file format. Possible values include CSV, NEWLINE_DELIMITED_JSON, PARQUET or AVRO for tables and ML_TF_SAVED_MODEL or ML_XGBOOST_BOOSTER for models. The default value for tables is CSV. Tables with nested or repeated fields cannot be exported as CSV. The default value for models is ML_TF_SAVED_MODEL.", + "description": "Optional. The exported file format. Possible values include CSV, NEWLINE_DELIMITED_JSON, PARQUET, or AVRO for tables and ML_TF_SAVED_MODEL or ML_XGBOOST_BOOSTER for models. The default value for tables is CSV. Tables with nested or repeated fields cannot be exported as CSV. The default value for models is ML_TF_SAVED_MODEL.", "type": "string" }, "destinationUri": { @@ -4142,12 +4685,16 @@ "type": "array" }, "fieldDelimiter": { - "description": "[Optional] Delimiter to use between fields in the exported data. Default is ','. Not applicable when extracting models.", + "description": "Optional. When extracting data in CSV format, this defines the delimiter to use between fields in the exported data. Default is ','. Not applicable when extracting models.", "type": "string" }, + "modelExtractOptions": { + "$ref": "ModelExtractOptions", + "description": "Optional. Model extract options only applicable when extracting models." + }, "printHeader": { "default": "true", - "description": "[Optional] Whether to print out a header row in the results. Default is true. Not applicable when extracting models.", + "description": "Optional. Whether to print out a header row in the results. Default is true. Not applicable when extracting models.", "type": "boolean" }, "sourceModel": { @@ -4159,17 +4706,18 @@ "description": "A reference to the table being exported." }, "useAvroLogicalTypes": { - "description": "[Optional] If destinationFormat is set to \"AVRO\", this flag indicates whether to enable extracting applicable column types (such as TIMESTAMP) to their corresponding AVRO logical types (timestamp-micros), instead of only using their raw types (avro-long). Not applicable when extracting models.", + "description": "Whether to use logical types when extracting to AVRO format. Not applicable when extracting models.", "type": "boolean" } }, "type": "object" }, "JobConfigurationLoad": { + "description": "JobConfigurationLoad contains the configuration properties for loading data into a destination table.", "id": "JobConfigurationLoad", "properties": { "allowJaggedRows": { - "description": "[Optional] Accept rows that are missing trailing optional columns. The missing values are treated as nulls. If false, records with missing trailing columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. Only applicable to CSV, ignored for other formats.", + "description": "Optional. Accept rows that are missing trailing optional columns. The missing values are treated as nulls. If false, records with missing trailing columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. Only applicable to CSV, ignored for other formats.", "type": "boolean" }, "allowQuotedNewlines": { @@ -4177,38 +4725,54 @@ "type": "boolean" }, "autodetect": { - "description": "[Optional] Indicates if we should automatically infer the options and schema for CSV and JSON sources.", + "description": "Optional. Indicates if we should automatically infer the options and schema for CSV and JSON sources.", "type": "boolean" }, "clustering": { "$ref": "Clustering", - "description": "[Beta] Clustering specification for the destination table. Must be specified with time-based partitioning, data in the table will be first partitioned and subsequently clustered." + "description": "Clustering specification for the destination table." }, "connectionProperties": { - "description": "Connection properties.", + "description": "Optional. Connection properties which can modify the load job behavior. Currently, only the 'session_id' connection property is supported, and is used to resolve _SESSION appearing as the dataset id.", "items": { "$ref": "ConnectionProperty" }, "type": "array" }, + "copyFilesOnly": { + "description": "Optional. [Experimental] Configures the load job to only copy files to the destination BigLake managed table with an external storage_uri, without reading file content and writing them to new files. Copying files only is supported when: * source_uris are in the same external storage system as the destination table but they do not overlap with storage_uri of the destination table. * source_format is the same file format as the destination table. * destination_table is an existing BigLake managed table. Its schema does not have default value expression. It schema does not have type parameters other than precision and scale. * No options other than the above are specified.", + "type": "boolean" + }, "createDisposition": { - "description": "[Optional] Specifies whether the job is allowed to create new tables. The following values are supported: CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table. CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result. The default value is CREATE_IF_NEEDED. Creation, truncation and append actions occur as one atomic update upon job completion.", + "description": "Optional. Specifies whether the job is allowed to create new tables. The following values are supported: * CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table. * CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result. The default value is CREATE_IF_NEEDED. Creation, truncation and append actions occur as one atomic update upon job completion.", "type": "string" }, "createSession": { - "description": "If true, creates a new session, where session id will be a server generated random id. If false, runs query with an existing session_id passed in ConnectionProperty, otherwise runs the load job in non-session mode.", + "description": "Optional. If this property is true, the job creates a new session using a randomly generated session_id. To continue using a created session with subsequent queries, pass the existing session identifier as a `ConnectionProperty` value. The session identifier is returned as part of the `SessionInfo` message within the query statistics. The new session's location will be set to `Job.JobReference.location` if it is present, otherwise it's set to the default location based on existing routing logic.", "type": "boolean" }, "decimalTargetTypes": { - "description": "[Optional] Defines the list of possible SQL data types to which the source decimal values are converted. This list and the precision and the scale parameters of the decimal field determine the target type. In the order of NUMERIC, BIGNUMERIC, and STRING, a type is picked if it is in the specified list and if it supports the precision and the scale. STRING supports all precision and scale values. If none of the listed types supports the precision and the scale, the type supporting the widest range in the specified list is picked, and if a value exceeds the supported range when reading the data, an error will be thrown. Example: Suppose the value of this field is [\"NUMERIC\", \"BIGNUMERIC\"]. If (precision,scale) is: (38,9) -> NUMERIC; (39,9) -> BIGNUMERIC (NUMERIC cannot hold 30 integer digits); (38,10) -> BIGNUMERIC (NUMERIC cannot hold 10 fractional digits); (76,38) -> BIGNUMERIC; (77,38) -> BIGNUMERIC (error if value exeeds supported range). This field cannot contain duplicate types. The order of the types in this field is ignored. For example, [\"BIGNUMERIC\", \"NUMERIC\"] is the same as [\"NUMERIC\", \"BIGNUMERIC\"] and NUMERIC always takes precedence over BIGNUMERIC. Defaults to [\"NUMERIC\", \"STRING\"] for ORC and [\"NUMERIC\"] for the other file formats.", + "description": "Defines the list of possible SQL data types to which the source decimal values are converted. This list and the precision and the scale parameters of the decimal field determine the target type. In the order of NUMERIC, BIGNUMERIC, and STRING, a type is picked if it is in the specified list and if it supports the precision and the scale. STRING supports all precision and scale values. If none of the listed types supports the precision and the scale, the type supporting the widest range in the specified list is picked, and if a value exceeds the supported range when reading the data, an error will be thrown. Example: Suppose the value of this field is [\"NUMERIC\", \"BIGNUMERIC\"]. If (precision,scale) is: * (38,9) -> NUMERIC; * (39,9) -> BIGNUMERIC (NUMERIC cannot hold 30 integer digits); * (38,10) -> BIGNUMERIC (NUMERIC cannot hold 10 fractional digits); * (76,38) -> BIGNUMERIC; * (77,38) -> BIGNUMERIC (error if value exeeds supported range). This field cannot contain duplicate types. The order of the types in this field is ignored. For example, [\"BIGNUMERIC\", \"NUMERIC\"] is the same as [\"NUMERIC\", \"BIGNUMERIC\"] and NUMERIC always takes precedence over BIGNUMERIC. Defaults to [\"NUMERIC\", \"STRING\"] for ORC and [\"NUMERIC\"] for the other file formats.", "items": { + "enum": [ + "DECIMAL_TARGET_TYPE_UNSPECIFIED", + "NUMERIC", + "BIGNUMERIC", + "STRING" + ], + "enumDescriptions": [ + "Invalid type.", + "Decimal values could be converted to NUMERIC type.", + "Decimal values could be converted to BIGNUMERIC type.", + "Decimal values could be converted to STRING type." + ], "type": "string" }, "type": "array" }, "destinationEncryptionConfiguration": { "$ref": "EncryptionConfiguration", - "description": "Custom encryption configuration (e.g., Cloud KMS keys)." + "description": "Custom encryption configuration (e.g., Cloud KMS keys)" }, "destinationTable": { "$ref": "TableReference", @@ -4216,47 +4780,63 @@ }, "destinationTableProperties": { "$ref": "DestinationTableProperties", - "description": "[Beta] [Optional] Properties with which to create the destination table if it is new." + "description": "Optional. [Experimental] Properties with which to create the destination table if it is new." }, "encoding": { - "description": "[Optional] The character encoding of the data. The supported values are UTF-8 or ISO-8859-1. The default value is UTF-8. BigQuery decodes the data after the raw, binary data has been split using the values of the quote and fieldDelimiter properties.", + "description": "Optional. The character encoding of the data. The supported values are UTF-8, ISO-8859-1, UTF-16BE, UTF-16LE, UTF-32BE, and UTF-32LE. The default value is UTF-8. BigQuery decodes the data after the raw, binary data has been split using the values of the `quote` and `fieldDelimiter` properties. If you don't specify an encoding, or if you specify a UTF-8 encoding when the CSV file is not UTF-8 encoded, BigQuery attempts to convert the data to UTF-8. Generally, your data loads successfully, but it may not match byte-for-byte what you expect. To avoid this, specify the correct encoding by using the `--encoding` flag. If BigQuery can't convert a character other than the ASCII `0` character, BigQuery converts the character to the standard Unicode replacement character: �.", "type": "string" }, "fieldDelimiter": { - "description": "[Optional] The separator for fields in a CSV file. The separator can be any ISO-8859-1 single-byte character. To use a character in the range 128-255, you must encode the character as UTF8. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. BigQuery also supports the escape sequence \"\\t\" to specify a tab separator. The default value is a comma (',').", + "description": "Optional. The separator character for fields in a CSV file. The separator is interpreted as a single byte. For files encoded in ISO-8859-1, any single character can be used as a separator. For files encoded in UTF-8, characters represented in decimal range 1-127 (U+0001-U+007F) can be used without any modification. UTF-8 characters encoded with multiple bytes (i.e. U+0080 and above) will have only the first byte used for separating fields. The remaining bytes will be treated as a part of the field. BigQuery also supports the escape sequence \"\\t\" (U+0009) to specify a tab separator. The default value is comma (\",\", U+002C).", "type": "string" }, "fileSetSpecType": { - "description": "[Optional] Specifies how source URIs are interpreted for constructing the file set to load. By default source URIs are expanded against the underlying storage. Other options include specifying manifest files. Only applicable to object storage systems.", + "description": "Optional. Specifies how source URIs are interpreted for constructing the file set to load. By default, source URIs are expanded against the underlying storage. You can also specify manifest files to control how the file set is constructed. This option is only applicable to object storage systems.", + "enum": [ + "FILE_SET_SPEC_TYPE_FILE_SYSTEM_MATCH", + "FILE_SET_SPEC_TYPE_NEW_LINE_DELIMITED_MANIFEST" + ], + "enumDescriptions": [ + "This option expands source URIs by listing files from the object store. It is the default behavior if FileSetSpecType is not set.", + "This option indicates that the provided URIs are newline-delimited manifest files, with one URI per line. Wildcard URIs are not supported." + ], "type": "string" }, "hivePartitioningOptions": { "$ref": "HivePartitioningOptions", - "description": "[Optional] Options to configure hive partitioning support." + "description": "Optional. When set, configures hive partitioning support. Not all storage formats support hive partitioning -- requesting hive partitioning on an unsupported format will lead to an error, as will providing an invalid specification." }, "ignoreUnknownValues": { - "description": "[Optional] Indicates if BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. The sourceFormat property determines what BigQuery treats as an extra value: CSV: Trailing columns JSON: Named values that don't match any column names", + "description": "Optional. Indicates if BigQuery should allow extra values that are not represented in the table schema. If true, the extra values are ignored. If false, records with extra columns are treated as bad records, and if there are too many bad records, an invalid error is returned in the job result. The default value is false. The sourceFormat property determines what BigQuery treats as an extra value: CSV: Trailing columns JSON: Named values that don't match any column names in the table schema Avro, Parquet, ORC: Fields in the file schema that don't exist in the table schema.", "type": "boolean" }, "jsonExtension": { - "description": "[Optional] If sourceFormat is set to newline-delimited JSON, indicates whether it should be processed as a JSON variant such as GeoJSON. For a sourceFormat other than JSON, omit this field. If the sourceFormat is newline-delimited JSON: - for newline-delimited GeoJSON: set to GEOJSON.", + "description": "Optional. Load option to be used together with source_format newline-delimited JSON to indicate that a variant of JSON is being loaded. To load newline-delimited GeoJSON, specify GEOJSON (and source_format must be set to NEWLINE_DELIMITED_JSON).", + "enum": [ + "JSON_EXTENSION_UNSPECIFIED", + "GEOJSON" + ], + "enumDescriptions": [ + "The default if provided value is not one included in the enum, or the value is not specified. The source formate is parsed without any modification.", + "Use GeoJSON variant of JSON. See https://tools.ietf.org/html/rfc7946." + ], "type": "string" }, "maxBadRecords": { - "description": "[Optional] The maximum number of bad records that BigQuery can ignore when running the job. If the number of bad records exceeds this value, an invalid error is returned in the job result. This is only valid for CSV and JSON. The default value is 0, which requires that all records are valid.", + "description": "Optional. The maximum number of bad records that BigQuery can ignore when running the job. If the number of bad records exceeds this value, an invalid error is returned in the job result. The default value is 0, which requires that all records are valid. This is only supported for CSV and NEWLINE_DELIMITED_JSON file formats.", "format": "int32", "type": "integer" }, "nullMarker": { - "description": "[Optional] Specifies a string that represents a null value in a CSV file. For example, if you specify \"\\N\", BigQuery interprets \"\\N\" as a null value when loading a CSV file. The default value is the empty string. If you set this property to a custom value, BigQuery throws an error if an empty string is present for all data types except for STRING and BYTE. For STRING and BYTE columns, BigQuery interprets the empty string as an empty value.", + "description": "Optional. Specifies a string that represents a null value in a CSV file. For example, if you specify \"\\N\", BigQuery interprets \"\\N\" as a null value when loading a CSV file. The default value is the empty string. If you set this property to a custom value, BigQuery throws an error if an empty string is present for all data types except for STRING and BYTE. For STRING and BYTE columns, BigQuery interprets the empty string as an empty value.", "type": "string" }, "parquetOptions": { "$ref": "ParquetOptions", - "description": "[Optional] Options to configure parquet support." + "description": "Optional. Additional properties to set if sourceFormat is set to PARQUET." }, "preserveAsciiControlCharacters": { - "description": "[Optional] Preserves the embedded ASCII control characters (the first 32 characters in the ASCII-table, from '\\x00' to '\\x1F') when loading from CSV. Only applicable to CSV, ignored for other formats.", + "description": "Optional. When sourceFormat is set to \"CSV\", this indicates whether the embedded ASCII control characters (the first 32 characters in the ASCII-table, from '\\x00' to '\\x1F') are preserved.", "type": "boolean" }, "projectionFields": { @@ -4268,21 +4848,21 @@ }, "quote": { "default": "\"", - "description": "[Optional] The value that is used to quote data sections in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. The default value is a double-quote ('\"'). If your data does not contain quoted sections, set the property value to an empty string. If your data contains quoted newline characters, you must also set the allowQuotedNewlines property to true.", + "description": "Optional. The value that is used to quote data sections in a CSV file. BigQuery converts the string to ISO-8859-1 encoding, and then uses the first byte of the encoded string to split the data in its raw, binary state. The default value is a double-quote ('\"'). If your data does not contain quoted sections, set the property value to an empty string. If your data contains quoted newline characters, you must also set the allowQuotedNewlines property to true. To include the specific quote character within a quoted value, precede it with an additional matching quote character. For example, if you want to escape the default character ' \" ', use ' \"\" '. @default \"", "pattern": ".?", "type": "string" }, "rangePartitioning": { "$ref": "RangePartitioning", - "description": "[TrustedTester] Range partitioning specification for this table. Only one of timePartitioning and rangePartitioning should be specified." + "description": "Range partitioning specification for the destination table. Only one of timePartitioning and rangePartitioning should be specified." }, "referenceFileSchemaUri": { - "description": "User provided referencing file with the expected reader schema, Available for the format: AVRO, PARQUET, ORC.", + "description": "Optional. The user can provide a reference file with the reader schema. This file is only loaded if it is part of source URIs, but is not loaded otherwise. It is enabled for the following formats: AVRO, PARQUET, ORC.", "type": "string" }, "schema": { "$ref": "TableSchema", - "description": "[Optional] The schema for the destination table. The schema can be omitted if the destination table already exists, or if you're loading data from Google Cloud Datastore." + "description": "Optional. The schema for the destination table. The schema can be omitted if the destination table already exists, or if you're loading data from Google Cloud Datastore." }, "schemaInline": { "description": "[Deprecated] The inline schema. For CSV schemas, specify as \"Field1:Type1[,Field2:Type2]*\". For example, \"foo:STRING, bar:INTEGER, baz:FLOAT\".", @@ -4293,19 +4873,19 @@ "type": "string" }, "schemaUpdateOptions": { - "description": "Allows the schema of the destination table to be updated as a side effect of the load job if a schema is autodetected or supplied in the job configuration. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema. One or more of the following values are specified: ALLOW_FIELD_ADDITION: allow adding a nullable field to the schema. ALLOW_FIELD_RELAXATION: allow relaxing a required field in the original schema to nullable.", + "description": "Allows the schema of the destination table to be updated as a side effect of the load job if a schema is autodetected or supplied in the job configuration. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema. One or more of the following values are specified: * ALLOW_FIELD_ADDITION: allow adding a nullable field to the schema. * ALLOW_FIELD_RELAXATION: allow relaxing a required field in the original schema to nullable.", "items": { "type": "string" }, "type": "array" }, "skipLeadingRows": { - "description": "[Optional] The number of rows at the top of a CSV file that BigQuery will skip when loading the data. The default value is 0. This property is useful if you have header rows in the file that should be skipped.", + "description": "Optional. The number of rows at the top of a CSV file that BigQuery will skip when loading the data. The default value is 0. This property is useful if you have header rows in the file that should be skipped. When autodetect is on, the behavior is the following: * skipLeadingRows unspecified - Autodetect tries to detect headers in the first row. If they are not detected, the row is read as data. Otherwise data is read starting from the second row. * skipLeadingRows is 0 - Instructs autodetect that there are no headers and data should be read starting from the first row. * skipLeadingRows = N > 0 - Autodetect skips N-1 rows and tries to detect headers in row N. If headers are not detected, row N is just skipped. Otherwise row N is used to extract column names for the detected schema.", "format": "int32", "type": "integer" }, "sourceFormat": { - "description": "[Optional] The format of the data files. For CSV files, specify \"CSV\". For datastore backups, specify \"DATASTORE_BACKUP\". For newline-delimited JSON, specify \"NEWLINE_DELIMITED_JSON\". For Avro, specify \"AVRO\". For parquet, specify \"PARQUET\". For orc, specify \"ORC\". The default value is CSV.", + "description": "Optional. The format of the data files. For CSV files, specify \"CSV\". For datastore backups, specify \"DATASTORE_BACKUP\". For newline-delimited JSON, specify \"NEWLINE_DELIMITED_JSON\". For Avro, specify \"AVRO\". For parquet, specify \"PARQUET\". For orc, specify \"ORC\". The default value is CSV.", "type": "string" }, "sourceUris": { @@ -4320,30 +4900,31 @@ "description": "Time-based partitioning specification for the destination table. Only one of timePartitioning and rangePartitioning should be specified." }, "useAvroLogicalTypes": { - "description": "[Optional] If sourceFormat is set to \"AVRO\", indicates whether to interpret logical types as the corresponding BigQuery data type (for example, TIMESTAMP), instead of using the raw type (for example, INTEGER).", + "description": "Optional. If sourceFormat is set to \"AVRO\", indicates whether to interpret logical types as the corresponding BigQuery data type (for example, TIMESTAMP), instead of using the raw type (for example, INTEGER).", "type": "boolean" }, "writeDisposition": { - "description": "[Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_APPEND. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.", + "description": "Optional. Specifies the action that occurs if the destination table already exists. The following values are supported: * WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the data, removes the constraints and uses the schema from the load job. * WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. * WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_APPEND. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.", "type": "string" } }, "type": "object" }, "JobConfigurationQuery": { + "description": "JobConfigurationQuery configures a BigQuery query job.", "id": "JobConfigurationQuery", "properties": { "allowLargeResults": { "default": "false", - "description": "[Optional] If true and query uses legacy SQL dialect, allows the query to produce arbitrarily large result tables at a slight cost in performance. Requires destinationTable to be set. For standard SQL queries, this flag is ignored and large results are always allowed. However, you must still set destinationTable when result size exceeds the allowed maximum response size.", + "description": "Optional. If true and query uses legacy SQL dialect, allows the query to produce arbitrarily large result tables at a slight cost in performance. Requires destinationTable to be set. For GoogleSQL queries, this flag is ignored and large results are always allowed. However, you must still set destinationTable when result size exceeds the allowed maximum response size.", "type": "boolean" }, "clustering": { "$ref": "Clustering", - "description": "[Beta] Clustering specification for the destination table. Must be specified with time-based partitioning, data in the table will be first partitioned and subsequently clustered." + "description": "Clustering specification for the destination table." }, "connectionProperties": { - "description": "Connection properties.", + "description": "Connection properties which can modify the query behavior.", "items": { "$ref": "ConnectionProperty" }, @@ -4354,43 +4935,43 @@ "type": "boolean" }, "createDisposition": { - "description": "[Optional] Specifies whether the job is allowed to create new tables. The following values are supported: CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table. CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result. The default value is CREATE_IF_NEEDED. Creation, truncation and append actions occur as one atomic update upon job completion.", + "description": "Optional. Specifies whether the job is allowed to create new tables. The following values are supported: * CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table. * CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result. The default value is CREATE_IF_NEEDED. Creation, truncation and append actions occur as one atomic update upon job completion.", "type": "string" }, "createSession": { - "description": "If true, creates a new session, where session id will be a server generated random id. If false, runs query with an existing session_id passed in ConnectionProperty, otherwise runs query in non-session mode.", + "description": "If this property is true, the job creates a new session using a randomly generated session_id. To continue using a created session with subsequent queries, pass the existing session identifier as a `ConnectionProperty` value. The session identifier is returned as part of the `SessionInfo` message within the query statistics. The new session's location will be set to `Job.JobReference.location` if it is present, otherwise it's set to the default location based on existing routing logic.", "type": "boolean" }, "defaultDataset": { "$ref": "DatasetReference", - "description": "[Optional] Specifies the default dataset to use for unqualified table names in the query. Note that this does not alter behavior of unqualified dataset names." + "description": "Optional. Specifies the default dataset to use for unqualified table names in the query. This setting does not alter behavior of unqualified dataset names. Setting the system variable `@@dataset_id` achieves the same behavior. See https://cloud.google.com/bigquery/docs/reference/system-variables for more information on system variables." }, "destinationEncryptionConfiguration": { "$ref": "EncryptionConfiguration", - "description": "Custom encryption configuration (e.g., Cloud KMS keys)." + "description": "Custom encryption configuration (e.g., Cloud KMS keys)" }, "destinationTable": { "$ref": "TableReference", - "description": "[Optional] Describes the table where the query results should be stored. If not present, a new table will be created to store the results. This property must be set for large results that exceed the maximum response size." + "description": "Optional. Describes the table where the query results should be stored. This property must be set for large results that exceed the maximum response size. For queries that produce anonymous (cached) results, this field will be populated by BigQuery." }, "flattenResults": { "default": "true", - "description": "[Optional] If true and query uses legacy SQL dialect, flattens all nested and repeated fields in the query results. allowLargeResults must be true if this is set to false. For standard SQL queries, this flag is ignored and results are never flattened.", + "description": "Optional. If true and query uses legacy SQL dialect, flattens all nested and repeated fields in the query results. allowLargeResults must be true if this is set to false. For GoogleSQL queries, this flag is ignored and results are never flattened.", "type": "boolean" }, "maximumBillingTier": { "default": "1", - "description": "[Optional] Limits the billing tier for this job. Queries that have resource usage beyond this tier will fail (without incurring a charge). If unspecified, this will be set to your project default.", + "description": "Optional. [Deprecated] Maximum billing tier allowed for this query. The billing tier controls the amount of compute resources allotted to the query, and multiplies the on-demand cost of the query accordingly. A query that runs within its allotted resources will succeed and indicate its billing tier in statistics.query.billingTier, but if the query exceeds its allotted resources, it will fail with billingTierLimitExceeded. WARNING: The billed byte amount can be multiplied by an amount up to this number! Most users should not need to alter this setting, and we recommend that you avoid introducing new uses of it.", "format": "int32", "type": "integer" }, "maximumBytesBilled": { - "description": "[Optional] Limits the bytes billed for this job. Queries that will have bytes billed beyond this limit will fail (without incurring a charge). If unspecified, this will be set to your project default.", + "description": "Limits the bytes billed for this job. Queries that will have bytes billed beyond this limit will fail (without incurring a charge). If unspecified, this will be set to your project default.", "format": "int64", "type": "string" }, "parameterMode": { - "description": "Standard SQL only. Set to POSITIONAL to use positional (?) query parameters or to NAMED to use named (@myparam) query parameters in this query.", + "description": "GoogleSQL only. Set to POSITIONAL to use positional (?) query parameters or to NAMED to use named (@myparam) query parameters in this query.", "type": "string" }, "preserveNulls": { @@ -4398,15 +4979,15 @@ "type": "boolean" }, "priority": { - "description": "[Optional] Specifies a priority for the query. Possible values include INTERACTIVE and BATCH. The default value is INTERACTIVE.", + "description": "Optional. Specifies a priority for the query. Possible values include INTERACTIVE and BATCH. The default value is INTERACTIVE.", "type": "string" }, "query": { - "description": "[Required] SQL query text to execute. The useLegacySql field can be used to indicate whether the query uses legacy SQL or standard SQL.", + "description": "[Required] SQL query text to execute. The useLegacySql field can be used to indicate whether the query uses legacy SQL or GoogleSQL.", "type": "string" }, "queryParameters": { - "description": "Query parameters for standard SQL queries.", + "description": "Query parameters for GoogleSQL queries.", "items": { "$ref": "QueryParameter" }, @@ -4414,20 +4995,29 @@ }, "rangePartitioning": { "$ref": "RangePartitioning", - "description": "[TrustedTester] Range partitioning specification for this table. Only one of timePartitioning and rangePartitioning should be specified." + "description": "Range partitioning specification for the destination table. Only one of timePartitioning and rangePartitioning should be specified." }, "schemaUpdateOptions": { - "description": "Allows the schema of the destination table to be updated as a side effect of the query job. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema. One or more of the following values are specified: ALLOW_FIELD_ADDITION: allow adding a nullable field to the schema. ALLOW_FIELD_RELAXATION: allow relaxing a required field in the original schema to nullable.", + "description": "Allows the schema of the destination table to be updated as a side effect of the query job. Schema update options are supported in two cases: when writeDisposition is WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination table is a partition of a table, specified by partition decorators. For normal tables, WRITE_TRUNCATE will always overwrite the schema. One or more of the following values are specified: * ALLOW_FIELD_ADDITION: allow adding a nullable field to the schema. * ALLOW_FIELD_RELAXATION: allow relaxing a required field in the original schema to nullable.", "items": { "type": "string" }, "type": "array" }, + "scriptOptions": { + "$ref": "ScriptOptions", + "description": "Options controlling the execution of scripts." + }, + "systemVariables": { + "$ref": "SystemVariables", + "description": "Output only. System variables for GoogleSQL queries. A system variable is output if the variable is settable and its value differs from the system default. \"@@\" prefix is not included in the name of the System variables.", + "readOnly": true + }, "tableDefinitions": { "additionalProperties": { "$ref": "ExternalDataConfiguration" }, - "description": "[Optional] If querying an external data source outside of BigQuery, describes the data format, location and other properties of the data source. By defining these properties, the data source can then be queried as if it were a standard BigQuery table.", + "description": "Optional. You can specify external table definitions, which operate as ephemeral tables that can be queried. These definitions are configured using a JSON map, where the string key represents the table identifier, and the value is the corresponding external data configuration object.", "type": "object" }, "timePartitioning": { @@ -4436,12 +5026,12 @@ }, "useLegacySql": { "default": "true", - "description": "Specifies whether to use BigQuery's legacy SQL dialect for this query. The default value is true. If set to false, the query will use BigQuery's standard SQL: https://cloud.google.com/bigquery/sql-reference/ When useLegacySql is set to false, the value of flattenResults is ignored; query will be run as if flattenResults is false.", + "description": "Optional. Specifies whether to use BigQuery's legacy SQL dialect for this query. The default value is true. If set to false, the query will use BigQuery's GoogleSQL: https://cloud.google.com/bigquery/sql-reference/ When useLegacySql is set to false, the value of flattenResults is ignored; query will be run as if flattenResults is false.", "type": "boolean" }, "useQueryCache": { "default": "true", - "description": "[Optional] Whether to look for the result in the query cache. The query cache is a best-effort cache that will be flushed whenever tables in the query are modified. Moreover, the query cache is only available when a query does not have a destination table specified. The default value is true.", + "description": "Optional. Whether to look for the result in the query cache. The query cache is a best-effort cache that will be flushed whenever tables in the query are modified. Moreover, the query cache is only available when a query does not have a destination table specified. The default value is true.", "type": "boolean" }, "userDefinedFunctionResources": { @@ -4452,17 +5042,18 @@ "type": "array" }, "writeDisposition": { - "description": "[Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data and uses the schema from the query result. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.", + "description": "Optional. Specifies the action that occurs if the destination table already exists. The following values are supported: * WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the data, removes the constraints, and uses the schema from the query result. * WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. * WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.", "type": "string" } }, "type": "object" }, "JobConfigurationTableCopy": { + "description": "JobConfigurationTableCopy configures a job that copies data from one table to another. For more information on copying tables, see [Copy a table](https://cloud.google.com/bigquery/docs/managing-tables#copy-table).", "id": "JobConfigurationTableCopy", "properties": { "createDisposition": { - "description": "[Optional] Specifies whether the job is allowed to create new tables. The following values are supported: CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table. CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result. The default value is CREATE_IF_NEEDED. Creation, truncation and append actions occur as one atomic update upon job completion.", + "description": "Optional. Specifies whether the job is allowed to create new tables. The following values are supported: * CREATE_IF_NEEDED: If the table does not exist, BigQuery creates the table. * CREATE_NEVER: The table must already exist. If it does not, a 'notFound' error is returned in the job result. The default value is CREATE_IF_NEEDED. Creation, truncation and append actions occur as one atomic update upon job completion.", "type": "string" }, "destinationEncryptionConfiguration": { @@ -4470,15 +5061,30 @@ "description": "Custom encryption configuration (e.g., Cloud KMS keys)." }, "destinationExpirationTime": { - "description": "[Optional] The time when the destination table expires. Expired tables will be deleted and their storage reclaimed.", - "type": "any" + "description": "Optional. The time when the destination table expires. Expired tables will be deleted and their storage reclaimed.", + "format": "google-datetime", + "type": "string" }, "destinationTable": { "$ref": "TableReference", - "description": "[Required] The destination table" + "description": "[Required] The destination table." }, "operationType": { - "description": "[Optional] Supported operation types in table copy job.", + "description": "Optional. Supported operation types in table copy job.", + "enum": [ + "OPERATION_TYPE_UNSPECIFIED", + "COPY", + "SNAPSHOT", + "RESTORE", + "CLONE" + ], + "enumDescriptions": [ + "Unspecified operation type.", + "The source and destination table have the same table type.", + "The source table type is TABLE and the destination table type is SNAPSHOT.", + "The source table type is SNAPSHOT and the destination table type is TABLE.", + "The source and destination table have the same table type, but only bill for unique data." + ], "type": "string" }, "sourceTable": { @@ -4493,7 +5099,7 @@ "type": "array" }, "writeDisposition": { - "description": "[Optional] Specifies the action that occurs if the destination table already exists. The following values are supported: WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data. WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.", + "description": "Optional. Specifies the action that occurs if the destination table already exists. The following values are supported: * WRITE_TRUNCATE: If the table already exists, BigQuery overwrites the table data and uses the schema and table constraints from the source table. * WRITE_APPEND: If the table already exists, BigQuery appends the data to the table. * WRITE_EMPTY: If the table already exists and contains data, a 'duplicate' error is returned in the job result. The default value is WRITE_EMPTY. Each action is atomic and only occurs if BigQuery is able to complete the job successfully. Creation, truncation and append actions occur as one atomic update upon job completion.", "type": "string" } }, @@ -4526,6 +5132,7 @@ "type": "object" }, "JobList": { + "description": "JobList is the response format for a jobs.list call.", "id": "JobList", "properties": { "etag": { @@ -4535,10 +5142,11 @@ "jobs": { "description": "List of jobs that were requested.", "items": { + "description": "ListFormatJob is a partial projection of job information returned as part of a jobs.list response.", "properties": { "configuration": { "$ref": "JobConfiguration", - "description": "[Full-projection-only] Specifies the job configuration." + "description": "Required. Describes the job configuration." }, "errorResult": { "$ref": "ErrorProto", @@ -4550,24 +5158,28 @@ }, "jobReference": { "$ref": "JobReference", - "description": "Job reference uniquely identifying the job." + "description": "Unique opaque ID of the job." }, "kind": { - "default": "bigquery#job", "description": "The resource type.", "type": "string" }, + "principal_subject": { + "description": "[Full-projection-only] String representation of identity of requesting party. Populated for both first- and third-party identities. Only present for APIs that support third-party identities.", + "type": "string" + }, "state": { "description": "Running state of the job. When the state is DONE, errorResult can be checked to determine whether the job succeeded or failed.", "type": "string" }, "statistics": { "$ref": "JobStatistics", - "description": "[Output-only] Information about the job, including starting time and ending time of the job." + "description": "Output only. Information about the job, including starting time and ending time of the job.", + "readOnly": true }, "status": { "$ref": "JobStatus", - "description": "[Full-projection-only] Describes the state of the job." + "description": "[Full-projection-only] Describes the status of this job." }, "user_email": { "description": "[Full-projection-only] Email address of the user who ran the job.", @@ -4586,387 +5198,533 @@ "nextPageToken": { "description": "A token to request the next page of results.", "type": "string" + }, + "unreachable": { + "description": "A list of skipped locations that were unreachable. For more information about BigQuery locations, see: https://cloud.google.com/bigquery/docs/locations. Example: \"europe-west5\"", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" }, "JobReference": { + "description": "A job reference is a fully qualified identifier for referring to a job.", "id": "JobReference", "properties": { "jobId": { - "annotations": { - "required": [ - "bigquery.jobs.getQueryResults" - ] - }, - "description": "[Required] The ID of the job. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). The maximum length is 1,024 characters.", + "description": "Required. The ID of the job. The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), or dashes (-). The maximum length is 1,024 characters.", "type": "string" }, "location": { - "description": "The geographic location of the job. See details at https://cloud.google.com/bigquery/docs/locations#specifying_your_location.", + "description": "Optional. The geographic location of the job. The default value is US. For more information about BigQuery locations, see: https://cloud.google.com/bigquery/docs/locations", "type": "string" }, "projectId": { - "annotations": { - "required": [ - "bigquery.jobs.getQueryResults" - ] - }, - "description": "[Required] The ID of the project containing this job.", + "description": "Required. The ID of the project containing this job.", "type": "string" } }, "type": "object" }, "JobStatistics": { + "description": "Statistics for a single job execution.", "id": "JobStatistics", "properties": { "completionRatio": { - "description": "[TrustedTester] [Output-only] Job progress (0.0 -> 1.0) for LOAD and EXTRACT jobs.", + "description": "Output only. [TrustedTester] Job progress (0.0 -> 1.0) for LOAD and EXTRACT jobs.", "format": "double", + "readOnly": true, "type": "number" }, "copy": { "$ref": "JobStatistics5", - "description": "[Output-only] Statistics for a copy job." + "description": "Output only. Statistics for a copy job.", + "readOnly": true }, "creationTime": { - "description": "[Output-only] Creation time of this job, in milliseconds since the epoch. This field will be present on all jobs.", + "description": "Output only. Creation time of this job, in milliseconds since the epoch. This field will be present on all jobs.", "format": "int64", + "readOnly": true, "type": "string" }, "dataMaskingStatistics": { "$ref": "DataMaskingStatistics", - "description": "[Output-only] Statistics for data masking. Present only for query and extract jobs." + "description": "Output only. Statistics for data-masking. Present only for query and extract jobs.", + "readOnly": true }, "endTime": { - "description": "[Output-only] End time of this job, in milliseconds since the epoch. This field will be present whenever a job is in the DONE state.", + "description": "Output only. End time of this job, in milliseconds since the epoch. This field will be present whenever a job is in the DONE state.", "format": "int64", + "readOnly": true, "type": "string" }, "extract": { "$ref": "JobStatistics4", - "description": "[Output-only] Statistics for an extract job." + "description": "Output only. Statistics for an extract job.", + "readOnly": true + }, + "finalExecutionDurationMs": { + "description": "Output only. The duration in milliseconds of the execution of the final attempt of this job, as BigQuery may internally re-attempt to execute the job.", + "format": "int64", + "readOnly": true, + "type": "string" }, "load": { "$ref": "JobStatistics3", - "description": "[Output-only] Statistics for a load job." + "description": "Output only. Statistics for a load job.", + "readOnly": true }, "numChildJobs": { - "description": "[Output-only] Number of child jobs executed.", + "description": "Output only. Number of child jobs executed.", "format": "int64", + "readOnly": true, "type": "string" }, "parentJobId": { - "description": "[Output-only] If this is a child job, the id of the parent.", + "description": "Output only. If this is a child job, specifies the job ID of the parent.", + "readOnly": true, "type": "string" }, "query": { "$ref": "JobStatistics2", - "description": "[Output-only] Statistics for a query job." + "description": "Output only. Statistics for a query job.", + "readOnly": true }, "quotaDeferments": { - "description": "[Output-only] Quotas which delayed this job's start time.", + "description": "Output only. Quotas which delayed this job's start time.", "items": { "type": "string" }, + "readOnly": true, "type": "array" }, "reservationUsage": { - "description": "[Output-only] Job resource usage breakdown by reservation.", + "deprecated": true, + "description": "Output only. Job resource usage breakdown by reservation. This field reported misleading information and will no longer be populated.", "items": { + "description": "Job resource usage breakdown by reservation.", "properties": { "name": { - "description": "[Output-only] Reservation name or \"unreserved\" for on-demand resources usage.", + "description": "Reservation name or \"unreserved\" for on-demand resources usage.", "type": "string" }, "slotMs": { - "description": "[Output-only] Slot-milliseconds the job spent in the given reservation.", + "description": "Total slot milliseconds used by the reservation for a particular job.", "format": "int64", "type": "string" } }, "type": "object" }, + "readOnly": true, "type": "array" }, "reservation_id": { - "description": "[Output-only] Name of the primary reservation assigned to this job. Note that this could be different than reservations reported in the reservation usage field if parent reservations were used to execute this job.", + "description": "Output only. Name of the primary reservation assigned to this job. Note that this could be different than reservations reported in the reservation usage field if parent reservations were used to execute this job.", + "readOnly": true, "type": "string" }, "rowLevelSecurityStatistics": { "$ref": "RowLevelSecurityStatistics", - "description": "[Output-only] [Preview] Statistics for row-level security. Present only for query and extract jobs." + "description": "Output only. Statistics for row-level security. Present only for query and extract jobs.", + "readOnly": true }, "scriptStatistics": { "$ref": "ScriptStatistics", - "description": "[Output-only] Statistics for a child job of a script." + "description": "Output only. If this a child job of a script, specifies information about the context of this job within the script.", + "readOnly": true }, "sessionInfo": { "$ref": "SessionInfo", - "description": "[Output-only] [Preview] Information of the session if this job is part of one." + "description": "Output only. Information of the session if this job is part of one.", + "readOnly": true }, "startTime": { - "description": "[Output-only] Start time of this job, in milliseconds since the epoch. This field will be present when the job transitions from the PENDING state to either RUNNING or DONE.", + "description": "Output only. Start time of this job, in milliseconds since the epoch. This field will be present when the job transitions from the PENDING state to either RUNNING or DONE.", "format": "int64", + "readOnly": true, "type": "string" }, "totalBytesProcessed": { - "description": "[Output-only] [Deprecated] Use the bytes processed in the query statistics instead.", + "description": "Output only. Total bytes processed for the job.", "format": "int64", + "readOnly": true, "type": "string" }, "totalSlotMs": { - "description": "[Output-only] Slot-milliseconds for the job.", + "description": "Output only. Slot-milliseconds for the job.", "format": "int64", + "readOnly": true, "type": "string" }, "transactionInfo": { "$ref": "TransactionInfo", - "description": "[Output-only] [Alpha] Information of the multi-statement transaction if this job is part of one." + "description": "Output only. [Alpha] Information of the multi-statement transaction if this job is part of one. This property is only expected on a child job or a job that is in a session. A script parent job is not part of the transaction started in the script.", + "readOnly": true } }, "type": "object" }, "JobStatistics2": { + "description": "Statistics for a query job.", "id": "JobStatistics2", "properties": { "biEngineStatistics": { "$ref": "BiEngineStatistics", - "description": "BI Engine specific Statistics. [Output only] BI Engine specific Statistics." + "description": "Output only. BI Engine specific Statistics.", + "readOnly": true }, "billingTier": { - "description": "[Output only] Billing tier for the job.", + "description": "Output only. Billing tier for the job. This is a BigQuery-specific concept which is not related to the Google Cloud notion of \"free tier\". The value here is a measure of the query's resource consumption relative to the amount of data scanned. For on-demand queries, the limit is 100, and all queries within this limit are billed at the standard on-demand rates. On-demand queries that exceed this limit will fail with a billingTierLimitExceeded error.", "format": "int32", + "readOnly": true, "type": "integer" }, "cacheHit": { - "description": "[Output only] Whether the query result was fetched from the query cache.", + "description": "Output only. Whether the query result was fetched from the query cache.", + "readOnly": true, "type": "boolean" }, + "dclTargetDataset": { + "$ref": "DatasetReference", + "description": "Output only. Referenced dataset for DCL statement.", + "readOnly": true + }, + "dclTargetTable": { + "$ref": "TableReference", + "description": "Output only. Referenced table for DCL statement.", + "readOnly": true + }, + "dclTargetView": { + "$ref": "TableReference", + "description": "Output only. Referenced view for DCL statement.", + "readOnly": true + }, "ddlAffectedRowAccessPolicyCount": { - "description": "[Output only] [Preview] The number of row access policies affected by a DDL statement. Present only for DROP ALL ROW ACCESS POLICIES queries.", + "description": "Output only. The number of row access policies affected by a DDL statement. Present only for DROP ALL ROW ACCESS POLICIES queries.", "format": "int64", + "readOnly": true, "type": "string" }, "ddlDestinationTable": { "$ref": "TableReference", - "description": "[Output only] The DDL destination table. Present only for ALTER TABLE RENAME TO queries. Note that ddl_target_table is used just for its type information." + "description": "Output only. The table after rename. Present only for ALTER TABLE RENAME TO query.", + "readOnly": true }, "ddlOperationPerformed": { - "description": "The DDL operation performed, possibly dependent on the pre-existence of the DDL target. Possible values (new values might be added in the future): \"CREATE\": The query created the DDL target. \"SKIP\": No-op. Example cases: the query is CREATE TABLE IF NOT EXISTS while the table already exists, or the query is DROP TABLE IF EXISTS while the table does not exist. \"REPLACE\": The query replaced the DDL target. Example case: the query is CREATE OR REPLACE TABLE, and the table already exists. \"DROP\": The query deleted the DDL target.", + "description": "Output only. The DDL operation performed, possibly dependent on the pre-existence of the DDL target.", + "readOnly": true, "type": "string" }, "ddlTargetDataset": { "$ref": "DatasetReference", - "description": "[Output only] The DDL target dataset. Present only for CREATE/ALTER/DROP/UNDROP SCHEMA queries." + "description": "Output only. The DDL target dataset. Present only for CREATE/ALTER/DROP SCHEMA(dataset) queries.", + "readOnly": true }, "ddlTargetRoutine": { "$ref": "RoutineReference", - "description": "The DDL target routine. Present only for CREATE/DROP FUNCTION/PROCEDURE queries." + "description": "Output only. [Beta] The DDL target routine. Present only for CREATE/DROP FUNCTION/PROCEDURE queries.", + "readOnly": true }, "ddlTargetRowAccessPolicy": { "$ref": "RowAccessPolicyReference", - "description": "[Output only] [Preview] The DDL target row access policy. Present only for CREATE/DROP ROW ACCESS POLICY queries." + "description": "Output only. The DDL target row access policy. Present only for CREATE/DROP ROW ACCESS POLICY queries.", + "readOnly": true }, "ddlTargetTable": { "$ref": "TableReference", - "description": "[Output only] The DDL target table. Present only for CREATE/DROP TABLE/VIEW and DROP ALL ROW ACCESS POLICIES queries." + "description": "Output only. The DDL target table. Present only for CREATE/DROP TABLE/VIEW and DROP ALL ROW ACCESS POLICIES queries.", + "readOnly": true }, "dmlStats": { "$ref": "DmlStatistics", - "description": "[Output only] Detailed statistics for DML statements Present only for DML statements INSERT, UPDATE, DELETE or TRUNCATE." + "description": "Output only. Detailed statistics for DML statements INSERT, UPDATE, DELETE, MERGE or TRUNCATE.", + "readOnly": true }, "estimatedBytesProcessed": { - "description": "[Output only] The original estimate of bytes processed for the job.", + "description": "Output only. The original estimate of bytes processed for the job.", "format": "int64", + "readOnly": true, "type": "string" }, + "exportDataStatistics": { + "$ref": "ExportDataStatistics", + "description": "Output only. Stats for EXPORT DATA statement.", + "readOnly": true + }, + "externalServiceCosts": { + "description": "Output only. Job cost breakdown as bigquery internal cost and external service costs.", + "items": { + "$ref": "ExternalServiceCost" + }, + "readOnly": true, + "type": "array" + }, + "loadQueryStatistics": { + "$ref": "LoadQueryStatistics", + "description": "Output only. Statistics for a LOAD query.", + "readOnly": true + }, + "materializedViewStatistics": { + "$ref": "MaterializedViewStatistics", + "description": "Output only. Statistics of materialized views of a query job.", + "readOnly": true + }, + "metadataCacheStatistics": { + "$ref": "MetadataCacheStatistics", + "description": "Output only. Statistics of metadata cache usage in a query for BigLake tables.", + "readOnly": true + }, "mlStatistics": { "$ref": "MlStatistics", - "description": "[Output only] Statistics of a BigQuery ML training job." + "description": "Output only. Statistics of a BigQuery ML training job.", + "readOnly": true }, "modelTraining": { "$ref": "BigQueryModelTraining", - "description": "[Output only, Beta] Information about create model query job progress." + "description": "Deprecated." }, "modelTrainingCurrentIteration": { - "description": "[Output only, Beta] Deprecated; do not use.", + "description": "Deprecated.", "format": "int32", "type": "integer" }, "modelTrainingExpectedTotalIteration": { - "description": "[Output only, Beta] Deprecated; do not use.", + "description": "Deprecated.", "format": "int64", "type": "string" }, "numDmlAffectedRows": { - "description": "[Output only] The number of rows affected by a DML statement. Present only for DML statements INSERT, UPDATE or DELETE.", + "description": "Output only. The number of rows affected by a DML statement. Present only for DML statements INSERT, UPDATE or DELETE.", "format": "int64", + "readOnly": true, "type": "string" }, + "performanceInsights": { + "$ref": "PerformanceInsights", + "description": "Output only. Performance insights.", + "readOnly": true + }, + "queryInfo": { + "$ref": "QueryInfo", + "description": "Output only. Query optimization information for a QUERY job.", + "readOnly": true + }, "queryPlan": { - "description": "[Output only] Describes execution plan for the query.", + "description": "Output only. Describes execution plan for the query.", "items": { "$ref": "ExplainQueryStage" }, + "readOnly": true, "type": "array" }, "referencedRoutines": { - "description": "[Output only] Referenced routines (persistent user-defined functions and stored procedures) for the job.", + "description": "Output only. Referenced routines for the job.", "items": { "$ref": "RoutineReference" }, + "readOnly": true, "type": "array" }, "referencedTables": { - "description": "[Output only] Referenced tables for the job. Queries that reference more than 50 tables will not have a complete list.", + "description": "Output only. Referenced tables for the job. Queries that reference more than 50 tables will not have a complete list.", "items": { "$ref": "TableReference" }, + "readOnly": true, "type": "array" }, "reservationUsage": { - "description": "[Output only] Job resource usage breakdown by reservation.", + "deprecated": true, + "description": "Output only. Job resource usage breakdown by reservation. This field reported misleading information and will no longer be populated.", "items": { + "description": "Job resource usage breakdown by reservation.", "properties": { "name": { - "description": "[Output only] Reservation name or \"unreserved\" for on-demand resources usage.", + "description": "Reservation name or \"unreserved\" for on-demand resources usage.", "type": "string" }, "slotMs": { - "description": "[Output only] Slot-milliseconds the job spent in the given reservation.", + "description": "Total slot milliseconds used by the reservation for a particular job.", "format": "int64", "type": "string" } }, "type": "object" }, + "readOnly": true, "type": "array" }, "schema": { "$ref": "TableSchema", - "description": "[Output only] The schema of the results. Present only for successful dry run of non-legacy SQL queries." + "description": "Output only. The schema of the results. Present only for successful dry run of non-legacy SQL queries.", + "readOnly": true }, "searchStatistics": { "$ref": "SearchStatistics", - "description": "[Output only] Search query specific statistics." + "description": "Output only. Search query specific statistics.", + "readOnly": true }, "sparkStatistics": { "$ref": "SparkStatistics", - "description": "[Output only] Statistics of a Spark procedure job." + "description": "Output only. Statistics of a Spark procedure job.", + "readOnly": true }, "statementType": { - "description": "The type of query statement, if valid. Possible values (new values might be added in the future): \"SELECT\": SELECT query. \"INSERT\": INSERT query; see https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language. \"UPDATE\": UPDATE query; see https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language. \"DELETE\": DELETE query; see https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language. \"MERGE\": MERGE query; see https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language. \"ALTER_TABLE\": ALTER TABLE query. \"ALTER_VIEW\": ALTER VIEW query. \"ASSERT\": ASSERT condition AS 'description'. \"CREATE_FUNCTION\": CREATE FUNCTION query. \"CREATE_MODEL\": CREATE [OR REPLACE] MODEL ... AS SELECT ... . \"CREATE_PROCEDURE\": CREATE PROCEDURE query. \"CREATE_TABLE\": CREATE [OR REPLACE] TABLE without AS SELECT. \"CREATE_TABLE_AS_SELECT\": CREATE [OR REPLACE] TABLE ... AS SELECT ... . \"CREATE_VIEW\": CREATE [OR REPLACE] VIEW ... AS SELECT ... . \"DROP_FUNCTION\" : DROP FUNCTION query. \"DROP_PROCEDURE\": DROP PROCEDURE query. \"DROP_TABLE\": DROP TABLE query. \"DROP_VIEW\": DROP VIEW query.", + "description": "Output only. The type of query statement, if valid. Possible values: * `SELECT`: [`SELECT`](/bigquery/docs/reference/standard-sql/query-syntax#select_list) statement. * `ASSERT`: [`ASSERT`](/bigquery/docs/reference/standard-sql/debugging-statements#assert) statement. * `INSERT`: [`INSERT`](/bigquery/docs/reference/standard-sql/dml-syntax#insert_statement) statement. * `UPDATE`: [`UPDATE`](/bigquery/docs/reference/standard-sql/query-syntax#update_statement) statement. * `DELETE`: [`DELETE`](/bigquery/docs/reference/standard-sql/data-manipulation-language) statement. * `MERGE`: [`MERGE`](/bigquery/docs/reference/standard-sql/data-manipulation-language) statement. * `CREATE_TABLE`: [`CREATE TABLE`](/bigquery/docs/reference/standard-sql/data-definition-language#create_table_statement) statement, without `AS SELECT`. * `CREATE_TABLE_AS_SELECT`: [`CREATE TABLE AS SELECT`](/bigquery/docs/reference/standard-sql/data-definition-language#query_statement) statement. * `CREATE_VIEW`: [`CREATE VIEW`](/bigquery/docs/reference/standard-sql/data-definition-language#create_view_statement) statement. * `CREATE_MODEL`: [`CREATE MODEL`](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-create#create_model_statement) statement. * `CREATE_MATERIALIZED_VIEW`: [`CREATE MATERIALIZED VIEW`](/bigquery/docs/reference/standard-sql/data-definition-language#create_materialized_view_statement) statement. * `CREATE_FUNCTION`: [`CREATE FUNCTION`](/bigquery/docs/reference/standard-sql/data-definition-language#create_function_statement) statement. * `CREATE_TABLE_FUNCTION`: [`CREATE TABLE FUNCTION`](/bigquery/docs/reference/standard-sql/data-definition-language#create_table_function_statement) statement. * `CREATE_PROCEDURE`: [`CREATE PROCEDURE`](/bigquery/docs/reference/standard-sql/data-definition-language#create_procedure) statement. * `CREATE_ROW_ACCESS_POLICY`: [`CREATE ROW ACCESS POLICY`](/bigquery/docs/reference/standard-sql/data-definition-language#create_row_access_policy_statement) statement. * `CREATE_SCHEMA`: [`CREATE SCHEMA`](/bigquery/docs/reference/standard-sql/data-definition-language#create_schema_statement) statement. * `CREATE_SNAPSHOT_TABLE`: [`CREATE SNAPSHOT TABLE`](/bigquery/docs/reference/standard-sql/data-definition-language#create_snapshot_table_statement) statement. * `CREATE_SEARCH_INDEX`: [`CREATE SEARCH INDEX`](/bigquery/docs/reference/standard-sql/data-definition-language#create_search_index_statement) statement. * `DROP_TABLE`: [`DROP TABLE`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_table_statement) statement. * `DROP_EXTERNAL_TABLE`: [`DROP EXTERNAL TABLE`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_external_table_statement) statement. * `DROP_VIEW`: [`DROP VIEW`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_view_statement) statement. * `DROP_MODEL`: [`DROP MODEL`](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-drop-model) statement. * `DROP_MATERIALIZED_VIEW`: [`DROP MATERIALIZED VIEW`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_materialized_view_statement) statement. * `DROP_FUNCTION` : [`DROP FUNCTION`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_function_statement) statement. * `DROP_TABLE_FUNCTION` : [`DROP TABLE FUNCTION`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_table_function) statement. * `DROP_PROCEDURE`: [`DROP PROCEDURE`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_procedure_statement) statement. * `DROP_SEARCH_INDEX`: [`DROP SEARCH INDEX`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_search_index) statement. * `DROP_SCHEMA`: [`DROP SCHEMA`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_schema_statement) statement. * `DROP_SNAPSHOT_TABLE`: [`DROP SNAPSHOT TABLE`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_snapshot_table_statement) statement. * `DROP_ROW_ACCESS_POLICY`: [`DROP [ALL] ROW ACCESS POLICY|POLICIES`](/bigquery/docs/reference/standard-sql/data-definition-language#drop_row_access_policy_statement) statement. * `ALTER_TABLE`: [`ALTER TABLE`](/bigquery/docs/reference/standard-sql/data-definition-language#alter_table_set_options_statement) statement. * `ALTER_VIEW`: [`ALTER VIEW`](/bigquery/docs/reference/standard-sql/data-definition-language#alter_view_set_options_statement) statement. * `ALTER_MATERIALIZED_VIEW`: [`ALTER MATERIALIZED VIEW`](/bigquery/docs/reference/standard-sql/data-definition-language#alter_materialized_view_set_options_statement) statement. * `ALTER_SCHEMA`: [`ALTER SCHEMA`](/bigquery/docs/reference/standard-sql/data-definition-language#aalter_schema_set_options_statement) statement. * `SCRIPT`: [`SCRIPT`](/bigquery/docs/reference/standard-sql/procedural-language). * `TRUNCATE_TABLE`: [`TRUNCATE TABLE`](/bigquery/docs/reference/standard-sql/dml-syntax#truncate_table_statement) statement. * `CREATE_EXTERNAL_TABLE`: [`CREATE EXTERNAL TABLE`](/bigquery/docs/reference/standard-sql/data-definition-language#create_external_table_statement) statement. * `EXPORT_DATA`: [`EXPORT DATA`](/bigquery/docs/reference/standard-sql/other-statements#export_data_statement) statement. * `EXPORT_MODEL`: [`EXPORT MODEL`](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-export-model) statement. * `LOAD_DATA`: [`LOAD DATA`](/bigquery/docs/reference/standard-sql/other-statements#load_data_statement) statement. * `CALL`: [`CALL`](/bigquery/docs/reference/standard-sql/procedural-language#call) statement.", + "readOnly": true, "type": "string" }, "timeline": { - "description": "[Output only] [Beta] Describes a timeline of job execution.", + "description": "Output only. Describes a timeline of job execution.", "items": { "$ref": "QueryTimelineSample" }, + "readOnly": true, "type": "array" }, "totalBytesBilled": { - "description": "[Output only] Total bytes billed for the job.", + "description": "Output only. If the project is configured to use on-demand pricing, then this field contains the total bytes billed for the job. If the project is configured to use flat-rate pricing, then you are not billed for bytes and this field is informational only.", "format": "int64", + "readOnly": true, "type": "string" }, "totalBytesProcessed": { - "description": "[Output only] Total bytes processed for the job.", + "description": "Output only. Total bytes processed for the job.", "format": "int64", + "readOnly": true, "type": "string" }, "totalBytesProcessedAccuracy": { - "description": "[Output only] For dry-run jobs, totalBytesProcessed is an estimate and this field specifies the accuracy of the estimate. Possible values can be: UNKNOWN: accuracy of the estimate is unknown. PRECISE: estimate is precise. LOWER_BOUND: estimate is lower bound of what the query would cost. UPPER_BOUND: estimate is upper bound of what the query would cost.", + "description": "Output only. For dry-run jobs, totalBytesProcessed is an estimate and this field specifies the accuracy of the estimate. Possible values can be: UNKNOWN: accuracy of the estimate is unknown. PRECISE: estimate is precise. LOWER_BOUND: estimate is lower bound of what the query would cost. UPPER_BOUND: estimate is upper bound of what the query would cost.", + "readOnly": true, "type": "string" }, "totalPartitionsProcessed": { - "description": "[Output only] Total number of partitions processed from all partitioned tables referenced in the job.", + "description": "Output only. Total number of partitions processed from all partitioned tables referenced in the job.", "format": "int64", + "readOnly": true, "type": "string" }, "totalSlotMs": { - "description": "[Output only] Slot-milliseconds for the job.", + "description": "Output only. Slot-milliseconds for the job.", "format": "int64", + "readOnly": true, "type": "string" }, "transferredBytes": { - "description": "[Output-only] Total bytes transferred for cross-cloud queries such as Cross Cloud Transfer and CREATE TABLE AS SELECT (CTAS).", + "description": "Output only. Total bytes transferred for cross-cloud queries such as Cross Cloud Transfer and CREATE TABLE AS SELECT (CTAS).", "format": "int64", + "readOnly": true, "type": "string" }, "undeclaredQueryParameters": { - "description": "Standard SQL only: list of undeclared query parameters detected during a dry run validation.", + "description": "Output only. GoogleSQL only: list of undeclared query parameters detected during a dry run validation.", "items": { "$ref": "QueryParameter" }, + "readOnly": true, "type": "array" + }, + "vectorSearchStatistics": { + "$ref": "VectorSearchStatistics", + "description": "Output only. Vector Search query specific statistics.", + "readOnly": true } }, "type": "object" }, "JobStatistics3": { + "description": "Statistics for a load job.", "id": "JobStatistics3", "properties": { "badRecords": { - "description": "[Output-only] The number of bad records encountered. Note that if the job has failed because of more bad records encountered than the maximum allowed in the load job configuration, then this number can be less than the total number of bad records present in the input data.", + "description": "Output only. The number of bad records encountered. Note that if the job has failed because of more bad records encountered than the maximum allowed in the load job configuration, then this number can be less than the total number of bad records present in the input data.", "format": "int64", + "readOnly": true, "type": "string" }, "inputFileBytes": { - "description": "[Output-only] Number of bytes of source data in a load job.", + "description": "Output only. Number of bytes of source data in a load job.", "format": "int64", + "readOnly": true, "type": "string" }, "inputFiles": { - "description": "[Output-only] Number of source files in a load job.", + "description": "Output only. Number of source files in a load job.", "format": "int64", + "readOnly": true, "type": "string" }, "outputBytes": { - "description": "[Output-only] Size of the loaded data in bytes. Note that while a load job is in the running state, this value may change.", + "description": "Output only. Size of the loaded data in bytes. Note that while a load job is in the running state, this value may change.", "format": "int64", + "readOnly": true, "type": "string" }, "outputRows": { - "description": "[Output-only] Number of rows imported in a load job. Note that while an import job is in the running state, this value may change.", + "description": "Output only. Number of rows imported in a load job. Note that while an import job is in the running state, this value may change.", "format": "int64", + "readOnly": true, "type": "string" + }, + "timeline": { + "description": "Output only. Describes a timeline of job execution.", + "items": { + "$ref": "QueryTimelineSample" + }, + "readOnly": true, + "type": "array" } }, "type": "object" }, "JobStatistics4": { + "description": "Statistics for an extract job.", "id": "JobStatistics4", "properties": { "destinationUriFileCounts": { - "description": "[Output-only] Number of files per destination URI or URI pattern specified in the extract configuration. These values will be in the same order as the URIs specified in the 'destinationUris' field.", + "description": "Output only. Number of files per destination URI or URI pattern specified in the extract configuration. These values will be in the same order as the URIs specified in the 'destinationUris' field.", "items": { "format": "int64", "type": "string" }, + "readOnly": true, "type": "array" }, "inputBytes": { - "description": "[Output-only] Number of user bytes extracted into the result. This is the byte count as computed by BigQuery for billing purposes.", + "description": "Output only. Number of user bytes extracted into the result. This is the byte count as computed by BigQuery for billing purposes and doesn't have any relationship with the number of actual result bytes extracted in the desired format.", "format": "int64", + "readOnly": true, "type": "string" + }, + "timeline": { + "description": "Output only. Describes a timeline of job execution.", + "items": { + "$ref": "QueryTimelineSample" + }, + "readOnly": true, + "type": "array" } }, "type": "object" }, "JobStatistics5": { + "description": "Statistics for a copy job.", "id": "JobStatistics5", "properties": { "copiedLogicalBytes": { - "description": "[Output-only] Number of logical bytes copied to the destination table.", + "description": "Output only. Number of logical bytes copied to the destination table.", "format": "int64", + "readOnly": true, "type": "string" }, "copiedRows": { - "description": "[Output-only] Number of rows copied to the destination table.", + "description": "Output only. Number of rows copied to the destination table.", "format": "int64", + "readOnly": true, "type": "string" } }, @@ -4977,17 +5735,20 @@ "properties": { "errorResult": { "$ref": "ErrorProto", - "description": "[Output-only] Final error result of the job. If present, indicates that the job has completed and was unsuccessful." + "description": "Output only. Final error result of the job. If present, indicates that the job has completed and was unsuccessful.", + "readOnly": true }, "errors": { - "description": "[Output-only] The first errors encountered during the running of the job. The final message includes the number of errors that caused the process to stop. Errors here do not necessarily mean that the job has completed or was unsuccessful.", + "description": "Output only. The first errors encountered during the running of the job. The final message includes the number of errors that caused the process to stop. Errors here do not necessarily mean that the job has not completed or was unsuccessful.", "items": { "$ref": "ErrorProto" }, + "readOnly": true, "type": "array" }, "state": { - "description": "[Output-only] Running state of the job.", + "description": "Output only. Running state of the job. Valid states include 'PENDING', 'RUNNING', and 'DONE'.", + "readOnly": true, "type": "string" } }, @@ -5002,10 +5763,11 @@ "type": "object" }, "JsonOptions": { + "description": "Json Options for load and make external tables.", "id": "JsonOptions", "properties": { "encoding": { - "description": "[Optional] The character encoding of the data. The supported values are UTF-8, UTF-16BE, UTF-16LE, UTF-32BE, and UTF-32LE. The default value is UTF-8.", + "description": "Optional. The character encoding of the data. The supported values are UTF-8, UTF-16BE, UTF-16LE, UTF-32BE, and UTF-32LE. The default value is UTF-8.", "type": "string" } }, @@ -5015,6 +5777,17 @@ "id": "JsonValue", "type": "any" }, + "LinkedDatasetSource": { + "description": "A dataset source type which refers to another BigQuery dataset.", + "id": "LinkedDatasetSource", + "properties": { + "sourceDataset": { + "$ref": "DatasetReference", + "description": "The source dataset reference contains project numbers and not project ids." + } + }, + "type": "object" + }, "ListModelsResponse": { "description": "Response format for a single page when listing BigQuery ML models.", "id": "ListModelsResponse", @@ -5069,6 +5842,50 @@ }, "type": "object" }, + "LoadQueryStatistics": { + "description": "Statistics for a LOAD query.", + "id": "LoadQueryStatistics", + "properties": { + "badRecords": { + "description": "Output only. The number of bad records encountered while processing a LOAD query. Note that if the job has failed because of more bad records encountered than the maximum allowed in the load job configuration, then this number can be less than the total number of bad records present in the input data.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "bytesTransferred": { + "deprecated": true, + "description": "Output only. This field is deprecated. The number of bytes of source data copied over the network for a `LOAD` query. `transferred_bytes` has the canonical value for physical transferred bytes, which is used for BigQuery Omni billing.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "inputFileBytes": { + "description": "Output only. Number of bytes of source data in a LOAD query.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "inputFiles": { + "description": "Output only. Number of source files in a LOAD query.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "outputBytes": { + "description": "Output only. Size of the loaded data in bytes. Note that while a LOAD query is in the running state, this value may change.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "outputRows": { + "description": "Output only. Number of rows imported in a LOAD query. Note that while a LOAD query is in the running state, this value may change.", + "format": "int64", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "LocationMetadata": { "description": "BigQuery-specific metadata about a location. This will be set on google.cloud.location.Location.metadata in Cloud Location API responses.", "id": "LocationMetadata", @@ -5080,20 +5897,74 @@ }, "type": "object" }, + "MaterializedView": { + "description": "A materialized view considered for a query job.", + "id": "MaterializedView", + "properties": { + "chosen": { + "description": "Whether the materialized view is chosen for the query. A materialized view can be chosen to rewrite multiple parts of the same query. If a materialized view is chosen to rewrite any part of the query, then this field is true, even if the materialized view was not chosen to rewrite others parts.", + "type": "boolean" + }, + "estimatedBytesSaved": { + "description": "If present, specifies a best-effort estimation of the bytes saved by using the materialized view rather than its base tables.", + "format": "int64", + "type": "string" + }, + "rejectedReason": { + "description": "If present, specifies the reason why the materialized view was not chosen for the query.", + "enum": [ + "REJECTED_REASON_UNSPECIFIED", + "NO_DATA", + "COST", + "BASE_TABLE_TRUNCATED", + "BASE_TABLE_DATA_CHANGE", + "BASE_TABLE_PARTITION_EXPIRATION_CHANGE", + "BASE_TABLE_EXPIRED_PARTITION", + "BASE_TABLE_INCOMPATIBLE_METADATA_CHANGE", + "TIME_ZONE", + "OUT_OF_TIME_TRAVEL_WINDOW", + "BASE_TABLE_FINE_GRAINED_SECURITY_POLICY", + "BASE_TABLE_TOO_STALE" + ], + "enumDescriptions": [ + "Default unspecified value.", + "View has no cached data because it has not refreshed yet.", + "The estimated cost of the view is more expensive than another view or the base table. Note: The estimate cost might not match the billed cost.", + "View has no cached data because a base table is truncated.", + "View is invalidated because of a data change in one or more base tables. It could be any recent change if the [`max_staleness`](https://cloud.google.com/bigquery/docs/materialized-views-create#max_staleness) option is not set for the view, or otherwise any change outside of the staleness window.", + "View is invalidated because a base table's partition expiration has changed.", + "View is invalidated because a base table's partition has expired.", + "View is invalidated because a base table has an incompatible metadata change.", + "View is invalidated because it was refreshed with a time zone other than that of the current job.", + "View is outside the time travel window.", + "View is inaccessible to the user because of a fine-grained security policy on one of its base tables.", + "One of the view's base tables is too stale. For example, the cached metadata of a biglake table needs to be updated." + ], + "type": "string" + }, + "tableReference": { + "$ref": "TableReference", + "description": "The candidate materialized view." + } + }, + "type": "object" + }, "MaterializedViewDefinition": { + "description": "Definition and configuration of a materialized view.", "id": "MaterializedViewDefinition", "properties": { "allowNonIncrementalDefinition": { - "description": "[Optional] Allow non incremental materialized view definition. The default value is \"false\".", + "description": "Optional. This option declares authors intention to construct a materialized view that will not be refreshed incrementally.", "type": "boolean" }, "enableRefresh": { - "description": "[Optional] [TrustedTester] Enable automatic refresh of the materialized view when the base table is updated. The default value is \"true\".", + "description": "Optional. Enable automatic refresh of the materialized view when the base table is updated. The default value is \"true\".", "type": "boolean" }, "lastRefreshTime": { - "description": "[Output-only] [TrustedTester] The time when this materialized view was last modified, in milliseconds since the epoch.", + "description": "Output only. The time when this materialized view was last refreshed, in milliseconds since the epoch.", "format": "int64", + "readOnly": true, "type": "string" }, "maxStaleness": { @@ -5102,30 +5973,158 @@ "type": "string" }, "query": { - "description": "[Required] A query whose result is persisted.", + "description": "Required. A query whose results are persisted.", "type": "string" }, "refreshIntervalMs": { - "description": "[Optional] [TrustedTester] The maximum frequency at which this materialized view will be refreshed. The default value is \"1800000\" (30 minutes).", + "description": "Optional. The maximum frequency at which this materialized view will be refreshed. The default value is \"1800000\" (30 minutes).", "format": "int64", "type": "string" } }, "type": "object" }, + "MaterializedViewStatistics": { + "description": "Statistics of materialized views considered in a query job.", + "id": "MaterializedViewStatistics", + "properties": { + "materializedView": { + "description": "Materialized views considered for the query job. Only certain materialized views are used. For a detailed list, see the child message. If many materialized views are considered, then the list might be incomplete.", + "items": { + "$ref": "MaterializedView" + }, + "type": "array" + } + }, + "type": "object" + }, + "MaterializedViewStatus": { + "description": "Status of a materialized view. The last refresh timestamp status is omitted here, but is present in the MaterializedViewDefinition message.", + "id": "MaterializedViewStatus", + "properties": { + "lastRefreshStatus": { + "$ref": "ErrorProto", + "description": "Output only. Error result of the last automatic refresh. If present, indicates that the last automatic refresh was unsuccessful.", + "readOnly": true + }, + "refreshWatermark": { + "description": "Output only. Refresh watermark of materialized view. The base tables' data were collected into the materialized view cache until this time.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "MetadataCacheStatistics": { + "description": "Statistics for metadata caching in BigLake tables.", + "id": "MetadataCacheStatistics", + "properties": { + "tableMetadataCacheUsage": { + "description": "Set for the Metadata caching eligible tables referenced in the query.", + "items": { + "$ref": "TableMetadataCacheUsage" + }, + "type": "array" + } + }, + "type": "object" + }, "MlStatistics": { + "description": "Job statistics specific to a BigQuery ML training job.", "id": "MlStatistics", "properties": { + "hparamTrials": { + "description": "Output only. Trials of a [hyperparameter tuning job](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) sorted by trial_id.", + "items": { + "$ref": "HparamTuningTrial" + }, + "readOnly": true, + "type": "array" + }, "iterationResults": { - "description": "Results for all completed iterations.", + "description": "Results for all completed iterations. Empty for [hyperparameter tuning jobs](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview).", "items": { "$ref": "IterationResult" }, "type": "array" }, "maxIterations": { - "description": "Maximum number of iterations specified as max_iterations in the 'CREATE MODEL' query. The actual number of iterations may be less than this number due to early stop.", + "description": "Output only. Maximum number of iterations specified as max_iterations in the 'CREATE MODEL' query. The actual number of iterations may be less than this number due to early stop.", "format": "int64", + "readOnly": true, + "type": "string" + }, + "modelType": { + "description": "Output only. The type of the model that is being trained.", + "enum": [ + "MODEL_TYPE_UNSPECIFIED", + "LINEAR_REGRESSION", + "LOGISTIC_REGRESSION", + "KMEANS", + "MATRIX_FACTORIZATION", + "DNN_CLASSIFIER", + "TENSORFLOW", + "DNN_REGRESSOR", + "XGBOOST", + "BOOSTED_TREE_REGRESSOR", + "BOOSTED_TREE_CLASSIFIER", + "ARIMA", + "AUTOML_REGRESSOR", + "AUTOML_CLASSIFIER", + "PCA", + "DNN_LINEAR_COMBINED_CLASSIFIER", + "DNN_LINEAR_COMBINED_REGRESSOR", + "AUTOENCODER", + "ARIMA_PLUS", + "ARIMA_PLUS_XREG", + "RANDOM_FOREST_REGRESSOR", + "RANDOM_FOREST_CLASSIFIER", + "TENSORFLOW_LITE", + "ONNX" + ], + "enumDescriptions": [ + "Default value.", + "Linear regression model.", + "Logistic regression based classification model.", + "K-means clustering model.", + "Matrix factorization model.", + "DNN classifier model.", + "An imported TensorFlow model.", + "DNN regressor model.", + "An imported XGBoost model.", + "Boosted tree regressor model.", + "Boosted tree classifier model.", + "ARIMA model.", + "AutoML Tables regression model.", + "AutoML Tables classification model.", + "Prinpical Component Analysis model.", + "Wide-and-deep classifier model.", + "Wide-and-deep regressor model.", + "Autoencoder model.", + "New name for the ARIMA model.", + "ARIMA with external regressors.", + "Random forest regressor model.", + "Random forest classifier model.", + "An imported TensorFlow Lite model.", + "An imported ONNX model." + ], + "readOnly": true, + "type": "string" + }, + "trainingType": { + "description": "Output only. Training type of the job.", + "enum": [ + "TRAINING_TYPE_UNSPECIFIED", + "SINGLE_TRAINING", + "HPARAM_TUNING" + ], + "enumDescriptions": [ + "Unspecified training type.", + "Single training with fixed parameter space.", + "[Hyperparameter tuning training](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview)." + ], + "readOnly": true, "type": "string" } }, @@ -5318,7 +6317,7 @@ "id": "ModelDefinition", "properties": { "modelOptions": { - "description": "[Output-only, Beta] Model options used for the first training run. These options are immutable for subsequent training runs. Default values are used for any options not specified in the input query.", + "description": "Deprecated.", "properties": { "labels": { "items": { @@ -5336,7 +6335,7 @@ "type": "object" }, "trainingRuns": { - "description": "[Output-only, Beta] Information about ml training runs, each training run comprises of multiple iterations and there may be multiple training runs for the model if warm start is used or if a user decides to continue a previously cancelled query.", + "description": "Deprecated.", "items": { "$ref": "BqmlTrainingRun" }, @@ -5345,7 +6344,20 @@ }, "type": "object" }, + "ModelExtractOptions": { + "description": "Options related to model extraction.", + "id": "ModelExtractOptions", + "properties": { + "trialId": { + "description": "The 1-based ID of the trial to be exported from a hyperparameter tuning model. If not specified, the trial with id = [Model](/bigquery/docs/reference/rest/v2/models#resource:-model).defaultTrialId is exported. This field is ignored for models not trained with hyperparameter tuning.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "ModelReference": { + "description": "Id path of a model.", "id": "ModelReference", "properties": { "datasetId": { @@ -5382,19 +6394,49 @@ "type": "object" }, "ParquetOptions": { + "description": "Parquet Options for load and make external tables.", "id": "ParquetOptions", "properties": { "enableListInference": { - "description": "[Optional] Indicates whether to use schema inference specifically for Parquet LIST logical type.", + "description": "Optional. Indicates whether to use schema inference specifically for Parquet LIST logical type.", "type": "boolean" }, "enumAsString": { - "description": "[Optional] Indicates whether to infer Parquet ENUM logical type as STRING instead of BYTES by default.", + "description": "Optional. Indicates whether to infer Parquet ENUM logical type as STRING instead of BYTES by default.", "type": "boolean" } }, "type": "object" }, + "PerformanceInsights": { + "description": "Performance insights for the job.", + "id": "PerformanceInsights", + "properties": { + "avgPreviousExecutionMs": { + "description": "Output only. Average execution ms of previous runs. Indicates the job ran slow compared to previous executions. To find previous executions, use INFORMATION_SCHEMA tables and filter jobs with same query hash.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "stagePerformanceChangeInsights": { + "description": "Output only. Query stage performance insights compared to previous runs, for diagnosing performance regression.", + "items": { + "$ref": "StagePerformanceChangeInsight" + }, + "readOnly": true, + "type": "array" + }, + "stagePerformanceStandaloneInsights": { + "description": "Output only. Standalone query stage performance insights, for exploring potential improvements.", + "items": { + "$ref": "StagePerformanceStandaloneInsight" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, "Policy": { "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", "id": "Policy", @@ -5465,27 +6507,29 @@ "type": "object" }, "ProjectList": { + "description": "Response object of ListProjects", "id": "ProjectList", "properties": { "etag": { - "description": "A hash of the page of results", + "description": "A hash of the page of results.", "type": "string" }, "kind": { "default": "bigquery#projectList", - "description": "The type of list.", + "description": "The resource type of the response.", "type": "string" }, "nextPageToken": { - "description": "A token to request the next page of results.", + "description": "Use this token to request the next page of results.", "type": "string" }, "projects": { - "description": "Projects to which you have at least READ access.", + "description": "Projects to which the user has at least READ access.", "items": { + "description": "Information about a single project.", "properties": { "friendlyName": { - "description": "A descriptive name for this project.", + "description": "A descriptive name for this project. A wrapper is used here because friendlyName can be set to the empty string.", "type": "string" }, "id": { @@ -5493,7 +6537,6 @@ "type": "string" }, "kind": { - "default": "bigquery#project", "description": "The resource type.", "type": "string" }, @@ -5512,63 +6555,87 @@ "type": "array" }, "totalItems": { - "description": "The total number of projects in the list.", + "description": "The total number of projects in the page. A wrapper is used here because the field should still be in the response when the value is 0.", "format": "int32", "type": "integer" } }, "type": "object" }, - "ProjectReference": { - "id": "ProjectReference", + "ProjectReference": { + "description": "A unique reference to a project.", + "id": "ProjectReference", + "properties": { + "projectId": { + "description": "Required. ID of the project. Can be either the numeric ID or the assigned ID of the project.", + "type": "string" + } + }, + "type": "object" + }, + "QueryInfo": { + "description": "Query optimization information for a QUERY job.", + "id": "QueryInfo", "properties": { - "projectId": { - "description": "[Required] ID of the project. Can be either the numeric ID or the assigned ID of the project.", - "type": "string" + "optimizationDetails": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Output only. Information about query optimizations.", + "readOnly": true, + "type": "object" } }, "type": "object" }, "QueryParameter": { + "description": "A parameter given to a query.", "id": "QueryParameter", "properties": { "name": { - "description": "[Optional] If unset, this is a positional parameter. Otherwise, should be unique within a query.", + "description": "Optional. If unset, this is a positional parameter. Otherwise, should be unique within a query.", "type": "string" }, "parameterType": { "$ref": "QueryParameterType", - "description": "[Required] The type of this parameter." + "description": "Required. The type of this parameter." }, "parameterValue": { "$ref": "QueryParameterValue", - "description": "[Required] The value of this parameter." + "description": "Required. The value of this parameter." } }, "type": "object" }, "QueryParameterType": { + "description": "The type of a query parameter.", "id": "QueryParameterType", "properties": { "arrayType": { "$ref": "QueryParameterType", - "description": "[Optional] The type of the array's elements, if this is an array." + "description": "Optional. The type of the array's elements, if this is an array." + }, + "rangeElementType": { + "$ref": "QueryParameterType", + "description": "Optional. The element type of the range, if this is a range." }, "structTypes": { - "description": "[Optional] The types of the fields of this struct, in order, if this is a struct.", + "description": "Optional. The types of the fields of this struct, in order, if this is a struct.", "items": { + "description": "The type of a struct parameter.", "properties": { "description": { - "description": "[Optional] Human-oriented description of the field.", + "description": "Optional. Human-oriented description of the field.", "type": "string" }, "name": { - "description": "[Optional] The name of this field.", + "description": "Optional. The name of this field.", "type": "string" }, "type": { "$ref": "QueryParameterType", - "description": "[Required] The type of this field." + "description": "Required. The type of this field." } }, "type": "object" @@ -5576,41 +6643,47 @@ "type": "array" }, "type": { - "description": "[Required] The top level type of this field.", + "description": "Required. The top level type of this field.", "type": "string" } }, "type": "object" }, "QueryParameterValue": { + "description": "The value of a query parameter.", "id": "QueryParameterValue", "properties": { "arrayValues": { - "description": "[Optional] The array values, if this is an array type.", + "description": "Optional. The array values, if this is an array type.", "items": { "$ref": "QueryParameterValue" }, "type": "array" }, + "rangeValue": { + "$ref": "RangeValue", + "description": "Optional. The range value, if this is a range type." + }, "structValues": { "additionalProperties": { "$ref": "QueryParameterValue" }, - "description": "[Optional] The struct field values, in order of the struct type's declaration.", + "description": "The struct field values.", "type": "object" }, "value": { - "description": "[Optional] The value of this value, if a simple scalar type.", + "description": "Optional. The value of this value, if a simple scalar type.", "type": "string" } }, "type": "object" }, "QueryRequest": { + "description": "Describes the format of the jobs.query request.", "id": "QueryRequest", "properties": { "connectionProperties": { - "description": "Connection properties.", + "description": "Optional. Connection properties which can modify the query behavior.", "items": { "$ref": "ConnectionProperty" }, @@ -5621,19 +6694,33 @@ "type": "boolean" }, "createSession": { - "description": "If true, creates a new session, where session id will be a server generated random id. If false, runs query with an existing session_id passed in ConnectionProperty, otherwise runs query in non-session mode.", + "description": "Optional. If true, creates a new session using a randomly generated session_id. If false, runs query with an existing session_id passed in ConnectionProperty, otherwise runs query in non-session mode. The session location will be set to QueryRequest.location if it is present, otherwise it's set to the default location based on existing routing logic.", "type": "boolean" }, "defaultDataset": { "$ref": "DatasetReference", - "description": "[Optional] Specifies the default datasetId and projectId to assume for any unqualified table names in the query. If not set, all table names in the query string must be qualified in the format 'datasetId.tableId'." + "description": "Optional. Specifies the default datasetId and projectId to assume for any unqualified table names in the query. If not set, all table names in the query string must be qualified in the format 'datasetId.tableId'." }, "dryRun": { - "description": "[Optional] If set to true, BigQuery doesn't run the job. Instead, if the query is valid, BigQuery returns statistics about the job such as how many bytes would be processed. If the query is invalid, an error returns. The default value is false.", + "description": "Optional. If set to true, BigQuery doesn't run the job. Instead, if the query is valid, BigQuery returns statistics about the job such as how many bytes would be processed. If the query is invalid, an error returns. The default value is false.", "type": "boolean" }, + "formatOptions": { + "$ref": "DataFormatOptions", + "description": "Optional. Output format adjustments." + }, "jobCreationMode": { "description": "Optional. If not set, jobs are always required. If set, the query request will follow the behavior described JobCreationMode. This feature is not yet available. Jobs will always be created.", + "enum": [ + "JOB_CREATION_MODE_UNSPECIFIED", + "JOB_CREATION_REQUIRED", + "JOB_CREATION_OPTIONAL" + ], + "enumDescriptions": [ + "If unspecified JOB_CREATION_REQUIRED is the default.", + "Default. Job creation is always required.", + "Job creation is optional. Returning immediate results is prioritized. BigQuery will automatically determine if a Job needs to be created. The conditions under which BigQuery can decide to not create a Job are subject to change. If Job creation is required, JOB_CREATION_REQUIRED mode should be used, which is the default." + ], "type": "string" }, "kind": { @@ -5645,7 +6732,7 @@ "additionalProperties": { "type": "string" }, - "description": "The labels associated with this job. You can use these to organize and group your jobs. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter and each label in the list must have a different key.", + "description": "Optional. The labels associated with this query. Labels can be used to organize and group query jobs. Label keys and values can be no longer than 63 characters, can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed. Label keys must start with a letter and each label in the list must have a different key.", "type": "object" }, "location": { @@ -5653,56 +6740,52 @@ "type": "string" }, "maxResults": { - "description": "[Optional] The maximum number of rows of data to return per page of results. Setting this flag to a small value such as 1000 and then paging through results might improve reliability when the query result set is large. In addition to this limit, responses are also limited to 10 MB. By default, there is no maximum row count, and only the byte limit applies.", + "description": "Optional. The maximum number of rows of data to return per page of results. Setting this flag to a small value such as 1000 and then paging through results might improve reliability when the query result set is large. In addition to this limit, responses are also limited to 10 MB. By default, there is no maximum row count, and only the byte limit applies.", "format": "uint32", "type": "integer" }, "maximumBytesBilled": { - "description": "[Optional] Limits the bytes billed for this job. Queries that will have bytes billed beyond this limit will fail (without incurring a charge). If unspecified, this will be set to your project default.", + "description": "Optional. Limits the bytes billed for this query. Queries with bytes billed above this limit will fail (without incurring a charge). If unspecified, the project default is used.", "format": "int64", "type": "string" }, "parameterMode": { - "description": "Standard SQL only. Set to POSITIONAL to use positional (?) query parameters or to NAMED to use named (@myparam) query parameters in this query.", + "description": "GoogleSQL only. Set to POSITIONAL to use positional (?) query parameters or to NAMED to use named (@myparam) query parameters in this query.", "type": "string" }, "preserveNulls": { - "description": "[Deprecated] This property is deprecated.", + "deprecated": true, + "description": "This property is deprecated.", "type": "boolean" }, "query": { - "annotations": { - "required": [ - "bigquery.jobs.query" - ] - }, - "description": "[Required] A query string, following the BigQuery query syntax, of the query to execute. Example: \"SELECT count(f1) FROM [myProjectId:myDatasetId.myTableId]\".", + "description": "Required. A query string to execute, using Google Standard SQL or legacy SQL syntax. Example: \"SELECT COUNT(f1) FROM myProjectId.myDatasetId.myTableId\".", "type": "string" }, "queryParameters": { - "description": "Query parameters for Standard SQL queries.", + "description": "Query parameters for GoogleSQL queries.", "items": { "$ref": "QueryParameter" }, "type": "array" }, "requestId": { - "description": "A unique user provided identifier to ensure idempotent behavior for queries. Note that this is different from the job_id. It has the following properties: 1. It is case-sensitive, limited to up to 36 ASCII characters. A UUID is recommended. 2. Read only queries can ignore this token since they are nullipotent by definition. 3. For the purposes of idempotency ensured by the request_id, a request is considered duplicate of another only if they have the same request_id and are actually duplicates. When determining whether a request is a duplicate of the previous request, all parameters in the request that may affect the behavior are considered. For example, query, connection_properties, query_parameters, use_legacy_sql are parameters that affect the result and are considered when determining whether a request is a duplicate, but properties like timeout_ms don't affect the result and are thus not considered. Dry run query requests are never considered duplicate of another request. 4. When a duplicate mutating query request is detected, it returns: a. the results of the mutation if it completes successfully within the timeout. b. the running operation if it is still in progress at the end of the timeout. 5. Its lifetime is limited to 15 minutes. In other words, if two requests are sent with the same request_id, but more than 15 minutes apart, idempotency is not guaranteed.", + "description": "Optional. A unique user provided identifier to ensure idempotent behavior for queries. Note that this is different from the job_id. It has the following properties: 1. It is case-sensitive, limited to up to 36 ASCII characters. A UUID is recommended. 2. Read only queries can ignore this token since they are nullipotent by definition. 3. For the purposes of idempotency ensured by the request_id, a request is considered duplicate of another only if they have the same request_id and are actually duplicates. When determining whether a request is a duplicate of another request, all parameters in the request that may affect the result are considered. For example, query, connection_properties, query_parameters, use_legacy_sql are parameters that affect the result and are considered when determining whether a request is a duplicate, but properties like timeout_ms don't affect the result and are thus not considered. Dry run query requests are never considered duplicate of another request. 4. When a duplicate mutating query request is detected, it returns: a. the results of the mutation if it completes successfully within the timeout. b. the running operation if it is still in progress at the end of the timeout. 5. Its lifetime is limited to 15 minutes. In other words, if two requests are sent with the same request_id, but more than 15 minutes apart, idempotency is not guaranteed.", "type": "string" }, "timeoutMs": { - "description": "[Optional] How long to wait for the query to complete, in milliseconds, before the request times out and returns. Note that this is only a timeout for the request, not the query. If the query takes longer to run than the timeout value, the call returns without any results and with the 'jobComplete' flag set to false. You can call GetQueryResults() to wait for the query to complete and read the results. The default value is 10000 milliseconds (10 seconds).", + "description": "Optional. Optional: Specifies the maximum amount of time, in milliseconds, that the client is willing to wait for the query to complete. By default, this limit is 10 seconds (10,000 milliseconds). If the query is complete, the jobComplete field in the response is true. If the query has not yet completed, jobComplete is false. You can request a longer timeout period in the timeoutMs field. However, the call is not guaranteed to wait for the specified timeout; it typically returns after around 200 seconds (200,000 milliseconds), even if the query is not complete. If jobComplete is false, you can continue to wait for the query to complete by calling the getQueryResults method until the jobComplete field in the getQueryResults response is true.", "format": "uint32", "type": "integer" }, "useLegacySql": { "default": "true", - "description": "Specifies whether to use BigQuery's legacy SQL dialect for this query. The default value is true. If set to false, the query will use BigQuery's standard SQL: https://cloud.google.com/bigquery/sql-reference/ When useLegacySql is set to false, the value of flattenResults is ignored; query will be run as if flattenResults is false.", + "description": "Specifies whether to use BigQuery's legacy SQL dialect for this query. The default value is true. If set to false, the query will use BigQuery's GoogleSQL: https://cloud.google.com/bigquery/sql-reference/ When useLegacySql is set to false, the value of flattenResults is ignored; query will be run as if flattenResults is false.", "type": "boolean" }, "useQueryCache": { "default": "true", - "description": "[Optional] Whether to look for the result in the query cache. The query cache is a best-effort cache that will be flushed whenever tables in the query are modified. The default value is true.", + "description": "Optional. Whether to look for the result in the query cache. The query cache is a best-effort cache that will be flushed whenever tables in the query are modified. The default value is true.", "type": "boolean" } }, @@ -5717,13 +6800,15 @@ }, "dmlStats": { "$ref": "DmlStatistics", - "description": "[Output-only] Detailed statistics for DML statements Present only for DML statements INSERT, UPDATE, DELETE or TRUNCATE." + "description": "Output only. Detailed statistics for DML statements INSERT, UPDATE, DELETE, MERGE or TRUNCATE.", + "readOnly": true }, "errors": { - "description": "[Output-only] The first errors or warnings encountered during the running of the job. The final message includes the number of errors that caused the process to stop. Errors here do not necessarily mean that the job has completed or was unsuccessful.", + "description": "Output only. The first errors or warnings encountered during the running of the job. The final message includes the number of errors that caused the process to stop. Errors here do not necessarily mean that the job has completed or was unsuccessful. For more information about error messages, see [Error messages](https://cloud.google.com/bigquery/docs/error-messages).", "items": { "$ref": "ErrorProto" }, + "readOnly": true, "type": "array" }, "jobComplete": { @@ -5731,8 +6816,8 @@ "type": "boolean" }, "jobCreationReason": { - "description": "Optional. Only relevant when a job_reference is present in the response. If job_reference is not present it will always be unset. When job_reference is present, this field should be interpreted as follows: If set, it will provide the reason of why a Job was created. If not set, it should be treated as the default: REQUESTED. This feature is not yet available. Jobs will always be created.", - "type": "any" + "$ref": "JobCreationReason", + "description": "Optional. Only relevant when a job_reference is present in the response. If job_reference is not present it will always be unset. When job_reference is present, this field should be interpreted as follows: If set, it will provide the reason of why a Job was created. If not set, it should be treated as the default: REQUESTED. This feature is not yet available. Jobs will always be created." }, "jobReference": { "$ref": "JobReference", @@ -5744,12 +6829,13 @@ "type": "string" }, "numDmlAffectedRows": { - "description": "[Output-only] The number of rows affected by a DML statement. Present only for DML statements INSERT, UPDATE or DELETE.", + "description": "Output only. The number of rows affected by a DML statement. Present only for DML statements INSERT, UPDATE or DELETE.", "format": "int64", + "readOnly": true, "type": "string" }, "pageToken": { - "description": "A token used for paging results.", + "description": "A token used for paging results. A non-empty token indicates that additional results are available. To see additional results, query the [`jobs.getQueryResults`](https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/getQueryResults) method. For more information, see [Paging through table data](https://cloud.google.com/bigquery/docs/paging-results).", "type": "string" }, "queryId": { @@ -5769,7 +6855,8 @@ }, "sessionInfo": { "$ref": "SessionInfo", - "description": "[Output-only] [Preview] Information of the session if this job is part of one." + "description": "Output only. Information of the session if this job is part of one.", + "readOnly": true }, "totalBytesProcessed": { "description": "The total number of bytes processed for this query. If this query was a dry run, this is the number of bytes that would be processed if the query were run.", @@ -5785,10 +6872,11 @@ "type": "object" }, "QueryTimelineSample": { + "description": "Summary of the state of query execution at a given time.", "id": "QueryTimelineSample", "properties": { "activeUnits": { - "description": "Total number of units currently being processed by workers. This does not correspond directly to slot usage. This is the largest value observed since the last sample.", + "description": "Total number of active workers. This does not correspond directly to slot usage. This is the largest value observed since the last sample.", "format": "int64", "type": "string" }, @@ -5803,7 +6891,7 @@ "type": "string" }, "estimatedRunnableUnits": { - "description": "Units of work that can be scheduled immediately. Providing additional slots for these units of work will speed up the query, provided no other query in the reservation needs additional slots.", + "description": "Units of work that can be scheduled immediately. Providing additional slots for these units of work will accelerate the query, if no other query in the reservation needs additional slots.", "format": "int64", "type": "string" }, @@ -5824,24 +6912,24 @@ "id": "RangePartitioning", "properties": { "field": { - "description": "[TrustedTester] [Required] The table is partitioned by this field. The field must be a top-level NULLABLE/REQUIRED field. The only supported type is INTEGER/INT64.", + "description": "Required. [Experimental] The table is partitioned by this field. The field must be a top-level NULLABLE/REQUIRED field. The only supported type is INTEGER/INT64.", "type": "string" }, "range": { - "description": "[TrustedTester] [Required] Defines the ranges for range partitioning.", + "description": "[Experimental] Defines the ranges for range partitioning.", "properties": { "end": { - "description": "[TrustedTester] [Required] The end of range partitioning, exclusive.", + "description": "[Experimental] The end of range partitioning, exclusive.", "format": "int64", "type": "string" }, "interval": { - "description": "[TrustedTester] [Required] The width of each interval.", + "description": "[Experimental] The width of each interval.", "format": "int64", "type": "string" }, "start": { - "description": "[TrustedTester] [Required] The start of range partitioning, inclusive.", + "description": "[Experimental] The start of range partitioning, inclusive.", "format": "int64", "type": "string" } @@ -5851,6 +6939,21 @@ }, "type": "object" }, + "RangeValue": { + "description": "Represents the value of a range.", + "id": "RangeValue", + "properties": { + "end": { + "$ref": "QueryParameterValue", + "description": "Optional. The end value of the range. A missing value represents an unbounded end." + }, + "start": { + "$ref": "QueryParameterValue", + "description": "Optional. The start value of the range. A missing value represents an unbounded start." + } + }, + "type": "object" + }, "RankingMetrics": { "description": "Evaluation metrics used by weighted-ALS models specified by feedback_type=implicit.", "id": "RankingMetrics", @@ -5968,16 +7071,23 @@ "REMOTE_SERVICE_TYPE_UNSPECIFIED", "CLOUD_AI_TRANSLATE_V3", "CLOUD_AI_VISION_V1", - "CLOUD_AI_NATURAL_LANGUAGE_V1" + "CLOUD_AI_NATURAL_LANGUAGE_V1", + "CLOUD_AI_SPEECH_TO_TEXT_V2" ], "enumDescriptions": [ "Unspecified remote service type.", "V3 Cloud AI Translation API. See more details at [Cloud Translation API] (https://cloud.google.com/translate/docs/reference/rest).", "V1 Cloud AI Vision API See more details at [Cloud Vision API] (https://cloud.google.com/vision/docs/reference/rest).", - "V1 Cloud AI Natural Language API. See more details at [REST Resource: documents](https://cloud.google.com/natural-language/docs/reference/rest/v1/documents)." + "V1 Cloud AI Natural Language API. See more details at [REST Resource: documents](https://cloud.google.com/natural-language/docs/reference/rest/v1/documents).", + "V2 Speech-to-Text API. See more details at [Google Cloud Speech-to-Text V2 API](https://cloud.google.com/speech-to-text/v2/docs)" ], "readOnly": true, "type": "string" + }, + "speechRecognizer": { + "description": "Output only. The name of the speech recognizer to use for speech recognition. The expected format is `projects/{project}/locations/{location}/recognizers/{recognizer}`. Customers can specify this field at model creation. If not specified, a default recognizer `projects/{model project}/locations/global/recognizers/_` will be used. See more details at [recognizers](https://cloud.google.com/speech-to-text/v2/docs/reference/rest/v2/projects.locations.recognizers)", + "readOnly": true, + "type": "string" } }, "type": "object" @@ -6124,13 +7234,14 @@ "description": "Optional. Spark specific options." }, "strictMode": { - "description": "Optional. Can be set for procedures only. If true (default), the definition body will be validated in the creation and the updates of the procedure. For procedures with an argument of ANY TYPE, the definition body validtion is not supported at creation/update time, and thus this field must be set to false explicitly.", + "description": "Optional. Use this option to catch many common errors. Error checking is not exhaustive, and successfully creating a procedure doesn't guarantee that the procedure will successfully execute at runtime. If `strictMode` is set to `TRUE`, the procedure body is further checked for errors such as non-existent tables or columns. The `CREATE PROCEDURE` statement fails if the body fails any of these checks. If `strictMode` is set to `FALSE`, the procedure body is checked only for syntax. For procedures that invoke themselves recursively, specify `strictMode=FALSE` to avoid non-existent procedure errors during validation. Default value is `TRUE`.", "type": "boolean" } }, "type": "object" }, "RoutineReference": { + "description": "Id path of a routine.", "id": "RoutineReference", "properties": { "datasetId": { @@ -6199,6 +7310,7 @@ "type": "object" }, "RowAccessPolicyReference": { + "description": "Id path of a row access policy.", "id": "RowAccessPolicyReference", "properties": { "datasetId": { @@ -6221,54 +7333,104 @@ "type": "object" }, "RowLevelSecurityStatistics": { + "description": "Statistics for row-level security.", "id": "RowLevelSecurityStatistics", "properties": { "rowLevelSecurityApplied": { - "description": "[Output-only] [Preview] Whether any accessed data was protected by row access policies.", + "description": "Whether any accessed data was protected by row access policies.", "type": "boolean" } }, "type": "object" }, + "ScriptOptions": { + "description": "Options related to script execution.", + "id": "ScriptOptions", + "properties": { + "keyResultStatement": { + "description": "Determines which statement in the script represents the \"key result\", used to populate the schema and query results of the script job. Default is LAST.", + "enum": [ + "KEY_RESULT_STATEMENT_KIND_UNSPECIFIED", + "LAST", + "FIRST_SELECT" + ], + "enumDescriptions": [ + "Default value.", + "The last result determines the key result.", + "The first SELECT statement determines the key result." + ], + "type": "string" + }, + "statementByteBudget": { + "description": "Limit on the number of bytes billed per statement. Exceeding this budget results in an error.", + "format": "int64", + "type": "string" + }, + "statementTimeoutMs": { + "description": "Timeout period for each statement in a script.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "ScriptStackFrame": { + "description": "Represents the location of the statement/expression being evaluated. Line and column numbers are defined as follows: - Line and column numbers start with one. That is, line 1 column 1 denotes the start of the script. - When inside a stored procedure, all line/column numbers are relative to the procedure body, not the script in which the procedure was defined. - Start/end positions exclude leading/trailing comments and whitespace. The end position always ends with a \";\", when present. - Multi-byte Unicode characters are treated as just one column. - If the original script (or procedure definition) contains TAB characters, a tab \"snaps\" the indentation forward to the nearest multiple of 8 characters, plus 1. For example, a TAB on column 1, 2, 3, 4, 5, 6 , or 8 will advance the next character to column 9. A TAB on column 9, 10, 11, 12, 13, 14, 15, or 16 will advance the next character to column 17.", "id": "ScriptStackFrame", "properties": { "endColumn": { - "description": "[Output-only] One-based end column.", + "description": "Output only. One-based end column.", "format": "int32", + "readOnly": true, "type": "integer" }, "endLine": { - "description": "[Output-only] One-based end line.", + "description": "Output only. One-based end line.", "format": "int32", + "readOnly": true, "type": "integer" }, "procedureId": { - "description": "[Output-only] Name of the active procedure, empty if in a top-level script.", + "description": "Output only. Name of the active procedure, empty if in a top-level script.", + "readOnly": true, "type": "string" }, "startColumn": { - "description": "[Output-only] One-based start column.", + "description": "Output only. One-based start column.", "format": "int32", + "readOnly": true, "type": "integer" }, "startLine": { - "description": "[Output-only] One-based start line.", + "description": "Output only. One-based start line.", "format": "int32", + "readOnly": true, "type": "integer" }, "text": { - "description": "[Output-only] Text of the current statement/expression.", + "description": "Output only. Text of the current statement/expression.", + "readOnly": true, "type": "string" } }, "type": "object" }, "ScriptStatistics": { + "description": "Job statistics specific to the child job of a script.", "id": "ScriptStatistics", "properties": { "evaluationKind": { - "description": "[Output-only] Whether this child job was a statement or expression.", + "description": "Whether this child job was a statement or expression.", + "enum": [ + "EVALUATION_KIND_UNSPECIFIED", + "STATEMENT", + "EXPRESSION" + ], + "enumDescriptions": [ + "Default value.", + "The statement appears directly in the script.", + "The statement evaluates an expression that appears in the script." + ], "type": "string" }, "stackFrames": { @@ -6282,27 +7444,42 @@ "type": "object" }, "SearchStatistics": { + "description": "Statistics for a search query. Populated as part of JobStatistics2.", "id": "SearchStatistics", "properties": { "indexUnusedReasons": { - "description": "When index_usage_mode is UNUSED or PARTIALLY_USED, this field explains why index was not used in all or part of the search query. If index_usage_mode is FULLLY_USED, this field is not populated.", + "description": "When `indexUsageMode` is `UNUSED` or `PARTIALLY_USED`, this field explains why indexes were not used in all or part of the search query. If `indexUsageMode` is `FULLY_USED`, this field is not populated.", "items": { "$ref": "IndexUnusedReason" }, "type": "array" }, "indexUsageMode": { - "description": "Specifies index usage mode for the query.", + "description": "Specifies the index usage mode for the query.", + "enum": [ + "INDEX_USAGE_MODE_UNSPECIFIED", + "UNUSED", + "PARTIALLY_USED", + "FULLY_USED" + ], + "enumDescriptions": [ + "Index usage mode not specified.", + "No search indexes were used in the search query. See [`indexUnusedReasons`] (/bigquery/docs/reference/rest/v2/Job#IndexUnusedReason) for detailed reasons.", + "Part of the search query used search indexes. See [`indexUnusedReasons`] (/bigquery/docs/reference/rest/v2/Job#IndexUnusedReason) for why other parts of the query did not use search indexes.", + "The entire search query used search indexes." + ], "type": "string" } }, "type": "object" }, "SessionInfo": { + "description": "[Preview] Information related to sessions.", "id": "SessionInfo", "properties": { "sessionId": { - "description": "[Output-only] // [Preview] Id of the session.", + "description": "Output only. The id of the session.", + "readOnly": true, "type": "string" } }, @@ -6325,14 +7502,15 @@ "type": "object" }, "SnapshotDefinition": { + "description": "Information about base table and snapshot time of the snapshot.", "id": "SnapshotDefinition", "properties": { "baseTableReference": { "$ref": "TableReference", - "description": "[Required] Reference describing the ID of the table that was snapshot." + "description": "Required. Reference describing the ID of the table that was snapshot." }, "snapshotTime": { - "description": "[Required] The time at which the base table was snapshot. This value is reported in the JSON response using RFC3339 format.", + "description": "Required. The time at which the base table was snapshot. This value is reported in the JSON response using RFC3339 format.", "format": "date-time", "type": "string" } @@ -6340,14 +7518,17 @@ "type": "object" }, "SparkLoggingInfo": { + "description": "Spark job logs can be filtered by these fields in Cloud Logging.", "id": "SparkLoggingInfo", "properties": { "projectId": { - "description": "[Output-only] Project ID used for logging", + "description": "Output only. Project ID where the Spark logs were written.", + "readOnly": true, "type": "string" }, "resourceType": { - "description": "[Output-only] Resource type used for logging", + "description": "Output only. Resource type used for logging.", + "readOnly": true, "type": "string" } }, @@ -6416,25 +7597,97 @@ "type": "object" }, "SparkStatistics": { + "description": "Statistics for a BigSpark query. Populated as part of JobStatistics2", "id": "SparkStatistics", "properties": { "endpoints": { "additionalProperties": { "type": "string" }, - "description": "[Output-only] Endpoints generated for the Spark job.", + "description": "Output only. Endpoints returned from Dataproc. Key list: - history_server_endpoint: A link to Spark job UI.", + "readOnly": true, "type": "object" }, + "gcsStagingBucket": { + "description": "Output only. The Google Cloud Storage bucket that is used as the default filesystem by the Spark application. This fields is only filled when the Spark procedure uses the INVOKER security mode. It is inferred from the system variable @@spark_proc_properties.staging_bucket if it is provided. Otherwise, BigQuery creates a default staging bucket for the job and returns the bucket name in this field. Example: * `gs://[bucket_name]`", + "readOnly": true, + "type": "string" + }, + "kmsKeyName": { + "description": "Output only. The Cloud KMS encryption key that is used to protect the resources created by the Spark job. If the Spark procedure uses DEFINER security mode, the Cloud KMS key is inferred from the Spark connection associated with the procedure if it is provided. Otherwise the key is inferred from the default key of the Spark connection's project if the CMEK organization policy is enforced. If the Spark procedure uses INVOKER security mode, the Cloud KMS encryption key is inferred from the system variable @@spark_proc_properties.kms_key_name if it is provided. Otherwise, the key is inferred fromt he default key of the BigQuery job's project if the CMEK organization policy is enforced. Example: * `projects/[kms_project_id]/locations/[region]/keyRings/[key_region]/cryptoKeys/[key]`", + "readOnly": true, + "type": "string" + }, "loggingInfo": { "$ref": "SparkLoggingInfo", - "description": "[Output-only] Logging info is used to generate a link to Cloud Logging." + "description": "Output only. Logging info is used to generate a link to Cloud Logging.", + "readOnly": true }, "sparkJobId": { - "description": "[Output-only] Spark job id if a Spark job is created successfully.", + "description": "Output only. Spark job ID if a Spark job is created successfully.", + "readOnly": true, "type": "string" }, "sparkJobLocation": { - "description": "[Output-only] Location where the Spark job is executed.", + "description": "Output only. Location where the Spark job is executed. A location is selected by BigQueury for jobs configured to run in a multi-region.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "StagePerformanceChangeInsight": { + "description": "Performance insights compared to the previous executions for a specific stage.", + "id": "StagePerformanceChangeInsight", + "properties": { + "inputDataChange": { + "$ref": "InputDataChange", + "description": "Output only. Input data change insight of the query stage.", + "readOnly": true + }, + "stageId": { + "description": "Output only. The stage id that the insight mapped to.", + "format": "int64", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "StagePerformanceStandaloneInsight": { + "description": "Standalone performance insights for a specific stage.", + "id": "StagePerformanceStandaloneInsight", + "properties": { + "biEngineReasons": { + "description": "Output only. If present, the stage had the following reasons for being disqualified from BI Engine execution.", + "items": { + "$ref": "BiEngineReason" + }, + "readOnly": true, + "type": "array" + }, + "highCardinalityJoins": { + "description": "Output only. High cardinality joins in the stage.", + "items": { + "$ref": "HighCardinalityJoin" + }, + "readOnly": true, + "type": "array" + }, + "insufficientShuffleQuota": { + "description": "Output only. True if the stage has insufficient shuffle quota.", + "readOnly": true, + "type": "boolean" + }, + "slotContention": { + "description": "Output only. True if the stage has a slot contention issue.", + "readOnly": true, + "type": "boolean" + }, + "stageId": { + "description": "Output only. The stage id that the insight mapped to.", + "format": "int64", + "readOnly": true, "type": "string" } }, @@ -6550,18 +7803,21 @@ "id": "Streamingbuffer", "properties": { "estimatedBytes": { - "description": "[Output-only] A lower-bound estimate of the number of bytes currently in the streaming buffer.", + "description": "Output only. A lower-bound estimate of the number of bytes currently in the streaming buffer.", "format": "uint64", + "readOnly": true, "type": "string" }, "estimatedRows": { - "description": "[Output-only] A lower-bound estimate of the number of rows currently in the streaming buffer.", + "description": "Output only. A lower-bound estimate of the number of rows currently in the streaming buffer.", "format": "uint64", + "readOnly": true, "type": "string" }, "oldestEntryTime": { - "description": "[Output-only] Contains the timestamp of the oldest entry in the streaming buffer, in milliseconds since the epoch, if the streaming buffer is available.", + "description": "Output only. Contains the timestamp of the oldest entry in the streaming buffer, in milliseconds since the epoch, if the streaming buffer is available.", "format": "uint64", + "readOnly": true, "type": "string" } }, @@ -6581,36 +7837,72 @@ }, "type": "object" }, + "SystemVariables": { + "description": "System variables given to a query.", + "id": "SystemVariables", + "properties": { + "types": { + "additionalProperties": { + "$ref": "StandardSqlDataType" + }, + "description": "Output only. Data type for each system variable.", + "readOnly": true, + "type": "object" + }, + "values": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Output only. Value for each system variable.", + "readOnly": true, + "type": "object" + } + }, + "type": "object" + }, "Table": { "id": "Table", "properties": { "biglakeConfiguration": { "$ref": "BigLakeConfiguration", - "description": "[Optional] Specifies the configuration of a BigLake managed table." + "description": "Optional. Specifies the configuration of a BigLake managed table." }, "cloneDefinition": { "$ref": "CloneDefinition", - "description": "[Output-only] Clone definition." + "description": "Output only. Contains information about the clone. This value is set via the clone operation.", + "readOnly": true }, "clustering": { "$ref": "Clustering", - "description": "[Beta] Clustering specification for the table. Must be specified with partitioning, data in the table will be first partitioned and subsequently clustered." + "description": "Clustering specification for the table. Must be specified with time-based partitioning, data in the table will be first partitioned and subsequently clustered." }, "creationTime": { - "description": "[Output-only] The time when this table was created, in milliseconds since the epoch.", + "description": "Output only. The time when this table was created, in milliseconds since the epoch.", "format": "int64", + "readOnly": true, "type": "string" }, "defaultCollation": { - "description": "[Output-only] The default collation of the table.", + "description": "Optional. Defines the default collation specification of new STRING fields in the table. During table creation or update, if a STRING field is added to this table without explicit collation specified, then the table inherits the table default collation. A change to this field affects only fields added afterwards, and does not alter the existing fields. The following values are supported: * 'und:ci': undetermined locale, case insensitive. * '': empty string. Default to case-sensitive behavior.", "type": "string" }, "defaultRoundingMode": { - "description": "[Output-only] The default rounding mode of the table.", + "description": "Optional. Defines the default rounding mode specification of new decimal fields (NUMERIC OR BIGNUMERIC) in the table. During table creation or update, if a decimal field is added to this table without an explicit rounding mode specified, then the field inherits the table default rounding mode. Changing this field doesn't affect existing fields.", + "enum": [ + "ROUNDING_MODE_UNSPECIFIED", + "ROUND_HALF_AWAY_FROM_ZERO", + "ROUND_HALF_EVEN" + ], + "enumDescriptions": [ + "Unspecified will default to using ROUND_HALF_AWAY_FROM_ZERO.", + "ROUND_HALF_AWAY_FROM_ZERO rounds half values away from zero when applying precision and scale upon writing of NUMERIC and BIGNUMERIC values. For Scale: 0 1.1, 1.2, 1.3, 1.4 => 1 1.5, 1.6, 1.7, 1.8, 1.9 => 2", + "ROUND_HALF_EVEN rounds half values to the nearest even value when applying precision and scale upon writing of NUMERIC and BIGNUMERIC values. For Scale: 0 1.1, 1.2, 1.3, 1.4 => 1 1.5 => 2 1.6, 1.7, 1.8, 1.9 => 2 2.5 => 2" + ], "type": "string" }, "description": { - "description": "[Optional] A user-friendly description of this table.", + "description": "Optional. A user-friendly description of this table.", "type": "string" }, "encryptionConfiguration": { @@ -6618,29 +7910,31 @@ "description": "Custom encryption configuration (e.g., Cloud KMS keys)." }, "etag": { - "description": "[Output-only] A hash of the table metadata. Used to ensure there were no concurrent modifications to the resource when attempting an update. Not guaranteed to change when the table contents or the fields numRows, numBytes, numLongTermBytes or lastModifiedTime change.", + "description": "Output only. A hash of this resource.", + "readOnly": true, "type": "string" }, "expirationTime": { - "description": "[Optional] The time when this table expires, in milliseconds since the epoch. If not present, the table will persist indefinitely. Expired tables will be deleted and their storage reclaimed. The defaultTableExpirationMs property of the encapsulating dataset can be used to set a default expirationTime on newly created tables.", + "description": "Optional. The time when this table expires, in milliseconds since the epoch. If not present, the table will persist indefinitely. Expired tables will be deleted and their storage reclaimed. The defaultTableExpirationMs property of the encapsulating dataset can be used to set a default expirationTime on newly created tables.", "format": "int64", "type": "string" }, "externalDataConfiguration": { "$ref": "ExternalDataConfiguration", - "description": "[Optional] Describes the data format, location, and other properties of a table stored outside of BigQuery. By defining these properties, the data source can then be queried as if it were a standard BigQuery table." + "description": "Optional. Describes the data format, location, and other properties of a table stored outside of BigQuery. By defining these properties, the data source can then be queried as if it were a standard BigQuery table." }, "friendlyName": { - "description": "[Optional] A descriptive name for this table.", + "description": "Optional. A descriptive name for this table.", "type": "string" }, "id": { - "description": "[Output-only] An opaque ID uniquely identifying the table.", + "description": "Output only. An opaque ID uniquely identifying the table.", + "readOnly": true, "type": "string" }, "kind": { "default": "bigquery#table", - "description": "[Output-only] The type of the resource.", + "description": "The type of resource ID.", "type": "string" }, "labels": { @@ -6651,94 +7945,120 @@ "type": "object" }, "lastModifiedTime": { - "description": "[Output-only] The time when this table was last modified, in milliseconds since the epoch.", + "description": "Output only. The time when this table was last modified, in milliseconds since the epoch.", "format": "uint64", + "readOnly": true, "type": "string" }, "location": { - "description": "[Output-only] The geographic location where the table resides. This value is inherited from the dataset.", + "description": "Output only. The geographic location where the table resides. This value is inherited from the dataset.", + "readOnly": true, "type": "string" }, "materializedView": { "$ref": "MaterializedViewDefinition", - "description": "[Optional] Materialized view definition." + "description": "Optional. The materialized view definition." + }, + "materializedViewStatus": { + "$ref": "MaterializedViewStatus", + "description": "Output only. The materialized view status.", + "readOnly": true }, "maxStaleness": { - "description": "[Optional] Max staleness of data that could be returned when table or materialized view is queried (formatted as Google SQL Interval type).", - "format": "byte", + "description": "Optional. The maximum staleness of data that could be returned when the table (or stale MV) is queried. Staleness encoded as a string encoding of sql IntervalValue type.", "type": "string" }, "model": { "$ref": "ModelDefinition", - "description": "[Output-only, Beta] Present iff this table represents a ML model. Describes the training information for the model, and it is required to run 'PREDICT' queries." + "description": "Deprecated." }, "numActiveLogicalBytes": { - "description": "[Output-only] Number of logical bytes that are less than 90 days old.", + "description": "Output only. Number of logical bytes that are less than 90 days old.", "format": "int64", + "readOnly": true, "type": "string" }, "numActivePhysicalBytes": { - "description": "[Output-only] Number of physical bytes less than 90 days old. This data is not kept in real time, and might be delayed by a few seconds to a few minutes.", + "description": "Output only. Number of physical bytes less than 90 days old. This data is not kept in real time, and might be delayed by a few seconds to a few minutes.", "format": "int64", + "readOnly": true, "type": "string" }, "numBytes": { - "description": "[Output-only] The size of this table in bytes, excluding any data in the streaming buffer.", + "description": "Output only. The size of this table in logical bytes, excluding any data in the streaming buffer.", "format": "int64", + "readOnly": true, "type": "string" }, "numLongTermBytes": { - "description": "[Output-only] The number of bytes in the table that are considered \"long-term storage\".", + "description": "Output only. The number of logical bytes in the table that are considered \"long-term storage\".", "format": "int64", + "readOnly": true, "type": "string" }, "numLongTermLogicalBytes": { - "description": "[Output-only] Number of logical bytes that are more than 90 days old.", + "description": "Output only. Number of logical bytes that are more than 90 days old.", "format": "int64", + "readOnly": true, "type": "string" }, "numLongTermPhysicalBytes": { - "description": "[Output-only] Number of physical bytes more than 90 days old. This data is not kept in real time, and might be delayed by a few seconds to a few minutes.", + "description": "Output only. Number of physical bytes more than 90 days old. This data is not kept in real time, and might be delayed by a few seconds to a few minutes.", "format": "int64", + "readOnly": true, "type": "string" }, "numPartitions": { - "description": "[Output-only] The number of partitions present in the table or materialized view. This data is not kept in real time, and might be delayed by a few seconds to a few minutes.", + "description": "Output only. The number of partitions present in the table or materialized view. This data is not kept in real time, and might be delayed by a few seconds to a few minutes.", "format": "int64", + "readOnly": true, "type": "string" }, "numPhysicalBytes": { - "description": "[Output-only] [TrustedTester] The physical size of this table in bytes, excluding any data in the streaming buffer. This includes compression and storage used for time travel.", + "description": "Output only. The physical size of this table in bytes. This includes storage used for time travel.", "format": "int64", + "readOnly": true, "type": "string" }, "numRows": { - "description": "[Output-only] The number of rows of data in this table, excluding any data in the streaming buffer.", + "description": "Output only. The number of rows of data in this table, excluding any data in the streaming buffer.", "format": "uint64", + "readOnly": true, "type": "string" }, "numTimeTravelPhysicalBytes": { - "description": "[Output-only] Number of physical bytes used by time travel storage (deleted or changed data). This data is not kept in real time, and might be delayed by a few seconds to a few minutes.", + "description": "Output only. Number of physical bytes used by time travel storage (deleted or changed data). This data is not kept in real time, and might be delayed by a few seconds to a few minutes.", "format": "int64", + "readOnly": true, "type": "string" }, "numTotalLogicalBytes": { - "description": "[Output-only] Total number of logical bytes in the table or materialized view.", + "description": "Output only. Total number of logical bytes in the table or materialized view.", "format": "int64", + "readOnly": true, "type": "string" }, "numTotalPhysicalBytes": { - "description": "[Output-only] The physical size of this table in bytes. This also includes storage used for time travel. This data is not kept in real time, and might be delayed by a few seconds to a few minutes.", + "description": "Output only. The physical size of this table in bytes. This also includes storage used for time travel. This data is not kept in real time, and might be delayed by a few seconds to a few minutes.", "format": "int64", + "readOnly": true, "type": "string" }, "rangePartitioning": { "$ref": "RangePartitioning", - "description": "[TrustedTester] Range partitioning specification for this table. Only one of timePartitioning and rangePartitioning should be specified." + "description": "If specified, configures range partitioning for this table." + }, + "replicas": { + "description": "Optional. Output only. Table references of all replicas currently active on the table.", + "items": { + "$ref": "TableReference" + }, + "readOnly": true, + "type": "array" }, "requirePartitionFilter": { "default": "false", - "description": "[Optional] If set to true, queries over this table require a partition filter that can be used for partition elimination to be specified.", + "description": "Optional. If set to true, queries over this table require a partition filter that can be used for partition elimination to be specified.", "type": "boolean" }, "resourceTags": { @@ -6750,39 +8070,47 @@ }, "schema": { "$ref": "TableSchema", - "description": "[Optional] Describes the schema of this table." + "description": "Optional. Describes the schema of this table." }, "selfLink": { - "description": "[Output-only] A URL that can be used to access this resource again.", + "description": "Output only. A URL that can be used to access this resource again.", + "readOnly": true, "type": "string" }, "snapshotDefinition": { "$ref": "SnapshotDefinition", - "description": "[Output-only] Snapshot definition." + "description": "Output only. Contains information about the snapshot. This value is set via snapshot creation.", + "readOnly": true }, "streamingBuffer": { "$ref": "Streamingbuffer", - "description": "[Output-only] Contains information regarding this table's streaming buffer, if one is present. This field will be absent if the table is not being streamed to or if there is no data in the streaming buffer." + "description": "Output only. Contains information regarding this table's streaming buffer, if one is present. This field will be absent if the table is not being streamed to or if there is no data in the streaming buffer.", + "readOnly": true }, "tableConstraints": { "$ref": "TableConstraints", - "description": "[Optional] The table constraints on the table." + "description": "Optional. Tables Primary Key and Foreign Key information" }, "tableReference": { "$ref": "TableReference", - "description": "[Required] Reference describing the ID of this table." + "description": "Required. Reference describing the ID of this table." + }, + "tableReplicationInfo": { + "$ref": "TableReplicationInfo", + "description": "Optional. Table replication info for table created `AS REPLICA` DDL like: `CREATE MATERIALIZED VIEW mv1 AS REPLICA OF src_mv`" }, "timePartitioning": { "$ref": "TimePartitioning", - "description": "Time-based partitioning specification for this table. Only one of timePartitioning and rangePartitioning should be specified." + "description": "If specified, configures time-based partitioning for this table." }, "type": { - "description": "[Output-only] Describes the table type. The following values are supported: TABLE: A normal BigQuery table. VIEW: A virtual table defined by a SQL query. SNAPSHOT: An immutable, read-only table that is a copy of another table. [TrustedTester] MATERIALIZED_VIEW: SQL query whose result is persisted. EXTERNAL: A table that references data stored in an external storage system, such as Google Cloud Storage. The default value is TABLE.", + "description": "Output only. Describes the table type. The following values are supported: * `TABLE`: A normal BigQuery table. * `VIEW`: A virtual table defined by a SQL query. * `EXTERNAL`: A table that references data stored in an external storage system, such as Google Cloud Storage. * `MATERIALIZED_VIEW`: A precomputed view defined by a SQL query. * `SNAPSHOT`: An immutable BigQuery table that preserves the contents of a base table at a particular time. See additional information on [table snapshots](/bigquery/docs/table-snapshots-intro). The default value is `TABLE`.", + "readOnly": true, "type": "string" }, "view": { "$ref": "ViewDefinition", - "description": "[Optional] The view definition." + "description": "Optional. The view definition." } }, "type": "object" @@ -6797,19 +8125,25 @@ "type": "object" }, "TableConstraints": { + "description": "The TableConstraints defines the primary key and foreign key.", "id": "TableConstraints", "properties": { "foreignKeys": { - "description": "[Optional] The foreign keys of the tables.", + "description": "Optional. Present only if the table has a foreign key. The foreign key is not enforced.", "items": { + "description": "Represents a foreign key constraint on a table's columns.", "properties": { "columnReferences": { + "description": "Required. The columns that compose the foreign key.", "items": { + "description": "The pair of the foreign key column and primary key column.", "properties": { "referencedColumn": { + "description": "Required. The column in the primary key that are referenced by the referencing_column.", "type": "string" }, "referencingColumn": { + "description": "Required. The column that composes the foreign key.", "type": "string" } }, @@ -6818,6 +8152,7 @@ "type": "array" }, "name": { + "description": "Optional. Set only if the foreign key constraint is named.", "type": "string" }, "referencedTable": { @@ -6840,9 +8175,10 @@ "type": "array" }, "primaryKey": { - "description": "[Optional] The primary key of the table.", + "description": "Represents the primary key constraint on a table's columns.", "properties": { "columns": { + "description": "Required. The columns that are composed of the primary key constraint.", "items": { "type": "string" }, @@ -6855,28 +8191,29 @@ "type": "object" }, "TableDataInsertAllRequest": { + "description": "Request for sending a single streaming insert.", "id": "TableDataInsertAllRequest", "properties": { "ignoreUnknownValues": { - "description": "[Optional] Accept rows that contain values that do not match the schema. The unknown values are ignored. Default is false, which treats unknown values as errors.", + "description": "Optional. Accept rows that contain values that do not match the schema. The unknown values are ignored. Default is false, which treats unknown values as errors.", "type": "boolean" }, "kind": { "default": "bigquery#tableDataInsertAllRequest", - "description": "The resource type of the response.", + "description": "Optional. The resource type of the response. The value is not checked at the backend. Historically, it has been set to \"bigquery#tableDataInsertAllRequest\" but you are not required to set it.", "type": "string" }, "rows": { - "description": "The rows to insert.", "items": { + "description": "Data for a single insertion row.", "properties": { "insertId": { - "description": "[Optional] A unique ID for each row. BigQuery uses this property to detect duplicate insertion requests on a best-effort basis.", + "description": "Insertion ID for best-effort deduplication. This feature is not recommended, and users seeking stronger insertion semantics are encouraged to use other mechanisms such as the BigQuery Write API.", "type": "string" }, "json": { "$ref": "JsonObject", - "description": "[Required] A JSON object that contains a row of data. The object's properties and values must match the destination table's schema." + "description": "Data for a single row." } }, "type": "object" @@ -6884,22 +8221,28 @@ "type": "array" }, "skipInvalidRows": { - "description": "[Optional] Insert all valid rows of a request, even if invalid rows exist. The default value is false, which causes the entire request to fail if any invalid rows exist.", + "description": "Optional. Insert all valid rows of a request, even if invalid rows exist. The default value is false, which causes the entire request to fail if any invalid rows exist.", "type": "boolean" }, "templateSuffix": { - "description": "If specified, treats the destination table as a base template, and inserts the rows into an instance table named \"{destination}{templateSuffix}\". BigQuery will manage creation of the instance table, using the schema of the base template table. See https://cloud.google.com/bigquery/streaming-data-into-bigquery#template-tables for considerations when working with templates tables.", + "description": "Optional. If specified, treats the destination table as a base template, and inserts the rows into an instance table named \"{destination}{templateSuffix}\". BigQuery will manage creation of the instance table, using the schema of the base template table. See https://cloud.google.com/bigquery/streaming-data-into-bigquery#template-tables for considerations when working with templates tables.", + "type": "string" + }, + "traceId": { + "description": "Optional. Unique request trace id. Used for debugging purposes only. It is case-sensitive, limited to up to 36 ASCII characters. A UUID is recommended.", "type": "string" } }, "type": "object" }, "TableDataInsertAllResponse": { + "description": "Describes the format of a streaming insert response.", "id": "TableDataInsertAllResponse", "properties": { "insertErrors": { - "description": "An array of errors for rows that were not inserted.", + "description": "Describes specific errors encountered while processing the request.", "items": { + "description": "Error details about a single row's insertion.", "properties": { "errors": { "description": "Error information for the row indicated by the index property.", @@ -6920,7 +8263,7 @@ }, "kind": { "default": "bigquery#tableDataInsertAllResponse", - "description": "The resource type of the response.", + "description": "Returns \"bigquery#tableDataInsertAllResponse\".", "type": "string" } }, @@ -6950,7 +8293,7 @@ "type": "array" }, "totalRows": { - "description": "The total number of rows in the complete table.", + "description": "Total rows of the entire table. In order to show default value 0 we have to present it as string.", "format": "int64", "type": "string" } @@ -6958,13 +8301,14 @@ "type": "object" }, "TableFieldSchema": { + "description": "A field in TableSchema", "id": "TableFieldSchema", "properties": { "categories": { - "description": "[Optional] The categories attached to this field, used for field-level access control.", + "description": "Deprecated.", "properties": { "names": { - "description": "A list of category resource names. For example, \"projects/1/taxonomies/2/categories/3\". At most 5 categories are allowed.", + "description": "Deprecated.", "items": { "type": "string" }, @@ -6974,41 +8318,42 @@ "type": "object" }, "collation": { - "description": "Optional. Collation specification of the field. It only can be set on string type field.", + "description": "Optional. Field collation can be set only when the type of field is STRING. The following values are supported: * 'und:ci': undetermined locale, case insensitive. * '': empty string. Default to case-sensitive behavior.", "type": "string" }, "defaultValueExpression": { - "description": "Optional. A SQL expression to specify the default value for this field. It can only be set for top level fields (columns). You can use struct or array expression to specify default value for the entire struct or array. The valid SQL expressions are: - Literals for all data types, including STRUCT and ARRAY. - Following functions: - CURRENT_TIMESTAMP - CURRENT_TIME - CURRENT_DATE - CURRENT_DATETIME - GENERATE_UUID - RAND - SESSION_USER - ST_GEOGPOINT - Struct or array composed with the above allowed functions, for example, [CURRENT_DATE(), DATE '2020-01-01']", + "description": "Optional. A SQL expression to specify the [default value] (https://cloud.google.com/bigquery/docs/default-values) for this field.", "type": "string" }, "description": { - "description": "[Optional] The field description. The maximum length is 1,024 characters.", + "description": "Optional. The field description. The maximum length is 1,024 characters.", "type": "string" }, "fields": { - "description": "[Optional] Describes the nested schema fields if the type property is set to RECORD.", + "description": "Optional. Describes the nested schema fields if the type property is set to RECORD.", "items": { "$ref": "TableFieldSchema" }, "type": "array" }, "maxLength": { - "description": "[Optional] Maximum length of values of this field for STRINGS or BYTES. If max_length is not specified, no maximum length constraint is imposed on this field. If type = \"STRING\", then max_length represents the maximum UTF-8 length of strings in this field. If type = \"BYTES\", then max_length represents the maximum number of bytes in this field. It is invalid to set this field if type ≠ \"STRING\" and ≠ \"BYTES\".", + "description": "Optional. Maximum length of values of this field for STRINGS or BYTES. If max_length is not specified, no maximum length constraint is imposed on this field. If type = \"STRING\", then max_length represents the maximum UTF-8 length of strings in this field. If type = \"BYTES\", then max_length represents the maximum number of bytes in this field. It is invalid to set this field if type ≠ \"STRING\" and ≠ \"BYTES\".", "format": "int64", "type": "string" }, "mode": { - "description": "[Optional] The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE.", + "description": "Optional. The field mode. Possible values include NULLABLE, REQUIRED and REPEATED. The default value is NULLABLE.", "type": "string" }, "name": { - "description": "[Required] The field name. The name must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_), and must start with a letter or underscore. The maximum length is 300 characters.", + "description": "Required. The field name. The name must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_), and must start with a letter or underscore. The maximum length is 300 characters.", "type": "string" }, "policyTags": { + "description": "Optional. The policy tags attached to this field, used for field-level access control. If not set, defaults to empty policy_tags.", "properties": { "names": { - "description": "A list of category resource names. For example, \"projects/1/location/eu/taxonomies/2/policyTags/3\". At most 1 policy tag is allowed.", + "description": "A list of policy tag resource names. For example, \"projects/1/locations/eu/taxonomies/2/policyTags/3\". At most 1 policy tag is currently allowed.", "items": { "type": "string" }, @@ -7018,37 +8363,48 @@ "type": "object" }, "precision": { - "description": "[Optional] Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ \"NUMERIC\" and ≠ \"BIGNUMERIC\". If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: - Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] - Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: - If type = \"NUMERIC\": 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = \"BIGNUMERIC\": 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): - If type = \"NUMERIC\": 1 ≤ precision ≤ 29. - If type = \"BIGNUMERIC\": 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.", + "description": "Optional. Precision (maximum number of total digits in base 10) and scale (maximum number of digits in the fractional part in base 10) constraints for values of this field for NUMERIC or BIGNUMERIC. It is invalid to set precision or scale if type ≠ \"NUMERIC\" and ≠ \"BIGNUMERIC\". If precision and scale are not specified, no value range constraint is imposed on this field insofar as values are permitted by the type. Values of this NUMERIC or BIGNUMERIC field must be in this range when: * Precision (P) and scale (S) are specified: [-10P-S + 10-S, 10P-S - 10-S] * Precision (P) is specified but not scale (and thus scale is interpreted to be equal to zero): [-10P + 1, 10P - 1]. Acceptable values for precision and scale if both are specified: * If type = \"NUMERIC\": 1 ≤ precision - scale ≤ 29 and 0 ≤ scale ≤ 9. * If type = \"BIGNUMERIC\": 1 ≤ precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision if only precision is specified but not scale (and thus scale is interpreted to be equal to zero): * If type = \"NUMERIC\": 1 ≤ precision ≤ 29. * If type = \"BIGNUMERIC\": 1 ≤ precision ≤ 38. If scale is specified but not precision, then it is invalid.", "format": "int64", "type": "string" }, "rangeElementType": { - "description": "Optional. The subtype of the RANGE, if the type of this field is RANGE. If the type is RANGE, this field is required. Possible values for the field element type of a RANGE include: - DATE - DATETIME - TIMESTAMP", + "description": "Represents the type of a field element.", "properties": { "type": { - "description": "The field element type of a RANGE", + "description": "Required. The type of a field element. See TableFieldSchema.type.", "type": "string" } }, "type": "object" }, "roundingMode": { - "description": "Optional. Rounding Mode specification of the field. It only can be set on NUMERIC or BIGNUMERIC type fields.", + "description": "Optional. Specifies the rounding mode to be used when storing values of NUMERIC and BIGNUMERIC type.", + "enum": [ + "ROUNDING_MODE_UNSPECIFIED", + "ROUND_HALF_AWAY_FROM_ZERO", + "ROUND_HALF_EVEN" + ], + "enumDescriptions": [ + "Unspecified will default to using ROUND_HALF_AWAY_FROM_ZERO.", + "ROUND_HALF_AWAY_FROM_ZERO rounds half values away from zero when applying precision and scale upon writing of NUMERIC and BIGNUMERIC values. For Scale: 0 1.1, 1.2, 1.3, 1.4 => 1 1.5, 1.6, 1.7, 1.8, 1.9 => 2", + "ROUND_HALF_EVEN rounds half values to the nearest even value when applying precision and scale upon writing of NUMERIC and BIGNUMERIC values. For Scale: 0 1.1, 1.2, 1.3, 1.4 => 1 1.5 => 2 1.6, 1.7, 1.8, 1.9 => 2 2.5 => 2" + ], "type": "string" }, "scale": { - "description": "[Optional] See documentation for precision.", + "description": "Optional. See documentation for precision.", "format": "int64", "type": "string" }, "type": { - "description": "[Required] The field data type. Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where RECORD indicates that the field contains a nested schema) or STRUCT (same as RECORD).", + "description": "Required. The field data type. Possible values include: * STRING * BYTES * INTEGER (or INT64) * FLOAT (or FLOAT64) * BOOLEAN (or BOOL) * TIMESTAMP * DATE * TIME * DATETIME * GEOGRAPHY * NUMERIC * BIGNUMERIC * JSON * RECORD (or STRUCT) Use of RECORD/STRUCT indicates that the field contains a nested schema.", "type": "string" } }, "type": "object" }, "TableList": { + "description": "Partial projection of the metadata for a given table in a list response.", "id": "TableList", "properties": { "etag": { @@ -7070,15 +8426,16 @@ "properties": { "clustering": { "$ref": "Clustering", - "description": "[Beta] Clustering specification for this table, if configured." + "description": "Clustering specification for this table, if configured." }, "creationTime": { - "description": "The time when this table was created, in milliseconds since the epoch.", + "description": "Output only. The time when this table was created, in milliseconds since the epoch.", "format": "int64", + "readOnly": true, "type": "string" }, "expirationTime": { - "description": "[Optional] The time when this table expires, in milliseconds since the epoch. If not present, the table will persist indefinitely. Expired tables will be deleted and their storage reclaimed.", + "description": "The time when this table expires, in milliseconds since the epoch. If not present, the table will persist indefinitely. Expired tables will be deleted and their storage reclaimed.", "format": "int64", "type": "string" }, @@ -7087,11 +8444,10 @@ "type": "string" }, "id": { - "description": "An opaque ID of the table", + "description": "An opaque ID of the table.", "type": "string" }, "kind": { - "default": "bigquery#table", "description": "The resource type.", "type": "string" }, @@ -7104,25 +8460,34 @@ }, "rangePartitioning": { "$ref": "RangePartitioning", - "description": "The range partitioning specification for this table, if configured." + "description": "The range partitioning for this table." + }, + "requirePartitionFilter": { + "default": "false", + "description": "Optional. If set to true, queries including this table must specify a partition filter. This filter is used for partition elimination.", + "type": "boolean" }, "tableReference": { "$ref": "TableReference", - "description": "A reference uniquely identifying the table." + "description": "A reference uniquely identifying table." }, "timePartitioning": { "$ref": "TimePartitioning", - "description": "The time-based partitioning specification for this table, if configured." + "description": "The time-based partitioning for this table." }, "type": { - "description": "The type of table. Possible values are: TABLE, VIEW.", + "description": "The type of table.", "type": "string" }, "view": { - "description": "Additional details for a view.", + "description": "Information about a logical view.", "properties": { + "privacyPolicy": { + "$ref": "PrivacyPolicy", + "description": "Specifices the privacy policy for the view." + }, "useLegacySql": { - "description": "True if view is defined in legacy SQL dialect, false if in standard SQL.", + "description": "True if view is defined in legacy SQL dialect, false if in GoogleSQL.", "type": "boolean" } }, @@ -7141,35 +8506,101 @@ }, "type": "object" }, + "TableMetadataCacheUsage": { + "description": "Table level detail on the usage of metadata caching. Only set for Metadata caching eligible tables referenced in the query.", + "id": "TableMetadataCacheUsage", + "properties": { + "explanation": { + "description": "Free form human-readable reason metadata caching was unused for the job.", + "type": "string" + }, + "tableReference": { + "$ref": "TableReference", + "description": "Metadata caching eligible table referenced in the query." + }, + "tableType": { + "description": "[Table type](/bigquery/docs/reference/rest/v2/tables#Table.FIELDS.type).", + "type": "string" + }, + "unusedReason": { + "description": "Reason for not using metadata caching for the table.", + "enum": [ + "UNUSED_REASON_UNSPECIFIED", + "EXCEEDED_MAX_STALENESS", + "METADATA_CACHING_NOT_ENABLED", + "OTHER_REASON" + ], + "enumDescriptions": [ + "Unused reasons not specified.", + "Metadata cache was outside the table's maxStaleness.", + "Metadata caching feature is not enabled. [Update BigLake tables] (/bigquery/docs/create-cloud-storage-table-biglake#update-biglake-tables) to enable the metadata caching.", + "Other unknown reason." + ], + "type": "string" + } + }, + "type": "object" + }, "TableReference": { "id": "TableReference", "properties": { "datasetId": { - "annotations": { - "required": [ - "bigquery.tables.update" - ] - }, - "description": "[Required] The ID of the dataset containing this table.", + "description": "Required. The ID of the dataset containing this table.", "type": "string" }, "projectId": { - "annotations": { - "required": [ - "bigquery.tables.update" - ] - }, - "description": "[Required] The ID of the project containing this table.", + "description": "Required. The ID of the project containing this table.", "type": "string" }, "tableId": { - "annotations": { - "required": [ - "bigquery.tables.update" - ] - }, - "description": "[Required] The ID of the table. The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_). The maximum length is 1,024 characters.", + "description": "Required. The ID of the table. The ID can contain Unicode characters in category L (letter), M (mark), N (number), Pc (connector, including underscore), Pd (dash), and Zs (space). For more information, see [General Category](https://wikipedia.org/wiki/Unicode_character_property#General_Category). The maximum length is 1,024 characters. Certain operations allow suffixing of the table ID with a partition decorator, such as `sample_table$20190123`.", + "type": "string" + } + }, + "type": "object" + }, + "TableReplicationInfo": { + "description": "Replication info of a table created using `AS REPLICA` DDL like: `CREATE MATERIALIZED VIEW mv1 AS REPLICA OF src_mv`", + "id": "TableReplicationInfo", + "properties": { + "replicatedSourceLastRefreshTime": { + "description": "Optional. Output only. If source is a materialized view, this field signifies the last refresh time of the source.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "replicationError": { + "$ref": "ErrorProto", + "description": "Optional. Output only. Replication error that will permanently stopped table replication.", + "readOnly": true + }, + "replicationIntervalMs": { + "description": "Required. Specifies the interval at which the source table is polled for updates.", + "format": "int64", + "type": "string" + }, + "replicationStatus": { + "description": "Optional. Output only. Replication status of configured replication.", + "enum": [ + "REPLICATION_STATUS_UNSPECIFIED", + "ACTIVE", + "SOURCE_DELETED", + "PERMISSION_DENIED", + "UNSUPPORTED_CONFIGURATION" + ], + "enumDescriptions": [ + "Default value.", + "Replication is Active with no errors.", + "Source object is deleted.", + "Source revoked replication permissions.", + "Source configuration doesn’t allow replication." + ], + "readOnly": true, "type": "string" + }, + "sourceTable": { + "$ref": "TableReference", + "description": "Required. Source table reference that is replicated." } }, "type": "object" @@ -7188,6 +8619,7 @@ "type": "object" }, "TableSchema": { + "description": "Schema of a table", "id": "TableSchema", "properties": { "fields": { @@ -7232,19 +8664,22 @@ "id": "TimePartitioning", "properties": { "expirationMs": { - "description": "[Optional] Number of milliseconds for which to keep the storage for partitions in the table. The storage in a partition will have an expiration time of its partition time plus this value.", + "description": "Optional. Number of milliseconds for which to keep the storage for a partition. A wrapper is used here because 0 is an invalid value.", "format": "int64", "type": "string" }, "field": { - "description": "[Beta] [Optional] If not set, the table is partitioned by pseudo column, referenced via either '_PARTITIONTIME' as TIMESTAMP type, or '_PARTITIONDATE' as DATE type. If field is specified, the table is instead partitioned by this field. The field must be a top-level TIMESTAMP or DATE field. Its mode must be NULLABLE or REQUIRED.", + "description": "Optional. If not set, the table is partitioned by pseudo column '_PARTITIONTIME'; if set, the table is partitioned by this field. The field must be a top-level TIMESTAMP or DATE field. Its mode must be NULLABLE or REQUIRED. A wrapper is used here because an empty string is an invalid value.", "type": "string" }, "requirePartitionFilter": { + "default": "false", + "deprecated": true, + "description": "If set to true, queries over this table require a partition filter that can be used for partition elimination to be specified. This field is deprecated; please set the field with the same name on the table itself instead. This field needs a wrapper because we want to output the default value, false, if the user explicitly set it.", "type": "boolean" }, "type": { - "description": "[Required] The supported types are DAY, HOUR, MONTH, and YEAR, which will generate one partition per day, hour, month, and year, respectively. When the type is not specified, the default behavior is DAY.", + "description": "Required. The supported types are DAY, HOUR, MONTH, and YEAR, which will generate one partition per day, hour, month, and year, respectively.", "type": "string" } }, @@ -8229,10 +9664,12 @@ "type": "object" }, "TransactionInfo": { + "description": "[Alpha] Information of a multi-statement transaction.", "id": "TransactionInfo", "properties": { "transactionId": { - "description": "[Output-only] // [Alpha] Id of the transaction.", + "description": "Output only. [Alpha] Id of the transaction.", + "readOnly": true, "type": "string" } }, @@ -8260,8 +9697,20 @@ }, "type": "object" }, + "UndeleteDatasetRequest": { + "description": "Request format for undeleting a dataset.", + "id": "UndeleteDatasetRequest", + "properties": { + "deletionTime": { + "description": "Optional. The exact time when the dataset was deleted. If not specified, it will undelete the most recently deleted version.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "UserDefinedFunctionResource": { - "description": "This is used for defining User Defined Function (UDF) resources only when using legacy SQL. Users of Standard SQL should leverage either DDL (e.g. CREATE [TEMPORARY] FUNCTION ... ) or the Routines API to define UDF resources. For additional information on migrating, see: https://cloud.google.com/bigquery/docs/reference/standard-sql/migrating-from-legacy-sql#differences_in_user-defined_javascript_functions", + "description": " This is used for defining User Defined Function (UDF) resources only when using legacy SQL. Users of GoogleSQL should leverage either DDL (e.g. CREATE [TEMPORARY] FUNCTION ... ) or the Routines API to define UDF resources. For additional information on migrating, see: https://cloud.google.com/bigquery/docs/reference/standard-sql/migrating-from-legacy-sql#differences_in_user-defined_javascript_functions", "id": "UserDefinedFunctionResource", "properties": { "inlineCode": { @@ -8275,19 +9724,54 @@ }, "type": "object" }, + "VectorSearchStatistics": { + "description": "Statistics for a vector search query. Populated as part of JobStatistics2.", + "id": "VectorSearchStatistics", + "properties": { + "indexUnusedReasons": { + "description": "When `indexUsageMode` is `UNUSED` or `PARTIALLY_USED`, this field explains why indexes were not used in all or part of the vector search query. If `indexUsageMode` is `FULLY_USED`, this field is not populated.", + "items": { + "$ref": "IndexUnusedReason" + }, + "type": "array" + }, + "indexUsageMode": { + "description": "Specifies the index usage mode for the query.", + "enum": [ + "INDEX_USAGE_MODE_UNSPECIFIED", + "UNUSED", + "PARTIALLY_USED", + "FULLY_USED" + ], + "enumDescriptions": [ + "Index usage mode not specified.", + "No vector indexes were used in the vector search query. See [`indexUnusedReasons`] (/bigquery/docs/reference/rest/v2/Job#IndexUnusedReason) for detailed reasons.", + "Part of the vector search query used vector indexes. See [`indexUnusedReasons`] (/bigquery/docs/reference/rest/v2/Job#IndexUnusedReason) for why other parts of the query did not use vector indexes.", + "The entire vector search query used vector indexes." + ], + "type": "string" + } + }, + "type": "object" + }, "ViewDefinition": { + "description": "Describes the definition of a logical view.", "id": "ViewDefinition", "properties": { + "privacyPolicy": { + "$ref": "PrivacyPolicy", + "description": "Optional. Specifices the privacy policy for the view." + }, "query": { - "description": "[Required] A query that BigQuery executes when the view is referenced.", + "description": "Required. A query that BigQuery executes when the view is referenced.", "type": "string" }, "useExplicitColumnNames": { - "description": "True if the column names are explicitly specified. For example by using the 'CREATE VIEW v(c1, c2) AS ...' syntax. Can only be set using BigQuery's standard SQL: https://cloud.google.com/bigquery/sql-reference/", + "description": "True if the column names are explicitly specified. For example by using the 'CREATE VIEW v(c1, c2) AS ...' syntax. Can only be set for GoogleSQL views.", "type": "boolean" }, "useLegacySql": { - "description": "Specifies whether to use BigQuery's legacy SQL for this view. The default value is true. If set to false, the view will use BigQuery's standard SQL: https://cloud.google.com/bigquery/sql-reference/ Queries and views that reference this view must use the same flag value.", + "description": "Specifies whether to use BigQuery's legacy SQL for this view. The default value is true. If set to false, the view will use BigQuery's GoogleSQL: https://cloud.google.com/bigquery/sql-reference/ Queries and views that reference this view must use the same flag value. A wrapper is used here because the default value is True.", "type": "boolean" }, "userDefinedFunctionResources": { diff --git a/discovery/googleapis/bigqueryconnection__v1.json b/discovery/googleapis/bigqueryconnection__v1.json new file mode 100644 index 000000000..8ea2a78cb --- /dev/null +++ b/discovery/googleapis/bigqueryconnection__v1.json @@ -0,0 +1,968 @@ +{ + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/bigquery": { + "description": "View and manage your data in Google BigQuery and see the email address for your Google Account" + }, + "https://www.googleapis.com/auth/cloud-platform": { + "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account." + } + } + } + }, + "basePath": "", + "baseUrl": "https://bigqueryconnection.googleapis.com/", + "batchPath": "batch", + "canonicalName": "BigQuery Connection Service", + "description": "Allows users to manage BigQuery connections to external data sources.", + "discoveryVersion": "v1", + "documentationLink": "https://cloud.google.com/bigquery/docs/connections-api-intro", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "id": "bigqueryconnection:v1", + "kind": "discovery#restDescription", + "name": "bigqueryconnection", + "ownerDomain": "google.com", + "ownerName": "Google", + "protocol": "rest", + "revision": "20240214", + "rootUrl": "https://bigqueryconnection.googleapis.com/", + "servicePath": "", + "title": "BigQuery Connection API", + "version": "v1", + "version_module": true, + "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" + } + }, + "resources": { + "projects": { + "resources": { + "locations": { + "resources": { + "connections": { + "methods": { + "create": { + "description": "Creates a new connection.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connections", + "httpMethod": "POST", + "id": "bigqueryconnection.projects.locations.connections.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "connectionId": { + "description": "Optional. Connection id that should be assigned to the created connection.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Parent resource name. Must be in the format `projects/{project_id}/locations/{location_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/connections", + "request": { + "$ref": "Connection" + }, + "response": { + "$ref": "Connection" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes connection and associated credential.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}", + "httpMethod": "DELETE", + "id": "bigqueryconnection.projects.locations.connections.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the deleted connection, for example: `projects/{project_id}/locations/{location_id}/connections/{connection_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Returns specified connection.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}", + "httpMethod": "GET", + "id": "bigqueryconnection.projects.locations.connections.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the requested connection, for example: `projects/{project_id}/locations/{location_id}/connections/{connection_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Connection" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getIamPolicy": { + "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}:getIamPolicy", + "httpMethod": "POST", + "id": "bigqueryconnection.projects.locations.connections.getIamPolicy", + "parameterOrder": [ + "resource" + ], + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "request": { + "$ref": "GetIamPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Returns a list of connections in the given project.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connections", + "httpMethod": "GET", + "id": "bigqueryconnection.projects.locations.connections.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Required. Page size.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Parent resource name. Must be in the form: `projects/{project_id}/locations/{location_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/connections", + "response": { + "$ref": "ListConnectionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the specified connection. For security reasons, also resets credential if connection properties are in the update field mask.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}", + "httpMethod": "PATCH", + "id": "bigqueryconnection.projects.locations.connections.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the connection to update, for example: `projects/{project_id}/locations/{location_id}/connections/{connection_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. Update mask for the connection fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "Connection" + }, + "response": { + "$ref": "Connection" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "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}/locations/{locationsId}/connections/{connectionsId}:setIamPolicy", + "httpMethod": "POST", + "id": "bigqueryconnection.projects.locations.connections.setIamPolicy", + "parameterOrder": [ + "resource" + ], + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:setIamPolicy", + "request": { + "$ref": "SetIamPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}:testIamPermissions", + "httpMethod": "POST", + "id": "bigqueryconnection.projects.locations.connections.testIamPermissions", + "parameterOrder": [ + "resource" + ], + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + } + } + } + }, + "schemas": { + "AuditConfig": { + "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", + "id": "AuditConfig", + "properties": { + "auditLogConfigs": { + "description": "The configuration for logging of each type of permission.", + "items": { + "$ref": "AuditLogConfig" + }, + "type": "array" + }, + "service": { + "description": "Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.", + "type": "string" + } + }, + "type": "object" + }, + "AuditLogConfig": { + "description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting jose@example.com from DATA_READ logging.", + "id": "AuditLogConfig", + "properties": { + "exemptedMembers": { + "description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", + "items": { + "type": "string" + }, + "type": "array" + }, + "logType": { + "description": "The log type that this config enables.", + "enum": [ + "LOG_TYPE_UNSPECIFIED", + "ADMIN_READ", + "DATA_WRITE", + "DATA_READ" + ], + "enumDescriptions": [ + "Default case. Should never be this.", + "Admin reads. Example: CloudIAM getIamPolicy", + "Data writes. Example: CloudSQL Users create", + "Data reads. Example: CloudSQL Users list" + ], + "type": "string" + } + }, + "type": "object" + }, + "AwsAccessRole": { + "description": "Authentication method for Amazon Web Services (AWS) that uses Google owned Google service account to assume into customer's AWS IAM Role.", + "id": "AwsAccessRole", + "properties": { + "iamRoleId": { + "description": "The user’s AWS IAM Role that trusts the Google-owned AWS IAM user Connection.", + "type": "string" + }, + "identity": { + "description": "A unique Google-owned and Google-generated identity for the Connection. This identity will be used to access the user's AWS IAM Role.", + "type": "string" + } + }, + "type": "object" + }, + "AwsProperties": { + "description": "Connection properties specific to Amazon Web Services (AWS).", + "id": "AwsProperties", + "properties": { + "accessRole": { + "$ref": "AwsAccessRole", + "description": "Authentication using Google owned service account to assume into customer's AWS IAM Role." + } + }, + "type": "object" + }, + "AzureProperties": { + "description": "Container for connection properties specific to Azure.", + "id": "AzureProperties", + "properties": { + "application": { + "description": "Output only. The name of the Azure Active Directory Application.", + "readOnly": true, + "type": "string" + }, + "clientId": { + "description": "Output only. The client id of the Azure Active Directory Application.", + "readOnly": true, + "type": "string" + }, + "customerTenantId": { + "description": "The id of customer's directory that host the data.", + "type": "string" + }, + "federatedApplicationClientId": { + "description": "The client ID of the user's Azure Active Directory Application used for a federated connection.", + "type": "string" + }, + "identity": { + "description": "Output only. A unique Google-owned and Google-generated identity for the Connection. This identity will be used to access the user's Azure Active Directory Application.", + "readOnly": true, + "type": "string" + }, + "objectId": { + "description": "Output only. The object id of the Azure Active Directory Application.", + "readOnly": true, + "type": "string" + }, + "redirectUri": { + "description": "The URL user will be redirected to after granting consent during connection setup.", + "type": "string" + } + }, + "type": "object" + }, + "Binding": { + "description": "Associates `members`, or principals, with a `role`.", + "id": "Binding", + "properties": { + "condition": { + "$ref": "Expr", + "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." + }, + "members": { + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "role": { + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", + "type": "string" + } + }, + "type": "object" + }, + "CloudResourceProperties": { + "description": "Container for connection properties for delegation of access to GCP resources.", + "id": "CloudResourceProperties", + "properties": { + "serviceAccountId": { + "description": "Output only. The account ID of the service created for the purpose of this connection. The service account does not have any permissions associated with it when it is created. After creation, customers delegate permissions to the service account. When the connection is used in the context of an operation in BigQuery, the service account will be used to connect to the desired resources in GCP. The account ID is in the form of: @gcp-sa-bigquery-cloudresource.iam.gserviceaccount.com", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "CloudSpannerProperties": { + "description": "Connection properties specific to Cloud Spanner.", + "id": "CloudSpannerProperties", + "properties": { + "database": { + "description": "Cloud Spanner database in the form `project/instance/database'", + "type": "string" + }, + "databaseRole": { + "description": "Optional. Cloud Spanner database role for fine-grained access control. The Cloud Spanner admin should have provisioned the database role with appropriate permissions, such as `SELECT` and `INSERT`. Other users should only use roles provided by their Cloud Spanner admins. For more details, see [About fine-grained access control] (https://cloud.google.com/spanner/docs/fgac-about). REQUIRES: The database role name must start with a letter, and can only contain letters, numbers, and underscores.", + "type": "string" + }, + "maxParallelism": { + "description": "Allows setting max parallelism per query when executing on Spanner independent compute resources. If unspecified, default values of parallelism are chosen that are dependent on the Cloud Spanner instance configuration. REQUIRES: `use_parallelism` must be set. REQUIRES: `use_data_boost` must be set.", + "format": "int32", + "type": "integer" + }, + "useDataBoost": { + "description": "If set, the request will be executed via Spanner independent compute resources. REQUIRES: `use_parallelism` must be set.", + "type": "boolean" + }, + "useParallelism": { + "description": "If parallelism should be used when reading from Cloud Spanner", + "type": "boolean" + }, + "useServerlessAnalytics": { + "deprecated": true, + "description": "Deprecated: prefer use_data_boost instead. If the serverless analytics service should be used to read data from Cloud Spanner. Note: `use_parallelism` must be set when using serverless analytics.", + "type": "boolean" + } + }, + "type": "object" + }, + "CloudSqlCredential": { + "description": "Credential info for the Cloud SQL.", + "id": "CloudSqlCredential", + "properties": { + "password": { + "description": "The password for the credential.", + "type": "string" + }, + "username": { + "description": "The username for the credential.", + "type": "string" + } + }, + "type": "object" + }, + "CloudSqlProperties": { + "description": "Connection properties specific to the Cloud SQL.", + "id": "CloudSqlProperties", + "properties": { + "credential": { + "$ref": "CloudSqlCredential", + "description": "Input only. Cloud SQL credential." + }, + "database": { + "description": "Database name.", + "type": "string" + }, + "instanceId": { + "description": "Cloud SQL instance ID in the form `project:location:instance`.", + "type": "string" + }, + "serviceAccountId": { + "description": "Output only. The account ID of the service used for the purpose of this connection. When the connection is used in the context of an operation in BigQuery, this service account will serve as the identity being used for connecting to the CloudSQL instance specified in this connection.", + "readOnly": true, + "type": "string" + }, + "type": { + "description": "Type of the Cloud SQL database.", + "enum": [ + "DATABASE_TYPE_UNSPECIFIED", + "POSTGRES", + "MYSQL" + ], + "enumDescriptions": [ + "Unspecified database type.", + "Cloud SQL for PostgreSQL.", + "Cloud SQL for MySQL." + ], + "type": "string" + } + }, + "type": "object" + }, + "Connection": { + "description": "Configuration parameters to establish connection with an external data source, except the credential attributes.", + "id": "Connection", + "properties": { + "aws": { + "$ref": "AwsProperties", + "description": "Amazon Web Services (AWS) properties." + }, + "azure": { + "$ref": "AzureProperties", + "description": "Azure properties." + }, + "cloudResource": { + "$ref": "CloudResourceProperties", + "description": "Cloud Resource properties." + }, + "cloudSpanner": { + "$ref": "CloudSpannerProperties", + "description": "Cloud Spanner properties." + }, + "cloudSql": { + "$ref": "CloudSqlProperties", + "description": "Cloud SQL properties." + }, + "configuration": { + "$ref": "ConnectorConfiguration", + "description": "Optional. Connector configuration." + }, + "creationTime": { + "description": "Output only. The creation timestamp of the connection.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "User provided description.", + "type": "string" + }, + "friendlyName": { + "description": "User provided display name for the connection.", + "type": "string" + }, + "hasCredential": { + "description": "Output only. True, if credential is configured for this connection.", + "readOnly": true, + "type": "boolean" + }, + "kmsKeyName": { + "description": "Optional. The Cloud KMS key that is used for encryption. Example: `projects/[kms_project_id]/locations/[region]/keyRings/[key_region]/cryptoKeys/[key]`", + "type": "string" + }, + "lastModifiedTime": { + "description": "Output only. The last update timestamp of the connection.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. The resource name of the connection in the form of: `projects/{project_id}/locations/{location_id}/connections/{connection_id}`", + "readOnly": true, + "type": "string" + }, + "salesforceDataCloud": { + "$ref": "SalesforceDataCloudProperties", + "description": "Optional. Salesforce DataCloud properties. This field is intended for use only by Salesforce partner projects. This field contains properties for your Salesforce DataCloud connection." + }, + "spark": { + "$ref": "SparkProperties", + "description": "Spark properties." + } + }, + "type": "object" + }, + "ConnectorConfiguration": { + "description": "Represents concrete parameter values for Connector Configuration.", + "id": "ConnectorConfiguration", + "properties": { + "authentication": { + "$ref": "ConnectorConfigurationAuthentication", + "description": "Client authentication." + }, + "connectorId": { + "description": "Required. Immutable. The ID of the Connector these parameters are configured for.", + "type": "string" + }, + "endpoint": { + "$ref": "ConnectorConfigurationEndpoint", + "description": "Specifies how to reach the remote system this connection is pointing to." + } + }, + "type": "object" + }, + "ConnectorConfigurationAuthentication": { + "description": "Client authentication.", + "id": "ConnectorConfigurationAuthentication", + "properties": { + "usernamePassword": { + "$ref": "ConnectorConfigurationUsernamePassword", + "description": "Username/password authentication." + } + }, + "type": "object" + }, + "ConnectorConfigurationEndpoint": { + "description": "Remote endpoint specification.", + "id": "ConnectorConfigurationEndpoint", + "properties": { + "hostPort": { + "description": "Host and port in a format of `hostname:port` as defined in https://www.ietf.org/rfc/rfc3986.html#section-3.2.2 and https://www.ietf.org/rfc/rfc3986.html#section-3.2.3.", + "type": "string" + } + }, + "type": "object" + }, + "ConnectorConfigurationSecret": { + "description": "Secret value parameter.", + "id": "ConnectorConfigurationSecret", + "properties": { + "plaintext": { + "description": "Input only. Secret as plaintext.", + "type": "string" + }, + "secretType": { + "description": "Output only. Indicates type of secret. Can be used to check type of stored secret value even if it's `INPUT_ONLY`.", + "enum": [ + "SECRET_TYPE_UNSPECIFIED", + "PLAINTEXT" + ], + "enumDescriptions": [ + "", + "" + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ConnectorConfigurationUsernamePassword": { + "description": "Username and Password authentication.", + "id": "ConnectorConfigurationUsernamePassword", + "properties": { + "password": { + "$ref": "ConnectorConfigurationSecret", + "description": "Required. Password." + }, + "username": { + "description": "Required. Username.", + "type": "string" + } + }, + "type": "object" + }, + "Empty": { + "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": "Empty", + "properties": {}, + "type": "object" + }, + "Expr": { + "description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.", + "id": "Expr", + "properties": { + "description": { + "description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.", + "type": "string" + }, + "expression": { + "description": "Textual representation of an expression in Common Expression Language syntax.", + "type": "string" + }, + "location": { + "description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", + "type": "string" + }, + "title": { + "description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", + "type": "string" + } + }, + "type": "object" + }, + "GetIamPolicyRequest": { + "description": "Request message for `GetIamPolicy` method.", + "id": "GetIamPolicyRequest", + "properties": { + "options": { + "$ref": "GetPolicyOptions", + "description": "OPTIONAL: A `GetPolicyOptions` object for specifying options to `GetIamPolicy`." + } + }, + "type": "object" + }, + "GetPolicyOptions": { + "description": "Encapsulates settings provided to GetIamPolicy.", + "id": "GetPolicyOptions", + "properties": { + "requestedPolicyVersion": { + "description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "ListConnectionsResponse": { + "description": "The response for ConnectionService.ListConnections.", + "id": "ListConnectionsResponse", + "properties": { + "connections": { + "description": "List of connections.", + "items": { + "$ref": "Connection" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Next page token.", + "type": "string" + } + }, + "type": "object" + }, + "MetastoreServiceConfig": { + "description": "Configuration of the Dataproc Metastore Service.", + "id": "MetastoreServiceConfig", + "properties": { + "metastoreService": { + "description": "Optional. Resource name of an existing Dataproc Metastore service. Example: * `projects/[project_id]/locations/[region]/services/[service_id]`", + "type": "string" + } + }, + "type": "object" + }, + "Policy": { + "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", + "id": "Policy", + "properties": { + "auditConfigs": { + "description": "Specifies cloud audit logging configuration for this policy.", + "items": { + "$ref": "AuditConfig" + }, + "type": "array" + }, + "bindings": { + "description": "Associates a list of `members`, or principals, with a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one principal. The `bindings` in a `Policy` can refer to up to 1,500 principals; up to 250 of these principals can be Google groups. Each occurrence of a principal counts towards these limits. For example, if the `bindings` grant 50 different roles to `user:alice@example.com`, and not to any other principal, then you can add another 1,450 principals to the `bindings` in the `Policy`.", + "items": { + "$ref": "Binding" + }, + "type": "array" + }, + "etag": { + "description": "`etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read-modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.", + "format": "byte", + "type": "string" + }, + "version": { + "description": "Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "SalesforceDataCloudProperties": { + "description": "Connection properties specific to Salesforce DataCloud. This is intended for use only by Salesforce partner projects.", + "id": "SalesforceDataCloudProperties", + "properties": { + "identity": { + "description": "Output only. A unique Google-owned and Google-generated service account identity for the connection.", + "readOnly": true, + "type": "string" + }, + "instanceUri": { + "description": "The URL to the user's Salesforce DataCloud instance.", + "type": "string" + }, + "tenantId": { + "description": "The ID of the user's Salesforce tenant.", + "type": "string" + } + }, + "type": "object" + }, + "SetIamPolicyRequest": { + "description": "Request message for `SetIamPolicy` method.", + "id": "SetIamPolicyRequest", + "properties": { + "policy": { + "$ref": "Policy", + "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Google Cloud services (such as Projects) might reject them." + }, + "updateMask": { + "description": "OPTIONAL: A FieldMask specifying which fields of the policy to modify. Only the fields in the mask will be modified. If no mask is provided, the following default mask is used: `paths: \"bindings, etag\"`", + "format": "google-fieldmask", + "type": "string" + } + }, + "type": "object" + }, + "SparkHistoryServerConfig": { + "description": "Configuration of the Spark History Server.", + "id": "SparkHistoryServerConfig", + "properties": { + "dataprocCluster": { + "description": "Optional. Resource name of an existing Dataproc Cluster to act as a Spark History Server for the connection. Example: * `projects/[project_id]/regions/[region]/clusters/[cluster_name]`", + "type": "string" + } + }, + "type": "object" + }, + "SparkProperties": { + "description": "Container for connection properties to execute stored procedures for Apache Spark.", + "id": "SparkProperties", + "properties": { + "metastoreServiceConfig": { + "$ref": "MetastoreServiceConfig", + "description": "Optional. Dataproc Metastore Service configuration for the connection." + }, + "serviceAccountId": { + "description": "Output only. The account ID of the service created for the purpose of this connection. The service account does not have any permissions associated with it when it is created. After creation, customers delegate permissions to the service account. When the connection is used in the context of a stored procedure for Apache Spark in BigQuery, the service account is used to connect to the desired resources in Google Cloud. The account ID is in the form of: bqcx--@gcp-sa-bigquery-consp.iam.gserviceaccount.com", + "readOnly": true, + "type": "string" + }, + "sparkHistoryServerConfig": { + "$ref": "SparkHistoryServerConfig", + "description": "Optional. Spark History Server configuration for the connection." + } + }, + "type": "object" + }, + "TestIamPermissionsRequest": { + "description": "Request message for `TestIamPermissions` method.", + "id": "TestIamPermissionsRequest", + "properties": { + "permissions": { + "description": "The set of permissions to check for the `resource`. Permissions with wildcards (such as `*` or `storage.*`) are not allowed. For more information see [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "TestIamPermissionsResponse": { + "description": "Response message for `TestIamPermissions` method.", + "id": "TestIamPermissionsResponse", + "properties": { + "permissions": { + "description": "A subset of `TestPermissionsRequest.permissions` that the caller is allowed.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + } + } +} diff --git a/discovery/googleapis/bigquerydatapolicy__v1.json b/discovery/googleapis/bigquerydatapolicy__v1.json index 86923ad1b..0e011c249 100644 --- a/discovery/googleapis/bigquerydatapolicy__v1.json +++ b/discovery/googleapis/bigquerydatapolicy__v1.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231016", + "revision": "20240219", "rootUrl": "https://bigquerydatapolicy.googleapis.com/", "servicePath": "", "title": "BigQuery Data Policy API", @@ -457,14 +457,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, diff --git a/discovery/googleapis/bigquerydatatransfer__v1.json b/discovery/googleapis/bigquerydatatransfer__v1.json index eb5e3ea4a..511fab1be 100644 --- a/discovery/googleapis/bigquerydatatransfer__v1.json +++ b/discovery/googleapis/bigquerydatatransfer__v1.json @@ -31,7 +31,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231029", + "revision": "20240218", "rootUrl": "https://bigquerydatatransfer.googleapis.com/", "servicePath": "", "title": "BigQuery Data Transfer API", @@ -347,6 +347,35 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/cloud-platform.read-only" ] + }, + "unenrollDataSources": { + "description": "Unenroll data sources in a user project. This allows users to remove transfer configurations for these data sources. They will no longer appear in the ListDataSources RPC and will also no longer appear in the [BigQuery UI](https://console.cloud.google.com/bigquery). Data transfers configurations of unenrolled data sources will not be scheduled.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}:unenrollDataSources", + "httpMethod": "POST", + "id": "bigquerydatatransfer.projects.locations.unenrollDataSources", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the project resource in the form: `projects/{project_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:unenrollDataSources", + "request": { + "$ref": "UnenrollDataSourcesRequest" + }, + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/bigquery", + "https://www.googleapis.com/auth/cloud-platform" + ] } }, "resources": { @@ -1768,12 +1797,12 @@ "type": "boolean" }, "endTime": { - "description": "Defines time to stop scheduling transfer runs. A transfer run cannot be scheduled at or after the end time. The end time can be changed at any moment. The time when a data transfer can be trigerred manually is not limited by this option.", + "description": "Defines time to stop scheduling transfer runs. A transfer run cannot be scheduled at or after the end time. The end time can be changed at any moment. The time when a data transfer can be triggered manually is not limited by this option.", "format": "google-datetime", "type": "string" }, "startTime": { - "description": "Specifies time to start scheduling transfer runs. The first run will be scheduled at or after the start time according to a recurrence pattern defined in the schedule string. The start time can be changed at any moment. The time when a data transfer can be trigerred manually is not limited by this option.", + "description": "Specifies time to start scheduling transfer runs. The first run will be scheduled at or after the start time according to a recurrence pattern defined in the schedule string. The start time can be changed at any moment. The time when a data transfer can be triggered manually is not limited by this option.", "format": "google-datetime", "type": "string" } @@ -1908,7 +1937,7 @@ "type": "string" }, "disabled": { - "description": "Is this config disabled. When set to true, no runs are scheduled for a given transfer.", + "description": "Is this config disabled. When set to true, no runs will be scheduled for this transfer config.", "type": "boolean" }, "displayName": { @@ -1934,7 +1963,7 @@ "type": "string" }, "notificationPubsubTopic": { - "description": "Pub/Sub topic where notifications will be sent after transfer runs associated with this transfer config finish. The format for specifying a pubsub topic is: `projects/{project}/topics/{topic}`", + "description": "Pub/Sub topic where notifications will be sent after transfer runs associated with this transfer config finish. The format for specifying a pubsub topic is: `projects/{project_id}/topics/{topic_id}`", "type": "string" }, "ownerInfo": { @@ -2059,7 +2088,7 @@ "type": "string" }, "notificationPubsubTopic": { - "description": "Output only. Pub/Sub topic where a notification will be sent after this transfer run finishes. The format for specifying a pubsub topic is: `projects/{project}/topics/{topic}`", + "description": "Output only. Pub/Sub topic where a notification will be sent after this transfer run finishes. The format for specifying a pubsub topic is: `projects/{project_id}/topics/{topic_id}`", "readOnly": true, "type": "string" }, @@ -2127,6 +2156,20 @@ }, "type": "object" }, + "UnenrollDataSourcesRequest": { + "description": "A request to unenroll a set of data sources so they are no longer visible in the BigQuery UI's `Transfer` tab.", + "id": "UnenrollDataSourcesRequest", + "properties": { + "dataSourceIds": { + "description": "Data sources that are unenrolled. It is required to provide at least one data source id.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "UserInfo": { "description": "Information about a user.", "id": "UserInfo", diff --git a/discovery/googleapis/bigqueryreservation__v1.json b/discovery/googleapis/bigqueryreservation__v1.json index 733939e94..cd648772e 100644 --- a/discovery/googleapis/bigqueryreservation__v1.json +++ b/discovery/googleapis/bigqueryreservation__v1.json @@ -23,6 +23,26 @@ "description": "Regional Endpoint", "endpointUrl": "https://bigqueryreservation.me-central2.rep.googleapis.com/", "location": "me-central2" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://bigqueryreservation.europe-west3.rep.googleapis.com/", + "location": "europe-west3" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://bigqueryreservation.europe-west9.rep.googleapis.com/", + "location": "europe-west9" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://bigqueryreservation.us-east4.rep.googleapis.com/", + "location": "us-east4" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://bigqueryreservation.us-west1.rep.googleapis.com/", + "location": "us-west1" } ], "icons": { @@ -35,7 +55,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231026", + "revision": "20240217", "rootUrl": "https://bigqueryreservation.googleapis.com/", "servicePath": "", "title": "BigQuery Reservation API", diff --git a/discovery/googleapis/bigtableadmin__v2.json b/discovery/googleapis/bigtableadmin__v2.json index 5f6dee528..7b7f84b46 100644 --- a/discovery/googleapis/bigtableadmin__v2.json +++ b/discovery/googleapis/bigtableadmin__v2.json @@ -49,7 +49,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231110", + "revision": "20240221", "rootUrl": "https://bigtableadmin.googleapis.com/", "servicePath": "", "title": "Cloud Bigtable Admin API", @@ -135,66 +135,6 @@ "resources": { "operations": { "methods": { - "cancel": { - "description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.", - "flatPath": "v2/operations/{operationsId}:cancel", - "httpMethod": "POST", - "id": "bigtableadmin.operations.cancel", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "The name of the operation resource to be cancelled.", - "location": "path", - "pattern": "^operations/.*$", - "required": true, - "type": "string" - } - }, - "path": "v2/{+name}:cancel", - "response": { - "$ref": "Empty" - }, - "scopes": [ - "https://www.googleapis.com/auth/bigtable.admin", - "https://www.googleapis.com/auth/bigtable.admin.cluster", - "https://www.googleapis.com/auth/bigtable.admin.instance", - "https://www.googleapis.com/auth/cloud-bigtable.admin", - "https://www.googleapis.com/auth/cloud-bigtable.admin.cluster", - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "delete": { - "description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", - "flatPath": "v2/operations/{operationsId}", - "httpMethod": "DELETE", - "id": "bigtableadmin.operations.delete", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "The name of the operation resource to be deleted.", - "location": "path", - "pattern": "^operations/.*$", - "required": true, - "type": "string" - } - }, - "path": "v2/{+name}", - "response": { - "$ref": "Empty" - }, - "scopes": [ - "https://www.googleapis.com/auth/bigtable.admin", - "https://www.googleapis.com/auth/bigtable.admin.cluster", - "https://www.googleapis.com/auth/bigtable.admin.instance", - "https://www.googleapis.com/auth/cloud-bigtable.admin", - "https://www.googleapis.com/auth/cloud-bigtable.admin.cluster", - "https://www.googleapis.com/auth/cloud-platform" - ] - }, "get": { "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", "flatPath": "v2/operations/{operationsId}", @@ -1471,7 +1411,7 @@ ] }, "dropRowRange": { - "description": "Permanently drop/delete a row range from a specified table. The request can specify whether to delete all rows in a table, or only those that match a particular prefix.", + "description": "Permanently drop/delete a row range from a specified table. The request can specify whether to delete all rows in a table, or only those that match a particular prefix. Note that row key prefixes used here are treated as service data. For more information about how service data is handled, see the [Google Cloud Privacy Notice](https://cloud.google.com/terms/cloud-privacy-notice).", "flatPath": "v2/projects/{projectsId}/instances/{instancesId}/tables/{tablesId}:dropRowRange", "httpMethod": "POST", "id": "bigtableadmin.projects.instances.tables.dropRowRange", @@ -1887,37 +1827,6 @@ }, "locations": { "methods": { - "get": { - "description": "Gets information about a location.", - "flatPath": "v2/projects/{projectsId}/locations/{locationsId}", - "httpMethod": "GET", - "id": "bigtableadmin.projects.locations.get", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Resource name for the location.", - "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v2/{+name}", - "response": { - "$ref": "Location" - }, - "scopes": [ - "https://www.googleapis.com/auth/bigtable.admin", - "https://www.googleapis.com/auth/bigtable.admin.cluster", - "https://www.googleapis.com/auth/bigtable.admin.instance", - "https://www.googleapis.com/auth/cloud-bigtable.admin", - "https://www.googleapis.com/auth/cloud-bigtable.admin.cluster", - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/cloud-platform.read-only" - ] - }, "list": { "description": "Lists information about the supported locations for this service.", "flatPath": "v2/projects/{projectsId}/locations", @@ -2132,7 +2041,7 @@ "type": "string" }, "sourceBackup": { - "description": "Output only. Name of the backup from which this backup was copied. If a backup is not created by copying a backup, this field will be empty. Values are of the form: projects//instances//backups/.", + "description": "Output only. Name of the backup from which this backup was copied. If a backup is not created by copying a backup, this field will be empty. Values are of the form: projects//instances//clusters//backups/", "readOnly": true, "type": "string" }, @@ -2180,7 +2089,7 @@ "type": "string" }, "sourceBackup": { - "description": "Output only. Name of the backup from which this backup was copied. If a backup is not created by copying a backup, this field will be empty. Values are of the form: projects//instances//backups/.", + "description": "Output only. Name of the backup from which this backup was copied. If a backup is not created by copying a backup, this field will be empty. Values are of the form: projects//instances//clusters//backups/", "readOnly": true, "type": "string" }, @@ -2207,14 +2116,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -2239,10 +2148,6 @@ "consistencyToken": { "description": "Required. The token created using GenerateConsistencyToken for the Table.", "type": "string" - }, - "standardReadRemoteWrites": { - "$ref": "StandardReadRemoteWrites", - "description": "Checks that reads using an app profile with `StandardIsolation` can see all writes committed before the token was created, even if the read and write target different clusters." } }, "type": "object" @@ -3095,6 +3000,10 @@ "description": "Request message for google.bigtable.admin.v2.BigtableTableAdmin.ModifyColumnFamilies", "id": "ModifyColumnFamiliesRequest", "properties": { + "ignoreWarnings": { + "description": "Optional. If true, ignore safety checks when modifying the column families.", + "type": "boolean" + }, "modifications": { "description": "Required. Modifications to be atomically applied to the specified table's families. Entries are applied in order, meaning that earlier modifications can be masked by later ones (in the case of repeated updates to the same family, for example).", "items": { @@ -3413,12 +3322,6 @@ }, "type": "object" }, - "StandardReadRemoteWrites": { - "description": "Checks that all writes before the consistency token was generated is replicated in every cluster and readable.", - "id": "StandardReadRemoteWrites", - "properties": {}, - "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", diff --git a/discovery/googleapis/billingbudgets__v1.json b/discovery/googleapis/billingbudgets__v1.json index bed80d74c..4350b2097 100644 --- a/discovery/googleapis/billingbudgets__v1.json +++ b/discovery/googleapis/billingbudgets__v1.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231126", + "revision": "20240225", "rootUrl": "https://billingbudgets.googleapis.com/", "servicePath": "", "title": "Cloud Billing Budget API", diff --git a/discovery/googleapis/binaryauthorization__v1.json b/discovery/googleapis/binaryauthorization__v1.json index 595bf5166..9baedaf07 100644 --- a/discovery/googleapis/binaryauthorization__v1.json +++ b/discovery/googleapis/binaryauthorization__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231110", + "revision": "20240220", "rootUrl": "https://binaryauthorization.googleapis.com/", "servicePath": "", "title": "Binary Authorization API", @@ -434,6 +434,42 @@ }, "platforms": { "resources": { + "gke": { + "resources": { + "policies": { + "methods": { + "evaluate": { + "description": "Evaluates a Kubernetes object versus a GKE platform policy. Returns `NOT_FOUND` if the policy doesn't exist, `INVALID_ARGUMENT` if the policy or request is malformed and `PERMISSION_DENIED` if the client does not have sufficient permissions.", + "flatPath": "v1/projects/{projectsId}/platforms/gke/policies/{policiesId}:evaluate", + "httpMethod": "POST", + "id": "binaryauthorization.projects.platforms.gke.policies.evaluate", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the platform policy to evaluate in the format `projects/*/platforms/*/policies/*`.", + "location": "path", + "pattern": "^projects/[^/]+/platforms/gke/policies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:evaluate", + "request": { + "$ref": "EvaluateGkePolicyRequest" + }, + "response": { + "$ref": "EvaluateGkePolicyResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, "policies": { "methods": { "create": { @@ -766,6 +802,17 @@ }, "type": "object" }, + "AllowlistResult": { + "description": "Result of evaluating an image name allowlist.", + "id": "AllowlistResult", + "properties": { + "matchedPattern": { + "description": "The allowlist pattern that the image matched.", + "type": "string" + } + }, + "type": "object" + }, "AttestationAuthenticator": { "description": "An attestation authenticator that will be used to verify attestations. Typically this is just a set of public keys. Conceptually, an authenticator can be treated as always returning either \"authenticated\" or \"not authenticated\" when presented with a signed attestation (almost always assumed to be a [DSSE](https://github.com/secure-systems-lab/dsse) attestation). The details of how an authenticator makes this decision are specific to the type of 'authenticator' that this message wraps.", "id": "AttestationAuthenticator", @@ -812,7 +859,7 @@ "id": "AttestationSource", "properties": { "containerAnalysisAttestationProjects": { - "description": "The IDs of the GCP projects storing the SLSA attestations as Container Analysis Occurrences.", + "description": "The IDs of the Google Cloud projects that store the SLSA attestations as Container Analysis Occurrences, in the format `projects/[PROJECT_ID]`. Maximum number of `container_analysis_attestation_projects` allowed in each `AttestationSource` is 10.", "items": { "type": "string" }, @@ -882,14 +929,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -915,6 +962,10 @@ "$ref": "ImageFreshnessCheck", "description": "Optional. Require that an image is no older than a configured expiration time. Image age is determined by its upload time." }, + "sigstoreSignatureCheck": { + "$ref": "SigstoreSignatureCheck", + "description": "Optional. Require that an image was signed by Cosign with a trusted key. This check requires that both the image and signature are stored in Artifact Registry." + }, "simpleSigningAttestationCheck": { "$ref": "SimpleSigningAttestationCheck", "description": "Optional. Require a SimpleSigning-type attestation for every image in the deployment." @@ -934,6 +985,52 @@ }, "type": "object" }, + "CheckResult": { + "description": "Result of evaluating one check.", + "id": "CheckResult", + "properties": { + "allowlistResult": { + "$ref": "AllowlistResult", + "description": "If the image was exempted by an allow_pattern in the check, contains the pattern that the image name matched." + }, + "displayName": { + "description": "The name of the check.", + "type": "string" + }, + "evaluationResult": { + "$ref": "EvaluationResult", + "description": "If a check was evaluated, contains the result of the check." + }, + "explanation": { + "description": "Explanation of this check result.", + "type": "string" + }, + "index": { + "description": "The index of the check.", + "format": "int64", + "type": "string" + }, + "type": { + "description": "The type of the check.", + "type": "string" + } + }, + "type": "object" + }, + "CheckResults": { + "description": "Result of evaluating one or more checks.", + "id": "CheckResults", + "properties": { + "results": { + "description": "Per-check details.", + "items": { + "$ref": "CheckResult" + }, + "type": "array" + } + }, + "type": "object" + }, "CheckSet": { "description": "A conjunction of policy checks, scoped to a particular namespace or Kubernetes service account. In order for evaluation of a `CheckSet` to return \"allowed\" for a given image in a given Pod, one of the following conditions must be satisfied: * The image is explicitly exempted by an entry in `image_allowlist`, OR * ALL of the `checks` evaluate to \"allowed\".", "id": "CheckSet", @@ -960,12 +1057,112 @@ }, "type": "object" }, + "CheckSetResult": { + "description": "Result of evaluating one check set.", + "id": "CheckSetResult", + "properties": { + "allowlistResult": { + "$ref": "AllowlistResult", + "description": "If the image was exempted by an allow_pattern in the check set, contains the pattern that the image name matched." + }, + "checkResults": { + "$ref": "CheckResults", + "description": "If checks were evaluated, contains the results of evaluating each check." + }, + "displayName": { + "description": "The name of the check set.", + "type": "string" + }, + "explanation": { + "description": "Explanation of this check set result. Only populated if no checks were evaluated.", + "type": "string" + }, + "index": { + "description": "The index of the check set.", + "format": "int64", + "type": "string" + }, + "scope": { + "$ref": "Scope", + "description": "The scope of the check set." + } + }, + "type": "object" + }, "Empty": { "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": "Empty", "properties": {}, "type": "object" }, + "EvaluateGkePolicyRequest": { + "description": "Request message for PlatformPolicyEvaluationService.EvaluateGkePolicy.", + "id": "EvaluateGkePolicyRequest", + "properties": { + "resource": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Required. JSON or YAML blob representing a Kubernetes resource.", + "type": "object" + } + }, + "type": "object" + }, + "EvaluateGkePolicyResponse": { + "description": "Response message for PlatformPolicyEvaluationService.EvaluateGkePolicy.", + "id": "EvaluateGkePolicyResponse", + "properties": { + "results": { + "description": "Evaluation result for each Pod contained in the request.", + "items": { + "$ref": "PodResult" + }, + "type": "array" + }, + "verdict": { + "description": "The result of evaluating all Pods in the request.", + "enum": [ + "VERDICT_UNSPECIFIED", + "CONFORMANT", + "NON_CONFORMANT", + "ERROR" + ], + "enumDescriptions": [ + "Not specified. This should never be used.", + "All Pods in the request conform to the policy.", + "At least one Pod does not conform to the policy.", + "Encountered at least one error evaluating a Pod and all other Pods conform to the policy. Non-conformance has precedence over errors." + ], + "type": "string" + } + }, + "type": "object" + }, + "EvaluationResult": { + "description": "Result of evaluating one check.", + "id": "EvaluationResult", + "properties": { + "verdict": { + "description": "The result of evaluating this check.", + "enum": [ + "CHECK_VERDICT_UNSPECIFIED", + "CONFORMANT", + "NON_CONFORMANT", + "ERROR" + ], + "enumDescriptions": [ + "Not specified. This should never be used.", + "The check was successfully evaluated and the image satisfied the check.", + "The check was successfully evaluated and the image did not satisfy the check.", + "The check was not successfully evaluated." + ], + "type": "string" + } + }, + "type": "object" + }, "Expr": { "description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.", "id": "Expr", @@ -1057,6 +1254,45 @@ }, "type": "object" }, + "ImageResult": { + "description": "Result of evaluating one image.", + "id": "ImageResult", + "properties": { + "allowlistResult": { + "$ref": "AllowlistResult", + "description": "If the image was exempted by a top-level allow_pattern, contains the allowlist pattern that the image name matched." + }, + "checkSetResult": { + "$ref": "CheckSetResult", + "description": "If a check set was evaluated, contains the result of the check set. Empty if there were no check sets." + }, + "explanation": { + "description": "Explanation of this image result. Only populated if no check sets were evaluated.", + "type": "string" + }, + "imageUri": { + "description": "Image URI from the request.", + "type": "string" + }, + "verdict": { + "description": "The result of evaluating this image.", + "enum": [ + "IMAGE_VERDICT_UNSPECIFIED", + "CONFORMANT", + "NON_CONFORMANT", + "ERROR" + ], + "enumDescriptions": [ + "Not specified. This should never be used.", + "Image conforms to the policy.", + "Image does not conform to the policy.", + "Error evaluating the image. Non-conformance has precedence over errors." + ], + "type": "string" + } + }, + "type": "object" + }, "Jwt": { "id": "Jwt", "properties": { @@ -1204,6 +1440,48 @@ }, "type": "object" }, + "PodResult": { + "description": "Result of evaluating the whole GKE policy for one Pod.", + "id": "PodResult", + "properties": { + "imageResults": { + "description": "Per-image details.", + "items": { + "$ref": "ImageResult" + }, + "type": "array" + }, + "kubernetesNamespace": { + "description": "The Kubernetes namespace of the Pod.", + "type": "string" + }, + "kubernetesServiceAccount": { + "description": "The Kubernetes service account of the Pod.", + "type": "string" + }, + "podName": { + "description": "The name of the Pod.", + "type": "string" + }, + "verdict": { + "description": "The result of evaluating this Pod.", + "enum": [ + "POD_VERDICT_UNSPECIFIED", + "CONFORMANT", + "NON_CONFORMANT", + "ERROR" + ], + "enumDescriptions": [ + "Not specified. This should never be used.", + "All images conform to the policy.", + "At least one image does not conform to the policy.", + "Encountered at least one error evaluating an image and all other images with non-error verdicts conform to the policy. Non-conformance has precedence over errors." + ], + "type": "string" + } + }, + "type": "object" + }, "Policy": { "description": "A policy for container image binary authorization.", "id": "Policy", @@ -1325,6 +1603,60 @@ }, "type": "object" }, + "SigstoreAuthority": { + "description": "A Sigstore authority, used to verify signatures that are created by Sigstore. An authority is analogous to an attestation authenticator, verifying that a signature is valid or invalid.", + "id": "SigstoreAuthority", + "properties": { + "displayName": { + "description": "Optional. A user-provided name for this `SigstoreAuthority`. This field has no effect on the policy evaluation behavior except to improve readability of messages in evaluation results.", + "type": "string" + }, + "publicKeySet": { + "$ref": "SigstorePublicKeySet", + "description": "Required. A simple set of public keys. A signature is considered valid if any keys in the set validate the signature." + } + }, + "type": "object" + }, + "SigstorePublicKey": { + "description": "A Sigstore public key. `SigstorePublicKey` is the public key material used to authenticate Sigstore signatures.", + "id": "SigstorePublicKey", + "properties": { + "publicKeyPem": { + "description": "The public key material in PEM format.", + "type": "string" + } + }, + "type": "object" + }, + "SigstorePublicKeySet": { + "description": "A bundle of Sigstore public keys, used to verify Sigstore signatures. A signature is authenticated by a `SigstorePublicKeySet` if any of the keys verify it.", + "id": "SigstorePublicKeySet", + "properties": { + "publicKeys": { + "description": "Required. `public_keys` must have at least one entry.", + "items": { + "$ref": "SigstorePublicKey" + }, + "type": "array" + } + }, + "type": "object" + }, + "SigstoreSignatureCheck": { + "description": "A Sigstore signature check, which verifies the Sigstore signature associated with an image.", + "id": "SigstoreSignatureCheck", + "properties": { + "sigstoreAuthorities": { + "description": "Required. The authorities required by this check to verify the signature. A signature only needs to be verified by one authority to pass the check.", + "items": { + "$ref": "SigstoreAuthority" + }, + "type": "array" + } + }, + "type": "object" + }, "SimpleSigningAttestationCheck": { "description": "Require a signed [DSSE](https://github.com/secure-systems-lab/dsse) attestation with type SimpleSigning.", "id": "SimpleSigningAttestationCheck", @@ -1337,7 +1669,7 @@ "type": "array" }, "containerAnalysisAttestationProjects": { - "description": "Optional. The projects where attestations are stored as Container Analysis Occurrences. Only one attestation needs to successfully verify an image for this check to pass, so a single verified attestation found in any of `container_analysis_attestation_projects` is sufficient for the check to pass. When fetching Occurrences from Container Analysis, only 'AttestationOccurrence' kinds are considered. In the future, additional Occurrence kinds may be added to the query.", + "description": "Optional. The projects where attestations are stored as Container Analysis Occurrences, in the format `projects/[PROJECT_ID]`. Only one attestation needs to successfully verify an image for this check to pass, so a single verified attestation found in any of `container_analysis_attestation_projects` is sufficient for the check to pass. When fetching Occurrences from Container Analysis, only `AttestationOccurrence` kinds are considered. In the future, additional Occurrence kinds may be added to the query. Maximum number of `container_analysis_attestation_projects` allowed in each `SimpleSigningAttestationCheck` is 10.", "items": { "type": "string" }, @@ -1522,7 +1854,7 @@ "type": "array" }, "containerAnalysisVulnerabilityProjects": { - "description": "Optional. The projects where vulnerabilities are stored as Container Analysis Occurrences. Each project is expressed in the resource format of `projects/[PROJECT_ID]`, e.g., `projects/my-gcp-project`. An attempt will be made for each project to fetch vulnerabilities, and all valid vulnerabilities will be used to check against the vulnerability policy. If no valid scan is found in all projects configured here, an error will be returned for the check.", + "description": "Optional. The projects where vulnerabilities are stored as Container Analysis Occurrences. Each project is expressed in the resource format of `projects/[PROJECT_ID]`, e.g., `projects/my-gcp-project`. An attempt will be made for each project to fetch vulnerabilities, and all valid vulnerabilities will be used to check against the vulnerability policy. If no valid scan is found in all projects configured here, an error will be returned for the check. Maximum number of `container_analysis_vulnerability_projects` allowed in each `VulnerabilityCheck` is 10.", "items": { "type": "string" }, diff --git a/discovery/googleapis/blockchainnodeengine__v1.json b/discovery/googleapis/blockchainnodeengine__v1.json index eb6ed0c04..a34340133 100644 --- a/discovery/googleapis/blockchainnodeengine__v1.json +++ b/discovery/googleapis/blockchainnodeengine__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231108", + "revision": "20240223", "rootUrl": "https://blockchainnodeengine.googleapis.com/", "servicePath": "", "title": "Blockchain Node Engine API", @@ -536,7 +536,7 @@ "type": "string" }, "privateServiceConnectEnabled": { - "description": "Optional. When true, the node is only accessible via Private Service Connect; no public endpoints are exposed. Otherwise, the node is only accessible via public endpoints. See https://cloud.google.com/vpc/docs/private-service-connect.", + "description": "Optional. When true, the node is only accessible via Private Service Connect; no public endpoints are exposed. Otherwise, the node is only accessible via public endpoints. Warning: Private Service Connect enabled nodes may require a manual migration effort to remain compatible with future versions of the product. If this feature is enabled, you will be notified of these changes along with any required action to avoid disruption. See https://cloud.google.com/vpc/docs/private-service-connect.", "type": "boolean" }, "state": { @@ -630,10 +630,6 @@ "description": "Immutable. Enables JSON-RPC access to functions in the `debug` namespace. Defaults to `false`.", "type": "boolean" }, - "beaconFeeRecipient": { - "description": "An Ethereum address which the beacon client will send fee rewards to if no recipient is configured in the validator client. See https://lighthouse-book.sigmaprime.io/suggested-fee-recipient.html or https://docs.prylabs.network/docs/execution-node/fee-recipient for examples of how this is used. Note that while this is often described as \"suggested\", as we run the execution node we can trust the execution node, and therefore this is considered enforced.", - "type": "string" - }, "consensusClient": { "description": "Immutable. The consensus client.", "enum": [ @@ -704,6 +700,10 @@ "Holds the same data as full node as well as all of the blockchain's history state data dating back to the Genesis Block." ], "type": "string" + }, + "validatorConfig": { + "$ref": "ValidatorConfig", + "description": "Configuration for validator-related parameters on the beacon client, and for any GCP-managed validator client." } }, "type": "object" @@ -957,6 +957,28 @@ } }, "type": "object" + }, + "ValidatorConfig": { + "description": "Configuration for validator-related parameters on the beacon client, and for any GCP-managed validator client.", + "id": "ValidatorConfig", + "properties": { + "beaconFeeRecipient": { + "description": "An Ethereum address which the beacon client will send fee rewards to if no recipient is configured in the validator client. See https://lighthouse-book.sigmaprime.io/suggested-fee-recipient.html or https://docs.prylabs.network/docs/execution-node/fee-recipient for examples of how this is used. Note that while this is often described as \"suggested\", as we run the execution node we can trust the execution node, and therefore this is considered enforced.", + "type": "string" + }, + "managedValidatorClient": { + "description": "Immutable. When true, deploys a GCP-managed validator client alongside the beacon client.", + "type": "boolean" + }, + "mevRelayUrls": { + "description": "URLs for MEV-relay services to use for block building. When set, a GCP-managed MEV-boost service is configured on the beacon client.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" } } } diff --git a/discovery/googleapis/blogger__v3.json b/discovery/googleapis/blogger__v3.json index a65e11e16..e50dcf25e 100644 --- a/discovery/googleapis/blogger__v3.json +++ b/discovery/googleapis/blogger__v3.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231128", + "revision": "20240227", "rootUrl": "https://blogger.googleapis.com/", "servicePath": "", "title": "Blogger API", diff --git a/discovery/googleapis/books__v1.json b/discovery/googleapis/books__v1.json index 1e215307c..a36547d10 100644 --- a/discovery/googleapis/books__v1.json +++ b/discovery/googleapis/books__v1.json @@ -24,7 +24,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231107", + "revision": "20240222", "rootUrl": "https://books.googleapis.com/", "servicePath": "", "title": "Books API", @@ -1245,6 +1245,11 @@ "required": true, "type": "string" }, + "source": { + "description": "Optional. String to identify the originator of this request.", + "location": "query", + "type": "string" + }, "volumeId": { "description": "Volume id to get the summary for.", "location": "query", diff --git a/discovery/googleapis/businessprofileperformance__v1.json b/discovery/googleapis/businessprofileperformance__v1.json index bc15830aa..5dfa01eb4 100644 --- a/discovery/googleapis/businessprofileperformance__v1.json +++ b/discovery/googleapis/businessprofileperformance__v1.json @@ -16,7 +16,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240227", "rootUrl": "https://businessprofileperformance.googleapis.com/", "servicePath": "", "title": "Business Profile Performance API", diff --git a/discovery/googleapis/calendar__v3.json b/discovery/googleapis/calendar__v3.json index d0bf6b2d4..4610e3d42 100644 --- a/discovery/googleapis/calendar__v3.json +++ b/discovery/googleapis/calendar__v3.json @@ -36,7 +36,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231116", + "revision": "20240223", "rootUrl": "https://www.googleapis.com/", "servicePath": "calendar/v3/", "title": "Calendar API", @@ -1082,7 +1082,7 @@ ], "parameters": { "alwaysIncludeEmail": { - "description": "Deprecated and ignored. A value will always be returned in the email field for the organizer, creator and attendees, even if no real email address is available (i.e. a generated, non-working value will be provided).", + "description": "Deprecated and ignored.", "location": "query", "type": "boolean" }, @@ -1093,7 +1093,19 @@ "type": "string" }, "eventTypes": { - "description": "Event types to return. Optional. Possible values are: \n- \"default\" \n- \"focusTime\" \n- \"outOfOffice\" \n- \"workingLocation\"This parameter can be repeated multiple times to return events of different types. Currently, these are the only allowed values for this field: \n- [\"default\", \"focusTime\", \"outOfOffice\"] \n- [\"default\", \"focusTime\", \"outOfOffice\", \"workingLocation\"] \n- [\"workingLocation\"] The default is [\"default\", \"focusTime\", \"outOfOffice\"].\nAdditional combinations of these four event types will be made available in later releases.", + "description": "Event types to return. Optional. This parameter can be repeated multiple times to return events of different types. The default is [\"default\", \"focusTime\", \"outOfOffice\"].", + "enum": [ + "default", + "focusTime", + "outOfOffice", + "workingLocation" + ], + "enumDescriptions": [ + "Regular events.", + "Focus time events.", + "Out of office events.", + "Working location events." + ], "location": "query", "repeated": true, "type": "string" @@ -1143,7 +1155,7 @@ "type": "string" }, "q": { - "description": "Free text search terms to find events that match these terms in the following fields:\n\n- summary \n- description \n- location \n- attendee's displayName \n- attendee's email \n- workingLocationProperties.officeLocation.buildingId \n- workingLocationProperties.officeLocation.deskId \n- workingLocationProperties.officeLocation.label \n- workingLocationProperties.customLocation.label \nThese search terms also match predefined keywords against all display title translations of working location, out-of-office, and focus-time events. For example, searching for \"Office\" or \"Bureau\" returns working location events of type officeLocation, whereas searching for \"Out of office\" or \"Abwesend\" returns out-of-office events. Optional.", + "description": "Free text search terms to find events that match these terms in the following fields:\n\n- summary \n- description \n- location \n- attendee's displayName \n- attendee's email \n- organizer's displayName \n- organizer's email \n- workingLocationProperties.officeLocation.buildingId \n- workingLocationProperties.officeLocation.deskId \n- workingLocationProperties.officeLocation.label \n- workingLocationProperties.customLocation.label \nThese search terms also match predefined keywords against all display title translations of working location, out-of-office, and focus-time events. For example, searching for \"Office\" or \"Bureau\" returns working location events of type officeLocation, whereas searching for \"Out of office\" or \"Abwesend\" returns out-of-office events. Optional.", "location": "query", "type": "string" }, @@ -1485,7 +1497,7 @@ ], "parameters": { "alwaysIncludeEmail": { - "description": "Deprecated and ignored. A value will always be returned in the email field for the organizer, creator and attendees, even if no real email address is available (i.e. a generated, non-working value will be provided).", + "description": "Deprecated and ignored.", "location": "query", "type": "boolean" }, @@ -1496,7 +1508,19 @@ "type": "string" }, "eventTypes": { - "description": "Event types to return. Optional. Possible values are: \n- \"default\" \n- \"focusTime\" \n- \"outOfOffice\" \n- \"workingLocation\"This parameter can be repeated multiple times to return events of different types. Currently, these are the only allowed values for this field: \n- [\"default\", \"focusTime\", \"outOfOffice\"] \n- [\"default\", \"focusTime\", \"outOfOffice\", \"workingLocation\"] \n- [\"workingLocation\"] The default is [\"default\", \"focusTime\", \"outOfOffice\"].\nAdditional combinations of these four event types will be made available in later releases.", + "description": "Event types to return. Optional. This parameter can be repeated multiple times to return events of different types. The default is [\"default\", \"focusTime\", \"outOfOffice\"].", + "enum": [ + "default", + "focusTime", + "outOfOffice", + "workingLocation" + ], + "enumDescriptions": [ + "Regular events.", + "Focus time events.", + "Out of office events.", + "Working location events." + ], "location": "query", "repeated": true, "type": "string" @@ -1546,7 +1570,7 @@ "type": "string" }, "q": { - "description": "Free text search terms to find events that match these terms in the following fields:\n\n- summary \n- description \n- location \n- attendee's displayName \n- attendee's email \n- workingLocationProperties.officeLocation.buildingId \n- workingLocationProperties.officeLocation.deskId \n- workingLocationProperties.officeLocation.label \n- workingLocationProperties.customLocation.label \nThese search terms also match predefined keywords against all display title translations of working location, out-of-office, and focus-time events. For example, searching for \"Office\" or \"Bureau\" returns working location events of type officeLocation, whereas searching for \"Out of office\" or \"Abwesend\" returns out-of-office events. Optional.", + "description": "Free text search terms to find events that match these terms in the following fields:\n\n- summary \n- description \n- location \n- attendee's displayName \n- attendee's email \n- organizer's displayName \n- organizer's email \n- workingLocationProperties.officeLocation.buildingId \n- workingLocationProperties.officeLocation.deskId \n- workingLocationProperties.officeLocation.label \n- workingLocationProperties.customLocation.label \nThese search terms also match predefined keywords against all display title translations of working location, out-of-office, and focus-time events. For example, searching for \"Office\" or \"Bureau\" returns working location events of type officeLocation, whereas searching for \"Out of office\" or \"Abwesend\" returns out-of-office events. Optional.", "location": "query", "type": "string" }, @@ -2422,7 +2446,7 @@ }, "focusTimeProperties": { "$ref": "EventFocusTimeProperties", - "description": "Focus Time event data." + "description": "Focus Time event data. Used if eventType is focusTime." }, "gadget": { "description": "A gadget that extends this event. Gadgets are deprecated; this structure is instead only used for returning birthday calendar metadata.", @@ -2547,7 +2571,7 @@ }, "outOfOfficeProperties": { "$ref": "EventOutOfOfficeProperties", - "description": "Out of office event data." + "description": "Out of office event data. Used if eventType is outOfOffice." }, "privateCopy": { "default": "false", diff --git a/discovery/googleapis/certificatemanager__v1.json b/discovery/googleapis/certificatemanager__v1.json index c6c5d9a00..647f283d8 100644 --- a/discovery/googleapis/certificatemanager__v1.json +++ b/discovery/googleapis/certificatemanager__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231103", + "revision": "20240220", "rootUrl": "https://certificatemanager.googleapis.com/", "servicePath": "", "title": "Certificate Manager API", @@ -1648,6 +1648,20 @@ "description": "A user-defined name of the dns authorization. DnsAuthorization names must be unique globally and match pattern `projects/*/locations/*/dnsAuthorizations/*`.", "type": "string" }, + "type": { + "description": "Immutable. Type of DnsAuthorization. If unset during resource creation the following default will be used: - in location global: FIXED_RECORD.", + "enum": [ + "TYPE_UNSPECIFIED", + "FIXED_RECORD", + "PER_PROJECT_RECORD" + ], + "enumDescriptions": [ + "Type is unspecified.", + "FIXED_RECORD DNS authorization uses DNS-01 validation method.", + "PER_PROJECT_RECORD DNS authorization allows for independent management of Google-managed certificates with DNS authorization across multiple projects." + ], + "type": "string" + }, "updateTime": { "description": "Output only. The last update timestamp of a DnsAuthorization.", "format": "google-datetime", diff --git a/discovery/googleapis/chat__v1.json b/discovery/googleapis/chat__v1.json index bfdb91460..b172998a8 100644 --- a/discovery/googleapis/chat__v1.json +++ b/discovery/googleapis/chat__v1.json @@ -39,7 +39,7 @@ "description": "View messages and reactions in Google Chat" }, "https://www.googleapis.com/auth/chat.spaces": { - "description": "Create conversations and spaces and view or update metadata (including history settings) in Google Chat" + "description": "Create conversations and spaces and see or edit metadata (including history settings and access settings) in Google Chat" }, "https://www.googleapis.com/auth/chat.spaces.create": { "description": "Create new conversations in Google Chat" @@ -54,7 +54,7 @@ "baseUrl": "https://chat.googleapis.com/", "batchPath": "batch", "canonicalName": "Hangouts Chat", - "description": "Enables apps to fetch information and perform actions in Google Chat. Authentication is a prerequisite for using the Google Chat REST API.", + "description": "The Google Chat API lets you build Chat apps to integrate your services with Google Chat and manage Chat resources such as spaces, members, and messages.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/hangouts/chat", "icons": { @@ -67,7 +67,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231121", + "revision": "20240222", "rootUrl": "https://chat.googleapis.com/", "servicePath": "", "title": "Google Chat API", @@ -232,6 +232,34 @@ }, "spaces": { "methods": { + "completeImport": { + "description": "Completes the [import process](https://developers.google.com/chat/api/guides/import-data) for the specified space and makes it visible to users. Requires app authentication and domain-wide delegation. For more information, see [Authorize Google Chat apps to import data](https://developers.google.com/chat/api/guides/authorize-import).", + "flatPath": "v1/spaces/{spacesId}:completeImport", + "httpMethod": "POST", + "id": "chat.spaces.completeImport", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the import mode space. Format: `spaces/{space}`", + "location": "path", + "pattern": "^spaces/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:completeImport", + "request": { + "$ref": "CompleteImportSpaceRequest" + }, + "response": { + "$ref": "CompleteImportSpaceResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/chat.import" + ] + }, "create": { "description": "Creates a named space. Spaces grouped by topics aren't supported. For an example, see [Create a space](https://developers.google.com/chat/api/guides/v1/spaces/create). If you receive the error message `ALREADY_EXISTS` when creating a space, try a different `displayName`. An existing space within the Google Workspace organization might already use this display name. Requires [user authentication](https://developers.google.com/chat/api/guides/auth/users).", "flatPath": "v1/spaces", @@ -342,7 +370,7 @@ "parameterOrder": [], "parameters": { "filter": { - "description": "Optional. A query filter. Requires [user authentication](https://developers.google.com/chat/api/guides/auth/users). You can filter spaces by the space type ([`space_type`](https://developers.google.com/chat/api/reference/rest/v1/spaces#spacetype)). To filter by space type, you must specify valid enum value, such as `SPACE` or `GROUP_CHAT` (the `space_type` can't be `SPACE_TYPE_UNSPECIFIED`). To query for multiple space types, use the `OR` operator. For example, the following queries are valid: ``` space_type = \"SPACE\" spaceType = \"GROUP_CHAT\" OR spaceType = \"DIRECT_MESSAGE\" ``` Invalid queries are rejected by the server with an `INVALID_ARGUMENT` error. With [app authentication](https://developers.google.com/chat/api/guides/auth/service-accounts), this field is ignored and the query always returns all spaces. But the Chat API still validates the query syntax, so invalid queries are still rejected.", + "description": "Optional. A query filter. You can filter spaces by the space type ([`space_type`](https://developers.google.com/chat/api/reference/rest/v1/spaces#spacetype)). To filter by space type, you must specify valid enum value, such as `SPACE` or `GROUP_CHAT` (the `space_type` can't be `SPACE_TYPE_UNSPECIFIED`). To query for multiple space types, use the `OR` operator. For example, the following queries are valid: ``` space_type = \"SPACE\" spaceType = \"GROUP_CHAT\" OR spaceType = \"DIRECT_MESSAGE\" ``` Invalid queries are rejected by the server with an `INVALID_ARGUMENT` error.", "location": "query", "type": "string" }, @@ -385,7 +413,7 @@ "type": "string" }, "updateMask": { - "description": "Required. The updated field paths, comma separated if there are multiple. Currently supported field paths: - `display_name` (Only supports changing the display name of a space with the `SPACE` type, or when also including the `space_type` mask to change a `GROUP_CHAT` space type to `SPACE`. Trying to update the display name of a `GROUP_CHAT` or a `DIRECT_MESSAGE` space results in an invalid argument error. If you receive the error message `ALREADY_EXISTS` when updating the `displayName`, try a different `displayName`. An existing space within the Google Workspace organization might already use this display name.) - `space_type` (Only supports changing a `GROUP_CHAT` space type to `SPACE`. Include `display_name` together with `space_type` in the update mask and ensure that the specified space has a non-empty display name and the `SPACE` space type. Including the `space_type` mask and the `SPACE` type in the specified space when updating the display name is optional if the existing space already has the `SPACE` type. Trying to update the space type in other ways results in an invalid argument error). - `space_details` - `space_history_state` (Supports [turning history on or off for the space](https://support.google.com/chat/answer/7664687) if [the organization allows users to change their history setting](https://support.google.com/a/answer/7664184). Warning: mutually exclusive with all other field paths.)", + "description": "Required. The updated field paths, comma separated if there are multiple. Currently supported field paths: - `display_name` (Only supports changing the display name of a space with the `SPACE` type, or when also including the `space_type` mask to change a `GROUP_CHAT` space type to `SPACE`. Trying to update the display name of a `GROUP_CHAT` or a `DIRECT_MESSAGE` space results in an invalid argument error. If you receive the error message `ALREADY_EXISTS` when updating the `displayName`, try a different `displayName`. An existing space within the Google Workspace organization might already use this display name.) - `space_type` (Only supports changing a `GROUP_CHAT` space type to `SPACE`. Include `display_name` together with `space_type` in the update mask and ensure that the specified space has a non-empty display name and the `SPACE` space type. Including the `space_type` mask and the `SPACE` type in the specified space when updating the display name is optional if the existing space already has the `SPACE` type. Trying to update the space type in other ways results in an invalid argument error). - `space_details` - `space_history_state` (Supports [turning history on or off for the space](https://support.google.com/chat/answer/7664687) if [the organization allows users to change their history setting](https://support.google.com/a/answer/7664184). Warning: mutually exclusive with all other field paths.) - Developer Preview: `access_settings.audience` (Supports changing the [access setting](https://support.google.com/chat/answer/11971020) of a space. If no audience is specified in the access setting, the space's access setting is updated to restricted. Warning: mutually exclusive with all other field paths.)", "format": "google-fieldmask", "location": "query", "type": "string" @@ -542,6 +570,11 @@ "required": true, "type": "string" }, + "showGroups": { + "description": "Optional. When `true`, also returns memberships associated with a Google Group, in addition to other types of memberships. If a filter is set, Google Group memberships that don't match the filter criteria aren't returned.", + "location": "query", + "type": "boolean" + }, "showInvited": { "description": "Optional. When `true`, also returns memberships associated with invited members, in addition to other types of memberships. If a filter is set, invited memberships that don't match the filter criteria aren't returned. Currently requires [user authentication](https://developers.google.com/chat/api/guides/auth/users).", "location": "query", @@ -573,7 +606,7 @@ ], "parameters": { "messageId": { - "description": "Optional. A custom name for a Chat message assigned at creation. Must start with `client-` and contain only lowercase letters, numbers, and hyphens up to 63 characters in length. Specify this field to get, update, or delete the message with the specified value. Assigning a custom name lets a a Chat app recall the message without saving the message `name` from the [response body](/chat/api/reference/rest/v1/spaces.messages/get#response-body) returned when creating the message. Assigning a custom name doesn't replace the generated `name` field, the message's resource name. Instead, it sets the custom name as the `clientAssignedMessageId` field, which you can reference while processing later operations, like updating or deleting the message. For example usage, see [Name a created message](https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message).", + "description": "Optional. A custom ID for a message. Lets Chat apps get, update, or delete a message without needing to store the system-assigned ID in the message's resource name (represented in the message `name` field). The value for this field must meet the following requirements: * Begins with `client-`. For example, `client-custom-name` is a valid custom ID, but `custom-name` is not. * Contains up to 63 characters and only lowercase letters, numbers, and hyphens. * Is unique within a space. A Chat app can't use the same custom ID for different messages. For details, see [Name a message](https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message).", "location": "query", "type": "string" }, @@ -640,7 +673,7 @@ "type": "boolean" }, "name": { - "description": "Required. Resource name of the message that you want to delete, in the form `spaces/*/messages/*` Example: `spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB`", + "description": "Required. Resource name of the message. Format: `spaces/{space}/messages/{message}` If you've set a custom ID for your message, you can use the value from the `clientAssignedMessageId` field for `{message}`. For details, see [Name a message] (https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message).", "location": "path", "pattern": "^spaces/[^/]+/messages/[^/]+$", "required": true, @@ -667,7 +700,7 @@ ], "parameters": { "name": { - "description": "Required. Resource name of the message to retrieve. Format: `spaces/{space}/messages/{message}` If the message begins with `client-`, then it has a custom name assigned by a Chat app that created it with the Chat REST API. That Chat app (but not others) can pass the custom name to get, update, or delete the message. To learn more, see [create and name a message] (https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message).", + "description": "Required. Resource name of the message. Format: `spaces/{space}/messages/{message}` If you've set a custom ID for your message, you can use the value from the `clientAssignedMessageId` field for `{message}`. For details, see [Name a message] (https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message).", "location": "path", "pattern": "^spaces/[^/]+/messages/[^/]+$", "required": true, @@ -752,14 +785,14 @@ "type": "boolean" }, "name": { - "description": "Resource name in the form `spaces/*/messages/*`. Example: `spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB`", + "description": "Resource name of the message. Format: `spaces/{space}/messages/{message}` Where `{space}` is the ID of the space where the message is posted and `{message}` is a system-assigned ID for the message. For example, `spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB`. If you set a custom ID when you create a message, you can use this ID to specify the message in a request by replacing `{message}` with the value from the `clientAssignedMessageId` field. For example, `spaces/AAAAAAAAAAA/messages/client-custom-name`. For details, see [Name a message](https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message).", "location": "path", "pattern": "^spaces/[^/]+/messages/[^/]+$", "required": true, "type": "string" }, "updateMask": { - "description": "Required. The field paths to update. Separate multiple values with commas. Currently supported field paths: - `text` - `attachment` - `cards` (Requires [app authentication](/chat/api/guides/auth/service-accounts).) - `cards_v2` (Requires [app authentication](/chat/api/guides/auth/service-accounts).)", + "description": "Required. The field paths to update. Separate multiple values with commas or use `*` to update all field paths. Currently supported field paths: - `text` - `attachment` - `cards` (Requires [app authentication](/chat/api/guides/auth/service-accounts).) - `cards_v2` (Requires [app authentication](/chat/api/guides/auth/service-accounts).) - Developer Preview: `accessory_widgets` (Requires [app authentication](/chat/api/guides/auth/service-accounts).)", "format": "google-fieldmask", "location": "query", "type": "string" @@ -793,14 +826,14 @@ "type": "boolean" }, "name": { - "description": "Resource name in the form `spaces/*/messages/*`. Example: `spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB`", + "description": "Resource name of the message. Format: `spaces/{space}/messages/{message}` Where `{space}` is the ID of the space where the message is posted and `{message}` is a system-assigned ID for the message. For example, `spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB`. If you set a custom ID when you create a message, you can use this ID to specify the message in a request by replacing `{message}` with the value from the `clientAssignedMessageId` field. For example, `spaces/AAAAAAAAAAA/messages/client-custom-name`. For details, see [Name a message](https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message).", "location": "path", "pattern": "^spaces/[^/]+/messages/[^/]+$", "required": true, "type": "string" }, "updateMask": { - "description": "Required. The field paths to update. Separate multiple values with commas. Currently supported field paths: - `text` - `attachment` - `cards` (Requires [app authentication](/chat/api/guides/auth/service-accounts).) - `cards_v2` (Requires [app authentication](/chat/api/guides/auth/service-accounts).)", + "description": "Required. The field paths to update. Separate multiple values with commas or use `*` to update all field paths. Currently supported field paths: - `text` - `attachment` - `cards` (Requires [app authentication](/chat/api/guides/auth/service-accounts).) - `cards_v2` (Requires [app authentication](/chat/api/guides/auth/service-accounts).) - Developer Preview: `accessory_widgets` (Requires [app authentication](/chat/api/guides/auth/service-accounts).)", "format": "google-fieldmask", "location": "query", "type": "string" @@ -1283,7 +1316,7 @@ "type": "object" }, "CardWithId": { - "description": "A [card](https://developers.google.com/chat/api/reference/rest/v1/cards) in a Google Chat message. Only Chat apps can create cards. If your Chat app [authenticates as a user](https://developers.google.com/chat/api/guides/auth/users), the message can't contain cards.", + "description": "A [card](https://developers.google.com/chat/api/reference/rest/v1/cards) in a Google Chat message. Only Chat apps can create cards. If your Chat app [authenticates as a user](https://developers.google.com/chat/api/guides/auth/users), the message can't contain cards. [Card builder](https://addons.gsuite.google.com/uikit/builder)", "id": "CardWithId", "properties": { "card": { @@ -1317,7 +1350,7 @@ "type": "object" }, "ChatClientDataSourceMarkup": { - "description": "Chat apps only. For a `SelectionInput` widget that uses a multiselect menu, a data source from Google Chat. The data source populates selection items for the multiselect menu. For example, a user can select Google Chat spaces that they're a member of.", + "description": "For a `SelectionInput` widget that uses a multiselect menu, a data source from Google Chat. The data source populates selection items for the multiselect menu. For example, a user can select Google Chat spaces that they're a member of. [Google Chat apps](https://developers.google.com/chat):", "id": "ChatClientDataSourceMarkup", "properties": { "spaceDataSource": { @@ -1362,7 +1395,7 @@ "additionalProperties": { "$ref": "Inputs" }, - "description": "A map containing the current values of the widgets in a card. The map keys are the string IDs assigned to each widget, and the values represent inputs to the widget. Depending on the input data type, a different object represents each input: For single-value widgets, `StringInput`. For multi-value widgets, an array of `StringInput` objects. For a date-time picker, a `DateTimeInput`. For a date-only picker, a `DateInput`. For a time-only picker, a `TimeInput`. Corresponds with the data entered by a user on a card in a [dialog](https://developers.google.com/chat/how-tos/dialogs).", + "description": "A map containing the values that a user inputs in a widget from a card or dialog. The map keys are the string IDs assigned to each widget, and the values represent inputs to the widget. For details, see [Process information inputted by users](https://developers.google.com/chat/ui/read-form-data).", "type": "object" }, "hostApp": { @@ -1378,7 +1411,8 @@ "SHEETS", "SLIDES", "DRAWINGS", - "CHAT" + "CHAT", + "CHAT_IN_GMAIL" ], "enumDescriptions": [ "Google can't identify a host app.", @@ -1391,7 +1425,8 @@ "The add-on launches from Google Sheets.", "The add-on launches from Google Slides.", "The add-on launches from Google Drawings.", - "A Google Chat app. Not used for Google Workspace Add-ons." + "A Google Chat app. Not used for Google Workspace Add-ons.", + "The add-on or appfinder widget launches from Chat-in-Gmail" ], "type": "string" }, @@ -1433,6 +1468,22 @@ }, "type": "object" }, + "CompleteImportSpaceRequest": { + "description": "Request message for completing the import process for a space.", + "id": "CompleteImportSpaceRequest", + "properties": {}, + "type": "object" + }, + "CompleteImportSpaceResponse": { + "id": "CompleteImportSpaceResponse", + "properties": { + "space": { + "$ref": "Space", + "description": "The import mode space." + } + }, + "type": "object" + }, "CustomEmoji": { "description": "Represents a custom emoji.", "id": "CustomEmoji", @@ -1683,7 +1734,7 @@ "type": "object" }, "GoogleAppsCardV1Action": { - "description": "An action that describes the behavior when the form is submitted. For example, you can invoke an Apps Script script to handle the form. If the action is triggered, the form values are sent to the server.", + "description": "An action that describes the behavior when the form is submitted. For example, you can invoke an Apps Script script to handle the form. If the action is triggered, the form values are sent to the server. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1Action", "properties": { "function": { @@ -1691,14 +1742,14 @@ "type": "string" }, "interaction": { - "description": "Optional. Required when opening a [dialog](https://developers.google.com/chat/how-tos/dialogs). What to do in response to an interaction with a user, such as a user clicking a button in a card message. If unspecified, the app responds by executing an `action`—like opening a link or running a function—as normal. By specifying an `interaction`, the app can respond in special interactive ways. For example, by setting `interaction` to `OPEN_DIALOG`, the app can open a [dialog](https://developers.google.com/chat/how-tos/dialogs). When specified, a loading indicator isn't shown. Supported by Chat apps, but not Google Workspace Add-ons. If specified for an add-on, the entire card is stripped and nothing is shown in the client.", + "description": "Optional. Required when opening a [dialog](https://developers.google.com/chat/how-tos/dialogs). What to do in response to an interaction with a user, such as a user clicking a button in a card message. If unspecified, the app responds by executing an `action`—like opening a link or running a function—as normal. By specifying an `interaction`, the app can respond in special interactive ways. For example, by setting `interaction` to `OPEN_DIALOG`, the app can open a [dialog](https://developers.google.com/chat/how-tos/dialogs). When specified, a loading indicator isn't shown. If specified for an add-on, the entire card is stripped and nothing is shown in the client. [Google Chat apps](https://developers.google.com/chat):", "enum": [ "INTERACTION_UNSPECIFIED", "OPEN_DIALOG" ], "enumDescriptions": [ "Default value. The `action` executes as normal.", - "Opens a [dialog](https://developers.google.com/chat/how-tos/dialogs), a windowed, card-based interface that Chat apps use to interact with users. Only supported by Chat apps in response to button-clicks on card messages. Not supported by Google Workspace Add-ons. If specified for an add-on, the entire card is stripped and nothing is shown in the client." + "Opens a [dialog](https://developers.google.com/chat/how-tos/dialogs), a windowed, card-based interface that Chat apps use to interact with users. Only supported by Chat apps in response to button-clicks on card messages. If specified for an add-on, the entire card is stripped and nothing is shown in the client. [Google Chat apps](https://developers.google.com/chat):" ], "type": "string" }, @@ -1729,7 +1780,7 @@ "type": "object" }, "GoogleAppsCardV1ActionParameter": { - "description": "List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze one day, or snooze next week. You might use `action method = snooze()`, passing the snooze type and snooze time in the list of string parameters. To learn more, see [`CommonEventObject`](https://developers.google.com/chat/api/reference/rest/v1/Event#commoneventobject).", + "description": "List of string parameters to supply when the action method is invoked. For example, consider three snooze buttons: snooze now, snooze one day, or snooze next week. You might use `action method = snooze()`, passing the snooze type and snooze time in the list of string parameters. To learn more, see [`CommonEventObject`](https://developers.google.com/chat/api/reference/rest/v1/Event#commoneventobject). [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1ActionParameter", "properties": { "key": { @@ -1744,7 +1795,7 @@ "type": "object" }, "GoogleAppsCardV1BorderStyle": { - "description": "The style options for the border of a card or widget, including the border type and color.", + "description": "The style options for the border of a card or widget, including the border type and color. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1BorderStyle", "properties": { "cornerRadius": { @@ -1774,7 +1825,7 @@ "type": "object" }, "GoogleAppsCardV1Button": { - "description": "A text, icon, or text and icon button that users can click. For an example in Google Chat apps, see [Button list](https://developers.google.com/chat/ui/widgets/button-list). To make an image a clickable button, specify an `Image` (not an `ImageComponent`) and set an `onClick` action.", + "description": "A text, icon, or text and icon button that users can click. For an example in Google Chat apps, see [Button list](https://developers.google.com/chat/ui/widgets/button-list). To make an image a clickable button, specify an `Image` (not an `ImageComponent`) and set an `onClick` action. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1Button", "properties": { "altText": { @@ -1805,7 +1856,7 @@ "type": "object" }, "GoogleAppsCardV1ButtonList": { - "description": "A list of buttons layed out horizontally. For an example in Google Chat apps, see [Button list](https://developers.google.com/chat/ui/widgets/button-list).", + "description": "A list of buttons layed out horizontally. For an example in Google Chat apps, see [Button list](https://developers.google.com/chat/ui/widgets/button-list). [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1ButtonList", "properties": { "buttons": { @@ -1819,18 +1870,18 @@ "type": "object" }, "GoogleAppsCardV1Card": { - "description": "A card interface displayed in a Google Chat message or Google Workspace Add-on. Cards support a defined layout, interactive UI elements like buttons, and rich media like images. Use cards to present detailed information, gather information from users, and guide users to take a next step. To learn how to build cards, see the following documentation: * For Google Chat apps, see [Design dynamic, interactive, and consistent UIs with cards](https://developers.google.com/chat/ui). * For Google Workspace Add-ons, see [Card-based interfaces](https://developers.google.com/apps-script/add-ons/concepts/cards). **Example: Card message for a Google Chat app** ![Example contact card](https://developers.google.com/chat/images/card_api_reference.png) To create the sample card message in Google Chat, use the following JSON: ``` { \"cardsV2\": [ { \"cardId\": \"unique-card-id\", \"card\": { \"header\": { \"title\": \"Sasha\", \"subtitle\": \"Software Engineer\", \"imageUrl\": \"https://developers.google.com/chat/images/quickstart-app-avatar.png\", \"imageType\": \"CIRCLE\", \"imageAltText\": \"Avatar for Sasha\", }, \"sections\": [ { \"header\": \"Contact Info\", \"collapsible\": true, \"uncollapsibleWidgetsCount\": 1, \"widgets\": [ { \"decoratedText\": { \"startIcon\": { \"knownIcon\": \"EMAIL\", }, \"text\": \"sasha@example.com\", } }, { \"decoratedText\": { \"startIcon\": { \"knownIcon\": \"PERSON\", }, \"text\": \"Online\", }, }, { \"decoratedText\": { \"startIcon\": { \"knownIcon\": \"PHONE\", }, \"text\": \"+1 (555) 555-1234\", } }, { \"buttonList\": { \"buttons\": [ { \"text\": \"Share\", \"onClick\": { \"openLink\": { \"url\": \"https://example.com/share\", } } }, { \"text\": \"Edit\", \"onClick\": { \"action\": { \"function\": \"goToView\", \"parameters\": [ { \"key\": \"viewType\", \"value\": \"EDIT\", } ], } } }, ], } }, ], }, ], }, } ], } ```", + "description": "A card interface displayed in a Google Chat message or Google Workspace Add-on. Cards support a defined layout, interactive UI elements like buttons, and rich media like images. Use cards to present detailed information, gather information from users, and guide users to take a next step. [Card builder](https://addons.gsuite.google.com/uikit/builder) To learn how to build cards, see the following documentation: * For Google Chat apps, see [Design dynamic, interactive, and consistent UIs with cards](https://developers.google.com/chat/ui). * For Google Workspace Add-ons, see [Card-based interfaces](https://developers.google.com/apps-script/add-ons/concepts/cards). **Example: Card message for a Google Chat app** ![Example contact card](https://developers.google.com/chat/images/card_api_reference.png) To create the sample card message in Google Chat, use the following JSON: ``` { \"cardsV2\": [ { \"cardId\": \"unique-card-id\", \"card\": { \"header\": { \"title\": \"Sasha\", \"subtitle\": \"Software Engineer\", \"imageUrl\": \"https://developers.google.com/chat/images/quickstart-app-avatar.png\", \"imageType\": \"CIRCLE\", \"imageAltText\": \"Avatar for Sasha\", }, \"sections\": [ { \"header\": \"Contact Info\", \"collapsible\": true, \"uncollapsibleWidgetsCount\": 1, \"widgets\": [ { \"decoratedText\": { \"startIcon\": { \"knownIcon\": \"EMAIL\", }, \"text\": \"sasha@example.com\", } }, { \"decoratedText\": { \"startIcon\": { \"knownIcon\": \"PERSON\", }, \"text\": \"Online\", }, }, { \"decoratedText\": { \"startIcon\": { \"knownIcon\": \"PHONE\", }, \"text\": \"+1 (555) 555-1234\", } }, { \"buttonList\": { \"buttons\": [ { \"text\": \"Share\", \"onClick\": { \"openLink\": { \"url\": \"https://example.com/share\", } } }, { \"text\": \"Edit\", \"onClick\": { \"action\": { \"function\": \"goToView\", \"parameters\": [ { \"key\": \"viewType\", \"value\": \"EDIT\", } ], } } }, ], } }, ], }, ], }, } ], } ```", "id": "GoogleAppsCardV1Card", "properties": { "cardActions": { - "description": "The card's actions. Actions are added to the card's toolbar menu. Because Chat app cards have no toolbar, `cardActions[]` isn't supported by Chat apps. For example, the following JSON constructs a card action menu with `Settings` and `Send Feedback` options: ``` \"card_actions\": [ { \"actionLabel\": \"Settings\", \"onClick\": { \"action\": { \"functionName\": \"goToView\", \"parameters\": [ { \"key\": \"viewType\", \"value\": \"SETTING\" } ], \"loadIndicator\": \"LoadIndicator.SPINNER\" } } }, { \"actionLabel\": \"Send Feedback\", \"onClick\": { \"openLink\": { \"url\": \"https://example.com/feedback\" } } } ] ```", + "description": "The card's actions. Actions are added to the card's toolbar menu. [Google Workspace Add-ons](https://developers.google.com/workspace/add-ons): For example, the following JSON constructs a card action menu with `Settings` and `Send Feedback` options: ``` \"card_actions\": [ { \"actionLabel\": \"Settings\", \"onClick\": { \"action\": { \"functionName\": \"goToView\", \"parameters\": [ { \"key\": \"viewType\", \"value\": \"SETTING\" } ], \"loadIndicator\": \"LoadIndicator.SPINNER\" } } }, { \"actionLabel\": \"Send Feedback\", \"onClick\": { \"openLink\": { \"url\": \"https://example.com/feedback\" } } } ] ```", "items": { "$ref": "GoogleAppsCardV1CardAction" }, "type": "array" }, "displayStyle": { - "description": "In Google Workspace add-ons, sets the display properties of the `peekCardHeader`. Not supported by Chat apps.", + "description": "In Google Workspace Add-ons, sets the display properties of the `peekCardHeader`. [Google Workspace Add-ons](https://developers.google.com/workspace/add-ons):", "enum": [ "DISPLAY_STYLE_UNSPECIFIED", "PEEK", @@ -1845,19 +1896,19 @@ }, "fixedFooter": { "$ref": "GoogleAppsCardV1CardFixedFooter", - "description": "The fixed footer shown at the bottom of this card. Setting `fixedFooter` without specifying a `primaryButton` or a `secondaryButton` causes an error. Supported by Google Workspace Add-ons and Chat apps. For Chat apps, you can use fixed footers in [dialogs](https://developers.google.com/chat/how-tos/dialogs), but not [card messages](https://developers.google.com/chat/api/guides/v1/messages/create#create)." + "description": "The fixed footer shown at the bottom of this card. Setting `fixedFooter` without specifying a `primaryButton` or a `secondaryButton` causes an error. For Chat apps, you can use fixed footers in [dialogs](https://developers.google.com/chat/how-tos/dialogs), but not [card messages](https://developers.google.com/chat/api/guides/v1/messages/create#create). [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):" }, "header": { "$ref": "GoogleAppsCardV1CardHeader", "description": "The header of the card. A header usually contains a leading image and a title. Headers always appear at the top of a card." }, "name": { - "description": "Name of the card. Used as a card identifier in card navigation. Because Chat apps don't support card navigation, they ignore this field.", + "description": "Name of the card. Used as a card identifier in card navigation. [Google Workspace Add-ons](https://developers.google.com/workspace/add-ons):", "type": "string" }, "peekCardHeader": { "$ref": "GoogleAppsCardV1CardHeader", - "description": "When displaying contextual content, the peek card header acts as a placeholder so that the user can navigate forward between the homepage cards and the contextual cards. Not supported by Chat apps." + "description": "When displaying contextual content, the peek card header acts as a placeholder so that the user can navigate forward between the homepage cards and the contextual cards. [Google Workspace Add-ons](https://developers.google.com/workspace/add-ons):" }, "sectionDividerStyle": { "description": "The divider style between sections.", @@ -1884,7 +1935,7 @@ "type": "object" }, "GoogleAppsCardV1CardAction": { - "description": "A card action is the action associated with the card. For example, an invoice card might include actions such as delete invoice, email invoice, or open the invoice in a browser. Not supported by Chat apps.", + "description": "A card action is the action associated with the card. For example, an invoice card might include actions such as delete invoice, email invoice, or open the invoice in a browser. [Google Workspace Add-ons](https://developers.google.com/workspace/add-ons):", "id": "GoogleAppsCardV1CardAction", "properties": { "actionLabel": { @@ -1899,7 +1950,7 @@ "type": "object" }, "GoogleAppsCardV1CardFixedFooter": { - "description": "A persistent (sticky) footer that that appears at the bottom of the card. For an example in Google Chat apps, see [Card footer](https://developers.google.com/chat/ui/widgets/card-fixed-footer). Setting `fixedFooter` without specifying a `primaryButton` or a `secondaryButton` causes an error. Supported by Google Workspace Add-ons and Chat apps. For Chat apps, you can use fixed footers in [dialogs](https://developers.google.com/chat/how-tos/dialogs), but not [card messages](https://developers.google.com/chat/api/guides/v1/messages/create#create).", + "description": "A persistent (sticky) footer that that appears at the bottom of the card. Setting `fixedFooter` without specifying a `primaryButton` or a `secondaryButton` causes an error. For Chat apps, you can use fixed footers in [dialogs](https://developers.google.com/chat/how-tos/dialogs), but not [card messages](https://developers.google.com/chat/api/guides/v1/messages/create#create). For an example in Google Chat apps, see [Card footer](https://developers.google.com/chat/ui/widgets/card-fixed-footer). [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1CardFixedFooter", "properties": { "primaryButton": { @@ -1914,7 +1965,7 @@ "type": "object" }, "GoogleAppsCardV1CardHeader": { - "description": "Represents a card header. For an example in Google Chat apps, see [Card header](https://developers.google.com/chat/ui/widgets/card-header).", + "description": "Represents a card header. For an example in Google Chat apps, see [Card header](https://developers.google.com/chat/ui/widgets/card-header). [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1CardHeader", "properties": { "imageAltText": { @@ -1922,7 +1973,7 @@ "type": "string" }, "imageType": { - "description": "The shape used to crop the image.", + "description": "The shape used to crop the image. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "enum": [ "SQUARE", "CIRCLE" @@ -1949,7 +2000,7 @@ "type": "object" }, "GoogleAppsCardV1Column": { - "description": "A column.", + "description": "A column. [Google Chat apps](https://developers.google.com/chat):", "id": "GoogleAppsCardV1Column", "properties": { "horizontalAlignment": { @@ -1969,7 +2020,7 @@ "type": "string" }, "horizontalSizeStyle": { - "description": "Specifies how a column fills the width of the card.", + "description": "Specifies how a column fills the width of the card. [Google Chat apps](https://developers.google.com/chat):", "enum": [ "HORIZONTAL_SIZE_STYLE_UNSPECIFIED", "FILL_AVAILABLE_SPACE", @@ -1983,7 +2034,7 @@ "type": "string" }, "verticalAlignment": { - "description": "Specifies whether widgets align to the top, bottom, or center of a column.", + "description": "Specifies whether widgets align to the top, bottom, or center of a column. [Google Chat apps](https://developers.google.com/chat):", "enum": [ "VERTICAL_ALIGNMENT_UNSPECIFIED", "CENTER", @@ -2009,7 +2060,7 @@ "type": "object" }, "GoogleAppsCardV1Columns": { - "description": "The `Columns` widget displays up to 2 columns in a card message or dialog. You can add widgets to each column; the widgets appear in the order that they are specified. For an example in Google Chat apps, see [Columns](https://developers.google.com/chat/ui/widgets/columns). The height of each column is determined by the taller column. For example, if the first column is taller than the second column, both columns have the height of the first column. Because each column can contain a different number of widgets, you can't define rows or align widgets between the columns. Columns are displayed side-by-side. You can customize the width of each column using the `HorizontalSizeStyle` field. If the user's screen width is too narrow, the second column wraps below the first: * On web, the second column wraps if the screen width is less than or equal to 480 pixels. * On iOS devices, the second column wraps if the screen width is less than or equal to 300 pt. * On Android devices, the second column wraps if the screen width is less than or equal to 320 dp. To include more than 2 columns, or to use rows, use the `Grid` widget. Supported by Chat apps, but not Google Workspace Add-ons.", + "description": "The `Columns` widget displays up to 2 columns in a card or dialog. You can add widgets to each column; the widgets appear in the order that they are specified. For an example in Google Chat apps, see [Columns](https://developers.google.com/chat/ui/widgets/columns). The height of each column is determined by the taller column. For example, if the first column is taller than the second column, both columns have the height of the first column. Because each column can contain a different number of widgets, you can't define rows or align widgets between the columns. Columns are displayed side-by-side. You can customize the width of each column using the `HorizontalSizeStyle` field. If the user's screen width is too narrow, the second column wraps below the first: * On web, the second column wraps if the screen width is less than or equal to 480 pixels. * On iOS devices, the second column wraps if the screen width is less than or equal to 300 pt. * On Android devices, the second column wraps if the screen width is less than or equal to 320 dp. To include more than 2 columns, or to use rows, use the `Grid` widget. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend): Columns for Google Workspace Add-ons are in [Developer Preview](https://developers.google.com/workspace/preview).", "id": "GoogleAppsCardV1Columns", "properties": { "columnItems": { @@ -2023,7 +2074,7 @@ "type": "object" }, "GoogleAppsCardV1DateTimePicker": { - "description": "Lets users input a date, a time, or both a date and a time. For an example in Google Chat apps, see [Date time picker](https://developers.google.com/chat/ui/widgets/date-time-picker). Users can input text or use the picker to select dates and times. If users input an invalid date or time, the picker shows an error that prompts users to input the information correctly.", + "description": "Lets users input a date, a time, or both a date and a time. For an example in Google Chat apps, see [Date time picker](https://developers.google.com/chat/ui/widgets/date-time-picker). Users can input text or use the picker to select dates and times. If users input an invalid date or time, the picker shows an error that prompts users to input the information correctly. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1DateTimePicker", "properties": { "label": { @@ -2066,7 +2117,7 @@ "type": "object" }, "GoogleAppsCardV1DecoratedText": { - "description": "A widget that displays text with optional decorations such as a label above or below the text, an icon in front of the text, a selection widget, or a button after the text. For an example in Google Chat apps, see [Decorated text](https://developers.google.com/chat/ui/widgets/decorated-text).", + "description": "A widget that displays text with optional decorations such as a label above or below the text, an icon in front of the text, a selection widget, or a button after the text. For an example in Google Chat apps, see [Decorated text](https://developers.google.com/chat/ui/widgets/decorated-text). [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1DecoratedText", "properties": { "bottomLabel": { @@ -2114,13 +2165,13 @@ "type": "object" }, "GoogleAppsCardV1Divider": { - "description": "Displays a divider between widgets as a horizontal line. For an example in Google Chat apps, see [Divider](https://developers.google.com/chat/ui/widgets/divider). For example, the following JSON creates a divider: ``` \"divider\": {} ```", + "description": "Displays a divider between widgets as a horizontal line. For an example in Google Chat apps, see [Divider](https://developers.google.com/chat/ui/widgets/divider). [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend): For example, the following JSON creates a divider: ``` \"divider\": {} ```", "id": "GoogleAppsCardV1Divider", "properties": {}, "type": "object" }, "GoogleAppsCardV1Grid": { - "description": "Displays a grid with a collection of items. Items can only include text or images. For responsive columns, or to include more than text or images, use `Columns`. For an example in Google Chat apps, see [Grid](https://developers.google.com/chat/ui/widgets/grid). A grid supports any number of columns and items. The number of rows is determined by items divided by columns. A grid with 10 items and 2 columns has 5 rows. A grid with 11 items and 2 columns has 6 rows. For example, the following JSON creates a 2 column grid with a single item: ``` \"grid\": { \"title\": \"A fine collection of items\", \"columnCount\": 2, \"borderStyle\": { \"type\": \"STROKE\", \"cornerRadius\": 4 }, \"items\": [ { \"image\": { \"imageUri\": \"https://www.example.com/image.png\", \"cropStyle\": { \"type\": \"SQUARE\" }, \"borderStyle\": { \"type\": \"STROKE\" } }, \"title\": \"An item\", \"textAlignment\": \"CENTER\" } ], \"onClick\": { \"openLink\": { \"url\": \"https://www.example.com\" } } } ```", + "description": "Displays a grid with a collection of items. Items can only include text or images. For responsive columns, or to include more than text or images, use `Columns`. For an example in Google Chat apps, see [Grid](https://developers.google.com/chat/ui/widgets/grid). A grid supports any number of columns and items. The number of rows is determined by items divided by columns. A grid with 10 items and 2 columns has 5 rows. A grid with 11 items and 2 columns has 6 rows. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend): For example, the following JSON creates a 2 column grid with a single item: ``` \"grid\": { \"title\": \"A fine collection of items\", \"columnCount\": 2, \"borderStyle\": { \"type\": \"STROKE\", \"cornerRadius\": 4 }, \"items\": [ { \"image\": { \"imageUri\": \"https://www.example.com/image.png\", \"cropStyle\": { \"type\": \"SQUARE\" }, \"borderStyle\": { \"type\": \"STROKE\" } }, \"title\": \"An item\", \"textAlignment\": \"CENTER\" } ], \"onClick\": { \"openLink\": { \"url\": \"https://www.example.com\" } } } ```", "id": "GoogleAppsCardV1Grid", "properties": { "borderStyle": { @@ -2151,7 +2202,7 @@ "type": "object" }, "GoogleAppsCardV1GridItem": { - "description": "Represents an item in a grid layout. Items can contain text, an image, or both text and an image.", + "description": "Represents an item in a grid layout. Items can contain text, an image, or both text and an image. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1GridItem", "properties": { "id": { @@ -2188,7 +2239,7 @@ "type": "object" }, "GoogleAppsCardV1Icon": { - "description": "An icon displayed in a widget on a card. For an example in Google Chat apps, see [Icon](https://developers.google.com/chat/ui/widgets/icon). Supports [built-in](https://developers.google.com/chat/format-messages#builtinicons) and [custom](https://developers.google.com/chat/format-messages#customicons) icons.", + "description": "An icon displayed in a widget on a card. For an example in Google Chat apps, see [Icon](https://developers.google.com/chat/ui/widgets/icon). Supports [built-in](https://developers.google.com/chat/format-messages#builtinicons) and [custom](https://developers.google.com/chat/format-messages#customicons) icons. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1Icon", "properties": { "altText": { @@ -2219,7 +2270,7 @@ "type": "object" }, "GoogleAppsCardV1Image": { - "description": "An image that is specified by a URL and can have an `onClick` action. For an example, see [Image](https://developers.google.com/chat/ui/widgets/image).", + "description": "An image that is specified by a URL and can have an `onClick` action. For an example, see [Image](https://developers.google.com/chat/ui/widgets/image). [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1Image", "properties": { "altText": { @@ -2238,7 +2289,7 @@ "type": "object" }, "GoogleAppsCardV1ImageComponent": { - "description": "Represents an image.", + "description": "Represents an image. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1ImageComponent", "properties": { "altText": { @@ -2261,7 +2312,7 @@ "type": "object" }, "GoogleAppsCardV1ImageCropStyle": { - "description": "Represents the crop style applied to an image. For example, here's how to apply a 16:9 aspect ratio: ``` cropStyle { \"type\": \"RECTANGLE_CUSTOM\", \"aspectRatio\": 16/9 } ```", + "description": "Represents the crop style applied to an image. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend): For example, here's how to apply a 16:9 aspect ratio: ``` cropStyle { \"type\": \"RECTANGLE_CUSTOM\", \"aspectRatio\": 16/9 } ```", "id": "GoogleAppsCardV1ImageCropStyle", "properties": { "aspectRatio": { @@ -2291,7 +2342,7 @@ "type": "object" }, "GoogleAppsCardV1OnClick": { - "description": "Represents how to respond when users click an interactive element on a card, such as a button.", + "description": "Represents how to respond when users click an interactive element on a card, such as a button. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1OnClick", "properties": { "action": { @@ -2300,11 +2351,11 @@ }, "card": { "$ref": "GoogleAppsCardV1Card", - "description": "A new card is pushed to the card stack after clicking if specified. Supported by Google Workspace Add-ons, but not Google Chat apps." + "description": "A new card is pushed to the card stack after clicking if specified. [Google Workspace Add-ons](https://developers.google.com/workspace/add-ons):" }, "openDynamicLinkAction": { "$ref": "GoogleAppsCardV1Action", - "description": "An add-on triggers this action when the action needs to open a link. This differs from the `open_link` above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. Supported by Google Workspace Add-ons, but not Google Chat apps." + "description": "An add-on triggers this action when the action needs to open a link. This differs from the `open_link` above in that this needs to talk to server to get the link. Thus some preparation work is required for web client to do before the open link action response comes back. [Google Workspace Add-ons](https://developers.google.com/workspace/add-ons):" }, "openLink": { "$ref": "GoogleAppsCardV1OpenLink", @@ -2314,11 +2365,11 @@ "type": "object" }, "GoogleAppsCardV1OpenLink": { - "description": "Represents an `onClick` event that opens a hyperlink.", + "description": "Represents an `onClick` event that opens a hyperlink. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1OpenLink", "properties": { "onClose": { - "description": "Whether the client forgets about a link after opening it, or observes it until the window closes. Not supported by Chat apps.", + "description": "Whether the client forgets about a link after opening it, or observes it until the window closes. [Google Workspace Add-ons](https://developers.google.com/workspace/add-ons):", "enum": [ "NOTHING", "RELOAD" @@ -2330,7 +2381,7 @@ "type": "string" }, "openAs": { - "description": "How to open a link. Not supported by Chat apps.", + "description": "How to open a link. [Google Workspace Add-ons](https://developers.google.com/workspace/add-ons):", "enum": [ "FULL_SIZE", "OVERLAY" @@ -2349,7 +2400,7 @@ "type": "object" }, "GoogleAppsCardV1PlatformDataSource": { - "description": "Chat apps only. For a `SelectionInput` widget that uses a multiselect menu, a data source from Google Workspace. Used to populate items in a multiselect menu.", + "description": "For a `SelectionInput` widget that uses a multiselect menu, a data source from Google Workspace. Used to populate items in a multiselect menu. [Google Chat apps](https://developers.google.com/chat):", "id": "GoogleAppsCardV1PlatformDataSource", "properties": { "commonDataSource": { @@ -2372,7 +2423,7 @@ "type": "object" }, "GoogleAppsCardV1Section": { - "description": "A section contains a collection of widgets that are rendered vertically in the order that they're specified.", + "description": "A section contains a collection of widgets that are rendered vertically in the order that they're specified. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1Section", "properties": { "collapsible": { @@ -2399,7 +2450,7 @@ "type": "object" }, "GoogleAppsCardV1SelectionInput": { - "description": "A widget that creates one or more UI items that users can select. For example, a dropdown menu or checkboxes. You can use this widget to collect data that can be predicted or enumerated. For an example in Google Chat apps, see [Selection input](https://developers.google.com/chat/ui/widgets/selection-input). Chat apps can process the value of items that users select or input. For details about working with form inputs, see [Receive form data](https://developers.google.com/chat/ui/read-form-data). To collect undefined or abstract data from users, use the TextInput widget.", + "description": "A widget that creates one or more UI items that users can select. For example, a dropdown menu or checkboxes. You can use this widget to collect data that can be predicted or enumerated. For an example in Google Chat apps, see [Selection input](https://developers.google.com/chat/ui/widgets/selection-input). Chat apps can process the value of items that users select or input. For details about working with form inputs, see [Receive form data](https://developers.google.com/chat/ui/read-form-data). To collect undefined or abstract data from users, use the TextInput widget. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1SelectionInput", "properties": { "externalDataSource": { @@ -2453,7 +2504,7 @@ "A set of radio buttons. Users can select one radio button.", "A set of switches. Users can turn on one or more switches.", "A dropdown menu. Users can select one item from the menu.", - "Supported by Chat apps, but not Google Workspace Add-ons. A multiselect menu for static or dynamic data. From the menu bar, users select one or more items. Users can also input values to populate dynamic data. For example, users can start typing the name of a Google Chat space and the widget autosuggests the space. To populate items for a multiselect menu, you can use one of the following types of data sources: * Static data: Items are specified as `SelectionItem` objects in the widget. Up to 100 items. * Google Workspace data: Items are populated using data from Google Workspace, such as Google Workspace users or Google Chat spaces. * External data: Items are populated from an external data source outside of Google Workspace. For examples of how to implement multiselect menus, see the [`SelectionInput` widget page](https://developers.google.com/chat/ui/widgets/selection-input#multiselect-menu)." + "A multiselect menu for static or dynamic data. From the menu bar, users select one or more items. Users can also input values to populate dynamic data. For example, users can start typing the name of a Google Chat space and the widget autosuggests the space. To populate items for a multiselect menu, you can use one of the following types of data sources: * Static data: Items are specified as `SelectionItem` objects in the widget. Up to 100 items. * Google Workspace data: Items are populated using data from Google Workspace, such as Google Workspace users or Google Chat spaces. * External data: Items are populated from an external data source outside of Google Workspace. For examples of how to implement multiselect menus, see the [`SelectionInput` widget page](https://developers.google.com/chat/ui/widgets/selection-input#multiselect-menu). [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend): multiselect for Google Workspace Add-ons are in [Developer Preview](https://developers.google.com/workspace/preview)." ], "type": "string" } @@ -2461,7 +2512,7 @@ "type": "object" }, "GoogleAppsCardV1SelectionItem": { - "description": "An item that users can select in a selection input, such as a checkbox or switch.", + "description": "An item that users can select in a selection input, such as a checkbox or switch. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1SelectionItem", "properties": { "bottomText": { @@ -2488,7 +2539,7 @@ "type": "object" }, "GoogleAppsCardV1SuggestionItem": { - "description": "One suggested value that users can enter in a text input field.", + "description": "One suggested value that users can enter in a text input field. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1SuggestionItem", "properties": { "text": { @@ -2499,7 +2550,7 @@ "type": "object" }, "GoogleAppsCardV1Suggestions": { - "description": "Suggested values that users can enter. These values appear when users click inside the text input field. As users type, the suggested values dynamically filter to match what the users have typed. For example, a text input field for programming language might suggest Java, JavaScript, Python, and C++. When users start typing `Jav`, the list of suggestions filters to show `Java` and `JavaScript`. Suggested values help guide users to enter values that your app can make sense of. When referring to JavaScript, some users might enter `javascript` and others `java script`. Suggesting `JavaScript` can standardize how users interact with your app. When specified, `TextInput.type` is always `SINGLE_LINE`, even if it's set to `MULTIPLE_LINE`.", + "description": "Suggested values that users can enter. These values appear when users click inside the text input field. As users type, the suggested values dynamically filter to match what the users have typed. For example, a text input field for programming language might suggest Java, JavaScript, Python, and C++. When users start typing `Jav`, the list of suggestions filters to show `Java` and `JavaScript`. Suggested values help guide users to enter values that your app can make sense of. When referring to JavaScript, some users might enter `javascript` and others `java script`. Suggesting `JavaScript` can standardize how users interact with your app. When specified, `TextInput.type` is always `SINGLE_LINE`, even if it's set to `MULTIPLE_LINE`. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1Suggestions", "properties": { "items": { @@ -2513,11 +2564,11 @@ "type": "object" }, "GoogleAppsCardV1SwitchControl": { - "description": "Either a toggle-style switch or a checkbox inside a `decoratedText` widget. Only supported in the `decoratedText` widget.", + "description": "Either a toggle-style switch or a checkbox inside a `decoratedText` widget. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend): Only supported in the `decoratedText` widget.", "id": "GoogleAppsCardV1SwitchControl", "properties": { "controlType": { - "description": "How the switch appears in the user interface.", + "description": "How the switch appears in the user interface. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "enum": [ "SWITCH", "CHECKBOX", @@ -2550,12 +2601,12 @@ "type": "object" }, "GoogleAppsCardV1TextInput": { - "description": "A field in which users can enter text. Supports suggestions and on-change actions. For an example in Google Chat apps, see [Text input](https://developers.google.com/chat/ui/widgets/text-input). Chat apps receive and can process the value of entered text during form input events. For details about working with form inputs, see [Receive form data](https://developers.google.com/chat/ui/read-form-data). When you need to collect undefined or abstract data from users, use a text input. To collect defined or enumerated data from users, use the SelectionInput widget.", + "description": "A field in which users can enter text. Supports suggestions and on-change actions. For an example in Google Chat apps, see [Text input](https://developers.google.com/chat/ui/widgets/text-input). Chat apps receive and can process the value of entered text during form input events. For details about working with form inputs, see [Receive form data](https://developers.google.com/chat/ui/read-form-data). When you need to collect undefined or abstract data from users, use a text input. To collect defined or enumerated data from users, use the SelectionInput widget. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1TextInput", "properties": { "autoCompleteAction": { "$ref": "GoogleAppsCardV1Action", - "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 Google Chat apps." + "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. [Google Workspace Add-ons](https://developers.google.com/workspace/add-ons):" }, "hintText": { "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.", @@ -2563,7 +2614,7 @@ }, "initialSuggestions": { "$ref": "GoogleAppsCardV1Suggestions", - "description": "Suggested values that users can enter. These values appear when users click inside the text input field. As users type, the suggested values dynamically filter to match what the users have typed. For example, a text input field for programming language might suggest Java, JavaScript, Python, and C++. When users start typing `Jav`, the list of suggestions filters to show just `Java` and `JavaScript`. Suggested values help guide users to enter values that your app can make sense of. When referring to JavaScript, some users might enter `javascript` and others `java script`. Suggesting `JavaScript` can standardize how users interact with your app. When specified, `TextInput.type` is always `SINGLE_LINE`, even if it's set to `MULTIPLE_LINE`." + "description": "Suggested values that users can enter. These values appear when users click inside the text input field. As users type, the suggested values dynamically filter to match what the users have typed. For example, a text input field for programming language might suggest Java, JavaScript, Python, and C++. When users start typing `Jav`, the list of suggestions filters to show just `Java` and `JavaScript`. Suggested values help guide users to enter values that your app can make sense of. When referring to JavaScript, some users might enter `javascript` and others `java script`. Suggesting `JavaScript` can standardize how users interact with your app. When specified, `TextInput.type` is always `SINGLE_LINE`, even if it's set to `MULTIPLE_LINE`. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):" }, "label": { "description": "The text that appears above the text input field in the user interface. Specify text that helps the user enter the information your app needs. For example, if you are asking someone's name, but specifically need their surname, write `surname` instead of `name`. Required if `hintText` is unspecified. Otherwise, optional.", @@ -2578,7 +2629,7 @@ "description": "What to do when a change occurs in the text input field. For example, a user adding to the field or deleting text. Examples of actions to take include running a custom function or opening a [dialog](https://developers.google.com/chat/how-tos/dialogs) in Google Chat." }, "placeholderText": { - "description": "Text that appears in the text input field when the field is empty. Use this text to prompt users to enter a value. For example, `Enter a number from 0 to 100`. Supported by Google Chat apps, but not Google Workspace Add-ons.", + "description": "Text that appears in the text input field when the field is empty. Use this text to prompt users to enter a value. For example, `Enter a number from 0 to 100`. [Google Chat apps](https://developers.google.com/chat):", "type": "string" }, "type": { @@ -2601,7 +2652,7 @@ "type": "object" }, "GoogleAppsCardV1TextParagraph": { - "description": "A paragraph of text that supports formatting. For an example in Google Chat apps, see [Text paragraph](https://developers.google.com/chat/ui/widgets/text-paragraph). For more information about formatting text, see [Formatting text in Google Chat apps](https://developers.google.com/chat/format-messages#card-formatting) and [Formatting text in Google Workspace Add-ons](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting).", + "description": "A paragraph of text that supports formatting. For an example in Google Chat apps, see [Text paragraph](https://developers.google.com/chat/ui/widgets/text-paragraph). For more information about formatting text, see [Formatting text in Google Chat apps](https://developers.google.com/chat/format-messages#card-formatting) and [Formatting text in Google Workspace Add-ons](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting). [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend):", "id": "GoogleAppsCardV1TextParagraph", "properties": { "text": { @@ -2637,7 +2688,7 @@ }, "grid": { "$ref": "GoogleAppsCardV1Grid", - "description": "Displays a grid with a collection of items. A grid supports any number of columns and items. The number of rows is determined by the upper bounds of the number items divided by the number of columns. A grid with 10 items and 2 columns has 5 rows. A grid with 11 items and 2 columns has 6 rows. For example, the following JSON creates a 2 column grid with a single item: ``` \"grid\": { \"title\": \"A fine collection of items\", \"columnCount\": 2, \"borderStyle\": { \"type\": \"STROKE\", \"cornerRadius\": 4 }, \"items\": [ { \"image\": { \"imageUri\": \"https://www.example.com/image.png\", \"cropStyle\": { \"type\": \"SQUARE\" }, \"borderStyle\": { \"type\": \"STROKE\" } }, \"title\": \"An item\", \"textAlignment\": \"CENTER\" } ], \"onClick\": { \"openLink\": { \"url\": \"https://www.example.com\" } } } ```" + "description": "Displays a grid with a collection of items. A grid supports any number of columns and items. The number of rows is determined by the upper bounds of the number items divided by the number of columns. A grid with 10 items and 2 columns has 5 rows. A grid with 11 items and 2 columns has 6 rows. [Google Workspace Add-ons and Chat apps](https://developers.google.com/workspace/extend): For example, the following JSON creates a 2 column grid with a single item: ``` \"grid\": { \"title\": \"A fine collection of items\", \"columnCount\": 2, \"borderStyle\": { \"type\": \"STROKE\", \"cornerRadius\": 4 }, \"items\": [ { \"image\": { \"imageUri\": \"https://www.example.com/image.png\", \"cropStyle\": { \"type\": \"SQUARE\" }, \"borderStyle\": { \"type\": \"STROKE\" } }, \"title\": \"An item\", \"textAlignment\": \"CENTER\" } ], \"onClick\": { \"openLink\": { \"url\": \"https://www.example.com\" } } } ```" }, "horizontalAlignment": { "description": "Specifies whether widgets align to the left, right, or center of a column.", @@ -2675,7 +2726,7 @@ "type": "object" }, "GoogleAppsCardV1Widgets": { - "description": "The supported widgets that you can include in a column.", + "description": "The supported widgets that you can include in a column. [Google Chat apps](https://developers.google.com/chat):", "id": "GoogleAppsCardV1Widgets", "properties": { "buttonList": { @@ -2709,8 +2760,19 @@ }, "type": "object" }, + "Group": { + "description": "A Google Group in Google Chat.", + "id": "Group", + "properties": { + "name": { + "description": "Resource name for a Google Group. Represents a [group](https://cloud.google.com/identity/docs/reference/rest/v1/groups) in Cloud Identity Groups API. Format: groups/{group}", + "type": "string" + } + }, + "type": "object" + }, "HostAppDataSourceMarkup": { - "description": "Chat apps only. For a `SelectionInput` widget that uses a multiselect menu, a data source from a Google Workspace application. The data source populates selection items for the multiselect menu.", + "description": "For a `SelectionInput` widget that uses a multiselect menu, a data source from a Google Workspace application. The data source populates selection items for the multiselect menu. [Google Chat apps](https://developers.google.com/chat):", "id": "HostAppDataSourceMarkup", "properties": { "chatDataSource": { @@ -2830,24 +2892,24 @@ "type": "object" }, "Inputs": { - "description": "Types of data that users can enter on cards or dialogs. To learn how to process information from users, see [Read form data input by users on cards](https://developers.google.com/chat/ui/read-form-data).", + "description": "Types of data that users can [input on cards or dialogs](https://developers.google.com/chat/ui/read-form-data). The input type depends on the type of values that the widget accepts.", "id": "Inputs", "properties": { "dateInput": { "$ref": "DateInput", - "description": "Date input values." + "description": "Date input values from a [`DateTimePicker`](https://developers.google.com/chat/api/reference/rest/v1/cards#DateTimePicker) widget that only accepts date values." }, "dateTimeInput": { "$ref": "DateTimeInput", - "description": "Date and time input values." + "description": "Date and time input values from a [`DateTimePicker`](https://developers.google.com/chat/api/reference/rest/v1/cards#DateTimePicker) widget that accepts both a date and time." }, "stringInputs": { "$ref": "StringInputs", - "description": "Input parameter for regular widgets. For single-valued widgets, it is a single value list. For multi-valued widgets, such as checkbox, all the values are presented." + "description": "A list of strings that represent the values that the user inputs in a widget. If the widget only accepts one value, such as a [`TextInput`](https://developers.google.com/chat/api/reference/rest/v1/cards#TextInput) widget, the list contains one string object. If the widget accepts multiple values, such as a [`SelectionInput`](https://developers.google.com/chat/api/reference/rest/v1/cards#selectioninput) widget of checkboxes, the list contains a string object for each value that the user inputs or selects." }, "timeInput": { "$ref": "TimeInput", - "description": "Time input values." + "description": "Time input values from a [`DateTimePicker`](https://developers.google.com/chat/api/reference/rest/v1/cards#DateTimePicker) widget that only accepts time values." } }, "type": "object" @@ -3053,11 +3115,19 @@ "id": "Membership", "properties": { "createTime": { - "description": "Output only. The creation time of the membership, such as when a member joined or was invited to join a space.", + "description": "Optional. Immutable. The creation time of the membership, such as when a member joined or was invited to join a space. This field is output only, except when used to import historical memberships in import mode spaces.", "format": "google-datetime", - "readOnly": true, "type": "string" }, + "deleteTime": { + "description": "Optional. Immutable. The deletion time of the membership, such as when a member left or was removed from a space. This field is output only, except when used to import historical memberships in import mode spaces.", + "format": "google-datetime", + "type": "string" + }, + "groupMember": { + "$ref": "Group", + "description": "The Google Group the membership corresponds to. Only supports read operations. Other operations, like creating or updating a membership, aren't currently supported." + }, "member": { "$ref": "User", "description": "The Google Chat user or app the membership corresponds to. If your Chat app [authenticates as a user](https://developers.google.com/chat/api/guides/auth/users), the output populates the [user](https://developers.google.com/chat/api/reference/rest/v1/User) `name` and `type`." @@ -3145,18 +3215,18 @@ "type": "array" }, "cardsV2": { - "description": "An array of [cards](https://developers.google.com/chat/api/reference/rest/v1/cards). Only Chat apps can create cards. If your Chat app [authenticates as a user](https://developers.google.com/chat/api/guides/auth/users), the messages can't contain cards. To learn about cards and how to create them, see [Design dynamic, interactive, and consistent UIs with cards](https://developers.google.com/chat/ui).", + "description": "An array of [cards](https://developers.google.com/chat/api/reference/rest/v1/cards). Only Chat apps can create cards. If your Chat app [authenticates as a user](https://developers.google.com/chat/api/guides/auth/users), the messages can't contain cards. To learn about cards and how to create them, see [Design dynamic, interactive, and consistent UIs with cards](https://developers.google.com/chat/ui). [Card builder](https://addons.gsuite.google.com/uikit/builder)", "items": { "$ref": "CardWithId" }, "type": "array" }, "clientAssignedMessageId": { - "description": "A custom name for a Chat message assigned at creation. Must start with `client-` and contain only lowercase letters, numbers, and hyphens up to 63 characters in length. Specify this field to get, update, or delete the message with the specified value. Assigning a custom name lets a Chat app recall the message without saving the message `name` from the [response body](/chat/api/reference/rest/v1/spaces.messages/get#response-body) returned when creating the message. Assigning a custom name doesn't replace the generated `name` field, the message's resource name. Instead, it sets the custom name as the `clientAssignedMessageId` field, which you can reference while processing later operations, like updating or deleting the message. For example usage, see [Name a created message](https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message).", + "description": "Optional. A custom ID for the message. You can use field to identify a message, or to get, delete, or update a message. To set a custom ID, specify the [`messageId`](https://developers.google.com/chat/api/reference/rest/v1/spaces.messages/create#body.QUERY_PARAMETERS.message_id) field when you create the message. For details, see [Name a message](https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message).", "type": "string" }, "createTime": { - "description": "For spaces created in Chat, the time at which the message was created. This field is output only, except when used in imported spaces. [Developer Preview](https://developers.google.com/workspace/preview): For imported spaces, set this field to the historical timestamp at which the message was created in the source in order to preserve the original creation time.", + "description": "Optional. Immutable. For spaces created in Chat, the time at which the message was created. This field is output only, except when used in import mode spaces. For import mode spaces, set this field to the historical timestamp at which the message was created in the source in order to preserve the original creation time.", "format": "google-datetime", "type": "string" }, @@ -3200,9 +3270,13 @@ "readOnly": true }, "name": { - "description": "Resource name in the form `spaces/*/messages/*`. Example: `spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB`", + "description": "Resource name of the message. Format: `spaces/{space}/messages/{message}` Where `{space}` is the ID of the space where the message is posted and `{message}` is a system-assigned ID for the message. For example, `spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB`. If you set a custom ID when you create a message, you can use this ID to specify the message in a request by replacing `{message}` with the value from the `clientAssignedMessageId` field. For example, `spaces/AAAAAAAAAAA/messages/client-custom-name`. For details, see [Name a message](https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message).", "type": "string" }, + "privateMessageViewer": { + "$ref": "User", + "description": "Immutable. Input for creating a message, otherwise output only. The user that can view the message. When set, the message is private and only visible to the specified user and the Chat app. Link previews and attachments aren't supported for private messages. Only Chat apps can send private messages. If your Chat app [authenticates as a user](https://developers.google.com/chat/api/guides/auth/users) to send a message, the message can't be private and must omit this field. For details, see [Send private messages to Google Chat users](https://developers.google.com/chat/api/guides/v1/messages/private)." + }, "quotedMessageMetadata": { "$ref": "QuotedMessageMetadata", "description": "Output only. Information about a message that's quoted by a Google Chat user in a space. Google Chat users can quote a message to reply to it.", @@ -3414,6 +3488,11 @@ "readOnly": true, "type": "boolean" }, + "createTime": { + "description": "Optional. Immutable. For spaces created in Chat, the time the space was created. This field is output only, except when used in import mode spaces. For import mode spaces, set this field to the historical timestamp at which the space was created in the source in order to preserve the original creation time. Only populated in the output when `spaceType` is `GROUP_CHAT` or `SPACE`.", + "format": "google-datetime", + "type": "string" + }, "displayName": { "description": "The space's display name. Required when [creating a space](https://developers.google.com/chat/api/reference/rest/v1/spaces/create). If you receive the error message `ALREADY_EXISTS` when creating a space or updating the `displayName`, try a different `displayName`. An existing space within the Google Workspace organization might already use this display name. For direct messages, this field might be empty. Supports up to 128 characters.", "type": "string" @@ -3422,6 +3501,10 @@ "description": "Immutable. Whether this space permits any Google Chat user as a member. Input when creating a space in a Google Workspace organization. Omit this field when creating spaces in the following conditions: * The authenticated user uses a Google Account. By default, the space permits any Google Chat user. * The space is used to [import data to Google Chat] (https://developers.google.com/chat/api/guides/import-data-overview). Import mode spaces must only permit members from the same Google Workspace organization. For existing spaces, this field is output only.", "type": "boolean" }, + "importMode": { + "description": "Optional. Whether this space is created in `Import Mode` as part of a data migration into Google Workspace. While spaces are being imported, they aren't visible to users until the import is complete.", + "type": "boolean" + }, "name": { "description": "Resource name of the space. Format: `spaces/{space}`", "type": "string" @@ -3507,7 +3590,7 @@ "type": "object" }, "SpaceDataSource": { - "description": "A data source that populates Google Chat spaces as selection items for a multiselect menu. Only populates spaces that the user is a member of.", + "description": "A data source that populates Google Chat spaces as selection items for a multiselect menu. Only populates spaces that the user is a member of. [Google Chat apps](https://developers.google.com/chat):", "id": "SpaceDataSource", "properties": { "defaultToCurrentSpace": { @@ -3564,7 +3647,7 @@ "id": "StringInputs", "properties": { "value": { - "description": "An array of strings entered by the user.", + "description": "An list of strings entered by the user.", "items": { "type": "string" }, diff --git a/discovery/googleapis/chromemanagement__v1.json b/discovery/googleapis/chromemanagement__v1.json index b88ec6afe..d8834917b 100644 --- a/discovery/googleapis/chromemanagement__v1.json +++ b/discovery/googleapis/chromemanagement__v1.json @@ -31,7 +31,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240226", "rootUrl": "https://chromemanagement.googleapis.com/", "servicePath": "", "title": "Chrome Management API", @@ -1342,9 +1342,9 @@ ], "enumDescriptions": [ "Health unknown.", - "Battery is healthy.", - "Battery is moderately unhealthy and should be replaced soon.", - "Battery is unhealthy and should be replaced." + "Battery is healthy, full charge capacity / design capacity > 80%", + "Battery is moderately unhealthy and suggested to be replaced soon, full charge capacity / design capacity 75% - 80%", + "Battery is unhealthy and suggested to be replaced, full charge capacity / design capacity < 75%" ], "readOnly": true, "type": "string" diff --git a/discovery/googleapis/chromepolicy__v1.json b/discovery/googleapis/chromepolicy__v1.json index 69d5a65ee..3df342a2e 100644 --- a/discovery/googleapis/chromepolicy__v1.json +++ b/discovery/googleapis/chromepolicy__v1.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240226", "rootUrl": "https://chromepolicy.googleapis.com/", "servicePath": "", "title": "Chrome Policy API", @@ -764,6 +764,10 @@ "numericRangeConstraint": { "$ref": "GoogleChromePolicyVersionsV1NumericRangeConstraint", "description": "The allowed range for numeric fields." + }, + "uploadedFileConstraints": { + "$ref": "GoogleChromePolicyVersionsV1UploadedFileConstraints", + "description": "Constraints on the uploaded file of a file policy. If present, this policy requires a URL that can be fetched by uploading a file with the constraints specified in this proto." } }, "type": "object" @@ -1106,6 +1110,28 @@ "readOnly": true, "type": "string" }, + "supportedPlatforms": { + "description": "Output only. List indicates that the policy will only apply to devices/users on these platforms.", + "items": { + "enum": [ + "PLATFORM_UNSPECIFIED", + "CHROME_OS", + "CHROME_BROWSER", + "CHROME_BROWSER_FOR_ANDROID", + "CHROME_BROWSER_FOR_IOS" + ], + "enumDescriptions": [ + "Unspecified platform.", + "ChromeOS.", + "Chrome Browser for OSX/Windows/Linux.", + "Chrome Browser for Android.", + "Chrome Browser for iOS." + ], + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "validTargetResources": { "description": "Output only. Information about applicable target resources for the policy.", "items": { @@ -1500,6 +1526,53 @@ }, "type": "object" }, + "GoogleChromePolicyVersionsV1UploadedFileConstraints": { + "description": "Constraints on the uploaded file of a file policy.", + "id": "GoogleChromePolicyVersionsV1UploadedFileConstraints", + "properties": { + "sizeLimitBytes": { + "description": "The size limit of uploaded files for a setting, in bytes.", + "format": "int64", + "type": "string" + }, + "supportedContentTypes": { + "description": "File types that can be uploaded for a setting.", + "items": { + "enum": [ + "CONTENT_TYPE_UNSPECIFIED", + "CONTENT_TYPE_PLAIN_TEXT", + "CONTENT_TYPE_HTML", + "CONTENT_TYPE_IMAGE_JPEG", + "CONTENT_TYPE_IMAGE_GIF", + "CONTENT_TYPE_IMAGE_PNG", + "CONTENT_TYPE_JSON", + "CONTENT_TYPE_ZIP", + "CONTENT_TYPE_GZIP", + "CONTENT_TYPE_CSV", + "CONTENT_TYPE_YAML", + "CONTENT_TYPE_IMAGE_WEBP" + ], + "enumDescriptions": [ + "Unspecified content type.", + "Plain text.", + "HTML.", + "JPEG.", + "GIF.", + "PNG.", + "JSON.", + "ZIP.", + "GZIP.", + "CSV.", + "YAML.", + "WEBP." + ], + "type": "string" + }, + "type": "array" + } + }, + "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/discovery/googleapis/chromeuxreport__v1.json b/discovery/googleapis/chromeuxreport__v1.json index 44d2f96fe..5de03430c 100644 --- a/discovery/googleapis/chromeuxreport__v1.json +++ b/discovery/googleapis/chromeuxreport__v1.json @@ -16,7 +16,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231116", + "revision": "20240227", "rootUrl": "https://chromeuxreport.googleapis.com/", "servicePath": "", "title": "Chrome UX Report API", @@ -193,6 +193,21 @@ }, "type": "object" }, + "FractionTimeseries": { + "description": "For enum metrics, provides fraction timeseries which add up to approximately 1.0 per entry (k-th element into the repeated fractions field for any k <= len) across fraction_timeseries.", + "id": "FractionTimeseries", + "properties": { + "fractions": { + "description": "Values between 0.0 and 1.0 (inclusive) and NaN.", + "items": { + "format": "double", + "type": "number" + }, + "type": "array" + } + }, + "type": "object" + }, "HistoryKey": { "description": "Key defines all the dimensions that identify this record as unique.", "id": "HistoryKey", @@ -314,6 +329,13 @@ "description": "A `metric timeseries` is a set of user experience data for a single web performance metric, like \"first contentful paint\". It contains a summary histogram of real world Chrome usage as a series of `bins`, where each bin has density values for a particular time period.", "id": "MetricTimeseries", "properties": { + "fractionTimeseries": { + "additionalProperties": { + "$ref": "FractionTimeseries" + }, + "description": "Mapping from labels to timeseries of fractions attributed to this label.", + "type": "object" + }, "histogramTimeseries": { "description": "The histogram of user experiences for a metric. The histogram will have at least one bin and the densities of all bins will add up to ~1, for each timeseries entry.", "items": { diff --git a/discovery/googleapis/civicinfo__v2.json b/discovery/googleapis/civicinfo__v2.json index fcdb66972..20a80ac9a 100644 --- a/discovery/googleapis/civicinfo__v2.json +++ b/discovery/googleapis/civicinfo__v2.json @@ -16,7 +16,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231017", + "revision": "20240220", "rootUrl": "https://civicinfo.googleapis.com/", "servicePath": "", "title": "Google Civic Information API", diff --git a/discovery/googleapis/classroom__v1.json b/discovery/googleapis/classroom__v1.json index 44e951efd..d4260af8a 100644 --- a/discovery/googleapis/classroom__v1.json +++ b/discovery/googleapis/classroom__v1.json @@ -87,7 +87,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231109", + "revision": "20240222", "rootUrl": "https://classroom.googleapis.com/", "servicePath": "", "title": "Google Classroom API", @@ -898,7 +898,7 @@ "type": "string" }, "updateMask": { - "description": "Mask that identifies which fields on the course work to update. This field is required to do an update. The update fails if invalid fields are specified. If a field supports empty values, it can be cleared by specifying it in the update mask and not in the CourseWork object. If a field that does not support empty values is included in the update mask and not set in the CourseWork object, an `INVALID_ARGUMENT` error is returned. The following fields may be specified by teachers: * `title` * `description` * `state` * `due_date` * `due_time` * `max_points` * `scheduled_time` * `submission_modification_mode` * `topic_id`", + "description": "Mask that identifies which fields on the course work to update. This field is required to do an update. The update fails if invalid fields are specified. If a field supports empty values, it can be cleared by specifying it in the update mask and not in the `CourseWork` object. If a field that does not support empty values is included in the update mask and not set in the `CourseWork` object, an `INVALID_ARGUMENT` error is returned. The following fields may be specified by teachers: * `title` * `description` * `state` * `due_date` * `due_time` * `max_points` * `scheduled_time` * `submission_modification_mode` * `topic_id`", "format": "google-fieldmask", "location": "query", "type": "string" @@ -3851,7 +3851,7 @@ "type": "object" }, "StudentSubmission": { - "description": "Student submission for course work. StudentSubmission items are generated when a CourseWork item is created. StudentSubmissions that have never been accessed (i.e. with `state` = NEW) may not have a creation time or update time.", + "description": "Student submission for course work. `StudentSubmission` items are generated when a `CourseWork` item is created. Student submissions that have never been accessed (i.e. with `state` = NEW) may not have a creation time or update time.", "id": "StudentSubmission", "properties": { "alternateLink": { diff --git a/discovery/googleapis/cloudasset__v1.json b/discovery/googleapis/cloudasset__v1.json index f707423c2..d4b2f3b20 100644 --- a/discovery/googleapis/cloudasset__v1.json +++ b/discovery/googleapis/cloudasset__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231111", + "revision": "20240217", "rootUrl": "https://cloudasset.googleapis.com/", "servicePath": "", "title": "Cloud Asset API", @@ -202,13 +202,13 @@ ], "parameters": { "names": { - "description": "Required. The names refer to the [full_resource_names] (https://cloud.google.com/asset-inventory/docs/resource-name-format) of [searchable asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types). A maximum of 20 resources' effective policies can be retrieved in a batch.", + "description": "Required. The names refer to the [full_resource_names] (https://cloud.google.com/asset-inventory/docs/resource-name-format) of the asset types [supported by search APIs](https://cloud.google.com/asset-inventory/docs/supported-asset-types). A maximum of 20 resources' effective policies can be retrieved in a batch.", "location": "query", "repeated": true, "type": "string" }, "scope": { - "description": "Required. Only IAM policies on or below the scope will be returned. This can only be an organization number (such as \"organizations/123\"), a folder number (such as \"folders/123\"), a project ID (such as \"projects/my-project-id\"), or a project number (such as \"projects/12345\"). To know how to get organization id, visit [here ](https://cloud.google.com/resource-manager/docs/creating-managing-organization#retrieving_your_organization_id). To know how to get folder or project id, visit [here ](https://cloud.google.com/resource-manager/docs/creating-managing-folders#viewing_or_listing_folders_and_projects).", + "description": "Required. Only IAM policies on or below the scope will be returned. This can only be an organization number (such as \"organizations/123\"), a folder number (such as \"folders/123\"), a project ID (such as \"projects/my-project-id\"), or a project number (such as \"projects/12345\"). To know how to get organization ID, visit [here ](https://cloud.google.com/resource-manager/docs/creating-managing-organization#retrieving_your_organization_id). To know how to get folder or project ID, visit [here ](https://cloud.google.com/resource-manager/docs/creating-managing-folders#viewing_or_listing_folders_and_projects).", "location": "path", "pattern": "^[^/]+/[^/]+$", "required": true, @@ -632,7 +632,7 @@ "type": "string" }, "scope": { - "description": "Required. The relative name of the root asset. Only resources and IAM policies within the scope will be analyzed. This can only be an organization number (such as \"organizations/123\"), a folder number (such as \"folders/123\"), a project ID (such as \"projects/my-project-id\"), or a project number (such as \"projects/12345\"). To know how to get organization id, visit [here ](https://cloud.google.com/resource-manager/docs/creating-managing-organization#retrieving_your_organization_id). To know how to get folder or project id, visit [here ](https://cloud.google.com/resource-manager/docs/creating-managing-folders#viewing_or_listing_folders_and_projects).", + "description": "Required. The relative name of the root asset. Only resources and IAM policies within the scope will be analyzed. This can only be an organization number (such as \"organizations/123\"), a folder number (such as \"folders/123\"), a project ID (such as \"projects/my-project-id\"), or a project number (such as \"projects/12345\"). To know how to get organization ID, visit [here ](https://cloud.google.com/resource-manager/docs/creating-managing-organization#retrieving_your_organization_id). To know how to get folder or project ID, visit [here ](https://cloud.google.com/resource-manager/docs/creating-managing-folders#viewing_or_listing_folders_and_projects).", "location": "path", "pattern": "^[^/]+/[^/]+$", "required": true, @@ -657,7 +657,7 @@ ], "parameters": { "scope": { - "description": "Required. The relative name of the root asset. Only resources and IAM policies within the scope will be analyzed. This can only be an organization number (such as \"organizations/123\"), a folder number (such as \"folders/123\"), a project ID (such as \"projects/my-project-id\"), or a project number (such as \"projects/12345\"). To know how to get organization id, visit [here ](https://cloud.google.com/resource-manager/docs/creating-managing-organization#retrieving_your_organization_id). To know how to get folder or project id, visit [here ](https://cloud.google.com/resource-manager/docs/creating-managing-folders#viewing_or_listing_folders_and_projects).", + "description": "Required. The relative name of the root asset. Only resources and IAM policies within the scope will be analyzed. This can only be an organization number (such as \"organizations/123\"), a folder number (such as \"folders/123\"), a project ID (such as \"projects/my-project-id\"), or a project number (such as \"projects/12345\"). To know how to get organization ID, visit [here ](https://cloud.google.com/resource-manager/docs/creating-managing-organization#retrieving_your_organization_id). To know how to get folder or project ID, visit [here ](https://cloud.google.com/resource-manager/docs/creating-managing-folders#viewing_or_listing_folders_and_projects).", "location": "path", "pattern": "^[^/]+/[^/]+$", "required": true, @@ -767,7 +767,7 @@ ] }, "analyzeOrgPolicyGovernedAssets": { - "description": "Analyzes organization policies governed assets (Google Cloud resources or policies) under a scope. This RPC supports custom constraints and the following 10 canned constraints: * storage.uniformBucketLevelAccess * iam.disableServiceAccountKeyCreation * iam.allowedPolicyMemberDomains * compute.vmExternalIpAccess * appengine.enforceServiceAccountActAsCheck * gcp.resourceLocations * compute.trustedImageProjects * compute.skipDefaultNetworkCreation * compute.requireOsLogin * compute.disableNestedVirtualization This RPC only returns either resources of types supported by [searchable asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types), or IAM policies.", + "description": "Analyzes organization policies governed assets (Google Cloud resources or policies) under a scope. This RPC supports custom constraints and the following canned constraints: * constraints/ainotebooks.accessMode * constraints/ainotebooks.disableFileDownloads * constraints/ainotebooks.disableRootAccess * constraints/ainotebooks.disableTerminal * constraints/ainotebooks.environmentOptions * constraints/ainotebooks.requireAutoUpgradeSchedule * constraints/ainotebooks.restrictVpcNetworks * constraints/compute.disableGuestAttributesAccess * constraints/compute.disableInstanceDataAccessApis * constraints/compute.disableNestedVirtualization * constraints/compute.disableSerialPortAccess * constraints/compute.disableSerialPortLogging * constraints/compute.disableVpcExternalIpv6 * constraints/compute.requireOsLogin * constraints/compute.requireShieldedVm * constraints/compute.restrictLoadBalancerCreationForTypes * constraints/compute.restrictProtocolForwardingCreationForTypes * constraints/compute.restrictXpnProjectLienRemoval * constraints/compute.setNewProjectDefaultToZonalDNSOnly * constraints/compute.skipDefaultNetworkCreation * constraints/compute.trustedImageProjects * constraints/compute.vmCanIpForward * constraints/compute.vmExternalIpAccess * constraints/gcp.detailedAuditLoggingMode * constraints/gcp.resourceLocations * constraints/iam.allowedPolicyMemberDomains * constraints/iam.automaticIamGrantsForDefaultServiceAccounts * constraints/iam.disableServiceAccountCreation * constraints/iam.disableServiceAccountKeyCreation * constraints/iam.disableServiceAccountKeyUpload * constraints/iam.restrictCrossProjectServiceAccountLienRemoval * constraints/iam.serviceAccountKeyExpiryHours * constraints/resourcemanager.accessBoundaries * constraints/resourcemanager.allowedExportDestinations * constraints/sql.restrictAuthorizedNetworks * constraints/sql.restrictNoncompliantDiagnosticDataAccess * constraints/sql.restrictNoncompliantResourceCreation * constraints/sql.restrictPublicIp * constraints/storage.publicAccessPrevention * constraints/storage.restrictAuthTypes * constraints/storage.uniformBucketLevelAccess This RPC only returns either resources of types [supported by search APIs](https://cloud.google.com/asset-inventory/docs/supported-asset-types) or IAM policies.", "flatPath": "v1/{v1Id}/{v1Id1}:analyzeOrgPolicyGovernedAssets", "httpMethod": "GET", "id": "cloudasset.analyzeOrgPolicyGovernedAssets", @@ -996,7 +996,7 @@ ], "parameters": { "assetTypes": { - "description": "Optional. A list of asset types that the IAM policies are attached to. If empty, it will search the IAM policies that are attached to all the [searchable asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types). Regular expressions are also supported. For example: * \"compute.googleapis.com.*\" snapshots IAM policies attached to asset type starts with \"compute.googleapis.com\". * \".*Instance\" snapshots IAM policies attached to asset type ends with \"Instance\". * \".*Instance.*\" snapshots IAM policies attached to asset type contains \"Instance\". See [RE2](https://github.com/google/re2/wiki/Syntax) for all supported regular expression syntax. If the regular expression does not match any supported asset type, an INVALID_ARGUMENT error will be returned.", + "description": "Optional. A list of asset types that the IAM policies are attached to. If empty, it will search the IAM policies that are attached to all the asset types [supported by search APIs](https://cloud.google.com/asset-inventory/docs/supported-asset-types) Regular expressions are also supported. For example: * \"compute.googleapis.com.*\" snapshots IAM policies attached to asset type starts with \"compute.googleapis.com\". * \".*Instance\" snapshots IAM policies attached to asset type ends with \"Instance\". * \".*Instance.*\" snapshots IAM policies attached to asset type contains \"Instance\". See [RE2](https://github.com/google/re2/wiki/Syntax) for all supported regular expression syntax. If the regular expression does not match any supported asset type, an INVALID_ARGUMENT error will be returned.", "location": "query", "repeated": true, "type": "string" @@ -1048,7 +1048,7 @@ ], "parameters": { "assetTypes": { - "description": "Optional. A list of asset types that this request searches for. If empty, it will search all the [searchable asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types). Regular expressions are also supported. For example: * \"compute.googleapis.com.*\" snapshots resources whose asset type starts with \"compute.googleapis.com\". * \".*Instance\" snapshots resources whose asset type ends with \"Instance\". * \".*Instance.*\" snapshots resources whose asset type contains \"Instance\". See [RE2](https://github.com/google/re2/wiki/Syntax) for all supported regular expression syntax. If the regular expression does not match any supported asset type, an INVALID_ARGUMENT error will be returned.", + "description": "Optional. A list of asset types that this request searches for. If empty, it will search all the asset types [supported by search APIs](https://cloud.google.com/asset-inventory/docs/supported-asset-types). Regular expressions are also supported. For example: * \"compute.googleapis.com.*\" snapshots resources whose asset type starts with \"compute.googleapis.com\". * \".*Instance\" snapshots resources whose asset type ends with \"Instance\". * \".*Instance.*\" snapshots resources whose asset type contains \"Instance\". See [RE2](https://github.com/google/re2/wiki/Syntax) for all supported regular expression syntax. If the regular expression does not match any supported asset type, an INVALID_ARGUMENT error will be returned.", "location": "query", "repeated": true, "type": "string" @@ -1503,14 +1503,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -1529,7 +1529,7 @@ "type": "object" }, "ConditionEvaluation": { - "description": "The Condition evaluation.", + "description": "The condition evaluation.", "id": "ConditionEvaluation", "properties": { "evaluationValue": { @@ -1544,7 +1544,7 @@ "Reserved for future use.", "The evaluation result is `true`.", "The evaluation result is `false`.", - "The evaluation result is `conditional` when the condition expression contains variables that are either missing input values or have not been supported by Analyzer yet." + "The evaluation result is `conditional` when the condition expression contains variables that are either missing input values or have not been supported by Policy Analyzer yet." ], "type": "string" } @@ -1888,6 +1888,10 @@ "description": "The IAM policies governed by the organization policies of the AnalyzeOrgPolicyGovernedAssetsRequest.constraint.", "id": "GoogleCloudAssetV1AnalyzeOrgPolicyGovernedAssetsResponseGovernedIamPolicy", "properties": { + "assetType": { + "description": "The asset type of the AnalyzeOrgPolicyGovernedAssetsResponse.GovernedIamPolicy.attached_resource. Example: `cloudresourcemanager.googleapis.com/Project` See [Cloud Asset Inventory Supported Asset Types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for all supported asset types.", + "type": "string" + }, "attachedResource": { "description": "The full resource name of the resource on which this IAM policy is set. Example: `//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1`. See [Cloud Asset Inventory Resource Name Format](https://cloud.google.com/asset-inventory/docs/resource-name-format) for more information.", "type": "string" @@ -1918,6 +1922,17 @@ "description": "The Google Cloud resources governed by the organization policies of the AnalyzeOrgPolicyGovernedAssetsRequest.constraint.", "id": "GoogleCloudAssetV1AnalyzeOrgPolicyGovernedAssetsResponseGovernedResource", "properties": { + "assetType": { + "description": "The asset type of the AnalyzeOrgPolicyGovernedAssetsResponse.GovernedResource.full_resource_name Example: `cloudresourcemanager.googleapis.com/Project` See [Cloud Asset Inventory Supported Asset Types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for all supported asset types.", + "type": "string" + }, + "effectiveTags": { + "description": "The effective tags on this resource.", + "items": { + "$ref": "EffectiveTagDetails" + }, + "type": "array" + }, "folders": { "description": "The folder(s) that this resource belongs to, in the format of folders/{FOLDER_NUMBER}. This field is available when the resource belongs (directly or cascadingly) to one or more folders.", "items": { @@ -2119,10 +2134,28 @@ "$ref": "AnalyzerOrgPolicy", "description": "The consolidated organization policy for the analyzed resource. The consolidated organization policy is computed by merging and evaluating AnalyzeOrgPolicyGovernedContainersResponse.GovernedContainer.policy_bundle. The evaluation will respect the organization policy [hierarchy rules](https://cloud.google.com/resource-manager/docs/organization-policy/understanding-hierarchy)." }, + "effectiveTags": { + "description": "The effective tags on this resource.", + "items": { + "$ref": "EffectiveTagDetails" + }, + "type": "array" + }, + "folders": { + "description": "The folder(s) that this resource belongs to, in the format of folders/{FOLDER_NUMBER}. This field is available when the resource belongs (directly or cascadingly) to one or more folders.", + "items": { + "type": "string" + }, + "type": "array" + }, "fullResourceName": { "description": "The [full resource name] (https://cloud.google.com/asset-inventory/docs/resource-name-format) of an organization/folder/project resource.", "type": "string" }, + "organization": { + "description": "The organization that this resource belongs to, in the format of organizations/{ORGANIZATION_NUMBER}. This field is available when the resource belongs (directly or cascadingly) to an organization.", + "type": "string" + }, "parent": { "description": "The [full resource name] (https://cloud.google.com/asset-inventory/docs/resource-name-format) of the parent of AnalyzeOrgPolicyGovernedContainersResponse.GovernedContainer.full_resource_name.", "type": "string" @@ -2133,6 +2166,10 @@ "$ref": "AnalyzerOrgPolicy" }, "type": "array" + }, + "project": { + "description": "The project that this resource belongs to, in the format of projects/{PROJECT_NUMBER}. This field is available when the resource belongs to a project.", + "type": "string" } }, "type": "object" @@ -2234,6 +2271,10 @@ "$ref": "Expr", "description": "The evaluating condition for this rule." }, + "conditionEvaluation": { + "$ref": "ConditionEvaluation", + "description": "The condition evaluation result for this rule. Only populated if it meets all the following criteria: * There is a condition defined for this rule. * This rule is within AnalyzeOrgPolicyGovernedContainersResponse.GovernedContainer.consolidated_policy, or AnalyzeOrgPolicyGovernedAssetsResponse.GovernedAsset.consolidated_policy when the AnalyzeOrgPolicyGovernedAssetsResponse.GovernedAsset has AnalyzeOrgPolicyGovernedAssetsResponse.GovernedAsset.governed_resource." + }, "denyAll": { "description": "Setting this to true means that all values are denied. This field can be set only in Policies for list constraints.", "type": "boolean" @@ -2244,7 +2285,7 @@ }, "values": { "$ref": "GoogleCloudAssetV1StringValues", - "description": "List of values to be used for this PolicyRule. This field can be set only in Policies for list constraints." + "description": "List of values to be used for this policy rule. This field can be set only in policies for list constraints." } }, "type": "object" @@ -2759,7 +2800,7 @@ "id": "GoogleIdentityAccesscontextmanagerV1EgressFrom", "properties": { "identities": { - "description": "A list of identities that are allowed access through this [EgressPolicy]. Should be in the format of email address. The email address should represent individual user or service account only.", + "description": "A list of identities that are allowed access through this [EgressPolicy], in the format of `user:{email_id}` or `serviceAccount:{email_id}`.", "items": { "type": "string" }, @@ -2864,7 +2905,7 @@ "id": "GoogleIdentityAccesscontextmanagerV1IngressFrom", "properties": { "identities": { - "description": "A list of identities that are allowed access through this ingress policy. Should be in the format of email address. The email address should represent individual user or service account only.", + "description": "A list of identities that are allowed access through this ingress policy, in the format of `user:{email_id}` or `serviceAccount:{email_id}`.", "items": { "type": "string" }, @@ -2952,11 +2993,11 @@ "id": "GoogleIdentityAccesscontextmanagerV1MethodSelector", "properties": { "method": { - "description": "Value for `method` should be a valid method name for the corresponding `service_name` in ApiOperation. If `*` used as value for `method`, then ALL methods and permissions are allowed.", + "description": "A valid method name for the corresponding `service_name` in ApiOperation. If `*` is used as the value for the `method`, then ALL methods and permissions are allowed.", "type": "string" }, "permission": { - "description": "Value for `permission` should be a valid Cloud IAM permission for the corresponding `service_name` in ApiOperation.", + "description": "A valid Cloud IAM permission for the corresponding `service_name` in ApiOperation.", "type": "string" } }, @@ -3204,7 +3245,7 @@ "description": "Optional. Specifies a resource for analysis." }, "scope": { - "description": "Required. The relative name of the root asset. Only resources and IAM policies within the scope will be analyzed. This can only be an organization number (such as \"organizations/123\"), a folder number (such as \"folders/123\"), a project ID (such as \"projects/my-project-id\"), or a project number (such as \"projects/12345\"). To know how to get organization id, visit [here ](https://cloud.google.com/resource-manager/docs/creating-managing-organization#retrieving_your_organization_id). To know how to get folder or project id, visit [here ](https://cloud.google.com/resource-manager/docs/creating-managing-folders#viewing_or_listing_folders_and_projects).", + "description": "Required. The relative name of the root asset. Only resources and IAM policies within the scope will be analyzed. This can only be an organization number (such as \"organizations/123\"), a folder number (such as \"folders/123\"), a project ID (such as \"projects/my-project-id\"), or a project number (such as \"projects/12345\"). To know how to get organization ID, visit [here ](https://cloud.google.com/resource-manager/docs/creating-managing-organization#retrieving_your_organization_id). To know how to get folder or project ID, visit [here ](https://cloud.google.com/resource-manager/docs/creating-managing-folders#viewing_or_listing_folders_and_projects).", "type": "string" } }, @@ -3605,12 +3646,27 @@ "$ref": "AnalyzerOrgPolicy", "description": "The consolidated organization policy for the analyzed resource. The consolidated organization policy is computed by merging and evaluating AnalyzeOrgPoliciesResponse.policy_bundle. The evaluation will respect the organization policy [hierarchy rules](https://cloud.google.com/resource-manager/docs/organization-policy/understanding-hierarchy)." }, + "folders": { + "description": "The folder(s) that this consolidated policy belongs to, in the format of folders/{FOLDER_NUMBER}. This field is available when the consolidated policy belongs (directly or cascadingly) to one or more folders.", + "items": { + "type": "string" + }, + "type": "array" + }, + "organization": { + "description": "The organization that this consolidated policy belongs to, in the format of organizations/{ORGANIZATION_NUMBER}. This field is available when the consolidated policy belongs (directly or cascadingly) to an organization.", + "type": "string" + }, "policyBundle": { "description": "The ordered list of all organization policies from the AnalyzeOrgPoliciesResponse.OrgPolicyResult.consolidated_policy.attached_resource. to the scope specified in the request. If the constraint is defined with default policy, it will also appear in the list.", "items": { "$ref": "AnalyzerOrgPolicy" }, "type": "array" + }, + "project": { + "description": "The project that this consolidated policy belongs to, in the format of projects/{PROJECT_NUMBER}. This field is available when the consolidated policy belongs to a project.", + "type": "string" } }, "type": "object" @@ -4006,7 +4062,7 @@ "type": "string" }, "parent": { - "description": "The full name of the immediate parent of this resource. See [Resource Names](https://cloud.google.com/apis/design/resource_names#full_resource_name) for more information. For Google Cloud assets, this value is the parent resource defined in the [IAM policy hierarchy](https://cloud.google.com/iam/docs/overview#policy_hierarchy). Example: `//cloudresourcemanager.googleapis.com/projects/my_project_123` For third-party assets, this field may be set differently.", + "description": "The full name of the immediate parent of this resource. See [Resource Names](https://cloud.google.com/apis/design/resource_names#full_resource_name) for more information. For Google Cloud assets, this value is the parent resource defined in the [IAM policy hierarchy](https://cloud.google.com/iam/docs/overview#policy_hierarchy). Example: `//cloudresourcemanager.googleapis.com/projects/my_project_123`", "type": "string" }, "resourceUrl": { @@ -4390,7 +4446,7 @@ "type": "object" }, "Tag": { - "description": "The key and value for a [tag](https://cloud.google.com/resource-manager/docs/tags/tags-overview),", + "description": "The key and value for a [tag](https://cloud.google.com/resource-manager/docs/tags/tags-overview).", "id": "Tag", "properties": { "tagKey": { diff --git a/discovery/googleapis/cloudbilling__v1.json b/discovery/googleapis/cloudbilling__v1.json index 3a6879194..f627f82ed 100644 --- a/discovery/googleapis/cloudbilling__v1.json +++ b/discovery/googleapis/cloudbilling__v1.json @@ -31,7 +31,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231124", + "revision": "20240214", "rootUrl": "https://cloudbilling.googleapis.com/", "servicePath": "", "title": "Cloud Billing API", @@ -124,7 +124,7 @@ "parameterOrder": [], "parameters": { "parent": { - "description": "Optional. The parent to create a billing account from. Format: - organizations/{organization_id} eg organizations/12345678 - billingAccounts/{billing_account_id} eg `billingAccounts/012345-567890-ABCDEF`", + "description": "Optional. The parent to create a billing account from. Format: - `billingAccounts/{billing_account_id}`, for example, `billingAccounts/012345-567890-ABCDEF`", "location": "query", "type": "string" } @@ -209,7 +209,7 @@ "parameterOrder": [], "parameters": { "filter": { - "description": "Options for how to filter the returned billing accounts. This only supports filtering for [subaccounts](https://cloud.google.com/billing/docs/concepts) under a single provided parent billing account. (e.g. \"master_billing_account=billingAccounts/012345-678901-ABCDEF\"). Boolean algebra and other fields are not currently supported.", + "description": "Options for how to filter the returned billing accounts. This only supports filtering for [subaccounts](https://cloud.google.com/billing/docs/concepts) under a single provided parent billing account. (for example, `master_billing_account=billingAccounts/012345-678901-ABCDEF`). Boolean algebra and other fields are not currently supported.", "location": "query", "type": "string" }, @@ -225,7 +225,7 @@ "type": "string" }, "parent": { - "description": "Optional. The parent resource to list billing accounts from. Format: - organizations/{organization_id} eg organizations/12345678 - billingAccounts/{billing_account_id} eg `billingAccounts/012345-567890-ABCDEF`", + "description": "Optional. The parent resource to list billing accounts from. Format: - `organizations/{organization_id}`, for example, `organizations/12345678` - `billingAccounts/{billing_account_id}`, for example, `billingAccounts/012345-567890-ABCDEF`", "location": "query", "type": "string" } @@ -419,7 +419,7 @@ ], "parameters": { "parent": { - "description": "Optional. The parent to create a billing account from. Format: - organizations/{organization_id} eg organizations/12345678 - billingAccounts/{billing_account_id} eg `billingAccounts/012345-567890-ABCDEF`", + "description": "Optional. The parent to create a billing account from. Format: - `billingAccounts/{billing_account_id}`, for example, `billingAccounts/012345-567890-ABCDEF`", "location": "path", "pattern": "^billingAccounts/[^/]+$", "required": true, @@ -448,7 +448,7 @@ ], "parameters": { "filter": { - "description": "Options for how to filter the returned billing accounts. This only supports filtering for [subaccounts](https://cloud.google.com/billing/docs/concepts) under a single provided parent billing account. (e.g. \"master_billing_account=billingAccounts/012345-678901-ABCDEF\"). Boolean algebra and other fields are not currently supported.", + "description": "Options for how to filter the returned billing accounts. This only supports filtering for [subaccounts](https://cloud.google.com/billing/docs/concepts) under a single provided parent billing account. (for example, `master_billing_account=billingAccounts/012345-678901-ABCDEF`). Boolean algebra and other fields are not currently supported.", "location": "query", "type": "string" }, @@ -464,7 +464,7 @@ "type": "string" }, "parent": { - "description": "Optional. The parent resource to list billing accounts from. Format: - organizations/{organization_id} eg organizations/12345678 - billingAccounts/{billing_account_id} eg `billingAccounts/012345-567890-ABCDEF`", + "description": "Optional. The parent resource to list billing accounts from. Format: - `organizations/{organization_id}`, for example, `organizations/12345678` - `billingAccounts/{billing_account_id}`, for example, `billingAccounts/012345-567890-ABCDEF`", "location": "path", "pattern": "^billingAccounts/[^/]+$", "required": true, @@ -499,7 +499,7 @@ ], "parameters": { "parent": { - "description": "Optional. The parent to create a billing account from. Format: - organizations/{organization_id} eg organizations/12345678 - billingAccounts/{billing_account_id} eg `billingAccounts/012345-567890-ABCDEF`", + "description": "Optional. The parent to create a billing account from. Format: - `billingAccounts/{billing_account_id}`, for example, `billingAccounts/012345-567890-ABCDEF`", "location": "path", "pattern": "^organizations/[^/]+$", "required": true, @@ -528,7 +528,7 @@ ], "parameters": { "filter": { - "description": "Options for how to filter the returned billing accounts. This only supports filtering for [subaccounts](https://cloud.google.com/billing/docs/concepts) under a single provided parent billing account. (e.g. \"master_billing_account=billingAccounts/012345-678901-ABCDEF\"). Boolean algebra and other fields are not currently supported.", + "description": "Options for how to filter the returned billing accounts. This only supports filtering for [subaccounts](https://cloud.google.com/billing/docs/concepts) under a single provided parent billing account. (for example, `master_billing_account=billingAccounts/012345-678901-ABCDEF`). Boolean algebra and other fields are not currently supported.", "location": "query", "type": "string" }, @@ -544,7 +544,7 @@ "type": "string" }, "parent": { - "description": "Optional. The parent resource to list billing accounts from. Format: - organizations/{organization_id} eg organizations/12345678 - billingAccounts/{billing_account_id} eg `billingAccounts/012345-567890-ABCDEF`", + "description": "Optional. The parent resource to list billing accounts from. Format: - `organizations/{organization_id}`, for example, `organizations/12345678` - `billingAccounts/{billing_account_id}`, for example, `billingAccounts/012345-567890-ABCDEF`", "location": "path", "pattern": "^organizations/[^/]+$", "required": true, @@ -572,7 +572,7 @@ ], "parameters": { "destinationParent": { - "description": "Required. The resource name of the Organization to reparent the billing account under. Must be of the form `organizations/{organization_id}`.", + "description": "Required. The resource name of the Organization to move the billing account under. Must be of the form `organizations/{organization_id}`.", "location": "path", "pattern": "^organizations/[^/]+$", "required": true, @@ -859,12 +859,12 @@ "type": "string" }, "open": { - "description": "Output only. True if the billing account is open, and will therefore be charged for any usage on associated projects. False if the billing account is closed, and therefore projects associated with it will be unable to use paid services.", + "description": "Output only. True if the billing account is open, and will therefore be charged for any usage on associated projects. False if the billing account is closed, and therefore projects associated with it are unable to use paid services.", "readOnly": true, "type": "boolean" }, "parent": { - "description": "Output only. The billing account's parent resource identifier. Use the `MoveBillingAccount` method to update the account's parent resource if it is a organization. Format: - organizations/{organization_id}, for example: organizations/12345678 - billingAccounts/{billing_account_id}, for example: `billingAccounts/012345-567890-ABCDEF`", + "description": "Output only. The billing account's parent resource identifier. Use the `MoveBillingAccount` method to update the account's parent resource if it is a organization. Format: - `organizations/{organization_id}`, for example, `organizations/12345678` - `billingAccounts/{billing_account_id}`, for example, `billingAccounts/012345-567890-ABCDEF`", "readOnly": true, "type": "string" } @@ -880,14 +880,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -1067,7 +1067,7 @@ "id": "MoveBillingAccountRequest", "properties": { "destinationParent": { - "description": "Required. The resource name of the Organization to reparent the billing account under. Must be of the form `organizations/{organization_id}`.", + "description": "Required. The resource name of the Organization to move the billing account under. Must be of the form `organizations/{organization_id}`.", "type": "string" } }, diff --git a/discovery/googleapis/cloudbuild__v1.json b/discovery/googleapis/cloudbuild__v1.json index cf8139134..72a04ac0e 100644 --- a/discovery/googleapis/cloudbuild__v1.json +++ b/discovery/googleapis/cloudbuild__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231109", + "revision": "20240207", "rootUrl": "https://cloudbuild.googleapis.com/", "servicePath": "", "title": "Cloud Build API", @@ -3761,14 +3761,16 @@ "CLOUD_SOURCE_REPOSITORIES", "GITHUB", "BITBUCKET_SERVER", - "GITLAB" + "GITLAB", + "BITBUCKET_CLOUD" ], "enumDescriptions": [ "The default, unknown repo type. Don't use it, instead use one of the other repo types.", "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 GitLab-hosted repo." + "A GitLab-hosted repo.", + "A Bitbucket Cloud-hosted repo." ], "type": "string" }, @@ -4107,14 +4109,16 @@ "CLOUD_SOURCE_REPOSITORIES", "GITHUB", "BITBUCKET_SERVER", - "GITLAB" + "GITLAB", + "BITBUCKET_CLOUD" ], "enumDescriptions": [ "The default, unknown repo type. Don't use it, instead use one of the other repo types.", "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 GitLab-hosted repo." + "A GitLab-hosted repo.", + "A Bitbucket Cloud-hosted repo." ], "type": "string" }, @@ -4606,16 +4610,16 @@ "type": "string" }, "commentControl": { - "description": "Configure builds to run whether a repository owner or collaborator need to comment `/gcbrun`.", + "description": "If CommentControl is enabled, depending on the setting, builds may not fire until a repository writer comments `/gcbrun` on a pull request or `/gcbrun` is in the pull request description. Only PR comments that contain `/gcbrun` will trigger builds. If CommentControl is set to disabled, comments with `/gcbrun` from a user with repository write permission or above will still trigger builds to run.", "enum": [ "COMMENTS_DISABLED", "COMMENTS_ENABLED", "COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY" ], "enumDescriptions": [ - "Do not require comments on Pull Requests before builds are triggered.", - "Enforce that repository owners or collaborators must comment on Pull Requests before builds are triggered.", - "Enforce that repository owners or collaborators must comment on external contributors' Pull Requests before builds are triggered." + "Do not require `/gcbrun` comments from a user with repository write permission or above on pull requests before builds are triggered. Comments that contain `/gcbrun` will still fire builds so this should be thought of as comments not required.", + "Builds will only fire in response to pull requests if: 1. The pull request author has repository write permission or above and `/gcbrun` is in the PR description. 2. A user with repository writer permissions or above comments `/gcbrun` on a pull request authored by any user.", + "Builds will only fire in response to pull requests if: 1. The pull request author is a repository writer or above. 2. If the author does not have write permissions, a user with write permissions or above must comment `/gcbrun` in order to fire a build." ], "type": "string" }, @@ -4756,14 +4760,16 @@ "GITHUB", "GITHUB_ENTERPRISE", "GITLAB_ENTERPRISE", - "BITBUCKET_DATA_CENTER" + "BITBUCKET_DATA_CENTER", + "BITBUCKET_CLOUD" ], "enumDescriptions": [ "If unspecified, RepositoryType defaults to GITHUB.", "The SCM repo is GITHUB.", "The SCM repo is GITHUB Enterprise.", "The SCM repo is GITLAB Enterprise.", - "The SCM repo is BITBUCKET Data Center." + "The SCM repo is BITBUCKET Data Center.", + "The SCM repo is BITBUCKET Cloud." ], "readOnly": true, "type": "string" diff --git a/discovery/googleapis/cloudbuild__v2.json b/discovery/googleapis/cloudbuild__v2.json index afd384e4c..8399dc000 100644 --- a/discovery/googleapis/cloudbuild__v2.json +++ b/discovery/googleapis/cloudbuild__v2.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231109", + "revision": "20240207", "rootUrl": "https://cloudbuild.googleapis.com/", "servicePath": "", "title": "Cloud Build API", @@ -934,14 +934,73 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", + "type": "string" + } + }, + "type": "object" + }, + "BitbucketCloudConfig": { + "description": "Configuration for connections to Bitbucket Cloud.", + "id": "BitbucketCloudConfig", + "properties": { + "authorizerCredential": { + "$ref": "UserCredential", + "description": "Required. An access token with the `webhook`, `repository`, `repository:admin` and `pullrequest` scope access. It can be either a workspace, project or repository access token. It's recommended to use a system account to generate these credentials." + }, + "readAuthorizerCredential": { + "$ref": "UserCredential", + "description": "Required. An access token with the `repository` access. It can be either a workspace, project or repository access token. It's recommended to use a system account to generate the credentials." + }, + "webhookSecretSecretVersion": { + "description": "Required. SecretManager resource containing the webhook secret used to verify webhook events, formatted as `projects/*/secrets/*/versions/*`.", + "type": "string" + }, + "workspace": { + "description": "Required. The Bitbucket Cloud Workspace ID to be connected to Google Cloud Platform.", + "type": "string" + } + }, + "type": "object" + }, + "BitbucketDataCenterConfig": { + "description": "Configuration for connections to Bitbucket Data Center.", + "id": "BitbucketDataCenterConfig", + "properties": { + "authorizerCredential": { + "$ref": "UserCredential", + "description": "Required. A http access token with the `REPO_ADMIN` scope access." + }, + "hostUri": { + "description": "Required. The URI of the Bitbucket Data Center instance or cluster this connection is for.", + "type": "string" + }, + "readAuthorizerCredential": { + "$ref": "UserCredential", + "description": "Required. A http access token with the `REPO_READ` access." + }, + "serverVersion": { + "description": "Output only. Version of the Bitbucket Data Center running on the `host_uri`.", + "readOnly": true, + "type": "string" + }, + "serviceDirectoryConfig": { + "$ref": "GoogleDevtoolsCloudbuildV2ServiceDirectoryConfig", + "description": "Optional. Configuration for using Service Directory to privately connect to a Bitbucket Data Center. This should only be set if the Bitbucket Data Center is hosted on-premises and not reachable by public internet. If this field is left empty, calls to the Bitbucket Data Center will be made over the public internet." + }, + "sslCa": { + "description": "Optional. SSL certificate to use for requests to the Bitbucket Data Center.", + "type": "string" + }, + "webhookSecretSecretVersion": { + "description": "Required. Immutable. SecretManager resource containing the webhook secret used to verify webhook events, formatted as `projects/*/secrets/*/versions/*`.", "type": "string" } }, @@ -1010,7 +1069,7 @@ "type": "object" }, "Connection": { - "description": "A connection to a SCM like GitHub, GitHub Enterprise, Bitbucket Data Center or GitLab.", + "description": "A connection to a SCM like GitHub, GitHub Enterprise, Bitbucket Data Center, Bitbucket Cloud or GitLab.", "id": "Connection", "properties": { "annotations": { @@ -1020,6 +1079,14 @@ "description": "Allows clients to store small amounts of arbitrary data.", "type": "object" }, + "bitbucketCloudConfig": { + "$ref": "BitbucketCloudConfig", + "description": "Configuration for connections to Bitbucket Cloud." + }, + "bitbucketDataCenterConfig": { + "$ref": "BitbucketDataCenterConfig", + "description": "Configuration for connections to Bitbucket Data Center." + }, "createTime": { "description": "Output only. Server assigned timestamp for when the connection was created.", "format": "google-datetime", @@ -1869,6 +1936,14 @@ "readOnly": true, "type": "string" }, + "gcbParams": { + "additionalProperties": { + "type": "string" + }, + "description": "Output only. GCB default params.", + "readOnly": true, + "type": "object" + }, "name": { "description": "Output only. The `PipelineRun` name with format `projects/{project}/locations/{location}/pipelineRuns/{pipeline_run}`", "readOnly": true, @@ -1901,11 +1976,24 @@ "$ref": "PipelineSpec", "description": "PipelineSpec defines the desired state of Pipeline." }, + "provenance": { + "$ref": "Provenance", + "description": "Optional. Provenance configuration." + }, + "record": { + "description": "Output only. The `Record` of this `PipelineRun`. Format: `projects/{project}/locations/{location}/results/{result_id}/records/{record_id}`", + "readOnly": true, + "type": "string" + }, "resolvedPipelineSpec": { "$ref": "PipelineSpec", "description": "Output only. The exact PipelineSpec used to instantiate the run.", "readOnly": true }, + "security": { + "$ref": "Security", + "description": "Optional. Security configuration." + }, "serviceAccount": { "description": "Service account used in the Pipeline.", "type": "string" @@ -1939,6 +2027,10 @@ "readOnly": true, "type": "string" }, + "worker": { + "$ref": "Worker", + "description": "Optional. Worker configuration." + }, "workerPool": { "description": "Output only. The WorkerPool used to run this PipelineRun.", "readOnly": true, @@ -2141,6 +2233,57 @@ }, "type": "object" }, + "Provenance": { + "description": "Provenance configuration.", + "id": "Provenance", + "properties": { + "enabled": { + "description": "Optional. Provenance push mode.", + "enum": [ + "ENABLED_UNSPECIFIED", + "REQUIRED", + "OPTIMISTIC", + "DISABLED" + ], + "enumDescriptions": [ + "Default to disabled (before AA regionalization), optimistic after", + "Provenance failures would fail the run", + "GCB will attempt to push to artifact analaysis and build state would not be impacted by the push failures.", + "Disable the provenance push entirely." + ], + "type": "string" + }, + "region": { + "description": "Optional. Provenance region.", + "enum": [ + "REGION_UNSPECIFIED", + "GLOBAL" + ], + "enumDescriptions": [ + "The PipelineRun/TaskRun/Workflow will be rejected. Update this comment to push to the same region as the run in Artifact Analysis when it's regionalized.", + "Push provenance to Artifact Analysis in global region." + ], + "type": "string" + }, + "storage": { + "description": "Optional. Where provenance is stored.", + "enum": [ + "STORAGE_UNSPECIFIED", + "PREFER_ARTIFACT_PROJECT", + "ARTIFACT_PROJECT_ONLY", + "BUILD_PROJECT_ONLY" + ], + "enumDescriptions": [ + "Default PREFER_ARTIFACT_PROJECT.", + "GCB will attempt to push provenance to the artifact project. If it is not available, fallback to build project.", + "Only push to artifact project.", + "Only push to build project." + ], + "type": "string" + } + }, + "type": "object" + }, "Repository": { "description": "A repository associated to a parent connection.", "id": "Repository", @@ -2244,6 +2387,31 @@ }, "type": "object" }, + "Security": { + "description": "Security configuration.", + "id": "Security", + "properties": { + "privilegeMode": { + "description": "Optional. Privilege mode.", + "enum": [ + "PRIVILEGE_MODE_UNSPECIFIED", + "PRIVILEGED", + "UNPRIVILEGED" + ], + "enumDescriptions": [ + "Default to PRIVILEGED.", + "Privileged mode.", + "Unprivileged mode." + ], + "type": "string" + }, + "serviceAccount": { + "description": "IAM service account whose credentials will be used at runtime.", + "type": "string" + } + }, + "type": "object" + }, "SecurityContext": { "description": "Security options the container should be run with.", "id": "SecurityContext", @@ -2472,6 +2640,13 @@ "$ref": "EnvVar" }, "type": "array" + }, + "volumeMounts": { + "description": "Optional. Pod volumes to mount into the container's filesystem.", + "items": { + "$ref": "VolumeMount" + }, + "type": "array" } }, "type": "object" @@ -2594,11 +2769,8 @@ "type": "array" }, "stepTemplate": { - "description": "Optional. StepTemplate can be used as the basis for all step containers within the Task, so that the steps inherit settings on the base container.", - "items": { - "$ref": "StepTemplate" - }, - "type": "array" + "$ref": "StepTemplate", + "description": "Optional. StepTemplate can be used as the basis for all step containers within the Task, so that the steps inherit settings on the base container." }, "steps": { "description": "Steps of the task.", @@ -2775,6 +2947,17 @@ }, "type": "object" }, + "Worker": { + "description": "Configuration for the worker.", + "id": "Worker", + "properties": { + "machineType": { + "description": "Optional. Machine type of a worker, default is \"e2-standard-2\".", + "type": "string" + } + }, + "type": "object" + }, "WorkspaceBinding": { "description": "WorkspaceBinding maps a workspace to a Volume. PipelineRef can be used to refer to a specific instance of a Pipeline.", "id": "WorkspaceBinding", diff --git a/discovery/googleapis/cloudchannel__v1.json b/discovery/googleapis/cloudchannel__v1.json index 1520376bd..2cb1d6c5c 100644 --- a/discovery/googleapis/cloudchannel__v1.json +++ b/discovery/googleapis/cloudchannel__v1.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231115", + "revision": "20240226", "rootUrl": "https://cloudchannel.googleapis.com/", "servicePath": "", "title": "Cloud Channel API", @@ -1777,9 +1777,11 @@ } }, "reportJobs": { + "deprecated": true, "methods": { "fetchReportResults": { - "description": "Retrieves data generated by CloudChannelReportsService.RunReportJob.", + "deprecated": true, + "description": "Retrieves data generated by CloudChannelReportsService.RunReportJob. Deprecated: Please use [Export Channel Services data to BigQuery](https://cloud.google.com/channel/docs/rebilling/export-data-to-bigquery) instead.", "flatPath": "v1/accounts/{accountsId}/reportJobs/{reportJobsId}:fetchReportResults", "httpMethod": "POST", "id": "cloudchannel.accounts.reportJobs.fetchReportResults", @@ -1809,9 +1811,11 @@ } }, "reports": { + "deprecated": true, "methods": { "list": { - "description": "Lists the reports that RunReportJob can run. These reports include an ID, a description, and the list of columns that will be in the result.", + "deprecated": true, + "description": "Lists the reports that RunReportJob can run. These reports include an ID, a description, and the list of columns that will be in the result. Deprecated: Please use [Export Channel Services data to BigQuery](https://cloud.google.com/channel/docs/rebilling/export-data-to-bigquery) instead.", "flatPath": "v1/accounts/{accountsId}/reports", "httpMethod": "GET", "id": "cloudchannel.accounts.reports.list", @@ -1852,7 +1856,8 @@ ] }, "run": { - "description": "Begins generation of data for a given report. The report identifier is a UID (for example, `613bf59q`). Possible error codes: * PERMISSION_DENIED: The user doesn't have access to this report. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: The report identifier was not found. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The ID of a long-running operation. To get the results of the operation, call the GetOperation method of CloudChannelOperationsService. The Operation metadata contains an instance of OperationMetadata. To get the results of report generation, call CloudChannelReportsService.FetchReportResults with the RunReportJobResponse.report_job.", + "deprecated": true, + "description": "Begins generation of data for a given report. The report identifier is a UID (for example, `613bf59q`). Possible error codes: * PERMISSION_DENIED: The user doesn't have access to this report. * INVALID_ARGUMENT: Required request parameters are missing or invalid. * NOT_FOUND: The report identifier was not found. * INTERNAL: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. * UNKNOWN: Any non-user error related to a technical issue in the backend. Contact Cloud Channel support. Return value: The ID of a long-running operation. To get the results of the operation, call the GetOperation method of CloudChannelOperationsService. The Operation metadata contains an instance of OperationMetadata. To get the results of report generation, call CloudChannelReportsService.FetchReportResults with the RunReportJobResponse.report_job. Deprecated: Please use [Export Channel Services data to BigQuery](https://cloud.google.com/channel/docs/rebilling/export-data-to-bigquery) instead.", "flatPath": "v1/accounts/{accountsId}/reports/{reportsId}:run", "httpMethod": "POST", "id": "cloudchannel.accounts.reports.run", @@ -2456,7 +2461,7 @@ "id": "GoogleCloudChannelV1CheckCloudIdentityAccountsExistRequest", "properties": { "domain": { - "description": "Required. Domain to fetch for Cloud Identity account customer.", + "description": "Required. Domain to fetch for Cloud Identity account customers, including domained and domainless.", "type": "string" } }, @@ -2552,6 +2557,7 @@ "type": "object" }, "GoogleCloudChannelV1Column": { + "deprecated": true, "description": "The definition of a report column. Specifies the data properties in the corresponding position of the report rows.", "id": "GoogleCloudChannelV1Column", "properties": { @@ -2862,6 +2868,7 @@ "type": "object" }, "GoogleCloudChannelV1DateRange": { + "deprecated": true, "description": "A representation of usage or invoice date ranges.", "id": "GoogleCloudChannelV1DateRange", "properties": { @@ -3228,6 +3235,7 @@ "type": "object" }, "GoogleCloudChannelV1FetchReportResultsRequest": { + "deprecated": true, "description": "Request message for CloudChannelReportsService.FetchReportResults.", "id": "GoogleCloudChannelV1FetchReportResultsRequest", "properties": { @@ -3251,6 +3259,7 @@ "type": "object" }, "GoogleCloudChannelV1FetchReportResultsResponse": { + "deprecated": true, "description": "Response message for CloudChannelReportsService.FetchReportResults. Contains a tabular representation of the report results.", "id": "GoogleCloudChannelV1FetchReportResultsResponse", "properties": { @@ -3484,6 +3493,7 @@ "type": "object" }, "GoogleCloudChannelV1ListReportsResponse": { + "deprecated": true, "description": "Response message for CloudChannelReportsService.ListReports.", "id": "GoogleCloudChannelV1ListReportsResponse", "properties": { @@ -4267,6 +4277,7 @@ "type": "object" }, "GoogleCloudChannelV1Report": { + "deprecated": true, "description": "The ID and description of a report that was used to generate report data. For example, \"Google Cloud Daily Spend\", \"Google Workspace License Activity\", etc.", "id": "GoogleCloudChannelV1Report", "properties": { @@ -4293,6 +4304,7 @@ "type": "object" }, "GoogleCloudChannelV1ReportJob": { + "deprecated": true, "description": "The result of a RunReportJob operation. Contains the name to use in FetchReportResultsRequest.report_job and the status of the operation.", "id": "GoogleCloudChannelV1ReportJob", "properties": { @@ -4308,6 +4320,7 @@ "type": "object" }, "GoogleCloudChannelV1ReportResultsMetadata": { + "deprecated": true, "description": "The features describing the data. Returned by CloudChannelReportsService.RunReportJob and CloudChannelReportsService.FetchReportResults.", "id": "GoogleCloudChannelV1ReportResultsMetadata", "properties": { @@ -4332,6 +4345,7 @@ "type": "object" }, "GoogleCloudChannelV1ReportStatus": { + "deprecated": true, "description": "Status of a report generation process.", "id": "GoogleCloudChannelV1ReportStatus", "properties": { @@ -4367,6 +4381,7 @@ "type": "object" }, "GoogleCloudChannelV1ReportValue": { + "deprecated": true, "description": "A single report value.", "id": "GoogleCloudChannelV1ReportValue", "properties": { @@ -4484,6 +4499,7 @@ "type": "object" }, "GoogleCloudChannelV1Row": { + "deprecated": true, "description": "A row of report values.", "id": "GoogleCloudChannelV1Row", "properties": { @@ -4502,6 +4518,7 @@ "type": "object" }, "GoogleCloudChannelV1RunReportJobRequest": { + "deprecated": true, "description": "Request message for CloudChannelReportsService.RunReportJob.", "id": "GoogleCloudChannelV1RunReportJobRequest", "properties": { @@ -4521,6 +4538,7 @@ "type": "object" }, "GoogleCloudChannelV1RunReportJobResponse": { + "deprecated": true, "description": "Response message for CloudChannelReportsService.RunReportJob.", "id": "GoogleCloudChannelV1RunReportJobResponse", "properties": { @@ -4879,6 +4897,7 @@ "type": "object" }, "GoogleCloudChannelV1alpha1Column": { + "deprecated": true, "description": "The definition of a report column. Specifies the data properties in the corresponding position of the report rows.", "id": "GoogleCloudChannelV1alpha1Column", "properties": { @@ -4964,6 +4983,7 @@ "type": "object" }, "GoogleCloudChannelV1alpha1DateRange": { + "deprecated": true, "description": "A representation of usage or invoice date ranges.", "id": "GoogleCloudChannelV1alpha1DateRange", "properties": { @@ -5348,6 +5368,7 @@ "type": "object" }, "GoogleCloudChannelV1alpha1Report": { + "deprecated": true, "description": "The ID and description of a report that was used to generate report data. For example, \"Google Cloud Daily Spend\", \"Google Workspace License Activity\", etc.", "id": "GoogleCloudChannelV1alpha1Report", "properties": { @@ -5374,6 +5395,7 @@ "type": "object" }, "GoogleCloudChannelV1alpha1ReportJob": { + "deprecated": true, "description": "The result of a RunReportJob operation. Contains the name to use in FetchReportResultsRequest.report_job and the status of the operation.", "id": "GoogleCloudChannelV1alpha1ReportJob", "properties": { @@ -5389,6 +5411,7 @@ "type": "object" }, "GoogleCloudChannelV1alpha1ReportResultsMetadata": { + "deprecated": true, "description": "The features describing the data. Returned by CloudChannelReportsService.RunReportJob and CloudChannelReportsService.FetchReportResults.", "id": "GoogleCloudChannelV1alpha1ReportResultsMetadata", "properties": { @@ -5413,6 +5436,7 @@ "type": "object" }, "GoogleCloudChannelV1alpha1ReportStatus": { + "deprecated": true, "description": "Status of a report generation process.", "id": "GoogleCloudChannelV1alpha1ReportStatus", "properties": { @@ -5448,6 +5472,7 @@ "type": "object" }, "GoogleCloudChannelV1alpha1RunReportJobResponse": { + "deprecated": true, "description": "Response message for CloudChannelReportsService.RunReportJob.", "id": "GoogleCloudChannelV1alpha1RunReportJobResponse", "properties": { diff --git a/discovery/googleapis/clouddeploy__v1.json b/discovery/googleapis/clouddeploy__v1.json index 02de6ef47..6566989d9 100644 --- a/discovery/googleapis/clouddeploy__v1.json +++ b/discovery/googleapis/clouddeploy__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231101", + "revision": "20240207", "rootUrl": "https://clouddeploy.googleapis.com/", "servicePath": "", "title": "Cloud Deploy API", @@ -206,6 +206,277 @@ } }, "resources": { + "customTargetTypes": { + "methods": { + "create": { + "description": "Creates a new CustomTargetType in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/customTargetTypes", + "httpMethod": "POST", + "id": "clouddeploy.projects.locations.customTargetTypes.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "customTargetTypeId": { + "description": "Required. ID of the `CustomTargetType`.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent collection in which the `CustomTargetType` should be created. Format should be `projects/{project_id}/locations/{location_name}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server knows to ignore the request if it has already been completed. The server guarantees that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "validateOnly": { + "description": "Optional. If set to true, the request is validated and the user is provided with an expected result, but no actual change is made.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/{+parent}/customTargetTypes", + "request": { + "$ref": "CustomTargetType" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single CustomTargetType.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/customTargetTypes/{customTargetTypesId}", + "httpMethod": "DELETE", + "id": "clouddeploy.projects.locations.customTargetTypes.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "allowMissing": { + "description": "Optional. If set to true, then deleting an already deleted or non-existing `CustomTargetType` will succeed.", + "location": "query", + "type": "boolean" + }, + "etag": { + "description": "Optional. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. The name of the `CustomTargetType` to delete. Format must be `projects/{project_id}/locations/{location_name}/customTargetTypes/{custom_target_type}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/customTargetTypes/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server knows to ignore the request if it has already been completed. The server guarantees that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "validateOnly": { + "description": "Optional. If set to true, the request is validated but no actual change is made.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a single CustomTargetType.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/customTargetTypes/{customTargetTypesId}", + "httpMethod": "GET", + "id": "clouddeploy.projects.locations.customTargetTypes.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the `CustomTargetType`. Format must be `projects/{project_id}/locations/{location_name}/customTargetTypes/{custom_target_type}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/customTargetTypes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "CustomTargetType" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getIamPolicy": { + "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/customTargetTypes/{customTargetTypesId}:getIamPolicy", + "httpMethod": "GET", + "id": "clouddeploy.projects.locations.customTargetTypes.getIamPolicy", + "parameterOrder": [ + "resource" + ], + "parameters": { + "options.requestedPolicyVersion": { + "description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", + "format": "int32", + "location": "query", + "type": "integer" + }, + "resource": { + "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/customTargetTypes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists CustomTargetTypes in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/customTargetTypes", + "httpMethod": "GET", + "id": "clouddeploy.projects.locations.customTargetTypes.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Filter custom target types to be returned. See https://google.aip.dev/160 for more details.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. Field to sort by. See https://google.aip.dev/132#ordering for more details.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of `CustomTargetType` objects to return. The service may return fewer than this value. If unspecified, at most 50 `CustomTargetType` objects will be returned. The maximum value is 1000; values above 1000 will be set to 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token, received from a previous `ListCustomTargetTypes` call. Provide this to retrieve the subsequent page. When paginating, all other provided parameters match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent that owns this collection of custom target types. Format must be `projects/{project_id}/locations/{location_name}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/customTargetTypes", + "response": { + "$ref": "ListCustomTargetTypesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a single CustomTargetType.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/customTargetTypes/{customTargetTypesId}", + "httpMethod": "PATCH", + "id": "clouddeploy.projects.locations.customTargetTypes.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "allowMissing": { + "description": "Optional. If set to true, updating a `CustomTargetType` that does not exist will result in the creation of a new `CustomTargetType`.", + "location": "query", + "type": "boolean" + }, + "name": { + "description": "Optional. Name of the `CustomTargetType`. Format is `projects/{project}/locations/{location}/customTargetTypes/a-z{0,62}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/customTargetTypes/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server knows to ignore the request if it has already been completed. The server guarantees that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "Required. Field mask is used to specify the fields to be overwritten in the `CustomTargetType` resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it's in the mask. If the user doesn't provide a mask then all fields are overwritten.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, + "validateOnly": { + "description": "Optional. If set to true, the request is validated and the user is provided with an expected result, but no actual change is made.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "CustomTargetType" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "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}/locations/{locationsId}/customTargetTypes/{customTargetTypesId}:setIamPolicy", + "httpMethod": "POST", + "id": "clouddeploy.projects.locations.customTargetTypes.setIamPolicy", + "parameterOrder": [ + "resource" + ], + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/customTargetTypes/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:setIamPolicy", + "request": { + "$ref": "SetIamPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "deliveryPipelines": { "methods": { "create": { @@ -223,14 +494,14 @@ "type": "string" }, "parent": { - "description": "Required. The parent collection in which the `DeliveryPipeline` should be created. Format should be projects/{project_id}/locations/{location_name}.", + "description": "Required. The parent collection in which the `DeliveryPipeline` should be created. Format should be `projects/{project_id}/locations/{location_name}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, "type": "string" }, "requestId": { - "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server knows to ignore the request if it has already been completed. The server guarantees that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -276,14 +547,14 @@ "type": "boolean" }, "name": { - "description": "Required. The name of the `DeliveryPipeline` to delete. Format should be projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}.", + "description": "Required. The name of the `DeliveryPipeline` to delete. Format should be `projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/deliveryPipelines/[^/]+$", "required": true, "type": "string" }, "requestId": { - "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server knows to ignore the request if it has already been completed. The server guarantees that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -311,7 +582,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the `DeliveryPipeline`. Format must be projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}.", + "description": "Required. Name of the `DeliveryPipeline`. Format must be `projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/deliveryPipelines/[^/]+$", "required": true, @@ -388,7 +659,7 @@ "type": "string" }, "parent": { - "description": "Required. The parent, which owns this collection of pipelines. Format must be projects/{project_id}/locations/{location_name}.", + "description": "Required. The parent, which owns this collection of pipelines. Format must be `projects/{project_id}/locations/{location_name}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -418,19 +689,19 @@ "type": "boolean" }, "name": { - "description": "Optional. Name of the `DeliveryPipeline`. Format is projects/{project}/ locations/{location}/deliveryPipelines/a-z{0,62}.", + "description": "Optional. Name of the `DeliveryPipeline`. Format is `projects/{project}/locations/{location}/deliveryPipelines/a-z{0,62}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/deliveryPipelines/[^/]+$", "required": true, "type": "string" }, "requestId": { - "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server knows to ignore the request if it has already been completed. The server guarantees that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, "updateMask": { - "description": "Required. Field mask is used to specify the fields to be overwritten in the `DeliveryPipeline` resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", + "description": "Required. Field mask is used to specify the fields to be overwritten in the `DeliveryPipeline` resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it's in the mask. If the user doesn't provide a mask then all fields are overwritten.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -462,7 +733,7 @@ ], "parameters": { "name": { - "description": "Required. The `DeliveryPipeline` for which the rollback `Rollout` should be created. Format should be projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}.", + "description": "Required. The `DeliveryPipeline` for which the rollback `Rollout` should be created. Format should be `projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/deliveryPipelines/[^/]+$", "required": true, @@ -550,7 +821,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the `AutomationRun`. Format is projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/automationRuns/{automation_run}.", + "description": "Required. Name of the `AutomationRun`. Format is `projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/automationRuns/{automation_run}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/deliveryPipelines/[^/]+/automationRuns/[^/]+$", "required": true, @@ -578,7 +849,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the `AutomationRun`. Format must be projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/automationRuns/{automation_run}.", + "description": "Required. Name of the `AutomationRun`. Format must be `projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/automationRuns/{automation_run}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/deliveryPipelines/[^/]+/automationRuns/[^/]+$", "required": true, @@ -624,7 +895,7 @@ "type": "string" }, "parent": { - "description": "Required. The parent, which owns this collection of automationRuns. Format must be projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}.", + "description": "Required. The parent `Delivery Pipeline`, which owns this collection of automationRuns. Format must be `projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/deliveryPipelines/[^/]+$", "required": true, @@ -658,14 +929,14 @@ "type": "string" }, "parent": { - "description": "Required. The parent collection in which the `Automation` should be created. Format should be projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}.", + "description": "Required. The parent collection in which the `Automation` should be created. Format should be `projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/deliveryPipelines/[^/]+$", "required": true, "type": "string" }, "requestId": { - "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server knows to ignore the request if it has already been completed. The server guarantees that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -706,14 +977,14 @@ "type": "string" }, "name": { - "description": "Required. The name of the `Automation` to delete. Format should be projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/automations/{automation_name}.", + "description": "Required. The name of the `Automation` to delete. Format should be `projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/automations/{automation_name}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/deliveryPipelines/[^/]+/automations/[^/]+$", "required": true, "type": "string" }, "requestId": { - "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server knows to ignore the request if it has already been completed. The server guarantees that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -741,7 +1012,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the `Automation`. Format must be projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/automations/{automation_name}.", + "description": "Required. Name of the `Automation`. Format must be `projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/automations/{automation_name}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/deliveryPipelines/[^/]+/automations/[^/]+$", "required": true, @@ -787,7 +1058,7 @@ "type": "string" }, "parent": { - "description": "Required. The parent, which owns this collection of automations. Format must be projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}.", + "description": "Required. The parent `Delivery Pipeline`, which owns this collection of automations. Format must be `projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/deliveryPipelines/[^/]+$", "required": true, @@ -817,19 +1088,19 @@ "type": "boolean" }, "name": { - "description": "Output only. Name of the `Automation`. Format is projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/automations/{automation}.", + "description": "Output only. Name of the `Automation`. Format is `projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/automations/{automation}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/deliveryPipelines/[^/]+/automations/[^/]+$", "required": true, "type": "string" }, "requestId": { - "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server knows to ignore the request if it has already been completed. The server guarantees that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, "updateMask": { - "description": "Required. Field mask is used to specify the fields to be overwritten in the `Automation` resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", + "description": "Required. Field mask is used to specify the fields to be overwritten in the `Automation` resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it's in the mask. If the user doesn't provide a mask then all fields are overwritten.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -865,7 +1136,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the Release. Format is projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/ releases/{release}.", + "description": "Required. Name of the Release. Format is `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/deliveryPipelines/[^/]+/releases/[^/]+$", "required": true, @@ -893,7 +1164,7 @@ ], "parameters": { "parent": { - "description": "Required. The parent collection in which the `Release` should be created. Format should be projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}.", + "description": "Required. The parent collection in which the `Release` should be created. Format should be `projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/deliveryPipelines/[^/]+$", "required": true, @@ -905,7 +1176,7 @@ "type": "string" }, "requestId": { - "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server knows to ignore the request if it has already been completed. The server guarantees that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -936,7 +1207,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the `Release`. Format must be projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}.", + "description": "Required. Name of the `Release`. Format must be `projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/deliveryPipelines/[^/]+/releases/[^/]+$", "required": true, @@ -1011,7 +1282,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the Rollout. Format is projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/ releases/{release}/rollouts/{rollout}.", + "description": "Required. Name of the Rollout. Format is `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}/rollouts/{rollout}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/deliveryPipelines/[^/]+/releases/[^/]+/rollouts/[^/]+$", "required": true, @@ -1039,7 +1310,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the Rollout. Format is projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/ releases/{release}/rollouts/{rollout}.", + "description": "Required. Name of the Rollout. Format is `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}/rollouts/{rollout}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/deliveryPipelines/[^/]+/releases/[^/]+/rollouts/[^/]+$", "required": true, @@ -1067,7 +1338,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the Rollout. Format is projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/ releases/{release}/rollouts/{rollout}.", + "description": "Required. Name of the Rollout. Format is `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}/rollouts/{rollout}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/deliveryPipelines/[^/]+/releases/[^/]+/rollouts/[^/]+$", "required": true, @@ -1095,14 +1366,14 @@ ], "parameters": { "parent": { - "description": "Required. The parent collection in which the `Rollout` should be created. Format should be projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}.", + "description": "Required. The parent collection in which the `Rollout` should be created. Format should be `projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/deliveryPipelines/[^/]+/releases/[^/]+$", "required": true, "type": "string" }, "requestId": { - "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server knows to ignore the request if it has already been completed. The server guarantees that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -1143,7 +1414,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the `Rollout`. Format must be projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}/rollouts/{rollout_name}.", + "description": "Required. Name of the `Rollout`. Format must be `projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}/rollouts/{rollout_name}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/deliveryPipelines/[^/]+/releases/[^/]+/rollouts/[^/]+$", "required": true, @@ -1168,7 +1439,7 @@ ], "parameters": { "rollout": { - "description": "Required. Name of the Rollout. Format is projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/ releases/{release}/rollouts/{rollout}.", + "description": "Required. Name of the Rollout. Format is `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}/rollouts/{rollout}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/deliveryPipelines/[^/]+/releases/[^/]+/rollouts/[^/]+$", "required": true, @@ -1242,7 +1513,7 @@ ], "parameters": { "rollout": { - "description": "Required. Name of the Rollout. Format is projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/ releases/{release}/rollouts/{rollout}.", + "description": "Required. Name of the Rollout. Format is `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}/rollouts/{rollout}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/deliveryPipelines/[^/]+/releases/[^/]+/rollouts/[^/]+$", "required": true, @@ -1274,7 +1545,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the `JobRun`. Format must be projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}/rollouts/{rollout_name}/jobRuns/{job_run_name}.", + "description": "Required. Name of the `JobRun`. Format must be `projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}/rollouts/{rollout_name}/jobRuns/{job_run_name}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/deliveryPipelines/[^/]+/releases/[^/]+/rollouts/[^/]+/jobRuns/[^/]+$", "required": true, @@ -1345,7 +1616,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the `JobRun`. Format must be projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/ releases/{release}/rollouts/{rollout}/jobRuns/{jobRun}.", + "description": "Required. Name of the `JobRun`. Format must be `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}/rollouts/{rollout}/jobRuns/{jobRun}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/deliveryPipelines/[^/]+/releases/[^/]+/rollouts/[^/]+/jobRuns/[^/]+$", "required": true, @@ -1506,14 +1777,14 @@ ], "parameters": { "parent": { - "description": "Required. The parent collection in which the `Target` should be created. Format should be projects/{project_id}/locations/{location_name}.", + "description": "Required. The parent collection in which the `Target` should be created. Format should be `projects/{project_id}/locations/{location_name}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, "type": "string" }, "requestId": { - "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server knows to ignore the request if it has already been completed. The server guarantees that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -1559,14 +1830,14 @@ "type": "string" }, "name": { - "description": "Required. The name of the `Target` to delete. Format should be projects/{project_id}/locations/{location_name}/targets/{target_name}.", + "description": "Required. The name of the `Target` to delete. Format should be `projects/{project_id}/locations/{location_name}/targets/{target_name}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/targets/[^/]+$", "required": true, "type": "string" }, "requestId": { - "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server knows to ignore the request if it has already been completed. The server guarantees that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, @@ -1594,7 +1865,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the `Target`. Format must be projects/{project_id}/locations/{location_name}/targets/{target_name}.", + "description": "Required. Name of the `Target`. Format must be `projects/{project_id}/locations/{location_name}/targets/{target_name}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/targets/[^/]+$", "required": true, @@ -1671,7 +1942,7 @@ "type": "string" }, "parent": { - "description": "Required. The parent, which owns this collection of targets. Format must be projects/{project_id}/locations/{location_name}.", + "description": "Required. The parent, which owns this collection of targets. Format must be `projects/{project_id}/locations/{location_name}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -1701,19 +1972,19 @@ "type": "boolean" }, "name": { - "description": "Optional. Name of the `Target`. Format is projects/{project}/locations/{location}/targets/a-z{0,62}.", + "description": "Optional. Name of the `Target`. Format is `projects/{project}/locations/{location}/targets/a-z{0,62}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/targets/[^/]+$", "required": true, "type": "string" }, "requestId": { - "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server knows to ignore the request if it has already been completed. The server guarantees that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, "updateMask": { - "description": "Required. Field mask is used to specify the fields to be overwritten in the Target resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", + "description": "Required. Field mask is used to specify the fields to be overwritten in the Target resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it's in the mask. If the user doesn't provide a mask then all fields are overwritten.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -1822,7 +2093,7 @@ "id": "AdvanceChildRolloutJobRun", "properties": { "rollout": { - "description": "Output only. Name of the `ChildRollout`. Format is projects/{project}/ locations/{location}/deliveryPipelines/{deliveryPipeline}/ releases/{release}/rollouts/a-z{0,62}.", + "description": "Output only. Name of the `ChildRollout`. Format is `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}/rollouts/a-z{0,62}`.", "readOnly": true, "type": "string" }, @@ -1839,7 +2110,7 @@ "id": "AdvanceRolloutOperation", "properties": { "destinationPhase": { - "description": "Output only. The phase to which the rollout will be advanced to.", + "description": "Output only. The phase the rollout will be advanced to.", "readOnly": true, "type": "string" }, @@ -1889,7 +2160,7 @@ "readOnly": true }, "id": { - "description": "Required. ID of the rule. This id must be unique in the `Automation` resource to which this rule belongs. The format is a-z{0,62}.", + "description": "Required. ID of the rule. This id must be unique in the `Automation` resource to which this rule belongs. The format is `a-z{0,62}`.", "type": "string" }, "sourcePhases": { @@ -1984,14 +2255,14 @@ "type": "object" }, "Automation": { - "description": "An `Automation` resource in the Cloud Deploy API. An `Automation` enables the automation of manually driven actions for a Delivery Pipeline, which includes Release promotion amongst Targets, Rollout repair and Rollout deployment strategy advancement. The intention of Automation is to reduce manual intervention in the continuous delivery process.", + "description": "An `Automation` resource in the Cloud Deploy API. An `Automation` enables the automation of manually driven actions for a Delivery Pipeline, which includes Release promotion among Targets, Rollout repair and Rollout deployment strategy advancement. The intention of Automation is to reduce manual intervention in the continuous delivery process.", "id": "Automation", "properties": { "annotations": { "additionalProperties": { "type": "string" }, - "description": "Optional. User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy. Annotations must meet the following constraints: * Annotations are key/value pairs. * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (/). * The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between. * The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots(.), not longer than 253 characters in total, followed by a slash (/). See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set for more details.", + "description": "Optional. User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy. Annotations must meet the following constraints: * Annotations are key/value pairs. * Valid annotation keys have two segments: an optional prefix and name, separated by a slash (`/`). * The name segment is required and must be 63 characters or less, beginning and ending with an alphanumeric character (`[a-z0-9A-Z]`) with dashes (`-`), underscores (`_`), dots (`.`), and alphanumerics between. * The prefix is optional. If specified, the prefix must be a DNS subdomain: a series of DNS labels separated by dots(`.`), not longer than 253 characters in total, followed by a slash (`/`). See https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set for more details.", "type": "object" }, "createTime": { @@ -2016,7 +2287,7 @@ "type": "object" }, "name": { - "description": "Output only. Name of the `Automation`. Format is projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/automations/{automation}.", + "description": "Output only. Name of the `Automation`. Format is `projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/automations/{automation}`.", "readOnly": true, "type": "string" }, @@ -2179,7 +2450,7 @@ "type": "object" }, "AutomationRun": { - "description": "An `AutomationRun` resource in the Cloud Deploy API. An `AutomationResource` represents an automation execution instance of an automation rule.", + "description": "An `AutomationRun` resource in the Cloud Deploy API. An `AutomationRun` represents an execution instance of an automation rule.", "id": "AutomationRun", "properties": { "advanceRolloutOperation": { @@ -2209,13 +2480,13 @@ "type": "string" }, "expireTime": { - "description": "Output only. Time the `AutomationRun` will expire. An `AutomationRun` will expire after 14 days from its creation date.", + "description": "Output only. Time the `AutomationRun` expires. An `AutomationRun` expires after 14 days from its creation date.", "format": "google-datetime", "readOnly": true, "type": "string" }, "name": { - "description": "Output only. Name of the `AutomationRun`. Format is projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/automationRuns/{automation_run}.", + "description": "Output only. Name of the `AutomationRun`. Format is `projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/automationRuns/{automation_run}`.", "readOnly": true, "type": "string" }, @@ -2261,7 +2532,7 @@ "type": "string" }, "stateDescription": { - "description": "Output only. Explains the current state of the `AutomationRun`. Present only an explanation is needed.", + "description": "Output only. Explains the current state of the `AutomationRun`. Present only when an explanation is needed.", "readOnly": true, "type": "string" }, @@ -2359,14 +2630,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -2493,6 +2764,27 @@ "automaticTrafficControl": { "description": "Whether Cloud Deploy should update the traffic stanza in a Cloud Run Service on the user's behalf to facilitate traffic splitting. This is required to be true for CanaryDeployments, but optional for CustomCanaryDeployments.", "type": "boolean" + }, + "canaryRevisionTags": { + "description": "Optional. A list of tags that are added to the canary revision while the canary phase is in progress.", + "items": { + "type": "string" + }, + "type": "array" + }, + "priorRevisionTags": { + "description": "Optional. A list of tags that are added to the prior revision while the canary phase is in progress.", + "items": { + "type": "string" + }, + "type": "array" + }, + "stableRevisionTags": { + "description": "Optional. A list of tags that are added to the final stable revision when the stable phase is applied.", + "items": { + "type": "string" + }, + "type": "array" } }, "type": "object" @@ -2513,7 +2805,7 @@ "id": "CloudRunMetadata", "properties": { "job": { - "description": "Output only. The name of the Cloud Run job that is associated with a `Rollout`. Format is projects/{project}/locations/{location}/jobs/{job_name}.", + "description": "Output only. The name of the Cloud Run job that is associated with a `Rollout`. Format is `projects/{project}/locations/{location}/jobs/{job_name}`.", "readOnly": true, "type": "string" }, @@ -2523,7 +2815,7 @@ "type": "string" }, "service": { - "description": "Output only. The name of the Cloud Run Service that is associated with a `Rollout`. Format is projects/{project}/locations/{location}/services/{service}.", + "description": "Output only. The name of the Cloud Run Service that is associated with a `Rollout`. Format is `projects/{project}/locations/{location}/services/{service}`.", "readOnly": true, "type": "string" }, @@ -2543,7 +2835,7 @@ "id": "CloudRunRenderMetadata", "properties": { "service": { - "description": "Output only. The name of the Cloud Run Service in the rendered manifest. Format is projects/{project}/locations/{location}/services/{service}.", + "description": "Output only. The name of the Cloud Run Service in the rendered manifest. Format is `projects/{project}/locations/{location}/services/{service}`.", "readOnly": true, "type": "string" } @@ -2583,7 +2875,7 @@ "id": "CreateChildRolloutJobRun", "properties": { "rollout": { - "description": "Output only. Name of the `ChildRollout`. Format is projects/{project}/ locations/{location}/deliveryPipelines/{deliveryPipeline}/ releases/{release}/rollouts/a-z{0,62}.", + "description": "Output only. Name of the `ChildRollout`. Format is `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}/rollouts/a-z{0,62}`.", "readOnly": true, "type": "string" }, @@ -2609,6 +2901,125 @@ }, "type": "object" }, + "CustomMetadata": { + "description": "CustomMetadata contains information from a user-defined operation.", + "id": "CustomMetadata", + "properties": { + "values": { + "additionalProperties": { + "type": "string" + }, + "description": "Output only. Key-value pairs provided by the user-defined operation.", + "readOnly": true, + "type": "object" + } + }, + "type": "object" + }, + "CustomTarget": { + "description": "Information specifying a Custom Target.", + "id": "CustomTarget", + "properties": { + "customTargetType": { + "description": "Required. The name of the CustomTargetType. Format must be `projects/{project}/locations/{location}/customTargetTypes/{custom_target_type}`.", + "type": "string" + } + }, + "type": "object" + }, + "CustomTargetDeployMetadata": { + "description": "CustomTargetDeployMetadata contains information from a Custom Target deploy operation.", + "id": "CustomTargetDeployMetadata", + "properties": { + "skipMessage": { + "description": "Output only. Skip message provided in the results of a custom deploy operation.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "CustomTargetSkaffoldActions": { + "description": "CustomTargetSkaffoldActions represents the `CustomTargetType` configuration using Skaffold custom actions.", + "id": "CustomTargetSkaffoldActions", + "properties": { + "deployAction": { + "description": "Required. The Skaffold custom action responsible for deploy operations.", + "type": "string" + }, + "includeSkaffoldModules": { + "description": "Optional. List of Skaffold modules Cloud Deploy will include in the Skaffold Config as required before performing diagnose.", + "items": { + "$ref": "SkaffoldModules" + }, + "type": "array" + }, + "renderAction": { + "description": "Optional. The Skaffold custom action responsible for render operations. If not provided then Cloud Deploy will perform the render operations via `skaffold render`.", + "type": "string" + } + }, + "type": "object" + }, + "CustomTargetType": { + "description": "A `CustomTargetType` resource in the Cloud Deploy API. A `CustomTargetType` defines a type of custom target that can be referenced in a `Target` in order to facilitate deploying to other systems besides the supported runtimes.", + "id": "CustomTargetType", + "properties": { + "annotations": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy. See https://google.aip.dev/128#annotations for more details such as format and size limitations.", + "type": "object" + }, + "createTime": { + "description": "Output only. Time at which the `CustomTargetType` was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "customActions": { + "$ref": "CustomTargetSkaffoldActions", + "description": "Configures render and deploy for the `CustomTargetType` using Skaffold custom actions." + }, + "customTargetTypeId": { + "description": "Output only. Resource id of the `CustomTargetType`.", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. Description of the `CustomTargetType`. Max length is 255 characters.", + "type": "string" + }, + "etag": { + "description": "Optional. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Labels are attributes that can be set and used by both the user and by Cloud Deploy. Labels must meet the following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values are additionally constrained to be <= 128 bytes.", + "type": "object" + }, + "name": { + "description": "Optional. Name of the `CustomTargetType`. Format is `projects/{project}/locations/{location}/customTargetTypes/a-z{0,62}`.", + "type": "string" + }, + "uid": { + "description": "Output only. Unique identifier of the `CustomTargetType`.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. Most recent time at which the `CustomTargetType` was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "Date": { "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", "id": "Date", @@ -2684,7 +3095,7 @@ "type": "object" }, "name": { - "description": "Optional. Name of the `DeliveryPipeline`. Format is projects/{project}/ locations/{location}/deliveryPipelines/a-z{0,62}.", + "description": "Optional. Name of the `DeliveryPipeline`. Format is `projects/{project}/locations/{location}/deliveryPipelines/a-z{0,62}`.", "type": "string" }, "serialPipeline": { @@ -2721,6 +3132,10 @@ "description": "Debug message for when a notification fails to send.", "type": "string" }, + "pipelineUid": { + "description": "Unique identifier of the `DeliveryPipeline`.", + "type": "string" + }, "type": { "description": "Type of this notification, e.g. for a Pub/Sub failure.", "enum": [ @@ -2794,7 +3209,7 @@ "readOnly": true }, "build": { - "description": "Output only. The resource name of the Cloud Build `Build` object that is used to deploy. Format is projects/{project}/locations/{location}/builds/{build}.", + "description": "Output only. The resource name of the Cloud Build `Build` object that is used to deploy. Format is `projects/{project}/locations/{location}/builds/{build}`.", "readOnly": true, "type": "string" }, @@ -2806,7 +3221,8 @@ "EXECUTION_FAILED", "DEADLINE_EXCEEDED", "MISSING_RESOURCES_FOR_CANARY", - "CLOUD_BUILD_REQUEST_FAILED" + "CLOUD_BUILD_REQUEST_FAILED", + "DEPLOY_FEATURE_NOT_SUPPORTED" ], "enumDescriptions": [ "No reason for failure is specified.", @@ -2814,7 +3230,8 @@ "The deploy operation did not complete successfully; check Cloud Build logs.", "The deploy job run did not complete within the alloted time.", "There were missing resources in the runtime environment required for a canary deployment. Check the Cloud Build logs for more information.", - "Cloud Build failed to fulfill Cloud Deploy's request. See failure_message for additional details." + "Cloud Build failed to fulfill Cloud Deploy's request. See failure_message for additional details.", + "The deploy operation had a feature configured that is not supported." ], "readOnly": true, "type": "string" @@ -2840,6 +3257,16 @@ "$ref": "CloudRunMetadata", "description": "Output only. The name of the Cloud Run Service that is associated with a `DeployJobRun`.", "readOnly": true + }, + "custom": { + "$ref": "CustomMetadata", + "description": "Output only. Custom metadata provided by user-defined deploy operation.", + "readOnly": true + }, + "customTarget": { + "$ref": "CustomTargetDeployMetadata", + "description": "Output only. Custom Target metadata associated with a `DeployJobRun`.", + "readOnly": true } }, "type": "object" @@ -2996,6 +3423,11 @@ "service": { "description": "Required. Name of the Kubernetes Service.", "type": "string" + }, + "stableCutbackDuration": { + "description": "Optional. The amount of time to migrate traffic back from the canary Service to the original Service during the stable phase deployment. If specified, must be between 15s and 3600s. If unspecified, there is no cutback time.", + "format": "google-duration", + "type": "string" } }, "type": "object" @@ -3005,7 +3437,7 @@ "id": "GkeCluster", "properties": { "cluster": { - "description": "Information specifying a GKE Cluster. Format is `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}.", + "description": "Information specifying a GKE Cluster. Format is `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}`.", "type": "string" }, "internalIp": { @@ -3157,7 +3589,7 @@ "type": "string" }, "name": { - "description": "Optional. Name of the `JobRun`. Format is projects/{project}/locations/{location}/ deliveryPipelines/{deliveryPipeline}/releases/{releases}/rollouts/ {rollouts}/jobRuns/{uuid}.", + "description": "Optional. Name of the `JobRun`. Format is `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{releases}/rollouts/{rollouts}/jobRuns/{uuid}`.", "type": "string" }, "phaseId": { @@ -3231,10 +3663,18 @@ "description": "Unique identifier of the `DeliveryPipeline`.", "type": "string" }, + "release": { + "description": "The name of the `Release`.", + "type": "string" + }, "releaseUid": { "description": "Unique identifier of the `Release`.", "type": "string" }, + "rollout": { + "description": "The name of the `Rollout`.", + "type": "string" + }, "rolloutUid": { "description": "Unique identifier of the `Rollout`.", "type": "string" @@ -3325,7 +3765,7 @@ "id": "ListAutomationsResponse", "properties": { "automations": { - "description": "The `Automations` objects.", + "description": "The `Automation` objects.", "items": { "$ref": "Automation" }, @@ -3345,6 +3785,31 @@ }, "type": "object" }, + "ListCustomTargetTypesResponse": { + "description": "The response object from `ListCustomTargetTypes.`", + "id": "ListCustomTargetTypesResponse", + "properties": { + "customTargetTypes": { + "description": "The `CustomTargetType` objects.", + "items": { + "$ref": "CustomTargetType" + }, + "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" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ListDeliveryPipelinesResponse": { "description": "The response object from `ListDeliveryPipelines`.", "id": "ListDeliveryPipelinesResponse", @@ -3553,6 +4018,11 @@ "$ref": "CloudRunMetadata", "description": "Output only. The name of the Cloud Run Service that is associated with a `Rollout`.", "readOnly": true + }, + "custom": { + "$ref": "CustomMetadata", + "description": "Output only. Custom metadata provided by user-defined `Rollout` operations.", + "readOnly": true } }, "type": "object" @@ -3857,7 +4327,7 @@ "id": "PostdeployJobRun", "properties": { "build": { - "description": "Output only. The resource name of the Cloud Build `Build` object that is used to execute the custom actions associated with the postdeploy Job. Format is projects/{project}/locations/{location}/builds/{build}.", + "description": "Output only. The resource name of the Cloud Build `Build` object that is used to execute the custom actions associated with the postdeploy Job. Format is `projects/{project}/locations/{location}/builds/{build}`.", "readOnly": true, "type": "string" }, @@ -3922,7 +4392,7 @@ "id": "PredeployJobRun", "properties": { "build": { - "description": "Output only. The resource name of the Cloud Build `Build` object that is used to execute the custom actions associated with the predeploy Job. Format is projects/{project}/locations/{location}/builds/{build}.", + "description": "Output only. The resource name of the Cloud Build `Build` object that is used to execute the custom actions associated with the predeploy Job. Format is `projects/{project}/locations/{location}/builds/{build}`.", "readOnly": true, "type": "string" }, @@ -4018,7 +4488,7 @@ "type": "string" }, "id": { - "description": "Required. ID of the rule. This id must be unique in the `Automation` resource to which this rule belongs. The format is a-z{0,62}.", + "description": "Required. ID of the rule. This id must be unique in the `Automation` resource to which this rule belongs. The format is `a-z{0,62}`.", "type": "string" }, "wait": { @@ -4063,6 +4533,14 @@ "readOnly": true, "type": "string" }, + "customTargetTypeSnapshots": { + "description": "Output only. Snapshot of the custom target types referenced by the targets taken at release creation time.", + "items": { + "$ref": "CustomTargetType" + }, + "readOnly": true, + "type": "array" + }, "deliveryPipelineSnapshot": { "$ref": "DeliveryPipeline", "description": "Output only. Snapshot of the parent pipeline taken at release creation time.", @@ -4091,7 +4569,7 @@ "type": "object" }, "name": { - "description": "Optional. Name of the `Release`. Format is projects/{project}/ locations/{location}/deliveryPipelines/{deliveryPipeline}/ releases/a-z{0,62}.", + "description": "Optional. Name of the `Release`. Format is `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/a-z{0,62}`.", "type": "string" }, "renderEndTime": { @@ -4177,7 +4655,7 @@ }, "skaffoldSupportedCondition": { "$ref": "SkaffoldSupportedCondition", - "description": "Details around the support state of the release's skaffold version." + "description": "Details around the support state of the release's Skaffold version." } }, "type": "object" @@ -4190,10 +4668,18 @@ "description": "Debug message for when a notification fails to send.", "type": "string" }, + "pipelineUid": { + "description": "Unique identifier of the `DeliveryPipeline`.", + "type": "string" + }, "release": { "description": "The name of the `Release`.", "type": "string" }, + "releaseUid": { + "description": "Unique identifier of the `Release`.", + "type": "string" + }, "type": { "description": "Type of this notification, e.g. for a Pub/Sub failure.", "enum": [ @@ -4250,8 +4736,12 @@ "description": "Debug message for when a render transition occurs. Provides further details as rendering progresses through render states.", "type": "string" }, + "pipelineUid": { + "description": "Unique identifier of the `DeliveryPipeline`.", + "type": "string" + }, "release": { - "description": "The name of the release.", + "description": "The name of the release. release_uid is not in this log message because we write some of these log messages at release creation time, before we've generated the uid.", "type": "string" }, "releaseRenderState": { @@ -4269,6 +4759,40 @@ "Rendering has started and is not complete." ], "type": "string" + }, + "type": { + "description": "Type of this notification, e.g. for a release render state change event.", + "enum": [ + "TYPE_UNSPECIFIED", + "TYPE_PUBSUB_NOTIFICATION_FAILURE", + "TYPE_RESOURCE_STATE_CHANGE", + "TYPE_PROCESS_ABORTED", + "TYPE_RESTRICTION_VIOLATED", + "TYPE_RESOURCE_DELETED", + "TYPE_ROLLOUT_UPDATE", + "TYPE_RENDER_STATUES_CHANGE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + false, + true + ], + "enumDescriptions": [ + "Type is unspecified.", + "A Pub/Sub notification failed to be sent.", + "Resource state changed.", + "A process aborted.", + "Restriction check failed.", + "Resource deleted.", + "Rollout updated.", + "Deprecated: This field is never used. Use release_render log type instead." + ], + "type": "string" } }, "type": "object" @@ -4281,6 +4805,11 @@ "$ref": "CloudRunRenderMetadata", "description": "Output only. Metadata associated with rendering for Cloud Run.", "readOnly": true + }, + "custom": { + "$ref": "CustomMetadata", + "description": "Output only. Custom metadata provided by user-defined render operation.", + "readOnly": true } }, "type": "object" @@ -4327,6 +4856,16 @@ "readOnly": true, "type": "string" }, + "jobId": { + "description": "Output only. The job ID for the Job to repair.", + "readOnly": true, + "type": "string" + }, + "phaseId": { + "description": "Output only. The phase ID of the phase that includes the job being repaired.", + "readOnly": true, + "type": "string" + }, "repairPhases": { "description": "Output only. Records of the repair attempts. Each repair phase may have multiple retry attempts or single rollback attempt.", "items": { @@ -4353,7 +4892,7 @@ "readOnly": true }, "id": { - "description": "Required. ID of the rule. This id must be unique in the `Automation` resource to which this rule belongs. The format is a-z{0,62}.", + "description": "Required. ID of the rule. This id must be unique in the `Automation` resource to which this rule belongs. The format is `a-z{0,62}`.", "type": "string" }, "jobs": { @@ -4385,7 +4924,7 @@ "id": "Retry", "properties": { "attempts": { - "description": "Required. Total number of retries. Retry will skipped if set to 0; The minimum value is 1, and the maximum value is 10.", + "description": "Required. Total number of retries. Retry is skipped if set to 0; The minimum value is 1, and the maximum value is 10.", "format": "int64", "type": "string" }, @@ -4507,11 +5046,13 @@ "type": "string" }, "jobId": { + "deprecated": true, "description": "Output only. The job ID for the Job to retry.", "readOnly": true, "type": "string" }, "phaseId": { + "deprecated": true, "description": "Output only. The phase ID of the phase that includes the job being retried.", "readOnly": true, "type": "string" @@ -4675,7 +5216,7 @@ "type": "string" }, "controllerRollout": { - "description": "Output only. Name of the `ControllerRollout`. Format is projects/{project}/ locations/{location}/deliveryPipelines/{deliveryPipeline}/ releases/{release}/rollouts/a-z{0,62}.", + "description": "Output only. Name of the `ControllerRollout`. Format is `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}/rollouts/a-z{0,62}`.", "readOnly": true, "type": "string" }, @@ -4701,7 +5242,8 @@ "RELEASE_FAILED", "RELEASE_ABANDONED", "VERIFICATION_CONFIG_NOT_FOUND", - "CLOUD_BUILD_REQUEST_FAILED" + "CLOUD_BUILD_REQUEST_FAILED", + "OPERATION_FEATURE_NOT_SUPPORTED" ], "enumDescriptions": [ "No reason for failure is specified.", @@ -4710,8 +5252,9 @@ "Deployment did not complete within the alloted time.", "Release is in a failed state.", "Release is abandoned.", - "No skaffold verify configuration was found.", - "Cloud Build failed to fulfill Cloud Deploy's request. See failure_message for additional details." + "No Skaffold verify configuration was found.", + "Cloud Build failed to fulfill Cloud Deploy's request. See failure_message for additional details.", + "A Rollout operation had a feature configured that is not supported." ], "readOnly": true, "type": "string" @@ -4759,7 +5302,7 @@ "readOnly": true }, "name": { - "description": "Optional. Name of the `Rollout`. Format is projects/{project}/ locations/{location}/deliveryPipelines/{deliveryPipeline}/ releases/{release}/rollouts/a-z{0,62}.", + "description": "Optional. Name of the `Rollout`. Format is `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}/rollouts/a-z{0,62}`.", "type": "string" }, "phases": { @@ -4838,6 +5381,10 @@ "description": "Unique identifier of the `DeliveryPipeline`.", "type": "string" }, + "release": { + "description": "The name of the `Release`.", + "type": "string" + }, "releaseUid": { "description": "Unique identifier of the `Release`.", "type": "string" @@ -4846,6 +5393,10 @@ "description": "The name of the `Rollout`.", "type": "string" }, + "rolloutUid": { + "description": "Unique identifier of the `Rollout`.", + "type": "string" + }, "targetId": { "description": "ID of the `Target` that the rollout is deployed to.", "type": "string" @@ -4899,12 +5450,16 @@ "description": "Unique identifier of the pipeline.", "type": "string" }, + "release": { + "description": "The name of the `Release`.", + "type": "string" + }, "releaseUid": { "description": "Unique identifier of the release.", "type": "string" }, "rollout": { - "description": "The name of the rollout.", + "description": "The name of the rollout. rollout_uid is not in this log message because we write some of these log messages at rollout creation time, before we've generated the uid.", "type": "string" }, "rolloutUpdateType": { @@ -5048,17 +5603,73 @@ }, "type": "object" }, + "SkaffoldGCSSource": { + "description": "Cloud Storage bucket containing Skaffold Config modules.", + "id": "SkaffoldGCSSource", + "properties": { + "path": { + "description": "Optional. Relative path from the source to the Skaffold file.", + "type": "string" + }, + "source": { + "description": "Required. Cloud Storage source paths to copy recursively. For example, providing \"gs://my-bucket/dir/configs/*\" will result in Skaffold copying all files within the \"dir/configs\" directory in the bucket \"my-bucket\".", + "type": "string" + } + }, + "type": "object" + }, + "SkaffoldGitSource": { + "description": "Git repository containing Skaffold Config modules.", + "id": "SkaffoldGitSource", + "properties": { + "path": { + "description": "Optional. Relative path from the repository root to the Skaffold file.", + "type": "string" + }, + "ref": { + "description": "Optional. Git ref the package should be cloned from.", + "type": "string" + }, + "repo": { + "description": "Required. Git repository the package should be cloned from.", + "type": "string" + } + }, + "type": "object" + }, + "SkaffoldModules": { + "description": "Skaffold Config modules and their remote source.", + "id": "SkaffoldModules", + "properties": { + "configs": { + "description": "Optional. The Skaffold Config modules to use from the specified source.", + "items": { + "type": "string" + }, + "type": "array" + }, + "git": { + "$ref": "SkaffoldGitSource", + "description": "Remote git repository containing the Skaffold Config modules." + }, + "googleCloudStorage": { + "$ref": "SkaffoldGCSSource", + "description": "Cloud Storage bucket containing the Skaffold Config modules." + } + }, + "type": "object" + }, "SkaffoldSupportedCondition": { - "description": "SkaffoldSupportedCondition contains information about when support for the release's version of skaffold ends.", + "description": "SkaffoldSupportedCondition contains information about when support for the release's version of Skaffold ends.", "id": "SkaffoldSupportedCondition", "properties": { "maintenanceModeTime": { - "description": "The time at which this release's version of skaffold will enter maintenance mode.", + "description": "The time at which this release's version of Skaffold will enter maintenance mode.", "format": "google-datetime", "type": "string" }, "skaffoldSupportState": { - "description": "The skaffold support state for this release's version of skaffold.", + "description": "The Skaffold support state for this release's version of Skaffold.", "enum": [ "SKAFFOLD_SUPPORT_STATE_UNSPECIFIED", "SKAFFOLD_SUPPORT_STATE_SUPPORTED", @@ -5067,18 +5678,18 @@ ], "enumDescriptions": [ "Default value. This value is unused.", - "This skaffold version is currently supported.", - "This skaffold version is in maintenance mode.", - "This skaffold version is no longer supported." + "This Skaffold version is currently supported.", + "This Skaffold version is in maintenance mode.", + "This Skaffold version is no longer supported." ], "type": "string" }, "status": { - "description": "True if the version of skaffold used by this release is supported.", + "description": "True if the version of Skaffold used by this release is supported.", "type": "boolean" }, "supportExpirationTime": { - "description": "The time at which this release's version of skaffold will no longer be supported.", + "description": "The time at which this release's version of Skaffold will no longer be supported.", "format": "google-datetime", "type": "string" } @@ -5090,7 +5701,7 @@ "id": "SkaffoldVersion", "properties": { "maintenanceModeTime": { - "description": "The time at which this version of skaffold will enter maintenance mode.", + "description": "The time at which this version of Skaffold will enter maintenance mode.", "format": "google-datetime", "type": "string" }, @@ -5099,7 +5710,7 @@ "description": "Date when this version is expected to no longer be supported." }, "supportExpirationTime": { - "description": "The time at which this version of skaffold will no longer be supported.", + "description": "The time at which this version of Skaffold will no longer be supported.", "format": "google-datetime", "type": "string" }, @@ -5221,6 +5832,10 @@ "readOnly": true, "type": "string" }, + "customTarget": { + "$ref": "CustomTarget", + "description": "Optional. Information specifying a Custom Target." + }, "deployParameters": { "additionalProperties": { "type": "string" @@ -5259,7 +5874,7 @@ "description": "Optional. Information specifying a multiTarget." }, "name": { - "description": "Optional. Name of the `Target`. Format is projects/{project}/locations/{location}/targets/a-z{0,62}.", + "description": "Optional. Name of the `Target`. Format is `projects/{project}/locations/{location}/targets/a-z{0,62}`.", "type": "string" }, "requireApproval": { @@ -5320,7 +5935,7 @@ "type": "object" }, "TargetAttribute": { - "description": "Contains criteria for selecting Targets. Attributes provided must match the target resource in order for policy restrictions to apply. E.g. if id \"prod\" and labels \"foo: bar\" are given the target resource must match both that id and have that label in order to be selected.", + "description": "Contains criteria for selecting Targets.", "id": "TargetAttribute", "properties": { "id": { @@ -5398,15 +6013,19 @@ "EXECUTION_FAILED", "CLOUD_BUILD_REQUEST_FAILED", "VERIFICATION_CONFIG_NOT_FOUND", - "CUSTOM_ACTION_NOT_FOUND" + "CUSTOM_ACTION_NOT_FOUND", + "DEPLOYMENT_STRATEGY_NOT_SUPPORTED", + "RENDER_FEATURE_NOT_SUPPORTED" ], "enumDescriptions": [ "No reason for failure is specified.", "Cloud Build is not available, either because it is not enabled or because Cloud Deploy has insufficient permissions. See [required permission](https://cloud.google.com/deploy/docs/cloud-deploy-service-account#required_permissions).", "The render operation did not complete successfully; check Cloud Build logs.", "Cloud Build failed to fulfill Cloud Deploy's request. See failure_message for additional details.", - "The render operation did not complete successfully because the verification stanza required for verify was not found on the skaffold configuration.", - "The render operation did not complete successfully because the custom action required for predeploy or postdeploy was not found in the skaffold configuration. See failure_message for additional details." + "The render operation did not complete successfully because the verification stanza required for verify was not found on the Skaffold configuration.", + "The render operation did not complete successfully because the custom action required for predeploy or postdeploy was not found in the Skaffold configuration. See failure_message for additional details.", + "Release failed during rendering because the release configuration is not supported with the specified deployment strategy.", + "The render operation had a feature configured that is not supported." ], "readOnly": true, "type": "string" @@ -5447,11 +6066,11 @@ "type": "object" }, "TargetsPresentCondition": { - "description": "TargetsPresentCondition contains information on any Targets defined in the Delivery Pipeline that do not actually exist.", + "description": "`TargetsPresentCondition` contains information on any Targets referenced in the Delivery Pipeline that do not actually exist.", "id": "TargetsPresentCondition", "properties": { "missingTargets": { - "description": "The list of Target names that do not exist. For example, projects/{project_id}/locations/{location_name}/targets/{target_name}.", + "description": "The list of Target names that do not exist. For example, `projects/{project_id}/locations/{location_name}/targets/{target_name}`.", "items": { "type": "string" }, @@ -5540,7 +6159,7 @@ "type": "string" }, "build": { - "description": "Output only. The resource name of the Cloud Build `Build` object that is used to verify. Format is projects/{project}/locations/{location}/builds/{build}.", + "description": "Output only. The resource name of the Cloud Build `Build` object that is used to verify. Format is `projects/{project}/locations/{location}/builds/{build}`.", "readOnly": true, "type": "string" }, diff --git a/discovery/googleapis/cloudfunctions__v1.json b/discovery/googleapis/cloudfunctions__v1.json index 206fbdaad..699fa60eb 100644 --- a/discovery/googleapis/cloudfunctions__v1.json +++ b/discovery/googleapis/cloudfunctions__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231109", + "revision": "20240220", "rootUrl": "https://cloudfunctions.googleapis.com/", "servicePath": "", "title": "Cloud Functions API", @@ -144,23 +144,23 @@ "parameterOrder": [], "parameters": { "filter": { - "description": "Required. A filter for matching the requested operations. The supported formats of *filter* are: To query for a specific function: project:*,location:*,function:* To query for all of the latest operations for a project: project:*,latest:true", + "description": "The standard list filter.", "location": "query", "type": "string" }, "name": { - "description": "Must not be set.", + "description": "The name of the operation's parent resource.", "location": "query", "type": "string" }, "pageSize": { - "description": "The maximum number of records that should be returned. Requested page size cannot exceed 100. If not set, the default page size is 100. Pagination is only supported when querying for a specific function.", + "description": "The standard list page size.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "Token identifying which result to start with, which is returned by a previous list call. Pagination is only supported when querying for a specific function.", + "description": "The standard list page token.", "location": "query", "type": "string" } @@ -605,6 +605,12 @@ }, "type": "object" }, + "AutomaticUpdatePolicy": { + "description": "Security patches are applied automatically to the runtime without requiring the function to be redeployed.", + "id": "AutomaticUpdatePolicy", + "properties": {}, + "type": "object" + }, "Binding": { "description": "Associates `members`, or principals, with a `role`.", "id": "Binding", @@ -614,14 +620,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -661,6 +667,9 @@ "description": "Describes a Cloud Function that contains user computation executed in response to an event. It encapsulate function and triggers configurations.", "id": "CloudFunction", "properties": { + "automaticUpdatePolicy": { + "$ref": "AutomaticUpdatePolicy" + }, "availableMemoryMb": { "description": "The amount of memory in MB available for a function. Defaults to 256MB.", "format": "int32", @@ -683,6 +692,10 @@ "readOnly": true, "type": "string" }, + "buildServiceAccount": { + "description": "Optional. A service account the user provides for use with Cloud Build.", + "type": "string" + }, "buildWorkerPool": { "description": "Name of the Cloud Build Custom Worker Pool that should be used to build the function. The format of this field is `projects/{project}/locations/{region}/workerPools/{workerPool}` where `{project}` and `{region}` are the project id and region respectively where the worker pool is defined and `{workerPool}` is the short name of the worker pool. If the project id is not the same as the function, then the Cloud Functions Service Agent (`service-@gcf-admin-robot.iam.gserviceaccount.com`) must be granted the role Cloud Build Custom Workers Builder (`roles/cloudbuild.customworkers.builder`) in the project.", "type": "string" @@ -692,7 +705,7 @@ "type": "string" }, "dockerRegistry": { - "description": "Docker Registry to use for this deployment. If `docker_repository` field is specified, this field will be automatically set as `ARTIFACT_REGISTRY`. If unspecified, it currently defaults to `CONTAINER_REGISTRY`. This field may be overridden by the backend for eligible deployments.", + "description": "Docker Registry to use for this deployment. If unspecified, it defaults to `ARTIFACT_REGISTRY`. If `docker_repository` field is specified, this field should either be left unspecified or set to `ARTIFACT_REGISTRY`.", "enum": [ "DOCKER_REGISTRY_UNSPECIFIED", "CONTAINER_REGISTRY", @@ -774,6 +787,9 @@ "description": "Deprecated: use vpc_connector", "type": "string" }, + "onDeployUpdatePolicy": { + "$ref": "OnDeployUpdatePolicy" + }, "runtime": { "description": "The runtime in which to run the function. Required when deploying a new function, optional when updating an existing function. For a complete list of possible choices, see the [`gcloud` command reference](https://cloud.google.com/sdk/gcloud/reference/functions/deploy#--runtime).", "type": "string" @@ -956,7 +972,7 @@ "id": "GenerateUploadUrlRequest", "properties": { "kmsKeyName": { - "description": "Resource name of a KMS crypto key (managed by the user) used to encrypt/decrypt function source code objects in staging Cloud Storage buckets. When you generate an upload url and upload your source code, it gets copied to a staging Cloud Storage bucket in an internal regional project. The source code is then copied to a versioned directory in the sources bucket in the consumer project during the function deployment. It must match the pattern `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`. The Google Cloud Functions service account (service-{project_number}@gcf-admin-robot.iam.gserviceaccount.com) must be granted the role 'Cloud KMS CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter)' on the Key/KeyRing/Project/Organization (least access preferred). GCF will delegate access to the Google Storage service account in the internal project.", + "description": "Resource name of a KMS crypto key (managed by the user) used to encrypt/decrypt function source code objects in intermediate Cloud Storage buckets. When you generate an upload url and upload your source code, it gets copied to an intermediate Cloud Storage bucket. The source code is then copied to a versioned directory in the sources bucket in the consumer project during the function deployment. It must match the pattern `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`. The Google Cloud Functions service account (service-{project_number}@gcf-admin-robot.iam.gserviceaccount.com) must be granted the role 'Cloud KMS CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter)' on the Key/KeyRing/Project/Organization (least access preferred). GCF will delegate access to the Google Storage service account in the internal project.", "type": "string" } }, @@ -1019,6 +1035,32 @@ "format": "google-datetime", "type": "string" }, + "operationType": { + "description": "The operation type.", + "enum": [ + "OPERATIONTYPE_UNSPECIFIED", + "CREATE_FUNCTION", + "UPDATE_FUNCTION", + "DELETE_FUNCTION", + "REDIRECT_FUNCTION_UPGRADE_TRAFFIC", + "ROLLBACK_FUNCTION_UPGRADE_TRAFFIC", + "SETUP_FUNCTION_UPGRADE_CONFIG", + "ABORT_FUNCTION_UPGRADE", + "COMMIT_FUNCTION_UPGRADE" + ], + "enumDescriptions": [ + "Unspecified", + "CreateFunction", + "UpdateFunction", + "DeleteFunction", + "RedirectFunctionUpgradeTraffic", + "RollbackFunctionUpgradeTraffic", + "SetupFunctionUpgradeConfig", + "AbortFunctionUpgrade", + "CommitFunctionUpgrade" + ], + "type": "string" + }, "requestResource": { "additionalProperties": { "description": "Properties of the object. Contains field @type with type URL.", @@ -1194,6 +1236,32 @@ "format": "google-datetime", "type": "string" }, + "operationType": { + "description": "The operation type.", + "enum": [ + "OPERATIONTYPE_UNSPECIFIED", + "CREATE_FUNCTION", + "UPDATE_FUNCTION", + "DELETE_FUNCTION", + "REDIRECT_FUNCTION_UPGRADE_TRAFFIC", + "ROLLBACK_FUNCTION_UPGRADE_TRAFFIC", + "SETUP_FUNCTION_UPGRADE_CONFIG", + "ABORT_FUNCTION_UPGRADE", + "COMMIT_FUNCTION_UPGRADE" + ], + "enumDescriptions": [ + "Unspecified", + "CreateFunction", + "UpdateFunction", + "DeleteFunction", + "RedirectFunctionUpgradeTraffic", + "RollbackFunctionUpgradeTraffic", + "SetupFunctionUpgradeConfig", + "AbortFunctionUpgrade", + "CommitFunctionUpgrade" + ], + "type": "string" + }, "requestResource": { "additionalProperties": { "description": "Properties of the object. Contains field @type with type URL.", @@ -1369,6 +1437,32 @@ "format": "google-datetime", "type": "string" }, + "operationType": { + "description": "The operation type.", + "enum": [ + "OPERATIONTYPE_UNSPECIFIED", + "CREATE_FUNCTION", + "UPDATE_FUNCTION", + "DELETE_FUNCTION", + "REDIRECT_FUNCTION_UPGRADE_TRAFFIC", + "ROLLBACK_FUNCTION_UPGRADE_TRAFFIC", + "SETUP_FUNCTION_UPGRADE_CONFIG", + "ABORT_FUNCTION_UPGRADE", + "COMMIT_FUNCTION_UPGRADE" + ], + "enumDescriptions": [ + "Unspecified", + "CreateFunction", + "UpdateFunction", + "DeleteFunction", + "RedirectFunctionUpgradeTraffic", + "RollbackFunctionUpgradeTraffic", + "SetupFunctionUpgradeConfig", + "AbortFunctionUpgrade", + "CommitFunctionUpgrade" + ], + "type": "string" + }, "requestResource": { "additionalProperties": { "description": "Properties of the object. Contains field @type with type URL.", @@ -1619,6 +1713,18 @@ }, "type": "object" }, + "OnDeployUpdatePolicy": { + "description": "Security patches are only applied when a function is redeployed.", + "id": "OnDeployUpdatePolicy", + "properties": { + "runtimeVersion": { + "description": "Output only. contains the runtime version which was used during latest function deployment.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", diff --git a/discovery/googleapis/cloudfunctions__v2.json b/discovery/googleapis/cloudfunctions__v2.json index 073af7e56..a99216c90 100644 --- a/discovery/googleapis/cloudfunctions__v2.json +++ b/discovery/googleapis/cloudfunctions__v2.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231109", + "revision": "20240220", "rootUrl": "https://cloudfunctions.googleapis.com/", "servicePath": "", "title": "Cloud Functions API", @@ -158,6 +158,62 @@ "resources": { "functions": { "methods": { + "abortFunctionUpgrade": { + "description": "Aborts generation upgrade process for a function with the given name from the specified project. Deletes all 2nd Gen copy related configuration and resources which were created during the upgrade process.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}:abortFunctionUpgrade", + "httpMethod": "POST", + "id": "cloudfunctions.projects.locations.functions.abortFunctionUpgrade", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the function for which upgrade should be aborted.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:abortFunctionUpgrade", + "request": { + "$ref": "AbortFunctionUpgradeRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "commitFunctionUpgrade": { + "description": "Finalizes the upgrade after which function upgrade can not be rolled back. This is the last step of the multi step process to upgrade 1st Gen functions to 2nd Gen. Deletes all original 1st Gen related configuration and resources.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}:commitFunctionUpgrade", + "httpMethod": "POST", + "id": "cloudfunctions.projects.locations.functions.commitFunctionUpgrade", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the function for which upgrade should be finalized.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:commitFunctionUpgrade", + "request": { + "$ref": "CommitFunctionUpgradeRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "create": { "description": "Creates a new function. If a function with the given name already exists in the specified project, the long running operation will return `ALREADY_EXISTS` error.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/functions", @@ -408,6 +464,62 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "redirectFunctionUpgradeTraffic": { + "description": "Changes the traffic target of a function from the original 1st Gen function to the 2nd Gen copy. This is the second step of the multi step process to upgrade 1st Gen functions to 2nd Gen. After this operation, all new traffic will be served by 2nd Gen copy.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}:redirectFunctionUpgradeTraffic", + "httpMethod": "POST", + "id": "cloudfunctions.projects.locations.functions.redirectFunctionUpgradeTraffic", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the function for which traffic target should be changed to 2nd Gen from 1st Gen.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:redirectFunctionUpgradeTraffic", + "request": { + "$ref": "RedirectFunctionUpgradeTrafficRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "rollbackFunctionUpgradeTraffic": { + "description": "Reverts the traffic target of a function from the 2nd Gen copy to the original 1st Gen function. After this operation, all new traffic would be served by the 1st Gen.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}:rollbackFunctionUpgradeTraffic", + "httpMethod": "POST", + "id": "cloudfunctions.projects.locations.functions.rollbackFunctionUpgradeTraffic", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the function for which traffic target should be changed back to 1st Gen from 2nd Gen.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:rollbackFunctionUpgradeTraffic", + "request": { + "$ref": "RollbackFunctionUpgradeTrafficRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "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": "v2/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}:setIamPolicy", @@ -436,6 +548,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "setupFunctionUpgradeConfig": { + "description": "Creates a 2nd Gen copy of the function configuration based on the 1st Gen function with the given name. This is the first step of the multi step process to upgrade 1st Gen functions to 2nd Gen. Only 2nd Gen configuration is setup as part of this request and traffic continues to be served by 1st Gen.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}:setupFunctionUpgradeConfig", + "httpMethod": "POST", + "id": "cloudfunctions.projects.locations.functions.setupFunctionUpgradeConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the function which should have configuration copied for upgrade.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/functions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:setupFunctionUpgradeConfig", + "request": { + "$ref": "SetupFunctionUpgradeConfigRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "testIamPermissions": { "description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/functions/{functionsId}:testIamPermissions", @@ -503,25 +643,25 @@ ], "parameters": { "filter": { - "description": "Required. A filter for matching the requested operations. The supported formats of *filter* are: To query for a specific function: project:*,location:*,function:* To query for all of the latest operations for a project: project:*,latest:true", + "description": "The standard list filter.", "location": "query", "type": "string" }, "name": { - "description": "Must not be set.", + "description": "The name of the operation's parent resource.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, "type": "string" }, "pageSize": { - "description": "The maximum number of records that should be returned. Requested page size cannot exceed 100. If not set, the default page size is 100. Pagination is only supported when querying for a specific function.", + "description": "The standard list page size.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "Token identifying which result to start with, which is returned by a previous list call. Pagination is only supported when querying for a specific function.", + "description": "The standard list page token.", "location": "query", "type": "string" } @@ -576,6 +716,12 @@ } }, "schemas": { + "AbortFunctionUpgradeRequest": { + "description": "Request for the `AbortFunctionUpgrade` method.", + "id": "AbortFunctionUpgradeRequest", + "properties": {}, + "type": "object" + }, "AuditConfig": { "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts `jose@example.com` from DATA_READ logging, and `aliya@example.com` from DATA_WRITE logging.", "id": "AuditConfig", @@ -624,6 +770,12 @@ }, "type": "object" }, + "AutomaticUpdatePolicy": { + "description": "Security patches are applied automatically to the runtime without requiring the function to be redeployed.", + "id": "AutomaticUpdatePolicy", + "properties": {}, + "type": "object" + }, "Binding": { "description": "Associates `members`, or principals, with a `role`.", "id": "Binding", @@ -633,14 +785,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -650,6 +802,9 @@ "description": "Describes the Build step of the function that builds a container from the given source.", "id": "BuildConfig", "properties": { + "automaticUpdatePolicy": { + "$ref": "AutomaticUpdatePolicy" + }, "build": { "description": "Output only. The Cloud Build name of the latest successful deployment of the function.", "readOnly": true, @@ -670,7 +825,7 @@ "type": "string" }, "dockerRepository": { - "description": "User managed repository created in Artifact Registry optionally with a customer managed encryption key. This is the repository to which the function docker image will be pushed after it is built by Cloud Build. If unspecified, GCF will create and use a repository named 'gcf-artifacts' for every deployed region. It must match the pattern `projects/{project}/locations/{location}/repositories/{repository}`. Cross-project repositories are not supported. Cross-location repositories are not supported. Repository format must be 'DOCKER'.", + "description": "Repository in Artifact Registry to which the function docker image will be pushed after it is built by Cloud Build. If specified by user, it is created and managed by user with a customer managed encryption key. Otherwise, GCF will create and use a repository named 'gcf-artifacts' for every deployed region. It must match the pattern `projects/{project}/locations/{location}/repositories/{repository}`. Cross-project repositories are not supported. Cross-location repositories are not supported. Repository format must be 'DOCKER'.", "type": "string" }, "entryPoint": { @@ -684,10 +839,17 @@ "description": "User-provided build-time environment variables for the function", "type": "object" }, + "onDeployUpdatePolicy": { + "$ref": "OnDeployUpdatePolicy" + }, "runtime": { "description": "The runtime in which to run the function. Required when deploying a new function, optional when updating an existing function. For a complete list of possible choices, see the [`gcloud` command reference](https://cloud.google.com/sdk/gcloud/reference/functions/deploy#--runtime).", "type": "string" }, + "serviceAccount": { + "description": "[Preview] Service account to be used for building the container", + "type": "string" + }, "source": { "$ref": "Source", "description": "The location of the function source code." @@ -708,6 +870,12 @@ }, "type": "object" }, + "CommitFunctionUpgradeRequest": { + "description": "Request for the `CommitFunctionUpgrade` method.", + "id": "CommitFunctionUpgradeRequest", + "properties": {}, + "type": "object" + }, "Date": { "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", "id": "Date", @@ -786,6 +954,10 @@ ], "type": "string" }, + "service": { + "description": "Optional. The hostname of the service that 1st Gen function should be observed. If no string is provided, the default service implementing the API will be used. For example, `storage.googleapis.com` is the default for all event types in the `google.storage` namespace. The field is only applicable to 1st Gen functions.", + "type": "string" + }, "serviceAccountEmail": { "description": "Optional. The email of the trigger's service account. The service account must have permission to invoke Cloud Run services, the permission is `run.routes.invoke`. If empty, defaults to the Compute Engine default service account: `{project_number}-compute@developer.gserviceaccount.com`.", "type": "string" @@ -833,6 +1005,12 @@ "$ref": "BuildConfig", "description": "Describes the Build step of the function that builds a container from the given source." }, + "createTime": { + "description": "Output only. The create timestamp of a Cloud Function. This is only applicable to 2nd Gen functions.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, "description": { "description": "User-provided description of a function.", "type": "string" @@ -914,6 +1092,11 @@ "readOnly": true, "type": "string" }, + "upgradeInfo": { + "$ref": "UpgradeInfo", + "description": "Output only. UpgradeInfo for this Cloud Function", + "readOnly": true + }, "url": { "description": "Output only. The deployed url for the function.", "readOnly": true, @@ -943,6 +1126,20 @@ "description": "Request of `GenerateSourceUploadUrl` method.", "id": "GenerateUploadUrlRequest", "properties": { + "environment": { + "description": "The function environment the generated upload url will be used for. The upload url for 2nd Gen functions can also be used for 1st gen functions, but not vice versa. If not specified, 2nd generation-style upload URLs are generated.", + "enum": [ + "ENVIRONMENT_UNSPECIFIED", + "GEN_1", + "GEN_2" + ], + "enumDescriptions": [ + "Unspecified", + "Gen 1", + "Gen 2" + ], + "type": "string" + }, "kmsKeyName": { "description": "[Preview] Resource name of a KMS crypto key (managed by the user) used to encrypt/decrypt function source code objects in intermediate Cloud Storage buckets. When you generate an upload url and upload your source code, it gets copied to an intermediate Cloud Storage bucket. The source code is then copied to a versioned directory in the sources bucket in the consumer project during the function deployment. It must match the pattern `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`. The Google Cloud Functions service account (service-{project_number}@gcf-admin-robot.iam.gserviceaccount.com) must be granted the role 'Cloud KMS CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter)' on the Key/KeyRing/Project/Organization (least access preferred).", "type": "string" @@ -1011,6 +1208,32 @@ "format": "google-datetime", "type": "string" }, + "operationType": { + "description": "The operation type.", + "enum": [ + "OPERATIONTYPE_UNSPECIFIED", + "CREATE_FUNCTION", + "UPDATE_FUNCTION", + "DELETE_FUNCTION", + "REDIRECT_FUNCTION_UPGRADE_TRAFFIC", + "ROLLBACK_FUNCTION_UPGRADE_TRAFFIC", + "SETUP_FUNCTION_UPGRADE_CONFIG", + "ABORT_FUNCTION_UPGRADE", + "COMMIT_FUNCTION_UPGRADE" + ], + "enumDescriptions": [ + "Unspecified", + "CreateFunction", + "UpdateFunction", + "DeleteFunction", + "RedirectFunctionUpgradeTraffic", + "RollbackFunctionUpgradeTraffic", + "SetupFunctionUpgradeConfig", + "AbortFunctionUpgrade", + "CommitFunctionUpgrade" + ], + "type": "string" + }, "requestResource": { "additionalProperties": { "description": "Properties of the object. Contains field @type with type URL.", @@ -1186,6 +1409,32 @@ "format": "google-datetime", "type": "string" }, + "operationType": { + "description": "The operation type.", + "enum": [ + "OPERATIONTYPE_UNSPECIFIED", + "CREATE_FUNCTION", + "UPDATE_FUNCTION", + "DELETE_FUNCTION", + "REDIRECT_FUNCTION_UPGRADE_TRAFFIC", + "ROLLBACK_FUNCTION_UPGRADE_TRAFFIC", + "SETUP_FUNCTION_UPGRADE_CONFIG", + "ABORT_FUNCTION_UPGRADE", + "COMMIT_FUNCTION_UPGRADE" + ], + "enumDescriptions": [ + "Unspecified", + "CreateFunction", + "UpdateFunction", + "DeleteFunction", + "RedirectFunctionUpgradeTraffic", + "RollbackFunctionUpgradeTraffic", + "SetupFunctionUpgradeConfig", + "AbortFunctionUpgrade", + "CommitFunctionUpgrade" + ], + "type": "string" + }, "requestResource": { "additionalProperties": { "description": "Properties of the object. Contains field @type with type URL.", @@ -1361,6 +1610,32 @@ "format": "google-datetime", "type": "string" }, + "operationType": { + "description": "The operation type.", + "enum": [ + "OPERATIONTYPE_UNSPECIFIED", + "CREATE_FUNCTION", + "UPDATE_FUNCTION", + "DELETE_FUNCTION", + "REDIRECT_FUNCTION_UPGRADE_TRAFFIC", + "ROLLBACK_FUNCTION_UPGRADE_TRAFFIC", + "SETUP_FUNCTION_UPGRADE_CONFIG", + "ABORT_FUNCTION_UPGRADE", + "COMMIT_FUNCTION_UPGRADE" + ], + "enumDescriptions": [ + "Unspecified", + "CreateFunction", + "UpdateFunction", + "DeleteFunction", + "RedirectFunctionUpgradeTraffic", + "RollbackFunctionUpgradeTraffic", + "SetupFunctionUpgradeConfig", + "AbortFunctionUpgrade", + "CommitFunctionUpgrade" + ], + "type": "string" + }, "requestResource": { "additionalProperties": { "description": "Properties of the object. Contains field @type with type URL.", @@ -1599,6 +1874,18 @@ }, "type": "object" }, + "OnDeployUpdatePolicy": { + "description": "Security patches are only applied when a function is redeployed.", + "id": "OnDeployUpdatePolicy", + "properties": { + "runtimeVersion": { + "description": "Output only. contains the runtime version which was used during latest function deployment.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", @@ -1722,6 +2009,12 @@ }, "type": "object" }, + "RedirectFunctionUpgradeTrafficRequest": { + "description": "Request for the `RedirectFunctionUpgradeTraffic` method.", + "id": "RedirectFunctionUpgradeTrafficRequest", + "properties": {}, + "type": "object" + }, "RepoSource": { "description": "Location of the source in a Google Cloud Source Repository.", "id": "RepoSource", @@ -1753,6 +2046,12 @@ }, "type": "object" }, + "RollbackFunctionUpgradeTrafficRequest": { + "description": "Request for the `RollbackFunctionUpgradeTraffic` method.", + "id": "RollbackFunctionUpgradeTrafficRequest", + "properties": {}, + "type": "object" + }, "Runtime": { "description": "Describes a runtime and any special information (e.g., deprecation status) related to it.", "id": "Runtime", @@ -1892,7 +2191,7 @@ "type": "boolean" }, "availableCpu": { - "description": "[Preview] The number of CPUs used in a single container instance. Default value is calculated from available memory. Supports the same values as Cloud Run, see https://cloud.google.com/run/docs/reference/rest/v1/Container#resourcerequirements Example: \"1\" indicates 1 vCPU", + "description": "The number of CPUs used in a single container instance. Default value is calculated from available memory. Supports the same values as Cloud Run, see https://cloud.google.com/run/docs/reference/rest/v1/Container#resourcerequirements Example: \"1\" indicates 1 vCPU", "type": "string" }, "availableMemory": { @@ -1928,7 +2227,7 @@ "type": "integer" }, "maxInstanceRequestConcurrency": { - "description": "[Preview] Sets the maximum number of concurrent requests that each instance can receive. Defaults to 1.", + "description": "Sets the maximum number of concurrent requests that each instance can receive. Defaults to 1.", "format": "int32", "type": "integer" }, @@ -2026,6 +2325,12 @@ }, "type": "object" }, + "SetupFunctionUpgradeConfigRequest": { + "description": "Request for the `SetupFunctionUpgradeConfig` method.", + "id": "SetupFunctionUpgradeConfigRequest", + "properties": {}, + "type": "object" + }, "Source": { "description": "The location of the function source code.", "id": "Source", @@ -2138,6 +2443,53 @@ } }, "type": "object" + }, + "UpgradeInfo": { + "description": "Information related to: * A function's eligibility for 1st Gen to 2nd Gen migration * Current state of migration for function undergoing migration.", + "id": "UpgradeInfo", + "properties": { + "buildConfig": { + "$ref": "BuildConfig", + "description": "Describes the Build step of the function that builds a container to prepare for 2nd gen upgrade." + }, + "eventTrigger": { + "$ref": "EventTrigger", + "description": "Describes the Event trigger which has been setup to prepare for 2nd gen upgrade." + }, + "serviceConfig": { + "$ref": "ServiceConfig", + "description": "Describes the Cloud Run service which has been setup to prepare for 2nd gen upgrade." + }, + "upgradeState": { + "description": "UpgradeState of the function", + "enum": [ + "UPGRADE_STATE_UNSPECIFIED", + "ELIGIBLE_FOR_2ND_GEN_UPGRADE", + "UPGRADE_OPERATION_IN_PROGRESS", + "SETUP_FUNCTION_UPGRADE_CONFIG_SUCCESSFUL", + "SETUP_FUNCTION_UPGRADE_CONFIG_ERROR", + "ABORT_FUNCTION_UPGRADE_ERROR", + "REDIRECT_FUNCTION_UPGRADE_TRAFFIC_SUCCESSFUL", + "REDIRECT_FUNCTION_UPGRADE_TRAFFIC_ERROR", + "ROLLBACK_FUNCTION_UPGRADE_TRAFFIC_ERROR", + "COMMIT_FUNCTION_UPGRADE_ERROR" + ], + "enumDescriptions": [ + "Unspecified state. Most functions are in this upgrade state.", + "Functions in this state are eligible for 1st Gen -> 2nd Gen upgrade.", + "An upgrade related operation is in progress.", + "SetupFunctionUpgradeConfig API was successful and a 2nd Gen function has been created based on 1st Gen function instance.", + "SetupFunctionUpgradeConfig API was un-successful.", + "AbortFunctionUpgrade API was un-successful.", + "RedirectFunctionUpgradeTraffic API was successful and traffic is served by 2nd Gen function stack.", + "RedirectFunctionUpgradeTraffic API was un-successful.", + "RollbackFunctionUpgradeTraffic API was un-successful.", + "CommitFunctionUpgrade API was un-successful." + ], + "type": "string" + } + }, + "type": "object" } } } diff --git a/discovery/googleapis/cloudidentity__v1.json b/discovery/googleapis/cloudidentity__v1.json index 5b01043b2..5379e0613 100644 --- a/discovery/googleapis/cloudidentity__v1.json +++ b/discovery/googleapis/cloudidentity__v1.json @@ -40,7 +40,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231121", + "revision": "20240220", "rootUrl": "https://cloudidentity.googleapis.com/", "servicePath": "", "title": "Cloud Identity API", @@ -704,7 +704,7 @@ "type": "string" }, "rawResourceId": { - "description": "Raw Resource Id used by Google Endpoint Verification. If the user is enrolled into Google Endpoint Verification, this id will be saved as the 'device_resource_id' field in the following platform dependent files. Mac: ~/.secureConnect/context_aware_config.json Windows: C:\\Users\\%USERPROFILE%\\.secureConnect\\context_aware_config.json Linux: ~/.secureConnect/context_aware_config.json", + "description": "Raw Resource Id used by Google Endpoint Verification. If the user is enrolled into Google Endpoint Verification, this id will be saved as the 'device_resource_id' field in the following platform dependent files. * macOS: ~/.secureConnect/context_aware_config.json * Windows: %USERPROFILE%\\AppData\\Local\\Google\\Endpoint Verification\\accounts.json * Linux: ~/.secureConnect/context_aware_config.json", "location": "query", "type": "string" }, @@ -1056,7 +1056,7 @@ "parameterOrder": [], "parameters": { "groupKey.id": { - "description": "The ID of the entity. For Google-managed entities, the `id` should be the email address of an existing group or user. For external-identity-mapped entities, the `id` must be a string conforming to the Identity Source's requirements. Must be unique within a `namespace`.", + "description": "The ID of the entity. For Google-managed entities, the `id` should be the email address of an existing group or user. Email addresses need to adhere to [name guidelines for users and groups](https://support.google.com/a/answer/9193374). For external-identity-mapped entities, the `id` must be a string conforming to the Identity Source's requirements. Must be unique within a `namespace`.", "location": "query", "type": "string" }, @@ -1130,7 +1130,7 @@ "type": "string" }, "query": { - "description": "Required. The search query. * Must be specified in [Common Expression Language](https://opensource.google/projects/cel). * Must contain equality operators on the parent, e.g. `parent == 'customers/{customer_id}'`. The `customer_id` must begin with \"C\" (for example, 'C046psxkn'). [Find your customer ID.] (https://support.google.com/cloudidentity/answer/10070793) * Can contain optional inclusion operators on `labels` such as `'cloudidentity.googleapis.com/groups.discussion_forum' in labels`). * Can contain an optional equality operator on `domain_name`. e.g. `domain_name == 'abc.com'` * Can contain optional `startsWith/contains/equality` operators on `group_key`, e.g. `group_key.startsWith('dev')`, `group_key.contains('dev'), group_key == 'dev@abc.com'` * Can contain optional `startsWith/contains/equality` operators on `display_name`, such as `display_name.startsWith('dev')` , `display_name.contains('dev')`, `display_name == 'dev'`", + "description": "Required. The search query. * Must be specified in [Common Expression Language](https://opensource.google/projects/cel). * Must contain equality operators on the parent, e.g. `parent == 'customers/{customer_id}'`. The `customer_id` must begin with \"C\" (for example, 'C046psxkn'). [Find your customer ID.] (https://support.google.com/cloudidentity/answer/10070793) * Can contain optional inclusion operators on `labels` such as `'cloudidentity.googleapis.com/groups.discussion_forum' in labels`). * Can contain an optional equality operator on `domain_name`. e.g. `domain_name == 'examplepetstore.com'` * Can contain optional `startsWith/contains/equality` operators on `group_key`, e.g. `group_key.startsWith('dev')`, `group_key.contains('dev'), group_key == 'dev@examplepetstore.com'` * Can contain optional `startsWith/contains/equality` operators on `display_name`, such as `display_name.startsWith('dev')` , `display_name.contains('dev')`, `display_name == 'dev'`", "location": "query", "type": "string" }, @@ -1408,7 +1408,7 @@ ], "parameters": { "memberKey.id": { - "description": "The ID of the entity. For Google-managed entities, the `id` should be the email address of an existing group or user. For external-identity-mapped entities, the `id` must be a string conforming to the Identity Source's requirements. Must be unique within a `namespace`.", + "description": "The ID of the entity. For Google-managed entities, the `id` should be the email address of an existing group or user. Email addresses need to adhere to [name guidelines for users and groups](https://support.google.com/a/answer/9193374). For external-identity-mapped entities, the `id` must be a string conforming to the Identity Source's requirements. Must be unique within a `namespace`.", "location": "query", "type": "string" }, @@ -2100,7 +2100,7 @@ "id": "DynamicGroupMetadata", "properties": { "queries": { - "description": "Memberships will be the union of all queries. Only one entry with USER resource is currently supported. Customers can create up to 100 dynamic groups.", + "description": "Memberships will be the union of all queries. Only one entry with USER resource is currently supported. Customers can create up to 500 dynamic groups.", "items": { "$ref": "DynamicGroupQuery" }, @@ -2170,7 +2170,7 @@ "id": "EntityKey", "properties": { "id": { - "description": "The ID of the entity. For Google-managed entities, the `id` should be the email address of an existing group or user. For external-identity-mapped entities, the `id` must be a string conforming to the Identity Source's requirements. Must be unique within a `namespace`.", + "description": "The ID of the entity. For Google-managed entities, the `id` should be the email address of an existing group or user. Email addresses need to adhere to [name guidelines for users and groups](https://support.google.com/a/answer/9193374). For external-identity-mapped entities, the `id` must be a string conforming to the Identity Source's requirements. Must be unique within a `namespace`.", "type": "string" }, "namespace": { diff --git a/discovery/googleapis/cloudkms__v1.json b/discovery/googleapis/cloudkms__v1.json index 0ba19879e..90e86659e 100644 --- a/discovery/googleapis/cloudkms__v1.json +++ b/discovery/googleapis/cloudkms__v1.json @@ -19,6 +19,16 @@ "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/kms/", "endpoints": [ + { + "description": "Regional Endpoint", + "endpointUrl": "https://cloudkms.europe-west3.rep.googleapis.com/", + "location": "europe-west3" + }, + { + "description": "Regional Endpoint", + "endpointUrl": "https://cloudkms.europe-west9.rep.googleapis.com/", + "location": "europe-west9" + }, { "description": "Regional Endpoint", "endpointUrl": "https://cloudkms.me-central2.rep.googleapis.com/", @@ -35,7 +45,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231109", + "revision": "20240219", "rootUrl": "https://cloudkms.googleapis.com/", "servicePath": "", "title": "Cloud Key Management Service (KMS) API", @@ -2019,14 +2029,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -3420,7 +3430,7 @@ "type": "object" }, "PublicKey": { - "description": "The public key for a given CryptoKeyVersion. Obtained via GetPublicKey.", + "description": "The public keys for a given CryptoKeyVersion. Obtained via GetPublicKey.", "id": "PublicKey", "properties": { "algorithm": { @@ -3506,11 +3516,11 @@ "type": "string" }, "pem": { - "description": "The public key, encoded in PEM format. For more information, see the [RFC 7468](https://tools.ietf.org/html/rfc7468) sections for [General Considerations](https://tools.ietf.org/html/rfc7468#section-2) and [Textual Encoding of Subject Public Key Info] (https://tools.ietf.org/html/rfc7468#section-13).", + "description": "A public key encoded in PEM format, populated only when GetPublicKey returns one key. For more information, see the [RFC 7468](https://tools.ietf.org/html/rfc7468) sections for [General Considerations](https://tools.ietf.org/html/rfc7468#section-2) and [Textual Encoding of Subject Public Key Info] (https://tools.ietf.org/html/rfc7468#section-13).", "type": "string" }, "pemCrc32c": { - "description": "Integrity verification field. A CRC32C checksum of the returned PublicKey.pem. An integrity check of PublicKey.pem can be performed by computing the CRC32C checksum of PublicKey.pem and comparing your results to this field. Discard the response in case of non-matching checksum values, and perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type. NOTE: This field is in Beta.", + "description": "Integrity verification field: A CRC32C checksum of the returned PublicKey.pem. It is only populated when GetPublicKey returns one key. An integrity check of PublicKey.pem can be performed by computing the CRC32C checksum of PublicKey.pem and comparing your results to this field. Discard the response in case of non-matching checksum values, and perform a limited number of retries. A persistent mismatch may indicate an issue in your computation of the CRC32C checksum. Note: This field is defined as int64 for reasons of compatibility across different languages. However, it is a non-negative integer, which will never exceed 2^32-1, and can be safely downconverted to uint32 in languages that support this type. NOTE: This field is in Beta.", "format": "int64", "type": "string" }, diff --git a/discovery/googleapis/cloudprofiler__v2.json b/discovery/googleapis/cloudprofiler__v2.json index c7694572e..1a079dc33 100644 --- a/discovery/googleapis/cloudprofiler__v2.json +++ b/discovery/googleapis/cloudprofiler__v2.json @@ -31,7 +31,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231106", + "revision": "20240219", "rootUrl": "https://cloudprofiler.googleapis.com/", "servicePath": "", "title": "Cloud Profiler API", @@ -120,7 +120,7 @@ "profiles": { "methods": { "create": { - "description": "CreateProfile creates a new profile resource in the online mode. The server ensures that the new profiles are created at a constant rate per deployment, so the creation request may hang for some time until the next profile session is available. The request may fail with ABORTED error if the creation is not available within ~1m, the response will indicate the duration of the backoff the client should take before attempting creating a profile again. The backoff duration is returned in google.rpc.RetryInfo extension on the response status. To a gRPC client, the extension will be return as a binary-serialized proto in the trailing metadata item named \"google.rpc.retryinfo-bin\". ", + "description": "CreateProfile creates a new profile resource in the online mode. _Direct use of this API is discouraged, please use a [supported profiler agent](https://cloud.google.com/profiler/docs/about-profiler#profiling_agent) instead for profile collection._ The server ensures that the new profiles are created at a constant rate per deployment, so the creation request may hang for some time until the next profile session is available. The request may fail with ABORTED error if the creation is not available within ~1m, the response will indicate the duration of the backoff the client should take before attempting creating a profile again. The backoff duration is returned in google.rpc.RetryInfo extension on the response status. To a gRPC client, the extension will be return as a binary-serialized proto in the trailing metadata item named \"google.rpc.retryinfo-bin\". ", "flatPath": "v2/projects/{projectsId}/profiles", "httpMethod": "POST", "id": "cloudprofiler.projects.profiles.create", @@ -150,7 +150,7 @@ ] }, "createOffline": { - "description": "CreateOfflineProfile creates a new profile resource in the offline mode. The client provides the profile to create along with the profile bytes, the server records it.", + "description": "CreateOfflineProfile creates a new profile resource in the offline mode. The client provides the profile to create along with the profile bytes, the server records it. _Direct use of this API is discouraged, please use a [supported profiler agent](https://cloud.google.com/profiler/docs/about-profiler#profiling_agent) instead for profile collection._", "flatPath": "v2/projects/{projectsId}/profiles:createOffline", "httpMethod": "POST", "id": "cloudprofiler.projects.profiles.createOffline", @@ -179,8 +179,46 @@ "https://www.googleapis.com/auth/monitoring.write" ] }, + "list": { + "description": "Lists profiles which have been collected so far and for which the caller has permission to view.", + "flatPath": "v2/projects/{projectsId}/profiles", + "httpMethod": "GET", + "id": "cloudprofiler.projects.profiles.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of items to return. Default page_size is 1000. Max limit is 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The token to continue pagination and get profiles from a particular page. When paginating, all other parameters provided to `ListProfiles` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent, which owns this collection of profiles. Format: projects/{user_project_id}", + "location": "path", + "pattern": "^projects/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/profiles", + "response": { + "$ref": "ListProfilesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/monitoring", + "https://www.googleapis.com/auth/monitoring.write" + ] + }, "patch": { - "description": "UpdateProfile updates the profile bytes and labels on the profile resource created in the online mode. Updating the bytes for profiles created in the offline mode is currently not supported: the profile content must be provided at the time of the profile creation.", + "description": "UpdateProfile updates the profile bytes and labels on the profile resource created in the online mode. Updating the bytes for profiles created in the offline mode is currently not supported: the profile content must be provided at the time of the profile creation. _Direct use of this API is discouraged, please use a [supported profiler agent](https://cloud.google.com/profiler/docs/about-profiler#profiling_agent) instead for profile collection._", "flatPath": "v2/projects/{projectsId}/profiles/{profilesId}", "httpMethod": "PATCH", "id": "cloudprofiler.projects.profiles.patch", @@ -281,6 +319,29 @@ }, "type": "object" }, + "ListProfilesResponse": { + "description": "ListProfileResponse contains the list of collected profiles for deployments in projects which the user has permissions to view.", + "id": "ListProfilesResponse", + "properties": { + "nextPageToken": { + "description": "Token to receive the next page of results. This field maybe empty if there are no more profiles to fetch.", + "type": "string" + }, + "profiles": { + "description": "List of profiles fetched.", + "items": { + "$ref": "Profile" + }, + "type": "array" + }, + "skippedProfiles": { + "description": "Number of profiles that were skipped in the current page since they were not able to be fetched successfully. This should typically be zero. A non-zero value may indicate a transient failure, in which case if the number is too high for your use case, the call may be retried.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "Profile": { "description": "Profile resource.", "id": "Profile", @@ -334,6 +395,12 @@ "Heap allocation profile. It represents the aggregation of all allocations made over the duration of the profile. All allocations are included, including those that might have been freed by the end of the profiling interval. The profile is in particular useful for garbage collecting languages to understand which parts of the code create most of the garbage collection pressure to see if those can be optimized." ], "type": "string" + }, + "startTime": { + "description": "Output only. Start time for the profile. This output is only present in response from the ListProfiles method.", + "format": "google-datetime", + "readOnly": true, + "type": "string" } }, "type": "object" diff --git a/discovery/googleapis/cloudresourcemanager__v1.json b/discovery/googleapis/cloudresourcemanager__v1.json index 90caf86f5..9405e16e3 100644 --- a/discovery/googleapis/cloudresourcemanager__v1.json +++ b/discovery/googleapis/cloudresourcemanager__v1.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231102", + "revision": "20240222", "rootUrl": "https://cloudresourcemanager.googleapis.com/", "servicePath": "", "title": "Cloud Resource Manager API", @@ -1243,14 +1243,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, diff --git a/discovery/googleapis/cloudresourcemanager__v2.json b/discovery/googleapis/cloudresourcemanager__v2.json index efd0acf62..f26e93daa 100644 --- a/discovery/googleapis/cloudresourcemanager__v2.json +++ b/discovery/googleapis/cloudresourcemanager__v2.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231102", + "revision": "20240222", "rootUrl": "https://cloudresourcemanager.googleapis.com/", "servicePath": "", "title": "Cloud Resource Manager API", @@ -511,14 +511,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, diff --git a/discovery/googleapis/cloudresourcemanager__v3.json b/discovery/googleapis/cloudresourcemanager__v3.json index fe7bd2d9d..3518840c8 100644 --- a/discovery/googleapis/cloudresourcemanager__v3.json +++ b/discovery/googleapis/cloudresourcemanager__v3.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231102", + "revision": "20240222", "rootUrl": "https://cloudresourcemanager.googleapis.com/", "servicePath": "", "title": "Cloud Resource Manager API", @@ -1867,14 +1867,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, diff --git a/discovery/googleapis/cloudscheduler__v1.json b/discovery/googleapis/cloudscheduler__v1.json index 0ac48eb9b..441e7d9a1 100644 --- a/discovery/googleapis/cloudscheduler__v1.json +++ b/discovery/googleapis/cloudscheduler__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231103", + "revision": "20240209", "rootUrl": "https://cloudscheduler.googleapis.com/", "servicePath": "", "title": "Cloud Scheduler API", @@ -440,7 +440,7 @@ "additionalProperties": { "type": "string" }, - "description": "HTTP request headers. This map contains the header field names and values. Headers can be set when the job is created. Cloud Scheduler sets some headers to default values: * `User-Agent`: By default, this header is `\"AppEngine-Google; (+http://code.google.com/appengine)\"`. This header can be modified, but Cloud Scheduler will append `\"AppEngine-Google; (+http://code.google.com/appengine)\"` to the modified `User-Agent`. * `X-CloudScheduler`: This header will be set to true. * `X-CloudScheduler-JobName`: This header will contain the job name. * `X-CloudScheduler-ScheduleTime`: For Cloud Scheduler jobs specified in the unix-cron format, this header will contain the job schedule time in RFC3339 UTC \"Zulu\" format. If the job has a body and the following headers are not set by the user, Cloud Scheduler sets default values: * `Content-Type`: This will be set to `\"application/octet-stream\"`. You can override this default by explicitly setting `Content-Type` to a particular media type when creating the job. For example, you can set `Content-Type` to `\"application/json\"`. The headers below are output only. They cannot be set or overridden: * `Content-Length`: This is computed by Cloud Scheduler. * `X-Google-*`: For Google internal use only. * `X-AppEngine-*`: For Google internal use only. In addition, some App Engine headers, which contain job-specific information, are also be sent to the job handler.", + "description": "HTTP request headers. This map contains the header field names and values. Headers can be set when the job is created. Cloud Scheduler sets some headers to default values: * `User-Agent`: By default, this header is `\"AppEngine-Google; (+http://code.google.com/appengine)\"`. This header can be modified, but Cloud Scheduler will append `\"AppEngine-Google; (+http://code.google.com/appengine)\"` to the modified `User-Agent`. * `X-CloudScheduler`: This header will be set to true. * `X-CloudScheduler-JobName`: This header will contain the job name. * `X-CloudScheduler-ScheduleTime`: For Cloud Scheduler jobs specified in the unix-cron format, this header will contain the job schedule as an offset of UTC parsed according to RFC3339. If the job has a body and the following headers are not set by the user, Cloud Scheduler sets default values: * `Content-Type`: This will be set to `\"application/octet-stream\"`. You can override this default by explicitly setting `Content-Type` to a particular media type when creating the job. For example, you can set `Content-Type` to `\"application/json\"`. The headers below are output only. They cannot be set or overridden: * `Content-Length`: This is computed by Cloud Scheduler. * `X-Google-*`: For Google internal use only. * `X-AppEngine-*`: For Google internal use only. In addition, some App Engine headers, which contain job-specific information, are also be sent to the job handler.", "type": "object" }, "httpMethod": { @@ -516,7 +516,7 @@ "additionalProperties": { "type": "string" }, - "description": "HTTP request headers. This map contains the header field names and values. The user can specify HTTP request headers to send with the job's HTTP request. Repeated headers are not supported, but a header value can contain commas. The following headers represent a subset of the headers that accompany the job's HTTP request. Some HTTP request headers are ignored or replaced. A partial list of headers that are ignored or replaced is below: * Host: This will be computed by Cloud Scheduler and derived from uri. * `Content-Length`: This will be computed by Cloud Scheduler. * `User-Agent`: This will be set to `\"Google-Cloud-Scheduler\"`. * `X-Google-*`: Google internal use only. * `X-AppEngine-*`: Google internal use only. * `X-CloudScheduler`: This header will be set to true. * `X-CloudScheduler-JobName`: This header will contain the job name. * `X-CloudScheduler-ScheduleTime`: For Cloud Scheduler jobs specified in the unix-cron format, this header will contain the job schedule time in RFC3339 UTC \"Zulu\" format. If the job has a body and the following headers are not set by the user, Cloud Scheduler sets default values: * `Content-Type`: This will be set to `\"application/octet-stream\"`. You can override this default by explicitly setting `Content-Type` to a particular media type when creating the job. For example, you can set `Content-Type` to `\"application/json\"`. The total size of headers must be less than 80KB.", + "description": "HTTP request headers. This map contains the header field names and values. The user can specify HTTP request headers to send with the job's HTTP request. Repeated headers are not supported, but a header value can contain commas. The following headers represent a subset of the headers that accompany the job's HTTP request. Some HTTP request headers are ignored or replaced. A partial list of headers that are ignored or replaced is below: * Host: This will be computed by Cloud Scheduler and derived from uri. * `Content-Length`: This will be computed by Cloud Scheduler. * `User-Agent`: This will be set to `\"Google-Cloud-Scheduler\"`. * `X-Google-*`: Google internal use only. * `X-AppEngine-*`: Google internal use only. * `X-CloudScheduler`: This header will be set to true. * `X-CloudScheduler-JobName`: This header will contain the job name. * `X-CloudScheduler-ScheduleTime`: For Cloud Scheduler jobs specified in the unix-cron format, this header will contain the job schedule as an offset of UTC parsed according to RFC3339. If the job has a body and the following headers are not set by the user, Cloud Scheduler sets default values: * `Content-Type`: This will be set to `\"application/octet-stream\"`. You can override this default by explicitly setting `Content-Type` to a particular media type when creating the job. For example, you can set `Content-Type` to `\"application/json\"`. The total size of headers must be less than 80KB.", "type": "object" }, "httpMethod": { @@ -767,7 +767,7 @@ "type": "string" }, "messageId": { - "description": "Optional. ID of this message, assigned by the server when the message is published. Guaranteed to be unique within the topic. This value may be read by a subscriber that receives a `PubsubMessage` via a `Pull` call or a push delivery. It must not be populated by the publisher in a `Publish` call.", + "description": "ID of this message, assigned by the server when the message is published. Guaranteed to be unique within the topic. This value may be read by a subscriber that receives a `PubsubMessage` via a `Pull` call or a push delivery. It must not be populated by the publisher in a `Publish` call.", "type": "string" }, "orderingKey": { @@ -775,7 +775,7 @@ "type": "string" }, "publishTime": { - "description": "Optional. The time at which the message was published, populated by the server when it receives the `Publish` call. It must not be populated by the publisher in a `Publish` call.", + "description": "The time at which the message was published, populated by the server when it receives the `Publish` call. It must not be populated by the publisher in a `Publish` call.", "format": "google-datetime", "type": "string" } diff --git a/discovery/googleapis/cloudsearch__v1.json b/discovery/googleapis/cloudsearch__v1.json index 4435ca8f1..2d1f92986 100644 --- a/discovery/googleapis/cloudsearch__v1.json +++ b/discovery/googleapis/cloudsearch__v1.json @@ -49,7 +49,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231025", + "revision": "20240103", "rootUrl": "https://cloudsearch.googleapis.com/", "servicePath": "", "title": "Cloud Search API", diff --git a/discovery/googleapis/cloudshell__v1.json b/discovery/googleapis/cloudshell__v1.json index 04a54876d..f0ecb4dea 100644 --- a/discovery/googleapis/cloudshell__v1.json +++ b/discovery/googleapis/cloudshell__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231113", + "revision": "20240226", "rootUrl": "https://cloudshell.googleapis.com/", "servicePath": "", "title": "Cloud Shell API", diff --git a/discovery/googleapis/cloudsupport__v2.json b/discovery/googleapis/cloudsupport__v2.json index 917771660..8176145d8 100644 --- a/discovery/googleapis/cloudsupport__v2.json +++ b/discovery/googleapis/cloudsupport__v2.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231115", + "revision": "20240227", "rootUrl": "https://cloudsupport.googleapis.com/", "servicePath": "", "title": "Google Cloud Support API", @@ -558,7 +558,7 @@ }, "schemas": { "Actor": { - "description": "An object containing information about the effective user and authenticated principal responsible for an action.", + "description": "An Actor represents an entity that performed an action. For example, an actor could be a user who posted a comment on a support case, a user who uploaded an attachment, or a service account that created a support case.", "id": "Actor", "properties": { "displayName": { @@ -566,19 +566,25 @@ "type": "string" }, "email": { - "description": "The email address of the actor. If not provided, it is inferred from credentials supplied during case creation. If the authenticated principal does not have an email address, one must be provided. When a name is provided, an email must also be provided. This will be obfuscated if the user is a Google Support agent.", + "deprecated": true, + "description": "The email address of the actor. If not provided, it is inferred from the credentials supplied during case creation. When a name is provided, an email must also be provided. If the user is a Google Support agent, this is obfuscated. This field is deprecated. Use **username** field instead.", "type": "string" }, "googleSupport": { "description": "Output only. Whether the actor is a Google support actor.", "readOnly": true, "type": "boolean" + }, + "username": { + "description": "Output only. The username of the actor. It may look like an email or other format provided by the identity provider. If not provided, it is inferred from the credentials supplied. When a name is provided, a username must also be provided. If the user is a Google Support agent, this will not be set.", + "readOnly": true, + "type": "string" } }, "type": "object" }, "Attachment": { - "description": "Represents a file attached to a support case.", + "description": "An Attachment contains metadata about a file that was uploaded to a case - it is NOT a file itself. That being said, the name of an Attachment object can be used to download its accompanying file through the `media.download` endpoint. While attachments can be uploaded in the console at the same time as a comment, they're associated on a \"case\" level, not a \"comment\" level.", "id": "Attachment", "properties": { "createTime": { @@ -646,7 +652,7 @@ "type": "object" }, "Case": { - "description": "A support case.", + "description": "A Case is an object that contains the details of a support case. It contains fields for the time it was created, its priority, its classification, and more. Cases can also have comments and attachments that get added over time. A case is parented by a Google Cloud organization or project. Organizations are identified by a number, so the name of a case parented by an organization would look like this: ``` organizations/123/cases/456 ``` Projects have two unique identifiers, an ID and a number, and they look like this: ``` projects/abc/cases/456 ``` ``` projects/123/cases/456 ``` You can use either of them when calling the API. To learn more about project identifiers, see [AIP-2510](https://google.aip.dev/cloud/2510). Next ID: 38", "id": "Case", "properties": { "classification": { @@ -753,7 +759,7 @@ "type": "object" }, "CaseClassification": { - "description": "A classification object with a product type and value.", + "description": "A Case Classification represents the topic that a case is about. It's very important to use accurate classifications, because they're used to route your cases to specialists who can help you. A classification always has an ID that is its unique identifier. A valid ID is required when creating a case.", "id": "CaseClassification", "properties": { "displayName": { @@ -774,7 +780,7 @@ "type": "object" }, "Comment": { - "description": "A comment associated with a support case.", + "description": "Case comments are the main way Google Support communicates with a user who has opened a case. When a user responds to Google Support, the user's responses also appear as comments.", "id": "Comment", "properties": { "body": { diff --git a/discovery/googleapis/cloudtasks__v2.json b/discovery/googleapis/cloudtasks__v2.json index e85ed9d19..d953295ed 100644 --- a/discovery/googleapis/cloudtasks__v2.json +++ b/discovery/googleapis/cloudtasks__v2.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231103", + "revision": "20240207", "rootUrl": "https://cloudtasks.googleapis.com/", "servicePath": "", "title": "Cloud Tasks API", @@ -896,14 +896,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -967,7 +967,7 @@ }, "task": { "$ref": "Task", - "description": "Required. The task to add. Task names have the following format: `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`. The user can optionally specify a task name. If a name is not specified then the system will generate a random unique task id, which will be set in the task returned in the response. If schedule_time is not set or is in the past then Cloud Tasks will set it to the current time. Task De-duplication: Explicitly specifying a task ID enables task de-duplication. If a task's ID is identical to that of an existing task or a task that was deleted or executed recently then the call will fail with ALREADY_EXISTS. If the task's queue was created using Cloud Tasks, then another task with the same name can't be created for ~1hour after the original task was deleted or executed. If the task's queue was created using queue.yaml or queue.xml, then another task with the same name can't be created for ~9days after the original task was deleted or executed. Because there is an extra lookup cost to identify duplicate task names, these CreateTask calls have significantly increased latency. Using hashed strings for the task id or for the prefix of the task id is recommended. Choosing task ids that are sequential or have sequential prefixes, for example using a timestamp, causes an increase in latency and error rates in all task commands. The infrastructure relies on an approximately uniform distribution of task ids to store and serve tasks efficiently." + "description": "Required. The task to add. Task names have the following format: `projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_ID/tasks/TASK_ID`. The user can optionally specify a task name. If a name is not specified then the system will generate a random unique task id, which will be set in the task returned in the response. If schedule_time is not set or is in the past then Cloud Tasks will set it to the current time. Task De-duplication: Explicitly specifying a task ID enables task de-duplication. If a task's ID is identical to that of an existing task or a task that was deleted or executed recently then the call will fail with ALREADY_EXISTS. The IDs of deleted tasks are not immediately available for reuse. It can take up to 4 hours (or 9 days if the task's queue was created using a queue.yaml or queue.xml) for the task ID to be released and made available again. Because there is an extra lookup cost to identify duplicate task names, these CreateTask calls have significantly increased latency. Using hashed strings for the task id or for the prefix of the task id is recommended. Choosing task ids that are sequential or have sequential prefixes, for example using a timestamp, causes an increase in latency and error rates in all task commands. The infrastructure relies on an approximately uniform distribution of task ids to store and serve tasks efficiently." } }, "type": "object" diff --git a/discovery/googleapis/cloudtrace__v2.json b/discovery/googleapis/cloudtrace__v2.json index 96df65213..af2223d4c 100644 --- a/discovery/googleapis/cloudtrace__v2.json +++ b/discovery/googleapis/cloudtrace__v2.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231109", + "revision": "20240209", "rootUrl": "https://cloudtrace.googleapis.com/", "servicePath": "", "title": "Cloud Trace API", diff --git a/discovery/googleapis/composer__v1.json b/discovery/googleapis/composer__v1.json index 4359316e4..751d46c20 100644 --- a/discovery/googleapis/composer__v1.json +++ b/discovery/googleapis/composer__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231105", + "revision": "20240221", "rootUrl": "https://composer.googleapis.com/", "servicePath": "", "title": "Cloud Composer API", @@ -456,6 +456,345 @@ "https://www.googleapis.com/auth/cloud-platform" ] } + }, + "resources": { + "userWorkloadsConfigMaps": { + "methods": { + "create": { + "description": "Creates a user workloads ConfigMap. This method is supported for Cloud Composer environments in versions composer-3.*.*-airflow-*.*.* and newer.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/userWorkloadsConfigMaps", + "httpMethod": "POST", + "id": "composer.projects.locations.environments.userWorkloadsConfigMaps.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The environment name to create a ConfigMap for, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/userWorkloadsConfigMaps", + "request": { + "$ref": "UserWorkloadsConfigMap" + }, + "response": { + "$ref": "UserWorkloadsConfigMap" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a user workloads ConfigMap. This method is supported for Cloud Composer environments in versions composer-3.*.*-airflow-*.*.* and newer.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/userWorkloadsConfigMaps/{userWorkloadsConfigMapsId}", + "httpMethod": "DELETE", + "id": "composer.projects.locations.environments.userWorkloadsConfigMaps.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The ConfigMap to delete, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsConfigMaps/{userWorkloadsConfigMapId}\"", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+/userWorkloadsConfigMaps/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets an existing user workloads ConfigMap. This method is supported for Cloud Composer environments in versions composer-3.*.*-airflow-*.*.* and newer.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/userWorkloadsConfigMaps/{userWorkloadsConfigMapsId}", + "httpMethod": "GET", + "id": "composer.projects.locations.environments.userWorkloadsConfigMaps.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the ConfigMap to get, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsConfigMaps/{userWorkloadsConfigMapId}\"", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+/userWorkloadsConfigMaps/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "UserWorkloadsConfigMap" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists user workloads ConfigMaps. This method is supported for Cloud Composer environments in versions composer-3.*.*-airflow-*.*.* and newer.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/userWorkloadsConfigMaps", + "httpMethod": "GET", + "id": "composer.projects.locations.environments.userWorkloadsConfigMaps.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of ConfigMaps to return.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. The next_page_token value returned from a previous List request, if any.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. List ConfigMaps in the given environment, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/userWorkloadsConfigMaps", + "response": { + "$ref": "ListUserWorkloadsConfigMapsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "update": { + "description": "Updates a user workloads ConfigMap. This method is supported for Cloud Composer environments in versions composer-3.*.*-airflow-*.*.* and newer.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/userWorkloadsConfigMaps/{userWorkloadsConfigMapsId}", + "httpMethod": "PUT", + "id": "composer.projects.locations.environments.userWorkloadsConfigMaps.update", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Identifier. The resource name of the ConfigMap, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsConfigMaps/{userWorkloadsConfigMapId}\"", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+/userWorkloadsConfigMaps/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "UserWorkloadsConfigMap" + }, + "response": { + "$ref": "UserWorkloadsConfigMap" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "userWorkloadsSecrets": { + "methods": { + "create": { + "description": "Creates a user workloads Secret. This method is supported for Cloud Composer environments in versions composer-3.*.*-airflow-*.*.* and newer.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/userWorkloadsSecrets", + "httpMethod": "POST", + "id": "composer.projects.locations.environments.userWorkloadsSecrets.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The environment name to create a Secret for, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/userWorkloadsSecrets", + "request": { + "$ref": "UserWorkloadsSecret" + }, + "response": { + "$ref": "UserWorkloadsSecret" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a user workloads Secret. This method is supported for Cloud Composer environments in versions composer-3.*.*-airflow-*.*.* and newer.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/userWorkloadsSecrets/{userWorkloadsSecretsId}", + "httpMethod": "DELETE", + "id": "composer.projects.locations.environments.userWorkloadsSecrets.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The Secret to delete, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsSecrets/{userWorkloadsSecretId}\"", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+/userWorkloadsSecrets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets an existing user workloads Secret. Values of the \"data\" field in the response are cleared. This method is supported for Cloud Composer environments in versions composer-3.*.*-airflow-*.*.* and newer.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/userWorkloadsSecrets/{userWorkloadsSecretsId}", + "httpMethod": "GET", + "id": "composer.projects.locations.environments.userWorkloadsSecrets.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the Secret to get, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsSecrets/{userWorkloadsSecretId}\"", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+/userWorkloadsSecrets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "UserWorkloadsSecret" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists user workloads Secrets. This method is supported for Cloud Composer environments in versions composer-3.*.*-airflow-*.*.* and newer.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/userWorkloadsSecrets", + "httpMethod": "GET", + "id": "composer.projects.locations.environments.userWorkloadsSecrets.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of Secrets to return.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. The next_page_token value returned from a previous List request, if any.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. List Secrets in the given environment, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/userWorkloadsSecrets", + "response": { + "$ref": "ListUserWorkloadsSecretsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "update": { + "description": "Updates a user workloads Secret. This method is supported for Cloud Composer environments in versions composer-3.*.*-airflow-*.*.* and newer.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/userWorkloadsSecrets/{userWorkloadsSecretsId}", + "httpMethod": "PUT", + "id": "composer.projects.locations.environments.userWorkloadsSecrets.update", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Identifier. The resource name of the Secret, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsSecrets/{userWorkloadsSecretId}\"", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+/userWorkloadsSecrets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "UserWorkloadsSecret" + }, + "response": { + "$ref": "UserWorkloadsSecret" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "workloads": { + "methods": { + "list": { + "description": "Lists workloads in a Cloud Composer environment. Workload is a unit that runs a single Composer component. This method is supported for Cloud Composer environments in versions composer-3.*.*-airflow-*.*.* and newer.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/environments/{environmentsId}/workloads", + "httpMethod": "GET", + "id": "composer.projects.locations.environments.workloads.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. The list filter. Currently only supports equality on the type field. The value of a field specified in the filter expression must be one ComposerWorkloadType enum option. It's possible to get multiple types using \"OR\" operator, e.g.: \"type=SCHEDULER OR type=CELERY_WORKER\". If not specified, all items are returned.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of environments to return.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. The next_page_token value returned from a previous List request, if any.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The environment name to get workloads for, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}\"", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/environments/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/workloads", + "response": { + "$ref": "ListWorkloadsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } } }, "imageVersions": { @@ -677,6 +1016,137 @@ }, "type": "object" }, + "CloudDataLineageIntegration": { + "description": "Configuration for Cloud Data Lineage integration.", + "id": "CloudDataLineageIntegration", + "properties": { + "enabled": { + "description": "Optional. Whether or not Cloud Data Lineage integration is enabled.", + "type": "boolean" + } + }, + "type": "object" + }, + "ComposerWorkload": { + "description": "Information about a single workload.", + "id": "ComposerWorkload", + "properties": { + "name": { + "description": "Name of a workload.", + "type": "string" + }, + "status": { + "$ref": "ComposerWorkloadStatus", + "description": "Output only. Status of a workload.", + "readOnly": true + }, + "type": { + "description": "Type of a workload.", + "enum": [ + "COMPOSER_WORKLOAD_TYPE_UNSPECIFIED", + "CELERY_WORKER", + "KUBERNETES_WORKER", + "KUBERNETES_OPERATOR_POD", + "SCHEDULER", + "DAG_PROCESSOR", + "TRIGGERER", + "WEB_SERVER", + "REDIS" + ], + "enumDescriptions": [ + "Not able to determine the type of the workload.", + "Celery worker.", + "Kubernetes worker.", + "Workload created by Kubernetes Pod Operator.", + "Airflow scheduler.", + "Airflow Dag processor.", + "Airflow triggerer.", + "Airflow web server UI.", + "Redis." + ], + "type": "string" + } + }, + "type": "object" + }, + "ComposerWorkloadStatus": { + "description": "Workload status.", + "id": "ComposerWorkloadStatus", + "properties": { + "detailedStatusMessage": { + "description": "Output only. Detailed message of the status.", + "readOnly": true, + "type": "string" + }, + "state": { + "description": "Output only. Workload state.", + "enum": [ + "COMPOSER_WORKLOAD_STATE_UNSPECIFIED", + "PENDING", + "OK", + "WARNING", + "ERROR", + "SUCCEEDED", + "FAILED" + ], + "enumDescriptions": [ + "Not able to determine the status of the workload.", + "Workload is in pending state and has not yet started.", + "Workload is running fine.", + "Workload is running but there are some non-critical problems.", + "Workload is not running due to an error.", + "Workload has finished execution with success.", + "Workload has finished execution with failure." + ], + "readOnly": true, + "type": "string" + }, + "statusMessage": { + "description": "Output only. Text to provide more descriptive status.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "DagProcessorResource": { + "description": "Configuration for resources used by Airflow DAG processors.", + "id": "DagProcessorResource", + "properties": { + "count": { + "description": "Optional. The number of DAG processors. If not provided or set to 0, a single DAG processor instance will be created.", + "format": "int32", + "type": "integer" + }, + "cpu": { + "description": "Optional. CPU request and limit for a single Airflow DAG processor replica.", + "format": "float", + "type": "number" + }, + "memoryGb": { + "description": "Optional. Memory (GB) request and limit for a single Airflow DAG processor replica.", + "format": "float", + "type": "number" + }, + "storageGb": { + "description": "Optional. Storage (GB) request and limit for a single Airflow DAG processor replica.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "DataRetentionConfig": { + "description": "The configuration setting for Airflow database data retention mechanism.", + "id": "DataRetentionConfig", + "properties": { + "taskLogsRetentionConfig": { + "$ref": "TaskLogsRetentionConfig", + "description": "Optional. The configuration settings for task logs retention" + } + }, + "type": "object" + }, "DatabaseConfig": { "description": "The configuration of Cloud SQL instance that is used by the Apache Airflow software.", "id": "DatabaseConfig", @@ -825,6 +1295,10 @@ "description": "Output only. The Cloud Storage prefix of the DAGs for this environment. Although Cloud Storage objects reside in a flat namespace, a hierarchical file tree can be simulated using \"/\"-delimited object name prefixes. DAG objects for this environment reside in a simulated directory with the given prefix.", "type": "string" }, + "dataRetentionConfig": { + "$ref": "DataRetentionConfig", + "description": "Optional. The configuration setting for Airflow database data retention mechanism." + }, "databaseConfig": { "$ref": "DatabaseConfig", "description": "Optional. The configuration settings for Cloud SQL instance used internally by Apache Airflow software." @@ -1120,6 +1594,60 @@ }, "type": "object" }, + "ListUserWorkloadsConfigMapsResponse": { + "description": "The user workloads ConfigMaps for a given environment.", + "id": "ListUserWorkloadsConfigMapsResponse", + "properties": { + "nextPageToken": { + "description": "The page token used to query for the next page if one exists.", + "type": "string" + }, + "userWorkloadsConfigMaps": { + "description": "The list of ConfigMaps returned by a ListUserWorkloadsConfigMapsRequest.", + "items": { + "$ref": "UserWorkloadsConfigMap" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListUserWorkloadsSecretsResponse": { + "description": "The user workloads Secrets for a given environment.", + "id": "ListUserWorkloadsSecretsResponse", + "properties": { + "nextPageToken": { + "description": "The page token used to query for the next page if one exists.", + "type": "string" + }, + "userWorkloadsSecrets": { + "description": "The list of Secrets returned by a ListUserWorkloadsSecretsRequest.", + "items": { + "$ref": "UserWorkloadsSecret" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListWorkloadsResponse": { + "description": "Response to ListWorkloadsRequest.", + "id": "ListWorkloadsResponse", + "properties": { + "nextPageToken": { + "description": "The page token used to query for the next page if one exists.", + "type": "string" + }, + "workloads": { + "description": "The list of environment workloads.", + "items": { + "$ref": "ComposerWorkload" + }, + "type": "array" + } + }, + "type": "object" + }, "LoadSnapshotRequest": { "description": "Request to load a snapshot into a Cloud Composer environment.", "id": "LoadSnapshotRequest", @@ -1217,6 +1745,14 @@ "description": "The configuration information for the Kubernetes Engine nodes running the Apache Airflow software.", "id": "NodeConfig", "properties": { + "composerInternalIpv4CidrBlock": { + "description": "Optional. The IP range in CIDR notation to use internally by Cloud Composer. IP addresses are not reserved - and the same range can be used by multiple Cloud Composer environments. In case of overlap, IPs from this range will not be accessible in the user's VPC network. Cannot be updated. If not specified, the default value of '100.64.128.0/20' is used. This field is supported for Cloud Composer environments in versions composer-3.*.*-airflow-*.*.* and newer.", + "type": "string" + }, + "composerNetworkAttachment": { + "description": "Optional. Network Attachment that Cloud Composer environment is connected to, which provides connectivity with a user's VPC network. Takes precedence over network and subnetwork settings. If not provided, but network and subnetwork are defined during environment, it will be provisioned. If not provided and network and subnetwork are also empty, then connectivity to user's VPC network is disabled. Network attachment must be provided in format projects/{project}/regions/{region}/networkAttachments/{networkAttachment}. This field is supported for Cloud Composer environments in versions composer-3.*.*-airflow-*.*.* and newer.", + "type": "string" + }, "diskSizeGb": { "description": "Optional. The disk size in GB used for node VMs. Minimum size is 30GB. If unspecified, defaults to 100GB. Cannot be updated. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", "format": "int32", @@ -1458,6 +1994,10 @@ "description": "Optional. The CIDR block from which IP range in tenant project will be reserved for Cloud SQL. Needs to be disjoint from `web_server_ipv4_cidr_block`.", "type": "string" }, + "enablePrivateBuildsOnly": { + "description": "Optional. If `true`, builds performed during operations that install Python packages have only private connectivity to Google services (including Artifact Registry) and VPC network (if either `NodeConfig.network` and `NodeConfig.subnetwork` fields or `NodeConfig.composer_network_attachment` field are specified). If `false`, the builds also have access to the internet. This field is supported for Cloud Composer environments in versions composer-3.*.*-airflow-*.*.* and newer.", + "type": "boolean" + }, "enablePrivateEnvironment": { "description": "Optional. If `true`, a Private IP Cloud Composer environment is created. If this field is set to true, `IPAllocationPolicy.use_ip_aliases` must be set to true for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*.", "type": "boolean" @@ -1580,6 +2120,10 @@ "description": "Optional. Apache Airflow configuration properties to override. Property keys contain the section and property names, separated by a hyphen, for example \"core-dags_are_paused_at_creation\". Section names must not contain hyphens (\"-\"), opening square brackets (\"[\"), or closing square brackets (\"]\"). The property name must not be empty and must not contain an equals sign (\"=\") or semicolon (\";\"). Section and property names must not contain a period (\".\"). Apache Airflow configuration property names must be written in [snake_case](https://en.wikipedia.org/wiki/Snake_case). Property values can contain any character, and can be written in any lower/upper case format. Certain Apache Airflow configuration property values are [blocked](/composer/docs/concepts/airflow-configurations), and cannot be overridden.", "type": "object" }, + "cloudDataLineageIntegration": { + "$ref": "CloudDataLineageIntegration", + "description": "Optional. The configuration for Cloud Data Lineage integration." + }, "envVariables": { "additionalProperties": { "type": "string" @@ -1606,6 +2150,20 @@ "description": "Optional. The number of schedulers for Airflow. This field is supported for Cloud Composer environments in versions composer-1.*.*-airflow-2.*.*.", "format": "int32", "type": "integer" + }, + "webServerPluginsMode": { + "description": "Optional. Whether or not the web server uses custom plugins. If unspecified, the field defaults to `PLUGINS_ENABLED`. This field is supported for Cloud Composer environments in versions composer-3.*.*-airflow-*.*.* and newer.", + "enum": [ + "WEB_SERVER_PLUGINS_MODE_UNSPECIFIED", + "PLUGINS_DISABLED", + "PLUGINS_ENABLED" + ], + "enumDescriptions": [ + "Default mode.", + "Web server plugins are not supported.", + "Web server plugins are supported." + ], + "type": "string" } }, "type": "object" @@ -1689,6 +2247,27 @@ }, "type": "object" }, + "TaskLogsRetentionConfig": { + "description": "The configuration setting for Task Logs.", + "id": "TaskLogsRetentionConfig", + "properties": { + "storageMode": { + "description": "Optional. The mode of storage for Airflow workers task logs. For details, see go/composer-store-task-logs-in-cloud-logging-only-design-doc", + "enum": [ + "TASK_LOGS_STORAGE_MODE_UNSPECIFIED", + "CLOUD_LOGGING_AND_CLOUD_STORAGE", + "CLOUD_LOGGING_ONLY" + ], + "enumDescriptions": [ + "This configuration is not specified by the user.", + "Store task logs in Cloud Logging and in the environment's Cloud Storage bucket.", + "Store task logs in Cloud Logging only." + ], + "type": "string" + } + }, + "type": "object" + }, "TriggererResource": { "description": "Configuration for resources used by Airflow triggerers.", "id": "TriggererResource", @@ -1711,6 +2290,42 @@ }, "type": "object" }, + "UserWorkloadsConfigMap": { + "description": "User workloads ConfigMap used by Airflow tasks that run with Kubernetes executor or KubernetesPodOperator.", + "id": "UserWorkloadsConfigMap", + "properties": { + "data": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. The \"data\" field of Kubernetes ConfigMap, organized in key-value pairs. For details see: https://kubernetes.io/docs/concepts/configuration/configmap/", + "type": "object" + }, + "name": { + "description": "Identifier. The resource name of the ConfigMap, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsConfigMaps/{userWorkloadsConfigMapId}\"", + "type": "string" + } + }, + "type": "object" + }, + "UserWorkloadsSecret": { + "description": "User workloads Secret used by Airflow tasks that run with Kubernetes executor or KubernetesPodOperator.", + "id": "UserWorkloadsSecret", + "properties": { + "data": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. The \"data\" field of Kubernetes Secret, organized in key-value pairs, which can contain sensitive values such as a password, a token, or a key. The values for all keys have to be base64-encoded strings. For details see: https://kubernetes.io/docs/concepts/configuration/secret/", + "type": "object" + }, + "name": { + "description": "Identifier. The resource name of the Secret, in the form: \"projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsSecrets/{userWorkloadsSecretId}\"", + "type": "string" + } + }, + "type": "object" + }, "WebServerConfig": { "description": "The configuration settings for the Airflow web server App Engine instance. Supported for Cloud Composer environments in versions composer-1.*.*-airflow-*.*.*", "id": "WebServerConfig", @@ -1794,6 +2409,10 @@ "description": "The Kubernetes workloads configuration for GKE cluster associated with the Cloud Composer environment. Supported for Cloud Composer environments in versions composer-2.*.*-airflow-*.*.* and newer.", "id": "WorkloadsConfig", "properties": { + "dagProcessor": { + "$ref": "DagProcessorResource", + "description": "Optional. Resources used by Airflow DAG processors. This field is supported for Cloud Composer environments in versions composer-3.*.*-airflow-*.*.* and newer." + }, "scheduler": { "$ref": "SchedulerResource", "description": "Optional. Resources used by Airflow schedulers." diff --git a/discovery/googleapis/compute__v1.json b/discovery/googleapis/compute__v1.json index 534f90dd2..be5ea903f 100644 --- a/discovery/googleapis/compute__v1.json +++ b/discovery/googleapis/compute__v1.json @@ -39,7 +39,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231110", + "revision": "20240218", "rootUrl": "https://compute.googleapis.com/", "servicePath": "compute/v1/", "title": "Compute Engine API", @@ -130,7 +130,7 @@ "acceleratorTypes": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of accelerator types.", + "description": "Retrieves an aggregated list of accelerator types. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/acceleratorTypes", "httpMethod": "GET", "id": "compute.acceleratorTypes.aggregatedList", @@ -174,11 +174,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -278,7 +279,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, @@ -305,7 +306,7 @@ "addresses": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of addresses.", + "description": "Retrieves an aggregated list of addresses. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/addresses", "httpMethod": "GET", "id": "compute.addresses.aggregatedList", @@ -349,11 +350,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -549,7 +551,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -669,7 +671,7 @@ "autoscalers": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of autoscalers.", + "description": "Retrieves an aggregated list of autoscalers. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/autoscalers", "httpMethod": "GET", "id": "compute.autoscalers.aggregatedList", @@ -713,11 +715,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -906,7 +909,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, @@ -1303,7 +1306,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -1371,7 +1374,7 @@ ], "parameters": { "backendBucket": { - "description": "Name of the BackendService resource to which the security policy should be set. The name should conform to RFC1035.", + "description": "Name of the BackendBucket resource to which the security policy should be set. The name should conform to RFC1035.", "location": "path", "required": true, "type": "string" @@ -1564,7 +1567,7 @@ ] }, "aggregatedList": { - "description": "Retrieves the list of all BackendService resources, regional and global, available to the specified project.", + "description": "Retrieves the list of all BackendService resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/backendServices", "httpMethod": "GET", "id": "compute.backendServices.aggregatedList", @@ -1608,11 +1611,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -1899,7 +1903,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -1954,7 +1958,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -2215,7 +2219,7 @@ "diskTypes": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of disk types.", + "description": "Retrieves an aggregated list of disk types. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/diskTypes", "httpMethod": "GET", "id": "compute.diskTypes.aggregatedList", @@ -2259,11 +2263,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -2363,7 +2368,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, @@ -2440,7 +2445,7 @@ ] }, "aggregatedList": { - "description": "Retrieves an aggregated list of persistent disks.", + "description": "Retrieves an aggregated list of persistent disks. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/disks", "httpMethod": "GET", "id": "compute.disks.aggregatedList", @@ -2484,11 +2489,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -2827,7 +2833,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, @@ -3442,7 +3448,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -3865,7 +3871,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -4296,7 +4302,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -4400,7 +4406,7 @@ "forwardingRules": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of forwarding rules.", + "description": "Retrieves an aggregated list of forwarding rules. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/forwardingRules", "httpMethod": "GET", "id": "compute.forwardingRules.aggregatedList", @@ -4444,11 +4450,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -4644,7 +4651,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -4961,7 +4968,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -5207,7 +5214,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -5575,7 +5582,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -5637,7 +5644,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -5657,7 +5664,7 @@ "globalOperations": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of all operations.", + "description": "Retrieves an aggregated list of all operations. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/operations", "httpMethod": "GET", "id": "compute.globalOperations.aggregatedList", @@ -5701,11 +5708,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -5827,7 +5835,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -5976,7 +5984,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -6143,7 +6151,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -6205,7 +6213,7 @@ "healthChecks": { "methods": { "aggregatedList": { - "description": "Retrieves the list of all HealthCheck resources, regional and global, available to the specified project.", + "description": "Retrieves the list of all HealthCheck resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/healthChecks", "httpMethod": "GET", "id": "compute.healthChecks.aggregatedList", @@ -6249,11 +6257,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -6417,7 +6426,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -6668,7 +6677,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -6919,7 +6928,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -7343,7 +7352,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -7565,7 +7574,7 @@ ] }, "aggregatedList": { - "description": "Retrieves the list of managed instance groups and groups them by zone.", + "description": "Retrieves the list of managed instance groups and groups them by zone. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/instanceGroupManagers", "httpMethod": "GET", "id": "compute.instanceGroupManagers.aggregatedList", @@ -7609,11 +7618,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -7979,7 +7989,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, @@ -8048,7 +8058,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, @@ -8070,7 +8080,7 @@ ] }, "listManagedInstances": { - "description": "Lists all of the instances in the managed instance group. Each instance in the list has a currentAction, which indicates the action that the managed instance group is performing on the instance. For example, if the group is still creating an instance, the currentAction is CREATING. If a previous action failed, the list displays the errors for that failed action. The orderBy query parameter is not supported. The `pageToken` query parameter is supported only in the alpha and beta API and only if the group's `listManagedInstancesResults` field is set to `PAGINATED`.", + "description": "Lists all of the instances in the managed instance group. Each instance in the list has a currentAction, which indicates the action that the managed instance group is performing on the instance. For example, if the group is still creating an instance, the currentAction is CREATING. If a previous action failed, the list displays the errors for that failed action. The orderBy query parameter is not supported. The `pageToken` query parameter is supported only if the group's `listManagedInstancesResults` field is set to `PAGINATED`.", "flatPath": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances", "httpMethod": "POST", "id": "compute.instanceGroupManagers.listManagedInstances", @@ -8117,7 +8127,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, @@ -8186,7 +8196,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, @@ -8601,7 +8611,7 @@ ] }, "aggregatedList": { - "description": "Retrieves the list of instance groups and sorts them by zone.", + "description": "Retrieves the list of instance groups and sorts them by zone. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/instanceGroups", "httpMethod": "GET", "id": "compute.instanceGroups.aggregatedList", @@ -8645,11 +8655,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -8833,7 +8844,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, @@ -8902,7 +8913,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, @@ -9027,7 +9038,7 @@ "instanceTemplates": { "methods": { "aggregatedList": { - "description": "Retrieves the list of all InstanceTemplates resources, regional and global, available to the specified project.", + "description": "Retrieves the list of all InstanceTemplates resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/instanceTemplates", "httpMethod": "GET", "id": "compute.instanceTemplates.aggregatedList", @@ -9071,11 +9082,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -9280,7 +9292,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -9482,7 +9494,7 @@ ] }, "aggregatedList": { - "description": "Retrieves an aggregated list of all of the instances in your project across all regions and zones. The performance of this method degrades when a filter is specified on a project that has a very large number of instances.", + "description": "Retrieves an aggregated list of all of the instances in your project across all regions and zones. The performance of this method degrades when a filter is specified on a project that has a very large number of instances. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/instances", "httpMethod": "GET", "id": "compute.instances.aggregatedList", @@ -9526,11 +9538,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -10237,7 +10250,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, @@ -10308,7 +10321,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, @@ -10330,61 +10343,11 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "removeResourcePolicies": { - "description": "Removes resource policies from an instance.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies", + "performMaintenance": { + "description": "Perform a manual maintenance on the instance.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/performMaintenance", "httpMethod": "POST", - "id": "compute.instances.removeResourcePolicies", - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "parameters": { - "instance": { - "description": "The instance name for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "type": "string" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - } - }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies", - "request": { - "$ref": "InstancesRemoveResourcePoliciesRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "reset": { - "description": "Performs a reset on the instance. This is a hard reset. The VM does not do a graceful shutdown. For more information, see Resetting an instance.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/reset", - "httpMethod": "POST", - "id": "compute.instances.reset", + "id": "compute.instances.performMaintenance", "parameterOrder": [ "project", "zone", @@ -10418,7 +10381,7 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/reset", + "path": "projects/{project}/zones/{zone}/instances/{instance}/performMaintenance", "response": { "$ref": "Operation" }, @@ -10427,171 +10390,17 @@ "https://www.googleapis.com/auth/compute" ] }, - "resume": { - "description": "Resumes an instance that was suspended using the instances().suspend method.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/resume", - "httpMethod": "POST", - "id": "compute.instances.resume", - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "parameters": { - "instance": { - "description": "Name of the instance resource to resume.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "type": "string" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - } - }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/resume", - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "sendDiagnosticInterrupt": { - "description": "Sends diagnostic interrupt to the instance.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/sendDiagnosticInterrupt", + "removeResourcePolicies": { + "description": "Removes resource policies from an instance.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies", "httpMethod": "POST", - "id": "compute.instances.sendDiagnosticInterrupt", + "id": "compute.instances.removeResourcePolicies", "parameterOrder": [ "project", "zone", "instance" ], "parameters": { - "instance": { - "description": "Name of the instance scoping this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, - "project": { - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - } - }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/sendDiagnosticInterrupt", - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "setDeletionProtection": { - "description": "Sets deletion protection on the instance.", - "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection", - "httpMethod": "POST", - "id": "compute.instances.setDeletionProtection", - "parameterOrder": [ - "project", - "zone", - "resource" - ], - "parameters": { - "deletionProtection": { - "default": "true", - "description": "Whether the resource should be protected against deletion.", - "location": "query", - "type": "boolean" - }, - "project": { - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "type": "string" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - } - }, - "path": "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection", - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "setDiskAutoDelete": { - "description": "Sets the auto-delete flag for a disk attached to an instance.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete", - "httpMethod": "POST", - "id": "compute.instances.setDiskAutoDelete", - "parameterOrder": [ - "project", - "zone", - "instance", - "autoDelete", - "deviceName" - ], - "parameters": { - "autoDelete": { - "description": "Whether to auto-delete the disk when the instance is deleted.", - "location": "query", - "required": true, - "type": "boolean" - }, - "deviceName": { - "description": "The device name of the disk to modify. Make a get() request on the instance to view currently attached disks and device names.", - "location": "query", - "pattern": "\\w[\\w.-]{0,254}", - "required": true, - "type": "string" - }, "instance": { "description": "The instance name for this request.", "location": "path", @@ -10619,65 +10428,23 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete", - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "setIamPolicy": { - "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", - "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy", - "httpMethod": "POST", - "id": "compute.instances.setIamPolicy", - "parameterOrder": [ - "project", - "zone", - "resource" - ], - "parameters": { - "project": { - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "type": "string" - }, - "resource": { - "description": "Name or id of the resource for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - } - }, - "path": "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy", + "path": "projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies", "request": { - "$ref": "ZoneSetPolicyRequest" + "$ref": "InstancesRemoveResourcePoliciesRequest" }, "response": { - "$ref": "Policy" + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] }, - "setLabels": { - "description": "Sets labels on an instance. To learn more about labels, read the Labeling Resources documentation.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setLabels", + "reset": { + "description": "Performs a reset on the instance. This is a hard reset. The VM does not do a graceful shutdown. For more information, see Resetting an instance.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/reset", "httpMethod": "POST", - "id": "compute.instances.setLabels", + "id": "compute.instances.reset", "parameterOrder": [ "project", "zone", @@ -10711,10 +10478,7 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/setLabels", - "request": { - "$ref": "InstancesSetLabelsRequest" - }, + "path": "projects/{project}/zones/{zone}/instances/{instance}/reset", "response": { "$ref": "Operation" }, @@ -10723,11 +10487,11 @@ "https://www.googleapis.com/auth/compute" ] }, - "setMachineResources": { - "description": "Changes the number and/or type of accelerator for a stopped instance to the values specified in the request.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources", + "resume": { + "description": "Resumes an instance that was suspended using the instances().suspend method.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/resume", "httpMethod": "POST", - "id": "compute.instances.setMachineResources", + "id": "compute.instances.resume", "parameterOrder": [ "project", "zone", @@ -10735,7 +10499,7 @@ ], "parameters": { "instance": { - "description": "Name of the instance scoping this request.", + "description": "Name of the instance resource to resume.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -10761,10 +10525,7 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources", - "request": { - "$ref": "InstancesSetMachineResourcesRequest" - }, + "path": "projects/{project}/zones/{zone}/instances/{instance}/resume", "response": { "$ref": "Operation" }, @@ -10773,11 +10534,11 @@ "https://www.googleapis.com/auth/compute" ] }, - "setMachineType": { - "description": "Changes the machine type for a stopped instance to the machine type specified in the request.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMachineType", + "sendDiagnosticInterrupt": { + "description": "Sends diagnostic interrupt to the instance.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/sendDiagnosticInterrupt", "httpMethod": "POST", - "id": "compute.instances.setMachineType", + "id": "compute.instances.sendDiagnosticInterrupt", "parameterOrder": [ "project", "zone", @@ -10798,11 +10559,6 @@ "required": true, "type": "string" }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - }, "zone": { "description": "The name of the zone for this request.", "location": "path", @@ -10811,35 +10567,28 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/setMachineType", - "request": { - "$ref": "InstancesSetMachineTypeRequest" - }, - "response": { - "$ref": "Operation" - }, + "path": "projects/{project}/zones/{zone}/instances/{instance}/sendDiagnosticInterrupt", "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] }, - "setMetadata": { - "description": "Sets metadata for the specified instance to the data included in the request.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMetadata", + "setDeletionProtection": { + "description": "Sets deletion protection on the instance.", + "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection", "httpMethod": "POST", - "id": "compute.instances.setMetadata", + "id": "compute.instances.setDeletionProtection", "parameterOrder": [ "project", "zone", - "instance" + "resource" ], "parameters": { - "instance": { - "description": "Name of the instance scoping this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" + "deletionProtection": { + "default": "true", + "description": "Whether the resource should be protected against deletion.", + "location": "query", + "type": "boolean" }, "project": { "description": "Project ID for this request.", @@ -10853,56 +10602,13 @@ "location": "query", "type": "string" }, - "zone": { - "description": "The name of the zone for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - } - }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/setMetadata", - "request": { - "$ref": "Metadata" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/compute" - ] - }, - "setMinCpuPlatform": { - "description": "Changes the minimum CPU platform that this instance should use. This method can only be called on a stopped instance. For more information, read Specifying a Minimum CPU Platform.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform", - "httpMethod": "POST", - "id": "compute.instances.setMinCpuPlatform", - "parameterOrder": [ - "project", - "zone", - "instance" - ], - "parameters": { - "instance": { - "description": "Name of the instance scoping this request.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, - "project": { - "description": "Project ID for this request.", - "location": "path", - "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", - "required": true, - "type": "string" - }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - }, "zone": { "description": "The name of the zone for this request.", "location": "path", @@ -10911,10 +10617,7 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform", - "request": { - "$ref": "InstancesSetMinCpuPlatformRequest" - }, + "path": "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection", "response": { "$ref": "Operation" }, @@ -10923,17 +10626,32 @@ "https://www.googleapis.com/auth/compute" ] }, - "setName": { - "description": "Sets name of an instance.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setName", + "setDiskAutoDelete": { + "description": "Sets the auto-delete flag for a disk attached to an instance.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete", "httpMethod": "POST", - "id": "compute.instances.setName", + "id": "compute.instances.setDiskAutoDelete", "parameterOrder": [ "project", "zone", - "instance" + "instance", + "autoDelete", + "deviceName" ], "parameters": { + "autoDelete": { + "description": "Whether to auto-delete the disk when the instance is deleted.", + "location": "query", + "required": true, + "type": "boolean" + }, + "deviceName": { + "description": "The device name of the disk to modify. Make a get() request on the instance to view currently attached disks and device names.", + "location": "query", + "pattern": "\\w[\\w.-]{0,254}", + "required": true, + "type": "string" + }, "instance": { "description": "The instance name for this request.", "location": "path", @@ -10961,10 +10679,7 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/setName", - "request": { - "$ref": "InstancesSetNameRequest" - }, + "path": "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete", "response": { "$ref": "Operation" }, @@ -10973,24 +10688,17 @@ "https://www.googleapis.com/auth/compute" ] }, - "setScheduling": { - "description": "Sets an instance's scheduling options. You can only call this method on a stopped instance, that is, a VM instance that is in a `TERMINATED` state. See Instance Life Cycle for more information on the possible instance states. For more information about setting scheduling options for a VM, see Set VM host maintenance policy.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setScheduling", + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", + "flatPath": "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy", "httpMethod": "POST", - "id": "compute.instances.setScheduling", + "id": "compute.instances.setIamPolicy", "parameterOrder": [ "project", "zone", - "instance" + "resource" ], "parameters": { - "instance": { - "description": "Instance name for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -10998,9 +10706,11 @@ "required": true, "type": "string" }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, "type": "string" }, "zone": { @@ -11011,23 +10721,23 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/setScheduling", + "path": "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy", "request": { - "$ref": "Scheduling" + "$ref": "ZoneSetPolicyRequest" }, "response": { - "$ref": "Operation" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute" ] }, - "setSecurityPolicy": { - "description": "Sets the Google Cloud Armor security policy for the specified instance. For more information, see Google Cloud Armor Overview", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setSecurityPolicy", + "setLabels": { + "description": "Sets labels on an instance. To learn more about labels, read the Labeling Resources documentation.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setLabels", "httpMethod": "POST", - "id": "compute.instances.setSecurityPolicy", + "id": "compute.instances.setLabels", "parameterOrder": [ "project", "zone", @@ -11035,8 +10745,9 @@ ], "parameters": { "instance": { - "description": "Name of the Instance resource to which the security policy should be set. The name should conform to RFC1035.", + "description": "Name of the instance scoping this request.", "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, @@ -11053,16 +10764,16 @@ "type": "string" }, "zone": { - "description": "Name of the zone scoping this request.", + "description": "The name of the zone for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/setSecurityPolicy", + "path": "projects/{project}/zones/{zone}/instances/{instance}/setLabels", "request": { - "$ref": "InstancesSetSecurityPolicyRequest" + "$ref": "InstancesSetLabelsRequest" }, "response": { "$ref": "Operation" @@ -11072,11 +10783,11 @@ "https://www.googleapis.com/auth/compute" ] }, - "setServiceAccount": { - "description": "Sets the service account on the instance. For more information, read Changing the service account and access scopes for an instance.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount", + "setMachineResources": { + "description": "Changes the number and/or type of accelerator for a stopped instance to the values specified in the request.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources", "httpMethod": "POST", - "id": "compute.instances.setServiceAccount", + "id": "compute.instances.setMachineResources", "parameterOrder": [ "project", "zone", @@ -11084,7 +10795,7 @@ ], "parameters": { "instance": { - "description": "Name of the instance resource to start.", + "description": "Name of the instance scoping this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -11110,9 +10821,9 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount", + "path": "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources", "request": { - "$ref": "InstancesSetServiceAccountRequest" + "$ref": "InstancesSetMachineResourcesRequest" }, "response": { "$ref": "Operation" @@ -11122,11 +10833,11 @@ "https://www.googleapis.com/auth/compute" ] }, - "setShieldedInstanceIntegrityPolicy": { - "description": "Sets the Shielded Instance integrity policy for an instance. You can only use this method on a running instance. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy", - "httpMethod": "PATCH", - "id": "compute.instances.setShieldedInstanceIntegrityPolicy", + "setMachineType": { + "description": "Changes the machine type for a stopped instance to the machine type specified in the request.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMachineType", + "httpMethod": "POST", + "id": "compute.instances.setMachineType", "parameterOrder": [ "project", "zone", @@ -11134,7 +10845,7 @@ ], "parameters": { "instance": { - "description": "Name or id of the instance scoping this request.", + "description": "Name of the instance scoping this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -11160,9 +10871,9 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy", + "path": "projects/{project}/zones/{zone}/instances/{instance}/setMachineType", "request": { - "$ref": "ShieldedInstanceIntegrityPolicy" + "$ref": "InstancesSetMachineTypeRequest" }, "response": { "$ref": "Operation" @@ -11172,11 +10883,11 @@ "https://www.googleapis.com/auth/compute" ] }, - "setTags": { - "description": "Sets network tags for the specified instance to the data included in the request.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setTags", + "setMetadata": { + "description": "Sets metadata for the specified instance to the data included in the request.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMetadata", "httpMethod": "POST", - "id": "compute.instances.setTags", + "id": "compute.instances.setMetadata", "parameterOrder": [ "project", "zone", @@ -11210,9 +10921,9 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/setTags", + "path": "projects/{project}/zones/{zone}/instances/{instance}/setMetadata", "request": { - "$ref": "Tags" + "$ref": "Metadata" }, "response": { "$ref": "Operation" @@ -11222,11 +10933,11 @@ "https://www.googleapis.com/auth/compute" ] }, - "simulateMaintenanceEvent": { - "description": "Simulates a host maintenance event on a VM. For more information, see Simulate a host maintenance event.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent", + "setMinCpuPlatform": { + "description": "Changes the minimum CPU platform that this instance should use. This method can only be called on a stopped instance. For more information, read Specifying a Minimum CPU Platform.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform", "httpMethod": "POST", - "id": "compute.instances.simulateMaintenanceEvent", + "id": "compute.instances.setMinCpuPlatform", "parameterOrder": [ "project", "zone", @@ -11260,7 +10971,10 @@ "type": "string" } }, - "path": "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent", + "path": "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform", + "request": { + "$ref": "InstancesSetMinCpuPlatformRequest" + }, "response": { "$ref": "Operation" }, @@ -11269,11 +10983,11 @@ "https://www.googleapis.com/auth/compute" ] }, - "start": { - "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.", - "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/start", + "setName": { + "description": "Sets name of an instance.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setName", "httpMethod": "POST", - "id": "compute.instances.start", + "id": "compute.instances.setName", "parameterOrder": [ "project", "zone", @@ -11281,7 +10995,358 @@ ], "parameters": { "instance": { - "description": "Name of the instance resource to start.", + "description": "The instance name for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instances/{instance}/setName", + "request": { + "$ref": "InstancesSetNameRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setScheduling": { + "description": "Sets an instance's scheduling options. You can only call this method on a stopped instance, that is, a VM instance that is in a `TERMINATED` state. See Instance Life Cycle for more information on the possible instance states. For more information about setting scheduling options for a VM, see Set VM host maintenance policy.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setScheduling", + "httpMethod": "POST", + "id": "compute.instances.setScheduling", + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "parameters": { + "instance": { + "description": "Instance name for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instances/{instance}/setScheduling", + "request": { + "$ref": "Scheduling" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setSecurityPolicy": { + "description": "Sets the Google Cloud Armor security policy for the specified instance. For more information, see Google Cloud Armor Overview", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setSecurityPolicy", + "httpMethod": "POST", + "id": "compute.instances.setSecurityPolicy", + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "parameters": { + "instance": { + "description": "Name of the Instance resource to which the security policy should be set. The name should conform to RFC1035.", + "location": "path", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "Name of the zone scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instances/{instance}/setSecurityPolicy", + "request": { + "$ref": "InstancesSetSecurityPolicyRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setServiceAccount": { + "description": "Sets the service account on the instance. For more information, read Changing the service account and access scopes for an instance.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount", + "httpMethod": "POST", + "id": "compute.instances.setServiceAccount", + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "parameters": { + "instance": { + "description": "Name of the instance resource to start.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount", + "request": { + "$ref": "InstancesSetServiceAccountRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setShieldedInstanceIntegrityPolicy": { + "description": "Sets the Shielded Instance integrity policy for an instance. You can only use this method on a running instance. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy", + "httpMethod": "PATCH", + "id": "compute.instances.setShieldedInstanceIntegrityPolicy", + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "parameters": { + "instance": { + "description": "Name or id of the instance scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy", + "request": { + "$ref": "ShieldedInstanceIntegrityPolicy" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setTags": { + "description": "Sets network tags for the specified instance to the data included in the request.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/setTags", + "httpMethod": "POST", + "id": "compute.instances.setTags", + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "parameters": { + "instance": { + "description": "Name of the instance scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instances/{instance}/setTags", + "request": { + "$ref": "Tags" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "simulateMaintenanceEvent": { + "description": "Simulates a host maintenance event on a VM. For more information, see Simulate a host maintenance event.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent", + "httpMethod": "POST", + "id": "compute.instances.simulateMaintenanceEvent", + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "parameters": { + "instance": { + "description": "Name of the instance scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "withExtendedNotifications": { + "description": "Determines whether the customers receive notifications before migration. Only applicable to SF vms.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "start": { + "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.", + "flatPath": "projects/{project}/zones/{zone}/instances/{instance}/start", + "httpMethod": "POST", + "id": "compute.instances.start", + "parameterOrder": [ + "project", + "zone", + "instance" + ], + "parameters": { + "instance": { + "description": "Name of the instance resource to start.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -11378,7 +11443,7 @@ ], "parameters": { "discardLocalSsd": { - "description": "If true, discard the contents of any attached localSSD partitions. Default value is false.", + "description": "This property is required if the instance has any attached Local SSD disks. If false, Local SSD data will be preserved when the instance is suspended. If true, the contents of any attached Local SSD disks will be discarded.", "location": "query", "type": "boolean" }, @@ -11430,7 +11495,7 @@ ], "parameters": { "discardLocalSsd": { - "description": "If true, discard the contents of any attached localSSD partitions. Default value is false.", + "description": "This property is required if the instance has any attached Local SSD disks. If false, Local SSD data will be preserved when the instance is suspended. If true, the contents of any attached Local SSD disks will be discarded.", "location": "query", "type": "boolean" }, @@ -11816,13 +11881,13 @@ } } }, - "interconnectAttachments": { + "instantSnapshots": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of interconnect attachments.", - "flatPath": "projects/{project}/aggregated/interconnectAttachments", + "description": "Retrieves an aggregated list of instantSnapshots. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/instantSnapshots", "httpMethod": "GET", - "id": "compute.interconnectAttachments.aggregatedList", + "id": "compute.instantSnapshots.aggregatedList", "parameterOrder": [ "project" ], @@ -11863,19 +11928,20 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" } }, - "path": "projects/{project}/aggregated/interconnectAttachments", + "path": "projects/{project}/aggregated/instantSnapshots", "response": { - "$ref": "InterconnectAttachmentAggregatedList" + "$ref": "InstantSnapshotAggregatedList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -11884,18 +11950,18 @@ ] }, "delete": { - "description": "Deletes the specified interconnect attachment.", - "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + "description": "Deletes the specified InstantSnapshot resource. Keep in mind that deleting a single instantSnapshot might not necessarily delete all the data on that instantSnapshot. If any data on the instantSnapshot that is marked for deletion is needed for subsequent instantSnapshots, the data will be moved to the next corresponding instantSnapshot. For more information, see Deleting instantSnapshots.", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{instantSnapshot}", "httpMethod": "DELETE", - "id": "compute.interconnectAttachments.delete", + "id": "compute.instantSnapshots.delete", "parameterOrder": [ "project", - "region", - "interconnectAttachment" + "zone", + "instantSnapshot" ], "parameters": { - "interconnectAttachment": { - "description": "Name of the interconnect attachment to delete.", + "instantSnapshot": { + "description": "Name of the InstantSnapshot resource to delete.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -11908,20 +11974,20 @@ "required": true, "type": "string" }, - "region": { - "description": "Name of the region for this request.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", - "required": true, - "type": "string" - }, "requestId": { "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" } }, - "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + "path": "projects/{project}/zones/{zone}/instantSnapshots/{instantSnapshot}", "response": { "$ref": "Operation" }, @@ -11931,18 +11997,18 @@ ] }, "get": { - "description": "Returns the specified interconnect attachment.", - "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + "description": "Returns the specified InstantSnapshot resource in the specified zone.", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{instantSnapshot}", "httpMethod": "GET", - "id": "compute.interconnectAttachments.get", + "id": "compute.instantSnapshots.get", "parameterOrder": [ "project", - "region", - "interconnectAttachment" + "zone", + "instantSnapshot" ], "parameters": { - "interconnectAttachment": { - "description": "Name of the interconnect attachment to return.", + "instantSnapshot": { + "description": "Name of the InstantSnapshot resource to return.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, @@ -11955,17 +12021,17 @@ "required": true, "type": "string" }, - "region": { - "description": "Name of the region for this request.", + "zone": { + "description": "The name of the zone for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + "path": "projects/{project}/zones/{zone}/instantSnapshots/{instantSnapshot}", "response": { - "$ref": "InterconnectAttachment" + "$ref": "InstantSnapshot" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -11973,16 +12039,23 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "insert": { - "description": "Creates an InterconnectAttachment in the specified project using the data included in the request.", - "flatPath": "projects/{project}/regions/{region}/interconnectAttachments", - "httpMethod": "POST", - "id": "compute.interconnectAttachments.insert", + "getIamPolicy": { + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/getIamPolicy", + "httpMethod": "GET", + "id": "compute.instantSnapshots.getIamPolicy", "parameterOrder": [ "project", - "region" + "zone", + "resource" ], "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "format": "int32", + "location": "query", + "type": "integer" + }, "project": { "description": "Project ID for this request.", "location": "path", @@ -11990,27 +12063,64 @@ "required": true, "type": "string" }, - "region": { - "description": "Name of the region for this request.", + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/getIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates an instant snapshot in the specified zone.", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshots", + "httpMethod": "POST", + "id": "compute.instantSnapshots.insert", + "parameterOrder": [ + "project", + "zone" + ], + "parameters": { + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" }, "requestId": { "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", "location": "query", "type": "string" }, - "validateOnly": { - "description": "If true, the request will not be committed.", - "location": "query", - "type": "boolean" + "zone": { + "description": "Name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" } }, - "path": "projects/{project}/regions/{region}/interconnectAttachments", + "path": "projects/{project}/zones/{zone}/instantSnapshots", "request": { - "$ref": "InterconnectAttachment" + "$ref": "InstantSnapshot" }, "response": { "$ref": "Operation" @@ -12021,13 +12131,13 @@ ] }, "list": { - "description": "Retrieves the list of interconnect attachments contained within the specified region.", - "flatPath": "projects/{project}/regions/{region}/interconnectAttachments", + "description": "Retrieves the list of InstantSnapshot resources contained within the specified zone.", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshots", "httpMethod": "GET", - "id": "compute.interconnectAttachments.list", + "id": "compute.instantSnapshots.list", "parameterOrder": [ "project", - "region" + "zone" ], "parameters": { "filter": { @@ -12060,22 +12170,22 @@ "required": true, "type": "string" }, - "region": { - "description": "Name of the region for this request.", + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "zone": { + "description": "The name of the zone for this request.", "location": "path", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "required": true, "type": "string" - }, - "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", - "location": "query", - "type": "boolean" } }, - "path": "projects/{project}/regions/{region}/interconnectAttachments", + "path": "projects/{project}/zones/{zone}/instantSnapshots", "response": { - "$ref": "InterconnectAttachmentList" + "$ref": "InstantSnapshotList" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -12083,24 +12193,17 @@ "https://www.googleapis.com/auth/compute.readonly" ] }, - "patch": { - "description": "Updates the specified interconnect attachment with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", - "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", - "httpMethod": "PATCH", - "id": "compute.interconnectAttachments.patch", + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.instantSnapshots.setIamPolicy", "parameterOrder": [ "project", - "region", - "interconnectAttachment" + "zone", + "resource" ], "parameters": { - "interconnectAttachment": { - "description": "Name of the interconnect attachment to patch.", - "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", - "required": true, - "type": "string" - }, "project": { "description": "Project ID for this request.", "location": "path", @@ -12108,25 +12211,443 @@ "required": true, "type": "string" }, - "region": { - "description": "Name of the region scoping this request.", + "resource": { + "description": "Name or id of the resource for this request.", "location": "path", - "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", "required": true, "type": "string" }, - "requestId": { - "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", - "location": "query", + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, "type": "string" } }, - "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + "path": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/setIamPolicy", "request": { - "$ref": "InterconnectAttachment" + "$ref": "ZoneSetPolicyRequest" }, "response": { - "$ref": "Operation" + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setLabels": { + "description": "Sets the labels on a instantSnapshot in the given zone. To learn more about labels, read the Labeling Resources documentation.", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/setLabels", + "httpMethod": "POST", + "id": "compute.instantSnapshots.setLabels", + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "parameters": { + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/setLabels", + "request": { + "$ref": "ZoneSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.instantSnapshots.testIamPermissions", + "parameterOrder": [ + "project", + "zone", + "resource" + ], + "parameters": { + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "zone": { + "description": "The name of the zone for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/zones/{zone}/instantSnapshots/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, + "interconnectAttachments": { + "methods": { + "aggregatedList": { + "description": "Retrieves an aggregated list of interconnect attachments. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", + "flatPath": "projects/{project}/aggregated/interconnectAttachments", + "httpMethod": "GET", + "id": "compute.interconnectAttachments.aggregatedList", + "parameterOrder": [ + "project" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "includeAllScopes": { + "description": "Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.", + "location": "query", + "type": "boolean" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "location": "query", + "minimum": "0", + "type": "integer" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + }, + "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/aggregated/interconnectAttachments", + "response": { + "$ref": "InterconnectAttachmentAggregatedList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "delete": { + "description": "Deletes the specified interconnect attachment.", + "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + "httpMethod": "DELETE", + "id": "compute.interconnectAttachments.delete", + "parameterOrder": [ + "project", + "region", + "interconnectAttachment" + ], + "parameters": { + "interconnectAttachment": { + "description": "Name of the interconnect attachment to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified interconnect attachment.", + "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + "httpMethod": "GET", + "id": "compute.interconnectAttachments.get", + "parameterOrder": [ + "project", + "region", + "interconnectAttachment" + ], + "parameters": { + "interconnectAttachment": { + "description": "Name of the interconnect attachment to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + "response": { + "$ref": "InterconnectAttachment" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates an InterconnectAttachment in the specified project using the data included in the request.", + "flatPath": "projects/{project}/regions/{region}/interconnectAttachments", + "httpMethod": "POST", + "id": "compute.interconnectAttachments.insert", + "parameterOrder": [ + "project", + "region" + ], + "parameters": { + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "validateOnly": { + "description": "If true, the request will not be committed.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/interconnectAttachments", + "request": { + "$ref": "InterconnectAttachment" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves the list of interconnect attachments contained within the specified region.", + "flatPath": "projects/{project}/regions/{region}/interconnectAttachments", + "httpMethod": "GET", + "id": "compute.interconnectAttachments.list", + "parameterOrder": [ + "project", + "region" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "location": "query", + "minimum": "0", + "type": "integer" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/interconnectAttachments", + "response": { + "$ref": "InterconnectAttachmentList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "patch": { + "description": "Updates the specified interconnect attachment with the data included in the request. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.", + "flatPath": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + "httpMethod": "PATCH", + "id": "compute.interconnectAttachments.patch", + "parameterOrder": [ + "project", + "region", + "interconnectAttachment" + ], + "parameters": { + "interconnectAttachment": { + "description": "Name of the interconnect attachment to patch.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region scoping this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}", + "request": { + "$ref": "InterconnectAttachment" + }, + "response": { + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform", @@ -12262,7 +12783,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -12356,7 +12877,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -12593,7 +13114,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -12960,7 +13481,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -13248,7 +13769,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -13343,7 +13864,7 @@ "machineTypes": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of machine types.", + "description": "Retrieves an aggregated list of machine types. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/machineTypes", "httpMethod": "GET", "id": "compute.machineTypes.aggregatedList", @@ -13387,11 +13908,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -13491,7 +14013,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, @@ -13518,7 +14040,7 @@ "networkAttachments": { "methods": { "aggregatedList": { - "description": "Retrieves the list of all NetworkAttachment resources, regional and global, available to the specified project.", + "description": "Retrieves the list of all NetworkAttachment resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/networkAttachments", "httpMethod": "GET", "id": "compute.networkAttachments.aggregatedList", @@ -13562,11 +14084,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -13811,7 +14334,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -13972,7 +14495,7 @@ "networkEdgeSecurityServices": { "methods": { "aggregatedList": { - "description": "Retrieves the list of all NetworkEdgeSecurityService resources available to the specified project.", + "description": "Retrieves the list of all NetworkEdgeSecurityService resources available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/networkEdgeSecurityServices", "httpMethod": "GET", "id": "compute.networkEdgeSecurityServices.aggregatedList", @@ -14016,11 +14539,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -14239,7 +14763,7 @@ "networkEndpointGroups": { "methods": { "aggregatedList": { - "description": "Retrieves the list of network endpoint groups and sorts them by zone.", + "description": "Retrieves the list of network endpoint groups and sorts them by zone. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/networkEndpointGroups", "httpMethod": "GET", "id": "compute.networkEndpointGroups.aggregatedList", @@ -14283,11 +14807,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -14567,7 +15092,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, @@ -14636,7 +15161,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, @@ -15125,7 +15650,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -15623,7 +16148,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -15709,7 +16234,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -15944,7 +16469,7 @@ ] }, "aggregatedList": { - "description": "Retrieves an aggregated list of node groups. Note: use nodeGroups.listNodes for more details about each group.", + "description": "Retrieves an aggregated list of node groups. Note: use nodeGroups.listNodes for more details about each group. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/nodeGroups", "httpMethod": "GET", "id": "compute.nodeGroups.aggregatedList", @@ -15988,11 +16513,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -16288,7 +16814,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, @@ -16359,7 +16885,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, @@ -16627,7 +17153,7 @@ "nodeTemplates": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of node templates.", + "description": "Retrieves an aggregated list of node templates. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/nodeTemplates", "httpMethod": "GET", "id": "compute.nodeTemplates.aggregatedList", @@ -16671,11 +17197,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -16920,7 +17447,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -17031,7 +17558,7 @@ "nodeTypes": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of node types.", + "description": "Retrieves an aggregated list of node types. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/nodeTypes", "httpMethod": "GET", "id": "compute.nodeTypes.aggregatedList", @@ -17075,11 +17602,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -17179,7 +17707,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, @@ -17206,7 +17734,7 @@ "packetMirrorings": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of packetMirrorings.", + "description": "Retrieves an aggregated list of packetMirrorings. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/packetMirrorings", "httpMethod": "GET", "id": "compute.packetMirrorings.aggregatedList", @@ -17250,11 +17778,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -17450,7 +17979,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -17788,7 +18317,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -17842,7 +18371,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -17928,6 +18457,40 @@ "https://www.googleapis.com/auth/compute" ] }, + "setCloudArmorTier": { + "description": "Sets the Cloud Armor tier of the project. To set ENTERPRISE or above the billing account of the project must be subscribed to Cloud Armor Enterprise. See Subscribing to Cloud Armor Enterprise for more information.", + "flatPath": "projects/{project}/setCloudArmorTier", + "httpMethod": "POST", + "id": "compute.projects.setCloudArmorTier", + "parameterOrder": [ + "project" + ], + "parameters": { + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/setCloudArmorTier", + "request": { + "$ref": "ProjectsSetCloudArmorTierRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, "setCommonInstanceMetadata": { "description": "Sets metadata common to all instances within the specified project using the data included in the request.", "flatPath": "projects/{project}/setCommonInstanceMetadata", @@ -18223,7 +18786,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -18323,7 +18886,7 @@ "publicDelegatedPrefixes": { "methods": { "aggregatedList": { - "description": "Lists all PublicDelegatedPrefix resources owned by the specific project across all scopes.", + "description": "Lists all PublicDelegatedPrefix resources owned by the specific project across all scopes. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/publicDelegatedPrefixes", "httpMethod": "GET", "id": "compute.publicDelegatedPrefixes.aggregatedList", @@ -18367,11 +18930,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -18612,7 +19176,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -18906,7 +19470,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -19295,7 +19859,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -19357,7 +19921,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -19617,7 +20181,7 @@ "regionCommitments": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of commitments by region.", + "description": "Retrieves an aggregated list of commitments by region. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/commitments", "httpMethod": "GET", "id": "compute.regionCommitments.aggregatedList", @@ -19661,11 +20225,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -19814,7 +20379,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -19985,7 +20550,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -20379,7 +20944,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -21017,7 +21582,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -21265,7 +21830,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -21788,7 +22353,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -21857,7 +22422,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -21873,7 +22438,7 @@ ] }, "listManagedInstances": { - "description": "Lists the instances in the managed instance group and instances that are scheduled to be created. The list includes any current actions that the group has scheduled for its instances. The orderBy query parameter is not supported. The `pageToken` query parameter is supported only in the alpha and beta API and only if the group's `listManagedInstancesResults` field is set to `PAGINATED`.", + "description": "Lists the instances in the managed instance group and instances that are scheduled to be created. The list includes any current actions that the group has scheduled for its instances. The orderBy query parameter is not supported. The `pageToken` query parameter is supported only if the group's `listManagedInstancesResults` field is set to `PAGINATED`.", "flatPath": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances", "httpMethod": "POST", "id": "compute.regionInstanceGroupManagers.listManagedInstances", @@ -21926,7 +22491,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -21995,7 +22560,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -22444,7 +23009,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -22513,7 +23078,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -22763,7 +23328,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -22826,6 +23391,395 @@ } } }, + "regionInstantSnapshots": { + "methods": { + "delete": { + "description": "Deletes the specified InstantSnapshot resource. Keep in mind that deleting a single instantSnapshot might not necessarily delete all the data on that instantSnapshot. If any data on the instantSnapshot that is marked for deletion is needed for subsequent instantSnapshots, the data will be moved to the next corresponding instantSnapshot. For more information, see Deleting instantSnapshots.", + "flatPath": "projects/{project}/regions/{region}/instantSnapshots/{instantSnapshot}", + "httpMethod": "DELETE", + "id": "compute.regionInstantSnapshots.delete", + "parameterOrder": [ + "project", + "region", + "instantSnapshot" + ], + "parameters": { + "instantSnapshot": { + "description": "Name of the InstantSnapshot resource to delete.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/instantSnapshots/{instantSnapshot}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "get": { + "description": "Returns the specified InstantSnapshot resource in the specified region.", + "flatPath": "projects/{project}/regions/{region}/instantSnapshots/{instantSnapshot}", + "httpMethod": "GET", + "id": "compute.regionInstantSnapshots.get", + "parameterOrder": [ + "project", + "region", + "instantSnapshot" + ], + "parameters": { + "instantSnapshot": { + "description": "Name of the InstantSnapshot resource to return.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/instantSnapshots/{instantSnapshot}", + "response": { + "$ref": "InstantSnapshot" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "getIamPolicy": { + "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.", + "flatPath": "projects/{project}/regions/{region}/instantSnapshots/{resource}/getIamPolicy", + "httpMethod": "GET", + "id": "compute.regionInstantSnapshots.getIamPolicy", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "parameters": { + "optionsRequestedPolicyVersion": { + "description": "Requested IAM Policy version.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/instantSnapshots/{resource}/getIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "insert": { + "description": "Creates an instant snapshot in the specified region.", + "flatPath": "projects/{project}/regions/{region}/instantSnapshots", + "httpMethod": "POST", + "id": "compute.regionInstantSnapshots.insert", + "parameterOrder": [ + "project", + "region" + ], + "parameters": { + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "region": { + "description": "Name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/instantSnapshots", + "request": { + "$ref": "InstantSnapshot" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "list": { + "description": "Retrieves the list of InstantSnapshot resources contained within the specified region.", + "flatPath": "projects/{project}/regions/{region}/instantSnapshots", + "httpMethod": "GET", + "id": "compute.regionInstantSnapshots.list", + "parameterOrder": [ + "project", + "region" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "location": "query", + "minimum": "0", + "type": "integer" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/instantSnapshots", + "response": { + "$ref": "InstantSnapshotList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + }, + "setIamPolicy": { + "description": "Sets the access control policy on the specified resource. Replaces any existing policy.", + "flatPath": "projects/{project}/regions/{region}/instantSnapshots/{resource}/setIamPolicy", + "httpMethod": "POST", + "id": "compute.regionInstantSnapshots.setIamPolicy", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "parameters": { + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/instantSnapshots/{resource}/setIamPolicy", + "request": { + "$ref": "RegionSetPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "setLabels": { + "description": "Sets the labels on a instantSnapshot in the given region. To learn more about labels, read the Labeling Resources documentation.", + "flatPath": "projects/{project}/regions/{region}/instantSnapshots/{resource}/setLabels", + "httpMethod": "POST", + "id": "compute.regionInstantSnapshots.setLabels", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "parameters": { + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "region": { + "description": "The region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "requestId": { + "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported ( 00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/instantSnapshots/{resource}/setLabels", + "request": { + "$ref": "RegionSetLabelsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource.", + "flatPath": "projects/{project}/regions/{region}/instantSnapshots/{resource}/testIamPermissions", + "httpMethod": "POST", + "id": "compute.regionInstantSnapshots.testIamPermissions", + "parameterOrder": [ + "project", + "region", + "resource" + ], + "parameters": { + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "region": { + "description": "The name of the region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "resource": { + "description": "Name or id of the resource for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}", + "required": true, + "type": "string" + } + }, + "path": "projects/{project}/regions/{region}/instantSnapshots/{resource}/testIamPermissions", + "request": { + "$ref": "TestPermissionsRequest" + }, + "response": { + "$ref": "TestPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, "regionNetworkEndpointGroups": { "methods": { "attachNetworkEndpoints": { @@ -23098,7 +24052,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -23167,7 +24121,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -23723,7 +24677,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -24224,7 +25178,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -24373,7 +25327,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -24719,7 +25673,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -25084,7 +26038,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -25281,7 +26235,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -25344,7 +26298,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -25592,7 +26546,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -25841,7 +26795,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -26190,7 +27144,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -26389,7 +27343,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -26551,6 +27505,73 @@ } } }, + "regionZones": { + "methods": { + "list": { + "description": "Retrieves the list of Zone resources under the specific region available to the specified project.", + "flatPath": "projects/{project}/regions/{region}/zones", + "httpMethod": "GET", + "id": "compute.regionZones.list", + "parameterOrder": [ + "project", + "region" + ], + "parameters": { + "filter": { + "description": "A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request. If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or `:`. For example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`. The `:*` comparison can be used to test whether a key has been defined. For example, to find all objects with `owner` label use: ``` labels.owner:* ``` You can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ``` If you want to use a regular expression, use the `eq` (equal) or `ne` (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples: `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` `fieldname eq \"double quoted literal\"` `(fieldname1 eq literal) (fieldname2 ne \"literal\")` The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field. For example, to filter for instances that do not end with name \"instance\", you would use `name ne .*instance`. You cannot combine constraints on multiple fields using regular expressions.", + "location": "query", + "type": "string" + }, + "maxResults": { + "default": "500", + "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)", + "format": "uint32", + "location": "query", + "minimum": "0", + "type": "integer" + }, + "orderBy": { + "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name. You can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first. Currently, only sorting by `name` or `creationTimestamp desc` is supported.", + "location": "query", + "type": "string" + }, + "pageToken": { + "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.", + "location": "query", + "type": "string" + }, + "project": { + "description": "Project ID for this request.", + "location": "path", + "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))", + "required": true, + "type": "string" + }, + "region": { + "description": "Region for this request.", + "location": "path", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "required": true, + "type": "string" + }, + "returnPartialSuccess": { + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", + "location": "query", + "type": "boolean" + } + }, + "path": "projects/{project}/regions/{region}/zones", + "response": { + "$ref": "ZoneList" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/compute", + "https://www.googleapis.com/auth/compute.readonly" + ] + } + } + }, "regions": { "methods": { "get": { @@ -26628,7 +27649,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -26648,7 +27669,7 @@ "reservations": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of reservations.", + "description": "Retrieves an aggregated list of reservations. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/reservations", "httpMethod": "GET", "id": "compute.reservations.aggregatedList", @@ -26692,11 +27713,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -26934,7 +27956,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, @@ -27163,7 +28185,7 @@ "resourcePolicies": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of resource policies.", + "description": "Retrieves an aggregated list of resource policies. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/resourcePolicies", "httpMethod": "GET", "id": "compute.resourcePolicies.aggregatedList", @@ -27207,11 +28229,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -27456,7 +28479,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -27623,7 +28646,7 @@ "routers": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of routers.", + "description": "Retrieves an aggregated list of routers. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/routers", "httpMethod": "GET", "id": "compute.routers.aggregatedList", @@ -27667,11 +28690,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -27878,7 +28902,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, @@ -28033,7 +29057,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -28346,7 +29370,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -28408,7 +29432,7 @@ ] }, "aggregatedList": { - "description": "Retrieves the list of all SecurityPolicy resources, regional and global, available to the specified project.", + "description": "Retrieves the list of all SecurityPolicy resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/securityPolicies", "httpMethod": "GET", "id": "compute.securityPolicies.aggregatedList", @@ -28452,11 +29476,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -28666,7 +29691,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -28721,7 +29746,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -28920,7 +29945,7 @@ "serviceAttachments": { "methods": { "aggregatedList": { - "description": "Retrieves the list of all ServiceAttachment resources, regional and global, available to the specified project.", + "description": "Retrieves the list of all ServiceAttachment resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/serviceAttachments", "httpMethod": "GET", "id": "compute.serviceAttachments.aggregatedList", @@ -28964,11 +29989,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -29213,7 +30239,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -29631,7 +30657,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -29763,7 +30789,7 @@ "sslCertificates": { "methods": { "aggregatedList": { - "description": "Retrieves the list of all SslCertificate resources, regional and global, available to the specified project.", + "description": "Retrieves the list of all SslCertificate resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/sslCertificates", "httpMethod": "GET", "id": "compute.sslCertificates.aggregatedList", @@ -29807,11 +30833,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -29975,7 +31002,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -29995,7 +31022,7 @@ "sslPolicies": { "methods": { "aggregatedList": { - "description": "Retrieves the list of all SslPolicy resources, regional and global, available to the specified project.", + "description": "Retrieves the list of all SslPolicy resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/sslPolicies", "httpMethod": "GET", "id": "compute.sslPolicies.aggregatedList", @@ -30039,11 +31066,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -30205,7 +31233,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -30260,7 +31288,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -30321,7 +31349,7 @@ "subnetworks": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of subnetworks.", + "description": "Retrieves an aggregated list of subnetworks. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/subnetworks", "httpMethod": "GET", "id": "compute.subnetworks.aggregatedList", @@ -30365,11 +31393,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -30664,7 +31693,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -30719,7 +31748,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -31083,7 +32112,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -31145,7 +32174,7 @@ "targetHttpProxies": { "methods": { "aggregatedList": { - "description": "Retrieves the list of all TargetHttpProxy resources, regional and global, available to the specified project.", + "description": "Retrieves the list of all TargetHttpProxy resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/targetHttpProxies", "httpMethod": "GET", "id": "compute.targetHttpProxies.aggregatedList", @@ -31189,11 +32218,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -31357,7 +32387,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -31461,7 +32491,7 @@ "targetHttpsProxies": { "methods": { "aggregatedList": { - "description": "Retrieves the list of all TargetHttpsProxy resources, regional and global, available to the specified project.", + "description": "Retrieves the list of all TargetHttpsProxy resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/targetHttpsProxies", "httpMethod": "GET", "id": "compute.targetHttpsProxies.aggregatedList", @@ -31505,11 +32535,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -31673,7 +32704,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -31942,7 +32973,7 @@ "targetInstances": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of target instances.", + "description": "Retrieves an aggregated list of target instances. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/targetInstances", "httpMethod": "GET", "id": "compute.targetInstances.aggregatedList", @@ -31986,11 +33017,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -32179,7 +33211,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, @@ -32355,7 +33387,7 @@ ] }, "aggregatedList": { - "description": "Retrieves an aggregated list of target pools.", + "description": "Retrieves an aggregated list of target pools. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/targetPools", "httpMethod": "GET", "id": "compute.targetPools.aggregatedList", @@ -32399,11 +33431,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -32645,7 +33678,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -33017,7 +34050,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -33200,7 +34233,7 @@ ] }, "setSslPolicy": { - "description": "Sets the SSL policy for TargetSslProxy. The SSL policy specifies the server-side support for SSL features. This affects connections between clients and the SSL proxy load balancer. They do not affect the connection between the load balancer and the backends.", + "description": "Sets the SSL policy for TargetSslProxy. The SSL policy specifies the server-side support for SSL features. This affects connections between clients and the load balancer. They do not affect the connection between the load balancer and the backends.", "flatPath": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy", "httpMethod": "POST", "id": "compute.targetSslProxies.setSslPolicy", @@ -33245,7 +34278,7 @@ "targetTcpProxies": { "methods": { "aggregatedList": { - "description": "Retrieves the list of all TargetTcpProxy resources, regional and global, available to the specified project.", + "description": "Retrieves the list of all TargetTcpProxy resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/targetTcpProxies", "httpMethod": "GET", "id": "compute.targetTcpProxies.aggregatedList", @@ -33289,11 +34322,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -33457,7 +34491,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -33561,7 +34595,7 @@ "targetVpnGateways": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of target VPN gateways.", + "description": "Retrieves an aggregated list of target VPN gateways. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/targetVpnGateways", "httpMethod": "GET", "id": "compute.targetVpnGateways.aggregatedList", @@ -33605,11 +34639,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -33805,7 +34840,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -33875,7 +34910,7 @@ "urlMaps": { "methods": { "aggregatedList": { - "description": "Retrieves the list of all UrlMap resources, regional and global, available to the specified project.", + "description": "Retrieves the list of all UrlMap resources, regional and global, available to the specified project. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/urlMaps", "httpMethod": "GET", "id": "compute.urlMaps.aggregatedList", @@ -33919,11 +34954,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -34129,7 +35165,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -34270,7 +35306,7 @@ "vpnGateways": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of VPN gateways.", + "description": "Retrieves an aggregated list of VPN gateways. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/vpnGateways", "httpMethod": "GET", "id": "compute.vpnGateways.aggregatedList", @@ -34314,11 +35350,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -34557,7 +35594,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -34673,7 +35710,7 @@ "vpnTunnels": { "methods": { "aggregatedList": { - "description": "Retrieves an aggregated list of VPN tunnels.", + "description": "Retrieves an aggregated list of VPN tunnels. To prevent failure, Google recommends that you set the `returnPartialSuccess` parameter to `true`.", "flatPath": "projects/{project}/aggregated/vpnTunnels", "httpMethod": "GET", "id": "compute.vpnTunnels.aggregatedList", @@ -34717,11 +35754,12 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, "serviceProjectNumber": { + "description": "The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.", "format": "int64", "location": "query", "type": "string" @@ -34917,7 +35955,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -35109,7 +36147,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" }, @@ -35253,7 +36291,7 @@ "type": "string" }, "returnPartialSuccess": { - "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.", + "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false. For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.", "location": "query", "type": "boolean" } @@ -36530,6 +37568,80 @@ }, "type": "object" }, + "AllocationAggregateReservation": { + "description": "This reservation type is specified by total resource amounts (e.g. total count of CPUs) and can account for multiple instance SKUs. In other words, one can create instances of varying shapes against this reservation.", + "id": "AllocationAggregateReservation", + "properties": { + "inUseResources": { + "description": "[Output only] List of resources currently in use.", + "items": { + "$ref": "AllocationAggregateReservationReservedResourceInfo" + }, + "type": "array" + }, + "reservedResources": { + "description": "List of reserved resources (CPUs, memory, accelerators).", + "items": { + "$ref": "AllocationAggregateReservationReservedResourceInfo" + }, + "type": "array" + }, + "vmFamily": { + "description": "The VM family that all instances scheduled against this reservation must belong to.", + "enum": [ + "VM_FAMILY_CLOUD_TPU_LITE_DEVICE_CT5L", + "VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP", + "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + }, + "workloadType": { + "description": "The workload type of the instances that will target this reservation.", + "enum": [ + "BATCH", + "SERVING", + "UNSPECIFIED" + ], + "enumDescriptions": [ + "Reserved resources will be optimized for BATCH workloads, such as ML training.", + "Reserved resources will be optimized for SERVING workloads, such as ML inference.", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "AllocationAggregateReservationReservedResourceInfo": { + "id": "AllocationAggregateReservationReservedResourceInfo", + "properties": { + "accelerator": { + "$ref": "AllocationAggregateReservationReservedResourceInfoAccelerator", + "description": "Properties of accelerator resources in this reservation." + } + }, + "type": "object" + }, + "AllocationAggregateReservationReservedResourceInfoAccelerator": { + "id": "AllocationAggregateReservationReservedResourceInfoAccelerator", + "properties": { + "acceleratorCount": { + "description": "Number of accelerators of specified type.", + "format": "int32", + "type": "integer" + }, + "acceleratorType": { + "description": "Full or partial URL to accelerator type. e.g. \"projects/{PROJECT}/zones/{ZONE}/acceleratorTypes/ct4l\"", + "type": "string" + } + }, + "type": "object" + }, "AllocationResourceStatus": { "description": "[Output Only] Contains output only fields.", "id": "AllocationResourceStatus", @@ -36803,6 +37915,10 @@ "description": "Specifies the disk type to use to create the instance. If not specified, the default is pd-standard, specified using the full URL. For example: https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/pd-standard For a full list of acceptable values, see Persistent disk types. If you specify this field when creating a VM, you can provide either the full or partial URL. For example, the following values are valid: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /diskTypes/diskType - projects/project/zones/zone/diskTypes/diskType - zones/zone/diskTypes/diskType If you specify this field when creating or updating an instance template or all-instances configuration, specify the type of the disk, not the URL. For example: pd-standard.", "type": "string" }, + "enableConfidentialCompute": { + "description": "Whether this disk is using confidential compute mode.", + "type": "boolean" + }, "labels": { "additionalProperties": { "type": "string" @@ -36837,7 +37953,7 @@ "type": "string" }, "provisionedThroughput": { - "description": "Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. Values must be between 1 and 7,124.", + "description": "Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. Values must greater than or equal to 1.", "format": "int64", "type": "string" }, @@ -37814,6 +38930,20 @@ "description": "Optional parameter to define a target capacity for the UTILIZATION balancing mode. The valid range is [0.0, 1.0]. For usage guidelines, see Utilization balancing mode.", "format": "float", "type": "number" + }, + "preference": { + "description": "This field indicates whether this backend should be fully utilized before sending traffic to backends with default preference. The possible values are: - PREFERRED: Backends with this preference level will be filled up to their capacity limits first, based on RTT. - DEFAULT: If preferred backends don't have enough capacity, backends in this layer would be used and traffic would be assigned based on the load balancing algorithm you use. This is the default ", + "enum": [ + "DEFAULT", + "PREFERENCE_UNSPECIFIED", + "PREFERRED" + ], + "enumDescriptions": [ + "No preference.", + "If preference is unspecified, we set it to the DEFAULT value", + "Traffic will be sent to this backend first." + ], + "type": "string" } }, "type": "object" @@ -38174,7 +39304,7 @@ "id": "BackendService", "properties": { "affinityCookieTtlSec": { - "description": "Lifetime of cookies in seconds. This setting is applicable to external and internal HTTP(S) load balancers and Traffic Director and requires GENERATED_COOKIE or HTTP_COOKIE session affinity. If set to 0, the cookie is non-persistent and lasts only until the end of the browser session (or equivalent). The maximum allowed value is two weeks (1,209,600). Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", + "description": "Lifetime of cookies in seconds. This setting is applicable to Application Load Balancers and Traffic Director and requires GENERATED_COOKIE or HTTP_COOKIE session affinity. If set to 0, the cookie is non-persistent and lasts only until the end of the browser session (or equivalent). The maximum allowed value is two weeks (1,209,600). Not supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true.", "format": "int32", "type": "integer" }, @@ -38209,7 +39339,7 @@ }, "connectionTrackingPolicy": { "$ref": "BackendServiceConnectionTrackingPolicy", - "description": "Connection Tracking configuration for this BackendService. Connection tracking policy settings are only available for Network Load Balancing and Internal TCP/UDP Load Balancing." + "description": "Connection Tracking configuration for this BackendService. Connection tracking policy settings are only available for external passthrough Network Load Balancers and internal passthrough Network Load Balancers." }, "consistentHash": { "$ref": "ConsistentHashLoadBalancerSettings", @@ -38242,12 +39372,12 @@ "type": "string" }, "enableCDN": { - "description": "If true, enables Cloud CDN for the backend service of an external HTTP(S) load balancer.", + "description": "If true, enables Cloud CDN for the backend service of a global external Application Load Balancer.", "type": "boolean" }, "failoverPolicy": { "$ref": "BackendServiceFailoverPolicy", - "description": "Requires at least one backend instance group to be defined as a backup (failover) backend. For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview)." + "description": "Requires at least one backend instance group to be defined as a backup (failover) backend. For load balancers that have configurable failover: [Internal passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview)." }, "fingerprint": { "description": "Fingerprint of this resource. A hash of the contents stored in this object. This field is used in optimistic locking. This field will be ignored when inserting a BackendService. An up-to-date fingerprint must be provided in order to update the BackendService, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a BackendService.", @@ -38263,7 +39393,7 @@ }, "iap": { "$ref": "BackendServiceIAP", - "description": "The configurations for Identity-Aware Proxy on this resource. Not available for Internal TCP/UDP Load Balancing and Network Load Balancing." + "description": "The configurations for Identity-Aware Proxy on this resource. Not available for internal passthrough Network Load Balancers and external passthrough Network Load Balancers." }, "id": { "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", @@ -38286,10 +39416,10 @@ "INVALID_LOAD_BALANCING_SCHEME" ], "enumDescriptions": [ - "Signifies that this will be used for external HTTP(S), SSL Proxy, TCP Proxy, or Network Load Balancing", - "Signifies that this will be used for External Managed HTTP(S) Load Balancing.", - "Signifies that this will be used for Internal TCP/UDP Load Balancing.", - "Signifies that this will be used for Internal HTTP(S) Load Balancing.", + "Signifies that this will be used for classic Application Load Balancers, global external proxy Network Load Balancers, or external passthrough Network Load Balancers.", + "Signifies that this will be used for global external Application Load Balancers, regional external Application Load Balancers, or regional external proxy Network Load Balancers.", + "Signifies that this will be used for internal passthrough Network Load Balancers.", + "Signifies that this will be used for internal Application Load Balancers.", "Signifies that this will be used by Traffic Director.", "" ], @@ -38356,12 +39486,12 @@ }, "port": { "deprecated": true, - "description": "Deprecated in favor of portName. The TCP port to connect on the backend. The default value is 80. For Internal TCP/UDP Load Balancing and Network Load Balancing, omit port.", + "description": "Deprecated in favor of portName. The TCP port to connect on the backend. The default value is 80. For internal passthrough Network Load Balancers and external passthrough Network Load Balancers, omit port.", "format": "int32", "type": "integer" }, "portName": { - "description": "A named port on a backend instance group representing the port for communication to the backend VMs in that group. The named port must be [defined on each backend instance group](https://cloud.google.com/load-balancing/docs/backend-service#named_ports). This parameter has no meaning if the backends are NEGs. For Internal TCP/UDP Load Balancing and Network Load Balancing, omit port_name.", + "description": "A named port on a backend instance group representing the port for communication to the backend VMs in that group. The named port must be [defined on each backend instance group](https://cloud.google.com/load-balancing/docs/backend-service#named_ports). This parameter has no meaning if the backends are NEGs. For internal passthrough Network Load Balancers and external passthrough Network Load Balancers, omit port_name.", "type": "string" }, "protocol": { @@ -38411,6 +39541,10 @@ }, "type": "array" }, + "serviceLbPolicy": { + "description": "URL to networkservices.ServiceLbPolicy resource. Can only be set if load balancing scheme is EXTERNAL, EXTERNAL_MANAGED, INTERNAL_MANAGED or INTERNAL_SELF_MANAGED and the scope is global.", + "type": "string" + }, "sessionAffinity": { "description": "Type of session affinity to use. The default is NONE. Only NONE and HEADER_FIELD are supported when the backend service is referenced by a URL map that is bound to target gRPC proxy that has validateForProxyless field set to true. For more details, see: [Session Affinity](https://cloud.google.com/load-balancing/docs/backend-service#session_affinity).", "enum": [ @@ -38740,11 +39874,11 @@ "type": "string" }, "enableStrongAffinity": { - "description": "Enable Strong Session Affinity for Network Load Balancing. This option is not available publicly.", + "description": "Enable Strong Session Affinity for external passthrough Network Load Balancers. This option is not available publicly.", "type": "boolean" }, "idleTimeoutSec": { - "description": "Specifies how long to keep a Connection Tracking entry while there is no matching traffic (in seconds). For Internal TCP/UDP Load Balancing: - The minimum (default) is 10 minutes and the maximum is 16 hours. - It can be set only if Connection Tracking is less than 5-tuple (i.e. Session Affinity is CLIENT_IP_NO_DESTINATION, CLIENT_IP or CLIENT_IP_PROTO, and Tracking Mode is PER_SESSION). For Network Load Balancer the default is 60 seconds. This option is not available publicly.", + "description": "Specifies how long to keep a Connection Tracking entry while there is no matching traffic (in seconds). For internal passthrough Network Load Balancers: - The minimum (default) is 10 minutes and the maximum is 16 hours. - It can be set only if Connection Tracking is less than 5-tuple (i.e. Session Affinity is CLIENT_IP_NO_DESTINATION, CLIENT_IP or CLIENT_IP_PROTO, and Tracking Mode is PER_SESSION). For external passthrough Network Load Balancers the default is 60 seconds. This option is not available publicly.", "format": "int32", "type": "integer" }, @@ -38766,7 +39900,7 @@ "type": "object" }, "BackendServiceFailoverPolicy": { - "description": "For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). On failover or failback, this field indicates whether connection draining will be honored. Google Cloud has a fixed connection draining timeout of 10 minutes. A setting of true terminates existing TCP connections to the active pool during failover and failback, immediately draining traffic. A setting of false allows existing TCP connections to persist, even on VMs no longer in the active pool, for up to the duration of the connection draining timeout (10 minutes).", + "description": "For load balancers that have configurable failover: [Internal passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). On failover or failback, this field indicates whether connection draining will be honored. Google Cloud has a fixed connection draining timeout of 10 minutes. A setting of true terminates existing TCP connections to the active pool during failover and failback, immediately draining traffic. A setting of false allows existing TCP connections to persist, even on VMs no longer in the active pool, for up to the duration of the connection draining timeout (10 minutes).", "id": "BackendServiceFailoverPolicy", "properties": { "disableConnectionDrainOnFailover": { @@ -38774,7 +39908,7 @@ "type": "boolean" }, "dropTrafficIfUnhealthy": { - "description": "If set to true, connections to the load balancer are dropped when all primary and all backup backend VMs are unhealthy.If set to false, connections are distributed among all primary VMs when all primary and all backup backend VMs are unhealthy. For load balancers that have configurable failover: [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). The default is false.", + "description": "If set to true, connections to the load balancer are dropped when all primary and all backup backend VMs are unhealthy.If set to false, connections are distributed among all primary VMs when all primary and all backup backend VMs are unhealthy. For load balancers that have configurable failover: [Internal passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/internal/failover-overview) and [external passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). The default is false.", "type": "boolean" }, "failoverRatio": { @@ -39641,14 +40775,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -39888,6 +41022,13 @@ "description": "[Output Only] Commitment end time in RFC3339 text format.", "type": "string" }, + "existingReservations": { + "description": "Specifies the already existing reservations to attach to the Commitment. This field is optional, and it can be a full or partial URL. For example, the following are valid URLs to an reservation: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /reservations/reservation - projects/project/zones/zone/reservations/reservation ", + "items": { + "type": "string" + }, + "type": "array" + }, "id": { "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", "format": "uint64", @@ -39933,7 +41074,7 @@ "type": "string" }, "reservations": { - "description": "List of create-on-create reseravtions for this commitment.", + "description": "List of create-on-create reservations for this commitment.", "items": { "$ref": "Reservation" }, @@ -39998,6 +41139,7 @@ "GRAPHICS_OPTIMIZED", "MEMORY_OPTIMIZED", "MEMORY_OPTIMIZED_M3", + "STORAGE_OPTIMIZED_Z3", "TYPE_UNSPECIFIED" ], "enumDescriptions": [ @@ -40016,6 +41158,7 @@ "", "", "", + "", "" ], "type": "string" @@ -40785,6 +41928,10 @@ "$ref": "CustomerEncryptionKey", "description": "Encrypts the disk using a customer-supplied encryption key or a customer-managed encryption key. Encryption keys do not protect access to metadata of the disk. After you encrypt a disk with a customer-supplied key, you must provide the same key if you use the disk later. For example, to create a disk snapshot, to create a disk image, to create a machine image, or to attach the disk to a virtual machine. After you encrypt a disk with a customer-managed key, the diskEncryptionKey.kmsKeyName is set to a key *version* name once the disk is created. The disk is encrypted with this version of the key. In the response, diskEncryptionKey.kmsKeyName appears in the following format: \"diskEncryptionKey.kmsKeyName\": \"projects/kms_project_id/locations/region/keyRings/ key_region/cryptoKeys/key /cryptoKeysVersions/version If you do not provide an encryption key when creating the disk, then the disk is encrypted using an automatically generated key and you don't need to provide a key to use the disk later." }, + "enableConfidentialCompute": { + "description": "Whether this disk is using confidential compute mode.", + "type": "boolean" + }, "guestOsFeatures": { "description": "A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options.", "items": { @@ -40870,7 +42017,7 @@ "type": "string" }, "provisionedThroughput": { - "description": "Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. Values must be between 1 and 7,124.", + "description": "Indicates how much throughput to provision for the disk. This sets the number of throughput mb per second that the disk can handle. Values must be greater than or equal to 1.", "format": "int64", "type": "string" }, @@ -40896,6 +42043,11 @@ "$ref": "DiskResourceStatus", "description": "[Output Only] Status information for the disk resource." }, + "satisfiesPzi": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, "satisfiesPzs": { "description": "[Output Only] Reserved for future use.", "type": "boolean" @@ -40937,6 +42089,14 @@ "description": "[Output Only] The ID value of the image used to create this disk. This value identifies the exact image that was used to create this persistent disk. For example, if you created the persistent disk from an image that was later deleted and recreated under the same name, the source image ID would identify the exact version of the image that was used.", "type": "string" }, + "sourceInstantSnapshot": { + "description": "The source instant snapshot used to create this disk. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /instantSnapshots/instantSnapshot - projects/project/zones/zone/instantSnapshots/instantSnapshot - zones/zone/instantSnapshots/instantSnapshot ", + "type": "string" + }, + "sourceInstantSnapshotId": { + "description": "[Output Only] The unique ID of the instant snapshot used to create this disk. This value identifies the exact instant snapshot that was used to create this persistent disk. For example, if you created the persistent disk from an instant snapshot that was later deleted and recreated under the same name, the source instant snapshot ID would identify the exact version of the instant snapshot that was used.", + "type": "string" + }, "sourceSnapshot": { "description": "The source snapshot used to create this disk. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project /global/snapshots/snapshot - projects/project/global/snapshots/snapshot - global/snapshots/snapshot ", "type": "string" @@ -42522,6 +43682,10 @@ "ipAddress": { "description": "IP address of the interface in the external VPN gateway. Only IPv4 is supported. This IP address can be either from your on-premise gateway or another Cloud provider's VPN gateway, it cannot be an IP address from Google Compute Engine.", "type": "string" + }, + "ipv6Address": { + "description": "IPv6 address of the interface in the external VPN gateway. This IPv6 address can be either from your on-premise gateway or another Cloud provider's VPN gateway, it cannot be an IP address from Google Compute Engine. Must specify an IPv6 address (not IPV4-mapped) using any format described in RFC 4291 (e.g. 2001:db8:0:0:2d9:51:0:0). The output format is RFC 5952 format (e.g. 2001:db8::2d9:51:0:0).", + "type": "string" } }, "type": "object" @@ -43359,6 +44523,10 @@ "format": "int32", "type": "integer" }, + "securityProfileGroup": { + "description": "A fully-qualified URL of a SecurityProfile resource instance. Example: https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group Must be specified if action = 'apply_security_profile_group' and cannot be specified for other actions.", + "type": "string" + }, "targetResources": { "description": "A list of network resource URLs to which this rule applies. This field allows you to control which network's VMs get this rule. If this field is left blank, all VMs within the organization will receive the rule.", "items": { @@ -43379,6 +44547,10 @@ "type": "string" }, "type": "array" + }, + "tlsInspect": { + "description": "Boolean flag indicating if the traffic should be TLS decrypted. Can be set only if action = 'apply_security_profile_group' and cannot be set for other actions.", + "type": "boolean" } }, "type": "object" @@ -43537,7 +44709,7 @@ "type": "object" }, "ForwardingRule": { - "description": "Represents a Forwarding Rule resource. Forwarding rule resources in Google Cloud can be either regional or global in scope: * [Global](https://cloud.google.com/compute/docs/reference/rest/v1/globalForwardingRules) * [Regional](https://cloud.google.com/compute/docs/reference/rest/v1/forwardingRules) A forwarding rule and its corresponding IP address represent the frontend configuration of a Google Cloud Platform load balancer. Forwarding rules can also reference target instances and Cloud VPN Classic gateways (targetVpnGateway). For more information, read Forwarding rule concepts and Using protocol forwarding.", + "description": "Represents a Forwarding Rule resource. Forwarding rule resources in Google Cloud can be either regional or global in scope: * [Global](https://cloud.google.com/compute/docs/reference/rest/v1/globalForwardingRules) * [Regional](https://cloud.google.com/compute/docs/reference/rest/v1/forwardingRules) A forwarding rule and its corresponding IP address represent the frontend configuration of a Google Cloud load balancer. Forwarding rules can also reference target instances and Cloud VPN Classic gateways (targetVpnGateway). For more information, read Forwarding rule concepts and Using protocol forwarding.", "id": "ForwardingRule", "properties": { "IPAddress": { @@ -43571,7 +44743,7 @@ "type": "boolean" }, "allowGlobalAccess": { - "description": "This field is used along with the backend_service field for internal load balancing or with the target field for internal TargetInstance. If set to true, clients can access the Internal TCP/UDP Load Balancer, Internal HTTP(S) and TCP Proxy Load Balancer from all regions. If false, only allows access from the local region the load balancer is located at. Note that for INTERNAL_MANAGED forwarding rules, this field cannot be changed after the forwarding rule is created.", + "description": "If set to true, clients can access the internal passthrough Network Load Balancers, the regional internal Application Load Balancer, and the regional internal proxy Network Load Balancer from all regions. If false, only allows access from the local region the load balancer is located at. Note that for INTERNAL_MANAGED forwarding rules, this field cannot be changed after the forwarding rule is created.", "type": "boolean" }, "allowPscGlobalAccess": { @@ -43579,11 +44751,11 @@ "type": "boolean" }, "backendService": { - "description": "Identifies the backend service to which the forwarding rule sends traffic. Required for Internal TCP/UDP Load Balancing and Network Load Balancing; must be omitted for all other load balancer types.", + "description": "Identifies the backend service to which the forwarding rule sends traffic. Required for internal and external passthrough Network Load Balancers; must be omitted for all other load balancer types.", "type": "string" }, "baseForwardingRule": { - "description": "[Output Only] The URL for the corresponding base Forwarding Rule. By base Forwarding Rule, we mean the Forwarding Rule that has the same IP address, protocol, and port settings with the current Forwarding Rule, but without sourceIPRanges specified. Always empty if the current Forwarding Rule does not have sourceIPRanges specified.", + "description": "[Output Only] The URL for the corresponding base forwarding rule. By base forwarding rule, we mean the forwarding rule that has the same IP address, protocol, and port settings with the current forwarding rule, but without sourceIPRanges specified. Always empty if the current forwarding rule does not have sourceIPRanges specified.", "type": "string" }, "creationTimestamp": { @@ -43624,7 +44796,7 @@ }, "kind": { "default": "compute#forwardingRule", - "description": "[Output Only] Type of the resource. Always compute#forwardingRule for Forwarding Rule resources.", + "description": "[Output Only] Type of the resource. Always compute#forwardingRule for forwarding rule resources.", "type": "string" }, "labelFingerprint": { @@ -43672,7 +44844,7 @@ "type": "string" }, "network": { - "description": "This field is not used for global external load balancing. For Internal TCP/UDP Load Balancing, this field identifies the network that the load balanced IP should belong to for this Forwarding Rule. If the subnetwork is specified, the network of the subnetwork will be used. If neither subnetwork nor this field is specified, the default network will be used. For Private Service Connect forwarding rules that forward traffic to Google APIs, a network must be provided.", + "description": "This field is not used for global external load balancing. For internal passthrough Network Load Balancers, this field identifies the network that the load balanced IP should belong to for this forwarding rule. If the subnetwork is specified, the network of the subnetwork will be used. If neither subnetwork nor this field is specified, the default network will be used. For Private Service Connect forwarding rules that forward traffic to Google APIs, a network must be provided.", "type": "string" }, "networkTier": { @@ -43707,7 +44879,7 @@ "type": "array" }, "pscConnectionId": { - "description": "[Output Only] The PSC connection id of the PSC Forwarding Rule.", + "description": "[Output Only] The PSC connection id of the PSC forwarding rule.", "format": "uint64", "type": "string" }, @@ -43746,23 +44918,23 @@ "type": "array" }, "serviceLabel": { - "description": "An optional prefix to the service name for this Forwarding Rule. If specified, the prefix is the first label of the fully qualified service name. The label must be 1-63 characters long, and comply with RFC1035. Specifically, the label must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. This field is only used for internal load balancing.", + "description": "An optional prefix to the service name for this forwarding rule. If specified, the prefix is the first label of the fully qualified service name. The label must be 1-63 characters long, and comply with RFC1035. Specifically, the label must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash. This field is only used for internal load balancing.", "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, "serviceName": { - "description": "[Output Only] The internal fully qualified service name for this Forwarding Rule. This field is only used for internal load balancing.", + "description": "[Output Only] The internal fully qualified service name for this forwarding rule. This field is only used for internal load balancing.", "type": "string" }, "sourceIpRanges": { - "description": "If not empty, this Forwarding Rule will only forward the traffic when the source IP address matches one of the IP addresses or CIDR ranges set here. Note that a Forwarding Rule can only have up to 64 source IP ranges, and this field can only be used with a regional Forwarding Rule whose scheme is EXTERNAL. Each source_ip_range entry should be either an IP address (for example, 1.2.3.4) or a CIDR range (for example, 1.2.3.0/24).", + "description": "If not empty, this forwarding rule will only forward the traffic when the source IP address matches one of the IP addresses or CIDR ranges set here. Note that a forwarding rule can only have up to 64 source IP ranges, and this field can only be used with a regional forwarding rule whose scheme is EXTERNAL. Each source_ip_range entry should be either an IP address (for example, 1.2.3.4) or a CIDR range (for example, 1.2.3.0/24).", "items": { "type": "string" }, "type": "array" }, "subnetwork": { - "description": "This field identifies the subnetwork that the load balanced IP should belong to for this Forwarding Rule, used in internal load balancing and network load balancing with IPv6. If the network specified is in auto subnet mode, this field is optional. However, a subnetwork must be specified if the network is in custom subnet mode or when creating external forwarding rule with IPv6.", + "description": "This field identifies the subnetwork that the load balanced IP should belong to for this forwarding rule, used with internal load balancers and external passthrough Network Load Balancers with IPv6. If the network specified is in auto subnet mode, this field is optional. However, a subnetwork must be specified if the network is in custom subnet mode or when creating external forwarding rule with IPv6.", "type": "string" }, "target": { @@ -44093,7 +45265,7 @@ "type": "object" }, "ForwardingRuleServiceDirectoryRegistration": { - "description": "Describes the auto-registration of the Forwarding Rule to Service Directory. The region and project of the Service Directory resource generated from this registration will be the same as this Forwarding Rule.", + "description": "Describes the auto-registration of the forwarding rule to Service Directory. The region and project of the Service Directory resource generated from this registration will be the same as this forwarding rule.", "id": "ForwardingRuleServiceDirectoryRegistration", "properties": { "namespace": { @@ -44105,7 +45277,7 @@ "type": "string" }, "serviceDirectoryRegion": { - "description": "[Optional] Service Directory region to register this global forwarding rule under. Default to \"us-central1\". Only used for PSC for Google APIs. All PSC for Google APIs Forwarding Rules on the same network should use the same Service Directory region.", + "description": "[Optional] Service Directory region to register this global forwarding rule under. Default to \"us-central1\". Only used for PSC for Google APIs. All PSC for Google APIs forwarding rules on the same network should use the same Service Directory region.", "type": "string" } }, @@ -44262,7 +45434,7 @@ "type": "string" }, "portSpecification": { - "description": "Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for pass-through load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for pass-through load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports.", + "description": "Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for passthrough load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for passthrough load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports.", "enum": [ "USE_FIXED_PORT", "USE_NAMED_PORT", @@ -44449,10 +45621,11 @@ "id": "GuestOsFeature", "properties": { "type": { - "description": "The ID of a supported feature. To add multiple values, use commas to separate values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE - WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC - SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE - SEV_SNP_CAPABLE For more information, see Enabling guest operating system features.", + "description": "The ID of a supported feature. To add multiple values, use commas to separate values. Set to one or more of the following values: - VIRTIO_SCSI_MULTIQUEUE - WINDOWS - MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC - SEV_CAPABLE - SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE - SEV_SNP_CAPABLE - TDX_CAPABLE - IDPF For more information, see Enabling guest operating system features.", "enum": [ "FEATURE_TYPE_UNSPECIFIED", "GVNIC", + "IDPF", "MULTI_IP_SUBNET", "SECURE_BOOT", "SEV_CAPABLE", @@ -44474,6 +45647,7 @@ "", "", "", + "", "" ], "type": "string" @@ -44498,7 +45672,7 @@ "type": "string" }, "portSpecification": { - "description": "Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for pass-through load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for pass-through load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports.", + "description": "Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for passthrough load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for passthrough load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports.", "enum": [ "USE_FIXED_PORT", "USE_NAMED_PORT", @@ -44551,7 +45725,7 @@ "type": "string" }, "portSpecification": { - "description": "Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for pass-through load balancers and backend services for proxy load balancers. Also supported in legacy HTTP health checks for target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for pass-through load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports.", + "description": "Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for passthrough load balancers and backend services for proxy load balancers. Also supported in legacy HTTP health checks for target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for pass-through load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports.", "enum": [ "USE_FIXED_PORT", "USE_NAMED_PORT", @@ -44604,7 +45778,7 @@ "type": "string" }, "portSpecification": { - "description": "Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for pass-through load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for pass-through load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports.", + "description": "Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for passthrough load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for passthrough load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports.", "enum": [ "USE_FIXED_PORT", "USE_NAMED_PORT", @@ -44641,7 +45815,7 @@ "type": "object" }, "HealthCheck": { - "description": "Represents a health check resource. Google Compute Engine has two health check resources: * [Regional](/compute/docs/reference/rest/v1/regionHealthChecks) * [Global](/compute/docs/reference/rest/v1/healthChecks) These health check resources can be used for load balancing and for autohealing VMs in a managed instance group (MIG). **Load balancing** The following load balancer can use either regional or global health check: * Internal TCP/UDP load balancer The following load balancers require regional health check: * Internal HTTP(S) load balancer * Backend service-based network load balancer Traffic Director and the following load balancers require global health check: * External HTTP(S) load balancer * TCP proxy load balancer * SSL proxy load balancer The following load balancer require [legacy HTTP health checks](/compute/docs/reference/rest/v1/httpHealthChecks): * Target pool-based network load balancer **Autohealing in MIGs** The health checks that you use for autohealing VMs in a MIG can be either regional or global. For more information, see Set up an application health check and autohealing. For more information, see Health checks overview.", + "description": "Represents a health check resource. Google Compute Engine has two health check resources: * [Regional](/compute/docs/reference/rest/v1/regionHealthChecks) * [Global](/compute/docs/reference/rest/v1/healthChecks) These health check resources can be used for load balancing and for autohealing VMs in a managed instance group (MIG). **Load balancing** Health check requirements vary depending on the type of load balancer. For details about the type of health check supported for each load balancer and corresponding backend type, see Health checks overview: Load balancer guide. **Autohealing in MIGs** The health checks that you use for autohealing VMs in a MIG can be either regional or global. For more information, see Set up an application health check and autohealing. For more information, see Health checks overview.", "id": "HealthCheck", "properties": { "checkIntervalSec": { @@ -46436,6 +47610,10 @@ "format": "int64", "type": "string" }, + "enableConfidentialCompute": { + "description": "Whether this image is created from a confidential compute mode disk. [Output Only]: This field is not set by user, but from source disk.", + "type": "boolean" + }, "family": { "description": "The name of the image family to which this image belongs. The image family name can be from a publicly managed image family provided by Compute Engine, or from a custom image family you create. For example, centos-stream-9 is a publicly available image family. For more information, see Image family best practices. When creating disks, you can specify an image family instead of a specific image name. The image family always returns its latest image that is not deprecated. The name of the image family must comply with RFC1035.", "type": "string" @@ -46524,6 +47702,11 @@ }, "type": "object" }, + "satisfiesPzi": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, "satisfiesPzs": { "description": "[Output Only] Reserved for future use.", "type": "boolean" @@ -46978,6 +48161,10 @@ "$ref": "ResourceStatus", "description": "[Output Only] Specifies values set for instance attributes as compared to the values requested by user in the corresponding input only field." }, + "satisfiesPzi": { + "description": "[Output Only] Reserved for future use.", + "type": "boolean" + }, "satisfiesPzs": { "description": "[Output Only] Reserved for future use.", "type": "boolean" @@ -47644,6 +48831,10 @@ "description": "Represents a Managed Instance Group resource. An instance group is a collection of VM instances that you can manage as a single entity. For more information, read Instance groups. For zonal Managed Instance Group, use the instanceGroupManagers resource. For regional Managed Instance Group, use the regionInstanceGroupManagers resource.", "id": "InstanceGroupManager", "properties": { + "allInstancesConfig": { + "$ref": "InstanceGroupManagerAllInstancesConfig", + "description": "Specifies configuration that overrides the instance template configuration for the group." + }, "autoHealingPolicies": { "description": "The autohealing policy for this managed instance group. You can specify only one value.", "items": { @@ -48011,6 +49202,16 @@ }, "type": "object" }, + "InstanceGroupManagerAllInstancesConfig": { + "id": "InstanceGroupManagerAllInstancesConfig", + "properties": { + "properties": { + "$ref": "InstancePropertiesPatch", + "description": "Properties to set on all instances in the group. You can add or modify properties using the instanceGroupManagers.patch or regionInstanceGroupManagers.patch. After setting allInstancesConfig on the group, you must update the group's instances to apply the configuration. To apply the configuration, set the group's updatePolicy.type field to use proactive updates or use the applyUpdatesToInstances method." + } + }, + "type": "object" + }, "InstanceGroupManagerAutoHealingPolicy": { "id": "InstanceGroupManagerAutoHealingPolicy", "properties": { @@ -48029,6 +49230,18 @@ "InstanceGroupManagerInstanceLifecyclePolicy": { "id": "InstanceGroupManagerInstanceLifecyclePolicy", "properties": { + "defaultActionOnFailure": { + "description": "The action that a MIG performs on a failed or an unhealthy VM. A VM is marked as unhealthy when the application running on that VM fails a health check. Valid values are - REPAIR (default): MIG automatically repairs a failed or an unhealthy VM by recreating it. For more information, see About repairing VMs in a MIG. - DO_NOTHING: MIG does not repair a failed or an unhealthy VM. ", + "enum": [ + "DO_NOTHING", + "REPAIR" + ], + "enumDescriptions": [ + "MIG does not repair a failed or an unhealthy VM.", + "(Default) MIG automatically repairs a failed or an unhealthy VM by recreating it. For more information, see About repairing VMs in a MIG." + ], + "type": "string" + }, "forceUpdateOnRepair": { "description": "A bit indicating whether to forcefully apply the group's latest configuration when repairing a VM. Valid options are: - NO (default): If configuration updates are available, they are not forcefully applied during repair. Instead, configuration updates are applied according to the group's update policy. - YES: If configuration updates are available, they are applied during repair. ", "enum": [ @@ -48199,6 +49412,10 @@ "InstanceGroupManagerStatus": { "id": "InstanceGroupManagerStatus", "properties": { + "allInstancesConfig": { + "$ref": "InstanceGroupManagerStatusAllInstancesConfig", + "description": "[Output only] Status of all-instances configuration on the group." + }, "autoscaler": { "description": "[Output Only] The URL of the Autoscaler that targets this instance group manager.", "type": "string" @@ -48218,6 +49435,20 @@ }, "type": "object" }, + "InstanceGroupManagerStatusAllInstancesConfig": { + "id": "InstanceGroupManagerStatusAllInstancesConfig", + "properties": { + "currentRevision": { + "description": "[Output Only] Current all-instances configuration revision. This value is in RFC3339 text format.", + "type": "string" + }, + "effective": { + "description": "[Output Only] A bit indicating whether this configuration has been applied to all managed instances in the group.", + "type": "boolean" + } + }, + "type": "object" + }, "InstanceGroupManagerStatusStateful": { "id": "InstanceGroupManagerStatusStateful", "properties": { @@ -49730,6 +50961,27 @@ }, "type": "object" }, + "InstancePropertiesPatch": { + "description": "Represents the change that you want to make to the instance properties.", + "id": "InstancePropertiesPatch", + "properties": { + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "The label key-value pairs that you want to patch onto the instance.", + "type": "object" + }, + "metadata": { + "additionalProperties": { + "type": "string" + }, + "description": "The metadata key-value pairs that you want to patch onto the instance. For more information, see Project and instance metadata.", + "type": "object" + } + }, + "type": "object" + }, "InstanceReference": { "id": "InstanceReference", "properties": { @@ -50514,113 +51766,683 @@ }, "type": "object" }, - "InstancesSetLabelsRequest": { - "id": "InstancesSetLabelsRequest", - "properties": { - "labelFingerprint": { - "description": "Fingerprint of the previous set of labels for this resource, used to prevent conflicts. Provide the latest fingerprint value when making a request to add or change labels.", - "format": "byte", - "type": "string" - }, - "labels": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - } - }, - "type": "object" - }, - "InstancesSetMachineResourcesRequest": { - "id": "InstancesSetMachineResourcesRequest", + "InstancesSetLabelsRequest": { + "id": "InstancesSetLabelsRequest", + "properties": { + "labelFingerprint": { + "description": "Fingerprint of the previous set of labels for this resource, used to prevent conflicts. Provide the latest fingerprint value when making a request to add or change labels.", + "format": "byte", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "type": "object" + } + }, + "type": "object" + }, + "InstancesSetMachineResourcesRequest": { + "id": "InstancesSetMachineResourcesRequest", + "properties": { + "guestAccelerators": { + "description": "A list of the type and count of accelerator cards attached to the instance.", + "items": { + "$ref": "AcceleratorConfig" + }, + "type": "array" + } + }, + "type": "object" + }, + "InstancesSetMachineTypeRequest": { + "id": "InstancesSetMachineTypeRequest", + "properties": { + "machineType": { + "description": "Full or partial URL of the machine type resource. See Machine Types for a full list of machine types. For example: zones/us-central1-f/machineTypes/n1-standard-1", + "type": "string" + } + }, + "type": "object" + }, + "InstancesSetMinCpuPlatformRequest": { + "id": "InstancesSetMinCpuPlatformRequest", + "properties": { + "minCpuPlatform": { + "description": "Minimum cpu/platform this instance should be started at.", + "type": "string" + } + }, + "type": "object" + }, + "InstancesSetNameRequest": { + "id": "InstancesSetNameRequest", + "properties": { + "currentName": { + "description": "The current name of this resource, used to prevent conflicts. Provide the latest name when making a request to change name.", + "type": "string" + }, + "name": { + "description": "The name to be applied to the instance. Needs to be RFC 1035 compliant.", + "type": "string" + } + }, + "type": "object" + }, + "InstancesSetSecurityPolicyRequest": { + "id": "InstancesSetSecurityPolicyRequest", + "properties": { + "networkInterfaces": { + "description": "The network interfaces that the security policy will be applied to. Network interfaces use the nicN naming format. You can only set a security policy for network interfaces with an access config.", + "items": { + "type": "string" + }, + "type": "array" + }, + "securityPolicy": { + "description": "A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.", + "type": "string" + } + }, + "type": "object" + }, + "InstancesSetServiceAccountRequest": { + "id": "InstancesSetServiceAccountRequest", + "properties": { + "email": { + "description": "Email address of the service account.", + "type": "string" + }, + "scopes": { + "description": "The list of scopes to be made available for this service account.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "InstancesStartWithEncryptionKeyRequest": { + "id": "InstancesStartWithEncryptionKeyRequest", + "properties": { + "disks": { + "description": "Array of disks associated with this instance that are protected with a customer-supplied encryption key. In order to start the instance, the disk url and its corresponding key must be provided. If the disk is not protected with a customer-supplied encryption key it should not be specified.", + "items": { + "$ref": "CustomerEncryptionKeyProtectedDisk" + }, + "type": "array" + } + }, + "type": "object" + }, + "InstantSnapshot": { + "description": "Represents a InstantSnapshot resource. You can use instant snapshots to create disk rollback points quickly..", + "id": "InstantSnapshot", + "properties": { + "architecture": { + "description": "[Output Only] The architecture of the instant snapshot. Valid values are ARM64 or X86_64.", + "enum": [ + "ARCHITECTURE_UNSPECIFIED", + "ARM64", + "X86_64" + ], + "enumDescriptions": [ + "Default value indicating Architecture is not set.", + "Machines with architecture ARM64", + "Machines with architecture X86_64" + ], + "type": "string" + }, + "creationTimestamp": { + "description": "[Output Only] Creation timestamp in RFC3339 text format.", + "type": "string" + }, + "description": { + "description": "An optional description of this resource. Provide this property when you create the resource.", + "type": "string" + }, + "diskSizeGb": { + "description": "[Output Only] Size of the source disk, specified in GB.", + "format": "int64", + "type": "string" + }, + "id": { + "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", + "format": "uint64", + "type": "string" + }, + "kind": { + "default": "compute#instantSnapshot", + "description": "[Output Only] Type of the resource. Always compute#instantSnapshot for InstantSnapshot resources.", + "type": "string" + }, + "labelFingerprint": { + "description": "A fingerprint for the labels being applied to this InstantSnapshot, which is essentially a hash of the labels set used for optimistic locking. The fingerprint is initially generated by Compute Engine and changes after every request to modify or update labels. You must always provide an up-to-date fingerprint hash in order to update or change labels, otherwise the request will fail with error 412 conditionNotMet. To see the latest fingerprint, make a get() request to retrieve a InstantSnapshot.", + "format": "byte", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Labels to apply to this InstantSnapshot. These can be later modified by the setLabels method. Label values may be empty.", + "type": "object" + }, + "name": { + "description": "Name of the resource; provided by the client when the resource is created. The name must be 1-63 characters long, and comply with RFC1035. Specifically, the name must be 1-63 characters long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a lowercase letter, and all following characters must be a dash, lowercase letter, or digit, except the last character, which cannot be a dash.", + "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", + "type": "string" + }, + "region": { + "description": "[Output Only] URL of the region where the instant snapshot resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + }, + "resourceStatus": { + "$ref": "InstantSnapshotResourceStatus", + "description": "[Output Only] Status information for the instant snapshot resource." + }, + "satisfiesPzi": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, + "satisfiesPzs": { + "description": "[Output Only] Reserved for future use.", + "type": "boolean" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for the resource.", + "type": "string" + }, + "selfLinkWithId": { + "description": "[Output Only] Server-defined URL for this resource's resource id.", + "type": "string" + }, + "sourceDisk": { + "description": "URL of the source disk used to create this instant snapshot. Note that the source disk must be in the same zone/region as the instant snapshot to be created. This can be a full or valid partial URL. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /disks/disk - https://www.googleapis.com/compute/v1/projects/project/regions/region /disks/disk - projects/project/zones/zone/disks/disk - projects/project/regions/region/disks/disk - zones/zone/disks/disk - regions/region/disks/disk ", + "type": "string" + }, + "sourceDiskId": { + "description": "[Output Only] The ID value of the disk used to create this InstantSnapshot. This value may be used to determine whether the InstantSnapshot was taken from the current or a previous instance of a given disk name.", + "type": "string" + }, + "status": { + "description": "[Output Only] The status of the instantSnapshot. This can be CREATING, DELETING, FAILED, or READY.", + "enum": [ + "CREATING", + "DELETING", + "FAILED", + "READY" + ], + "enumDescriptions": [ + "InstantSnapshot creation is in progress.", + "InstantSnapshot is currently being deleted.", + "InstantSnapshot creation failed.", + "InstantSnapshot has been created successfully." + ], + "type": "string" + }, + "zone": { + "description": "[Output Only] URL of the zone where the instant snapshot resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.", + "type": "string" + } + }, + "type": "object" + }, + "InstantSnapshotAggregatedList": { + "id": "InstantSnapshotAggregatedList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "additionalProperties": { + "$ref": "InstantSnapshotsScopedList", + "description": "[Output Only] Name of the scope containing this set of instantSnapshots." + }, + "description": "A list of InstantSnapshotsScopedList resources.", + "type": "object" + }, + "kind": { + "default": "compute#instantSnapshotAggregatedList", + "description": "[Output Only] Type of resource. Always compute#instantSnapshotAggregatedList for aggregated lists of instantSnapshots.", + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "unreachables": { + "description": "[Output Only] Unreachable resources.", + "items": { + "type": "string" + }, + "type": "array" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "InstantSnapshotList": { + "description": "Contains a list of InstantSnapshot resources.", + "id": "InstantSnapshotList", + "properties": { + "id": { + "description": "[Output Only] Unique identifier for the resource; defined by the server.", + "type": "string" + }, + "items": { + "description": "A list of InstantSnapshot resources.", + "items": { + "$ref": "InstantSnapshot" + }, + "type": "array" + }, + "kind": { + "default": "compute#instantSnapshotList", + "description": "Type of resource.", + "type": "string" + }, + "nextPageToken": { + "description": "[Output Only] This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.", + "type": "string" + }, + "selfLink": { + "description": "[Output Only] Server-defined URL for this resource.", + "type": "string" + }, + "warning": { + "description": "[Output Only] Informational warning message.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" + } + }, + "type": "object" + } + }, + "type": "object" + }, + "InstantSnapshotResourceStatus": { + "id": "InstantSnapshotResourceStatus", "properties": { - "guestAccelerators": { - "description": "A list of the type and count of accelerator cards attached to the instance.", - "items": { - "$ref": "AcceleratorConfig" - }, - "type": "array" - } - }, - "type": "object" - }, - "InstancesSetMachineTypeRequest": { - "id": "InstancesSetMachineTypeRequest", - "properties": { - "machineType": { - "description": "Full or partial URL of the machine type resource. See Machine Types for a full list of machine types. For example: zones/us-central1-f/machineTypes/n1-standard-1", - "type": "string" - } - }, - "type": "object" - }, - "InstancesSetMinCpuPlatformRequest": { - "id": "InstancesSetMinCpuPlatformRequest", - "properties": { - "minCpuPlatform": { - "description": "Minimum cpu/platform this instance should be started at.", - "type": "string" - } - }, - "type": "object" - }, - "InstancesSetNameRequest": { - "id": "InstancesSetNameRequest", - "properties": { - "currentName": { - "description": "The current name of this resource, used to prevent conflicts. Provide the latest name when making a request to change name.", - "type": "string" - }, - "name": { - "description": "The name to be applied to the instance. Needs to be RFC 1035 compliant.", + "storageSizeBytes": { + "description": "[Output Only] The storage size of this instant snapshot.", + "format": "int64", "type": "string" } }, "type": "object" }, - "InstancesSetSecurityPolicyRequest": { - "id": "InstancesSetSecurityPolicyRequest", + "InstantSnapshotsScopedList": { + "id": "InstantSnapshotsScopedList", "properties": { - "networkInterfaces": { - "description": "The network interfaces that the security policy will be applied to. Network interfaces use the nicN naming format. You can only set a security policy for network interfaces with an access config.", + "instantSnapshots": { + "description": "[Output Only] A list of instantSnapshots contained in this scope.", "items": { - "type": "string" + "$ref": "InstantSnapshot" }, "type": "array" }, - "securityPolicy": { - "description": "A full or partial URL to a security policy to add to this instance. If this field is set to an empty string it will remove the associated security policy.", - "type": "string" - } - }, - "type": "object" - }, - "InstancesSetServiceAccountRequest": { - "id": "InstancesSetServiceAccountRequest", - "properties": { - "email": { - "description": "Email address of the service account.", - "type": "string" - }, - "scopes": { - "description": "The list of scopes to be made available for this service account.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "InstancesStartWithEncryptionKeyRequest": { - "id": "InstancesStartWithEncryptionKeyRequest", - "properties": { - "disks": { - "description": "Array of disks associated with this instance that are protected with a customer-supplied encryption key. In order to start the instance, the disk url and its corresponding key must be provided. If the disk is not protected with a customer-supplied encryption key it should not be specified.", - "items": { - "$ref": "CustomerEncryptionKeyProtectedDisk" + "warning": { + "description": "[Output Only] Informational warning which replaces the list of instantSnapshots when the list is empty.", + "properties": { + "code": { + "description": "[Output Only] A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.", + "enum": [ + "CLEANUP_FAILED", + "DEPRECATED_RESOURCE_USED", + "DEPRECATED_TYPE_USED", + "DISK_SIZE_LARGER_THAN_IMAGE_SIZE", + "EXPERIMENTAL_TYPE_USED", + "EXTERNAL_API_WARNING", + "FIELD_VALUE_OVERRIDEN", + "INJECTED_KERNELS_DEPRECATED", + "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB", + "LARGE_DEPLOYMENT_WARNING", + "LIST_OVERHEAD_QUOTA_EXCEED", + "MISSING_TYPE_DEPENDENCY", + "NEXT_HOP_ADDRESS_NOT_ASSIGNED", + "NEXT_HOP_CANNOT_IP_FORWARD", + "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE", + "NEXT_HOP_INSTANCE_NOT_FOUND", + "NEXT_HOP_INSTANCE_NOT_ON_NETWORK", + "NEXT_HOP_NOT_RUNNING", + "NOT_CRITICAL_ERROR", + "NO_RESULTS_ON_PAGE", + "PARTIAL_SUCCESS", + "REQUIRED_TOS_AGREEMENT", + "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING", + "RESOURCE_NOT_DELETED", + "SCHEMA_VALIDATION_IGNORED", + "SINGLE_INSTANCE_PROPERTY_TEMPLATE", + "UNDECLARED_PROPERTIES", + "UNREACHABLE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], + "enumDescriptions": [ + "Warning about failed cleanup of transient changes made by a failed operation.", + "A link to a deprecated resource was created.", + "When deploying and at least one of the resources has a type marked as deprecated", + "The user created a boot disk that is larger than image size.", + "When deploying and at least one of the resources has a type marked as experimental", + "Warning that is present in an external api call", + "Warning that value of a field has been overridden. Deprecated unused field.", + "The operation involved use of an injected kernel, which is deprecated.", + "A WEIGHTED_MAGLEV backend service is associated with a health check that is not of type HTTP/HTTPS/HTTP2.", + "When deploying a deployment with a exceedingly large number of resources", + "Resource can't be retrieved due to list overhead quota exceed which captures the amount of resources filtered out by user-defined list filter.", + "A resource depends on a missing type", + "The route's nextHopIp address is not assigned to an instance on the network.", + "The route's next hop instance cannot ip forward.", + "The route's nextHopInstance URL refers to an instance that does not have an ipv6 interface on the same network as the route.", + "The route's nextHopInstance URL refers to an instance that does not exist.", + "The route's nextHopInstance URL refers to an instance that is not on the same network as the route.", + "The route's next hop instance does not have a status of RUNNING.", + "Error which is not critical. We decided to continue the process despite the mentioned error.", + "No results are present on a particular list page.", + "Success is reported, but some results may be missing due to errors", + "The user attempted to use a resource that requires a TOS they have not accepted.", + "Warning that a resource is in use.", + "One or more of the resources set to auto-delete could not be deleted because they were in use.", + "When a resource schema validation is ignored.", + "Instance template used in instance group manager is valid as such, but its application does not make a lot of sense, because it allows only single instance in instance group.", + "When undeclared properties in the schema are present", + "A given scope cannot be reached." + ], + "type": "string" + }, + "data": { + "description": "[Output Only] Metadata about this warning in key: value format. For example: \"data\": [ { \"key\": \"scope\", \"value\": \"zones/us-east1-d\" } ", + "items": { + "properties": { + "key": { + "description": "[Output Only] A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).", + "type": "string" + }, + "value": { + "description": "[Output Only] A warning data value corresponding to the key.", + "type": "string" + } + }, + "type": "object" + }, + "type": "array" + }, + "message": { + "description": "[Output Only] A human-readable description of the warning code.", + "type": "string" + } }, - "type": "array" + "type": "object" } }, "type": "object" @@ -53381,6 +55203,11 @@ "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, + "satisfiesPzi": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, "satisfiesPzs": { "description": "[Output Only] Reserved for future use.", "type": "boolean" @@ -55573,15 +57400,15 @@ "type": "string" }, "instance": { - "description": "The name for a specific VM instance that the IP address belongs to. This is required for network endpoints of type GCE_VM_IP_PORT. The instance must be in the same zone of network endpoint group. The name must be 1-63 characters long, and comply with RFC1035.", + "description": "The name or a URL of VM instance of this network endpoint. This field is required for network endpoints of type GCE_VM_IP and GCE_VM_IP_PORT. The instance must be in the same zone of network endpoint group (for zonal NEGs) or in the zone within the region of the NEG (for regional NEGs). If the ipAddress is specified, it must belongs to the VM instance. The name must be 1-63 characters long, and comply with RFC1035 or be a valid URL pointing to an existing instance.", "type": "string" }, "ipAddress": { - "description": "Optional IPv4 address of network endpoint. The IP address must belong to a VM in Compute Engine (either the primary IP or as part of an aliased IP range). If the IP address is not specified, then the primary IP address for the VM instance in the network that the network endpoint group belongs to will be used.", + "description": "Optional IPv4 address of network endpoint. The IP address must belong to a VM in Compute Engine (either the primary IP or as part of an aliased IP range). If the IP address is not specified, then the primary IP address for the VM instance in the network that the network endpoint group belongs to will be used. This field is redundant and need not be set for network endpoints of type GCE_VM_IP. If set, it must be set to the primary internal IP address of the attached VM instance that matches the subnetwork of the NEG. The primary internal IP address from any NIC of a multi-NIC VM instance can be added to a NEG as long as it matches the NEG subnetwork.", "type": "string" }, "port": { - "description": "Optional port number of network endpoint. If not specified, the defaultPort for the network endpoint group will be used.", + "description": "Optional port number of network endpoint. If not specified, the defaultPort for the network endpoint group will be used. This field can not be set for network endpoints of type GCE_VM_IP.", "format": "int32", "type": "integer" } @@ -55601,22 +57428,22 @@ }, "appEngine": { "$ref": "NetworkEndpointGroupAppEngine", - "description": "Only valid when networkEndpointType is \"SERVERLESS\". Only one of cloudRun, appEngine or cloudFunction may be set." + "description": "Only valid when networkEndpointType is SERVERLESS. Only one of cloudRun, appEngine or cloudFunction may be set." }, "cloudFunction": { "$ref": "NetworkEndpointGroupCloudFunction", - "description": "Only valid when networkEndpointType is \"SERVERLESS\". Only one of cloudRun, appEngine or cloudFunction may be set." + "description": "Only valid when networkEndpointType is SERVERLESS. Only one of cloudRun, appEngine or cloudFunction may be set." }, "cloudRun": { "$ref": "NetworkEndpointGroupCloudRun", - "description": "Only valid when networkEndpointType is \"SERVERLESS\". Only one of cloudRun, appEngine or cloudFunction may be set." + "description": "Only valid when networkEndpointType is SERVERLESS. Only one of cloudRun, appEngine or cloudFunction may be set." }, "creationTimestamp": { "description": "[Output Only] Creation timestamp in RFC3339 text format.", "type": "string" }, "defaultPort": { - "description": "The default port used if the port number is not specified in the network endpoint.", + "description": "The default port used if the port number is not specified in the network endpoint. If the network endpoint type is either GCE_VM_IP, SERVERLESS or PRIVATE_SERVICE_CONNECT, this field must not be specified.", "format": "int32", "type": "integer" }, @@ -55639,7 +57466,7 @@ "type": "string" }, "network": { - "description": "The URL of the network to which all network endpoints in the NEG belong. Uses \"default\" project network if unspecified.", + "description": "The URL of the network to which all network endpoints in the NEG belong. Uses default project network if unspecified.", "type": "string" }, "networkEndpointType": { @@ -55668,7 +57495,7 @@ "$ref": "NetworkEndpointGroupPscData" }, "pscTargetService": { - "description": "The target service url used to set up private service connection to a Google API or a PSC Producer Service Attachment. An example value is: \"asia-northeast3-cloudkms.googleapis.com\"", + "description": "The target service url used to set up private service connection to a Google API or a PSC Producer Service Attachment. An example value is: asia-northeast3-cloudkms.googleapis.com", "type": "string" }, "region": { @@ -55859,15 +57686,15 @@ "id": "NetworkEndpointGroupAppEngine", "properties": { "service": { - "description": "Optional serving service. The service name is case-sensitive and must be 1-63 characters long. Example value: \"default\", \"my-service\".", + "description": "Optional serving service. The service name is case-sensitive and must be 1-63 characters long. Example value: default, my-service.", "type": "string" }, "urlMask": { - "description": "A template to parse service and version fields from a request URL. URL mask allows for routing to multiple App Engine services without having to create multiple Network Endpoint Groups and backend services. For example, the request URLs \"foo1-dot-appname.appspot.com/v1\" and \"foo1-dot-appname.appspot.com/v2\" can be backed by the same Serverless NEG with URL mask \"-dot-appname.appspot.com/\". The URL mask will parse them to { service = \"foo1\", version = \"v1\" } and { service = \"foo1\", version = \"v2\" } respectively.", + "description": "An URL mask is one of the main components of the Cloud Function. A template to parse service and version fields from a request URL. URL mask allows for routing to multiple App Engine services without having to create multiple Network Endpoint Groups and backend services. For example, the request URLs foo1-dot-appname.appspot.com/v1 and foo1-dot-appname.appspot.com/v2 can be backed by the same Serverless NEG with URL mask -dot-appname.appspot.com/. The URL mask will parse them to { service = \"foo1\", version = \"v1\" } and { service = \"foo1\", version = \"v2\" } respectively.", "type": "string" }, "version": { - "description": "Optional serving version. The version name is case-sensitive and must be 1-100 characters long. Example value: \"v1\", \"v2\".", + "description": "Optional serving version. The version name is case-sensitive and must be 1-100 characters long. Example value: v1, v2.", "type": "string" } }, @@ -55878,11 +57705,11 @@ "id": "NetworkEndpointGroupCloudFunction", "properties": { "function": { - "description": "A user-defined name of the Cloud Function. The function name is case-sensitive and must be 1-63 characters long. Example value: \"func1\".", + "description": "A user-defined name of the Cloud Function. The function name is case-sensitive and must be 1-63 characters long. Example value: func1.", "type": "string" }, "urlMask": { - "description": "A template to parse function field from a request URL. URL mask allows for routing to multiple Cloud Functions without having to create multiple Network Endpoint Groups and backend services. For example, request URLs \" mydomain.com/function1\" and \"mydomain.com/function2\" can be backed by the same Serverless NEG with URL mask \"/\". The URL mask will parse them to { function = \"function1\" } and { function = \"function2\" } respectively.", + "description": "An URL mask is one of the main components of the Cloud Function. A template to parse function field from a request URL. URL mask allows for routing to multiple Cloud Functions without having to create multiple Network Endpoint Groups and backend services. For example, request URLs mydomain.com/function1 and mydomain.com/function2 can be backed by the same Serverless NEG with URL mask /. The URL mask will parse them to { function = \"function1\" } and { function = \"function2\" } respectively.", "type": "string" } }, @@ -55901,7 +57728,7 @@ "type": "string" }, "urlMask": { - "description": "A template to parse and fields from a request URL. URL mask allows for routing to multiple Run services without having to create multiple network endpoint groups and backend services. For example, request URLs \"foo1.domain.com/bar1\" and \"foo1.domain.com/bar2\" can be backed by the same Serverless Network Endpoint Group (NEG) with URL mask \".domain.com/\". The URL mask will parse them to { service=\"bar1\", tag=\"foo1\" } and { service=\"bar2\", tag=\"foo2\" } respectively.", + "description": "An URL mask is one of the main components of the Cloud Function. A template to parse and fields from a request URL. URL mask allows for routing to multiple Run services without having to create multiple network endpoint groups and backend services. For example, request URLs foo1.domain.com/bar1 and foo1.domain.com/bar2 can be backed by the same Serverless Network Endpoint Group (NEG) with URL mask .domain.com/. The URL mask will parse them to { service=\"bar1\", tag=\"foo1\" } and { service=\"bar2\", tag=\"foo2\" } respectively.", "type": "string" } }, @@ -59081,7 +60908,7 @@ "type": "object" }, "Operation": { - "description": "Represents an Operation resource. Google Compute Engine has three Operation resources: * [Global](/compute/docs/reference/rest/v1/globalOperations) * [Regional](/compute/docs/reference/rest/v1/regionOperations) * [Zonal](/compute/docs/reference/rest/v1/zoneOperations) You can use an operation resource to manage asynchronous API requests. For more information, read Handling API responses. Operations can be global, regional or zonal. - For global operations, use the `globalOperations` resource. - For regional operations, use the `regionOperations` resource. - For zonal operations, use the `zoneOperations` resource. For more information, read Global, Regional, and Zonal Resources.", + "description": "Represents an Operation resource. Google Compute Engine has three Operation resources: * [Global](/compute/docs/reference/rest/v1/globalOperations) * [Regional](/compute/docs/reference/rest/v1/regionOperations) * [Zonal](/compute/docs/reference/rest/v1/zoneOperations) You can use an operation resource to manage asynchronous API requests. For more information, read Handling API responses. Operations can be global, regional or zonal. - For global operations, use the `globalOperations` resource. - For regional operations, use the `regionOperations` resource. - For zonal operations, use the `zoneOperations` resource. For more information, read Global, Regional, and Zonal Resources. Note that completed Operation resources have a limited retention period.", "id": "Operation", "properties": { "clientOperationId": { @@ -60178,14 +62005,14 @@ "id": "PacketMirroringFilter", "properties": { "IPProtocols": { - "description": "Protocols that apply as filter on mirrored traffic. If no protocols are specified, all traffic that matches the specified CIDR ranges is mirrored. If neither cidrRanges nor IPProtocols is specified, all traffic is mirrored.", + "description": "Protocols that apply as filter on mirrored traffic. If no protocols are specified, all traffic that matches the specified CIDR ranges is mirrored. If neither cidrRanges nor IPProtocols is specified, all IPv4 traffic is mirrored.", "items": { "type": "string" }, "type": "array" }, "cidrRanges": { - "description": "IP CIDR ranges that apply as filter on the source (ingress) or destination (egress) IP in the IP header. Only IPv4 is supported. If no ranges are specified, all traffic that matches the specified IPProtocols is mirrored. If neither cidrRanges nor IPProtocols is specified, all traffic is mirrored.", + "description": "One or more IPv4 or IPv6 CIDR ranges that apply as filter on the source (ingress) or destination (egress) IP in the IP header. If no ranges are specified, all IPv4 traffic that matches the specified IPProtocols is mirrored. If neither cidrRanges nor IPProtocols is specified, all IPv4 traffic is mirrored. To mirror all IPv4 and IPv6 traffic, use \"0.0.0.0/0,::/0\". Note: Support for IPv6 traffic is in preview.", "items": { "type": "string" }, @@ -60847,6 +62674,20 @@ "description": "Represents a Project resource. A project is used to organize resources in a Google Cloud Platform environment. For more information, read about the Resource Hierarchy.", "id": "Project", "properties": { + "cloudArmorTier": { + "description": "[Output Only] The Cloud Armor tier for this project. It can be one of the following values: CA_STANDARD, CA_ENTERPRISE_PAYGO. If this field is not specified, it is assumed to be CA_STANDARD.", + "enum": [ + "CA_ENTERPRISE_ANNUAL", + "CA_ENTERPRISE_PAYGO", + "CA_STANDARD" + ], + "enumDescriptions": [ + "Enterprise tier protection billed annually.", + "Enterprise tier protection billed monthly.", + "Standard protection." + ], + "type": "string" + }, "commonInstanceMetadata": { "$ref": "Metadata", "description": "Metadata key/value pairs available to all instances contained in this project. See Custom metadata for more information." @@ -60998,6 +62839,26 @@ }, "type": "object" }, + "ProjectsSetCloudArmorTierRequest": { + "id": "ProjectsSetCloudArmorTierRequest", + "properties": { + "cloudArmorTier": { + "description": "Managed protection tier to be set.", + "enum": [ + "CA_ENTERPRISE_ANNUAL", + "CA_ENTERPRISE_PAYGO", + "CA_STANDARD" + ], + "enumDescriptions": [ + "Enterprise tier protection billed annually.", + "Enterprise tier protection billed monthly.", + "Standard protection." + ], + "type": "string" + } + }, + "type": "object" + }, "ProjectsSetDefaultNetworkTierRequest": { "id": "ProjectsSetDefaultNetworkTierRequest", "properties": { @@ -61935,6 +63796,7 @@ "COMMITTED_N2_CPUS", "COMMITTED_NVIDIA_A100_80GB_GPUS", "COMMITTED_NVIDIA_A100_GPUS", + "COMMITTED_NVIDIA_H100_GPUS", "COMMITTED_NVIDIA_K80_GPUS", "COMMITTED_NVIDIA_L4_GPUS", "COMMITTED_NVIDIA_P100_GPUS", @@ -61943,6 +63805,7 @@ "COMMITTED_NVIDIA_V100_GPUS", "COMMITTED_T2A_CPUS", "COMMITTED_T2D_CPUS", + "COMMITTED_Z3_CPUS", "CPUS", "CPUS_ALL_REGIONS", "DISKS_TOTAL_GB", @@ -62010,6 +63873,7 @@ "PREEMPTIBLE_LOCAL_SSD_GB", "PREEMPTIBLE_NVIDIA_A100_80GB_GPUS", "PREEMPTIBLE_NVIDIA_A100_GPUS", + "PREEMPTIBLE_NVIDIA_H100_GPUS", "PREEMPTIBLE_NVIDIA_K80_GPUS", "PREEMPTIBLE_NVIDIA_L4_GPUS", "PREEMPTIBLE_NVIDIA_P100_GPUS", @@ -62019,6 +63883,9 @@ "PREEMPTIBLE_NVIDIA_T4_GPUS", "PREEMPTIBLE_NVIDIA_T4_VWS_GPUS", "PREEMPTIBLE_NVIDIA_V100_GPUS", + "PREEMPTIBLE_TPU_LITE_DEVICE_V5", + "PREEMPTIBLE_TPU_LITE_PODSLICE_V5", + "PREEMPTIBLE_TPU_PODSLICE_V4", "PSC_ILB_CONSUMER_FORWARDING_RULES_PER_PRODUCER_NETWORK", "PSC_INTERNAL_LB_FORWARDING_RULES", "PUBLIC_ADVERTISED_PREFIXES", @@ -62056,6 +63923,9 @@ "TARGET_SSL_PROXIES", "TARGET_TCP_PROXIES", "TARGET_VPN_GATEWAYS", + "TPU_LITE_DEVICE_V5", + "TPU_LITE_PODSLICE_V5", + "TPU_PODSLICE_V4", "URL_MAPS", "VPN_GATEWAYS", "VPN_TUNNELS", @@ -62094,6 +63964,8 @@ "", "", "", + "", + "", "Guest CPUs", "", "", @@ -62191,6 +64063,10 @@ "", "", "", + "", + "", + "", + "", "The total number of snapshots allowed for a single project.", "", "", @@ -62210,6 +64086,9 @@ "", "", "", + "", + "", + "", "" ], "type": "string" @@ -63883,6 +65762,10 @@ "description": "Represents a reservation resource. A reservation ensures that capacity is held in a specific zone even if the reserved VMs are not running. For more information, read Reserving zonal resources.", "id": "Reservation", "properties": { + "aggregateReservation": { + "$ref": "AllocationAggregateReservation", + "description": "Reservation for aggregated resources, providing shape flexibility." + }, "commitment": { "description": "[Output Only] Full or partial URL to a parent commitment. This field displays for reservations that are tied to a commitment.", "type": "string" @@ -67248,7 +69131,7 @@ "type": "string" }, "portSpecification": { - "description": "Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for pass-through load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for pass-through load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports.", + "description": "Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for passthrough load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for passthrough load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports.", "enum": [ "USE_FIXED_PORT", "USE_NAMED_PORT", @@ -68401,6 +70284,10 @@ "$ref": "Expr", "description": "User defined CEVAL expression. A CEVAL expression is used to specify match criteria such as origin.ip, source.region_code and contents in the request header. Expressions containing `evaluateThreatIntelligence` require Cloud Armor Managed Protection Plus tier and are not supported in Edge Policies nor in Regional Policies. Expressions containing `evaluatePreconfiguredExpr('sourceiplist-*')` require Cloud Armor Managed Protection Plus tier and are only supported in Global Security Policies." }, + "exprOptions": { + "$ref": "SecurityPolicyRuleMatcherExprOptions", + "description": "The configuration options available when specifying a user defined CEVAL expression (i.e., 'expr')." + }, "versionedExpr": { "description": "Preconfigured versioned expression. If this field is specified, config must also be specified. Available preconfigured expressions along with their requirements are: SRC_IPS_V1 - must specify the corresponding src_ip_range field in config.", "enum": [ @@ -68427,6 +70314,36 @@ }, "type": "object" }, + "SecurityPolicyRuleMatcherExprOptions": { + "id": "SecurityPolicyRuleMatcherExprOptions", + "properties": { + "recaptchaOptions": { + "$ref": "SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions", + "description": "reCAPTCHA configuration options to be applied for the rule. If the rule does not evaluate reCAPTCHA tokens, this field has no effect." + } + }, + "type": "object" + }, + "SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions": { + "id": "SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions", + "properties": { + "actionTokenSiteKeys": { + "description": "A list of site keys to be used during the validation of reCAPTCHA action-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created.", + "items": { + "type": "string" + }, + "type": "array" + }, + "sessionTokenSiteKeys": { + "description": "A list of site keys to be used during the validation of reCAPTCHA session-tokens. The provided site keys need to be created from reCAPTCHA API under the same project where the security policy is created.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "SecurityPolicyRuleNetworkMatcher": { "description": "Represents a match condition that incoming network traffic is evaluated against.", "id": "SecurityPolicyRuleNetworkMatcher", @@ -68611,7 +70528,7 @@ "type": "string" }, "enforceOnKey": { - "description": "Determines the key to enforce the rate_limit_threshold on. Possible values are: - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if \"enforceOnKey\" is not configured. - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - HTTP_HEADER: The value of the HTTP header whose name is configured under \"enforceOnKeyName\". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under \"enforceOnKeyName\". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. - SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. - REGION_CODE: The country/region from which the request originates. ", + "description": "Determines the key to enforce the rate_limit_threshold on. Possible values are: - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if \"enforceOnKey\" is not configured. - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - HTTP_HEADER: The value of the HTTP header whose name is configured under \"enforceOnKeyName\". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under \"enforceOnKeyName\". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. - SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. - REGION_CODE: The country/region from which the request originates. - TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. - USER_IP: The IP address of the originating client, which is resolved based on \"userIpRequestHeaders\" configured with the security policy. If there is no \"userIpRequestHeaders\" configuration or an IP address cannot be resolved from it, the key type defaults to IP. ", "enum": [ "ALL", "HTTP_COOKIE", @@ -68620,6 +70537,8 @@ "IP", "REGION_CODE", "SNI", + "TLS_JA3_FINGERPRINT", + "USER_IP", "XFF_IP" ], "enumDescriptions": [ @@ -68630,6 +70549,8 @@ "", "", "", + "", + "", "" ], "type": "string" @@ -68668,7 +70589,7 @@ "type": "string" }, "enforceOnKeyType": { - "description": "Determines the key to enforce the rate_limit_threshold on. Possible values are: - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if \"enforceOnKeyConfigs\" is not configured. - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - HTTP_HEADER: The value of the HTTP header whose name is configured under \"enforceOnKeyName\". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under \"enforceOnKeyName\". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. - SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. - REGION_CODE: The country/region from which the request originates. ", + "description": "Determines the key to enforce the rate_limit_threshold on. Possible values are: - ALL: A single rate limit threshold is applied to all the requests matching this rule. This is the default value if \"enforceOnKeyConfigs\" is not configured. - IP: The source IP address of the request is the key. Each IP has this limit enforced separately. - HTTP_HEADER: The value of the HTTP header whose name is configured under \"enforceOnKeyName\". The key value is truncated to the first 128 bytes of the header value. If no such header is present in the request, the key type defaults to ALL. - XFF_IP: The first IP address (i.e. the originating client IP address) specified in the list of IPs under X-Forwarded-For HTTP header. If no such header is present or the value is not a valid IP, the key defaults to the source IP address of the request i.e. key type IP. - HTTP_COOKIE: The value of the HTTP cookie whose name is configured under \"enforceOnKeyName\". The key value is truncated to the first 128 bytes of the cookie value. If no such cookie is present in the request, the key type defaults to ALL. - HTTP_PATH: The URL path of the HTTP request. The key value is truncated to the first 128 bytes. - SNI: Server name indication in the TLS session of the HTTPS request. The key value is truncated to the first 128 bytes. The key type defaults to ALL on a HTTP session. - REGION_CODE: The country/region from which the request originates. - TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type defaults to ALL. - USER_IP: The IP address of the originating client, which is resolved based on \"userIpRequestHeaders\" configured with the security policy. If there is no \"userIpRequestHeaders\" configuration or an IP address cannot be resolved from it, the key type defaults to IP. ", "enum": [ "ALL", "HTTP_COOKIE", @@ -68677,6 +70598,8 @@ "IP", "REGION_CODE", "SNI", + "TLS_JA3_FINGERPRINT", + "USER_IP", "XFF_IP" ], "enumDescriptions": [ @@ -68687,6 +70610,8 @@ "", "", "", + "", + "", "" ], "type": "string" @@ -69701,6 +71626,10 @@ "format": "int64", "type": "string" }, + "enableConfidentialCompute": { + "description": "Whether this snapshot is created from a confidential compute mode disk. [Output Only]: This field is not set by user, but from source disk.", + "type": "boolean" + }, "guestOsFeatures": { "description": "[Output Only] A list of features to enable on the guest operating system. Applicable only for bootable images. Read Enabling guest operating system features to see a list of available options.", "items": { @@ -69760,6 +71689,11 @@ "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?", "type": "string" }, + "satisfiesPzi": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, "satisfiesPzs": { "description": "[Output Only] Reserved for future use.", "type": "boolean" @@ -69800,6 +71734,18 @@ "description": "[Output Only] The ID value of the disk used to create this snapshot. This value may be used to determine whether the snapshot was taken from the current or a previous instance of a given disk name.", "type": "string" }, + "sourceInstantSnapshot": { + "description": "The source instant snapshot used to create this snapshot. You can provide this as a partial or full URL to the resource. For example, the following are valid values: - https://www.googleapis.com/compute/v1/projects/project/zones/zone /instantSnapshots/instantSnapshot - projects/project/zones/zone/instantSnapshots/instantSnapshot - zones/zone/instantSnapshots/instantSnapshot ", + "type": "string" + }, + "sourceInstantSnapshotEncryptionKey": { + "$ref": "CustomerEncryptionKey", + "description": "Customer provided encryption key when creating Snapshot from Instant Snapshot." + }, + "sourceInstantSnapshotId": { + "description": "[Output Only] The unique ID of the instant snapshot used to create this snapshot. This value identifies the exact instant snapshot that was used to create this persistent disk. For example, if you created the persistent disk from an instant snapshot that was later deleted and recreated under the same name, the source instant snapshot ID would identify the exact instant snapshot that was used.", + "type": "string" + }, "sourceSnapshotSchedulePolicy": { "description": "[Output Only] URL of the resource policy which created this scheduled snapshot.", "type": "string" @@ -71229,7 +73175,7 @@ "type": "object" }, "SslPolicy": { - "description": "Represents an SSL Policy resource. Use SSL policies to control the SSL features, such as versions and cipher suites, offered by an HTTPS or SSL Proxy load balancer. For more information, read SSL Policy Concepts.", + "description": "Represents an SSL Policy resource. Use SSL policies to control SSL features, such as versions and cipher suites, that are offered by Application Load Balancers and proxy Network Load Balancers. For more information, read SSL policies overview.", "id": "SslPolicy", "properties": { "creationTimestamp": { @@ -71644,7 +73590,7 @@ "type": "string" }, "purpose": { - "description": "The purpose of the resource. This field can be either PRIVATE, REGIONAL_MANAGED_PROXY, PRIVATE_SERVICE_CONNECT, or INTERNAL_HTTPS_LOAD_BALANCER. PRIVATE is the default purpose for user-created subnets or subnets that are automatically created in auto mode networks. A subnet with purpose set to REGIONAL_MANAGED_PROXY is a user-created subnetwork that is reserved for regional Envoy-based load balancers. A subnet with purpose set to PRIVATE_SERVICE_CONNECT is used to publish services using Private Service Connect. A subnet with purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a proxy-only subnet that can be used only by regional internal HTTP(S) load balancers. Note that REGIONAL_MANAGED_PROXY is the preferred setting for all regional Envoy load balancers. If unspecified, the subnet purpose defaults to PRIVATE. The enableFlowLogs field isn't supported if the subnet purpose field is set to REGIONAL_MANAGED_PROXY.", + "description": "The purpose of the resource. This field can be either PRIVATE, GLOBAL_MANAGED_PROXY, REGIONAL_MANAGED_PROXY, PRIVATE_SERVICE_CONNECT, or PRIVATE is the default purpose for user-created subnets or subnets that are automatically created in auto mode networks. Subnets with purpose set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY are user-created subnetworks that are reserved for Envoy-based load balancers. A subnet with purpose set to PRIVATE_SERVICE_CONNECT is used to publish services using Private Service Connect. If unspecified, the subnet purpose defaults to PRIVATE. The enableFlowLogs field isn't supported if the subnet purpose field is set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY.", "enum": [ "GLOBAL_MANAGED_PROXY", "INTERNAL_HTTPS_LOAD_BALANCER", @@ -71656,7 +73602,7 @@ ], "enumDescriptions": [ "Subnet reserved for Global Envoy-based Load Balancing.", - "Subnet reserved for Internal HTTP(S) Load Balancing.", + "Subnet reserved for Internal HTTP(S) Load Balancing. This is a legacy purpose, please use REGIONAL_MANAGED_PROXY instead.", "Regular user created or automatically created subnet.", "Subnetwork used as source range for Private NAT Gateways.", "Regular user created or automatically created subnet.", @@ -71669,8 +73615,12 @@ "description": "URL of the region where the Subnetwork resides. This field can be set only at resource creation time.", "type": "string" }, + "reservedInternalRange": { + "description": "The URL of the reserved internal range.", + "type": "string" + }, "role": { - "description": "The role of subnetwork. Currently, this field is only used when purpose = REGIONAL_MANAGED_PROXY. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Envoy-based load balancers in a region. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE or is currently draining. This field can be updated with a patch request.", + "description": "The role of subnetwork. Currently, this field is only used when purpose is set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Envoy-based load balancers in a region. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE or is currently draining. This field can be updated with a patch request.", "enum": [ "ACTIVE", "BACKUP" @@ -72102,6 +74052,10 @@ "rangeName": { "description": "The name associated with this subnetwork secondary range, used when adding an alias IP range to a VM instance. The name must be 1-63 characters long, and comply with RFC1035. The name must be unique within the subnetwork.", "type": "string" + }, + "reservedInternalRange": { + "description": "The URL of the reserved internal range.", + "type": "string" } }, "type": "object" @@ -72290,7 +74244,7 @@ "type": "string" }, "portSpecification": { - "description": "Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for pass-through load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for pass-through load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports.", + "description": "Specifies how a port is selected for health checking. Can be one of the following values: USE_FIXED_PORT: Specifies a port number explicitly using the port field in the health check. Supported by backend services for passthrough load balancers and backend services for proxy load balancers. Not supported by target pools. The health check supports all backends supported by the backend service provided the backend can be health checked. For example, GCE_VM_IP network endpoint groups, GCE_VM_IP_PORT network endpoint groups, and instance group backends. USE_NAMED_PORT: Not supported. USE_SERVING_PORT: Provides an indirect method of specifying the health check port by referring to the backend service. Only supported by backend services for proxy load balancers. Not supported by target pools. Not supported by backend services for passthrough load balancers. Supports all backends that can be health checked; for example, GCE_VM_IP_PORT network endpoint groups and instance group backends. For GCE_VM_IP_PORT network endpoint group backends, the health check uses the port number specified for each endpoint in the network endpoint group. For instance group backends, the health check uses the port number determined by looking up the backend service's named port in the instance group's list of named ports.", "enum": [ "USE_FIXED_PORT", "USE_NAMED_PORT", @@ -74020,7 +75974,7 @@ "type": "object" }, "TargetPool": { - "description": "Represents a Target Pool resource. Target pools are used for network TCP/UDP load balancing. A target pool references member instances, an associated legacy HttpHealthCheck resource, and, optionally, a backup target pool. For more information, read Using target pools.", + "description": "Represents a Target Pool resource. Target pools are used with external passthrough Network Load Balancers. A target pool references member instances, an associated legacy HttpHealthCheck resource, and, optionally, a backup target pool. For more information, read Using target pools.", "id": "TargetPool", "properties": { "backupPool": { @@ -74683,7 +76637,7 @@ "type": "object" }, "TargetSslProxy": { - "description": "Represents a Target SSL Proxy resource. A target SSL proxy is a component of a SSL Proxy load balancer. Global forwarding rules reference a target SSL proxy, and the target proxy then references an external backend service. For more information, read Using Target Proxies.", + "description": "Represents a Target SSL Proxy resource. A target SSL proxy is a component of a Proxy Network Load Balancer. The forwarding rule references the target SSL proxy, and the target proxy then references a backend service. For more information, read Proxy Network Load Balancer overview.", "id": "TargetSslProxy", "properties": { "certificateMap": { @@ -75062,7 +77016,7 @@ "type": "object" }, "TargetTcpProxy": { - "description": "Represents a Target TCP Proxy resource. A target TCP proxy is a component of a TCP Proxy load balancer. Global forwarding rules reference target TCP proxy, and the target proxy then references an external backend service. For more information, read TCP Proxy Load Balancing overview.", + "description": "Represents a Target TCP Proxy resource. A target TCP proxy is a component of a Proxy Network Load Balancer. The forwarding rule references the target TCP proxy, and the target proxy then references a backend service. For more information, read Proxy Network Load Balancer overview.", "id": "TargetTcpProxy", "properties": { "creationTimestamp": { @@ -76809,7 +78763,7 @@ "type": "string" }, "purpose": { - "description": "The purpose of the resource. This field can be either PRIVATE, REGIONAL_MANAGED_PROXY, PRIVATE_SERVICE_CONNECT, or INTERNAL_HTTPS_LOAD_BALANCER. PRIVATE is the default purpose for user-created subnets or subnets that are automatically created in auto mode networks. A subnet with purpose set to REGIONAL_MANAGED_PROXY is a user-created subnetwork that is reserved for regional Envoy-based load balancers. A subnet with purpose set to PRIVATE_SERVICE_CONNECT is used to publish services using Private Service Connect. A subnet with purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a proxy-only subnet that can be used only by regional internal HTTP(S) load balancers. Note that REGIONAL_MANAGED_PROXY is the preferred setting for all regional Envoy load balancers. If unspecified, the subnet purpose defaults to PRIVATE. The enableFlowLogs field isn't supported if the subnet purpose field is set to REGIONAL_MANAGED_PROXY.", + "description": "The purpose of the resource. This field can be either PRIVATE, GLOBAL_MANAGED_PROXY, REGIONAL_MANAGED_PROXY, PRIVATE_SERVICE_CONNECT, or PRIVATE is the default purpose for user-created subnets or subnets that are automatically created in auto mode networks. Subnets with purpose set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY are user-created subnetworks that are reserved for Envoy-based load balancers. A subnet with purpose set to PRIVATE_SERVICE_CONNECT is used to publish services using Private Service Connect. If unspecified, the subnet purpose defaults to PRIVATE. The enableFlowLogs field isn't supported if the subnet purpose field is set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY.", "enum": [ "GLOBAL_MANAGED_PROXY", "INTERNAL_HTTPS_LOAD_BALANCER", @@ -76821,7 +78775,7 @@ ], "enumDescriptions": [ "Subnet reserved for Global Envoy-based Load Balancing.", - "Subnet reserved for Internal HTTP(S) Load Balancing.", + "Subnet reserved for Internal HTTP(S) Load Balancing. This is a legacy purpose, please use REGIONAL_MANAGED_PROXY instead.", "Regular user created or automatically created subnet.", "Subnetwork used as source range for Private NAT Gateways.", "Regular user created or automatically created subnet.", @@ -76831,7 +78785,7 @@ "type": "string" }, "role": { - "description": "The role of subnetwork. Currently, this field is only used when purpose = REGIONAL_MANAGED_PROXY. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Envoy-based load balancers in a region. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE or is currently draining. This field can be updated with a patch request.", + "description": "The role of subnetwork. Currently, this field is only used when purpose is set to GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY. The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used for Envoy-based load balancers in a region. A BACKUP subnetwork is one that is ready to be promoted to ACTIVE or is currently draining. This field can be updated with a patch request.", "enum": [ "ACTIVE", "BACKUP" @@ -77312,6 +79266,18 @@ "description": "An optional description of this resource. Provide this property when you create the resource.", "type": "string" }, + "gatewayIpVersion": { + "description": "The IP family of the gateway IPs for the HA-VPN gateway interfaces. If not specified, IPV4 will be used.", + "enum": [ + "IPV4", + "IPV6" + ], + "enumDescriptions": [ + "Every HA-VPN gateway interface is configured with an IPv4 address.", + "Every HA-VPN gateway interface is configured with an IPv6 address." + ], + "type": "string" + }, "id": { "description": "[Output Only] The unique identifier for the resource. This identifier is defined by the server.", "format": "uint64", @@ -77799,6 +79765,10 @@ "ipAddress": { "description": "[Output Only] IP address for this VPN interface associated with the VPN gateway. The IP address could be either a regional external IP address or a regional internal IP address. The two IP addresses for a VPN gateway must be all regional external or regional internal IP addresses. There cannot be a mix of regional external IP addresses and regional internal IP addresses. For HA VPN over Cloud Interconnect, the IP addresses for both interfaces could either be regional internal IP addresses or regional external IP addresses. For regular (non HA VPN over Cloud Interconnect) HA VPN tunnels, the IP address must be a regional external IP address.", "type": "string" + }, + "ipv6Address": { + "description": "[Output Only] IPv6 address for this VPN interface associated with the VPN gateway. The IPv6 address must be a regional external IPv6 address. The format is RFC 5952 format (e.g. 2001:db8::2d9:51:0:0).", + "type": "string" } }, "type": "object" diff --git a/discovery/googleapis/connectors__v1.json b/discovery/googleapis/connectors__v1.json index 27aa1bde8..0a9eed2a3 100644 --- a/discovery/googleapis/connectors__v1.json +++ b/discovery/googleapis/connectors__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231106", + "revision": "20240221", "rootUrl": "https://connectors.googleapis.com/", "servicePath": "", "title": "Connectors API", @@ -482,6 +482,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "listenEvent": { + "description": "ListenEvent listens to the event.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}:listenEvent", + "httpMethod": "POST", + "id": "connectors.projects.locations.connections.listenEvent", + "parameterOrder": [ + "resourcePath" + ], + "parameters": { + "resourcePath": { + "description": "Required. Resource path for request.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resourcePath}:listenEvent", + "request": { + "$ref": "ListenEventRequest" + }, + "response": { + "$ref": "ListenEventResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "patch": { "description": "Updates the parameters of a single Connection.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}", @@ -1363,6 +1391,11 @@ "name" ], "parameters": { + "force": { + "description": "Optional. If set to true, any customConnectorVersion which is a child resource will also be deleted. https://aip.dev/135#cascading-delete", + "location": "query", + "type": "boolean" + }, "name": { "description": "Required. Resource name of the form: `projects/{project}/locations/{location}/customConnectors/{connector}`", "location": "path", @@ -2397,7 +2430,8 @@ "OAUTH2_JWT_BEARER", "OAUTH2_CLIENT_CREDENTIALS", "SSH_PUBLIC_KEY", - "OAUTH2_AUTH_CODE_FLOW" + "OAUTH2_AUTH_CODE_FLOW", + "GOOGLE_AUTHENTICATION" ], "enumDescriptions": [ "Authentication type not specified.", @@ -2405,7 +2439,8 @@ "JSON Web Token (JWT) Profile for Oauth 2.0 Authorization Grant based authentication", "Oauth 2.0 Client Credentials Grant Authentication", "SSH Public Key Authentication", - "Oauth 2.0 Authorization Code Flow" + "Oauth 2.0 Authorization Code Flow", + "Google authentication" ], "type": "string" }, @@ -2448,7 +2483,8 @@ "OAUTH2_JWT_BEARER", "OAUTH2_CLIENT_CREDENTIALS", "SSH_PUBLIC_KEY", - "OAUTH2_AUTH_CODE_FLOW" + "OAUTH2_AUTH_CODE_FLOW", + "GOOGLE_AUTHENTICATION" ], "enumDescriptions": [ "Authentication type not specified.", @@ -2456,7 +2492,8 @@ "JSON Web Token (JWT) Profile for Oauth 2.0 Authorization Grant based authentication", "Oauth 2.0 Client Credentials Grant Authentication", "SSH Public Key Authentication", - "Oauth 2.0 Authorization Code Flow" + "Oauth 2.0 Authorization Code Flow", + "Google authentication" ], "type": "string" }, @@ -2513,14 +2550,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -2595,6 +2632,24 @@ "description": "Key of the config variable.", "type": "string" }, + "locationType": { + "description": "Optional. Location Tyep denotes where this value should be sent in BYOC connections.", + "enum": [ + "LOCATION_TYPE_UNSPECIFIED", + "HEADER", + "PAYLOAD", + "QUERY_PARAM", + "PATH_PARAM" + ], + "enumDescriptions": [ + "Location type unspecified.", + "Request header.", + "Request Payload.", + "Request query param.", + "Request path param." + ], + "type": "string" + }, "required": { "description": "Flag represents that this `ConfigVariable` must be provided for a connection.", "type": "boolean" @@ -2846,6 +2901,10 @@ "readOnly": true, "type": "array" }, + "errorMessage": { + "description": "Error message for users.", + "type": "string" + }, "name": { "description": "Output only. Resource name. Format: projects/{project}/locations/{location}/connections/{connection}/connectionSchemaMetadata", "readOnly": true, @@ -3177,6 +3236,26 @@ "description": "Output only. Information about the runtime features supported by the Connector.", "readOnly": true }, + "unsupportedConnectionTypes": { + "description": "Output only. Unsupported connection types.", + "items": { + "enum": [ + "CONNECTION_TYPE_UNSPECIFIED", + "CONNECTION_WITH_EVENTING", + "ONLY_CONNECTION", + "ONLY_EVENTING" + ], + "enumDescriptions": [ + "Connection type is unspecified.", + "Connection with eventing.", + "Only connection.", + "Only eventing." + ], + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "updateTime": { "description": "Output only. Updated time.", "format": "google-datetime", @@ -3196,6 +3275,20 @@ "readOnly": true, "type": "string" }, + "deploymentModel": { + "description": "Optional. Indicates whether connector is deployed on GKE/CloudRun", + "enum": [ + "DEPLOYMENT_MODEL_UNSPECIFIED", + "GKE_MST", + "CLOUD_RUN_MST" + ], + "enumDescriptions": [ + "Deployment model is not specified.", + "Default model gke mst.", + "Cloud run mst." + ], + "type": "string" + }, "hpaConfig": { "$ref": "HPAConfig", "description": "Output only. HPA autoscaling config.", @@ -3246,6 +3339,13 @@ "description": "CustomConnector represents the custom connector defined by the customer as part of byoc.", "id": "CustomConnector", "properties": { + "activeConnectorVersions": { + "description": "Optional. Active connector versions.", + "items": { + "type": "string" + }, + "type": "array" + }, "createTime": { "description": "Output only. Created time.", "format": "google-datetime", @@ -3281,25 +3381,6 @@ "description": "Optional. Resource labels to represent user-provided metadata. Refer to cloud documentation on labels for more details. https://cloud.google.com/compute/docs/labeling-resources", "type": "object" }, - "launchStage": { - "description": "Output only. Launch stage.", - "enum": [ - "LAUNCH_STAGE_UNSPECIFIED", - "PREVIEW", - "GA", - "DEPRECATED", - "PRIVATE_PREVIEW" - ], - "enumDescriptions": [ - "LAUNCH_STAGE_UNSPECIFIED.", - "PREVIEW.", - "GA.", - "DEPRECATED.", - "PRIVATE_PREVIEW." - ], - "readOnly": true, - "type": "string" - }, "logo": { "description": "Optional. Logo of the resource.", "type": "string" @@ -3323,7 +3404,14 @@ "properties": { "authConfig": { "$ref": "AuthConfig", - "description": "Required. Configuration for establishing the authentication to the connector destination." + "description": "Optional. Authentication config for accessing connector facade/ proxy. This is used only when enable_backend_destination_config is true." + }, + "backendVariableTemplates": { + "description": "Optional. Backend variables config templates. This translates to additional variable templates in connection.", + "items": { + "$ref": "ConfigVariableTemplate" + }, + "type": "array" }, "createTime": { "description": "Output only. Created time.", @@ -3331,12 +3419,15 @@ "readOnly": true, "type": "string" }, - "destinationConfig": { - "$ref": "DestinationConfig", - "description": "Required. Configuration of the customConnector's destination." + "destinationConfigs": { + "description": "Optional. Destination config(s) for accessing connector facade/ proxy. This is used only when enable_backend_destination_config is true.", + "items": { + "$ref": "DestinationConfig" + }, + "type": "array" }, "enableBackendDestinationConfig": { - "description": "Optional. Whether to enable backend destination config. This is the backend server that the connector connects to.", + "description": "Optional. When enabled, the connector will be a facade/ proxy, and connects to the destination provided during connection creation.", "type": "boolean" }, "labels": { @@ -3351,22 +3442,27 @@ "readOnly": true, "type": "string" }, + "serviceAccount": { + "description": "Optional. Service account used by runtime plane to access auth config secrets.", + "type": "string" + }, "specLocation": { - "description": "Optional. Location of the custom connector spec.", + "description": "Optional. Location of the custom connector spec. The location can be either a public url like `https://public-url.com/spec` Or a Google Cloud Storage location like `gs:///`", "type": "string" }, - "type": { - "description": "Required. Type of the customConnector.", + "state": { + "description": "Output only. State of the custom connector version.", "enum": [ - "CUSTOM_CONNECTOR_TYPE_UNSPECIFIED", - "OPEN_API", - "PROTO" + "STATE_UNSPECIFIED", + "ACTIVE", + "DEPRECATED" ], "enumDescriptions": [ - "Connector type is not specified.", - "OpenAPI connector.", - "Proto connector." + "State Unspecified.", + "Active state. By default we set the state to Active.", + "Deprecated state." ], + "readOnly": true, "type": "string" }, "updateTime": { @@ -3378,6 +3474,78 @@ }, "type": "object" }, + "DailyCycle": { + "description": "Time window specified for daily operations.", + "id": "DailyCycle", + "properties": { + "duration": { + "description": "Output only. Duration of the time window, set by service producer.", + "format": "google-duration", + "type": "string" + }, + "startTime": { + "$ref": "TimeOfDay", + "description": "Time within the day to start the operations." + } + }, + "type": "object" + }, + "Date": { + "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "id": "Date", + "properties": { + "day": { + "description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", + "format": "int32", + "type": "integer" + }, + "month": { + "description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", + "format": "int32", + "type": "integer" + }, + "year": { + "description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "DeadLetterConfig": { + "description": "Dead Letter configuration details provided by the user.", + "id": "DeadLetterConfig", + "properties": { + "projectId": { + "description": "Optional. Project which has the topic given.", + "type": "string" + }, + "topic": { + "description": "Optional. Topic to push events which couldn't be processed.", + "type": "string" + } + }, + "type": "object" + }, + "DenyMaintenancePeriod": { + "description": "DenyMaintenancePeriod definition. Maintenance is forbidden within the deny period. The start_date must be less than the end_date.", + "id": "DenyMaintenancePeriod", + "properties": { + "endDate": { + "$ref": "Date", + "description": "Deny period end date. This can be: * A full date, with non-zero year, month and day values. * A month and day value, with a zero year. Allows recurring deny periods each year. Date matching this period will have to be before the end." + }, + "startDate": { + "$ref": "Date", + "description": "Deny period start date. This can be: * A full date, with non-zero year, month and day values. * A month and day value, with a zero year. Allows recurring deny periods each year. Date matching this period will have to be the same or after the start." + }, + "time": { + "$ref": "TimeOfDay", + "description": "Time in UTC when the Blackout period starts on start_date and ends on end_date. This can be: * Full time. * All zeros for 00:00:00 UTC" + } + }, + "type": "object" + }, "Destination": { "id": "Destination", "properties": { @@ -3507,9 +3675,9 @@ "CMEK" ], "enumDescriptions": [ - "Egress mode unspecified.", - "Network egress through auto assigned IPs.", - "Network egress through static IPs." + "Encryption type unspecified.", + "Google managed encryption keys", + "Customer managed encryption keys." ], "type": "string" }, @@ -3793,9 +3961,9 @@ "$ref": "AuthConfig", "description": "Auth details for the webhook adapter." }, - "encryptionKey": { - "$ref": "ConfigVariable", - "description": "Encryption key (can be either Google managed or CMEK)." + "deadLetterConfig": { + "$ref": "DeadLetterConfig", + "description": "Optional. Dead letter configuration for eventing of a connection." }, "enrichmentEnabled": { "description": "Enrichment Enabled.", @@ -3805,13 +3973,28 @@ "description": "Optional. Ingress endpoint of the event listener. This is used only when private connectivity is enabled.", "type": "string" }, + "listenerAuthConfig": { + "$ref": "AuthConfig", + "description": "Optional. Auth details for the event listener." + }, "privateConnectivityEnabled": { "description": "Optional. Private Connectivity Enabled.", "type": "boolean" }, + "proxyDestinationConfig": { + "$ref": "DestinationConfig", + "description": "Optional. Proxy for Eventing auto-registration." + }, "registrationDestinationConfig": { "$ref": "DestinationConfig", "description": "Registration endpoint for auto registration." + }, + "triggerConfigVariables": { + "description": "Optional. Additional eventing related field values", + "items": { + "$ref": "ConfigVariable" + }, + "type": "array" } }, "type": "object" @@ -3868,9 +4051,27 @@ "description": "Is Eventing Supported.", "type": "boolean" }, + "listenerAuthConfigTemplates": { + "description": "ListenerAuthConfigTemplates represents the auth values for the event listener.", + "items": { + "$ref": "AuthConfigTemplate" + }, + "type": "array" + }, + "proxyDestinationConfig": { + "$ref": "DestinationConfigTemplate", + "description": "Proxy destination config template." + }, "registrationDestinationConfig": { "$ref": "DestinationConfigTemplate", "description": "Registration host destination config template." + }, + "triggerConfigVariables": { + "description": "Trigger Config fields that needs to be rendered", + "items": { + "$ref": "ConfigVariableTemplate" + }, + "type": "array" } }, "type": "object" @@ -4484,6 +4685,129 @@ }, "type": "object" }, + "Instance": { + "description": "Instance represents the interface for SLM services to actuate the state of control plane resources. Example Instance in JSON, where consumer-project-number=123456, producer-project-id=cloud-sql: ```json Instance: { \"name\": \"projects/123456/locations/us-east1/instances/prod-instance\", \"create_time\": { \"seconds\": 1526406431, }, \"labels\": { \"env\": \"prod\", \"foo\": \"bar\" }, \"state\": READY, \"software_versions\": { \"software_update\": \"cloud-sql-09-28-2018\", }, \"maintenance_policy_names\": { \"UpdatePolicy\": \"projects/123456/locations/us-east1/maintenancePolicies/prod-update-policy\", } \"tenant_project_id\": \"cloud-sql-test-tenant\", \"producer_metadata\": { \"cloud-sql-tier\": \"basic\", \"cloud-sql-instance-size\": \"1G\", }, \"provisioned_resources\": [ { \"resource-type\": \"compute-instance\", \"resource-url\": \"https://www.googleapis.com/compute/v1/projects/cloud-sql/zones/us-east1-b/instances/vm-1\", } ], \"maintenance_schedules\": { \"csa_rollout\": { \"start_time\": { \"seconds\": 1526406431, }, \"end_time\": { \"seconds\": 1535406431, }, }, \"ncsa_rollout\": { \"start_time\": { \"seconds\": 1526406431, }, \"end_time\": { \"seconds\": 1535406431, }, } }, \"consumer_defined_name\": \"my-sql-instance1\", } ``` LINT.IfChange", + "id": "Instance", + "properties": { + "consumerDefinedName": { + "description": "consumer_defined_name is the name of the instance set by the service consumers. Generally this is different from the `name` field which reperesents the system-assigned id of the instance which the service consumers do not recognize. This is a required field for tenants onboarding to Maintenance Window notifications (go/slm-rollout-maintenance-policies#prerequisites).", + "type": "string" + }, + "createTime": { + "description": "Output only. Timestamp when the resource was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "instanceType": { + "description": "Optional. The instance_type of this instance of format: projects/{project_number}/locations/{location_id}/instanceTypes/{instance_type_id}. Instance Type represents a high-level tier or SKU of the service that this instance belong to. When enabled(eg: Maintenance Rollout), Rollout uses 'instance_type' along with 'software_versions' to determine whether instance needs an update or not.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Resource labels to represent user provided metadata. Each label is a key-value pair, where both the key and the value are arbitrary strings provided by the user.", + "type": "object" + }, + "maintenancePolicyNames": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. The MaintenancePolicies that have been attached to the instance. The key must be of the type name of the oneof policy name defined in MaintenancePolicy, and the referenced policy must define the same policy type. For details, please refer to go/mr-user-guide. Should not be set if maintenance_settings.maintenance_policies is set.", + "type": "object" + }, + "maintenanceSchedules": { + "additionalProperties": { + "$ref": "MaintenanceSchedule" + }, + "description": "The MaintenanceSchedule contains the scheduling information of published maintenance schedule with same key as software_versions.", + "type": "object" + }, + "maintenanceSettings": { + "$ref": "MaintenanceSettings", + "description": "Optional. The MaintenanceSettings associated with instance." + }, + "name": { + "description": "Unique name of the resource. It uses the form: `projects/{project_number}/locations/{location_id}/instances/{instance_id}` Note: This name is passed, stored and logged across the rollout system. So use of consumer project_id or any other consumer PII in the name is strongly discouraged for wipeout (go/wipeout) compliance. See go/elysium/project_ids#storage-guidance for more details.", + "type": "string" + }, + "notificationParameters": { + "additionalProperties": { + "$ref": "NotificationParameter" + }, + "description": "Optional. notification_parameter are information that service producers may like to include that is not relevant to Rollout. This parameter will only be passed to Gamma and Cloud Logging for notification/logging purpose.", + "type": "object" + }, + "producerMetadata": { + "additionalProperties": { + "type": "string" + }, + "description": "Output only. Custom string attributes used primarily to expose producer-specific information in monitoring dashboards. See go/get-instance-metadata.", + "readOnly": true, + "type": "object" + }, + "provisionedResources": { + "description": "Output only. The list of data plane resources provisioned for this instance, e.g. compute VMs. See go/get-instance-metadata.", + "items": { + "$ref": "ProvisionedResource" + }, + "readOnly": true, + "type": "array" + }, + "slmInstanceTemplate": { + "description": "Link to the SLM instance template. Only populated when updating SLM instances via SSA's Actuation service adaptor. Service producers with custom control plane (e.g. Cloud SQL) doesn't need to populate this field. Instead they should use software_versions.", + "type": "string" + }, + "sloMetadata": { + "$ref": "SloMetadata", + "description": "Output only. SLO metadata for instance classification in the Standardized dataplane SLO platform. See go/cloud-ssa-standard-slo for feature description.", + "readOnly": true + }, + "softwareVersions": { + "additionalProperties": { + "type": "string" + }, + "description": "Software versions that are used to deploy this instance. This can be mutated by rollout services.", + "type": "object" + }, + "state": { + "description": "Output only. Current lifecycle state of the resource (e.g. if it's being created or ready to use).", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "READY", + "UPDATING", + "REPAIRING", + "DELETING", + "ERROR" + ], + "enumDescriptions": [ + "Unspecified state.", + "Instance is being created.", + "Instance has been created and is ready to use.", + "Instance is being updated.", + "Instance is unheathy and under repair.", + "Instance is being deleted.", + "Instance encountered an error and is in indeterministic state." + ], + "readOnly": true, + "type": "string" + }, + "tenantProjectId": { + "description": "Output only. ID of the associated GCP tenant project. See go/get-instance-metadata.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. Timestamp when the resource was last modified.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "JMS": { "description": "JMS message denotes the source of the event", "id": "JMS", @@ -5068,6 +5392,27 @@ }, "type": "object" }, + "ListenEventRequest": { + "description": "Expected request for ListenEvent API.", + "id": "ListenEventRequest", + "properties": { + "payload": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Optional. Request payload.", + "type": "object" + } + }, + "type": "object" + }, + "ListenEventResponse": { + "description": "Expected response for ListenEvent API.", + "id": "ListenEventResponse", + "properties": {}, + "type": "object" + }, "Location": { "description": "A resource that represents a Google Cloud location.", "id": "Location", @@ -5152,6 +5497,124 @@ }, "type": "object" }, + "MaintenancePolicy": { + "description": "LINT.IfChange Defines policies to service maintenance events.", + "id": "MaintenancePolicy", + "properties": { + "createTime": { + "description": "Output only. The time when the resource was created.", + "format": "google-datetime", + "type": "string" + }, + "description": { + "description": "Optional. Description of what this policy is for. Create/Update methods return INVALID_ARGUMENT if the length is greater than 512.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Resource labels to represent user provided metadata. Each label is a key-value pair, where both the key and the value are arbitrary strings provided by the user.", + "type": "object" + }, + "name": { + "description": "Required. MaintenancePolicy name using the form: `projects/{project_id}/locations/{location_id}/maintenancePolicies/{maintenance_policy_id}` where {project_id} refers to a GCP consumer project ID, {location_id} refers to a GCP region/zone, {maintenance_policy_id} must be 1-63 characters long and match the regular expression `[a-z0-9]([-a-z0-9]*[a-z0-9])?`.", + "type": "string" + }, + "state": { + "description": "Optional. The state of the policy.", + "enum": [ + "STATE_UNSPECIFIED", + "READY", + "DELETING" + ], + "enumDescriptions": [ + "Unspecified state.", + "Resource is ready to be used.", + "Resource is being deleted. It can no longer be attached to instances." + ], + "type": "string" + }, + "updatePolicy": { + "$ref": "UpdatePolicy", + "description": "Maintenance policy applicable to instance update." + }, + "updateTime": { + "description": "Output only. The time when the resource was updated.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "MaintenanceSchedule": { + "description": "Maintenance schedule which is exposed to customer and potentially end user, indicating published upcoming future maintenance schedule", + "id": "MaintenanceSchedule", + "properties": { + "canReschedule": { + "deprecated": true, + "description": "This field is deprecated, and will be always set to true since reschedule can happen multiple times now. This field should not be removed until all service producers remove this for their customers.", + "type": "boolean" + }, + "endTime": { + "description": "The scheduled end time for the maintenance.", + "format": "google-datetime", + "type": "string" + }, + "rolloutManagementPolicy": { + "description": "The rollout management policy this maintenance schedule is associated with. When doing reschedule update request, the reschedule should be against this given policy.", + "type": "string" + }, + "scheduleDeadlineTime": { + "description": "schedule_deadline_time is the time deadline any schedule start time cannot go beyond, including reschedule. It's normally the initial schedule start time plus maintenance window length (1 day or 1 week). Maintenance cannot be scheduled to start beyond this deadline.", + "format": "google-datetime", + "type": "string" + }, + "startTime": { + "description": "The scheduled start time for the maintenance.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "MaintenanceSettings": { + "description": "Maintenance settings associated with instance. Allows service producers and end users to assign settings that controls maintenance on this instance.", + "id": "MaintenanceSettings", + "properties": { + "exclude": { + "description": "Optional. Exclude instance from maintenance. When true, rollout service will not attempt maintenance on the instance. Rollout service will include the instance in reported rollout progress as not attempted.", + "type": "boolean" + }, + "isRollback": { + "description": "Optional. If the update call is triggered from rollback, set the value as true.", + "type": "boolean" + }, + "maintenancePolicies": { + "additionalProperties": { + "$ref": "MaintenancePolicy" + }, + "description": "Optional. The MaintenancePolicies that have been attached to the instance. The key must be of the type name of the oneof policy name defined in MaintenancePolicy, and the embedded policy must define the same policy type. For details, please refer to go/mr-user-guide. Should not be set if maintenance_policy_names is set. If only the name is needed, then only populate MaintenancePolicy.name.", + "type": "object" + } + }, + "type": "object" + }, + "MaintenanceWindow": { + "description": "MaintenanceWindow definition.", + "id": "MaintenanceWindow", + "properties": { + "dailyCycle": { + "$ref": "DailyCycle", + "description": "Daily cycle." + }, + "weeklyCycle": { + "$ref": "WeeklyCycle", + "description": "Weekly cycle." + } + }, + "type": "object" + }, "ManagedZone": { "description": "represents the Connector's Managed Zone resource", "id": "ManagedZone", @@ -5245,6 +5708,39 @@ }, "type": "object" }, + "NodeSloMetadata": { + "description": "Node information for custom per-node SLO implementations. SSA does not support per-node SLO, but producers can populate per-node information in SloMetadata for custom precomputations. SSA Eligibility Exporter will emit per-node metric based on this information.", + "id": "NodeSloMetadata", + "properties": { + "location": { + "description": "The location of the node, if different from instance location.", + "type": "string" + }, + "nodeId": { + "description": "The id of the node. This should be equal to SaasInstanceNode.node_id.", + "type": "string" + }, + "perSliEligibility": { + "$ref": "PerSliSloEligibility", + "description": "If present, this will override eligibility for the node coming from instance or exclusions for specified SLIs." + } + }, + "type": "object" + }, + "NotificationParameter": { + "description": "Contains notification related data.", + "id": "NotificationParameter", + "properties": { + "values": { + "description": "Optional. Array of string values. e.g. instance's replica information.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "Oauth2AuthCodeFlow": { "description": "Parameters to support Oauth 2.0 Auth Code Grant Authentication. See https://www.rfc-editor.org/rfc/rfc6749#section-1.3.1 for more details.", "id": "Oauth2AuthCodeFlow", @@ -5396,6 +5892,20 @@ }, "type": "object" }, + "PerSliSloEligibility": { + "description": "PerSliSloEligibility is a mapping from an SLI name to eligibility.", + "id": "PerSliSloEligibility", + "properties": { + "eligibilities": { + "additionalProperties": { + "$ref": "SloEligibility" + }, + "description": "An entry in the eligibilities map specifies an eligibility for a particular SLI for the given instance. The SLI key in the name must be a valid SLI name specified in the Eligibility Exporter binary flags otherwise an error will be emitted by Eligibility Exporter and the oncaller will be alerted. If an SLI has been defined in the binary flags but the eligibilities map does not contain it, the corresponding SLI time series will not be emitted by the Eligibility Exporter. This ensures a smooth rollout and compatibility between the data produced by different versions of the Eligibility Exporters. If eligibilities map contains a key for an SLI which has not been declared in the binary flags, there will be an error message emitted in the Eligibility Exporter log and the metric for the SLI in question will not be emitted.", + "type": "object" + } + }, + "type": "object" + }, "Policy": { "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", "id": "Policy", @@ -5503,6 +6013,21 @@ }, "type": "object" }, + "ProvisionedResource": { + "description": "Describes provisioned dataplane resources.", + "id": "ProvisionedResource", + "properties": { + "resourceType": { + "description": "Type of the resource. This can be either a GCP resource or a custom one (e.g. another cloud provider's VM). For GCP compute resources use singular form of the names listed in GCP compute API documentation (https://cloud.google.com/compute/docs/reference/rest/v1/), prefixed with 'compute-', for example: 'compute-instance', 'compute-disk', 'compute-autoscaler'.", + "type": "string" + }, + "resourceUrl": { + "description": "URL identifying the resource, e.g. \"https://www.googleapis.com/compute/v1/projects/...)\".", + "type": "string" + } + }, + "type": "object" + }, "RefreshConnectionSchemaMetadataRequest": { "description": "Request message for ConnectorsService.RefreshConnectionSchemaMetadata.", "id": "RefreshConnectionSchemaMetadataRequest", @@ -5525,6 +6050,11 @@ "networkConfig": { "$ref": "NetworkConfig", "description": "Optional. Regional network config." + }, + "provisioned": { + "description": "Output only. Specifies whether the region is provisioned.", + "readOnly": true, + "type": "boolean" } }, "type": "object" @@ -5959,6 +6489,46 @@ }, "type": "object" }, + "Schedule": { + "description": "Configure the schedule.", + "id": "Schedule", + "properties": { + "day": { + "description": "Allows to define schedule that runs specified day of the week.", + "enum": [ + "DAY_OF_WEEK_UNSPECIFIED", + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY", + "SUNDAY" + ], + "enumDescriptions": [ + "The day of the week is unspecified.", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday", + "Sunday" + ], + "type": "string" + }, + "duration": { + "description": "Output only. Duration of the time window, set by service producer.", + "format": "google-duration", + "type": "string" + }, + "startTime": { + "$ref": "TimeOfDay", + "description": "Time within the window to start the operations." + } + }, + "type": "object" + }, "Secret": { "description": "Secret provides a reference to entries in Secret Manager.", "id": "Secret", @@ -6012,6 +6582,43 @@ }, "type": "object" }, + "SloEligibility": { + "description": "SloEligibility is a tuple containing eligibility value: true if an instance is eligible for SLO calculation or false if it should be excluded from all SLO-related calculations along with a user-defined reason.", + "id": "SloEligibility", + "properties": { + "eligible": { + "description": "Whether an instance is eligible or ineligible.", + "type": "boolean" + }, + "reason": { + "description": "User-defined reason for the current value of instance eligibility. Usually, this can be directly mapped to the internal state. An empty reason is allowed.", + "type": "string" + } + }, + "type": "object" + }, + "SloMetadata": { + "description": "SloMetadata contains resources required for proper SLO classification of the instance.", + "id": "SloMetadata", + "properties": { + "nodes": { + "description": "Optional. List of nodes. Some producers need to use per-node metadata to calculate SLO. This field allows such producers to publish per-node SLO meta data, which will be consumed by SSA Eligibility Exporter and published in the form of per node metric to Monarch.", + "items": { + "$ref": "NodeSloMetadata" + }, + "type": "array" + }, + "perSliEligibility": { + "$ref": "PerSliSloEligibility", + "description": "Optional. Multiple per-instance SLI eligibilities which apply for individual SLIs." + }, + "tier": { + "description": "Name of the SLO tier the Instance belongs to. This name will be expected to match the tiers specified in the service SLO configuration. Field is mandatory and must not be empty.", + "type": "string" + } + }, + "type": "object" + }, "Source": { "description": "Source to extract the backend from.", "id": "Source", @@ -6280,6 +6887,71 @@ }, "type": "object" }, + "TimeOfDay": { + "description": "Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.", + "id": "TimeOfDay", + "properties": { + "hours": { + "description": "Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.", + "format": "int32", + "type": "integer" + }, + "minutes": { + "description": "Minutes of hour of day. Must be from 0 to 59.", + "format": "int32", + "type": "integer" + }, + "nanos": { + "description": "Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.", + "format": "int32", + "type": "integer" + }, + "seconds": { + "description": "Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "UpdatePolicy": { + "description": "Maintenance policy applicable to instance updates.", + "id": "UpdatePolicy", + "properties": { + "channel": { + "description": "Optional. Relative scheduling channel applied to resource.", + "enum": [ + "UPDATE_CHANNEL_UNSPECIFIED", + "EARLIER", + "LATER", + "WEEK1", + "WEEK2", + "WEEK5" + ], + "enumDescriptions": [ + "Unspecified channel.", + "Early channel within a customer project.", + "Later channel within a customer project.", + "! ! The follow channels can ONLY be used if you adopt the new MW system! ! ! NOTE: all WEEK channels are assumed to be under a weekly window. ! There is currently no dedicated channel definitions for Daily windows. ! If you use Daily window, the system will assume a 1d (24Hours) advanced ! notification period b/w EARLY and LATER. ! We may consider support more flexible daily channel specifications in ! the future. WEEK1 == EARLIER with minimum 7d advanced notification. {7d, 14d} The system will treat them equally and will use WEEK1 whenever it can. New customers are encouraged to use this channel annotation.", + "WEEK2 == LATER with minimum 14d advanced notification {14d, 21d}.", + "WEEK5 == 40d support. minimum 35d advanced notification {35d, 42d}." + ], + "type": "string" + }, + "denyMaintenancePeriods": { + "description": "Deny Maintenance Period that is applied to resource to indicate when maintenance is forbidden. The protocol supports zero-to-many such periods, but the current SLM Rollout implementation only supports zero-to-one.", + "items": { + "$ref": "DenyMaintenancePeriod" + }, + "type": "array" + }, + "window": { + "$ref": "MaintenanceWindow", + "description": "Optional. Maintenance window that is applied to resources covered by this policy." + } + }, + "type": "object" + }, "UserPassword": { "description": "Parameters to support Username and Password Authentication.", "id": "UserPassword", @@ -6294,6 +6966,20 @@ } }, "type": "object" + }, + "WeeklyCycle": { + "description": "Time window specified for weekly operations.", + "id": "WeeklyCycle", + "properties": { + "schedule": { + "description": "User can specify multiple windows in a week. Minimum of 1 window.", + "items": { + "$ref": "Schedule" + }, + "type": "array" + } + }, + "type": "object" } } } diff --git a/discovery/googleapis/connectors__v2.json b/discovery/googleapis/connectors__v2.json index 6e193126e..2b37e7ad8 100644 --- a/discovery/googleapis/connectors__v2.json +++ b/discovery/googleapis/connectors__v2.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231106", + "revision": "20240221", "rootUrl": "https://connectors.googleapis.com/", "servicePath": "", "title": "Connectors API", @@ -115,6 +115,81 @@ "resources": { "connections": { "methods": { + "checkReadiness": { + "description": "Reports readiness status of the connector. Similar logic to GetStatus but modified for kubernetes health check to understand.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}:checkReadiness", + "httpMethod": "GET", + "id": "connectors.projects.locations.connections.checkReadiness", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:checkReadiness", + "response": { + "$ref": "CheckReadinessResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "checkStatus": { + "description": "Reports the status of the connection. Note that when the connection is in a state that is not ACTIVE, the implementation of this RPC method must return a Status with the corresponding State instead of returning a gRPC status code that is not \"OK\", which indicates that ConnectionStatus itself, not the connection, failed.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}:checkStatus", + "httpMethod": "GET", + "id": "connectors.projects.locations.connections.checkStatus", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:checkStatus", + "response": { + "$ref": "CheckStatusResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "exchangeAuthCode": { + "description": "ExchangeAuthCode exchanges the OAuth authorization code (and other necessary data) for an access token (and associated credentials).", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}:exchangeAuthCode", + "httpMethod": "POST", + "id": "connectors.projects.locations.connections.exchangeAuthCode", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:exchangeAuthCode", + "request": { + "$ref": "ExchangeAuthCodeRequest" + }, + "response": { + "$ref": "ExchangeAuthCodeResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "executeSqlQuery": { "description": "Executes a SQL statement specified in the body of the request. An example of this SQL statement in the case of Salesforce connector would be 'select * from Account a, Order o where a.Id = o.AccountId'.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}:executeSqlQuery", @@ -142,6 +217,33 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "refreshAccessToken": { + "description": "RefreshAccessToken exchanges the OAuth refresh token (and other necessary data) for a new access token (and new associated credentials).", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/connections/{connectionsId}:refreshAccessToken", + "httpMethod": "POST", + "id": "connectors.projects.locations.connections.refreshAccessToken", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/connections/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:refreshAccessToken", + "request": { + "$ref": "RefreshAccessTokenRequest" + }, + "response": { + "$ref": "RefreshAccessTokenResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } }, "resources": { @@ -563,6 +665,26 @@ } }, "schemas": { + "AccessCredentials": { + "description": "AccessCredentials includes the OAuth access token, and the other fields returned along with it.", + "id": "AccessCredentials", + "properties": { + "accessToken": { + "description": "OAuth access token.", + "type": "string" + }, + "expiresIn": { + "description": "Duration till the access token expires.", + "format": "google-duration", + "type": "string" + }, + "refreshToken": { + "description": "OAuth refresh token.", + "type": "string" + } + }, + "type": "object" + }, "Action": { "description": "Action message contains metadata information about a single action present in the external system.", "id": "Action", @@ -604,6 +726,100 @@ }, "type": "object" }, + "CheckReadinessResponse": { + "description": "Response containing status of the connector for readiness prober.", + "id": "CheckReadinessResponse", + "properties": { + "status": { + "type": "string" + } + }, + "type": "object" + }, + "CheckStatusResponse": { + "description": "The status of the connector.", + "id": "CheckStatusResponse", + "properties": { + "description": { + "description": "When the connector is not in ACTIVE state, the description must be populated to specify the reason why it's not in ACTIVE state.", + "type": "string" + }, + "state": { + "description": "State of the connector.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "ERROR", + "AUTH_ERROR" + ], + "enumDescriptions": [ + "State unspecified.", + "The connector is active and ready to process runtime requests. This can also mean that from the connector's perspective, the connector is not in an error state and should be able to process runtime requests successfully.", + "The connector is in an error state and cannot process runtime requests. An example reason would be that the connection container has some network issues that prevent outbound requests from being sent.", + "This is a more specific error state that the developers can opt to use when the connector is facing auth-related errors caused by auth configuration not present, invalid auth credentials, etc." + ], + "type": "string" + } + }, + "type": "object" + }, + "DailyCycle": { + "description": "Time window specified for daily operations.", + "id": "DailyCycle", + "properties": { + "duration": { + "description": "Output only. Duration of the time window, set by service producer.", + "format": "google-duration", + "type": "string" + }, + "startTime": { + "$ref": "TimeOfDay", + "description": "Time within the day to start the operations." + } + }, + "type": "object" + }, + "Date": { + "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", + "id": "Date", + "properties": { + "day": { + "description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", + "format": "int32", + "type": "integer" + }, + "month": { + "description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", + "format": "int32", + "type": "integer" + }, + "year": { + "description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "DenyMaintenancePeriod": { + "description": "DenyMaintenancePeriod definition. Maintenance is forbidden within the deny period. The start_date must be less than the end_date.", + "id": "DenyMaintenancePeriod", + "properties": { + "endDate": { + "$ref": "Date", + "description": "Deny period end date. This can be: * A full date, with non-zero year, month and day values. * A month and day value, with a zero year. Allows recurring deny periods each year. Date matching this period will have to be before the end." + }, + "startDate": { + "$ref": "Date", + "description": "Deny period start date. This can be: * A full date, with non-zero year, month and day values. * A month and day value, with a zero year. Allows recurring deny periods each year. Date matching this period will have to be the same or after the start." + }, + "time": { + "$ref": "TimeOfDay", + "description": "Time in UTC when the Blackout period starts on start_date and ends on end_date. This can be: * Full time. * All zeros for 00:00:00 UTC" + } + }, + "type": "object" + }, "Empty": { "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": "Empty", @@ -651,6 +867,22 @@ }, "type": "object" }, + "ExchangeAuthCodeRequest": { + "description": "ExchangeAuthCodeRequest currently includes no fields.", + "id": "ExchangeAuthCodeRequest", + "properties": {}, + "type": "object" + }, + "ExchangeAuthCodeResponse": { + "description": "ExchangeAuthCodeResponse includes the returned access token and its associated credentials.", + "id": "ExchangeAuthCodeResponse", + "properties": { + "accessCredentials": { + "$ref": "AccessCredentials" + } + }, + "type": "object" + }, "ExecuteActionRequest": { "description": "Request message for ActionService.ExecuteAction", "id": "ExecuteActionRequest", @@ -1081,6 +1313,129 @@ }, "type": "object" }, + "Instance": { + "description": "Instance represents the interface for SLM services to actuate the state of control plane resources. Example Instance in JSON, where consumer-project-number=123456, producer-project-id=cloud-sql: ```json Instance: { \"name\": \"projects/123456/locations/us-east1/instances/prod-instance\", \"create_time\": { \"seconds\": 1526406431, }, \"labels\": { \"env\": \"prod\", \"foo\": \"bar\" }, \"state\": READY, \"software_versions\": { \"software_update\": \"cloud-sql-09-28-2018\", }, \"maintenance_policy_names\": { \"UpdatePolicy\": \"projects/123456/locations/us-east1/maintenancePolicies/prod-update-policy\", } \"tenant_project_id\": \"cloud-sql-test-tenant\", \"producer_metadata\": { \"cloud-sql-tier\": \"basic\", \"cloud-sql-instance-size\": \"1G\", }, \"provisioned_resources\": [ { \"resource-type\": \"compute-instance\", \"resource-url\": \"https://www.googleapis.com/compute/v1/projects/cloud-sql/zones/us-east1-b/instances/vm-1\", } ], \"maintenance_schedules\": { \"csa_rollout\": { \"start_time\": { \"seconds\": 1526406431, }, \"end_time\": { \"seconds\": 1535406431, }, }, \"ncsa_rollout\": { \"start_time\": { \"seconds\": 1526406431, }, \"end_time\": { \"seconds\": 1535406431, }, } }, \"consumer_defined_name\": \"my-sql-instance1\", } ``` LINT.IfChange", + "id": "Instance", + "properties": { + "consumerDefinedName": { + "description": "consumer_defined_name is the name of the instance set by the service consumers. Generally this is different from the `name` field which reperesents the system-assigned id of the instance which the service consumers do not recognize. This is a required field for tenants onboarding to Maintenance Window notifications (go/slm-rollout-maintenance-policies#prerequisites).", + "type": "string" + }, + "createTime": { + "description": "Output only. Timestamp when the resource was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "instanceType": { + "description": "Optional. The instance_type of this instance of format: projects/{project_number}/locations/{location_id}/instanceTypes/{instance_type_id}. Instance Type represents a high-level tier or SKU of the service that this instance belong to. When enabled(eg: Maintenance Rollout), Rollout uses 'instance_type' along with 'software_versions' to determine whether instance needs an update or not.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Resource labels to represent user provided metadata. Each label is a key-value pair, where both the key and the value are arbitrary strings provided by the user.", + "type": "object" + }, + "maintenancePolicyNames": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. The MaintenancePolicies that have been attached to the instance. The key must be of the type name of the oneof policy name defined in MaintenancePolicy, and the referenced policy must define the same policy type. For details, please refer to go/mr-user-guide. Should not be set if maintenance_settings.maintenance_policies is set.", + "type": "object" + }, + "maintenanceSchedules": { + "additionalProperties": { + "$ref": "MaintenanceSchedule" + }, + "description": "The MaintenanceSchedule contains the scheduling information of published maintenance schedule with same key as software_versions.", + "type": "object" + }, + "maintenanceSettings": { + "$ref": "MaintenanceSettings", + "description": "Optional. The MaintenanceSettings associated with instance." + }, + "name": { + "description": "Unique name of the resource. It uses the form: `projects/{project_number}/locations/{location_id}/instances/{instance_id}` Note: This name is passed, stored and logged across the rollout system. So use of consumer project_id or any other consumer PII in the name is strongly discouraged for wipeout (go/wipeout) compliance. See go/elysium/project_ids#storage-guidance for more details.", + "type": "string" + }, + "notificationParameters": { + "additionalProperties": { + "$ref": "NotificationParameter" + }, + "description": "Optional. notification_parameter are information that service producers may like to include that is not relevant to Rollout. This parameter will only be passed to Gamma and Cloud Logging for notification/logging purpose.", + "type": "object" + }, + "producerMetadata": { + "additionalProperties": { + "type": "string" + }, + "description": "Output only. Custom string attributes used primarily to expose producer-specific information in monitoring dashboards. See go/get-instance-metadata.", + "readOnly": true, + "type": "object" + }, + "provisionedResources": { + "description": "Output only. The list of data plane resources provisioned for this instance, e.g. compute VMs. See go/get-instance-metadata.", + "items": { + "$ref": "ProvisionedResource" + }, + "readOnly": true, + "type": "array" + }, + "slmInstanceTemplate": { + "description": "Link to the SLM instance template. Only populated when updating SLM instances via SSA's Actuation service adaptor. Service producers with custom control plane (e.g. Cloud SQL) doesn't need to populate this field. Instead they should use software_versions.", + "type": "string" + }, + "sloMetadata": { + "$ref": "SloMetadata", + "description": "Output only. SLO metadata for instance classification in the Standardized dataplane SLO platform. See go/cloud-ssa-standard-slo for feature description.", + "readOnly": true + }, + "softwareVersions": { + "additionalProperties": { + "type": "string" + }, + "description": "Software versions that are used to deploy this instance. This can be mutated by rollout services.", + "type": "object" + }, + "state": { + "description": "Output only. Current lifecycle state of the resource (e.g. if it's being created or ready to use).", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "READY", + "UPDATING", + "REPAIRING", + "DELETING", + "ERROR" + ], + "enumDescriptions": [ + "Unspecified state.", + "Instance is being created.", + "Instance has been created and is ready to use.", + "Instance is being updated.", + "Instance is unheathy and under repair.", + "Instance is being deleted.", + "Instance encountered an error and is in indeterministic state." + ], + "readOnly": true, + "type": "string" + }, + "tenantProjectId": { + "description": "Output only. ID of the associated GCP tenant project. See go/get-instance-metadata.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. Timestamp when the resource was last modified.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "JsonSchema": { "description": "JsonSchema representation of schema metadata", "id": "JsonSchema", @@ -1353,6 +1708,186 @@ }, "type": "object" }, + "MaintenancePolicy": { + "description": "LINT.IfChange Defines policies to service maintenance events.", + "id": "MaintenancePolicy", + "properties": { + "createTime": { + "description": "Output only. The time when the resource was created.", + "format": "google-datetime", + "type": "string" + }, + "description": { + "description": "Optional. Description of what this policy is for. Create/Update methods return INVALID_ARGUMENT if the length is greater than 512.", + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Resource labels to represent user provided metadata. Each label is a key-value pair, where both the key and the value are arbitrary strings provided by the user.", + "type": "object" + }, + "name": { + "description": "Required. MaintenancePolicy name using the form: `projects/{project_id}/locations/{location_id}/maintenancePolicies/{maintenance_policy_id}` where {project_id} refers to a GCP consumer project ID, {location_id} refers to a GCP region/zone, {maintenance_policy_id} must be 1-63 characters long and match the regular expression `[a-z0-9]([-a-z0-9]*[a-z0-9])?`.", + "type": "string" + }, + "state": { + "description": "Optional. The state of the policy.", + "enum": [ + "STATE_UNSPECIFIED", + "READY", + "DELETING" + ], + "enumDescriptions": [ + "Unspecified state.", + "Resource is ready to be used.", + "Resource is being deleted. It can no longer be attached to instances." + ], + "type": "string" + }, + "updatePolicy": { + "$ref": "UpdatePolicy", + "description": "Maintenance policy applicable to instance update." + }, + "updateTime": { + "description": "Output only. The time when the resource was updated.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "MaintenanceSchedule": { + "description": "Maintenance schedule which is exposed to customer and potentially end user, indicating published upcoming future maintenance schedule", + "id": "MaintenanceSchedule", + "properties": { + "canReschedule": { + "deprecated": true, + "description": "This field is deprecated, and will be always set to true since reschedule can happen multiple times now. This field should not be removed until all service producers remove this for their customers.", + "type": "boolean" + }, + "endTime": { + "description": "The scheduled end time for the maintenance.", + "format": "google-datetime", + "type": "string" + }, + "rolloutManagementPolicy": { + "description": "The rollout management policy this maintenance schedule is associated with. When doing reschedule update request, the reschedule should be against this given policy.", + "type": "string" + }, + "scheduleDeadlineTime": { + "description": "schedule_deadline_time is the time deadline any schedule start time cannot go beyond, including reschedule. It's normally the initial schedule start time plus maintenance window length (1 day or 1 week). Maintenance cannot be scheduled to start beyond this deadline.", + "format": "google-datetime", + "type": "string" + }, + "startTime": { + "description": "The scheduled start time for the maintenance.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "MaintenanceSettings": { + "description": "Maintenance settings associated with instance. Allows service producers and end users to assign settings that controls maintenance on this instance.", + "id": "MaintenanceSettings", + "properties": { + "exclude": { + "description": "Optional. Exclude instance from maintenance. When true, rollout service will not attempt maintenance on the instance. Rollout service will include the instance in reported rollout progress as not attempted.", + "type": "boolean" + }, + "isRollback": { + "description": "Optional. If the update call is triggered from rollback, set the value as true.", + "type": "boolean" + }, + "maintenancePolicies": { + "additionalProperties": { + "$ref": "MaintenancePolicy" + }, + "description": "Optional. The MaintenancePolicies that have been attached to the instance. The key must be of the type name of the oneof policy name defined in MaintenancePolicy, and the embedded policy must define the same policy type. For details, please refer to go/mr-user-guide. Should not be set if maintenance_policy_names is set. If only the name is needed, then only populate MaintenancePolicy.name.", + "type": "object" + } + }, + "type": "object" + }, + "MaintenanceWindow": { + "description": "MaintenanceWindow definition.", + "id": "MaintenanceWindow", + "properties": { + "dailyCycle": { + "$ref": "DailyCycle", + "description": "Daily cycle." + }, + "weeklyCycle": { + "$ref": "WeeklyCycle", + "description": "Weekly cycle." + } + }, + "type": "object" + }, + "NodeSloMetadata": { + "description": "Node information for custom per-node SLO implementations. SSA does not support per-node SLO, but producers can populate per-node information in SloMetadata for custom precomputations. SSA Eligibility Exporter will emit per-node metric based on this information.", + "id": "NodeSloMetadata", + "properties": { + "location": { + "description": "The location of the node, if different from instance location.", + "type": "string" + }, + "nodeId": { + "description": "The id of the node. This should be equal to SaasInstanceNode.node_id.", + "type": "string" + }, + "perSliEligibility": { + "$ref": "PerSliSloEligibility", + "description": "If present, this will override eligibility for the node coming from instance or exclusions for specified SLIs." + } + }, + "type": "object" + }, + "NotificationParameter": { + "description": "Contains notification related data.", + "id": "NotificationParameter", + "properties": { + "values": { + "description": "Optional. Array of string values. e.g. instance's replica information.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "PerSliSloEligibility": { + "description": "PerSliSloEligibility is a mapping from an SLI name to eligibility.", + "id": "PerSliSloEligibility", + "properties": { + "eligibilities": { + "additionalProperties": { + "$ref": "SloEligibility" + }, + "description": "An entry in the eligibilities map specifies an eligibility for a particular SLI for the given instance. The SLI key in the name must be a valid SLI name specified in the Eligibility Exporter binary flags otherwise an error will be emitted by Eligibility Exporter and the oncaller will be alerted. If an SLI has been defined in the binary flags but the eligibilities map does not contain it, the corresponding SLI time series will not be emitted by the Eligibility Exporter. This ensures a smooth rollout and compatibility between the data produced by different versions of the Eligibility Exporters. If eligibilities map contains a key for an SLI which has not been declared in the binary flags, there will be an error message emitted in the Eligibility Exporter log and the metric for the SLI in question will not be emitted.", + "type": "object" + } + }, + "type": "object" + }, + "ProvisionedResource": { + "description": "Describes provisioned dataplane resources.", + "id": "ProvisionedResource", + "properties": { + "resourceType": { + "description": "Type of the resource. This can be either a GCP resource or a custom one (e.g. another cloud provider's VM). For GCP compute resources use singular form of the names listed in GCP compute API documentation (https://cloud.google.com/compute/docs/reference/rest/v1/), prefixed with 'compute-', for example: 'compute-instance', 'compute-disk', 'compute-autoscaler'.", + "type": "string" + }, + "resourceUrl": { + "description": "URL identifying the resource, e.g. \"https://www.googleapis.com/compute/v1/projects/...)\".", + "type": "string" + } + }, + "type": "object" + }, "Query": { "description": "A wrapper around the SQL query statement. This is needed so that the JSON representation of ExecuteSqlQueryRequest has the following format: `{\"query\":\"select *\"}`.", "id": "Query", @@ -1549,6 +2084,22 @@ }, "type": "object" }, + "RefreshAccessTokenRequest": { + "description": "RefreshAccessTokenRequest currently includes no fields.", + "id": "RefreshAccessTokenRequest", + "properties": {}, + "type": "object" + }, + "RefreshAccessTokenResponse": { + "description": "RefreshAccessTokenResponse includes the returned access token and its associated credentials.", + "id": "RefreshAccessTokenResponse", + "properties": { + "accessCredentials": { + "$ref": "AccessCredentials" + } + }, + "type": "object" + }, "ResultMetadata": { "description": "Result Metadata message contains metadata about the result returned after executing an Action.", "id": "ResultMetadata", @@ -1713,6 +2264,110 @@ }, "type": "object" }, + "Schedule": { + "description": "Configure the schedule.", + "id": "Schedule", + "properties": { + "day": { + "description": "Allows to define schedule that runs specified day of the week.", + "enum": [ + "DAY_OF_WEEK_UNSPECIFIED", + "MONDAY", + "TUESDAY", + "WEDNESDAY", + "THURSDAY", + "FRIDAY", + "SATURDAY", + "SUNDAY" + ], + "enumDescriptions": [ + "The day of the week is unspecified.", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday", + "Sunday" + ], + "type": "string" + }, + "duration": { + "description": "Output only. Duration of the time window, set by service producer.", + "format": "google-duration", + "type": "string" + }, + "startTime": { + "$ref": "TimeOfDay", + "description": "Time within the window to start the operations." + } + }, + "type": "object" + }, + "SloEligibility": { + "description": "SloEligibility is a tuple containing eligibility value: true if an instance is eligible for SLO calculation or false if it should be excluded from all SLO-related calculations along with a user-defined reason.", + "id": "SloEligibility", + "properties": { + "eligible": { + "description": "Whether an instance is eligible or ineligible.", + "type": "boolean" + }, + "reason": { + "description": "User-defined reason for the current value of instance eligibility. Usually, this can be directly mapped to the internal state. An empty reason is allowed.", + "type": "string" + } + }, + "type": "object" + }, + "SloMetadata": { + "description": "SloMetadata contains resources required for proper SLO classification of the instance.", + "id": "SloMetadata", + "properties": { + "nodes": { + "description": "Optional. List of nodes. Some producers need to use per-node metadata to calculate SLO. This field allows such producers to publish per-node SLO meta data, which will be consumed by SSA Eligibility Exporter and published in the form of per node metric to Monarch.", + "items": { + "$ref": "NodeSloMetadata" + }, + "type": "array" + }, + "perSliEligibility": { + "$ref": "PerSliSloEligibility", + "description": "Optional. Multiple per-instance SLI eligibilities which apply for individual SLIs." + }, + "tier": { + "description": "Name of the SLO tier the Instance belongs to. This name will be expected to match the tiers specified in the service SLO configuration. Field is mandatory and must not be empty.", + "type": "string" + } + }, + "type": "object" + }, + "TimeOfDay": { + "description": "Represents a time of day. The date and time zone are either not significant or are specified elsewhere. An API may choose to allow leap seconds. Related types are google.type.Date and `google.protobuf.Timestamp`.", + "id": "TimeOfDay", + "properties": { + "hours": { + "description": "Hours of day in 24 hour format. Should be from 0 to 23. An API may choose to allow the value \"24:00:00\" for scenarios like business closing time.", + "format": "int32", + "type": "integer" + }, + "minutes": { + "description": "Minutes of hour of day. Must be from 0 to 59.", + "format": "int32", + "type": "integer" + }, + "nanos": { + "description": "Fractions of seconds in nanoseconds. Must be from 0 to 999,999,999.", + "format": "int32", + "type": "integer" + }, + "seconds": { + "description": "Seconds of minutes of the time. Must normally be from 0 to 59. An API may allow the value 60 if it allows leap-seconds.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "UpdateEntitiesWithConditionsResponse": { "description": "Response message for EntityService.UpdateEntitiesWithConditions", "id": "UpdateEntitiesWithConditionsResponse", @@ -1727,6 +2382,58 @@ } }, "type": "object" + }, + "UpdatePolicy": { + "description": "Maintenance policy applicable to instance updates.", + "id": "UpdatePolicy", + "properties": { + "channel": { + "description": "Optional. Relative scheduling channel applied to resource.", + "enum": [ + "UPDATE_CHANNEL_UNSPECIFIED", + "EARLIER", + "LATER", + "WEEK1", + "WEEK2", + "WEEK5" + ], + "enumDescriptions": [ + "Unspecified channel.", + "Early channel within a customer project.", + "Later channel within a customer project.", + "! ! The follow channels can ONLY be used if you adopt the new MW system! ! ! NOTE: all WEEK channels are assumed to be under a weekly window. ! There is currently no dedicated channel definitions for Daily windows. ! If you use Daily window, the system will assume a 1d (24Hours) advanced ! notification period b/w EARLY and LATER. ! We may consider support more flexible daily channel specifications in ! the future. WEEK1 == EARLIER with minimum 7d advanced notification. {7d, 14d} The system will treat them equally and will use WEEK1 whenever it can. New customers are encouraged to use this channel annotation.", + "WEEK2 == LATER with minimum 14d advanced notification {14d, 21d}.", + "WEEK5 == 40d support. minimum 35d advanced notification {35d, 42d}." + ], + "type": "string" + }, + "denyMaintenancePeriods": { + "description": "Deny Maintenance Period that is applied to resource to indicate when maintenance is forbidden. The protocol supports zero-to-many such periods, but the current SLM Rollout implementation only supports zero-to-one.", + "items": { + "$ref": "DenyMaintenancePeriod" + }, + "type": "array" + }, + "window": { + "$ref": "MaintenanceWindow", + "description": "Optional. Maintenance window that is applied to resources covered by this policy." + } + }, + "type": "object" + }, + "WeeklyCycle": { + "description": "Time window specified for weekly operations.", + "id": "WeeklyCycle", + "properties": { + "schedule": { + "description": "User can specify multiple windows in a week. Minimum of 1 window.", + "items": { + "$ref": "Schedule" + }, + "type": "array" + } + }, + "type": "object" } } } diff --git a/discovery/googleapis/contactcenterinsights__v1.json b/discovery/googleapis/contactcenterinsights__v1.json index 8bab1f042..9b8e42b4d 100644 --- a/discovery/googleapis/contactcenterinsights__v1.json +++ b/discovery/googleapis/contactcenterinsights__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231113", + "revision": "20240226", "rootUrl": "https://contactcenterinsights.googleapis.com/", "servicePath": "", "title": "Contact Center AI Insights API", @@ -407,6 +407,11 @@ "location": "query", "type": "string" }, + "orderBy": { + "description": "Optional. The attribute by which to order conversations in the response. If empty, conversations will be ordered by descending creation time. Supported values are one of the following: * create_time * customer_satisfaction_rating * duration * latest_analysis * start_time * turn_count The default sort order is ascending. To specify order, append `asc` or `desc`, i.e. `create_time desc`. See https://google.aip.dev/132#ordering for more details.", + "location": "query", + "type": "string" + }, "pageSize": { "description": "The maximum number of conversations to return in the response. A valid page size ranges from 0 to 1,000 inclusive. If the page size is zero or unspecified, a default page size of 100 will be chosen. Note that a call might return fewer results than the requested page size.", "format": "int32", @@ -778,6 +783,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "export": { + "description": "Exports an issue model to the provided destination.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/issueModels/{issueModelsId}:export", + "httpMethod": "POST", + "id": "contactcenterinsights.projects.locations.issueModels.export", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The issue model to export", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/issueModels/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:export", + "request": { + "$ref": "GoogleCloudContactcenterinsightsV1ExportIssueModelRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Gets an issue model.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/issueModels/{issueModelsId}", @@ -803,6 +836,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "import": { + "description": "Imports an issue model from a Cloud Storage bucket.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/issueModels:import", + "httpMethod": "POST", + "id": "contactcenterinsights.projects.locations.issueModels.import", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource of the issue model.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/issueModels:import", + "request": { + "$ref": "GoogleCloudContactcenterinsightsV1ImportIssueModelRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "list": { "description": "Lists issue models.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/issueModels", @@ -2058,6 +2119,10 @@ "description": "Obfuscated user ID which the customer sent to us.", "type": "string" }, + "qualityMetadata": { + "$ref": "GoogleCloudContactcenterinsightsV1ConversationQualityMetadata", + "description": "Conversation metadata related to quality management." + }, "runtimeAnnotations": { "description": "Output only. The annotations that were generated during the customer and agent interaction.", "items": { @@ -2114,7 +2179,7 @@ "type": "object" }, "GoogleCloudContactcenterinsightsV1ConversationDataSource": { - "description": "The conversation source, which is a combination of transcript, audio, and metadata.", + "description": "The conversation source, which is a combination of transcript and audio.", "id": "GoogleCloudContactcenterinsightsV1ConversationDataSource", "properties": { "dialogflowSource": { @@ -2186,6 +2251,57 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1ConversationQualityMetadata": { + "description": "Conversation metadata related to quality management.", + "id": "GoogleCloudContactcenterinsightsV1ConversationQualityMetadata", + "properties": { + "agentInfo": { + "description": "Information about agents involved in the call.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1ConversationQualityMetadataAgentInfo" + }, + "type": "array" + }, + "customerSatisfactionRating": { + "description": "An arbitrary integer value indicating the customer's satisfaction rating.", + "format": "int32", + "type": "integer" + }, + "menuPath": { + "description": "An arbitrary string value specifying the menu path the customer took.", + "type": "string" + }, + "waitDuration": { + "description": "The amount of time the customer waited to connect with an agent.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1ConversationQualityMetadataAgentInfo": { + "description": "Information about an agent involved in the conversation.", + "id": "GoogleCloudContactcenterinsightsV1ConversationQualityMetadataAgentInfo", + "properties": { + "agentId": { + "description": "A user-specified string representing the agent.", + "type": "string" + }, + "displayName": { + "description": "The agent's name.", + "type": "string" + }, + "dispositionCode": { + "description": "A user-provided string indicating the outcome of the agent's segment of the call.", + "type": "string" + }, + "team": { + "description": "A user-specified string representing the agent's team.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1ConversationSummarizationSuggestionData": { "description": "Conversation summarization suggestion data.", "id": "GoogleCloudContactcenterinsightsV1ConversationSummarizationSuggestionData", @@ -2701,6 +2817,59 @@ "properties": {}, "type": "object" }, + "GoogleCloudContactcenterinsightsV1ExportIssueModelMetadata": { + "description": "Metadata used for export issue model.", + "id": "GoogleCloudContactcenterinsightsV1ExportIssueModelMetadata", + "properties": { + "createTime": { + "description": "The time the operation was created.", + "format": "google-datetime", + "type": "string" + }, + "endTime": { + "description": "The time the operation finished running.", + "format": "google-datetime", + "type": "string" + }, + "request": { + "$ref": "GoogleCloudContactcenterinsightsV1ExportIssueModelRequest", + "description": "The original export request." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1ExportIssueModelRequest": { + "description": "Request to export an issue model.", + "id": "GoogleCloudContactcenterinsightsV1ExportIssueModelRequest", + "properties": { + "gcsDestination": { + "$ref": "GoogleCloudContactcenterinsightsV1ExportIssueModelRequestGcsDestination", + "description": "Google Cloud Storage URI to export the Issue Model to." + }, + "name": { + "description": "Required. The issue model to export", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1ExportIssueModelRequestGcsDestination": { + "description": "Google Cloud Storage Object URI to save the issue model to.", + "id": "GoogleCloudContactcenterinsightsV1ExportIssueModelRequestGcsDestination", + "properties": { + "objectUri": { + "description": "Required. Format: `gs:///`", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1ExportIssueModelResponse": { + "description": "Response from export issue model", + "id": "GoogleCloudContactcenterinsightsV1ExportIssueModelResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1FaqAnswerData": { "description": "Agent Assist frequently-asked-question answer data.", "id": "GoogleCloudContactcenterinsightsV1FaqAnswerData", @@ -2757,6 +2926,63 @@ "properties": {}, "type": "object" }, + "GoogleCloudContactcenterinsightsV1ImportIssueModelMetadata": { + "description": "Metadata used for import issue model.", + "id": "GoogleCloudContactcenterinsightsV1ImportIssueModelMetadata", + "properties": { + "createTime": { + "description": "The time the operation was created.", + "format": "google-datetime", + "type": "string" + }, + "endTime": { + "description": "The time the operation finished running.", + "format": "google-datetime", + "type": "string" + }, + "request": { + "$ref": "GoogleCloudContactcenterinsightsV1ImportIssueModelRequest", + "description": "The original import request." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1ImportIssueModelRequest": { + "description": "Request to import an issue model.", + "id": "GoogleCloudContactcenterinsightsV1ImportIssueModelRequest", + "properties": { + "createNewModel": { + "description": "Optional. If set to true, will create a new issue model from the imported file with randomly generated IDs for the issue model and corresponding issues. Otherwise, replaces an existing model with the same ID as the file.", + "type": "boolean" + }, + "gcsSource": { + "$ref": "GoogleCloudContactcenterinsightsV1ImportIssueModelRequestGcsSource", + "description": "Google Cloud Storage source message." + }, + "parent": { + "description": "Required. The parent resource of the issue model.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1ImportIssueModelRequestGcsSource": { + "description": "Google Cloud Storage Object URI to get the issue model file from.", + "id": "GoogleCloudContactcenterinsightsV1ImportIssueModelRequestGcsSource", + "properties": { + "objectUri": { + "description": "Required. Format: `gs:///`", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1ImportIssueModelResponse": { + "description": "Response from import issue model", + "id": "GoogleCloudContactcenterinsightsV1ImportIssueModelResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1IngestConversationsMetadata": { "description": "The metadata for an IngestConversations operation.", "id": "GoogleCloudContactcenterinsightsV1IngestConversationsMetadata", @@ -2861,7 +3087,7 @@ "id": "GoogleCloudContactcenterinsightsV1IngestConversationsRequestConversationConfig", "properties": { "agentChannel": { - "description": "Optional. For audio conversations, this field indicates which of the channels, 1 or 2, contains the agent. Note that this must be set for audio conversations to be properly displayed and analyzed.", + "description": "Optional. Indicates which of the channels, 1 or 2, contains the agent. Note that this must be set for conversations to be properly displayed and analyzed.", "format": "int32", "type": "integer" }, @@ -2870,7 +3096,7 @@ "type": "string" }, "customerChannel": { - "description": "Optional. For audio conversations, this field indicates which of the channels, 1 or 2, contains the customer. Note that this must be set for audio conversations to be properly displayed and analyzed.", + "description": "Optional. Indicates which of the channels, 1 or 2, contains the agent. Note that this must be set for conversations to be properly displayed and analyzed.", "format": "int32", "type": "integer" } @@ -2889,7 +3115,7 @@ "AUDIO" ], "enumDescriptions": [ - "The object type is unspecified and will default to TRANSCRIPT.", + "The object type is unspecified and will default to `TRANSCRIPT`.", "The object is a transcript.", "The object is an audio file." ], @@ -2898,6 +3124,17 @@ "bucketUri": { "description": "Required. The Cloud Storage bucket containing source objects.", "type": "string" + }, + "customMetadataKeys": { + "description": "Optional. Custom keys to extract as conversation labels from metadata files in `metadata_bucket_uri`. Keys not included in this field will be ignored. Note that there is a limit of 20 labels per conversation.", + "items": { + "type": "string" + }, + "type": "array" + }, + "metadataBucketUri": { + "description": "Optional. The Cloud Storage path to the source object metadata. Note that: [1] metadata files are expected to be in JSON format [2] metadata and source objects must be in separate buckets [3] a source object's metadata object must share the same name to be properly ingested", + "type": "string" } }, "type": "object" @@ -3575,7 +3812,7 @@ "additionalProperties": { "type": "string" }, - "description": "A map that maps a notification trigger to a Pub/Sub topic. Each time a specified trigger occurs, Insights will notify the corresponding Pub/Sub topic. Keys are notification triggers. Supported keys are: * \"all-triggers\": Notify each time any of the supported triggers occurs. * \"create-analysis\": Notify each time an analysis is created. * \"create-conversation\": Notify each time a conversation is created. * \"export-insights-data\": Notify each time an export is complete. * \"update-conversation\": Notify each time a conversation is updated via UpdateConversation. Values are Pub/Sub topics. The format of each Pub/Sub topic is: projects/{project}/topics/{topic}", + "description": "A map that maps a notification trigger to a Pub/Sub topic. Each time a specified trigger occurs, Insights will notify the corresponding Pub/Sub topic. Keys are notification triggers. Supported keys are: * \"all-triggers\": Notify each time any of the supported triggers occurs. * \"create-analysis\": Notify each time an analysis is created. * \"create-conversation\": Notify each time a conversation is created. * \"export-insights-data\": Notify each time an export is complete. * \"update-conversation\": Notify each time a conversation is updated via UpdateConversation. * \"upload-conversation\": Notify when an UploadConversation LRO completes. Values are Pub/Sub topics. The format of each Pub/Sub topic is: projects/{project}/topics/{topic}", "type": "object" }, "redactionConfig": { @@ -3779,11 +4016,11 @@ }, "redactionConfig": { "$ref": "GoogleCloudContactcenterinsightsV1RedactionConfig", - "description": "Optional. DLP settings for transcript redaction. Optional, will default to the config specified in Settings." + "description": "Optional. DLP settings for transcript redaction. Will default to the config specified in Settings." }, "speechConfig": { "$ref": "GoogleCloudContactcenterinsightsV1SpeechConfig", - "description": "Optional. Default Speech-to-Text configuration. Optional, will default to the config specified in Settings." + "description": "Optional. Speech-to-Text configuration. Will default to the config specified in Settings." } }, "type": "object" @@ -4355,6 +4592,10 @@ "description": "Obfuscated user ID which the customer sent to us.", "type": "string" }, + "qualityMetadata": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1ConversationQualityMetadata", + "description": "Conversation metadata related to quality management." + }, "runtimeAnnotations": { "description": "Output only. The annotations that were generated during the customer and agent interaction.", "items": { @@ -4411,7 +4652,7 @@ "type": "object" }, "GoogleCloudContactcenterinsightsV1alpha1ConversationDataSource": { - "description": "The conversation source, which is a combination of transcript, audio, and metadata.", + "description": "The conversation source, which is a combination of transcript and audio.", "id": "GoogleCloudContactcenterinsightsV1alpha1ConversationDataSource", "properties": { "dialogflowSource": { @@ -4483,6 +4724,57 @@ }, "type": "object" }, + "GoogleCloudContactcenterinsightsV1alpha1ConversationQualityMetadata": { + "description": "Conversation metadata related to quality management.", + "id": "GoogleCloudContactcenterinsightsV1alpha1ConversationQualityMetadata", + "properties": { + "agentInfo": { + "description": "Information about agents involved in the call.", + "items": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1ConversationQualityMetadataAgentInfo" + }, + "type": "array" + }, + "customerSatisfactionRating": { + "description": "An arbitrary integer value indicating the customer's satisfaction rating.", + "format": "int32", + "type": "integer" + }, + "menuPath": { + "description": "An arbitrary string value specifying the menu path the customer took.", + "type": "string" + }, + "waitDuration": { + "description": "The amount of time the customer waited to connect with an agent.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1ConversationQualityMetadataAgentInfo": { + "description": "Information about an agent involved in the conversation.", + "id": "GoogleCloudContactcenterinsightsV1alpha1ConversationQualityMetadataAgentInfo", + "properties": { + "agentId": { + "description": "A user-specified string representing the agent.", + "type": "string" + }, + "displayName": { + "description": "The agent's name.", + "type": "string" + }, + "dispositionCode": { + "description": "A user-provided string indicating the outcome of the agent's segment of the call.", + "type": "string" + }, + "team": { + "description": "A user-specified string representing the agent's team.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1alpha1ConversationSummarizationSuggestionData": { "description": "Conversation summarization suggestion data.", "id": "GoogleCloudContactcenterinsightsV1alpha1ConversationSummarizationSuggestionData", @@ -4987,6 +5279,59 @@ "properties": {}, "type": "object" }, + "GoogleCloudContactcenterinsightsV1alpha1ExportIssueModelMetadata": { + "description": "Metadata used for export issue model.", + "id": "GoogleCloudContactcenterinsightsV1alpha1ExportIssueModelMetadata", + "properties": { + "createTime": { + "description": "The time the operation was created.", + "format": "google-datetime", + "type": "string" + }, + "endTime": { + "description": "The time the operation finished running.", + "format": "google-datetime", + "type": "string" + }, + "request": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1ExportIssueModelRequest", + "description": "The original export request." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1ExportIssueModelRequest": { + "description": "Request to export an issue model.", + "id": "GoogleCloudContactcenterinsightsV1alpha1ExportIssueModelRequest", + "properties": { + "gcsDestination": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1ExportIssueModelRequestGcsDestination", + "description": "Google Cloud Storage URI to export the Issue Model to." + }, + "name": { + "description": "Required. The issue model to export", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1ExportIssueModelRequestGcsDestination": { + "description": "Google Cloud Storage Object URI to save the issue model to.", + "id": "GoogleCloudContactcenterinsightsV1alpha1ExportIssueModelRequestGcsDestination", + "properties": { + "objectUri": { + "description": "Required. Format: `gs:///`", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1ExportIssueModelResponse": { + "description": "Response from export issue model", + "id": "GoogleCloudContactcenterinsightsV1alpha1ExportIssueModelResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1alpha1FaqAnswerData": { "description": "Agent Assist frequently-asked-question answer data.", "id": "GoogleCloudContactcenterinsightsV1alpha1FaqAnswerData", @@ -5043,6 +5388,63 @@ "properties": {}, "type": "object" }, + "GoogleCloudContactcenterinsightsV1alpha1ImportIssueModelMetadata": { + "description": "Metadata used for import issue model.", + "id": "GoogleCloudContactcenterinsightsV1alpha1ImportIssueModelMetadata", + "properties": { + "createTime": { + "description": "The time the operation was created.", + "format": "google-datetime", + "type": "string" + }, + "endTime": { + "description": "The time the operation finished running.", + "format": "google-datetime", + "type": "string" + }, + "request": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1ImportIssueModelRequest", + "description": "The original import request." + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1ImportIssueModelRequest": { + "description": "Request to import an issue model.", + "id": "GoogleCloudContactcenterinsightsV1alpha1ImportIssueModelRequest", + "properties": { + "createNewModel": { + "description": "Optional. If set to true, will create a new issue model from the imported file with randomly generated IDs for the issue model and corresponding issues. Otherwise, replaces an existing model with the same ID as the file.", + "type": "boolean" + }, + "gcsSource": { + "$ref": "GoogleCloudContactcenterinsightsV1alpha1ImportIssueModelRequestGcsSource", + "description": "Google Cloud Storage source message." + }, + "parent": { + "description": "Required. The parent resource of the issue model.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1ImportIssueModelRequestGcsSource": { + "description": "Google Cloud Storage Object URI to get the issue model file from.", + "id": "GoogleCloudContactcenterinsightsV1alpha1ImportIssueModelRequestGcsSource", + "properties": { + "objectUri": { + "description": "Required. Format: `gs:///`", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudContactcenterinsightsV1alpha1ImportIssueModelResponse": { + "description": "Response from import issue model", + "id": "GoogleCloudContactcenterinsightsV1alpha1ImportIssueModelResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudContactcenterinsightsV1alpha1IngestConversationsMetadata": { "description": "The metadata for an IngestConversations operation.", "id": "GoogleCloudContactcenterinsightsV1alpha1IngestConversationsMetadata", @@ -5147,7 +5549,7 @@ "id": "GoogleCloudContactcenterinsightsV1alpha1IngestConversationsRequestConversationConfig", "properties": { "agentChannel": { - "description": "Optional. For audio conversations, this field indicates which of the channels, 1 or 2, contains the agent. Note that this must be set for audio conversations to be properly displayed and analyzed.", + "description": "Optional. Indicates which of the channels, 1 or 2, contains the agent. Note that this must be set for conversations to be properly displayed and analyzed.", "format": "int32", "type": "integer" }, @@ -5156,7 +5558,7 @@ "type": "string" }, "customerChannel": { - "description": "Optional. For audio conversations, this field indicates which of the channels, 1 or 2, contains the customer. Note that this must be set for audio conversations to be properly displayed and analyzed.", + "description": "Optional. Indicates which of the channels, 1 or 2, contains the agent. Note that this must be set for conversations to be properly displayed and analyzed.", "format": "int32", "type": "integer" } @@ -5175,7 +5577,7 @@ "AUDIO" ], "enumDescriptions": [ - "The object type is unspecified and will default to TRANSCRIPT.", + "The object type is unspecified and will default to `TRANSCRIPT`.", "The object is a transcript.", "The object is an audio file." ], @@ -5184,6 +5586,17 @@ "bucketUri": { "description": "Required. The Cloud Storage bucket containing source objects.", "type": "string" + }, + "customMetadataKeys": { + "description": "Optional. Custom keys to extract as conversation labels from metadata files in `metadata_bucket_uri`. Keys not included in this field will be ignored. Note that there is a limit of 20 labels per conversation.", + "items": { + "type": "string" + }, + "type": "array" + }, + "metadataBucketUri": { + "description": "Optional. The Cloud Storage path to the source object metadata. Note that: [1] metadata files are expected to be in JSON format [2] metadata and source objects must be in separate buckets [3] a source object's metadata object must share the same name to be properly ingested", + "type": "string" } }, "type": "object" @@ -5715,11 +6128,11 @@ }, "redactionConfig": { "$ref": "GoogleCloudContactcenterinsightsV1alpha1RedactionConfig", - "description": "Optional. DLP settings for transcript redaction. Optional, will default to the config specified in Settings." + "description": "Optional. DLP settings for transcript redaction. Will default to the config specified in Settings." }, "speechConfig": { "$ref": "GoogleCloudContactcenterinsightsV1alpha1SpeechConfig", - "description": "Optional. Default Speech-to-Text configuration. Optional, will default to the config specified in Settings." + "description": "Optional. Speech-to-Text configuration. Will default to the config specified in Settings." } }, "type": "object" diff --git a/discovery/googleapis/container__v1.json b/discovery/googleapis/container__v1.json index 72e62f188..f753099ff 100644 --- a/discovery/googleapis/container__v1.json +++ b/discovery/googleapis/container__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231030", + "revision": "20240214", "rootUrl": "https://container.googleapis.com/", "servicePath": "", "title": "Kubernetes Engine API", @@ -370,7 +370,7 @@ ] }, "getJwks": { - "description": "Gets the public component of the cluster signing keys in JSON Web Key format. This API is not yet intended for general use, and is not available for all clusters.", + "description": "Gets the public component of the cluster signing keys in JSON Web Key format.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/jwks", "httpMethod": "GET", "id": "container.projects.locations.clusters.getJwks", @@ -1111,7 +1111,7 @@ "well-known": { "methods": { "getOpenid-configuration": { - "description": "Gets the OIDC discovery document for the cluster. See the [OpenID Connect Discovery 1.0 specification](https://openid.net/specs/openid-connect-discovery-1_0.html) for details. This API is not yet intended for general use, and is not available for all clusters.", + "description": "Gets the OIDC discovery document for the cluster. See the [OpenID Connect Discovery 1.0 specification](https://openid.net/specs/openid-connect-discovery-1_0.html) for details.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/clusters/{clustersId}/.well-known/openid-configuration", "httpMethod": "GET", "id": "container.projects.locations.clusters.well-known.getOpenid-configuration", @@ -2676,6 +2676,10 @@ "networkPolicyConfig": { "$ref": "NetworkPolicyConfig", "description": "Configuration for NetworkPolicy. This only tracks whether the addon is enabled or not on the Master, it does not track whether network policy is enabled for the nodes." + }, + "statefulHaConfig": { + "$ref": "StatefulHAConfig", + "description": "Optional. Configuration for the StatefulHA add-on." } }, "type": "object" @@ -2688,6 +2692,10 @@ "description": "Expose flow metrics on nodes", "type": "boolean" }, + "enableRelay": { + "description": "Enable Relay component", + "type": "boolean" + }, "relayMode": { "description": "Method used to make Relay available", "enum": [ @@ -3555,6 +3563,20 @@ "description": "The desired image type for the node pool. NOTE: Set the \"desired_node_pool\" field as well.", "type": "string" }, + "desiredInTransitEncryptionConfig": { + "description": "Specify the details of in-transit encryption.", + "enum": [ + "IN_TRANSIT_ENCRYPTION_CONFIG_UNSPECIFIED", + "IN_TRANSIT_ENCRYPTION_DISABLED", + "IN_TRANSIT_ENCRYPTION_INTER_NODE_TRANSPARENT" + ], + "enumDescriptions": [ + "Unspecified, will be inferred as default - IN_TRANSIT_ENCRYPTION_UNSPECIFIED.", + "In-transit encryption is disabled.", + "Data in-transit is encrypted using inter-node transparent encryption." + ], + "type": "string" + }, "desiredIntraNodeVisibilityConfig": { "$ref": "IntraNodeVisibilityConfig", "description": "The desired config of Intra-node visibility." @@ -4964,6 +4986,20 @@ "$ref": "GatewayAPIConfig", "description": "GatewayAPIConfig contains the desired config of Gateway API on this cluster." }, + "inTransitEncryptionConfig": { + "description": "Specify the details of in-transit encryption.", + "enum": [ + "IN_TRANSIT_ENCRYPTION_CONFIG_UNSPECIFIED", + "IN_TRANSIT_ENCRYPTION_DISABLED", + "IN_TRANSIT_ENCRYPTION_INTER_NODE_TRANSPARENT" + ], + "enumDescriptions": [ + "Unspecified, will be inferred as default - IN_TRANSIT_ENCRYPTION_UNSPECIFIED.", + "In-transit encryption is disabled.", + "Data in-transit is encrypted using inter-node transparent encryption." + ], + "type": "string" + }, "network": { "description": "Output only. The relative name of the Google Compute Engine network(https://cloud.google.com/compute/docs/networks-and-firewalls#networks) to which the cluster is connected. Example: projects/my-project/global/networks/my-network", "type": "string" @@ -5130,6 +5166,10 @@ "description": "Type of the disk attached to each node (e.g. 'pd-standard', 'pd-ssd' or 'pd-balanced') If unspecified, the default disk type is 'pd-standard'", "type": "string" }, + "enableConfidentialStorage": { + "description": "Optional. Reserved for future use.", + "type": "boolean" + }, "ephemeralStorageLocalSsdConfig": { "$ref": "EphemeralStorageLocalSsdConfig", "description": "Parameters for the node ephemeral storage using Local SSDs. If unspecified, ephemeral storage is backed by the boot disk." @@ -5227,6 +5267,13 @@ "$ref": "SandboxConfig", "description": "Sandbox configuration for this node." }, + "secondaryBootDisks": { + "description": "List of secondary boot disks attached to the nodes.", + "items": { + "$ref": "SecondaryBootDisk" + }, + "type": "array" + }, "serviceAccount": { "description": "The Google Cloud Platform Service Account to be used by the node VMs. Specify the email address of the Service Account; otherwise, if no Service Account is specified, the \"default\" service account is used.", "type": "string" @@ -6240,6 +6287,29 @@ }, "type": "object" }, + "SecondaryBootDisk": { + "description": "SecondaryBootDisk represents a persistent disk attached to a node with special configurations based on its mode.", + "id": "SecondaryBootDisk", + "properties": { + "diskImage": { + "description": "Fully-qualified resource ID for an existing disk image.", + "type": "string" + }, + "mode": { + "description": "Disk mode (container image cache, etc.)", + "enum": [ + "MODE_UNSPECIFIED", + "CONTAINER_IMAGE_CACHE" + ], + "enumDescriptions": [ + "MODE_UNSPECIFIED is when mode is not set.", + "CONTAINER_IMAGE_CACHE is for using the secondary boot disk as a container image cache." + ], + "type": "string" + } + }, + "type": "object" + }, "SecurityBulletinEvent": { "description": "SecurityBulletinEvent is a notification sent to customers when a security bulletin has been posted that they are vulnerable to.", "id": "SecurityBulletinEvent", @@ -6319,12 +6389,14 @@ "enum": [ "VULNERABILITY_MODE_UNSPECIFIED", "VULNERABILITY_DISABLED", - "VULNERABILITY_BASIC" + "VULNERABILITY_BASIC", + "VULNERABILITY_ENTERPRISE" ], "enumDescriptions": [ "Default value not specified.", "Disables vulnerability scanning on the cluster.", - "Applies basic vulnerability scanning on the cluster." + "Applies basic vulnerability scanning on the cluster.", + "Applies the Security Posture's vulnerability on cluster Enterprise level features." ], "type": "string" } @@ -6876,6 +6948,17 @@ }, "type": "object" }, + "StatefulHAConfig": { + "description": "Configuration for the Stateful HA add-on.", + "id": "StatefulHAConfig", + "properties": { + "enabled": { + "description": "Whether the Stateful HA add-on is enabled for this cluster.", + "type": "boolean" + } + }, + "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", @@ -7162,6 +7245,10 @@ "description": "Deprecated. The Google Developers Console [project ID or project number](https://cloud.google.com/resource-manager/docs/creating-managing-projects). This field has been deprecated and replaced by the name field.", "type": "string" }, + "queuedProvisioning": { + "$ref": "QueuedProvisioning", + "description": "Specifies the configuration of queued provisioning." + }, "resourceLabels": { "$ref": "ResourceLabels", "description": "The resource labels for the node pool to use to annotate any related Google Compute Engine resources." diff --git a/discovery/googleapis/containeranalysis__v1.json b/discovery/googleapis/containeranalysis__v1.json index fd811b144..bb8c525d6 100644 --- a/discovery/googleapis/containeranalysis__v1.json +++ b/discovery/googleapis/containeranalysis__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231103", + "revision": "20240220", "rootUrl": "https://containeranalysis.googleapis.com/", "servicePath": "", "title": "Container Analysis API", @@ -755,6 +755,38 @@ ] } } + }, + "resources": { + "methods": { + "exportSBOM": { + "description": "Generates an SBOM for the given resource.", + "flatPath": "v1/projects/{projectsId}/resources/{resourcesId}:exportSBOM", + "httpMethod": "POST", + "id": "containeranalysis.projects.resources.exportSBOM", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the resource in the form of `projects/[PROJECT_ID]/resources/[RESOURCE_URL]`.", + "location": "path", + "pattern": "^projects/[^/]+/resources/.*$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:exportSBOM", + "request": { + "$ref": "ExportSBOMRequest" + }, + "response": { + "$ref": "ExportSBOMResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } } } } @@ -991,14 +1023,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -1661,6 +1693,12 @@ }, "type": "object" }, + "CloudStorageLocation": { + "description": "Empty placeholder to denote that this is a Google Cloud Storage export request.", + "id": "CloudStorageLocation", + "properties": {}, + "type": "object" + }, "Command": { "description": "Command describes a step performed as part of the build pipeline.", "id": "Command", @@ -3423,6 +3461,28 @@ }, "type": "object" }, + "ExportSBOMRequest": { + "description": "The request to generate and export SBOM. Target must be specified for the request.", + "id": "ExportSBOMRequest", + "properties": { + "cloudStorageLocation": { + "$ref": "CloudStorageLocation", + "description": "Empty placeholder to denote that this is a Google Cloud Storage export request." + } + }, + "type": "object" + }, + "ExportSBOMResponse": { + "description": "The response from a call to ExportSBOM.", + "id": "ExportSBOMResponse", + "properties": { + "discoveryOccurrence": { + "description": "The name of the discovery occurrence in the form \"projects/{project_id}/occurrences/{OCCURRENCE_ID} It can be used to track the progress of the SBOM export.", + "type": "string" + } + }, + "type": "object" + }, "Expr": { "description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.", "id": "Expr", diff --git a/discovery/googleapis/content__v2.1.json b/discovery/googleapis/content__v2.1.json index 2899f2478..f4534732a 100644 --- a/discovery/googleapis/content__v2.1.json +++ b/discovery/googleapis/content__v2.1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231120", + "revision": "20240227", "rootUrl": "https://shoppingcontent.googleapis.com/", "servicePath": "content/v2.1/", "title": "Content API for Shopping", @@ -2769,7 +2769,7 @@ ], "parameters": { "languageCode": { - "description": "Optional. The [IETF BCP-47](https://tools.ietf.org/html/bcp47) language code used to localize support content. If not set, the result will be in default language ('en-US').", + "description": "Optional. The [IETF BCP-47](https://tools.ietf.org/html/bcp47) language code used to localize support content. If not set, the result will be in default language `en-US`.", "location": "query", "type": "string" }, @@ -2808,7 +2808,7 @@ ], "parameters": { "languageCode": { - "description": "Optional. The [IETF BCP-47](https://tools.ietf.org/html/bcp47) language code used to localize support content. If not set, the result will be in default language ('en-US').", + "description": "Optional. The [IETF BCP-47](https://tools.ietf.org/html/bcp47) language code used to localize support content. If not set, the result will be in default language `en-US`.", "location": "query", "type": "string" }, @@ -4818,70 +4818,6 @@ "https://www.googleapis.com/auth/content" ] } - }, - "resources": { - "repricingreports": { - "methods": { - "list": { - "description": "Lists the metrics report for a given Repricing product.", - "flatPath": "{merchantId}/productstatuses/{productId}/repricingreports", - "httpMethod": "GET", - "id": "content.productstatuses.repricingreports.list", - "parameterOrder": [ - "merchantId", - "productId" - ], - "parameters": { - "endDate": { - "description": "Gets Repricing reports on and before this date in the merchant's timezone. You can only retrieve data up to 7 days ago (default) or earlier. Format is YYYY-MM-DD.", - "location": "query", - "type": "string" - }, - "merchantId": { - "description": "Required. Id of the merchant who owns the Repricing rule.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "pageSize": { - "description": "Maximum number of days of reports to return. There can be more than one rule report returned per day. For example, if 3 rule types got applied to the same product within a 24-hour period, then a page_size of 1 will return 3 rule reports. The page size defaults to 50 and values above 1000 are coerced to 1000. This service may return fewer days of reports than this value, for example, if the time between your start and end date is less than the page size.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "Token (if provided) to retrieve the subsequent page. All other parameters must match the original call that provided the page token.", - "location": "query", - "type": "string" - }, - "productId": { - "description": "Required. Id of the Repricing product. Also known as the [REST_ID](https://developers.google.com/shopping-content/reference/rest/v2.1/products#Product.FIELDS.id)", - "location": "path", - "required": true, - "type": "string" - }, - "ruleId": { - "description": "Id of the Repricing rule. If specified, only gets this rule's reports.", - "location": "query", - "type": "string" - }, - "startDate": { - "description": "Gets Repricing reports on and after this date in the merchant's timezone, up to one year ago. Do not use a start date later than 7 days ago (default). Format is YYYY-MM-DD.", - "location": "query", - "type": "string" - } - }, - "path": "{merchantId}/productstatuses/{productId}/repricingreports", - "response": { - "$ref": "ListRepricingProductReportsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/content" - ] - } - } - } } }, "promotions": { @@ -5391,7 +5327,7 @@ "reports": { "methods": { "search": { - "description": "Retrieves merchant performance mertrics matching the search query and optionally segmented by selected dimensions.", + "description": "Retrieves merchant performance metrics matching the search query and optionally segmented by selected dimensions.", "flatPath": "{merchantId}/reports/search", "httpMethod": "POST", "id": "content.reports.search", @@ -5420,244 +5356,6 @@ } } }, - "repricingrules": { - "methods": { - "create": { - "description": "Creates a repricing rule for your Merchant Center account.", - "flatPath": "{merchantId}/repricingrules", - "httpMethod": "POST", - "id": "content.repricingrules.create", - "parameterOrder": [ - "merchantId" - ], - "parameters": { - "merchantId": { - "description": "Required. The id of the merchant who owns the repricing rule.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "ruleId": { - "description": "Required. The id of the rule to create.", - "location": "query", - "type": "string" - } - }, - "path": "{merchantId}/repricingrules", - "request": { - "$ref": "RepricingRule" - }, - "response": { - "$ref": "RepricingRule" - }, - "scopes": [ - "https://www.googleapis.com/auth/content" - ] - }, - "delete": { - "description": "Deletes a repricing rule in your Merchant Center account.", - "flatPath": "{merchantId}/repricingrules/{ruleId}", - "httpMethod": "DELETE", - "id": "content.repricingrules.delete", - "parameterOrder": [ - "merchantId", - "ruleId" - ], - "parameters": { - "merchantId": { - "description": "Required. The id of the merchant who owns the repricing rule.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "ruleId": { - "description": "Required. The id of the rule to Delete.", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "{merchantId}/repricingrules/{ruleId}", - "scopes": [ - "https://www.googleapis.com/auth/content" - ] - }, - "get": { - "description": "Retrieves a repricing rule from your Merchant Center account.", - "flatPath": "{merchantId}/repricingrules/{ruleId}", - "httpMethod": "GET", - "id": "content.repricingrules.get", - "parameterOrder": [ - "merchantId", - "ruleId" - ], - "parameters": { - "merchantId": { - "description": "Required. The id of the merchant who owns the repricing rule.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "ruleId": { - "description": "Required. The id of the rule to retrieve.", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "{merchantId}/repricingrules/{ruleId}", - "response": { - "$ref": "RepricingRule" - }, - "scopes": [ - "https://www.googleapis.com/auth/content" - ] - }, - "list": { - "description": "Lists the repricing rules in your Merchant Center account.", - "flatPath": "{merchantId}/repricingrules", - "httpMethod": "GET", - "id": "content.repricingrules.list", - "parameterOrder": [ - "merchantId" - ], - "parameters": { - "countryCode": { - "description": "[CLDR country code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml) (for example, \"US\"), used as a filter on repricing rules.", - "location": "query", - "type": "string" - }, - "languageCode": { - "description": "The two-letter ISO 639-1 language code associated with the repricing rule, used as a filter.", - "location": "query", - "type": "string" - }, - "merchantId": { - "description": "Required. The id of the merchant who owns the repricing rule.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "pageSize": { - "description": "The maximum number of repricing rules to return. The service may return fewer than this value. If unspecified, at most 50 rules will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A page token, received from a previous `ListRepricingRules` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListRepricingRules` must match the call that provided the page token.", - "location": "query", - "type": "string" - } - }, - "path": "{merchantId}/repricingrules", - "response": { - "$ref": "ListRepricingRulesResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/content" - ] - }, - "patch": { - "description": "Updates a repricing rule in your Merchant Center account. All mutable fields will be overwritten in each update request. In each update, you must provide all required mutable fields, or an error will be thrown. If you do not provide an optional field in the update request, if that field currently exists, it will be deleted from the rule.", - "flatPath": "{merchantId}/repricingrules/{ruleId}", - "httpMethod": "PATCH", - "id": "content.repricingrules.patch", - "parameterOrder": [ - "merchantId", - "ruleId" - ], - "parameters": { - "merchantId": { - "description": "Required. The id of the merchant who owns the repricing rule.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "ruleId": { - "description": "Required. The id of the rule to update.", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "{merchantId}/repricingrules/{ruleId}", - "request": { - "$ref": "RepricingRule" - }, - "response": { - "$ref": "RepricingRule" - }, - "scopes": [ - "https://www.googleapis.com/auth/content" - ] - } - }, - "resources": { - "repricingreports": { - "methods": { - "list": { - "description": "*Deprecated*: New merchants can't start using this service. Lists the metrics report for a given Repricing rule.", - "flatPath": "{merchantId}/repricingrules/{ruleId}/repricingreports", - "httpMethod": "GET", - "id": "content.repricingrules.repricingreports.list", - "parameterOrder": [ - "merchantId", - "ruleId" - ], - "parameters": { - "endDate": { - "description": "Gets Repricing reports on and before this date in the merchant's timezone. You can only retrieve data up to 7 days ago (default) or earlier. Format: YYYY-MM-DD.", - "location": "query", - "type": "string" - }, - "merchantId": { - "description": "Required. Id of the merchant who owns the Repricing rule.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "pageSize": { - "description": "Maximum number of daily reports to return. Each report includes data from a single 24-hour period. The page size defaults to 50 and values above 1000 are coerced to 1000. This service may return fewer days than this value, for example, if the time between your start and end date is less than page size.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "Token (if provided) to retrieve the subsequent page. All other parameters must match the original call that provided the page token.", - "location": "query", - "type": "string" - }, - "ruleId": { - "description": "Required. Id of the Repricing rule.", - "location": "path", - "required": true, - "type": "string" - }, - "startDate": { - "description": "Gets Repricing reports on and after this date in the merchant's timezone, up to one year ago. Do not use a start date later than 7 days ago (default). Format: YYYY-MM-DD.", - "location": "query", - "type": "string" - } - }, - "path": "{merchantId}/repricingrules/{ruleId}/repricingreports", - "response": { - "$ref": "ListRepricingRuleReportsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/content" - ] - } - } - } - } - }, "returnaddress": { "methods": { "custombatch": { @@ -7407,7 +7105,7 @@ "type": "string" }, "linkType": { - "description": "Type of the link between the two accounts. Acceptable values are: - \"`channelPartner`\" - \"`eCommercePlatform`\" - \"`paymentServiceProvider`\" ", + "description": "Type of the link between the two accounts. Acceptable values are: - \"`channelPartner`\" - \"`eCommercePlatform`\" - \"`paymentServiceProvider`\" - \"`localProductManager`\" ", "type": "string" }, "linkedAccountId": { @@ -7415,7 +7113,7 @@ "type": "string" }, "services": { - "description": "Provided services. Acceptable values are: - \"`shoppingAdsProductManagement`\" - \"`shoppingActionsProductManagement`\" - \"`shoppingActionsOrderManagement`\" - \"`paymentProcessing`\" ", + "description": "Provided services. Acceptable values are: - \"`shoppingAdsProductManagement`\" - \"`shoppingActionsProductManagement`\" - \"`shoppingActionsOrderManagement`\" - \"`paymentProcessing`\" - \"`localProductManagement`\" ", "items": { "type": "string" }, @@ -7895,7 +7593,7 @@ "id": "AttributionSettings", "properties": { "attributionLookbackWindowInDays": { - "description": "Required. Lookback windows (in days) used for attribution in this source. Supported values are 7, 30, 60, 90.", + "description": "Required. Lookback windows (in days) used for attribution in this source. Supported values are 7, 30, 40.", "format": "int32", "type": "integer" }, @@ -8363,12 +8061,14 @@ "enum": [ "CHECKOUT_ON_MERCHANT_ENROLLMENT_STATE_UNSPECIFIED", "INACTIVE", - "ENROLLED" + "ENROLLED", + "OPT_OUT" ], "enumDescriptions": [ "Default enrollment state when enrollment state is not specified.", "Merchant has not enrolled into the feature.", - "Merchant has enrolled into the feature by providing either an account level URL or checkout URLs as part of their feed." + "Merchant has enrolled into the feature by providing either an account level URL or checkout URLs as part of their feed.", + "Merchant has previously enrolled but opted out of the feature." ], "readOnly": true, "type": "string" @@ -8399,12 +8099,14 @@ "enum": [ "CHECKOUT_ON_MERCHANT_ENROLLMENT_STATE_UNSPECIFIED", "INACTIVE", - "ENROLLED" + "ENROLLED", + "OPT_OUT" ], "enumDescriptions": [ "Default enrollment state when enrollment state is not specified.", "Merchant has not enrolled into the feature.", - "Merchant has enrolled into the feature by providing either an account level URL or checkout URLs as part of their feed." + "Merchant has enrolled into the feature by providing either an account level URL or checkout URLs as part of their feed.", + "Merchant has previously enrolled but opted out of the feature." ], "readOnly": true, "type": "string" @@ -9631,13 +9333,15 @@ "EXTERNAL_ACTION_TYPE_UNSPECIFIED", "REVIEW_PRODUCT_ISSUE_IN_MERCHANT_CENTER", "REVIEW_ACCOUNT_ISSUE_IN_MERCHANT_CENTER", - "LEGAL_APPEAL_IN_HELP_CENTER" + "LEGAL_APPEAL_IN_HELP_CENTER", + "VERIFY_IDENTITY_IN_MERCHANT_CENTER" ], "enumDescriptions": [ "Default value. Will never be provided by the API.", "Redirect to Merchant Center where the merchant can request a review for issue related to their product.", "Redirect to Merchant Center where the merchant can request a review for issue related to their account.", - "Redirect to the form in Help Center where the merchant can request a legal appeal for the issue." + "Redirect to the form in Help Center where the merchant can request a legal appeal for the issue.", + "Redirect to Merchant Center where the merchant can perform identity verification." ], "type": "string" }, @@ -9974,44 +9678,6 @@ }, "type": "object" }, - "InapplicabilityDetails": { - "description": "Map of inapplicability details.", - "id": "InapplicabilityDetails", - "properties": { - "inapplicableCount": { - "description": "Count of this inapplicable reason code.", - "format": "int64", - "type": "string" - }, - "inapplicableReason": { - "description": "Reason code this rule was not applicable.", - "enum": [ - "INAPPLICABLE_REASON_UNSPECIFIED", - "CANNOT_BEAT_BUYBOX_WINNER", - "ALREADY_WINNING_BUYBOX", - "TRIUMPHED_OVER_BY_SAME_TYPE_RULE", - "TRIUMPHED_OVER_BY_OTHER_RULE_ON_OFFER", - "RESTRICTIONS_NOT_MET", - "UNCATEGORIZED", - "INVALID_AUTO_PRICE_MIN", - "INVALID_FLOOR_CONFIG" - ], - "enumDescriptions": [ - "Default value. Should not be used.", - "The rule set for this product cannot beat the buybox winner.", - "This product can already win the buybox without rule.", - "Another rule of the same type takes precedence over this one.", - "Another rule of a different type takes precedence over this one.", - "The rule restrictions are not met. For example, this may be the case if the calculated rule price is lower than floor price in the restriction.", - "The reason is not categorized to any known reason.", - "The auto_pricing_min_price is invalid. For example, it is missing or < 0.", - "The floor defined in the rule is invalid. For example, it has the wrong sign which results in a floor < 0." - ], - "type": "string" - } - }, - "type": "object" - }, "InsertCheckoutSettingsRequest": { "description": "Request message for the `InsertCheckoutSettings` method.", "id": "InsertCheckoutSettingsRequest", @@ -10646,60 +10312,6 @@ }, "type": "object" }, - "ListRepricingProductReportsResponse": { - "description": "Response message for the ListRepricingProductReports method.", - "id": "ListRepricingProductReportsResponse", - "properties": { - "nextPageToken": { - "description": "A token for retrieving the next page. Its absence means there is no subsequent page.", - "type": "string" - }, - "repricingProductReports": { - "description": "Periodic reports for the given Repricing product.", - "items": { - "$ref": "RepricingProductReport" - }, - "type": "array" - } - }, - "type": "object" - }, - "ListRepricingRuleReportsResponse": { - "description": "Response message for the ListRepricingRuleReports method.", - "id": "ListRepricingRuleReportsResponse", - "properties": { - "nextPageToken": { - "description": "A token for retrieving the next page. Its absence means there is no subsequent page.", - "type": "string" - }, - "repricingRuleReports": { - "description": "Daily reports for the given Repricing rule.", - "items": { - "$ref": "RepricingRuleReport" - }, - "type": "array" - } - }, - "type": "object" - }, - "ListRepricingRulesResponse": { - "description": "Response message for the `ListRepricingRules` method.", - "id": "ListRepricingRulesResponse", - "properties": { - "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" - }, - "repricingRules": { - "description": "The rules from the specified merchant.", - "items": { - "$ref": "RepricingRule" - }, - "type": "array" - } - }, - "type": "object" - }, "ListReturnPolicyOnlineResponse": { "description": "Response message for the `ListReturnPolicyOnline` method.", "id": "ListReturnPolicyOnlineResponse", @@ -13941,6 +13553,16 @@ "description": "Identifies what kind of resource this is. Value: the fixed string \"`content#posStore`\"", "type": "string" }, + "matchingStatus": { + "description": "Output only. The matching status of POS store and Google Business Profile store. Possible values are: - \"`matched`\": The POS store is successfully matched with the Google Business Profile store. - \"`failed`\": The POS store is not matched with the Google Business Profile store. See matching_status_hint for further details. Note that there is up to 48 hours propagation delay for changes in Merchant Center (e.g. creation of new account, accounts linking) and Google Business Profile (e.g. store address update) which may affect the matching status. In such cases, after a delay call [pos.list](https://developers.google.com/shopping-content/reference/rest/v2.1/pos/list) to retrieve the updated matching status. ", + "readOnly": true, + "type": "string" + }, + "matchingStatusHint": { + "description": "Output only. The hint of why the matching has failed. This is only set when matching_status=failed. Possible values are: - \"`linked-store-not-found`\": There aren't any Google Business Profile stores available for matching. Connect your Merchant Center account with the Google Business Profile account. Or add a new Google Business Profile store corresponding to the POS store. - \"`store-match-not-found`\": The provided POS store couldn't be matched to any of the connected Google Business Profile stores. Merchant Center account is connected correctly and stores are available on Google Business Profile, but POS store location address does not match with Google Business Profile stores' addresses. Update POS store address or Google Business Profile store address to match correctly. - \"`store-match-unverified`\": The provided POS store couldn't be matched to any of the connected Google Business Profile stores, as the matched Google Business Profile store is unverified. Go through the Google Business Profile verification process to match correctly. ", + "readOnly": true, + "type": "string" + }, "phoneNumber": { "description": "The store phone number.", "type": "string" @@ -15682,7 +15304,7 @@ "type": "integer" }, "id": { - "description": "Required. Output only. The REST promotion ID to uniquely identify the promotion. Content API methods that operate on promotions take this as their `promotionId` parameter. The REST ID for a promotion is of the form channel:contentLanguage:targetCountry:promotionId The `channel` field has a value of `\"online\"`, `\"in_store\"`, or `\"online_in_store\"`.", + "description": "Output only. The REST promotion ID to uniquely identify the promotion. Content API methods that operate on promotions take this as their `promotionId` parameter. The REST ID for a promotion is of the form channel:contentLanguage:targetCountry:promotionId The `channel` field has a value of `\"online\"`, `\"in_store\"`, or `\"online_in_store\"`.", "readOnly": true, "type": "string" }, @@ -16542,386 +16164,6 @@ }, "type": "object" }, - "RepricingProductReport": { - "description": "Resource that represents a daily Repricing product report. Each report contains stats for a single type of Repricing rule for a single product on a given day. If there are multiple rules of the same type for the product on that day, the report lists all the rules by rule ids, combines the stats, and paginates the results by date. To retrieve the stats of a particular rule, provide the rule_id in the request.", - "id": "RepricingProductReport", - "properties": { - "applicationCount": { - "description": "Total count of Repricer applications. This value captures how many times the rule of this type was applied to this product during this reporting period.", - "format": "int64", - "type": "string" - }, - "buyboxWinningProductStats": { - "$ref": "RepricingProductReportBuyboxWinningProductStats", - "deprecated": true, - "description": "Stats specific to buybox winning rules for product report (deprecated)." - }, - "date": { - "$ref": "Date", - "description": "Date of the stats in this report. The report starts and ends according to the merchant's timezone." - }, - "highWatermark": { - "$ref": "PriceAmount", - "description": "Maximum displayed price after repriced during this reporting period." - }, - "inapplicabilityDetails": { - "description": "List of all reasons the rule did not apply to the product during the specified reporting period.", - "items": { - "$ref": "InapplicabilityDetails" - }, - "type": "array" - }, - "lowWatermark": { - "$ref": "PriceAmount", - "description": "Minimum displayed price after repriced during this reporting period." - }, - "orderItemCount": { - "description": "Total unit count of impacted products ordered while the rule was active on the date of the report. This count includes all orders that were started while the rule was active, even if the rule was no longer active when the order was completed.", - "format": "int32", - "type": "integer" - }, - "ruleIds": { - "description": "Ids of the Repricing rule for this report.", - "items": { - "type": "string" - }, - "type": "array" - }, - "totalGmv": { - "$ref": "PriceAmount", - "description": "Total GMV generated by impacted products while the rule was active on the date of the report. This value includes all orders that were started while the rule was active, even if the rule was no longer active when the order was completed." - }, - "type": { - "description": "Type of the rule.", - "enum": [ - "REPRICING_RULE_TYPE_UNSPECIFIED", - "TYPE_STATS_BASED", - "TYPE_COGS_BASED", - "TYPE_SALES_VOLUME_BASED", - "TYPE_COMPETITIVE_PRICE" - ], - "enumDescriptions": [ - "Unused.", - "Statistical measurement based rules among Google SA merchants. If this rule is chosen, repricer will adjust the offer price based on statistical metrics (currently only min is available) among other merchants who sell the same product. Details need to be provdided in the RuleDefinition.", - "Cost of goods sale based rule. Repricer will adjust the offer price based on the offer's sale cost which is provided by the merchant.", - "Sales volume based rule. Repricer will adjust the offer price based on the offer's sales volume in the past period of time defined within the rule.", - "Competitive price rule. Repricer will adjust the offer price based on the min price from a list of unnamed big competitors." - ], - "type": "string" - } - }, - "type": "object" - }, - "RepricingProductReportBuyboxWinningProductStats": { - "description": "Stats specific to buybox winning rules for product report.", - "id": "RepricingProductReportBuyboxWinningProductStats", - "properties": { - "buyboxWinsCount": { - "description": "Number of times this product won the buybox with these rules during this time period.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "RepricingRule": { - "description": "*Deprecated*: New merchants can't start using this resource. Represents a repricing rule. A repricing rule is used by shopping serving to adjust transactable offer prices if conditions are met.", - "id": "RepricingRule", - "properties": { - "cogsBasedRule": { - "$ref": "RepricingRuleCostOfGoodsSaleRule", - "description": "The rule definition for TYPE_COGS_BASED. Required when the rule type is TYPE_COGS_BASED." - }, - "countryCode": { - "description": "Required. Immutable. [CLDR country code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml) (for example, \"US\").", - "type": "string" - }, - "effectiveTimePeriod": { - "$ref": "RepricingRuleEffectiveTime", - "description": "Required. Time period when the rule should take effect." - }, - "eligibleOfferMatcher": { - "$ref": "RepricingRuleEligibleOfferMatcher", - "description": "Required. Match criteria for the eligible offers." - }, - "languageCode": { - "description": "Required. Immutable. The two-letter ISO 639-1 language code associated with the repricing rule.", - "type": "string" - }, - "merchantId": { - "description": "Output only. Immutable. Merchant that owns the repricing rule.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "paused": { - "description": "Represents whether a rule is paused. A paused rule will behave like a non-paused rule within CRUD operations, with the major difference that a paused rule will not be evaluated and will have no effect on offers.", - "type": "boolean" - }, - "restriction": { - "$ref": "RepricingRuleRestriction", - "description": "Required. Restriction of the rule appliance." - }, - "ruleId": { - "description": "Output only. Immutable. The ID to uniquely identify each repricing rule.", - "readOnly": true, - "type": "string" - }, - "statsBasedRule": { - "$ref": "RepricingRuleStatsBasedRule", - "description": "The rule definition for TYPE_STATS_BASED. Required when the rule type is TYPE_STATS_BASED." - }, - "title": { - "description": "The title for the rule.", - "type": "string" - }, - "type": { - "description": "Required. Immutable. The type of the rule.", - "enum": [ - "REPRICING_RULE_TYPE_UNSPECIFIED", - "TYPE_STATS_BASED", - "TYPE_COGS_BASED", - "TYPE_SALES_VOLUME_BASED", - "TYPE_COMPETITIVE_PRICE" - ], - "enumDescriptions": [ - "Unused.", - "Statistical measurement based rules among Google SA merchants. If this rule is chosen, repricer will adjust the offer price based on statistical metrics (currently only min is available) among other merchants who sell the same product. Details need to be provdided in the RuleDefinition.", - "Cost of goods sale based rule. Repricer will adjust the offer price based on the offer's sale cost which is provided by the merchant.", - "Sales volume based rule. Repricer will adjust the offer price based on the offer's sales volume in the past period of time defined within the rule.", - "Competitive price rule. Repricer will adjust the offer price based on the min price from a list of unnamed big competitors." - ], - "type": "string" - } - }, - "type": "object" - }, - "RepricingRuleCostOfGoodsSaleRule": { - "description": "A repricing rule that changes the sale price based on cost of goods sale.", - "id": "RepricingRuleCostOfGoodsSaleRule", - "properties": { - "percentageDelta": { - "description": "The percent change against the COGS. Ex: 20 would mean to set the adjusted price 1.2X of the COGS data.", - "format": "int32", - "type": "integer" - }, - "priceDelta": { - "description": "The price delta against the COGS. For example, 2 means $2 more of the COGS.", - "type": "string" - } - }, - "type": "object" - }, - "RepricingRuleEffectiveTime": { - "id": "RepricingRuleEffectiveTime", - "properties": { - "fixedTimePeriods": { - "description": "A list of fixed time periods combined with OR. The maximum number of entries is limited to 5.", - "items": { - "$ref": "RepricingRuleEffectiveTimeFixedTimePeriod" - }, - "type": "array" - } - }, - "type": "object" - }, - "RepricingRuleEffectiveTimeFixedTimePeriod": { - "description": "Definition of a fixed time period.", - "id": "RepricingRuleEffectiveTimeFixedTimePeriod", - "properties": { - "endTime": { - "description": "The end time (exclusive) of the period. It can only be hour granularity.", - "format": "google-datetime", - "type": "string" - }, - "startTime": { - "description": "The start time (inclusive) of the period. It can only be hour granularity.", - "format": "google-datetime", - "type": "string" - } - }, - "type": "object" - }, - "RepricingRuleEligibleOfferMatcher": { - "description": "Matcher that specifies eligible offers. When the USE_FEED_ATTRIBUTE option is selected, only the repricing_rule_id attribute on the product feed is used to specify offer-rule mapping. When the CUSTOM_FILTER option is selected, only the *_matcher fields are used to filter the offers for offer-rule mapping. If the CUSTOM_FILTER option is selected, an offer needs to satisfy each custom filter matcher to be eligible for a rule. Size limit: the sum of the number of entries in all the matchers should not exceed 20. For example, there can be 15 product ids and 5 brands, but not 10 product ids and 11 brands.", - "id": "RepricingRuleEligibleOfferMatcher", - "properties": { - "brandMatcher": { - "$ref": "RepricingRuleEligibleOfferMatcherStringMatcher", - "description": "Filter by the brand." - }, - "itemGroupIdMatcher": { - "$ref": "RepricingRuleEligibleOfferMatcherStringMatcher", - "description": "Filter by the item group id." - }, - "matcherOption": { - "description": "Determines whether to use the custom matchers or the product feed attribute \"repricing_rule_id\" to specify offer-rule mapping.", - "enum": [ - "MATCHER_OPTION_UNSPECIFIED", - "MATCHER_OPTION_CUSTOM_FILTER", - "MATCHER_OPTION_USE_FEED_ATTRIBUTE", - "MATCHER_OPTION_ALL_PRODUCTS" - ], - "enumDescriptions": [ - "Unused.", - "Use custom filters.", - "Use repricing_rule_id feed attribute on the product resource to specify offer-rule mapping.", - "Matching all products." - ], - "type": "string" - }, - "offerIdMatcher": { - "$ref": "RepricingRuleEligibleOfferMatcherStringMatcher", - "description": "Filter by the offer id." - }, - "skipWhenOnPromotion": { - "description": "When true, the rule won't be applied to offers with active promotions.", - "type": "boolean" - } - }, - "type": "object" - }, - "RepricingRuleEligibleOfferMatcherStringMatcher": { - "description": "Matcher by string attributes.", - "id": "RepricingRuleEligibleOfferMatcherStringMatcher", - "properties": { - "strAttributes": { - "description": "String attributes, as long as such attribute of an offer is one of the string attribute values, the offer is considered as passing the matcher. The string matcher checks an offer for inclusivity in the string attributes, not equality. Only literal string matching is supported, no regular expressions.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "RepricingRuleReport": { - "description": "Resource that represents a daily Repricing rule report. Next ID: 11", - "id": "RepricingRuleReport", - "properties": { - "buyboxWinningRuleStats": { - "$ref": "RepricingRuleReportBuyboxWinningRuleStats", - "deprecated": true, - "description": "Stats specific to buybox winning rules for rule report (deprecated)." - }, - "date": { - "$ref": "Date", - "description": "Date of the stats in this report. The report starts and ends according to the merchant's timezone." - }, - "impactedProducts": { - "description": "List of product ids that are impacted by this rule during this reporting period. Out of stock products and products not searched for by customers are examples of non-impacted products.", - "items": { - "type": "string" - }, - "type": "array" - }, - "inapplicabilityDetails": { - "description": "List of all reasons the rule did not apply to the inapplicable products during the specified reporting period.", - "items": { - "$ref": "InapplicabilityDetails" - }, - "type": "array" - }, - "inapplicableProducts": { - "description": "List of product ids that are inapplicable to this rule during this reporting period. To get the inapplicable reason for a specific product, see RepricingProductReport.", - "items": { - "type": "string" - }, - "type": "array" - }, - "orderItemCount": { - "description": "Total unit count of impacted products ordered while the rule was active on the date of the report. This count includes all orders that were started while the rule was active, even if the rule was no longer active when the order was completed.", - "format": "int32", - "type": "integer" - }, - "ruleId": { - "description": "Id of the Repricing rule for this report.", - "type": "string" - }, - "totalGmv": { - "$ref": "PriceAmount", - "description": "Total GMV generated by impacted products while the rule was active on the date of the report. This value includes all orders that were started while the rule was active, even if the rule was no longer active when the order was completed." - }, - "type": { - "description": "Type of the rule.", - "enum": [ - "REPRICING_RULE_TYPE_UNSPECIFIED", - "TYPE_STATS_BASED", - "TYPE_COGS_BASED", - "TYPE_SALES_VOLUME_BASED", - "TYPE_COMPETITIVE_PRICE" - ], - "enumDescriptions": [ - "Unused.", - "Statistical measurement based rules among Google SA merchants. If this rule is chosen, repricer will adjust the offer price based on statistical metrics (currently only min is available) among other merchants who sell the same product. Details need to be provdided in the RuleDefinition.", - "Cost of goods sale based rule. Repricer will adjust the offer price based on the offer's sale cost which is provided by the merchant.", - "Sales volume based rule. Repricer will adjust the offer price based on the offer's sales volume in the past period of time defined within the rule.", - "Competitive price rule. Repricer will adjust the offer price based on the min price from a list of unnamed big competitors." - ], - "type": "string" - } - }, - "type": "object" - }, - "RepricingRuleReportBuyboxWinningRuleStats": { - "description": "Stats specific to buybox winning rules for rule report.", - "id": "RepricingRuleReportBuyboxWinningRuleStats", - "properties": { - "buyboxWonProductCount": { - "description": "Number of unique products that won the buybox with this rule during this period of time.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "RepricingRuleRestriction": { - "description": "Definition of a rule restriction. At least one of the following needs to be true: (1) use_auto_pricing_min_price is true (2) floor.price_delta exists (3) floor.percentage_delta exists If floor.price_delta and floor.percentage_delta are both set on a rule, the highest value will be chosen by the Repricer. In other words, for a product with a price of $50, if the `floor.percentage_delta` is \"-10\" and the floor.price_delta is \"-12\", the offer price will only be lowered $5 (10% lower than the original offer price).", - "id": "RepricingRuleRestriction", - "properties": { - "floor": { - "$ref": "RepricingRuleRestrictionBoundary", - "description": "The inclusive floor lower bound. The repricing rule only applies when new price >= floor." - }, - "useAutoPricingMinPrice": { - "description": "If true, use the AUTO_PRICING_MIN_PRICE offer attribute as the lower bound of the rule. If use_auto_pricing_min_price is true, then only offers with `AUTO_PRICING_MIN_PRICE` existing on the offer will get Repricer treatment, even if a floor value is set on the rule. Also, if use_auto_pricing_min_price is true, the floor restriction will be ignored.", - "type": "boolean" - } - }, - "type": "object" - }, - "RepricingRuleRestrictionBoundary": { - "description": "Definition of a boundary.", - "id": "RepricingRuleRestrictionBoundary", - "properties": { - "percentageDelta": { - "description": "The percentage delta relative to the offer selling price. This field is signed. It must be negative in floor. When it is used in floor, it should be > -100. For example, if an offer is selling at $10 and this field is -30 in floor, the repricing rule only applies if the calculated new price is >= $7.", - "format": "int32", - "type": "integer" - }, - "priceDelta": { - "description": "The price micros relative to the offer selling price. This field is signed. It must be negative in floor. For example, if an offer is selling at $10 and this field is -$2 in floor, the repricing rule only applies if the calculated new price is >= $8.", - "type": "string" - } - }, - "type": "object" - }, - "RepricingRuleStatsBasedRule": { - "description": "Definition of stats based rule.", - "id": "RepricingRuleStatsBasedRule", - "properties": { - "percentageDelta": { - "description": "The percent change against the price target. Valid from 0 to 100 inclusively.", - "format": "int32", - "type": "integer" - }, - "priceDelta": { - "description": "The price delta against the above price target. A positive value means the price should be adjusted to be above statistical measure, and a negative value means below. Currency code must not be included.", - "type": "string" - } - }, - "type": "object" - }, "RequestPhoneVerificationRequest": { "description": "Request message for the RequestPhoneVerification method.", "id": "RequestPhoneVerificationRequest", @@ -17638,7 +16880,7 @@ "id": "SearchRequest", "properties": { "pageSize": { - "description": "Number of ReportRows to retrieve in a single page. Defaults to the maximum of 1000. Values above 1000 are coerced to 1000.", + "description": "Number of ReportRows to retrieve in a single page. Defaults to 1000. Values above 5000 are coerced to 5000.", "format": "int32", "type": "integer" }, diff --git a/discovery/googleapis/customsearch__v1.json b/discovery/googleapis/customsearch__v1.json index 019cb7e7b..59d7143de 100644 --- a/discovery/googleapis/customsearch__v1.json +++ b/discovery/googleapis/customsearch__v1.json @@ -16,7 +16,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240226", "rootUrl": "https://customsearch.googleapis.com/", "servicePath": "", "title": "Custom Search API", @@ -308,7 +308,8 @@ "type": "string" }, "relatedSite": { - "description": "Specifies that all search results should be pages that are related to the specified URL.", + "deprecated": true, + "description": "Deprecated.", "location": "query", "type": "string" }, @@ -603,7 +604,8 @@ "type": "string" }, "relatedSite": { - "description": "Specifies that all search results should be pages that are related to the specified URL.", + "deprecated": true, + "description": "Deprecated.", "location": "query", "type": "string" }, diff --git a/discovery/googleapis/datacatalog__v1.json b/discovery/googleapis/datacatalog__v1.json index bb5260521..b6501ceab 100644 --- a/discovery/googleapis/datacatalog__v1.json +++ b/discovery/googleapis/datacatalog__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231108", + "revision": "20240220", "rootUrl": "https://datacatalog.googleapis.com/", "servicePath": "", "title": "Google Cloud Data Catalog API", @@ -1795,7 +1795,7 @@ ], "parameters": { "name": { - "description": "Output only. Resource name of this taxonomy in URL format. Note: Policy tag manager generates unique taxonomy IDs.", + "description": "Identifier. Resource name of this taxonomy in URL format. Note: Policy tag manager generates unique taxonomy IDs.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/taxonomies/[^/]+$", "required": true, @@ -2059,7 +2059,7 @@ ], "parameters": { "name": { - "description": "Output only. Resource name of this policy tag in the URL format. The policy tag manager generates unique taxonomy IDs and policy tag IDs.", + "description": "Identifier. Resource name of this policy tag in the URL format. The policy tag manager generates unique taxonomy IDs and policy tag IDs.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/taxonomies/[^/]+/policyTags/[^/]+$", "required": true, @@ -2158,14 +2158,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -2467,6 +2467,10 @@ "format": "int32", "type": "integer" }, + "rangeElementType": { + "$ref": "GoogleCloudDatacatalogV1ColumnSchemaFieldElementType", + "description": "Optional. The subtype of the RANGE, if the type of this field is RANGE. If the type is RANGE, this field is required. Possible values for the field element type of a RANGE include: * DATE * DATETIME * TIMESTAMP" + }, "subcolumns": { "description": "Optional. Schema of sub-columns. A column can have zero or more sub-columns.", "items": { @@ -2481,6 +2485,17 @@ }, "type": "object" }, + "GoogleCloudDatacatalogV1ColumnSchemaFieldElementType": { + "description": "Represents the type of a field element.", + "id": "GoogleCloudDatacatalogV1ColumnSchemaFieldElementType", + "properties": { + "type": { + "description": "Required. The type of a field element. See ColumnSchema.type.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDatacatalogV1ColumnSchemaLookerColumnSpec": { "description": "Column info specific to Looker System.", "id": "GoogleCloudDatacatalogV1ColumnSchemaLookerColumnSpec", @@ -2836,6 +2851,10 @@ "description": "Display name of an entry. The maximum size is 500 bytes when encoded in UTF-8. Default value is an empty string.", "type": "string" }, + "featureOnlineStoreSpec": { + "$ref": "GoogleCloudDatacatalogV1FeatureOnlineStoreSpec", + "description": "FeatureonlineStore spec for Vertex AI Feature Store." + }, "filesetSpec": { "$ref": "GoogleCloudDatacatalogV1FilesetSpec", "description": "Specification that applies to a fileset resource. Valid only for entries with the `FILESET` type." @@ -2944,7 +2963,10 @@ "DATABASE_SCHEMA", "DASHBOARD", "EXPLORE", - "LOOK" + "LOOK", + "FEATURE_ONLINE_STORE", + "FEATURE_VIEW", + "FEATURE_GROUP" ], "enumDescriptions": [ "Default unknown type.", @@ -2962,7 +2984,10 @@ "Schema within a relational database.", "A Dashboard, for example from Looker.", "A Looker Explore. For more information, see [Looker Explore API] (https://developers.looker.com/api/explorer/4.0/methods/LookmlModel/lookml_model_explore).", - "A Looker Look. For more information, see [Looker Look API] (https://developers.looker.com/api/explorer/4.0/methods/Look)." + "A Looker Look. For more information, see [Looker Look API] (https://developers.looker.com/api/explorer/4.0/methods/Look).", + "Feature Online Store resource in Vertex AI Feature Store.", + "Feature View resource in Vertex AI Feature Store.", + "Feature Group resource in Vertex AI Feature Store." ], "type": "string" }, @@ -3030,6 +3055,28 @@ }, "type": "object" }, + "GoogleCloudDatacatalogV1FeatureOnlineStoreSpec": { + "description": "Detail description of the source information of a Vertex Feature Online Store.", + "id": "GoogleCloudDatacatalogV1FeatureOnlineStoreSpec", + "properties": { + "storageType": { + "description": "Output only. Type of underelaying storage for the FeatureOnlineStore.", + "enum": [ + "STORAGE_TYPE_UNSPECIFIED", + "BIGTABLE", + "OPTIMIZED" + ], + "enumDescriptions": [ + "Should not be used.", + "Underlsying storgae is Bigtable.", + "Underlaying is optimized online server (Lightning)." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDatacatalogV1FieldType": { "id": "GoogleCloudDatacatalogV1FieldType", "properties": { @@ -3518,8 +3565,7 @@ "type": "string" }, "name": { - "description": "Output only. Resource name of this policy tag in the URL format. The policy tag manager generates unique taxonomy IDs and policy tag IDs.", - "readOnly": true, + "description": "Identifier. Resource name of this policy tag in the URL format. The policy tag manager generates unique taxonomy IDs and policy tag IDs.", "type": "string" }, "parentPolicyTag": { @@ -4269,8 +4315,7 @@ "type": "string" }, "name": { - "description": "Output only. Resource name of this taxonomy in URL format. Note: Policy tag manager generates unique taxonomy IDs.", - "readOnly": true, + "description": "Identifier. Resource name of this taxonomy in URL format. Note: Policy tag manager generates unique taxonomy IDs.", "type": "string" }, "policyTagCount": { diff --git a/discovery/googleapis/datafusion__v1.json b/discovery/googleapis/datafusion__v1.json index 46691d4f9..4ff5ad1a8 100644 --- a/discovery/googleapis/datafusion__v1.json +++ b/discovery/googleapis/datafusion__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231017", + "revision": "20240111", "rootUrl": "https://datafusion.googleapis.com/", "servicePath": "", "title": "Cloud Data Fusion API", @@ -198,7 +198,7 @@ ], "parameters": { "instanceId": { - "description": "Required. The name of the instance to create.", + "description": "Required. The name of the instance to create. Instance name can only contain lowercase alphanumeric characters and hyphens. It must start with a letter and must not end with a hyphen. It can have a maximum of 30 characters.", "location": "query", "type": "string" }, @@ -840,7 +840,7 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, @@ -870,6 +870,38 @@ }, "type": "object" }, + "DataResidencyAugmentedView": { + "description": "Next tag: 7", + "id": "DataResidencyAugmentedView", + "properties": { + "crGopoGuris": { + "description": "Cloud resource to Google owned production object mapping in the form of GURIs. The GURIs should be available in DG KB storage/cns tables. This is the preferred way of providing cloud resource mappings. For further details please read go/cloud-resource-monitoring_sig", + "items": { + "type": "string" + }, + "type": "array" + }, + "crGopoPrefixes": { + "description": "Cloud resource to Google owned production object mapping in the form of prefixes. These should be available in DG KB storage/cns tables. The entity type, which is the part of the string before the first colon in the GURI, must be completely specified in prefix. For details about GURI please read go/guri. For further details about the field please read go/cloud-resource-monitoring_sig.", + "items": { + "type": "string" + }, + "type": "array" + }, + "serviceData": { + "$ref": "ServiceData", + "description": "Service-specific data. Only required for pre-determined services. Generally used to bind a Cloud Resource to some a TI container that uniquely specifies a customer. See milestone 2 of DRZ KR8 SIG for more information." + }, + "tpIds": { + "description": "The list of project_id's of the tenant projects in the 'google.com' org which serve the Cloud Resource. See go/drz-mst-sig for more details.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "DnsPeering": { "description": "DNS peering configuration. These configurations are used to create DNS peering with the customer Cloud DNS.", "id": "DnsPeering", @@ -976,6 +1008,10 @@ "$ref": "CryptoKeyConfig", "description": "The crypto key configuration. This field is used by the Customer-Managed Encryption Keys (CMEK) feature." }, + "dataplexDataLineageIntegrationEnabled": { + "description": "Optional. Option to enable the Dataplex Lineage Integration feature.", + "type": "boolean" + }, "dataprocServiceAccount": { "description": "User-managed service account to set on Dataproc when Cloud Data Fusion creates Dataproc to run data processing pipelines. This allows users to have fine-grained access control on Dataproc's accesses to cloud resources.", "type": "string" @@ -1295,13 +1331,31 @@ "description": "Network configuration for a Data Fusion instance. These configurations are used for peering with the customer network. Configurations are optional when a public Data Fusion instance is to be created. However, providing these configurations allows several benefits, such as reduced network latency while accessing the customer resources from managed Data Fusion instance nodes, as well as access to the customer on-prem resources.", "id": "NetworkConfig", "properties": { + "connectionType": { + "description": "Optional. Type of connection for establishing private IP connectivity between the Data Fusion customer project VPC and the corresponding tenant project from a predefined list of available connection modes. If this field is unspecified for a private instance, VPC peering is used.", + "enum": [ + "CONNECTION_TYPE_UNSPECIFIED", + "VPC_PEERING", + "PRIVATE_SERVICE_CONNECT_INTERFACES" + ], + "enumDescriptions": [ + "No specific connection type was requested, the default value of VPC_PEERING is chosen.", + "Requests the use of VPC peerings for connecting the consumer and tenant projects.", + "Requests the use of Private Service Connect Interfaces for connecting the consumer and tenant projects." + ], + "type": "string" + }, "ipAllocation": { - "description": "The IP range in CIDR notation to use for the managed Data Fusion instance nodes. This range must not overlap with any other ranges used in the customer network.", + "description": "Optional. The IP range in CIDR notation to use for the managed Data Fusion instance nodes. This range must not overlap with any other ranges used in the Data Fusion instance network. This is required only when using connection type VPC_PEERING. Format: a.b.c.d/22 Example: 192.168.0.0/22", "type": "string" }, "network": { - "description": "Name of the network in the customer project with which the Tenant Project will be peered for executing pipelines. In case of shared VPC where the network resides in another host project the network should specified in the form of projects/{host-project-id}/global/networks/{network}", + "description": "Optional. Name of the network in the customer project with which the Tenant Project will be peered for executing pipelines. This is required only when using connection type VPC peering. In case of shared VPC where the network resides in another host project the network should specified in the form of projects/{host-project-id}/global/networks/{network}. This is only required for connectivity type VPC_PEERING.", "type": "string" + }, + "privateServiceConnectConfig": { + "$ref": "PrivateServiceConnectConfig", + "description": "Optional. Configuration for Private Service Connect. This is required only when using connection type PRIVATE_SERVICE_CONNECT_INTERFACES." } }, "type": "object" @@ -1385,6 +1439,27 @@ }, "type": "object" }, + "PersistentDiskData": { + "description": "Persistent Disk service-specific Data. Contains information that may not be appropriate for the generic DRZ Augmented View. This currently includes LSV Colossus Roots and GCS Buckets.", + "id": "PersistentDiskData", + "properties": { + "cfsRoots": { + "description": "Path to Colossus root for an LSV. NOTE: Unlike `cr_ti_guris` and `cr_ti_prefixes`, the field `cfs_roots` below does not need to be a GUri or GUri prefix. It can simply be any valid CFS or CFS2 Path. The DRZ KR8 SIG has more details overall, but generally the `cfs_roots` provided here should be scoped to an individual Persistent Disk. An example for a PD Disk with a disk ID 3277719120423414466, follows: * `cr_ti_guris` could be ‘/cfs2/pj/pd-cloud-prod’ as this is a valid GUri present in the DG KB and contains enough information to perform location monitoring and scope ownership of the Production Object. * `cfs_roots` would be: ‘/cfs2/pj/pd-cloud-staging/lsv000001234@/ lsv/projects~773365403387~zones~2700~disks~3277719120423414466 ~bank-blue-careful-3526-lsv00054DB1B7254BA3/’ as this allows us to enumerate the files on CFS2 that belong to an individual Disk.", + "items": { + "type": "string" + }, + "type": "array" + }, + "gcsBucketNames": { + "description": "The GCS Buckets that back this snapshot or image. This is required as `cr_ti_prefixes` and `cr_ti_guris` only accept TI resources. This should be the globally unique bucket name.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "Policy": { "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members`, or principals, to a single `role`. Principals can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** ``` { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:mike@example.com\", \"group:admins@example.com\", \"domain:google.com\", \"serviceAccount:my-project-id@appspot.gserviceaccount.com\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:eve@example.com\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time < timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } ``` **YAML example:** ``` bindings: - members: - user:mike@example.com - group:admins@example.com - domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.com role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", "id": "Policy", @@ -1416,12 +1491,43 @@ }, "type": "object" }, + "PrivateServiceConnectConfig": { + "description": "Configuration for using Private Service Connect to establish connectivity between the Data Fusion consumer project and the corresponding tenant project.", + "id": "PrivateServiceConnectConfig", + "properties": { + "effectiveUnreachableCidrBlock": { + "description": "Output only. The CIDR block to which the CDF instance can't route traffic to in the consumer project VPC. The size of this block is /25. The format of this field is governed by RFC 4632. Example: 240.0.0.0/25", + "readOnly": true, + "type": "string" + }, + "networkAttachment": { + "description": "Required. The reference to the network attachment used to establish private connectivity. It will be of the form projects/{project-id}/regions/{region}/networkAttachments/{network-attachment-id}.", + "type": "string" + }, + "unreachableCidrBlock": { + "description": "Optional. Input only. The CIDR block to which the CDF instance can't route traffic to in the consumer project VPC. The size of this block should be at least /25. This range should not overlap with the primary address range of any subnetwork used by the network attachment. This range can be used for other purposes in the consumer VPC as long as there is no requirement for CDF to reach destinations using these addresses. If this value is not provided, the server chooses a non RFC 1918 address range. The format of this field is governed by RFC 4632. Example: 192.168.0.0/25", + "type": "string" + } + }, + "type": "object" + }, "RestartInstanceRequest": { "description": "Request message for restarting a Data Fusion instance.", "id": "RestartInstanceRequest", "properties": {}, "type": "object" }, + "ServiceData": { + "description": "This message defines service-specific data that certain service teams must provide as part of the Data Residency Augmented View for a resource. Next ID: 2", + "id": "ServiceData", + "properties": { + "pd": { + "$ref": "PersistentDiskData", + "description": "Auxiliary data for the persistent disk pipeline provided to provide the LSV Colossus Roots and GCS Buckets." + } + }, + "type": "object" + }, "SetIamPolicyRequest": { "description": "Request message for `SetIamPolicy` method.", "id": "SetIamPolicyRequest", diff --git a/discovery/googleapis/datalineage__v1.json b/discovery/googleapis/datalineage__v1.json index 874aa6937..0167b5c70 100644 --- a/discovery/googleapis/datalineage__v1.json +++ b/discovery/googleapis/datalineage__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231027", + "revision": "20240219", "rootUrl": "https://datalineage.googleapis.com/", "servicePath": "", "title": "Data Lineage API", diff --git a/discovery/googleapis/datamigration__v1.json b/discovery/googleapis/datamigration__v1.json index fd36f722a..07d32b176 100644 --- a/discovery/googleapis/datamigration__v1.json +++ b/discovery/googleapis/datamigration__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231111", + "revision": "20240214", "rootUrl": "https://datamigration.googleapis.com/", "servicePath": "", "title": "Database Migration API", @@ -1316,7 +1316,7 @@ ] }, "demoteDestination": { - "description": "Demotes the destination database to become a read replica of the source. This is applicable for the following migrations: 1. MySQL to Cloud SQL (for MySQL) 2. PostgreSQL to Cloud SQL (for PostgreSQL) 3. PostgreSQL to AlloyDB.", + "description": "Demotes the destination database to become a read replica of the source. This is applicable for the following migrations: 1. MySQL to Cloud SQL for MySQL 2. PostgreSQL to Cloud SQL for PostgreSQL 3. PostgreSQL to AlloyDB for PostgreSQL.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/migrationJobs/{migrationJobsId}:demoteDestination", "httpMethod": "POST", "id": "datamigration.projects.locations.migrationJobs.demoteDestination", @@ -2391,14 +2391,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -2531,6 +2531,7 @@ "MYSQL_8_0_32", "MYSQL_8_0_33", "MYSQL_8_0_34", + "MYSQL_8_0_35", "POSTGRES_9_6", "POSTGRES_11", "POSTGRES_10", @@ -2553,6 +2554,7 @@ "The database major version is MySQL 8.0 and the minor version is 32.", "The database major version is MySQL 8.0 and the minor version is 33.", "The database major version is MySQL 8.0 and the minor version is 34.", + "The database major version is MySQL 8.0 and the minor version is 35.", "PostgreSQL 9.6.", "PostgreSQL 11.", "PostgreSQL 10.", diff --git a/discovery/googleapis/datapipelines__v1.json b/discovery/googleapis/datapipelines__v1.json index 46d99fc76..e045ac983 100644 --- a/discovery/googleapis/datapipelines__v1.json +++ b/discovery/googleapis/datapipelines__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231112", + "revision": "20240218", "rootUrl": "https://datapipelines.googleapis.com/", "servicePath": "", "title": "Data pipelines API", diff --git a/discovery/googleapis/dataplex__v1.json b/discovery/googleapis/dataplex__v1.json index c9df02df1..7d2c4a4ca 100644 --- a/discovery/googleapis/dataplex__v1.json +++ b/discovery/googleapis/dataplex__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231103", + "revision": "20240214", "rootUrl": "https://dataplex.googleapis.com/", "servicePath": "", "title": "Cloud Dataplex API", @@ -5525,6 +5525,24 @@ }, "type": "object" }, + "GoogleCloudDataplexV1DataQualityColumnResult": { + "description": "DataQualityColumnResult provides a more detailed, per-column view of the results.", + "id": "GoogleCloudDataplexV1DataQualityColumnResult", + "properties": { + "column": { + "description": "Output only. The column specified in the DataQualityRule.", + "readOnly": true, + "type": "string" + }, + "score": { + "description": "Output only. The column-level data quality score for this data scan job if and only if the 'column' field is set.The score ranges between between 0, 100 (up to two decimal points).", + "format": "float", + "readOnly": true, + "type": "number" + } + }, + "type": "object" + }, "GoogleCloudDataplexV1DataQualityDimension": { "description": "A dimension captures data quality intent about a defined subset of the rules specified.", "id": "GoogleCloudDataplexV1DataQualityDimension", @@ -5548,6 +5566,12 @@ "passed": { "description": "Whether the dimension passed or failed.", "type": "boolean" + }, + "score": { + "description": "Output only. The dimension-level data quality score for this data scan job if and only if the 'dimension' field is set.The score ranges between 0, 100 (up to two decimal points).", + "format": "float", + "readOnly": true, + "type": "number" } }, "type": "object" @@ -5556,6 +5580,14 @@ "description": "The output of a DataQualityScan.", "id": "GoogleCloudDataplexV1DataQualityResult", "properties": { + "columns": { + "description": "Output only. A list of results at the column level.A column will have a corresponding DataQualityColumnResult if and only if there is at least one rule with the 'column' field set to it.", + "items": { + "$ref": "GoogleCloudDataplexV1DataQualityColumnResult" + }, + "readOnly": true, + "type": "array" + }, "dimensions": { "description": "A list of results at the dimension level.A dimension will have a corresponding DataQualityDimensionResult if and only if there is at least one rule with the 'dimension' field set to it.", "items": { @@ -5587,6 +5619,12 @@ "scannedData": { "$ref": "GoogleCloudDataplexV1ScannedData", "description": "The data scanned for this result." + }, + "score": { + "description": "Output only. The overall data quality score.The score ranges between 0, 100 (up to two decimal points).", + "format": "float", + "readOnly": true, + "type": "number" } }, "type": "object" @@ -5649,7 +5687,7 @@ "type": "string" }, "ignoreNull": { - "description": "Optional. Rows with null values will automatically fail a rule, unless ignore_null is true. In that case, such null rows are trivially considered passing.This field is only valid for row-level type rules.", + "description": "Optional. Rows with null values will automatically fail a rule, unless ignore_null is true. In that case, such null rows are trivially considered passing.This field is only valid for the following type of rules: RangeExpectation RegexExpectation SetExpectation UniquenessExpectation", "type": "boolean" }, "name": { @@ -7080,7 +7118,8 @@ "ACCESS_POLICY_UPDATE", "GOVERNANCE_RULE_MATCHED_RESOURCES", "GOVERNANCE_RULE_SEARCH_LIMIT_EXCEEDS", - "GOVERNANCE_RULE_ERRORS" + "GOVERNANCE_RULE_ERRORS", + "GOVERNANCE_RULE_PROCESSING" ], "enumDescriptions": [ "An unspecified event type.", @@ -7098,7 +7137,8 @@ "Access policy update event.", "Number of resources matched with particular Query.", "Rule processing exceeds the allowed limit.", - "Rule processing errors." + "Rule processing errors.", + "Governance rule processing Event." ], "type": "string" }, @@ -9083,14 +9123,14 @@ "description": "The condition that is associated with this binding.If the condition evaluates to true, then this binding applies to the current request.If the condition evaluates to false, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. members can have the following values: allUsers: A special identifier that represents anyone who is on the internet; with or without a Google account. allAuthenticatedUsers: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. user:{emailid}: An email address that represents a specific Google account. For example, alice@example.com . serviceAccount:{emailid}: An email address that represents a Google service account. For example, my-other-app@appspot.gserviceaccount.com. serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]: An identifier for a Kubernetes service account (https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, my-project.svc.id.goog[my-namespace/my-kubernetes-sa]. group:{emailid}: An email address that represents a Google group. For example, admins@example.com. domain:{domain}: The G Suite domain (primary) that represents all the users of that domain. For example, google.com or example.com. deleted:user:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a user that has been recently deleted. For example, alice@example.com?uid=123456789012345678901. If the user is recovered, this value reverts to user:{emailid} and the recovered user retains the role in the binding. deleted:serviceAccount:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. If the service account is undeleted, this value reverts to serviceAccount:{emailid} and the undeleted service account retains the role in the binding. deleted:group:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, admins@example.com?uid=123456789012345678901. If the group is recovered, this value reverts to group:{emailid} and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. members can have the following values: allUsers: A special identifier that represents anyone who is on the internet; with or without a Google account. allAuthenticatedUsers: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. user:{emailid}: An email address that represents a specific Google account. For example, alice@example.com . serviceAccount:{emailid}: An email address that represents a Google service account. For example, my-other-app@appspot.gserviceaccount.com. serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]: An identifier for a Kubernetes service account (https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, my-project.svc.id.goog[my-namespace/my-kubernetes-sa]. group:{emailid}: An email address that represents a Google group. For example, admins@example.com. domain:{domain}: The G Suite domain (primary) that represents all the users of that domain. For example, google.com or example.com. principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}: A single identity in a workforce identity pool. principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}: All workforce identities in a group. principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}: All workforce identities with a specific attribute value. principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*: All identities in a workforce identity pool. principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}: A single identity in a workload identity pool. principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}: A workload identity pool group. principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}: All identities in a workload identity pool with a certain attribute. principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*: All identities in a workload identity pool. deleted:user:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a user that has been recently deleted. For example, alice@example.com?uid=123456789012345678901. If the user is recovered, this value reverts to user:{emailid} and the recovered user retains the role in the binding. deleted:serviceAccount:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. If the service account is undeleted, this value reverts to serviceAccount:{emailid} and the undeleted service account retains the role in the binding. deleted:group:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, admins@example.com?uid=123456789012345678901. If the group is recovered, this value reverts to group:{emailid} and the recovered group retains the role in the binding. deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}: Deleted single identity in a workforce identity pool. For example, deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of members, or principals. For example, roles/viewer, roles/editor, or roles/owner.", + "description": "Role that is assigned to the list of members, or principals. For example, roles/viewer, roles/editor, or roles/owner.For an overview of the IAM roles and permissions, see the IAM documentation (https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see here (https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, diff --git a/discovery/googleapis/dataproc__v1.json b/discovery/googleapis/dataproc__v1.json index 5f38d176c..7f1cd7e41 100644 --- a/discovery/googleapis/dataproc__v1.json +++ b/discovery/googleapis/dataproc__v1.json @@ -32,7 +32,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231109", + "revision": "20240209", "rootUrl": "https://dataproc.googleapis.com/", "servicePath": "", "title": "Cloud Dataproc API", @@ -1733,7 +1733,7 @@ ], "parameters": { "filter": { - "description": "Optional. A filter constraining the clusters to list. Filters are case-sensitive and have the following syntax:field = value AND field = value ...where field is one of status.state, clusterName, or labels.[KEY], and [KEY] is a label key. value can be * to match all values. status.state can be one of the following: ACTIVE, INACTIVE, CREATING, RUNNING, ERROR, DELETING, or UPDATING. ACTIVE contains the CREATING, UPDATING, and RUNNING states. INACTIVE contains the DELETING and ERROR states. clusterName is the name of the cluster provided at creation time. Only the logical AND operator is supported; space-separated items are treated as having an implicit AND operator.Example filter:status.state = ACTIVE AND clusterName = mycluster AND labels.env = staging AND labels.starred = *", + "description": "Optional. A filter constraining the clusters to list. Filters are case-sensitive and have the following syntax:field = value AND field = value ...where field is one of status.state, clusterName, or labels.[KEY], and [KEY] is a label key. value can be * to match all values. status.state can be one of the following: ACTIVE, INACTIVE, CREATING, RUNNING, ERROR, DELETING, UPDATING, STOPPING, or STOPPED. ACTIVE contains the CREATING, UPDATING, and RUNNING states. INACTIVE contains the DELETING, ERROR, STOPPING, and STOPPED states. clusterName is the name of the cluster provided at creation time. Only the logical AND operator is supported; space-separated items are treated as having an implicit AND operator.Example filter:status.state = ACTIVE AND clusterName = mycluster AND labels.env = staging AND labels.starred = *", "location": "query", "type": "string" }, @@ -2037,7 +2037,7 @@ "type": "string" }, "requestId": { - "description": "Optional. A unique ID used to identify the request. If the server receives two CreateNodeGroupRequest (https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#google.cloud.dataproc.v1.CreateNodeGroupRequests) with the same ID, the second request is ignored and the first google.longrunning.Operation created and stored in the backend is returned.Recommendation: Set this value to a UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier).The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", + "description": "Optional. A unique ID used to identify the request. If the server receives two CreateNodeGroupRequest (https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#google.cloud.dataproc.v1.CreateNodeGroupRequest) with the same ID, the second request is ignored and the first google.longrunning.Operation created and stored in the backend is returned.Recommendation: Set this value to a UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier).The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", "location": "query", "type": "string" } @@ -2078,6 +2078,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "repair": { + "description": "Repair nodes in a node group.", + "flatPath": "v1/projects/{projectsId}/regions/{regionsId}/clusters/{clustersId}/nodeGroups/{nodeGroupsId}:repair", + "httpMethod": "POST", + "id": "dataproc.projects.regions.clusters.nodeGroups.repair", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the node group to resize. Format: projects/{project}/regions/{region}/clusters/{cluster}/nodeGroups/{nodeGroup}", + "location": "path", + "pattern": "^projects/[^/]+/regions/[^/]+/clusters/[^/]+/nodeGroups/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:repair", + "request": { + "$ref": "RepairNodeGroupRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "resize": { "description": "Resizes a node group in a cluster. The returned Operation.metadata is NodeGroupOperationMetadata (https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#nodegroupoperationmetadata).", "flatPath": "v1/projects/{projectsId}/regions/{regionsId}/clusters/{clustersId}/nodeGroups/{nodeGroupsId}:resize", @@ -3026,6 +3054,69 @@ }, "type": "object" }, + "AnalyzeOperationMetadata": { + "description": "Metadata describing the Analyze operation.", + "id": "AnalyzeOperationMetadata", + "properties": { + "analyzedWorkloadName": { + "description": "Output only. name of the workload being analyzed.", + "readOnly": true, + "type": "string" + }, + "analyzedWorkloadType": { + "description": "Output only. Type of the workload being analyzed.", + "enum": [ + "WORKLOAD_TYPE_UNSPECIFIED", + "BATCH" + ], + "enumDescriptions": [ + "Undefined option", + "Serverless batch job" + ], + "readOnly": true, + "type": "string" + }, + "analyzedWorkloadUuid": { + "description": "Output only. unique identifier of the workload typically generated by control plane. E.g. batch uuid.", + "readOnly": true, + "type": "string" + }, + "createTime": { + "description": "Output only. The time when the operation was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Output only. Short description of the operation.", + "readOnly": true, + "type": "string" + }, + "doneTime": { + "description": "Output only. The time when the operation finished.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Output only. Labels associated with the operation.", + "readOnly": true, + "type": "object" + }, + "warnings": { + "description": "Output only. Warnings encountered during operation execution.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, "AutoscalingConfig": { "description": "Autoscaling Policy config associated with the cluster.", "id": "AutoscalingConfig", @@ -3328,14 +3419,14 @@ "description": "The condition that is associated with this binding.If the condition evaluates to true, then this binding applies to the current request.If the condition evaluates to false, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. members can have the following values: allUsers: A special identifier that represents anyone who is on the internet; with or without a Google account. allAuthenticatedUsers: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. user:{emailid}: An email address that represents a specific Google account. For example, alice@example.com . serviceAccount:{emailid}: An email address that represents a Google service account. For example, my-other-app@appspot.gserviceaccount.com. serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]: An identifier for a Kubernetes service account (https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, my-project.svc.id.goog[my-namespace/my-kubernetes-sa]. group:{emailid}: An email address that represents a Google group. For example, admins@example.com. domain:{domain}: The G Suite domain (primary) that represents all the users of that domain. For example, google.com or example.com. deleted:user:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a user that has been recently deleted. For example, alice@example.com?uid=123456789012345678901. If the user is recovered, this value reverts to user:{emailid} and the recovered user retains the role in the binding. deleted:serviceAccount:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. If the service account is undeleted, this value reverts to serviceAccount:{emailid} and the undeleted service account retains the role in the binding. deleted:group:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, admins@example.com?uid=123456789012345678901. If the group is recovered, this value reverts to group:{emailid} and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. members can have the following values: allUsers: A special identifier that represents anyone who is on the internet; with or without a Google account. allAuthenticatedUsers: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. user:{emailid}: An email address that represents a specific Google account. For example, alice@example.com . serviceAccount:{emailid}: An email address that represents a Google service account. For example, my-other-app@appspot.gserviceaccount.com. serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]: An identifier for a Kubernetes service account (https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, my-project.svc.id.goog[my-namespace/my-kubernetes-sa]. group:{emailid}: An email address that represents a Google group. For example, admins@example.com. domain:{domain}: The G Suite domain (primary) that represents all the users of that domain. For example, google.com or example.com. principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}: A single identity in a workforce identity pool. principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}: All workforce identities in a group. principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}: All workforce identities with a specific attribute value. principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*: All identities in a workforce identity pool. principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}: A single identity in a workload identity pool. principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}: A workload identity pool group. principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}: All identities in a workload identity pool with a certain attribute. principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*: All identities in a workload identity pool. deleted:user:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a user that has been recently deleted. For example, alice@example.com?uid=123456789012345678901. If the user is recovered, this value reverts to user:{emailid} and the recovered user retains the role in the binding. deleted:serviceAccount:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. If the service account is undeleted, this value reverts to serviceAccount:{emailid} and the undeleted service account retains the role in the binding. deleted:group:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, admins@example.com?uid=123456789012345678901. If the group is recovered, this value reverts to group:{emailid} and the recovered group retains the role in the binding. deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}: Deleted single identity in a workforce identity pool. For example, deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of members, or principals. For example, roles/viewer, roles/editor, or roles/owner.", + "description": "Role that is assigned to the list of members, or principals. For example, roles/viewer, roles/editor, or roles/owner.For an overview of the IAM roles and permissions, see the IAM documentation (https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see here (https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -3856,11 +3947,11 @@ "id": "EncryptionConfig", "properties": { "gcePdKmsKeyName": { - "description": "Optional. The Cloud KMS key name to use for PD disk encryption for all instances in the cluster.", + "description": "Optional. The Cloud KMS key resource name to use for persistent disk encryption for all instances in the cluster. See Use CMEK with cluster data (https://cloud.google.com//dataproc/docs/concepts/configuring-clusters/customer-managed-encryption#use_cmek_with_cluster_data) for more information.", "type": "string" }, "kmsKey": { - "description": "Optional. The Cloud KMS key name to use for encrypting customer core content in spanner and cluster PD disk for all instances in the cluster.", + "description": "Optional. The Cloud KMS key resource name to use for cluster persistent disk and job argument encryption. See Use CMEK with cluster data (https://cloud.google.com//dataproc/docs/concepts/configuring-clusters/customer-managed-encryption#use_cmek_with_cluster_data) for more information.When this key resource name is provided, the following job arguments of the following job types submitted to the cluster are encrypted using CMEK: FlinkJob args (https://cloud.google.com/dataproc/docs/reference/rest/v1/FlinkJob) HadoopJob args (https://cloud.google.com/dataproc/docs/reference/rest/v1/HadoopJob) SparkJob args (https://cloud.google.com/dataproc/docs/reference/rest/v1/SparkJob) SparkRJob args (https://cloud.google.com/dataproc/docs/reference/rest/v1/SparkRJob) PySparkJob args (https://cloud.google.com/dataproc/docs/reference/rest/v1/PySparkJob) SparkSqlJob (https://cloud.google.com/dataproc/docs/reference/rest/v1/SparkSqlJob) scriptVariables and queryList.queries HiveJob (https://cloud.google.com/dataproc/docs/reference/rest/v1/HiveJob) scriptVariables and queryList.queries PigJob (https://cloud.google.com/dataproc/docs/reference/rest/v1/PigJob) scriptVariables and queryList.queries PrestoJob (https://cloud.google.com/dataproc/docs/reference/rest/v1/PrestoJob) scriptVariables and queryList.queries", "type": "string" } }, @@ -4272,11 +4363,11 @@ "type": "object" }, "GoogleCloudDataprocV1WorkflowTemplateEncryptionConfig": { - "description": "Encryption settings for the encrypting customer core content. NEXT ID: 2", + "description": "Encryption settings for encrypting workflow template job arguments.", "id": "GoogleCloudDataprocV1WorkflowTemplateEncryptionConfig", "properties": { "kmsKey": { - "description": "Optional. The Cloud KMS key name to use for encrypting customer core content.", + "description": "Optional. The Cloud KMS key name to use for encrypting workflow template job arguments.When this this key is provided, the following workflow template job arguments (https://cloud.google.com/dataproc/docs/concepts/workflows/use-workflows#adding_jobs_to_a_template), if present, are CMEK encrypted (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/customer-managed-encryption#use_cmek_with_workflow_template_data): FlinkJob args (https://cloud.google.com/dataproc/docs/reference/rest/v1/FlinkJob) HadoopJob args (https://cloud.google.com/dataproc/docs/reference/rest/v1/HadoopJob) SparkJob args (https://cloud.google.com/dataproc/docs/reference/rest/v1/SparkJob) SparkRJob args (https://cloud.google.com/dataproc/docs/reference/rest/v1/SparkRJob) PySparkJob args (https://cloud.google.com/dataproc/docs/reference/rest/v1/PySparkJob) SparkSqlJob (https://cloud.google.com/dataproc/docs/reference/rest/v1/SparkSqlJob) scriptVariables and queryList.queries HiveJob (https://cloud.google.com/dataproc/docs/reference/rest/v1/HiveJob) scriptVariables and queryList.queries PigJob (https://cloud.google.com/dataproc/docs/reference/rest/v1/PigJob) scriptVariables and queryList.queries PrestoJob (https://cloud.google.com/dataproc/docs/reference/rest/v1/PrestoJob) scriptVariables and queryList.queries", "type": "string" } }, @@ -4963,7 +5054,7 @@ "type": "string" }, "kmsKeyUri": { - "description": "Optional. The uri of the KMS key used to encrypt various sensitive files.", + "description": "Optional. The URI of the KMS key used to encrypt sensitive files.", "type": "string" }, "realm": { @@ -5093,6 +5184,14 @@ "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" + }, + "unreachable": { + "description": "Output only. List of Batches that could not be included in the response. Attempting to get one of these resources may indicate why it was not included in the list response.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" } }, "type": "object" @@ -5134,7 +5233,7 @@ "type": "string" }, "unreachable": { - "description": "Output only. List of jobs that could not be included in the response. Attempting to get one of these resources may indicate why it was not included in the list response.", + "description": "Output only. List of jobs with kms_key-encrypted parameters that could not be decrypted. A response to a jobs.get request may indicate the reason for the decryption failure for a specific job.", "items": { "type": "string" }, @@ -5458,7 +5557,8 @@ "UPDATE", "DELETE", "RESIZE", - "REPAIR" + "REPAIR", + "UPDATE_LABELS" ], "enumDescriptions": [ "Node group operation type is unknown.", @@ -5466,7 +5566,8 @@ "Update node group operation type.", "Delete node group operation type.", "Resize node group operation type.", - "Repair node group operation type." + "Repair node group operation type.", + "Update node group label operation type." ], "type": "string" }, @@ -5956,6 +6057,35 @@ }, "type": "object" }, + "RepairNodeGroupRequest": { + "id": "RepairNodeGroupRequest", + "properties": { + "instanceNames": { + "description": "Required. Name of instances to be repaired. These instances must belong to specified node pool.", + "items": { + "type": "string" + }, + "type": "array" + }, + "repairAction": { + "description": "Required. Repair action to take on specified resources of the node pool.", + "enum": [ + "REPAIR_ACTION_UNSPECIFIED", + "REPLACE" + ], + "enumDescriptions": [ + "No action will be taken by default.", + "replace the specified list of nodes." + ], + "type": "string" + }, + "requestId": { + "description": "Optional. A unique ID used to identify the request. If the server receives two RepairNodeGroupRequest with the same ID, the second request is ignored and the first google.longrunning.Operation created and stored in the backend is returned.Recommendation: Set this value to a UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier).The ID must contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and hyphens (-). The maximum length is 40 characters.", + "type": "string" + } + }, + "type": "object" + }, "RepositoryConfig": { "description": "Configuration for dependency repositories", "id": "RepositoryConfig", @@ -7239,7 +7369,7 @@ }, "encryptionConfig": { "$ref": "GoogleCloudDataprocV1WorkflowTemplateEncryptionConfig", - "description": "Optional. Encryption settings for the encrypting customer core content." + "description": "Optional. Encryption settings for encrypting workflow template job arguments." }, "id": { "type": "string" diff --git a/discovery/googleapis/datastore__v1.json b/discovery/googleapis/datastore__v1.json index 7555eff6b..7dee5d10a 100644 --- a/discovery/googleapis/datastore__v1.json +++ b/discovery/googleapis/datastore__v1.json @@ -27,7 +27,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231103", + "revision": "20240215", "rootUrl": "https://datastore.googleapis.com/", "servicePath": "", "title": "Cloud Datastore API", diff --git a/discovery/googleapis/datastream__v1.json b/discovery/googleapis/datastream__v1.json index 6c695cc5f..5fae1732c 100644 --- a/discovery/googleapis/datastream__v1.json +++ b/discovery/googleapis/datastream__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231030", + "revision": "20240215", "rootUrl": "https://datastream.googleapis.com/", "servicePath": "", "title": "Datastream API", @@ -1276,6 +1276,10 @@ "postgresqlExcludedObjects": { "$ref": "PostgresqlRdbms", "description": "PostgreSQL data source objects to avoid backfilling." + }, + "sqlServerExcludedObjects": { + "$ref": "SqlServerRdbms", + "description": "SQLServer data source objects to avoid backfilling" } }, "type": "object" @@ -1457,6 +1461,10 @@ "$ref": "PrivateConnectivity", "description": "Private connectivity." }, + "sqlServerProfile": { + "$ref": "SqlServerProfile", + "description": "SQLServer Connection Profile configuration." + }, "staticServiceIpConnectivity": { "$ref": "StaticServiceIpConnectivity", "description": "Static Service IP connectivity." @@ -2374,6 +2382,18 @@ }, "type": "object" }, + "OracleScnPosition": { + "description": "Oracle SCN position", + "id": "OracleScnPosition", + "properties": { + "scn": { + "description": "Required. SCN number from where Logs will be read", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "OracleSourceConfig": { "description": "Oracle data source configuration", "id": "OracleSourceConfig", @@ -2402,7 +2422,7 @@ }, "streamLargeObjects": { "$ref": "StreamLargeObjects", - "description": "Stream large object values. NOTE: This feature is currently experimental." + "description": "Stream large object values." } }, "type": "object" @@ -2766,6 +2786,10 @@ "sourceConnectionProfile": { "description": "Required. Source connection profile resoource. Format: `projects/{project}/locations/{location}/connectionProfiles/{name}`", "type": "string" + }, + "sqlServerSourceConfig": { + "$ref": "SqlServerSourceConfig", + "description": "SQLServer data source configuration." } }, "type": "object" @@ -2796,6 +2820,10 @@ "postgresqlIdentifier": { "$ref": "PostgresqlObjectIdentifier", "description": "PostgreSQL data source object identifier." + }, + "sqlServerIdentifier": { + "$ref": "SqlServerObjectIdentifier", + "description": "SQLServer data source object identifier." } }, "type": "object" @@ -2807,6 +2835,171 @@ "mysqlLogPosition": { "$ref": "MysqlLogPosition", "description": "MySQL specific log position to start replicating from." + }, + "oracleScnPosition": { + "$ref": "OracleScnPosition", + "description": "Oracle SCN to start replicating from." + } + }, + "type": "object" + }, + "SqlServerColumn": { + "description": "SQLServer Column.", + "id": "SqlServerColumn", + "properties": { + "column": { + "description": "Column name.", + "type": "string" + }, + "dataType": { + "description": "The SQLServer data type.", + "type": "string" + }, + "length": { + "description": "Column length.", + "format": "int32", + "type": "integer" + }, + "nullable": { + "description": "Whether or not the column can accept a null value.", + "type": "boolean" + }, + "ordinalPosition": { + "description": "The ordinal position of the column in the table.", + "format": "int32", + "type": "integer" + }, + "precision": { + "description": "Column precision.", + "format": "int32", + "type": "integer" + }, + "primaryKey": { + "description": "Whether or not the column represents a primary key.", + "type": "boolean" + }, + "scale": { + "description": "Column scale.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "SqlServerObjectIdentifier": { + "description": "SQLServer data source object identifier.", + "id": "SqlServerObjectIdentifier", + "properties": { + "schema": { + "description": "Required. The schema name.", + "type": "string" + }, + "table": { + "description": "Required. The table name.", + "type": "string" + } + }, + "type": "object" + }, + "SqlServerProfile": { + "description": "SQLServer database profile", + "id": "SqlServerProfile", + "properties": { + "database": { + "description": "Required. Database for the SQLServer connection.", + "type": "string" + }, + "hostname": { + "description": "Required. Hostname for the SQLServer connection.", + "type": "string" + }, + "password": { + "description": "Required. Password for the SQLServer connection.", + "type": "string" + }, + "port": { + "description": "Port for the SQLServer connection, default value is 1433.", + "format": "int32", + "type": "integer" + }, + "username": { + "description": "Required. Username for the SQLServer connection.", + "type": "string" + } + }, + "type": "object" + }, + "SqlServerRdbms": { + "description": "SQLServer database structure.", + "id": "SqlServerRdbms", + "properties": { + "schemas": { + "description": "SQLServer schemas in the database server.", + "items": { + "$ref": "SqlServerSchema" + }, + "type": "array" + } + }, + "type": "object" + }, + "SqlServerSchema": { + "description": "SQLServer schema.", + "id": "SqlServerSchema", + "properties": { + "schema": { + "description": "Schema name.", + "type": "string" + }, + "tables": { + "description": "Tables in the schema.", + "items": { + "$ref": "SqlServerTable" + }, + "type": "array" + } + }, + "type": "object" + }, + "SqlServerSourceConfig": { + "description": "SQLServer data source configuration", + "id": "SqlServerSourceConfig", + "properties": { + "excludeObjects": { + "$ref": "SqlServerRdbms", + "description": "SQLServer objects to exclude from the stream." + }, + "includeObjects": { + "$ref": "SqlServerRdbms", + "description": "SQLServer objects to include in the stream." + }, + "maxConcurrentBackfillTasks": { + "description": "Max concurrent backfill tasks.", + "format": "int32", + "type": "integer" + }, + "maxConcurrentCdcTasks": { + "description": "Max concurrent CDC tasks.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "SqlServerTable": { + "description": "SQLServer table.", + "id": "SqlServerTable", + "properties": { + "columns": { + "description": "SQLServer columns in the schema. When unspecified as part of include/exclude objects, includes/excludes everything.", + "items": { + "$ref": "SqlServerColumn" + }, + "type": "array" + }, + "table": { + "description": "Table name.", + "type": "string" } }, "type": "object" @@ -3048,13 +3241,15 @@ "STATE_UNSPECIFIED", "NOT_EXECUTED", "FAILED", - "PASSED" + "PASSED", + "WARNING" ], "enumDescriptions": [ "Unspecified state.", "Validation did not execute.", "Validation failed.", - "Validation passed." + "Validation passed.", + "Validation executed with warnings." ], "readOnly": true, "type": "string" diff --git a/discovery/googleapis/deploymentmanager__v2.json b/discovery/googleapis/deploymentmanager__v2.json index 528b4e3d3..d49cd9455 100644 --- a/discovery/googleapis/deploymentmanager__v2.json +++ b/discovery/googleapis/deploymentmanager__v2.json @@ -34,7 +34,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231124", + "revision": "20240222", "rootUrl": "https://deploymentmanager.googleapis.com/", "servicePath": "", "title": "Cloud Deployment Manager V2 API", @@ -1050,14 +1050,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -1406,7 +1406,7 @@ "type": "object" }, "Operation": { - "description": "Represents an Operation resource. Google Compute Engine has three Operation resources: * [Global](/compute/docs/reference/rest/{$api_version}/globalOperations) * [Regional](/compute/docs/reference/rest/{$api_version}/regionOperations) * [Zonal](/compute/docs/reference/rest/{$api_version}/zoneOperations) You can use an operation resource to manage asynchronous API requests. For more information, read Handling API responses. Operations can be global, regional or zonal. - For global operations, use the `globalOperations` resource. - For regional operations, use the `regionOperations` resource. - For zonal operations, use the `zoneOperations` resource. For more information, read Global, Regional, and Zonal Resources.", + "description": "Represents an Operation resource. Google Compute Engine has three Operation resources: * [Global](/compute/docs/reference/rest/{$api_version}/globalOperations) * [Regional](/compute/docs/reference/rest/{$api_version}/regionOperations) * [Zonal](/compute/docs/reference/rest/{$api_version}/zoneOperations) You can use an operation resource to manage asynchronous API requests. For more information, read Handling API responses. Operations can be global, regional or zonal. - For global operations, use the `globalOperations` resource. - For regional operations, use the `regionOperations` resource. - For zonal operations, use the `zoneOperations` resource. For more information, read Global, Regional, and Zonal Resources. Note that completed Operation resources have a limited retention period.", "id": "Operation", "properties": { "clientOperationId": { diff --git a/discovery/googleapis/dfareporting__v3.5.json b/discovery/googleapis/dfareporting__v3.5.json index 2f26c9eed..ee917516c 100644 --- a/discovery/googleapis/dfareporting__v3.5.json +++ b/discovery/googleapis/dfareporting__v3.5.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20230918", + "revision": "20240201", "rootUrl": "https://dfareporting.googleapis.com/", "servicePath": "dfareporting/v3.5/", "title": "Campaign Manager 360 API", diff --git a/discovery/googleapis/dfareporting__v4.json b/discovery/googleapis/dfareporting__v4.json index 57a75854f..b3d60b9d9 100644 --- a/discovery/googleapis/dfareporting__v4.json +++ b/discovery/googleapis/dfareporting__v4.json @@ -31,7 +31,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20230918", + "revision": "20240201", "rootUrl": "https://dfareporting.googleapis.com/", "servicePath": "dfareporting/v4/", "title": "Campaign Manager 360 API", @@ -12095,6 +12095,18 @@ "description": "A Conversion represents when a user successfully performs a desired action after seeing an ad.", "id": "Conversion", "properties": { + "adUserDataConsent": { + "description": "This represents consent for ad user data.", + "enum": [ + "GRANTED", + "DENIED" + ], + "enumDescriptions": [ + "Granted.", + "Denied." + ], + "type": "string" + }, "childDirectedTreatment": { "description": "Whether this particular request may come from a user under the age of 13, under COPPA compliance.", "type": "boolean" @@ -17862,6 +17874,10 @@ "format": "int64", "type": "string" }, + "conversionDomainOverride": { + "$ref": "PlacementConversionDomainOverride", + "description": "Optional. Conversion domain overrides for a placement." + }, "createInfo": { "$ref": "LastModifiedInfo", "description": "Information about the creation of this placement. This is a read-only field." @@ -18106,6 +18122,18 @@ }, "type": "object" }, + "PlacementConversionDomainOverride": { + "id": "PlacementConversionDomainOverride", + "properties": { + "conversionDomains": { + "items": { + "$ref": "PlacementSingleConversionDomain" + }, + "type": "array" + } + }, + "type": "object" + }, "PlacementGroup": { "description": "Contains properties of a package or roadblock.", "id": "PlacementGroup", @@ -18275,6 +18303,19 @@ }, "type": "object" }, + "PlacementSingleConversionDomain": { + "id": "PlacementSingleConversionDomain", + "properties": { + "conversionDomainId": { + "format": "int64", + "type": "string" + }, + "conversionDomainValue": { + "type": "string" + } + }, + "type": "object" + }, "PlacementStrategiesListResponse": { "description": "Placement Strategy List Response", "id": "PlacementStrategiesListResponse", @@ -20352,7 +20393,7 @@ "type": "string" }, "includeClickThroughUrls": { - "description": "Whether static landing page URLs should be included in the tags. This setting applies only to placements.", + "description": "Whether static landing page URLs should be included in the tags. New placements will default to the value set on their site.", "type": "boolean" }, "includeClickTracking": { @@ -20760,12 +20801,14 @@ "OTHER", "AD_ID_OFFICIAL", "CLEARCAST", - "DCM" + "DCM", + "ARPP" ], "enumDescriptions": [ "", "", "", + "", "" ], "type": "string" diff --git a/discovery/googleapis/dialogflow__v2.json b/discovery/googleapis/dialogflow__v2.json index 71ffa8c48..5b7944cdb 100644 --- a/discovery/googleapis/dialogflow__v2.json +++ b/discovery/googleapis/dialogflow__v2.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231109", + "revision": "20240219", "rootUrl": "https://dialogflow.googleapis.com/", "servicePath": "", "title": "Dialogflow API", @@ -8403,7 +8403,7 @@ "type": "object" }, "GoogleCloudDialogflowCxV3BargeInConfig": { - "description": "Configuration of the barge-in behavior. Barge-in instructs the API to return a detected utterance at a proper time while the client is playing back the response audio from a previous request. When the client sees the utterance, it should stop the playback and immediately get ready for receiving the responses for the current request. The barge-in handling requires the client to start streaming audio input as soon as it starts playing back the audio from the previous response. The playback is modeled into two phases: * No barge-in phase: which goes first and during which speech detection should not be carried out. * Barge-in phase: which follows the no barge-in phase and during which the API starts speech detection and may inform the client that an utterance has been detected. Note that no-speech event is not expected in this phase. The client provides this configuration in terms of the durations of those two phases. The durations are measured in terms of the audio length fromt the the start of the input audio. The flow goes like below: --> Time without speech detection | utterance only | utterance or no-speech event | | +-------------+ | +------------+ | +---------------+ ----------+ no barge-in +-|-+ barge-in +-|-+ normal period +----------- +-------------+ | +------------+ | +---------------+ No-speech event is a response with END_OF_UTTERANCE without any transcript following up.", + "description": "Configuration of the barge-in behavior. Barge-in instructs the API to return a detected utterance at a proper time while the client is playing back the response audio from a previous request. When the client sees the utterance, it should stop the playback and immediately get ready for receiving the responses for the current request. The barge-in handling requires the client to start streaming audio input as soon as it starts playing back the audio from the previous response. The playback is modeled into two phases: * No barge-in phase: which goes first and during which speech detection should not be carried out. * Barge-in phase: which follows the no barge-in phase and during which the API starts speech detection and may inform the client that an utterance has been detected. Note that no-speech event is not expected in this phase. The client provides this configuration in terms of the durations of those two phases. The durations are measured in terms of the audio length from the the start of the input audio. No-speech event is a response with END_OF_UTTERANCE without any transcript following up.", "id": "GoogleCloudDialogflowCxV3BargeInConfig", "properties": { "noBargeInDuration": { @@ -8837,6 +8837,27 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3ExportEntityTypesMetadata": { + "description": "Metadata returned for the EntityTypes.ExportEntityTypes long running operation.", + "id": "GoogleCloudDialogflowCxV3ExportEntityTypesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudDialogflowCxV3ExportEntityTypesResponse": { + "description": "The response message for EntityTypes.ExportEntityTypes.", + "id": "GoogleCloudDialogflowCxV3ExportEntityTypesResponse", + "properties": { + "entityTypesContent": { + "$ref": "GoogleCloudDialogflowCxV3InlineDestination", + "description": "Uncompressed byte content for entity types. This field is populated only if `entity_types_content_inline` is set to true in ExportEntityTypesRequest." + }, + "entityTypesUri": { + "description": "The URI to a file containing the exported entity types. This field is populated only if `entity_types_uri` is specified in ExportEntityTypesRequest.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3ExportFlowResponse": { "description": "The response message for Flows.ExportFlow.", "id": "GoogleCloudDialogflowCxV3ExportFlowResponse", @@ -9137,6 +9158,51 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3ImportEntityTypesMetadata": { + "description": "Metadata returned for the EntityTypes.ImportEntityTypes long running operation.", + "id": "GoogleCloudDialogflowCxV3ImportEntityTypesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudDialogflowCxV3ImportEntityTypesResponse": { + "description": "The response message for EntityTypes.ImportEntityTypes.", + "id": "GoogleCloudDialogflowCxV3ImportEntityTypesResponse", + "properties": { + "conflictingResources": { + "$ref": "GoogleCloudDialogflowCxV3ImportEntityTypesResponseConflictingResources", + "description": "Info which resources have conflicts when REPORT_CONFLICT merge_option is set in ImportEntityTypesRequest." + }, + "entityTypes": { + "description": "The unique identifier of the imported entity types. Format: `projects//locations//agents//entity_types/`.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3ImportEntityTypesResponseConflictingResources": { + "description": "Conflicting resources detected during the import process. Only filled when REPORT_CONFLICT is set in the request and there are conflicts in the display names.", + "id": "GoogleCloudDialogflowCxV3ImportEntityTypesResponseConflictingResources", + "properties": { + "entityDisplayNames": { + "description": "Display names of conflicting entities.", + "items": { + "type": "string" + }, + "type": "array" + }, + "entityTypeDisplayNames": { + "description": "Display names of conflicting entity types.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3ImportFlowResponse": { "description": "The response message for Flows.ImportFlow.", "id": "GoogleCloudDialogflowCxV3ImportFlowResponse", @@ -9271,7 +9337,7 @@ "type": "boolean" }, "model": { - "description": "Optional. Which Speech model to select for the given request. Select the model best suited to your domain to get best results. If a model is not explicitly specified, then we auto-select a model based on the parameters in the InputAudioConfig. If enhanced speech model is enabled for the agent and an enhanced version of the specified model for the language does not exist, then the speech is recognized using the standard version of the specified model. Refer to [Cloud Speech API documentation](https://cloud.google.com/speech-to-text/docs/basics#select-model) for more details. If you specify a model, the following models typically have the best performance: - phone_call (best for Agent Assist and telephony) - latest_short (best for Dialogflow non-telephony) - command_and_search (best for very short utterances and commands)", + "description": "Optional. Which Speech model to select for the given request. For more information, see [Speech models](https://cloud.google.com/dialogflow/cx/docs/concept/speech-models).", "type": "string" }, "modelVariant": { @@ -9284,12 +9350,16 @@ ], "enumDescriptions": [ "No model variant specified. In this case Dialogflow defaults to USE_BEST_AVAILABLE.", - "Use the best available variant of the Speech model that the caller is eligible for. Please see the [Dialogflow docs](https://cloud.google.com/dialogflow/docs/data-logging) for how to make your project eligible for enhanced models.", + "Use the best available variant of the Speech model that the caller is eligible for.", "Use standard model variant even if an enhanced model is available. See the [Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models) for details about enhanced models.", - "Use an enhanced model variant: * If an enhanced variant does not exist for the given model and request language, Dialogflow falls back to the standard variant. The [Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models) describes which models have enhanced variants. * If the API caller isn't eligible for enhanced models, Dialogflow returns an error. Please see the [Dialogflow docs](https://cloud.google.com/dialogflow/docs/data-logging) for how to make your project eligible." + "Use an enhanced model variant: * If an enhanced variant does not exist for the given model and request language, Dialogflow falls back to the standard variant. The [Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models) describes which models have enhanced variants." ], "type": "string" }, + "optOutConformerModelMigration": { + "description": "If `true`, the request will opt out for STT conformer model migration. This field will be deprecated once force migration takes place in June 2024. Please refer to [Dialogflow CX Speech model migration](https://cloud.google.com/dialogflow/cx/docs/concept/speech-model-migration).", + "type": "boolean" + }, "phraseHints": { "description": "Optional. A list of strings containing words and phrases that the speech recognizer should recognize with higher likelihood. See [the Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/basics#phrase-hints) for more details.", "items": { @@ -9468,6 +9538,10 @@ "$ref": "GoogleCloudDialogflowCxV3AdvancedSettings", "description": "Hierarchical advanced settings for this page. The settings exposed at the lower level overrides the settings exposed at the higher level." }, + "description": { + "description": "The description of the page. The maximum length is 500 characters.", + "type": "string" + }, "displayName": { "description": "Required. The human-readable name of the page, unique within the flow.", "type": "string" @@ -9585,7 +9659,7 @@ "type": "object" }, "GoogleCloudDialogflowCxV3QueryInput": { - "description": "Represents the query input. It can contain one of: 1. A conversational query in the form of text. 2. An intent query that specifies which intent to trigger. 3. Natural language speech audio to be processed. 4. An event to be triggered. 5. DTMF digits to invoke an intent and fill in parameter value.", + "description": "Represents the query input. It can contain one of: 1. A conversational query in the form of text. 2. An intent query that specifies which intent to trigger. 3. Natural language speech audio to be processed. 4. An event to be triggered. 5. DTMF digits to invoke an intent and fill in parameter value. 6. The results of a tool executed by the client.", "id": "GoogleCloudDialogflowCxV3QueryInput", "properties": { "audio": { @@ -10083,7 +10157,7 @@ "id": "GoogleCloudDialogflowCxV3TextInput", "properties": { "text": { - "description": "Required. The UTF-8 encoded natural language text to be processed. Text length must not exceed 256 characters.", + "description": "Required. The UTF-8 encoded natural language text to be processed.", "type": "string" } }, @@ -10607,7 +10681,7 @@ "type": "object" }, "GoogleCloudDialogflowCxV3beta1BargeInConfig": { - "description": "Configuration of the barge-in behavior. Barge-in instructs the API to return a detected utterance at a proper time while the client is playing back the response audio from a previous request. When the client sees the utterance, it should stop the playback and immediately get ready for receiving the responses for the current request. The barge-in handling requires the client to start streaming audio input as soon as it starts playing back the audio from the previous response. The playback is modeled into two phases: * No barge-in phase: which goes first and during which speech detection should not be carried out. * Barge-in phase: which follows the no barge-in phase and during which the API starts speech detection and may inform the client that an utterance has been detected. Note that no-speech event is not expected in this phase. The client provides this configuration in terms of the durations of those two phases. The durations are measured in terms of the audio length fromt the the start of the input audio. The flow goes like below: --> Time without speech detection | utterance only | utterance or no-speech event | | +-------------+ | +------------+ | +---------------+ ----------+ no barge-in +-|-+ barge-in +-|-+ normal period +----------- +-------------+ | +------------+ | +---------------+ No-speech event is a response with END_OF_UTTERANCE without any transcript following up.", + "description": "Configuration of the barge-in behavior. Barge-in instructs the API to return a detected utterance at a proper time while the client is playing back the response audio from a previous request. When the client sees the utterance, it should stop the playback and immediately get ready for receiving the responses for the current request. The barge-in handling requires the client to start streaming audio input as soon as it starts playing back the audio from the previous response. The playback is modeled into two phases: * No barge-in phase: which goes first and during which speech detection should not be carried out. * Barge-in phase: which follows the no barge-in phase and during which the API starts speech detection and may inform the client that an utterance has been detected. Note that no-speech event is not expected in this phase. The client provides this configuration in terms of the durations of those two phases. The durations are measured in terms of the audio length from the the start of the input audio. No-speech event is a response with END_OF_UTTERANCE without any transcript following up.", "id": "GoogleCloudDialogflowCxV3beta1BargeInConfig", "properties": { "noBargeInDuration": { @@ -11041,6 +11115,27 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1ExportEntityTypesMetadata": { + "description": "Metadata returned for the EntityTypes.ExportEntityTypes long running operation.", + "id": "GoogleCloudDialogflowCxV3beta1ExportEntityTypesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1ExportEntityTypesResponse": { + "description": "The response message for EntityTypes.ExportEntityTypes.", + "id": "GoogleCloudDialogflowCxV3beta1ExportEntityTypesResponse", + "properties": { + "entityTypesContent": { + "$ref": "GoogleCloudDialogflowCxV3beta1InlineDestination", + "description": "Uncompressed byte content for entity types. This field is populated only if `entity_types_content_inline` is set to true in ExportEntityTypesRequest." + }, + "entityTypesUri": { + "description": "The URI to a file containing the exported entity types. This field is populated only if `entity_types_uri` is specified in ExportEntityTypesRequest.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1ExportFlowResponse": { "description": "The response message for Flows.ExportFlow.", "id": "GoogleCloudDialogflowCxV3beta1ExportFlowResponse", @@ -11341,6 +11436,51 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1ImportEntityTypesMetadata": { + "description": "Metadata returned for the EntityTypes.ImportEntityTypes long running operation.", + "id": "GoogleCloudDialogflowCxV3beta1ImportEntityTypesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1ImportEntityTypesResponse": { + "description": "The response message for EntityTypes.ImportEntityTypes.", + "id": "GoogleCloudDialogflowCxV3beta1ImportEntityTypesResponse", + "properties": { + "conflictingResources": { + "$ref": "GoogleCloudDialogflowCxV3beta1ImportEntityTypesResponseConflictingResources", + "description": "Info which resources have conflicts when REPORT_CONFLICT merge_option is set in ImportEntityTypesRequest." + }, + "entityTypes": { + "description": "The unique identifier of the imported entity types. Format: `projects//locations//agents//entity_types/`.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1ImportEntityTypesResponseConflictingResources": { + "description": "Conflicting resources detected during the import process. Only filled when REPORT_CONFLICT is set in the request and there are conflicts in the display names.", + "id": "GoogleCloudDialogflowCxV3beta1ImportEntityTypesResponseConflictingResources", + "properties": { + "entityDisplayNames": { + "description": "Display names of conflicting entities.", + "items": { + "type": "string" + }, + "type": "array" + }, + "entityTypeDisplayNames": { + "description": "Display names of conflicting entity types.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1ImportFlowResponse": { "description": "The response message for Flows.ImportFlow.", "id": "GoogleCloudDialogflowCxV3beta1ImportFlowResponse", @@ -11475,7 +11615,7 @@ "type": "boolean" }, "model": { - "description": "Optional. Which Speech model to select for the given request. Select the model best suited to your domain to get best results. If a model is not explicitly specified, then we auto-select a model based on the parameters in the InputAudioConfig. If enhanced speech model is enabled for the agent and an enhanced version of the specified model for the language does not exist, then the speech is recognized using the standard version of the specified model. Refer to [Cloud Speech API documentation](https://cloud.google.com/speech-to-text/docs/basics#select-model) for more details. If you specify a model, the following models typically have the best performance: - phone_call (best for Agent Assist and telephony) - latest_short (best for Dialogflow non-telephony) - command_and_search (best for very short utterances and commands)", + "description": "Optional. Which Speech model to select for the given request. For more information, see [Speech models](https://cloud.google.com/dialogflow/cx/docs/concept/speech-models).", "type": "string" }, "modelVariant": { @@ -11488,12 +11628,16 @@ ], "enumDescriptions": [ "No model variant specified. In this case Dialogflow defaults to USE_BEST_AVAILABLE.", - "Use the best available variant of the Speech model that the caller is eligible for. Please see the [Dialogflow docs](https://cloud.google.com/dialogflow/docs/data-logging) for how to make your project eligible for enhanced models.", + "Use the best available variant of the Speech model that the caller is eligible for.", "Use standard model variant even if an enhanced model is available. See the [Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models) for details about enhanced models.", - "Use an enhanced model variant: * If an enhanced variant does not exist for the given model and request language, Dialogflow falls back to the standard variant. The [Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models) describes which models have enhanced variants. * If the API caller isn't eligible for enhanced models, Dialogflow returns an error. Please see the [Dialogflow docs](https://cloud.google.com/dialogflow/docs/data-logging) for how to make your project eligible." + "Use an enhanced model variant: * If an enhanced variant does not exist for the given model and request language, Dialogflow falls back to the standard variant. The [Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models) describes which models have enhanced variants." ], "type": "string" }, + "optOutConformerModelMigration": { + "description": "If `true`, the request will opt out for STT conformer model migration. This field will be deprecated once force migration takes place in June 2024. Please refer to [Dialogflow CX Speech model migration](https://cloud.google.com/dialogflow/cx/docs/concept/speech-model-migration).", + "type": "boolean" + }, "phraseHints": { "description": "Optional. A list of strings containing words and phrases that the speech recognizer should recognize with higher likelihood. See [the Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/basics#phrase-hints) for more details.", "items": { @@ -11672,6 +11816,10 @@ "$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettings", "description": "Hierarchical advanced settings for this page. The settings exposed at the lower level overrides the settings exposed at the higher level." }, + "description": { + "description": "The description of the page. The maximum length is 500 characters.", + "type": "string" + }, "displayName": { "description": "Required. The human-readable name of the page, unique within the flow.", "type": "string" @@ -11789,7 +11937,7 @@ "type": "object" }, "GoogleCloudDialogflowCxV3beta1QueryInput": { - "description": "Represents the query input. It can contain one of: 1. A conversational query in the form of text. 2. An intent query that specifies which intent to trigger. 3. Natural language speech audio to be processed. 4. An event to be triggered. 5. DTMF digits to invoke an intent and fill in parameter value.", + "description": "Represents the query input. It can contain one of: 1. A conversational query in the form of text. 2. An intent query that specifies which intent to trigger. 3. Natural language speech audio to be processed. 4. An event to be triggered. 5. DTMF digits to invoke an intent and fill in parameter value. 6. The results of a tool executed by the client.", "id": "GoogleCloudDialogflowCxV3beta1QueryInput", "properties": { "audio": { @@ -12271,7 +12419,7 @@ "id": "GoogleCloudDialogflowCxV3beta1TextInput", "properties": { "text": { - "description": "Required. The UTF-8 encoded natural language text to be processed. Text length must not exceed 256 characters.", + "description": "Required. The UTF-8 encoded natural language text to be processed.", "type": "string" } }, @@ -12916,6 +13064,13 @@ "summaryText": { "description": "Text of actual submitted summary.", "type": "string" + }, + "textSections": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Actual text sections of submitted summary.", + "type": "object" } }, "type": "object" @@ -13192,7 +13347,7 @@ "type": "string" }, "sessionTtl": { - "description": "Optional. Sets Dialogflow CX session life time. By default, a Dialogflow CX session remains active and its data is stored for 30 minutes after the last request is sent for the session. This value should be no longer than 1 day.", + "description": "Optional. Configure lifetime of the Dialogflow session. By default, a Dialogflow CX session remains active and its data is stored for 30 minutes after the last request is sent for the session. This value should be no longer than 1 day.", "format": "google-duration", "type": "string" } @@ -14199,21 +14354,6 @@ }, "type": "object" }, - "GoogleCloudDialogflowV2EncryptionSpec": { - "description": "A customer-managed encryption key specification that can be applied to all created resources (e.g. Conversation).", - "id": "GoogleCloudDialogflowV2EncryptionSpec", - "properties": { - "kmsKey": { - "description": "Required. The name of customer-managed encryption key that is used to secure a resource and its sub-resources. If empty, the resource is secured by the default Google encryption key. Only the key in the same location as this resource is allowed to be used for encryption. Format: `projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{key}`", - "type": "string" - }, - "name": { - "description": "Immutable. The resource name of the encryption key specification resource. Format: projects/{project}/locations/{location}/encryptionSpec", - "type": "string" - } - }, - "type": "object" - }, "GoogleCloudDialogflowV2EntityType": { "description": "Each intent parameter has a type, called the entity type, which dictates exactly how data from an end-user expression is extracted. Dialogflow provides predefined system entities that can match many common types of data. For example, there are system entities for matching dates, times, colors, email addresses, and so on. You can also create your own custom entities for matching custom data. For example, you could define a vegetable entity that can match the types of vegetables available for purchase with a grocery store agent. For more information, see the [Entity guide](https://cloud.google.com/dialogflow/docs/entities-overview).", "id": "GoogleCloudDialogflowV2EntityType", @@ -14849,6 +14989,10 @@ "description": "Optional. Disable the logging of search queries sent by human agents. It can prevent those queries from being stored at answer records. Supported features: KNOWLEDGE_SEARCH.", "type": "boolean" }, + "enableConversationAugmentedQuery": { + "description": "Optional. Enable including conversation context during query answer generation. Supported features: KNOWLEDGE_SEARCH.", + "type": "boolean" + }, "enableEventBasedSuggestion": { "description": "Automatically iterates all participants and tries to compile suggestions. Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST, KNOWLEDGE_ASSIST.", "type": "boolean" @@ -14897,6 +15041,10 @@ "description": "Maximum number of results to return. Currently, if unset, defaults to 10. And the max number is 20.", "format": "int32", "type": "integer" + }, + "sections": { + "$ref": "GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigSections", + "description": "Optional. The customized sections chosen to return when requesting a summary of a conversation." } }, "type": "object" @@ -14974,6 +15122,38 @@ }, "type": "object" }, + "GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigSections": { + "description": "Custom sections to return when requesting a summary of a conversation. This is only supported when `baseline_model_version` == '2.0'. Supported features: CONVERSATION_SUMMARIZATION, CONVERSATION_SUMMARIZATION_VOICE.", + "id": "GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigSections", + "properties": { + "sectionTypes": { + "description": "The selected sections chosen to return when requesting a summary of a conversation. A duplicate selected section will be treated as a single selected section. If section types are not provided, the default will be {SITUATION, ACTION, RESULT}.", + "items": { + "enum": [ + "SECTION_TYPE_UNSPECIFIED", + "SITUATION", + "ACTION", + "RESOLUTION", + "REASON_FOR_CANCELLATION", + "CUSTOMER_SATISFACTION", + "ENTITIES" + ], + "enumDescriptions": [ + "Undefined section type, does not return anything.", + "What the customer needs help with or has question about. Section name: \"situation\".", + "What the agent does to help the customer. Section name: \"action\".", + "Result of the customer service. A single word describing the result of the conversation. Section name: \"resolution\".", + "Reason for cancellation if the customer requests for a cancellation. \"N/A\" otherwise. Section name: \"reason_for_cancellation\".", + "\"Unsatisfied\" or \"Satisfied\" depending on the customer's feelings at the end of the conversation. Section name: \"customer_satisfaction\".", + "Key entities extracted from the conversation, such as ticket number, order number, dollar amount, etc. Section names are prefixed by \"entities/\"." + ], + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionTriggerSettings": { "description": "Settings of suggestion trigger.", "id": "GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionTriggerSettings", @@ -15198,29 +15378,6 @@ }, "type": "object" }, - "GoogleCloudDialogflowV2InitializeEncryptionSpecMetadata": { - "description": "Metadata for initializing a location-level encryption specification.", - "id": "GoogleCloudDialogflowV2InitializeEncryptionSpecMetadata", - "properties": { - "request": { - "$ref": "GoogleCloudDialogflowV2InitializeEncryptionSpecRequest", - "description": "Output only. The original request for initialization.", - "readOnly": true - } - }, - "type": "object" - }, - "GoogleCloudDialogflowV2InitializeEncryptionSpecRequest": { - "description": "The request to initialize a location-level encryption specification.", - "id": "GoogleCloudDialogflowV2InitializeEncryptionSpecRequest", - "properties": { - "encryptionSpec": { - "$ref": "GoogleCloudDialogflowV2EncryptionSpec", - "description": "Required. The encryption spec used for CMEK encryption. It is required that the kms key is in the same region as the endpoint. The same key will be used for all provisioned resources, if encryption is available. If the kms_key_name is left empty, no encryption will be enforced." - } - }, - "type": "object" - }, "GoogleCloudDialogflowV2InputAudioConfig": { "description": "Instructs the speech recognizer how to process the audio content.", "id": "GoogleCloudDialogflowV2InputAudioConfig", @@ -15266,7 +15423,7 @@ "type": "string" }, "model": { - "description": "Which Speech model to select for the given request. Select the model best suited to your domain to get best results. If a model is not explicitly specified, then we auto-select a model based on the parameters in the InputAudioConfig. If enhanced speech model is enabled for the agent and an enhanced version of the specified model for the language does not exist, then the speech is recognized using the standard version of the specified model. Refer to [Cloud Speech API documentation](https://cloud.google.com/speech-to-text/docs/basics#select-model) for more details. If you specify a model, the following models typically have the best performance: - phone_call (best for Agent Assist and telephony) - latest_short (best for Dialogflow non-telephony) - command_and_search (best for very short utterances and commands)", + "description": "Optional. Which Speech model to select for the given request. For more information, see [Speech models](https://cloud.google.com/dialogflow/es/docs/speech-models).", "type": "string" }, "modelVariant": { @@ -15285,6 +15442,10 @@ ], "type": "string" }, + "optOutConformerModelMigration": { + "description": "If `true`, the request will opt out for STT conformer model migration. This field will be deprecated once force migration takes place in June 2024. Please refer to [Dialogflow ES Speech model migration](https://cloud.google.com/dialogflow/es/docs/speech-model-migration).", + "type": "boolean" + }, "phraseHints": { "deprecated": true, "description": "A list of strings containing words and phrases that the speech recognizer should recognize with higher likelihood. See [the Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/basics#phrase-hints) for more details. This field is deprecated. Please use [`speech_contexts`]() instead. If you specify both [`phrase_hints`]() and [`speech_contexts`](), Dialogflow will treat the [`phrase_hints`]() as a single additional [`SpeechContext`]().", @@ -17097,12 +17258,14 @@ "enum": [ "ANSWER_TYPE_UNSPECIFIED", "FAQ", - "GENERATIVE" + "GENERATIVE", + "INTENT" ], "enumDescriptions": [ "The answer has a unspecified type.", - "The answer is from FAQ doucments.", - "The answer is from generative model." + "The answer is from FAQ documents.", + "The answer is from generative model.", + "The answer is from intent matching." ], "type": "string" } @@ -17169,6 +17332,10 @@ "$ref": "GoogleCloudDialogflowV2SearchKnowledgeAnswer" }, "type": "array" + }, + "rewrittenQuery": { + "description": "The rewritten query used to search knowledge.", + "type": "string" } }, "type": "object" @@ -17427,7 +17594,7 @@ "id": "GoogleCloudDialogflowV2SpeechToTextConfig", "properties": { "model": { - "description": "Which Speech model to select. Select the model best suited to your domain to get best results. If a model is not explicitly specified, then a default model is used. Refer to [Cloud Speech API documentation](https://cloud.google.com/speech-to-text/docs/basics#select-model) for more details.", + "description": "Which Speech model to select. Select the model best suited to your domain to get best results. If a model is not explicitly specified, then Dialogflow auto-selects a model based on other parameters in the SpeechToTextConfig and Agent settings. If enhanced speech model is enabled for the agent and an enhanced version of the specified model for the language does not exist, then the speech is recognized using the standard version of the specified model. Refer to [Cloud Speech API documentation](https://cloud.google.com/speech-to-text/docs/basics#select-model) for more details. If you specify a model, the following models typically have the best performance: - phone_call (best for Agent Assist and telephony) - latest_short (best for Dialogflow non-telephony) - command_and_search Leave this field unspecified to use [Agent Speech settings](https://cloud.google.com/dialogflow/cx/docs/concept/agent#settings-speech) for model selection.", "type": "string" }, "speechModelVariant": { @@ -18236,21 +18403,6 @@ }, "type": "object" }, - "GoogleCloudDialogflowV2beta1EncryptionSpec": { - "description": "A customer-managed encryption key specification that can be applied to all created resources (e.g. Conversation).", - "id": "GoogleCloudDialogflowV2beta1EncryptionSpec", - "properties": { - "kmsKey": { - "description": "Required. The name of customer-managed encryption key that is used to secure a resource and its sub-resources. If empty, the resource is secured by the default Google encryption key. Only the key in the same location as this resource is allowed to be used for encryption. Format: `projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{key}`", - "type": "string" - }, - "name": { - "description": "Immutable. The resource name of the encryption key specification resource. Format: projects/{project}/locations/{location}/encryptionSpec", - "type": "string" - } - }, - "type": "object" - }, "GoogleCloudDialogflowV2beta1EntityType": { "description": "Each intent parameter has a type, called the entity type, which dictates exactly how data from an end-user expression is extracted. Dialogflow provides predefined system entities that can match many common types of data. For example, there are system entities for matching dates, times, colors, email addresses, and so on. You can also create your own custom entities for matching custom data. For example, you could define a vegetable entity that can match the types of vegetables available for purchase with a grocery store agent. For more information, see the [Entity guide](https://cloud.google.com/dialogflow/docs/entities-overview).", "id": "GoogleCloudDialogflowV2beta1EntityType", @@ -18455,29 +18607,6 @@ }, "type": "object" }, - "GoogleCloudDialogflowV2beta1InitializeEncryptionSpecMetadata": { - "description": "Metadata for initializing a location-level encryption specification.", - "id": "GoogleCloudDialogflowV2beta1InitializeEncryptionSpecMetadata", - "properties": { - "request": { - "$ref": "GoogleCloudDialogflowV2beta1InitializeEncryptionSpecRequest", - "description": "Output only. The original request for initialization.", - "readOnly": true - } - }, - "type": "object" - }, - "GoogleCloudDialogflowV2beta1InitializeEncryptionSpecRequest": { - "description": "The request to initialize a location-level encryption specification.", - "id": "GoogleCloudDialogflowV2beta1InitializeEncryptionSpecRequest", - "properties": { - "encryptionSpec": { - "$ref": "GoogleCloudDialogflowV2beta1EncryptionSpec", - "description": "Required. The encryption spec used for CMEK encryption. It is required that the kms key is in the same region as the endpoint. The same key will be used for all provisioned resources, if encryption is available. If the kms_key_name is left empty, no encryption will be enforced." - } - }, - "type": "object" - }, "GoogleCloudDialogflowV2beta1Intent": { "description": "An intent categorizes an end-user's intention for one conversation turn. For each agent, you define many intents, where your combined intents can handle a complete conversation. When an end-user writes or says something, referred to as an end-user expression or end-user input, Dialogflow matches the end-user input to the best intent in your agent. Matching an intent is also known as intent classification. For more information, see the [intent guide](https://cloud.google.com/dialogflow/docs/intents-overview).", "id": "GoogleCloudDialogflowV2beta1Intent", diff --git a/discovery/googleapis/dialogflow__v3.json b/discovery/googleapis/dialogflow__v3.json index 96d1e83f7..c05ab0547 100644 --- a/discovery/googleapis/dialogflow__v3.json +++ b/discovery/googleapis/dialogflow__v3.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231109", + "revision": "20240219", "rootUrl": "https://dialogflow.googleapis.com/", "servicePath": "", "title": "Dialogflow API", @@ -666,6 +666,35 @@ "https://www.googleapis.com/auth/dialogflow" ] }, + "export": { + "description": "Exports the selected entity types.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/entityTypes:export", + "httpMethod": "POST", + "id": "dialogflow.projects.locations.agents.entityTypes.export", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The name of the parent agent to export entity types. Format: `projects//locations//agents/`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+parent}/entityTypes:export", + "request": { + "$ref": "GoogleCloudDialogflowCxV3ExportEntityTypesRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, "get": { "description": "Retrieves the specified entity type.", "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/entityTypes/{entityTypesId}", @@ -697,6 +726,35 @@ "https://www.googleapis.com/auth/dialogflow" ] }, + "import": { + "description": "Imports the specified entitytypes into the agent.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/entityTypes:import", + "httpMethod": "POST", + "id": "dialogflow.projects.locations.agents.entityTypes.import", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The agent to import the entity types into. Format: `projects//locations//agents/`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+parent}/entityTypes:import", + "request": { + "$ref": "GoogleCloudDialogflowCxV3ImportEntityTypesRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, "list": { "description": "Returns the list of all entity types in the specified agent.", "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/entityTypes", @@ -1444,6 +1502,35 @@ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/dialogflow" ] + }, + "serverStreamingDetectIntent": { + "description": "Processes a natural language query and returns structured, actionable data as a result through server-side streaming. Server-side streaming allows Dialogflow to send [partial responses](https://cloud.google.com/dialogflow/cx/docs/concept/fulfillment#partial-response) earlier in a single request.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/environments/{environmentsId}/sessions/{sessionsId}:serverStreamingDetectIntent", + "httpMethod": "POST", + "id": "dialogflow.projects.locations.agents.environments.sessions.serverStreamingDetectIntent", + "parameterOrder": [ + "session" + ], + "parameters": { + "session": { + "description": "Required. The name of the session this query is sent to. Format: `projects//locations//agents//sessions/` or `projects//locations//agents//environments//sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment. It's up to the API caller to choose an appropriate `Session ID`. It can be a random number or some type of session identifiers (preferably hashed). The length of the `Session ID` must not exceed 36 characters. For more information, see the [sessions guide](https://cloud.google.com/dialogflow/cx/docs/concept/session). Note: Always use agent versions for production traffic. See [Versions and environments](https://cloud.google.com/dialogflow/cx/docs/concept/version).", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/environments/[^/]+/sessions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+session}:serverStreamingDetectIntent", + "request": { + "$ref": "GoogleCloudDialogflowCxV3DetectIntentRequest" + }, + "response": { + "$ref": "GoogleCloudDialogflowCxV3DetectIntentResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] } }, "resources": { @@ -2518,6 +2605,188 @@ } } }, + "generators": { + "methods": { + "create": { + "description": "Creates a generator in the specified agent.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/generators", + "httpMethod": "POST", + "id": "dialogflow.projects.locations.agents.generators.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "languageCode": { + "description": "The language to create generators for the following fields: * `Generator.prompt_text.text` If not specified, the agent's default language is used.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The agent to create a generator for. Format: `projects//locations//agents/`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+parent}/generators", + "request": { + "$ref": "GoogleCloudDialogflowCxV3Generator" + }, + "response": { + "$ref": "GoogleCloudDialogflowCxV3Generator" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, + "delete": { + "description": "Deletes the specified generators.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/generators/{generatorsId}", + "httpMethod": "DELETE", + "id": "dialogflow.projects.locations.agents.generators.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "force": { + "description": "This field has no effect for generators not being used. For generators that are used by pages/flows/transition route groups: * If `force` is set to false, an error will be returned with message indicating the referenced resources. * If `force` is set to true, Dialogflow will remove the generator, as well as any references to the generator (i.e. Generator) in fulfillments.", + "location": "query", + "type": "boolean" + }, + "name": { + "description": "Required. The name of the generator to delete. Format: `projects//locations//agents//generators/`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/generators/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, + "get": { + "description": "Retrieves the specified generator.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/generators/{generatorsId}", + "httpMethod": "GET", + "id": "dialogflow.projects.locations.agents.generators.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "languageCode": { + "description": "The language to list generators for.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. The name of the generator. Format: `projects//locations//agents//generators/`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/generators/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+name}", + "response": { + "$ref": "GoogleCloudDialogflowCxV3Generator" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, + "list": { + "description": "Returns the list of all generators in the specified agent.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/generators", + "httpMethod": "GET", + "id": "dialogflow.projects.locations.agents.generators.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "languageCode": { + "description": "The language to list generators for.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of items to return in a single page. By default 100 and at most 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The next_page_token value returned from a previous list request.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The agent to list all generators for. Format: `projects//locations//agents/`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+parent}/generators", + "response": { + "$ref": "GoogleCloudDialogflowCxV3ListGeneratorsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, + "patch": { + "description": "Update the specified generator.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/generators/{generatorsId}", + "httpMethod": "PATCH", + "id": "dialogflow.projects.locations.agents.generators.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "languageCode": { + "description": "The language to list generators for.", + "location": "query", + "type": "string" + }, + "name": { + "description": "The unique identifier of the generator. Must be set for the Generators.UpdateGenerator method. Generators.CreateGenerate populates the name automatically. Format: `projects//locations//agents//generators/`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/generators/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The mask to control which fields get updated. If the mask is not present, all fields will be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v3/{+name}", + "request": { + "$ref": "GoogleCloudDialogflowCxV3Generator" + }, + "response": { + "$ref": "GoogleCloudDialogflowCxV3Generator" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + } + } + }, "intents": { "methods": { "create": { @@ -2857,6 +3126,35 @@ "https://www.googleapis.com/auth/dialogflow" ] }, + "serverStreamingDetectIntent": { + "description": "Processes a natural language query and returns structured, actionable data as a result through server-side streaming. Server-side streaming allows Dialogflow to send [partial responses](https://cloud.google.com/dialogflow/cx/docs/concept/fulfillment#partial-response) earlier in a single request.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/sessions/{sessionsId}:serverStreamingDetectIntent", + "httpMethod": "POST", + "id": "dialogflow.projects.locations.agents.sessions.serverStreamingDetectIntent", + "parameterOrder": [ + "session" + ], + "parameters": { + "session": { + "description": "Required. The name of the session this query is sent to. Format: `projects//locations//agents//sessions/` or `projects//locations//agents//environments//sessions/`. If `Environment ID` is not specified, we assume default 'draft' environment. It's up to the API caller to choose an appropriate `Session ID`. It can be a random number or some type of session identifiers (preferably hashed). The length of the `Session ID` must not exceed 36 characters. For more information, see the [sessions guide](https://cloud.google.com/dialogflow/cx/docs/concept/session). Note: Always use agent versions for production traffic. See [Versions and environments](https://cloud.google.com/dialogflow/cx/docs/concept/version).", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/agents/[^/]+/sessions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+session}:serverStreamingDetectIntent", + "request": { + "$ref": "GoogleCloudDialogflowCxV3DetectIntentRequest" + }, + "response": { + "$ref": "GoogleCloudDialogflowCxV3DetectIntentResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/dialogflow" + ] + }, "submitAnswerFeedback": { "description": "Updates the feedback received from the user for a single turn of the bot response.", "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/agents/{agentsId}/sessions/{sessionsId}:submitAnswerFeedback", @@ -4442,7 +4740,7 @@ "type": "object" }, "GoogleCloudDialogflowCxV3BargeInConfig": { - "description": "Configuration of the barge-in behavior. Barge-in instructs the API to return a detected utterance at a proper time while the client is playing back the response audio from a previous request. When the client sees the utterance, it should stop the playback and immediately get ready for receiving the responses for the current request. The barge-in handling requires the client to start streaming audio input as soon as it starts playing back the audio from the previous response. The playback is modeled into two phases: * No barge-in phase: which goes first and during which speech detection should not be carried out. * Barge-in phase: which follows the no barge-in phase and during which the API starts speech detection and may inform the client that an utterance has been detected. Note that no-speech event is not expected in this phase. The client provides this configuration in terms of the durations of those two phases. The durations are measured in terms of the audio length fromt the the start of the input audio. The flow goes like below: --> Time without speech detection | utterance only | utterance or no-speech event | | +-------------+ | +------------+ | +---------------+ ----------+ no barge-in +-|-+ barge-in +-|-+ normal period +----------- +-------------+ | +------------+ | +---------------+ No-speech event is a response with END_OF_UTTERANCE without any transcript following up.", + "description": "Configuration of the barge-in behavior. Barge-in instructs the API to return a detected utterance at a proper time while the client is playing back the response audio from a previous request. When the client sees the utterance, it should stop the playback and immediately get ready for receiving the responses for the current request. The barge-in handling requires the client to start streaming audio input as soon as it starts playing back the audio from the previous response. The playback is modeled into two phases: * No barge-in phase: which goes first and during which speech detection should not be carried out. * Barge-in phase: which follows the no barge-in phase and during which the API starts speech detection and may inform the client that an utterance has been detected. Note that no-speech event is not expected in this phase. The client provides this configuration in terms of the durations of those two phases. The durations are measured in terms of the audio length from the the start of the input audio. No-speech event is a response with END_OF_UTTERANCE without any transcript following up.", "id": "GoogleCloudDialogflowCxV3BargeInConfig", "properties": { "noBargeInDuration": { @@ -4553,7 +4851,7 @@ "id": "GoogleCloudDialogflowCxV3BoostSpecs", "properties": { "dataStores": { - "description": "Optional. Data Stores where the boosting configuration is applied. The full names of the referenced data stores. Formats: `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}` `projects/{project}/locations/{location}/dataStores/{data_store}", + "description": "Optional. Data Stores where the boosting configuration is applied. The full names of the referenced data stores. Formats: `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}` `projects/{project}/locations/{location}/dataStores/{data_store}`", "items": { "type": "string" }, @@ -4609,6 +4907,10 @@ "description": "The affected resource display name of the change.", "type": "string" }, + "languageCode": { + "description": "The affected language code of the change.", + "type": "string" + }, "name": { "description": "The unique identifier of the changelog. Format: `projects//locations//agents//changelogs/`.", "type": "string" @@ -5564,6 +5866,67 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3ExportEntityTypesMetadata": { + "description": "Metadata returned for the EntityTypes.ExportEntityTypes long running operation.", + "id": "GoogleCloudDialogflowCxV3ExportEntityTypesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudDialogflowCxV3ExportEntityTypesRequest": { + "description": "The request message for EntityTypes.ExportEntityTypes.", + "id": "GoogleCloudDialogflowCxV3ExportEntityTypesRequest", + "properties": { + "dataFormat": { + "description": "Optional. The data format of the exported entity types. If not specified, `BLOB` is assumed.", + "enum": [ + "DATA_FORMAT_UNSPECIFIED", + "BLOB", + "JSON_PACKAGE" + ], + "enumDescriptions": [ + "Unspecified format. Treated as `BLOB`.", + "EntityTypes will be exported as raw bytes.", + "EntityTypes will be exported in JSON Package format." + ], + "type": "string" + }, + "entityTypes": { + "description": "Required. The name of the entity types to export. Format: `projects//locations//agents//entityTypes/`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "entityTypesContentInline": { + "description": "Optional. The option to return the serialized entity types inline.", + "type": "boolean" + }, + "entityTypesUri": { + "description": "Optional. The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to export the entity types to. The format of this URI must be `gs:///`. Dialogflow performs a write operation for the Cloud Storage object on the caller's behalf, so your request authentication must have write permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", + "type": "string" + }, + "languageCode": { + "description": "Optional. The language to retrieve the entity type for. The following fields are language dependent: * `EntityType.entities.value` * `EntityType.entities.synonyms` * `EntityType.excluded_phrases.value` If not specified, all language dependent fields will be retrieved. [Many languages](https://cloud.google.com/dialogflow/docs/reference/language) are supported. Note: languages must be enabled in the agent before they can be used.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3ExportEntityTypesResponse": { + "description": "The response message for EntityTypes.ExportEntityTypes.", + "id": "GoogleCloudDialogflowCxV3ExportEntityTypesResponse", + "properties": { + "entityTypesContent": { + "$ref": "GoogleCloudDialogflowCxV3InlineDestination", + "description": "Uncompressed byte content for entity types. This field is populated only if `entity_types_content_inline` is set to true in ExportEntityTypesRequest." + }, + "entityTypesUri": { + "description": "The URI to a file containing the exported entity types. This field is populated only if `entity_types_uri` is specified in ExportEntityTypesRequest.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3ExportFlowRequest": { "description": "The request message for Flows.ExportFlow.", "id": "GoogleCloudDialogflowCxV3ExportFlowRequest", @@ -5710,7 +6073,7 @@ "id": "GoogleCloudDialogflowCxV3FilterSpecs", "properties": { "dataStores": { - "description": "Optional. Data Stores where the boosting configuration is applied. The full names of the referenced data stores. Formats: `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}` `projects/{project}/locations/{location}/dataStores/{data_store}", + "description": "Optional. Data Stores where the boosting configuration is applied. The full names of the referenced data stores. Formats: `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}` `projects/{project}/locations/{location}/dataStores/{data_store}`", "items": { "type": "string" }, @@ -6147,6 +6510,51 @@ "businessDescription": { "description": "Company description, used for LLM prompt, e.g. \"a family company selling freshly roasted coffee beans\".", "type": "string" + }, + "disableDataStoreFallback": { + "description": "Whether to disable fallback to Data Store search results (in case the LLM couldn't pick a proper answer). Per default the feature is enabled.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3Generator": { + "description": "Generators contain prompt to be sent to the LLM model to generate text. The prompt can contain parameters which will be resolved before calling the model. It can optionally contain banned phrases to ensure the model responses are safe.", + "id": "GoogleCloudDialogflowCxV3Generator", + "properties": { + "displayName": { + "description": "Required. The human-readable name of the generator, unique within the agent. The prompt contains pre-defined parameters such as $conversation, $last-user-utterance, etc. populated by Dialogflow. It can also contain custom placeholders which will be resolved during fulfillment.", + "type": "string" + }, + "name": { + "description": "The unique identifier of the generator. Must be set for the Generators.UpdateGenerator method. Generators.CreateGenerate populates the name automatically. Format: `projects//locations//agents//generators/`.", + "type": "string" + }, + "placeholders": { + "description": "Optional. List of custom placeholders in the prompt text.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3GeneratorPlaceholder" + }, + "type": "array" + }, + "promptText": { + "$ref": "GoogleCloudDialogflowCxV3Phrase", + "description": "Required. Prompt for the LLM model." + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3GeneratorPlaceholder": { + "description": "Represents a custom placeholder in the prompt text.", + "id": "GoogleCloudDialogflowCxV3GeneratorPlaceholder", + "properties": { + "id": { + "description": "Unique ID used to map custom placeholder to parameters in fulfillment.", + "type": "string" + }, + "name": { + "description": "Custom placeholder value in the prompt text.", + "type": "string" } }, "type": "object" @@ -6200,6 +6608,90 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3ImportEntityTypesMetadata": { + "description": "Metadata returned for the EntityTypes.ImportEntityTypes long running operation.", + "id": "GoogleCloudDialogflowCxV3ImportEntityTypesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudDialogflowCxV3ImportEntityTypesRequest": { + "description": "The request message for EntityTypes.ImportEntityTypes.", + "id": "GoogleCloudDialogflowCxV3ImportEntityTypesRequest", + "properties": { + "entityTypesContent": { + "$ref": "GoogleCloudDialogflowCxV3InlineSource", + "description": "Uncompressed byte content of entity types." + }, + "entityTypesUri": { + "description": "The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to import entity types from. The format of this URI must be `gs:///`. Dialogflow performs a read operation for the Cloud Storage object on the caller's behalf, so your request authentication must have read permissions for the object. For more information, see [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage).", + "type": "string" + }, + "mergeOption": { + "description": "Required. Merge option for importing entity types.", + "enum": [ + "MERGE_OPTION_UNSPECIFIED", + "REPLACE", + "MERGE", + "RENAME", + "REPORT_CONFLICT", + "KEEP" + ], + "enumDescriptions": [ + "Unspecified. If used, system uses REPORT_CONFLICT as default.", + "Replace the original entity type in the agent with the new entity type when display name conflicts exist.", + "Merge the original entity type with the new entity type when display name conflicts exist.", + "Create new entity types with new display names to differentiate them from the existing entity types when display name conflicts exist.", + "Report conflict information if display names conflict is detected. Otherwise, import entity types.", + "Keep the original entity type and discard the conflicting new entity type when display name conflicts exist." + ], + "type": "string" + }, + "targetEntityType": { + "description": "Optional. The target entity type to import into. Format: `projects//locations//agents//entity_types/`. If set, there should be only one entity type included in entity_types, of which the type should match the type of the target entity type. All entities in the imported entity type will be added to the target entity type.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3ImportEntityTypesResponse": { + "description": "The response message for EntityTypes.ImportEntityTypes.", + "id": "GoogleCloudDialogflowCxV3ImportEntityTypesResponse", + "properties": { + "conflictingResources": { + "$ref": "GoogleCloudDialogflowCxV3ImportEntityTypesResponseConflictingResources", + "description": "Info which resources have conflicts when REPORT_CONFLICT merge_option is set in ImportEntityTypesRequest." + }, + "entityTypes": { + "description": "The unique identifier of the imported entity types. Format: `projects//locations//agents//entity_types/`.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3ImportEntityTypesResponseConflictingResources": { + "description": "Conflicting resources detected during the import process. Only filled when REPORT_CONFLICT is set in the request and there are conflicts in the display names.", + "id": "GoogleCloudDialogflowCxV3ImportEntityTypesResponseConflictingResources", + "properties": { + "entityDisplayNames": { + "description": "Display names of conflicting entities.", + "items": { + "type": "string" + }, + "type": "array" + }, + "entityTypeDisplayNames": { + "description": "Display names of conflicting entity types.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3ImportFlowRequest": { "description": "The request message for Flows.ImportFlow.", "id": "GoogleCloudDialogflowCxV3ImportFlowRequest", @@ -6442,7 +6934,7 @@ "type": "boolean" }, "model": { - "description": "Optional. Which Speech model to select for the given request. Select the model best suited to your domain to get best results. If a model is not explicitly specified, then we auto-select a model based on the parameters in the InputAudioConfig. If enhanced speech model is enabled for the agent and an enhanced version of the specified model for the language does not exist, then the speech is recognized using the standard version of the specified model. Refer to [Cloud Speech API documentation](https://cloud.google.com/speech-to-text/docs/basics#select-model) for more details. If you specify a model, the following models typically have the best performance: - phone_call (best for Agent Assist and telephony) - latest_short (best for Dialogflow non-telephony) - command_and_search (best for very short utterances and commands)", + "description": "Optional. Which Speech model to select for the given request. For more information, see [Speech models](https://cloud.google.com/dialogflow/cx/docs/concept/speech-models).", "type": "string" }, "modelVariant": { @@ -6455,12 +6947,16 @@ ], "enumDescriptions": [ "No model variant specified. In this case Dialogflow defaults to USE_BEST_AVAILABLE.", - "Use the best available variant of the Speech model that the caller is eligible for. Please see the [Dialogflow docs](https://cloud.google.com/dialogflow/docs/data-logging) for how to make your project eligible for enhanced models.", + "Use the best available variant of the Speech model that the caller is eligible for.", "Use standard model variant even if an enhanced model is available. See the [Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models) for details about enhanced models.", - "Use an enhanced model variant: * If an enhanced variant does not exist for the given model and request language, Dialogflow falls back to the standard variant. The [Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models) describes which models have enhanced variants. * If the API caller isn't eligible for enhanced models, Dialogflow returns an error. Please see the [Dialogflow docs](https://cloud.google.com/dialogflow/docs/data-logging) for how to make your project eligible." + "Use an enhanced model variant: * If an enhanced variant does not exist for the given model and request language, Dialogflow falls back to the standard variant. The [Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models) describes which models have enhanced variants." ], "type": "string" }, + "optOutConformerModelMigration": { + "description": "If `true`, the request will opt out for STT conformer model migration. This field will be deprecated once force migration takes place in June 2024. Please refer to [Dialogflow CX Speech model migration](https://cloud.google.com/dialogflow/cx/docs/concept/speech-model-migration).", + "type": "boolean" + }, "phraseHints": { "description": "Optional. A list of strings containing words and phrases that the speech recognizer should recognize with higher likelihood. See [the Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/basics#phrase-hints) for more details.", "items": { @@ -6809,6 +7305,24 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3ListGeneratorsResponse": { + "description": "The response message for Generators.ListGenerators.", + "id": "GoogleCloudDialogflowCxV3ListGeneratorsResponse", + "properties": { + "generators": { + "description": "The list of generators. There will be a maximum number of items returned based on the page_size field in the request.", + "items": { + "$ref": "GoogleCloudDialogflowCxV3Generator" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Token to retrieve the next page of results, or empty if there are no more results in the list.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3ListIntentsResponse": { "description": "The response message for Intents.ListIntents.", "id": "GoogleCloudDialogflowCxV3ListIntentsResponse", @@ -7191,6 +7705,10 @@ "$ref": "GoogleCloudDialogflowCxV3AdvancedSettings", "description": "Hierarchical advanced settings for this page. The settings exposed at the lower level overrides the settings exposed at the higher level." }, + "description": { + "description": "The description of the page. The maximum length is 500 characters.", + "type": "string" + }, "displayName": { "description": "Required. The human-readable name of the page, unique within the flow.", "type": "string" @@ -7307,8 +7825,19 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3Phrase": { + "description": "Text input which can be used for prompt or banned phrases.", + "id": "GoogleCloudDialogflowCxV3Phrase", + "properties": { + "text": { + "description": "Required. Text input which can be used for prompt or banned phrases.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3QueryInput": { - "description": "Represents the query input. It can contain one of: 1. A conversational query in the form of text. 2. An intent query that specifies which intent to trigger. 3. Natural language speech audio to be processed. 4. An event to be triggered. 5. DTMF digits to invoke an intent and fill in parameter value.", + "description": "Represents the query input. It can contain one of: 1. A conversational query in the form of text. 2. An intent query that specifies which intent to trigger. 3. Natural language speech audio to be processed. 4. An event to be triggered. 5. DTMF digits to invoke an intent and fill in parameter value. 6. The results of a tool executed by the client.", "id": "GoogleCloudDialogflowCxV3QueryInput", "properties": { "audio": { @@ -7405,7 +7934,7 @@ "type": "array" }, "sessionTtl": { - "description": "Optional. Sets Dialogflow session life time. By default, a Dialogflow session remains active and its data is stored for 30 minutes after the last request is sent for the session. This value should be no longer than 1 day.", + "description": "Optional. Configure lifetime of the Dialogflow session. By default, a Dialogflow session remains active and its data is stored for 30 minutes after the last request is sent for the session. This value should be no longer than 1 day.", "format": "google-duration", "type": "string" }, @@ -8443,7 +8972,7 @@ "id": "GoogleCloudDialogflowCxV3TextInput", "properties": { "text": { - "description": "Required. The UTF-8 encoded natural language text to be processed. Text length must not exceed 256 characters.", + "description": "Required. The UTF-8 encoded natural language text to be processed.", "type": "string" } }, @@ -9358,7 +9887,7 @@ "type": "object" }, "GoogleCloudDialogflowCxV3beta1BargeInConfig": { - "description": "Configuration of the barge-in behavior. Barge-in instructs the API to return a detected utterance at a proper time while the client is playing back the response audio from a previous request. When the client sees the utterance, it should stop the playback and immediately get ready for receiving the responses for the current request. The barge-in handling requires the client to start streaming audio input as soon as it starts playing back the audio from the previous response. The playback is modeled into two phases: * No barge-in phase: which goes first and during which speech detection should not be carried out. * Barge-in phase: which follows the no barge-in phase and during which the API starts speech detection and may inform the client that an utterance has been detected. Note that no-speech event is not expected in this phase. The client provides this configuration in terms of the durations of those two phases. The durations are measured in terms of the audio length fromt the the start of the input audio. The flow goes like below: --> Time without speech detection | utterance only | utterance or no-speech event | | +-------------+ | +------------+ | +---------------+ ----------+ no barge-in +-|-+ barge-in +-|-+ normal period +----------- +-------------+ | +------------+ | +---------------+ No-speech event is a response with END_OF_UTTERANCE without any transcript following up.", + "description": "Configuration of the barge-in behavior. Barge-in instructs the API to return a detected utterance at a proper time while the client is playing back the response audio from a previous request. When the client sees the utterance, it should stop the playback and immediately get ready for receiving the responses for the current request. The barge-in handling requires the client to start streaming audio input as soon as it starts playing back the audio from the previous response. The playback is modeled into two phases: * No barge-in phase: which goes first and during which speech detection should not be carried out. * Barge-in phase: which follows the no barge-in phase and during which the API starts speech detection and may inform the client that an utterance has been detected. Note that no-speech event is not expected in this phase. The client provides this configuration in terms of the durations of those two phases. The durations are measured in terms of the audio length from the the start of the input audio. No-speech event is a response with END_OF_UTTERANCE without any transcript following up.", "id": "GoogleCloudDialogflowCxV3beta1BargeInConfig", "properties": { "noBargeInDuration": { @@ -9792,6 +10321,27 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1ExportEntityTypesMetadata": { + "description": "Metadata returned for the EntityTypes.ExportEntityTypes long running operation.", + "id": "GoogleCloudDialogflowCxV3beta1ExportEntityTypesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1ExportEntityTypesResponse": { + "description": "The response message for EntityTypes.ExportEntityTypes.", + "id": "GoogleCloudDialogflowCxV3beta1ExportEntityTypesResponse", + "properties": { + "entityTypesContent": { + "$ref": "GoogleCloudDialogflowCxV3beta1InlineDestination", + "description": "Uncompressed byte content for entity types. This field is populated only if `entity_types_content_inline` is set to true in ExportEntityTypesRequest." + }, + "entityTypesUri": { + "description": "The URI to a file containing the exported entity types. This field is populated only if `entity_types_uri` is specified in ExportEntityTypesRequest.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1ExportFlowResponse": { "description": "The response message for Flows.ExportFlow.", "id": "GoogleCloudDialogflowCxV3beta1ExportFlowResponse", @@ -10092,6 +10642,51 @@ }, "type": "object" }, + "GoogleCloudDialogflowCxV3beta1ImportEntityTypesMetadata": { + "description": "Metadata returned for the EntityTypes.ImportEntityTypes long running operation.", + "id": "GoogleCloudDialogflowCxV3beta1ImportEntityTypesMetadata", + "properties": {}, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1ImportEntityTypesResponse": { + "description": "The response message for EntityTypes.ImportEntityTypes.", + "id": "GoogleCloudDialogflowCxV3beta1ImportEntityTypesResponse", + "properties": { + "conflictingResources": { + "$ref": "GoogleCloudDialogflowCxV3beta1ImportEntityTypesResponseConflictingResources", + "description": "Info which resources have conflicts when REPORT_CONFLICT merge_option is set in ImportEntityTypesRequest." + }, + "entityTypes": { + "description": "The unique identifier of the imported entity types. Format: `projects//locations//agents//entity_types/`.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudDialogflowCxV3beta1ImportEntityTypesResponseConflictingResources": { + "description": "Conflicting resources detected during the import process. Only filled when REPORT_CONFLICT is set in the request and there are conflicts in the display names.", + "id": "GoogleCloudDialogflowCxV3beta1ImportEntityTypesResponseConflictingResources", + "properties": { + "entityDisplayNames": { + "description": "Display names of conflicting entities.", + "items": { + "type": "string" + }, + "type": "array" + }, + "entityTypeDisplayNames": { + "description": "Display names of conflicting entity types.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudDialogflowCxV3beta1ImportFlowResponse": { "description": "The response message for Flows.ImportFlow.", "id": "GoogleCloudDialogflowCxV3beta1ImportFlowResponse", @@ -10226,7 +10821,7 @@ "type": "boolean" }, "model": { - "description": "Optional. Which Speech model to select for the given request. Select the model best suited to your domain to get best results. If a model is not explicitly specified, then we auto-select a model based on the parameters in the InputAudioConfig. If enhanced speech model is enabled for the agent and an enhanced version of the specified model for the language does not exist, then the speech is recognized using the standard version of the specified model. Refer to [Cloud Speech API documentation](https://cloud.google.com/speech-to-text/docs/basics#select-model) for more details. If you specify a model, the following models typically have the best performance: - phone_call (best for Agent Assist and telephony) - latest_short (best for Dialogflow non-telephony) - command_and_search (best for very short utterances and commands)", + "description": "Optional. Which Speech model to select for the given request. For more information, see [Speech models](https://cloud.google.com/dialogflow/cx/docs/concept/speech-models).", "type": "string" }, "modelVariant": { @@ -10239,12 +10834,16 @@ ], "enumDescriptions": [ "No model variant specified. In this case Dialogflow defaults to USE_BEST_AVAILABLE.", - "Use the best available variant of the Speech model that the caller is eligible for. Please see the [Dialogflow docs](https://cloud.google.com/dialogflow/docs/data-logging) for how to make your project eligible for enhanced models.", + "Use the best available variant of the Speech model that the caller is eligible for.", "Use standard model variant even if an enhanced model is available. See the [Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models) for details about enhanced models.", - "Use an enhanced model variant: * If an enhanced variant does not exist for the given model and request language, Dialogflow falls back to the standard variant. The [Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models) describes which models have enhanced variants. * If the API caller isn't eligible for enhanced models, Dialogflow returns an error. Please see the [Dialogflow docs](https://cloud.google.com/dialogflow/docs/data-logging) for how to make your project eligible." + "Use an enhanced model variant: * If an enhanced variant does not exist for the given model and request language, Dialogflow falls back to the standard variant. The [Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models) describes which models have enhanced variants." ], "type": "string" }, + "optOutConformerModelMigration": { + "description": "If `true`, the request will opt out for STT conformer model migration. This field will be deprecated once force migration takes place in June 2024. Please refer to [Dialogflow CX Speech model migration](https://cloud.google.com/dialogflow/cx/docs/concept/speech-model-migration).", + "type": "boolean" + }, "phraseHints": { "description": "Optional. A list of strings containing words and phrases that the speech recognizer should recognize with higher likelihood. See [the Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/basics#phrase-hints) for more details.", "items": { @@ -10423,6 +11022,10 @@ "$ref": "GoogleCloudDialogflowCxV3beta1AdvancedSettings", "description": "Hierarchical advanced settings for this page. The settings exposed at the lower level overrides the settings exposed at the higher level." }, + "description": { + "description": "The description of the page. The maximum length is 500 characters.", + "type": "string" + }, "displayName": { "description": "Required. The human-readable name of the page, unique within the flow.", "type": "string" @@ -10540,7 +11143,7 @@ "type": "object" }, "GoogleCloudDialogflowCxV3beta1QueryInput": { - "description": "Represents the query input. It can contain one of: 1. A conversational query in the form of text. 2. An intent query that specifies which intent to trigger. 3. Natural language speech audio to be processed. 4. An event to be triggered. 5. DTMF digits to invoke an intent and fill in parameter value.", + "description": "Represents the query input. It can contain one of: 1. A conversational query in the form of text. 2. An intent query that specifies which intent to trigger. 3. Natural language speech audio to be processed. 4. An event to be triggered. 5. DTMF digits to invoke an intent and fill in parameter value. 6. The results of a tool executed by the client.", "id": "GoogleCloudDialogflowCxV3beta1QueryInput", "properties": { "audio": { @@ -11022,7 +11625,7 @@ "id": "GoogleCloudDialogflowCxV3beta1TextInput", "properties": { "text": { - "description": "Required. The UTF-8 encoded natural language text to be processed. Text length must not exceed 256 characters.", + "description": "Required. The UTF-8 encoded natural language text to be processed.", "type": "string" } }, @@ -11888,21 +12491,6 @@ }, "type": "object" }, - "GoogleCloudDialogflowV2EncryptionSpec": { - "description": "A customer-managed encryption key specification that can be applied to all created resources (e.g. Conversation).", - "id": "GoogleCloudDialogflowV2EncryptionSpec", - "properties": { - "kmsKey": { - "description": "Required. The name of customer-managed encryption key that is used to secure a resource and its sub-resources. If empty, the resource is secured by the default Google encryption key. Only the key in the same location as this resource is allowed to be used for encryption. Format: `projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{key}`", - "type": "string" - }, - "name": { - "description": "Immutable. The resource name of the encryption key specification resource. Format: projects/{project}/locations/{location}/encryptionSpec", - "type": "string" - } - }, - "type": "object" - }, "GoogleCloudDialogflowV2EntityType": { "description": "Each intent parameter has a type, called the entity type, which dictates exactly how data from an end-user expression is extracted. Dialogflow provides predefined system entities that can match many common types of data. For example, there are system entities for matching dates, times, colors, email addresses, and so on. You can also create your own custom entities for matching custom data. For example, you could define a vegetable entity that can match the types of vegetables available for purchase with a grocery store agent. For more information, see the [Entity guide](https://cloud.google.com/dialogflow/docs/entities-overview).", "id": "GoogleCloudDialogflowV2EntityType", @@ -12146,29 +12734,6 @@ }, "type": "object" }, - "GoogleCloudDialogflowV2InitializeEncryptionSpecMetadata": { - "description": "Metadata for initializing a location-level encryption specification.", - "id": "GoogleCloudDialogflowV2InitializeEncryptionSpecMetadata", - "properties": { - "request": { - "$ref": "GoogleCloudDialogflowV2InitializeEncryptionSpecRequest", - "description": "Output only. The original request for initialization.", - "readOnly": true - } - }, - "type": "object" - }, - "GoogleCloudDialogflowV2InitializeEncryptionSpecRequest": { - "description": "The request to initialize a location-level encryption specification.", - "id": "GoogleCloudDialogflowV2InitializeEncryptionSpecRequest", - "properties": { - "encryptionSpec": { - "$ref": "GoogleCloudDialogflowV2EncryptionSpec", - "description": "Required. The encryption spec used for CMEK encryption. It is required that the kms key is in the same region as the endpoint. The same key will be used for all provisioned resources, if encryption is available. If the kms_key_name is left empty, no encryption will be enforced." - } - }, - "type": "object" - }, "GoogleCloudDialogflowV2InputDataset": { "description": "InputDataset used to create model or do evaluation. NextID:5", "id": "GoogleCloudDialogflowV2InputDataset", @@ -13868,21 +14433,6 @@ }, "type": "object" }, - "GoogleCloudDialogflowV2beta1EncryptionSpec": { - "description": "A customer-managed encryption key specification that can be applied to all created resources (e.g. Conversation).", - "id": "GoogleCloudDialogflowV2beta1EncryptionSpec", - "properties": { - "kmsKey": { - "description": "Required. The name of customer-managed encryption key that is used to secure a resource and its sub-resources. If empty, the resource is secured by the default Google encryption key. Only the key in the same location as this resource is allowed to be used for encryption. Format: `projects/{project}/locations/{location}/keyRings/{keyRing}/cryptoKeys/{key}`", - "type": "string" - }, - "name": { - "description": "Immutable. The resource name of the encryption key specification resource. Format: projects/{project}/locations/{location}/encryptionSpec", - "type": "string" - } - }, - "type": "object" - }, "GoogleCloudDialogflowV2beta1EntityType": { "description": "Each intent parameter has a type, called the entity type, which dictates exactly how data from an end-user expression is extracted. Dialogflow provides predefined system entities that can match many common types of data. For example, there are system entities for matching dates, times, colors, email addresses, and so on. You can also create your own custom entities for matching custom data. For example, you could define a vegetable entity that can match the types of vegetables available for purchase with a grocery store agent. For more information, see the [Entity guide](https://cloud.google.com/dialogflow/docs/entities-overview).", "id": "GoogleCloudDialogflowV2beta1EntityType", @@ -14087,29 +14637,6 @@ }, "type": "object" }, - "GoogleCloudDialogflowV2beta1InitializeEncryptionSpecMetadata": { - "description": "Metadata for initializing a location-level encryption specification.", - "id": "GoogleCloudDialogflowV2beta1InitializeEncryptionSpecMetadata", - "properties": { - "request": { - "$ref": "GoogleCloudDialogflowV2beta1InitializeEncryptionSpecRequest", - "description": "Output only. The original request for initialization.", - "readOnly": true - } - }, - "type": "object" - }, - "GoogleCloudDialogflowV2beta1InitializeEncryptionSpecRequest": { - "description": "The request to initialize a location-level encryption specification.", - "id": "GoogleCloudDialogflowV2beta1InitializeEncryptionSpecRequest", - "properties": { - "encryptionSpec": { - "$ref": "GoogleCloudDialogflowV2beta1EncryptionSpec", - "description": "Required. The encryption spec used for CMEK encryption. It is required that the kms key is in the same region as the endpoint. The same key will be used for all provisioned resources, if encryption is available. If the kms_key_name is left empty, no encryption will be enforced." - } - }, - "type": "object" - }, "GoogleCloudDialogflowV2beta1Intent": { "description": "An intent categorizes an end-user's intention for one conversation turn. For each agent, you define many intents, where your combined intents can handle a complete conversation. When an end-user writes or says something, referred to as an end-user expression or end-user input, Dialogflow matches the end-user input to the best intent in your agent. Matching an intent is also known as intent classification. For more information, see the [intent guide](https://cloud.google.com/dialogflow/docs/intents-overview).", "id": "GoogleCloudDialogflowV2beta1Intent", diff --git a/discovery/googleapis/digitalassetlinks__v1.json b/discovery/googleapis/digitalassetlinks__v1.json index f1a7914d9..40c781959 100644 --- a/discovery/googleapis/digitalassetlinks__v1.json +++ b/discovery/googleapis/digitalassetlinks__v1.json @@ -15,7 +15,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231121", + "revision": "20240224", "rootUrl": "https://digitalassetlinks.googleapis.com/", "servicePath": "", "title": "Digital Asset Links API", diff --git a/discovery/googleapis/displayvideo__v1.json b/discovery/googleapis/displayvideo__v1.json deleted file mode 100644 index 2b596ad85..000000000 --- a/discovery/googleapis/displayvideo__v1.json +++ /dev/null @@ -1,18831 +0,0 @@ -{ - "auth": { - "oauth2": { - "scopes": { - "https://www.googleapis.com/auth/display-video": { - "description": "Create, see, edit, and permanently delete your Display & Video 360 entities and reports" - }, - "https://www.googleapis.com/auth/display-video-mediaplanning": { - "description": "Create, see, and edit Display & Video 360 Campaign entities and see billing invoices" - }, - "https://www.googleapis.com/auth/display-video-user-management": { - "description": "Private Service: https://www.googleapis.com/auth/display-video-user-management" - }, - "https://www.googleapis.com/auth/doubleclickbidmanager": { - "description": "View and manage your reports in DoubleClick Bid Manager" - } - } - } - }, - "basePath": "", - "baseUrl": "https://displayvideo.googleapis.com/", - "batchPath": "batch", - "canonicalName": "Display Video", - "description": "Display & Video 360 API allows users to automate complex Display & Video 360 workflows, such as creating insertion orders and setting targeting options for individual line items.", - "discoveryVersion": "v1", - "documentationLink": "https://developers.google.com/display-video/", - "icons": { - "x16": "http://www.google.com/images/icons/product/search-16.gif", - "x32": "http://www.google.com/images/icons/product/search-32.gif" - }, - "id": "displayvideo:v1", - "kind": "discovery#restDescription", - "name": "displayvideo", - "ownerDomain": "google.com", - "ownerName": "Google", - "protocol": "rest", - "revision": "20231114", - "rootUrl": "https://displayvideo.googleapis.com/", - "servicePath": "", - "title": "Display & Video 360 API", - "version": "v1", - "version_module": true, - "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" - } - }, - "resources": { - "advertisers": { - "methods": { - "audit": { - "description": "Audits an advertiser. Returns the counts of used entities per resource type under the advertiser provided. Used entities count towards their respective resource limit. See https://support.google.com/displayvideo/answer/6071450.", - "flatPath": "v1/advertisers/{advertisersId}:audit", - "httpMethod": "GET", - "id": "displayvideo.advertisers.audit", - "parameterOrder": [ - "advertiserId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser to audit.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "readMask": { - "description": "Optional. The specific fields to return. If no mask is specified, all fields in the response proto will be filled. Valid values are: * usedLineItemsCount * usedInsertionOrdersCount * usedCampaignsCount * channelsCount * negativelyTargetedChannelsCount * negativeKeywordListsCount * adGroupCriteriaCount * campaignCriteriaCount", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}:audit", - "response": { - "$ref": "AuditAdvertiserResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "bulkEditAdvertiserAssignedTargetingOptions": { - "description": "Bulk edits targeting options under a single advertiser. The operation will delete the assigned targeting options provided in BulkEditAdvertiserAssignedTargetingOptionsRequest.delete_requests and then create the assigned targeting options provided in BulkEditAdvertiserAssignedTargetingOptionsRequest.create_requests .", - "flatPath": "v1/advertisers/{advertisersId}:bulkEditAdvertiserAssignedTargetingOptions", - "httpMethod": "POST", - "id": "displayvideo.advertisers.bulkEditAdvertiserAssignedTargetingOptions", - "parameterOrder": [ - "advertiserId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}:bulkEditAdvertiserAssignedTargetingOptions", - "request": { - "$ref": "BulkEditAdvertiserAssignedTargetingOptionsRequest" - }, - "response": { - "$ref": "BulkEditAdvertiserAssignedTargetingOptionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "bulkListAdvertiserAssignedTargetingOptions": { - "description": "Lists assigned targeting options of an advertiser across targeting types.", - "flatPath": "v1/advertisers/{advertisersId}:bulkListAdvertiserAssignedTargetingOptions", - "httpMethod": "GET", - "id": "displayvideo.advertisers.bulkListAdvertiserAssignedTargetingOptions", - "parameterOrder": [ - "advertiserId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser the line item belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "filter": { - "description": "Allows filtering by assigned targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the `OR` logical operator. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=) operator`. Supported fields: * `targetingType` Examples: * targetingType with value TARGETING_TYPE_CHANNEL `targetingType=\"TARGETING_TYPE_CHANNEL\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `targetingType` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `targetingType desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. The size must be an integer between `1` and `5000`. If unspecified, the default is '5000'. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token that lets the client fetch the next page of results. Typically, this is the value of next_page_token returned from the previous call to `BulkListAdvertiserAssignedTargetingOptions` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}:bulkListAdvertiserAssignedTargetingOptions", - "response": { - "$ref": "BulkListAdvertiserAssignedTargetingOptionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "create": { - "description": "Creates a new advertiser. Returns the newly created advertiser if successful. This method can take up to 180 seconds to complete.", - "flatPath": "v1/advertisers", - "httpMethod": "POST", - "id": "displayvideo.advertisers.create", - "parameterOrder": [], - "parameters": {}, - "path": "v1/advertisers", - "request": { - "$ref": "Advertiser" - }, - "response": { - "$ref": "Advertiser" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "delete": { - "description": "Deletes an advertiser. Deleting an advertiser will delete all of its child resources, for example, campaigns, insertion orders and line items. A deleted advertiser cannot be recovered.", - "flatPath": "v1/advertisers/{advertisersId}", - "httpMethod": "DELETE", - "id": "displayvideo.advertisers.delete", - "parameterOrder": [ - "advertiserId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser we need to delete.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}", - "response": { - "$ref": "Empty" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "get": { - "description": "Gets an advertiser.", - "flatPath": "v1/advertisers/{advertisersId}", - "httpMethod": "GET", - "id": "displayvideo.advertisers.get", - "parameterOrder": [ - "advertiserId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser to fetch.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}", - "response": { - "$ref": "Advertiser" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "list": { - "description": "Lists advertisers that are accessible to the current user. The order is defined by the order_by parameter. A single partner_id is required. Cross-partner listing is not supported.", - "flatPath": "v1/advertisers", - "httpMethod": "GET", - "id": "displayvideo.advertisers.list", - "parameterOrder": [], - "parameters": { - "filter": { - "description": "Allows filtering by advertiser fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. * A restriction has the form of `{field} {operator} {value}`. * The `updateTime` field must use the `GREATER THAN OR EQUAL TO (>=)` or `LESS THAN OR EQUAL TO (<=)` operators. * All other fields must use the `EQUALS (=)` operator. Supported fields: * `advertiserId` * `displayName` * `entityStatus` * `updateTime` (input in ISO 8601 format, or `YYYY-MM-DDTHH:MM:SSZ`) Examples: * All active advertisers under a partner: `entityStatus=\"ENTITY_STATUS_ACTIVE\"` * All advertisers with an update time less than or equal to 2020-11-04T18:54:47Z (format of ISO 8601): `updateTime<=\"2020-11-04T18:54:47Z\"` * All advertisers with an update time greater than or equal to 2020-11-04T18:54:47Z (format of ISO 8601): `updateTime>=\"2020-11-04T18:54:47Z\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) * `entityStatus` * `updateTime` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. For example, `displayName desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListAdvertisers` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - }, - "partnerId": { - "description": "Required. The ID of the partner that the fetched advertisers should all belong to. The system only supports listing advertisers for one partner at a time.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/advertisers", - "response": { - "$ref": "ListAdvertisersResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "patch": { - "description": "Updates an existing advertiser. Returns the updated advertiser if successful.", - "flatPath": "v1/advertisers/{advertisersId}", - "httpMethod": "PATCH", - "id": "displayvideo.advertisers.patch", - "parameterOrder": [ - "advertiserId" - ], - "parameters": { - "advertiserId": { - "description": "Output only. The unique ID of the advertiser. Assigned by the system.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "updateMask": { - "description": "Required. The mask to control which fields to update.", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}", - "request": { - "$ref": "Advertiser" - }, - "response": { - "$ref": "Advertiser" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - }, - "resources": { - "assets": { - "methods": { - "upload": { - "description": "Uploads an asset. Returns the ID of the newly uploaded asset if successful. The asset file size should be no more than 10 MB for images, 200 MB for ZIP files, and 1 GB for videos. Must be used within the [multipart media upload process](/display-video/api/guides/how-tos/upload#multipart). Examples using provided client libraries can be found in our [Creating Creatives guide](/display-video/api/guides/creating-creatives/overview#upload_an_asset).", - "flatPath": "v1/advertisers/{advertisersId}/assets", - "httpMethod": "POST", - "id": "displayvideo.advertisers.assets.upload", - "mediaUpload": { - "accept": [ - "*/*" - ], - "protocols": { - "simple": { - "multipart": true, - "path": "/upload/v1/advertisers/{+advertiserId}/assets" - } - } - }, - "parameterOrder": [ - "advertiserId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser this asset belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/assets", - "request": { - "$ref": "CreateAssetRequest" - }, - "response": { - "$ref": "CreateAssetResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ], - "supportsMediaUpload": true - } - } - }, - "campaigns": { - "methods": { - "bulkListCampaignAssignedTargetingOptions": { - "description": "Lists assigned targeting options of a campaign across targeting types.", - "flatPath": "v1/advertisers/{advertisersId}/campaigns/{campaignsId}:bulkListCampaignAssignedTargetingOptions", - "httpMethod": "GET", - "id": "displayvideo.advertisers.campaigns.bulkListCampaignAssignedTargetingOptions", - "parameterOrder": [ - "advertiserId", - "campaignId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser the campaign belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "campaignId": { - "description": "Required. The ID of the campaign to list assigned targeting options for.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "filter": { - "description": "Allows filtering by assigned targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the `OR` logical operator. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `targetingType` * `inheritance` Examples: * `AssignedTargetingOption` resources of targeting type `TARGETING_TYPE_LANGUAGE` or `TARGETING_TYPE_GENDER`: `targetingType=\"TARGETING_TYPE_LANGUAGE\" OR targetingType=\"TARGETING_TYPE_GENDER\"` * `AssignedTargetingOption` resources with inheritance status of `NOT_INHERITED` or `INHERITED_FROM_PARTNER`: `inheritance=\"NOT_INHERITED\" OR inheritance=\"INHERITED_FROM_PARTNER\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `targetingType` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `targetingType desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. The size must be an integer between `1` and `5000`. If unspecified, the default is `5000`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token that lets the client fetch the next page of results. Typically, this is the value of next_page_token returned from the previous call to `BulkListCampaignAssignedTargetingOptions` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}:bulkListCampaignAssignedTargetingOptions", - "response": { - "$ref": "BulkListCampaignAssignedTargetingOptionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "create": { - "description": "Creates a new campaign. Returns the newly created campaign if successful.", - "flatPath": "v1/advertisers/{advertisersId}/campaigns", - "httpMethod": "POST", - "id": "displayvideo.advertisers.campaigns.create", - "parameterOrder": [ - "advertiserId" - ], - "parameters": { - "advertiserId": { - "description": "Output only. The unique ID of the advertiser the campaign belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/campaigns", - "request": { - "$ref": "Campaign" - }, - "response": { - "$ref": "Campaign" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video", - "https://www.googleapis.com/auth/display-video-mediaplanning" - ] - }, - "delete": { - "description": "Permanently deletes a campaign. A deleted campaign cannot be recovered. The campaign should be archived first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, to be able to delete it.", - "flatPath": "v1/advertisers/{advertisersId}/campaigns/{campaignsId}", - "httpMethod": "DELETE", - "id": "displayvideo.advertisers.campaigns.delete", - "parameterOrder": [ - "advertiserId", - "campaignId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser this campaign belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "campaignId": { - "description": "The ID of the campaign we need to delete.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}", - "response": { - "$ref": "Empty" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video", - "https://www.googleapis.com/auth/display-video-mediaplanning" - ] - }, - "get": { - "description": "Gets a campaign.", - "flatPath": "v1/advertisers/{advertisersId}/campaigns/{campaignsId}", - "httpMethod": "GET", - "id": "displayvideo.advertisers.campaigns.get", - "parameterOrder": [ - "advertiserId", - "campaignId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser this campaign belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "campaignId": { - "description": "Required. The ID of the campaign to fetch.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}", - "response": { - "$ref": "Campaign" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video", - "https://www.googleapis.com/auth/display-video-mediaplanning" - ] - }, - "list": { - "description": "Lists campaigns in an advertiser. The order is defined by the order_by parameter. If a filter by entity_status is not specified, campaigns with `ENTITY_STATUS_ARCHIVED` will not be included in the results.", - "flatPath": "v1/advertisers/{advertisersId}/campaigns", - "httpMethod": "GET", - "id": "displayvideo.advertisers.campaigns.list", - "parameterOrder": [ - "advertiserId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser to list campaigns for.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "filter": { - "description": "Allows filtering by campaign fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * The `updateTime` field must use the `GREATER THAN OR EQUAL TO (>=)` or `LESS THAN OR EQUAL TO (<=)` operators. * All other fields must use the `EQUALS (=)` operator. Supported fields: * `campaignId` * `displayName` * `entityStatus` * `updateTime` (input in ISO 8601 format, or `YYYY-MM-DDTHH:MM:SSZ`) Examples: * All `ENTITY_STATUS_ACTIVE` or `ENTITY_STATUS_PAUSED` campaigns under an advertiser: `(entityStatus=\"ENTITY_STATUS_ACTIVE\" OR entityStatus=\"ENTITY_STATUS_PAUSED\")` * All campaigns with an update time less than or equal to 2020-11-04T18:54:47Z (format of ISO 8601): `updateTime<=\"2020-11-04T18:54:47Z\"` * All campaigns with an update time greater than or equal to 2020-11-04T18:54:47Z (format of ISO 8601): `updateTime>=\"2020-11-04T18:54:47Z\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) * `entityStatus` * `updateTime` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListCampaigns` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/campaigns", - "response": { - "$ref": "ListCampaignsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video", - "https://www.googleapis.com/auth/display-video-mediaplanning" - ] - }, - "patch": { - "description": "Updates an existing campaign. Returns the updated campaign if successful.", - "flatPath": "v1/advertisers/{advertisersId}/campaigns/{campaignsId}", - "httpMethod": "PATCH", - "id": "displayvideo.advertisers.campaigns.patch", - "parameterOrder": [ - "advertiserId", - "campaignId" - ], - "parameters": { - "advertiserId": { - "description": "Output only. The unique ID of the advertiser the campaign belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "campaignId": { - "description": "Output only. The unique ID of the campaign. Assigned by the system.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "updateMask": { - "description": "Required. The mask to control which fields to update.", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}", - "request": { - "$ref": "Campaign" - }, - "response": { - "$ref": "Campaign" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video", - "https://www.googleapis.com/auth/display-video-mediaplanning" - ] - } - }, - "resources": { - "targetingTypes": { - "resources": { - "assignedTargetingOptions": { - "methods": { - "get": { - "description": "Gets a single targeting option assigned to a campaign.", - "flatPath": "v1/advertisers/{advertisersId}/campaigns/{campaignsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}", - "httpMethod": "GET", - "id": "displayvideo.advertisers.campaigns.targetingTypes.assignedTargetingOptions.get", - "parameterOrder": [ - "advertiserId", - "campaignId", - "targetingType", - "assignedTargetingOptionId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser the campaign belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "assignedTargetingOptionId": { - "description": "Required. An identifier unique to the targeting type in this campaign that identifies the assigned targeting option being requested.", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "campaignId": { - "description": "Required. The ID of the campaign the assigned targeting option belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "targetingType": { - "description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * `TARGETING_TYPE_VIEWABILITY`", - "enum": [ - "TARGETING_TYPE_UNSPECIFIED", - "TARGETING_TYPE_CHANNEL", - "TARGETING_TYPE_APP_CATEGORY", - "TARGETING_TYPE_APP", - "TARGETING_TYPE_URL", - "TARGETING_TYPE_DAY_AND_TIME", - "TARGETING_TYPE_AGE_RANGE", - "TARGETING_TYPE_REGIONAL_LOCATION_LIST", - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST", - "TARGETING_TYPE_GENDER", - "TARGETING_TYPE_VIDEO_PLAYER_SIZE", - "TARGETING_TYPE_USER_REWARDED_CONTENT", - "TARGETING_TYPE_PARENTAL_STATUS", - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION", - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", - "TARGETING_TYPE_DEVICE_TYPE", - "TARGETING_TYPE_AUDIENCE_GROUP", - "TARGETING_TYPE_BROWSER", - "TARGETING_TYPE_HOUSEHOLD_INCOME", - "TARGETING_TYPE_ON_SCREEN_POSITION", - "TARGETING_TYPE_THIRD_PARTY_VERIFIER", - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", - "TARGETING_TYPE_ENVIRONMENT", - "TARGETING_TYPE_CARRIER_AND_ISP", - "TARGETING_TYPE_OPERATING_SYSTEM", - "TARGETING_TYPE_DEVICE_MAKE_MODEL", - "TARGETING_TYPE_KEYWORD", - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", - "TARGETING_TYPE_VIEWABILITY", - "TARGETING_TYPE_CATEGORY", - "TARGETING_TYPE_INVENTORY_SOURCE", - "TARGETING_TYPE_LANGUAGE", - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", - "TARGETING_TYPE_GEO_REGION", - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", - "TARGETING_TYPE_EXCHANGE", - "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_POI", - "TARGETING_TYPE_BUSINESS_CHAIN", - "TARGETING_TYPE_CONTENT_DURATION", - "TARGETING_TYPE_CONTENT_STREAM_TYPE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION", - "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE", - "TARGETING_TYPE_CONTENT_GENRE" - ], - "enumDescriptions": [ - "Default value when type is not specified or is unknown in this version.", - "Target a channel (a custom group of related websites or apps).", - "Target an app category (for example, education or puzzle games).", - "Target a specific app (for example, Angry Birds).", - "Target a specific url (for example, quora.com).", - "Target ads during a chosen time period on a specific day.", - "Target ads to a specific age range (for example, 18-24).", - "Target ads to the specified regions on a regional location list.", - "Target ads to the specified points of interest on a proximity location list.", - "Target ads to a specific gender (for example, female or male).", - "Target a specific video player size for video ads.", - "Target user rewarded content for video ads.", - "Target ads to a specific parental status (for example, parent or not a parent).", - "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", - "Target ads in a specific content outstream position.", - "Target ads to a specific device type (for example, tablet or connected TV).", - "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", - "Target ads to specific web browsers (for example, Chrome).", - "Target ads to a specific household income range (for example, top 10%).", - "Target ads in a specific on screen position.", - "Filter web sites through third party verification (for example, IAS or DoubleVerify).", - "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", - "Filter website content by sensitive categories (for example, adult).", - "Target ads to a specific environment (for example, web or app).", - "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", - "Target ads to a specific operating system (for example, macOS).", - "Target ads to a specific device make or model (for example, Roku or Samsung).", - "Target ads to a specific keyword (for example, dog or retriever).", - "Target ads to a specific negative keyword list.", - "Target ads to a specific viewability (for example, 80% viewable).", - "Target ads to a specific content category (for example, arts & entertainment).", - "Purchase impressions from specific deals and auction packages.", - "Target ads to a specific language (for example, English or Japanese).", - "Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", - "Target ads to a specific regional location (for example, a city or state).", - "Purchase impressions from a group of deals and auction packages.", - "Purchase impressions from specific exchanges.", - "Purchase impressions from specific sub-exchanges.", - "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", - "Target ads around locations of a business chain within a specific geo region.", - "Target ads to a specific video content duration.", - "Target ads to a specific video content stream type.", - "Target ads to a specific native content position.", - "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type.", - "Target ads to a specific content genre." - ], - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}", - "response": { - "$ref": "AssignedTargetingOption" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "list": { - "description": "Lists the targeting options assigned to a campaign for a specified targeting type.", - "flatPath": "v1/advertisers/{advertisersId}/campaigns/{campaignsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions", - "httpMethod": "GET", - "id": "displayvideo.advertisers.campaigns.targetingTypes.assignedTargetingOptions.list", - "parameterOrder": [ - "advertiserId", - "campaignId", - "targetingType" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser the campaign belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "campaignId": { - "description": "Required. The ID of the campaign to list assigned targeting options for.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "filter": { - "description": "Allows filtering by assigned targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the `OR` logical operator. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `assignedTargetingOptionId` * `inheritance` Examples: * `AssignedTargetingOption` resources with ID 1 or 2 `assignedTargetingOptionId=\"1\" OR assignedTargetingOptionId=\"2\"` * `AssignedTargetingOption` resources with inheritance status of `NOT_INHERITED` or `INHERITED_FROM_PARTNER` `inheritance=\"NOT_INHERITED\" OR inheritance=\"INHERITED_FROM_PARTNER\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `assignedTargetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `assignedTargetingOptionId desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `5000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListCampaignAssignedTargetingOptions` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - }, - "targetingType": { - "description": "Required. Identifies the type of assigned targeting options to list. Supported targeting types: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * `TARGETING_TYPE_VIEWABILITY`", - "enum": [ - "TARGETING_TYPE_UNSPECIFIED", - "TARGETING_TYPE_CHANNEL", - "TARGETING_TYPE_APP_CATEGORY", - "TARGETING_TYPE_APP", - "TARGETING_TYPE_URL", - "TARGETING_TYPE_DAY_AND_TIME", - "TARGETING_TYPE_AGE_RANGE", - "TARGETING_TYPE_REGIONAL_LOCATION_LIST", - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST", - "TARGETING_TYPE_GENDER", - "TARGETING_TYPE_VIDEO_PLAYER_SIZE", - "TARGETING_TYPE_USER_REWARDED_CONTENT", - "TARGETING_TYPE_PARENTAL_STATUS", - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION", - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", - "TARGETING_TYPE_DEVICE_TYPE", - "TARGETING_TYPE_AUDIENCE_GROUP", - "TARGETING_TYPE_BROWSER", - "TARGETING_TYPE_HOUSEHOLD_INCOME", - "TARGETING_TYPE_ON_SCREEN_POSITION", - "TARGETING_TYPE_THIRD_PARTY_VERIFIER", - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", - "TARGETING_TYPE_ENVIRONMENT", - "TARGETING_TYPE_CARRIER_AND_ISP", - "TARGETING_TYPE_OPERATING_SYSTEM", - "TARGETING_TYPE_DEVICE_MAKE_MODEL", - "TARGETING_TYPE_KEYWORD", - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", - "TARGETING_TYPE_VIEWABILITY", - "TARGETING_TYPE_CATEGORY", - "TARGETING_TYPE_INVENTORY_SOURCE", - "TARGETING_TYPE_LANGUAGE", - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", - "TARGETING_TYPE_GEO_REGION", - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", - "TARGETING_TYPE_EXCHANGE", - "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_POI", - "TARGETING_TYPE_BUSINESS_CHAIN", - "TARGETING_TYPE_CONTENT_DURATION", - "TARGETING_TYPE_CONTENT_STREAM_TYPE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION", - "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE", - "TARGETING_TYPE_CONTENT_GENRE" - ], - "enumDescriptions": [ - "Default value when type is not specified or is unknown in this version.", - "Target a channel (a custom group of related websites or apps).", - "Target an app category (for example, education or puzzle games).", - "Target a specific app (for example, Angry Birds).", - "Target a specific url (for example, quora.com).", - "Target ads during a chosen time period on a specific day.", - "Target ads to a specific age range (for example, 18-24).", - "Target ads to the specified regions on a regional location list.", - "Target ads to the specified points of interest on a proximity location list.", - "Target ads to a specific gender (for example, female or male).", - "Target a specific video player size for video ads.", - "Target user rewarded content for video ads.", - "Target ads to a specific parental status (for example, parent or not a parent).", - "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", - "Target ads in a specific content outstream position.", - "Target ads to a specific device type (for example, tablet or connected TV).", - "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", - "Target ads to specific web browsers (for example, Chrome).", - "Target ads to a specific household income range (for example, top 10%).", - "Target ads in a specific on screen position.", - "Filter web sites through third party verification (for example, IAS or DoubleVerify).", - "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", - "Filter website content by sensitive categories (for example, adult).", - "Target ads to a specific environment (for example, web or app).", - "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", - "Target ads to a specific operating system (for example, macOS).", - "Target ads to a specific device make or model (for example, Roku or Samsung).", - "Target ads to a specific keyword (for example, dog or retriever).", - "Target ads to a specific negative keyword list.", - "Target ads to a specific viewability (for example, 80% viewable).", - "Target ads to a specific content category (for example, arts & entertainment).", - "Purchase impressions from specific deals and auction packages.", - "Target ads to a specific language (for example, English or Japanese).", - "Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", - "Target ads to a specific regional location (for example, a city or state).", - "Purchase impressions from a group of deals and auction packages.", - "Purchase impressions from specific exchanges.", - "Purchase impressions from specific sub-exchanges.", - "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", - "Target ads around locations of a business chain within a specific geo region.", - "Target ads to a specific video content duration.", - "Target ads to a specific video content stream type.", - "Target ads to a specific native content position.", - "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type.", - "Target ads to a specific content genre." - ], - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/campaigns/{+campaignId}/targetingTypes/{+targetingType}/assignedTargetingOptions", - "response": { - "$ref": "ListCampaignAssignedTargetingOptionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - } - } - } - } - } - }, - "channels": { - "methods": { - "create": { - "description": "Creates a new channel. Returns the newly created channel if successful.", - "flatPath": "v1/advertisers/{advertisersId}/channels", - "httpMethod": "POST", - "id": "displayvideo.advertisers.channels.create", - "parameterOrder": [ - "advertiserId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that owns the created channel.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that owns the created channel.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/channels", - "request": { - "$ref": "Channel" - }, - "response": { - "$ref": "Channel" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "get": { - "description": "Gets a channel for a partner or advertiser.", - "flatPath": "v1/advertisers/{advertisersId}/channels/{channelsId}", - "httpMethod": "GET", - "id": "displayvideo.advertisers.channels.get", - "parameterOrder": [ - "advertiserId", - "channelId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that owns the fetched channel.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "channelId": { - "description": "Required. The ID of the channel to fetch.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that owns the fetched channel.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/channels/{+channelId}", - "response": { - "$ref": "Channel" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "list": { - "description": "Lists channels for a partner or advertiser.", - "flatPath": "v1/advertisers/{advertisersId}/channels", - "httpMethod": "GET", - "id": "displayvideo.advertisers.channels.list", - "parameterOrder": [ - "advertiserId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that owns the channels.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "filter": { - "description": "Allows filtering by channel fields. Supported syntax: * Filter expressions for channel can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `HAS (:)` operator. Supported fields: * `displayName` Examples: * All channels for which the display name contains \"google\": `displayName : \"google\"`. The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) * `channelId` The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be added to the field name. Example: `displayName desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListChannels` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that owns the channels.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/channels", - "response": { - "$ref": "ListChannelsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "patch": { - "description": "Updates a channel. Returns the updated channel if successful.", - "flatPath": "v1/advertisers/{advertisersId}/channels/{channelId}", - "httpMethod": "PATCH", - "id": "displayvideo.advertisers.channels.patch", - "parameterOrder": [ - "advertiserId", - "channelId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that owns the created channel.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "channelId": { - "description": "Output only. The unique ID of the channel. Assigned by the system.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that owns the created channel.", - "format": "int64", - "location": "query", - "type": "string" - }, - "updateMask": { - "description": "Required. The mask to control which fields to update.", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/channels/{channelId}", - "request": { - "$ref": "Channel" - }, - "response": { - "$ref": "Channel" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - }, - "resources": { - "sites": { - "methods": { - "bulkEdit": { - "description": "Bulk edits sites under a single channel. The operation will delete the sites provided in BulkEditSitesRequest.deleted_sites and then create the sites provided in BulkEditSitesRequest.created_sites.", - "flatPath": "v1/advertisers/{advertiserId}/channels/{channelsId}/sites:bulkEdit", - "httpMethod": "POST", - "id": "displayvideo.advertisers.channels.sites.bulkEdit", - "parameterOrder": [ - "advertiserId", - "channelId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that owns the parent channel.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "channelId": { - "description": "Required. The ID of the parent channel to which the sites belong.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{advertiserId}/channels/{+channelId}/sites:bulkEdit", - "request": { - "$ref": "BulkEditSitesRequest" - }, - "response": { - "$ref": "BulkEditSitesResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "create": { - "description": "Creates a site in a channel.", - "flatPath": "v1/advertisers/{advertiserId}/channels/{channelsId}/sites", - "httpMethod": "POST", - "id": "displayvideo.advertisers.channels.sites.create", - "parameterOrder": [ - "advertiserId", - "channelId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that owns the parent channel.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "channelId": { - "description": "Required. The ID of the parent channel in which the site will be created.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that owns the parent channel.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/advertisers/{advertiserId}/channels/{+channelId}/sites", - "request": { - "$ref": "Site" - }, - "response": { - "$ref": "Site" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "delete": { - "description": "Deletes a site from a channel.", - "flatPath": "v1/advertisers/{advertiserId}/channels/{channelsId}/sites/{sitesId}", - "httpMethod": "DELETE", - "id": "displayvideo.advertisers.channels.sites.delete", - "parameterOrder": [ - "advertiserId", - "channelId", - "urlOrAppId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that owns the parent channel.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "channelId": { - "description": "Required. The ID of the parent channel to which the site belongs.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that owns the parent channel.", - "format": "int64", - "location": "query", - "type": "string" - }, - "urlOrAppId": { - "description": "Required. The URL or app ID of the site to delete.", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{advertiserId}/channels/{+channelId}/sites/{+urlOrAppId}", - "response": { - "$ref": "Empty" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "list": { - "description": "Lists sites in a channel.", - "flatPath": "v1/advertisers/{advertisersId}/channels/{channelsId}/sites", - "httpMethod": "GET", - "id": "displayvideo.advertisers.channels.sites.list", - "parameterOrder": [ - "advertiserId", - "channelId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that owns the parent channel.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "channelId": { - "description": "Required. The ID of the parent channel to which the requested sites belong.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "filter": { - "description": "Allows filtering by site fields. Supported syntax: * Filter expressions for site retrieval can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `HAS (:)` operator. Supported fields: * `urlOrAppId` Examples: * All sites for which the URL or app ID contains \"google\": `urlOrAppId : \"google\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `urlOrAppId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be added to the field name. Example: `urlOrAppId desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `10000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListSites` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that owns the parent channel.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/channels/{+channelId}/sites", - "response": { - "$ref": "ListSitesResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "replace": { - "description": "Replaces all of the sites under a single channel. The operation will replace the sites under a channel with the sites provided in ReplaceSitesRequest.new_sites.", - "flatPath": "v1/advertisers/{advertiserId}/channels/{channelsId}/sites:replace", - "httpMethod": "POST", - "id": "displayvideo.advertisers.channels.sites.replace", - "parameterOrder": [ - "advertiserId", - "channelId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that owns the parent channel.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "channelId": { - "description": "Required. The ID of the parent channel whose sites will be replaced.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{advertiserId}/channels/{+channelId}/sites:replace", - "request": { - "$ref": "ReplaceSitesRequest" - }, - "response": { - "$ref": "ReplaceSitesResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - } - } - } - }, - "creatives": { - "methods": { - "create": { - "description": "Creates a new creative. Returns the newly created creative if successful.", - "flatPath": "v1/advertisers/{advertisersId}/creatives", - "httpMethod": "POST", - "id": "displayvideo.advertisers.creatives.create", - "parameterOrder": [ - "advertiserId" - ], - "parameters": { - "advertiserId": { - "description": "Output only. The unique ID of the advertiser the creative belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/creatives", - "request": { - "$ref": "Creative" - }, - "response": { - "$ref": "Creative" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "delete": { - "description": "Deletes a creative. Returns error code `NOT_FOUND` if the creative does not exist. The creative should be archived first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, before it can be deleted.", - "flatPath": "v1/advertisers/{advertisersId}/creatives/{creativesId}", - "httpMethod": "DELETE", - "id": "displayvideo.advertisers.creatives.delete", - "parameterOrder": [ - "advertiserId", - "creativeId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser this creative belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "creativeId": { - "description": "The ID of the creative to be deleted.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/creatives/{+creativeId}", - "response": { - "$ref": "Empty" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "get": { - "description": "Gets a creative.", - "flatPath": "v1/advertisers/{advertisersId}/creatives/{creativesId}", - "httpMethod": "GET", - "id": "displayvideo.advertisers.creatives.get", - "parameterOrder": [ - "advertiserId", - "creativeId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser this creative belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "creativeId": { - "description": "Required. The ID of the creative to fetch.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/creatives/{+creativeId}", - "response": { - "$ref": "Creative" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "list": { - "description": "Lists creatives in an advertiser. The order is defined by the order_by parameter. If a filter by entity_status is not specified, creatives with `ENTITY_STATUS_ARCHIVED` will not be included in the results.", - "flatPath": "v1/advertisers/{advertisersId}/creatives", - "httpMethod": "GET", - "id": "displayvideo.advertisers.creatives.list", - "parameterOrder": [ - "advertiserId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser to list creatives for.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "filter": { - "description": "Allows filtering by creative fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * The `lineItemIds` field must use the `HAS (:)` operator. * The `updateTime` field must use the `GREATER THAN OR EQUAL TO (>=)` or `LESS THAN OR EQUAL TO (<=)` operators. * All other fields must use the `EQUALS (=)` operator. * For `entityStatus`, `minDuration`, `maxDuration`, `updateTime`, and `dynamic` fields, there may be at most one restriction. Supported Fields: * `approvalStatus` * `creativeId` * `creativeType` * `dimensions` (input in the form of `{width}x{height}`) * `dynamic` * `entityStatus` * `exchangeReviewStatus` (input in the form of `{exchange}-{reviewStatus}`) * `lineItemIds` * `maxDuration` (input in the form of `{duration}s`. Only seconds are supported) * `minDuration` (input in the form of `{duration}s`. Only seconds are supported) * `updateTime` (input in ISO 8601 format, or `YYYY-MM-DDTHH:MM:SSZ`) Notes: * For `updateTime`, a creative resource's field value reflects the last time that a creative has been updated, which includes updates made by the system (e.g. creative review updates). Examples: * All native creatives: `creativeType=\"CREATIVE_TYPE_NATIVE\"` * All active creatives with 300x400 or 50x100 dimensions: `entityStatus=\"ENTITY_STATUS_ACTIVE\" AND (dimensions=\"300x400\" OR dimensions=\"50x100\")` * All dynamic creatives that are approved by AdX or AppNexus, with a minimum duration of 5 seconds and 200ms: `dynamic=\"true\" AND minDuration=\"5.2s\" AND (exchangeReviewStatus=\"EXCHANGE_GOOGLE_AD_MANAGER-REVIEW_STATUS_APPROVED\" OR exchangeReviewStatus=\"EXCHANGE_APPNEXUS-REVIEW_STATUS_APPROVED\")` * All video creatives that are associated with line item ID 1 or 2: `creativeType=\"CREATIVE_TYPE_VIDEO\" AND (lineItemIds:1 OR lineItemIds:2)` * Find creatives by multiple creative IDs: `creativeId=1 OR creativeId=2` * All creatives with an update time greater than or equal to 2020-11-04T18:54:47Z (format of ISO 8601): `updateTime>=\"2020-11-04T18:54:47Z\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `creativeId` (default) * `createTime` * `mediaDuration` * `dimensions` (sorts by width first, then by height) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `createTime desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListCreatives` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/creatives", - "response": { - "$ref": "ListCreativesResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "patch": { - "description": "Updates an existing creative. Returns the updated creative if successful.", - "flatPath": "v1/advertisers/{advertisersId}/creatives/{creativesId}", - "httpMethod": "PATCH", - "id": "displayvideo.advertisers.creatives.patch", - "parameterOrder": [ - "advertiserId", - "creativeId" - ], - "parameters": { - "advertiserId": { - "description": "Output only. The unique ID of the advertiser the creative belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "creativeId": { - "description": "Output only. The unique ID of the creative. Assigned by the system.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "updateMask": { - "description": "Required. The mask to control which fields to update.", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/creatives/{+creativeId}", - "request": { - "$ref": "Creative" - }, - "response": { - "$ref": "Creative" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - } - }, - "insertionOrders": { - "methods": { - "bulkListInsertionOrderAssignedTargetingOptions": { - "description": "Lists assigned targeting options of an insertion order across targeting types.", - "flatPath": "v1/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}:bulkListInsertionOrderAssignedTargetingOptions", - "httpMethod": "GET", - "id": "displayvideo.advertisers.insertionOrders.bulkListInsertionOrderAssignedTargetingOptions", - "parameterOrder": [ - "advertiserId", - "insertionOrderId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser the insertion order belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "filter": { - "description": "Allows filtering by assigned targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `targetingType` * `inheritance` Examples: * `AssignedTargetingOption` resources of targeting type `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` or `TARGETING_TYPE_CHANNEL`: `targetingType=\"TARGETING_TYPE_PROXIMITY_LOCATION_LIST\" OR targetingType=\"TARGETING_TYPE_CHANNEL\"` * `AssignedTargetingOption` resources with inheritance status of `NOT_INHERITED` or `INHERITED_FROM_PARTNER`: `inheritance=\"NOT_INHERITED\" OR inheritance=\"INHERITED_FROM_PARTNER\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "insertionOrderId": { - "description": "Required. The ID of the insertion order to list assigned targeting options for.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `targetingType` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `targetingType desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. The size must be an integer between `1` and `5000`. If unspecified, the default is `5000`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token that lets the client fetch the next page of results. Typically, this is the value of next_page_token returned from the previous call to `BulkListInsertionOrderAssignedTargetingOptions` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}:bulkListInsertionOrderAssignedTargetingOptions", - "response": { - "$ref": "BulkListInsertionOrderAssignedTargetingOptionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "create": { - "description": "Creates a new insertion order. Returns the newly created insertion order if successful.", - "flatPath": "v1/advertisers/{advertisersId}/insertionOrders", - "httpMethod": "POST", - "id": "displayvideo.advertisers.insertionOrders.create", - "parameterOrder": [ - "advertiserId" - ], - "parameters": { - "advertiserId": { - "description": "Output only. The unique ID of the advertiser the insertion order belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/insertionOrders", - "request": { - "$ref": "InsertionOrder" - }, - "response": { - "$ref": "InsertionOrder" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "delete": { - "description": "Deletes an insertion order. Returns error code `NOT_FOUND` if the insertion order does not exist. The insertion order should be archived first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, to be able to delete it.", - "flatPath": "v1/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}", - "httpMethod": "DELETE", - "id": "displayvideo.advertisers.insertionOrders.delete", - "parameterOrder": [ - "advertiserId", - "insertionOrderId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser this insertion order belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "insertionOrderId": { - "description": "The ID of the insertion order to delete.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}", - "response": { - "$ref": "Empty" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "get": { - "description": "Gets an insertion order. Returns error code `NOT_FOUND` if the insertion order does not exist.", - "flatPath": "v1/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}", - "httpMethod": "GET", - "id": "displayvideo.advertisers.insertionOrders.get", - "parameterOrder": [ - "advertiserId", - "insertionOrderId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser this insertion order belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "insertionOrderId": { - "description": "Required. The ID of the insertion order to fetch.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}", - "response": { - "$ref": "InsertionOrder" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "list": { - "description": "Lists insertion orders in an advertiser. The order is defined by the order_by parameter. If a filter by entity_status is not specified, insertion orders with `ENTITY_STATUS_ARCHIVED` will not be included in the results.", - "flatPath": "v1/advertisers/{advertisersId}/insertionOrders", - "httpMethod": "GET", - "id": "displayvideo.advertisers.insertionOrders.list", - "parameterOrder": [ - "advertiserId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser to list insertion orders for.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "filter": { - "description": "Allows filtering by insertion order fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * The `updateTime` field must use the `GREATER THAN OR EQUAL TO (>=)` or `LESS THAN OR EQUAL TO (<=)` operators. * All other fields must use the `EQUALS (=)` operator. Supported fields: * `campaignId` * `displayName` * `entityStatus` * `updateTime` (input in ISO 8601 format, or `YYYY-MM-DDTHH:MM:SSZ`) Examples: * All insertion orders under a campaign: `campaignId=\"1234\"` * All `ENTITY_STATUS_ACTIVE` or `ENTITY_STATUS_PAUSED` insertion orders under an advertiser: `(entityStatus=\"ENTITY_STATUS_ACTIVE\" OR entityStatus=\"ENTITY_STATUS_PAUSED\")` * All insertion orders with an update time less than or equal to 2020-11-04T18:54:47Z (format of ISO 8601): `updateTime<=\"2020-11-04T18:54:47Z\"` * All insertion orders with an update time greater than or equal to 2020-11-04T18:54:47Z (format of ISO 8601): `updateTime>=\"2020-11-04T18:54:47Z\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * \"displayName\" (default) * \"entityStatus\" * \"updateTime\" The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListInsertionOrders` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/insertionOrders", - "response": { - "$ref": "ListInsertionOrdersResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "patch": { - "description": "Updates an existing insertion order. Returns the updated insertion order if successful.", - "flatPath": "v1/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}", - "httpMethod": "PATCH", - "id": "displayvideo.advertisers.insertionOrders.patch", - "parameterOrder": [ - "advertiserId", - "insertionOrderId" - ], - "parameters": { - "advertiserId": { - "description": "Output only. The unique ID of the advertiser the insertion order belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "insertionOrderId": { - "description": "Output only. The unique ID of the insertion order. Assigned by the system.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "updateMask": { - "description": "Required. The mask to control which fields to update.", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}", - "request": { - "$ref": "InsertionOrder" - }, - "response": { - "$ref": "InsertionOrder" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - }, - "resources": { - "targetingTypes": { - "resources": { - "assignedTargetingOptions": { - "methods": { - "get": { - "description": "Gets a single targeting option assigned to an insertion order.", - "flatPath": "v1/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}", - "httpMethod": "GET", - "id": "displayvideo.advertisers.insertionOrders.targetingTypes.assignedTargetingOptions.get", - "parameterOrder": [ - "advertiserId", - "insertionOrderId", - "targetingType", - "assignedTargetingOptionId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser the insertion order belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "assignedTargetingOptionId": { - "description": "Required. An identifier unique to the targeting type in this insertion order that identifies the assigned targeting option being requested.", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "insertionOrderId": { - "description": "Required. The ID of the insertion order the assigned targeting option belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "targetingType": { - "description": "Required. Identifies the type of this assigned targeting option. Supported targeting types include: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_APP` * `TARGETING_TYPE_APP_CATEGORY` * `TARGETING_TYPE_AUDIENCE_GROUP` * `TARGETING_TYPE_AUDIO_CONTENT_TYPE` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_BUSINESS_CHAIN` * `TARGETING_TYPE_CARRIER_AND_ISP` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_CONTENT_DURATION` * `TARGETING_TYPE_CONTENT_GENRE` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_STREAM_TYPE` * `TARGETING_TYPE_DAY_AND_TIME` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_DEVICE_TYPE` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_KEYWORD` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_POI` * `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` * `TARGETING_TYPE_REGIONAL_LOCATION_LIST` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * `TARGETING_TYPE_URL` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_VIEWABILITY`", - "enum": [ - "TARGETING_TYPE_UNSPECIFIED", - "TARGETING_TYPE_CHANNEL", - "TARGETING_TYPE_APP_CATEGORY", - "TARGETING_TYPE_APP", - "TARGETING_TYPE_URL", - "TARGETING_TYPE_DAY_AND_TIME", - "TARGETING_TYPE_AGE_RANGE", - "TARGETING_TYPE_REGIONAL_LOCATION_LIST", - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST", - "TARGETING_TYPE_GENDER", - "TARGETING_TYPE_VIDEO_PLAYER_SIZE", - "TARGETING_TYPE_USER_REWARDED_CONTENT", - "TARGETING_TYPE_PARENTAL_STATUS", - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION", - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", - "TARGETING_TYPE_DEVICE_TYPE", - "TARGETING_TYPE_AUDIENCE_GROUP", - "TARGETING_TYPE_BROWSER", - "TARGETING_TYPE_HOUSEHOLD_INCOME", - "TARGETING_TYPE_ON_SCREEN_POSITION", - "TARGETING_TYPE_THIRD_PARTY_VERIFIER", - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", - "TARGETING_TYPE_ENVIRONMENT", - "TARGETING_TYPE_CARRIER_AND_ISP", - "TARGETING_TYPE_OPERATING_SYSTEM", - "TARGETING_TYPE_DEVICE_MAKE_MODEL", - "TARGETING_TYPE_KEYWORD", - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", - "TARGETING_TYPE_VIEWABILITY", - "TARGETING_TYPE_CATEGORY", - "TARGETING_TYPE_INVENTORY_SOURCE", - "TARGETING_TYPE_LANGUAGE", - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", - "TARGETING_TYPE_GEO_REGION", - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", - "TARGETING_TYPE_EXCHANGE", - "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_POI", - "TARGETING_TYPE_BUSINESS_CHAIN", - "TARGETING_TYPE_CONTENT_DURATION", - "TARGETING_TYPE_CONTENT_STREAM_TYPE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION", - "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE", - "TARGETING_TYPE_CONTENT_GENRE" - ], - "enumDescriptions": [ - "Default value when type is not specified or is unknown in this version.", - "Target a channel (a custom group of related websites or apps).", - "Target an app category (for example, education or puzzle games).", - "Target a specific app (for example, Angry Birds).", - "Target a specific url (for example, quora.com).", - "Target ads during a chosen time period on a specific day.", - "Target ads to a specific age range (for example, 18-24).", - "Target ads to the specified regions on a regional location list.", - "Target ads to the specified points of interest on a proximity location list.", - "Target ads to a specific gender (for example, female or male).", - "Target a specific video player size for video ads.", - "Target user rewarded content for video ads.", - "Target ads to a specific parental status (for example, parent or not a parent).", - "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", - "Target ads in a specific content outstream position.", - "Target ads to a specific device type (for example, tablet or connected TV).", - "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", - "Target ads to specific web browsers (for example, Chrome).", - "Target ads to a specific household income range (for example, top 10%).", - "Target ads in a specific on screen position.", - "Filter web sites through third party verification (for example, IAS or DoubleVerify).", - "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", - "Filter website content by sensitive categories (for example, adult).", - "Target ads to a specific environment (for example, web or app).", - "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", - "Target ads to a specific operating system (for example, macOS).", - "Target ads to a specific device make or model (for example, Roku or Samsung).", - "Target ads to a specific keyword (for example, dog or retriever).", - "Target ads to a specific negative keyword list.", - "Target ads to a specific viewability (for example, 80% viewable).", - "Target ads to a specific content category (for example, arts & entertainment).", - "Purchase impressions from specific deals and auction packages.", - "Target ads to a specific language (for example, English or Japanese).", - "Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", - "Target ads to a specific regional location (for example, a city or state).", - "Purchase impressions from a group of deals and auction packages.", - "Purchase impressions from specific exchanges.", - "Purchase impressions from specific sub-exchanges.", - "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", - "Target ads around locations of a business chain within a specific geo region.", - "Target ads to a specific video content duration.", - "Target ads to a specific video content stream type.", - "Target ads to a specific native content position.", - "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type.", - "Target ads to a specific content genre." - ], - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}", - "response": { - "$ref": "AssignedTargetingOption" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "list": { - "description": "Lists the targeting options assigned to an insertion order.", - "flatPath": "v1/advertisers/{advertisersId}/insertionOrders/{insertionOrdersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions", - "httpMethod": "GET", - "id": "displayvideo.advertisers.insertionOrders.targetingTypes.assignedTargetingOptions.list", - "parameterOrder": [ - "advertiserId", - "insertionOrderId", - "targetingType" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser the insertion order belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "filter": { - "description": "Allows filtering by assigned targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `assignedTargetingOptionId` * `inheritance` Examples: * `AssignedTargetingOption` resources with ID 1 or 2: `assignedTargetingOptionId=\"1\" OR assignedTargetingOptionId=\"2\"` * `AssignedTargetingOption` resources with inheritance status of `NOT_INHERITED` or `INHERITED_FROM_PARTNER`: `inheritance=\"NOT_INHERITED\" OR inheritance=\"INHERITED_FROM_PARTNER\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "insertionOrderId": { - "description": "Required. The ID of the insertion order to list assigned targeting options for.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `assignedTargetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `assignedTargetingOptionId desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `5000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListInsertionOrderAssignedTargetingOptions` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - }, - "targetingType": { - "description": "Required. Identifies the type of assigned targeting options to list. Supported targeting types include: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_APP` * `TARGETING_TYPE_APP_CATEGORY` * `TARGETING_TYPE_AUDIENCE_GROUP` * `TARGETING_TYPE_AUDIO_CONTENT_TYPE` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_BUSINESS_CHAIN` * `TARGETING_TYPE_CARRIER_AND_ISP` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_CONTENT_DURATION` * `TARGETING_TYPE_CONTENT_GENRE` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_STREAM_TYPE` * `TARGETING_TYPE_DAY_AND_TIME` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_DEVICE_TYPE` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_KEYWORD` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_POI` * `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` * `TARGETING_TYPE_REGIONAL_LOCATION_LIST` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * `TARGETING_TYPE_URL` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_VIEWABILITY`", - "enum": [ - "TARGETING_TYPE_UNSPECIFIED", - "TARGETING_TYPE_CHANNEL", - "TARGETING_TYPE_APP_CATEGORY", - "TARGETING_TYPE_APP", - "TARGETING_TYPE_URL", - "TARGETING_TYPE_DAY_AND_TIME", - "TARGETING_TYPE_AGE_RANGE", - "TARGETING_TYPE_REGIONAL_LOCATION_LIST", - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST", - "TARGETING_TYPE_GENDER", - "TARGETING_TYPE_VIDEO_PLAYER_SIZE", - "TARGETING_TYPE_USER_REWARDED_CONTENT", - "TARGETING_TYPE_PARENTAL_STATUS", - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION", - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", - "TARGETING_TYPE_DEVICE_TYPE", - "TARGETING_TYPE_AUDIENCE_GROUP", - "TARGETING_TYPE_BROWSER", - "TARGETING_TYPE_HOUSEHOLD_INCOME", - "TARGETING_TYPE_ON_SCREEN_POSITION", - "TARGETING_TYPE_THIRD_PARTY_VERIFIER", - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", - "TARGETING_TYPE_ENVIRONMENT", - "TARGETING_TYPE_CARRIER_AND_ISP", - "TARGETING_TYPE_OPERATING_SYSTEM", - "TARGETING_TYPE_DEVICE_MAKE_MODEL", - "TARGETING_TYPE_KEYWORD", - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", - "TARGETING_TYPE_VIEWABILITY", - "TARGETING_TYPE_CATEGORY", - "TARGETING_TYPE_INVENTORY_SOURCE", - "TARGETING_TYPE_LANGUAGE", - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", - "TARGETING_TYPE_GEO_REGION", - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", - "TARGETING_TYPE_EXCHANGE", - "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_POI", - "TARGETING_TYPE_BUSINESS_CHAIN", - "TARGETING_TYPE_CONTENT_DURATION", - "TARGETING_TYPE_CONTENT_STREAM_TYPE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION", - "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE", - "TARGETING_TYPE_CONTENT_GENRE" - ], - "enumDescriptions": [ - "Default value when type is not specified or is unknown in this version.", - "Target a channel (a custom group of related websites or apps).", - "Target an app category (for example, education or puzzle games).", - "Target a specific app (for example, Angry Birds).", - "Target a specific url (for example, quora.com).", - "Target ads during a chosen time period on a specific day.", - "Target ads to a specific age range (for example, 18-24).", - "Target ads to the specified regions on a regional location list.", - "Target ads to the specified points of interest on a proximity location list.", - "Target ads to a specific gender (for example, female or male).", - "Target a specific video player size for video ads.", - "Target user rewarded content for video ads.", - "Target ads to a specific parental status (for example, parent or not a parent).", - "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", - "Target ads in a specific content outstream position.", - "Target ads to a specific device type (for example, tablet or connected TV).", - "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", - "Target ads to specific web browsers (for example, Chrome).", - "Target ads to a specific household income range (for example, top 10%).", - "Target ads in a specific on screen position.", - "Filter web sites through third party verification (for example, IAS or DoubleVerify).", - "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", - "Filter website content by sensitive categories (for example, adult).", - "Target ads to a specific environment (for example, web or app).", - "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", - "Target ads to a specific operating system (for example, macOS).", - "Target ads to a specific device make or model (for example, Roku or Samsung).", - "Target ads to a specific keyword (for example, dog or retriever).", - "Target ads to a specific negative keyword list.", - "Target ads to a specific viewability (for example, 80% viewable).", - "Target ads to a specific content category (for example, arts & entertainment).", - "Purchase impressions from specific deals and auction packages.", - "Target ads to a specific language (for example, English or Japanese).", - "Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", - "Target ads to a specific regional location (for example, a city or state).", - "Purchase impressions from a group of deals and auction packages.", - "Purchase impressions from specific exchanges.", - "Purchase impressions from specific sub-exchanges.", - "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", - "Target ads around locations of a business chain within a specific geo region.", - "Target ads to a specific video content duration.", - "Target ads to a specific video content stream type.", - "Target ads to a specific native content position.", - "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type.", - "Target ads to a specific content genre." - ], - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/insertionOrders/{+insertionOrderId}/targetingTypes/{+targetingType}/assignedTargetingOptions", - "response": { - "$ref": "ListInsertionOrderAssignedTargetingOptionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - } - } - } - } - } - }, - "invoices": { - "methods": { - "list": { - "description": "Lists invoices posted for an advertiser in a given month. Invoices generated by billing profiles with a \"Partner\" invoice level are not retrievable through this method.", - "flatPath": "v1/advertisers/{advertisersId}/invoices", - "httpMethod": "GET", - "id": "displayvideo.advertisers.invoices.list", - "parameterOrder": [ - "advertiserId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser to list invoices for.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "issueMonth": { - "description": "The month to list the invoices for. If not set, the request will retrieve invoices for the previous month. Must be in the format YYYYMM.", - "location": "query", - "type": "string" - }, - "loiSapinInvoiceType": { - "description": "Select type of invoice to retrieve for Loi Sapin advertisers. Only applicable to Loi Sapin advertisers. Will be ignored otherwise.", - "enum": [ - "LOI_SAPIN_INVOICE_TYPE_UNSPECIFIED", - "LOI_SAPIN_INVOICE_TYPE_MEDIA", - "LOI_SAPIN_INVOICE_TYPE_PLATFORM" - ], - "enumDescriptions": [ - "Value is not specified.", - "Invoices with Media cost.", - "Invoices with Platform fee." - ], - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListInvoices` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/invoices", - "response": { - "$ref": "ListInvoicesResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video", - "https://www.googleapis.com/auth/display-video-mediaplanning" - ] - }, - "lookupInvoiceCurrency": { - "description": "Retrieves the invoice currency used by an advertiser in a given month.", - "flatPath": "v1/advertisers/{advertisersId}/invoices:lookupInvoiceCurrency", - "httpMethod": "GET", - "id": "displayvideo.advertisers.invoices.lookupInvoiceCurrency", - "parameterOrder": [ - "advertiserId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser to lookup currency for.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "invoiceMonth": { - "description": "Month for which the currency is needed. If not set, the request will return existing currency settings for the advertiser. Must be in the format YYYYMM.", - "location": "query", - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/invoices:lookupInvoiceCurrency", - "response": { - "$ref": "LookupInvoiceCurrencyResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video", - "https://www.googleapis.com/auth/display-video-mediaplanning" - ] - } - } - }, - "lineItems": { - "methods": { - "bulkEditLineItemAssignedTargetingOptions": { - "description": "Bulk edits targeting options under a single line item. The operation will delete the assigned targeting options provided in BulkEditLineItemAssignedTargetingOptionsRequest.delete_requests and then create the assigned targeting options provided in BulkEditLineItemAssignedTargetingOptionsRequest.create_requests. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * lineItems.patch * assignedTargetingOptions.create * assignedTargetingOptions.delete", - "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}:bulkEditLineItemAssignedTargetingOptions", - "httpMethod": "POST", - "id": "displayvideo.advertisers.lineItems.bulkEditLineItemAssignedTargetingOptions", - "parameterOrder": [ - "advertiserId", - "lineItemId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser the line item belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "lineItemId": { - "description": "Required. The ID of the line item the assigned targeting option will belong to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}:bulkEditLineItemAssignedTargetingOptions", - "request": { - "$ref": "BulkEditLineItemAssignedTargetingOptionsRequest" - }, - "response": { - "$ref": "BulkEditLineItemAssignedTargetingOptionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "bulkListLineItemAssignedTargetingOptions": { - "description": "Lists assigned targeting options of a line item across targeting types.", - "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}:bulkListLineItemAssignedTargetingOptions", - "httpMethod": "GET", - "id": "displayvideo.advertisers.lineItems.bulkListLineItemAssignedTargetingOptions", - "parameterOrder": [ - "advertiserId", - "lineItemId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser the line item belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "filter": { - "description": "Allows filtering by assigned targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `targetingType` * `inheritance` Examples: * `AssignedTargetingOption` resources of targeting type `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` or `TARGETING_TYPE_CHANNEL`: `targetingType=\"TARGETING_TYPE_PROXIMITY_LOCATION_LIST\" OR targetingType=\"TARGETING_TYPE_CHANNEL\"` * `AssignedTargetingOption` resources with inheritance status of `NOT_INHERITED` or `INHERITED_FROM_PARTNER`: `inheritance=\"NOT_INHERITED\" OR inheritance=\"INHERITED_FROM_PARTNER\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "lineItemId": { - "description": "Required. The ID of the line item to list assigned targeting options for.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `targetingType` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `targetingType desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. The size must be an integer between `1` and `5000`. If unspecified, the default is `5000`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token that lets the client fetch the next page of results. Typically, this is the value of next_page_token returned from the previous call to `BulkListLineItemAssignedTargetingOptions` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}:bulkListLineItemAssignedTargetingOptions", - "response": { - "$ref": "BulkListLineItemAssignedTargetingOptionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "create": { - "description": "Creates a new line item. Returns the newly created line item if successful.", - "flatPath": "v1/advertisers/{advertisersId}/lineItems", - "httpMethod": "POST", - "id": "displayvideo.advertisers.lineItems.create", - "parameterOrder": [ - "advertiserId" - ], - "parameters": { - "advertiserId": { - "description": "Output only. The unique ID of the advertiser the line item belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/lineItems", - "request": { - "$ref": "LineItem" - }, - "response": { - "$ref": "LineItem" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "delete": { - "description": "Deletes a line item. Returns error code `NOT_FOUND` if the line item does not exist. The line item should be archived first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, to be able to delete it.", - "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}", - "httpMethod": "DELETE", - "id": "displayvideo.advertisers.lineItems.delete", - "parameterOrder": [ - "advertiserId", - "lineItemId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser this line item belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "lineItemId": { - "description": "The ID of the line item to delete.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}", - "response": { - "$ref": "Empty" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "generateDefault": { - "description": "Creates a new line item with settings (including targeting) inherited from the insertion order and an `ENTITY_STATUS_DRAFT` entity_status. Returns the newly created line item if successful. There are default values based on the three fields: * The insertion order's insertion_order_type * The insertion order's automation_type * The given line_item_type", - "flatPath": "v1/advertisers/{advertisersId}/lineItems:generateDefault", - "httpMethod": "POST", - "id": "displayvideo.advertisers.lineItems.generateDefault", - "parameterOrder": [ - "advertiserId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser this line item belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/lineItems:generateDefault", - "request": { - "$ref": "GenerateDefaultLineItemRequest" - }, - "response": { - "$ref": "LineItem" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "get": { - "description": "Gets a line item.", - "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}", - "httpMethod": "GET", - "id": "displayvideo.advertisers.lineItems.get", - "parameterOrder": [ - "advertiserId", - "lineItemId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser this line item belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "lineItemId": { - "description": "Required. The ID of the line item to fetch.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}", - "response": { - "$ref": "LineItem" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "list": { - "description": "Lists line items in an advertiser. The order is defined by the order_by parameter. If a filter by entity_status is not specified, line items with `ENTITY_STATUS_ARCHIVED` will not be included in the results.", - "flatPath": "v1/advertisers/{advertisersId}/lineItems", - "httpMethod": "GET", - "id": "displayvideo.advertisers.lineItems.list", - "parameterOrder": [ - "advertiserId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser to list line items for.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "filter": { - "description": "Allows filtering by line item fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * The `updateTime` field must use the `GREATER THAN OR EQUAL TO (>=)` or `LESS THAN OR EQUAL TO (<=)` operators. * All other fields must use the `EQUALS (=)` operator. Supported fields: * `campaignId` * `displayName` * `entityStatus` * `insertionOrderId` * `lineItemId` * `lineItemType` * `updateTime` (input in ISO 8601 format, or `YYYY-MM-DDTHH:MM:SSZ`) Examples: * All line items under an insertion order: `insertionOrderId=\"1234\"` * All `ENTITY_STATUS_ACTIVE` or `ENTITY_STATUS_PAUSED` and `LINE_ITEM_TYPE_DISPLAY_DEFAULT` line items under an advertiser: `(entityStatus=\"ENTITY_STATUS_ACTIVE\" OR entityStatus=\"ENTITY_STATUS_PAUSED\") AND lineItemType=\"LINE_ITEM_TYPE_DISPLAY_DEFAULT\"` * All line items with an update time less than or equal to 2020-11-04T18:54:47Z (format of ISO 8601): `updateTime<=\"2020-11-04T18:54:47Z\"` * All line items with an update time greater than or equal to 2020-11-04T18:54:47Z (format of ISO 8601): `updateTime>=\"2020-11-04T18:54:47Z\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) * `entityStatus` * `updateTime` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListLineItems` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/lineItems", - "response": { - "$ref": "ListLineItemsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "patch": { - "description": "Updates an existing line item. Returns the updated line item if successful. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * BulkEditAssignedTargetingOptions * BulkUpdateLineItems * assignedTargetingOptions.create * assignedTargetingOptions.delete", - "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}", - "httpMethod": "PATCH", - "id": "displayvideo.advertisers.lineItems.patch", - "parameterOrder": [ - "advertiserId", - "lineItemId" - ], - "parameters": { - "advertiserId": { - "description": "Output only. The unique ID of the advertiser the line item belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "lineItemId": { - "description": "Output only. The unique ID of the line item. Assigned by the system.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "updateMask": { - "description": "Required. The mask to control which fields to update.", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}", - "request": { - "$ref": "LineItem" - }, - "response": { - "$ref": "LineItem" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - }, - "resources": { - "targetingTypes": { - "resources": { - "assignedTargetingOptions": { - "methods": { - "create": { - "description": "Assigns a targeting option to a line item. Returns the assigned targeting option if successful. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * lineItems.bulkEditAssignedTargetingOptions * lineItems.bulkUpdate * lineItems.patch * DeleteLineItemAssignedTargetingOption", - "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions", - "httpMethod": "POST", - "id": "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.create", - "parameterOrder": [ - "advertiserId", - "lineItemId", - "targetingType" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser the line item belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "lineItemId": { - "description": "Required. The ID of the line item the assigned targeting option will belong to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "targetingType": { - "description": "Required. Identifies the type of this assigned targeting option. Supported targeting types include: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_APP` * `TARGETING_TYPE_APP_CATEGORY` * `TARGETING_TYPE_AUDIENCE_GROUP` * `TARGETING_TYPE_AUDIO_CONTENT_TYPE` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_BUSINESS_CHAIN` * `TARGETING_TYPE_CARRIER_AND_ISP` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_CONTENT_DURATION` * `TARGETING_TYPE_CONTENT_GENRE` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_STREAM_TYPE` * `TARGETING_TYPE_DAY_AND_TIME` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_DEVICE_TYPE` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_KEYWORD` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_POI` * `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` * `TARGETING_TYPE_REGIONAL_LOCATION_LIST` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * `TARGETING_TYPE_URL` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_VIEWABILITY`", - "enum": [ - "TARGETING_TYPE_UNSPECIFIED", - "TARGETING_TYPE_CHANNEL", - "TARGETING_TYPE_APP_CATEGORY", - "TARGETING_TYPE_APP", - "TARGETING_TYPE_URL", - "TARGETING_TYPE_DAY_AND_TIME", - "TARGETING_TYPE_AGE_RANGE", - "TARGETING_TYPE_REGIONAL_LOCATION_LIST", - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST", - "TARGETING_TYPE_GENDER", - "TARGETING_TYPE_VIDEO_PLAYER_SIZE", - "TARGETING_TYPE_USER_REWARDED_CONTENT", - "TARGETING_TYPE_PARENTAL_STATUS", - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION", - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", - "TARGETING_TYPE_DEVICE_TYPE", - "TARGETING_TYPE_AUDIENCE_GROUP", - "TARGETING_TYPE_BROWSER", - "TARGETING_TYPE_HOUSEHOLD_INCOME", - "TARGETING_TYPE_ON_SCREEN_POSITION", - "TARGETING_TYPE_THIRD_PARTY_VERIFIER", - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", - "TARGETING_TYPE_ENVIRONMENT", - "TARGETING_TYPE_CARRIER_AND_ISP", - "TARGETING_TYPE_OPERATING_SYSTEM", - "TARGETING_TYPE_DEVICE_MAKE_MODEL", - "TARGETING_TYPE_KEYWORD", - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", - "TARGETING_TYPE_VIEWABILITY", - "TARGETING_TYPE_CATEGORY", - "TARGETING_TYPE_INVENTORY_SOURCE", - "TARGETING_TYPE_LANGUAGE", - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", - "TARGETING_TYPE_GEO_REGION", - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", - "TARGETING_TYPE_EXCHANGE", - "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_POI", - "TARGETING_TYPE_BUSINESS_CHAIN", - "TARGETING_TYPE_CONTENT_DURATION", - "TARGETING_TYPE_CONTENT_STREAM_TYPE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION", - "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE", - "TARGETING_TYPE_CONTENT_GENRE" - ], - "enumDescriptions": [ - "Default value when type is not specified or is unknown in this version.", - "Target a channel (a custom group of related websites or apps).", - "Target an app category (for example, education or puzzle games).", - "Target a specific app (for example, Angry Birds).", - "Target a specific url (for example, quora.com).", - "Target ads during a chosen time period on a specific day.", - "Target ads to a specific age range (for example, 18-24).", - "Target ads to the specified regions on a regional location list.", - "Target ads to the specified points of interest on a proximity location list.", - "Target ads to a specific gender (for example, female or male).", - "Target a specific video player size for video ads.", - "Target user rewarded content for video ads.", - "Target ads to a specific parental status (for example, parent or not a parent).", - "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", - "Target ads in a specific content outstream position.", - "Target ads to a specific device type (for example, tablet or connected TV).", - "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", - "Target ads to specific web browsers (for example, Chrome).", - "Target ads to a specific household income range (for example, top 10%).", - "Target ads in a specific on screen position.", - "Filter web sites through third party verification (for example, IAS or DoubleVerify).", - "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", - "Filter website content by sensitive categories (for example, adult).", - "Target ads to a specific environment (for example, web or app).", - "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", - "Target ads to a specific operating system (for example, macOS).", - "Target ads to a specific device make or model (for example, Roku or Samsung).", - "Target ads to a specific keyword (for example, dog or retriever).", - "Target ads to a specific negative keyword list.", - "Target ads to a specific viewability (for example, 80% viewable).", - "Target ads to a specific content category (for example, arts & entertainment).", - "Purchase impressions from specific deals and auction packages.", - "Target ads to a specific language (for example, English or Japanese).", - "Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", - "Target ads to a specific regional location (for example, a city or state).", - "Purchase impressions from a group of deals and auction packages.", - "Purchase impressions from specific exchanges.", - "Purchase impressions from specific sub-exchanges.", - "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", - "Target ads around locations of a business chain within a specific geo region.", - "Target ads to a specific video content duration.", - "Target ads to a specific video content stream type.", - "Target ads to a specific native content position.", - "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type.", - "Target ads to a specific content genre." - ], - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}/targetingTypes/{+targetingType}/assignedTargetingOptions", - "request": { - "$ref": "AssignedTargetingOption" - }, - "response": { - "$ref": "AssignedTargetingOption" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "delete": { - "description": "Deletes an assigned targeting option from a line item. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * lineItems.bulkEditAssignedTargetingOptions * lineItems.bulkUpdate * lineItems.patch * CreateLineItemAssignedTargetingOption", - "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}", - "httpMethod": "DELETE", - "id": "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.delete", - "parameterOrder": [ - "advertiserId", - "lineItemId", - "targetingType", - "assignedTargetingOptionId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser the line item belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "assignedTargetingOptionId": { - "description": "Required. The ID of the assigned targeting option to delete.", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "lineItemId": { - "description": "Required. The ID of the line item the assigned targeting option belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "targetingType": { - "description": "Required. Identifies the type of this assigned targeting option. Supported targeting types include: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_APP` * `TARGETING_TYPE_APP_CATEGORY` * `TARGETING_TYPE_AUDIENCE_GROUP` * `TARGETING_TYPE_AUDIO_CONTENT_TYPE` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_BUSINESS_CHAIN` * `TARGETING_TYPE_CARRIER_AND_ISP` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_CONTENT_DURATION` * `TARGETING_TYPE_CONTENT_GENRE` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_STREAM_TYPE` * `TARGETING_TYPE_DAY_AND_TIME` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_DEVICE_TYPE` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_KEYWORD` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_POI` * `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` * `TARGETING_TYPE_REGIONAL_LOCATION_LIST` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * `TARGETING_TYPE_URL` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_VIEWABILITY`", - "enum": [ - "TARGETING_TYPE_UNSPECIFIED", - "TARGETING_TYPE_CHANNEL", - "TARGETING_TYPE_APP_CATEGORY", - "TARGETING_TYPE_APP", - "TARGETING_TYPE_URL", - "TARGETING_TYPE_DAY_AND_TIME", - "TARGETING_TYPE_AGE_RANGE", - "TARGETING_TYPE_REGIONAL_LOCATION_LIST", - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST", - "TARGETING_TYPE_GENDER", - "TARGETING_TYPE_VIDEO_PLAYER_SIZE", - "TARGETING_TYPE_USER_REWARDED_CONTENT", - "TARGETING_TYPE_PARENTAL_STATUS", - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION", - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", - "TARGETING_TYPE_DEVICE_TYPE", - "TARGETING_TYPE_AUDIENCE_GROUP", - "TARGETING_TYPE_BROWSER", - "TARGETING_TYPE_HOUSEHOLD_INCOME", - "TARGETING_TYPE_ON_SCREEN_POSITION", - "TARGETING_TYPE_THIRD_PARTY_VERIFIER", - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", - "TARGETING_TYPE_ENVIRONMENT", - "TARGETING_TYPE_CARRIER_AND_ISP", - "TARGETING_TYPE_OPERATING_SYSTEM", - "TARGETING_TYPE_DEVICE_MAKE_MODEL", - "TARGETING_TYPE_KEYWORD", - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", - "TARGETING_TYPE_VIEWABILITY", - "TARGETING_TYPE_CATEGORY", - "TARGETING_TYPE_INVENTORY_SOURCE", - "TARGETING_TYPE_LANGUAGE", - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", - "TARGETING_TYPE_GEO_REGION", - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", - "TARGETING_TYPE_EXCHANGE", - "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_POI", - "TARGETING_TYPE_BUSINESS_CHAIN", - "TARGETING_TYPE_CONTENT_DURATION", - "TARGETING_TYPE_CONTENT_STREAM_TYPE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION", - "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE", - "TARGETING_TYPE_CONTENT_GENRE" - ], - "enumDescriptions": [ - "Default value when type is not specified or is unknown in this version.", - "Target a channel (a custom group of related websites or apps).", - "Target an app category (for example, education or puzzle games).", - "Target a specific app (for example, Angry Birds).", - "Target a specific url (for example, quora.com).", - "Target ads during a chosen time period on a specific day.", - "Target ads to a specific age range (for example, 18-24).", - "Target ads to the specified regions on a regional location list.", - "Target ads to the specified points of interest on a proximity location list.", - "Target ads to a specific gender (for example, female or male).", - "Target a specific video player size for video ads.", - "Target user rewarded content for video ads.", - "Target ads to a specific parental status (for example, parent or not a parent).", - "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", - "Target ads in a specific content outstream position.", - "Target ads to a specific device type (for example, tablet or connected TV).", - "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", - "Target ads to specific web browsers (for example, Chrome).", - "Target ads to a specific household income range (for example, top 10%).", - "Target ads in a specific on screen position.", - "Filter web sites through third party verification (for example, IAS or DoubleVerify).", - "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", - "Filter website content by sensitive categories (for example, adult).", - "Target ads to a specific environment (for example, web or app).", - "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", - "Target ads to a specific operating system (for example, macOS).", - "Target ads to a specific device make or model (for example, Roku or Samsung).", - "Target ads to a specific keyword (for example, dog or retriever).", - "Target ads to a specific negative keyword list.", - "Target ads to a specific viewability (for example, 80% viewable).", - "Target ads to a specific content category (for example, arts & entertainment).", - "Purchase impressions from specific deals and auction packages.", - "Target ads to a specific language (for example, English or Japanese).", - "Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", - "Target ads to a specific regional location (for example, a city or state).", - "Purchase impressions from a group of deals and auction packages.", - "Purchase impressions from specific exchanges.", - "Purchase impressions from specific sub-exchanges.", - "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", - "Target ads around locations of a business chain within a specific geo region.", - "Target ads to a specific video content duration.", - "Target ads to a specific video content stream type.", - "Target ads to a specific native content position.", - "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type.", - "Target ads to a specific content genre." - ], - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}", - "response": { - "$ref": "Empty" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "get": { - "description": "Gets a single targeting option assigned to a line item.", - "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}", - "httpMethod": "GET", - "id": "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.get", - "parameterOrder": [ - "advertiserId", - "lineItemId", - "targetingType", - "assignedTargetingOptionId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser the line item belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "assignedTargetingOptionId": { - "description": "Required. An identifier unique to the targeting type in this line item that identifies the assigned targeting option being requested.", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "lineItemId": { - "description": "Required. The ID of the line item the assigned targeting option belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "targetingType": { - "description": "Required. Identifies the type of this assigned targeting option. Supported targeting types include: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_APP` * `TARGETING_TYPE_APP_CATEGORY` * `TARGETING_TYPE_AUDIENCE_GROUP` * `TARGETING_TYPE_AUDIO_CONTENT_TYPE` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_BUSINESS_CHAIN` * `TARGETING_TYPE_CARRIER_AND_ISP` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_CONTENT_DURATION` * `TARGETING_TYPE_CONTENT_GENRE` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_STREAM_TYPE` * `TARGETING_TYPE_DAY_AND_TIME` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_DEVICE_TYPE` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_KEYWORD` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_POI` * `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` * `TARGETING_TYPE_REGIONAL_LOCATION_LIST` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * `TARGETING_TYPE_URL` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_VIEWABILITY` * `TARGETING_TYPE_YOUTUBE_CHANNEL` (only for `LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_VIDEO_SEQUENCE` line items) * `TARGETING_TYPE_YOUTUBE_VIDEO` (only for `LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_VIDEO_SEQUENCE` line items)", - "enum": [ - "TARGETING_TYPE_UNSPECIFIED", - "TARGETING_TYPE_CHANNEL", - "TARGETING_TYPE_APP_CATEGORY", - "TARGETING_TYPE_APP", - "TARGETING_TYPE_URL", - "TARGETING_TYPE_DAY_AND_TIME", - "TARGETING_TYPE_AGE_RANGE", - "TARGETING_TYPE_REGIONAL_LOCATION_LIST", - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST", - "TARGETING_TYPE_GENDER", - "TARGETING_TYPE_VIDEO_PLAYER_SIZE", - "TARGETING_TYPE_USER_REWARDED_CONTENT", - "TARGETING_TYPE_PARENTAL_STATUS", - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION", - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", - "TARGETING_TYPE_DEVICE_TYPE", - "TARGETING_TYPE_AUDIENCE_GROUP", - "TARGETING_TYPE_BROWSER", - "TARGETING_TYPE_HOUSEHOLD_INCOME", - "TARGETING_TYPE_ON_SCREEN_POSITION", - "TARGETING_TYPE_THIRD_PARTY_VERIFIER", - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", - "TARGETING_TYPE_ENVIRONMENT", - "TARGETING_TYPE_CARRIER_AND_ISP", - "TARGETING_TYPE_OPERATING_SYSTEM", - "TARGETING_TYPE_DEVICE_MAKE_MODEL", - "TARGETING_TYPE_KEYWORD", - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", - "TARGETING_TYPE_VIEWABILITY", - "TARGETING_TYPE_CATEGORY", - "TARGETING_TYPE_INVENTORY_SOURCE", - "TARGETING_TYPE_LANGUAGE", - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", - "TARGETING_TYPE_GEO_REGION", - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", - "TARGETING_TYPE_EXCHANGE", - "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_POI", - "TARGETING_TYPE_BUSINESS_CHAIN", - "TARGETING_TYPE_CONTENT_DURATION", - "TARGETING_TYPE_CONTENT_STREAM_TYPE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION", - "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE", - "TARGETING_TYPE_CONTENT_GENRE" - ], - "enumDescriptions": [ - "Default value when type is not specified or is unknown in this version.", - "Target a channel (a custom group of related websites or apps).", - "Target an app category (for example, education or puzzle games).", - "Target a specific app (for example, Angry Birds).", - "Target a specific url (for example, quora.com).", - "Target ads during a chosen time period on a specific day.", - "Target ads to a specific age range (for example, 18-24).", - "Target ads to the specified regions on a regional location list.", - "Target ads to the specified points of interest on a proximity location list.", - "Target ads to a specific gender (for example, female or male).", - "Target a specific video player size for video ads.", - "Target user rewarded content for video ads.", - "Target ads to a specific parental status (for example, parent or not a parent).", - "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", - "Target ads in a specific content outstream position.", - "Target ads to a specific device type (for example, tablet or connected TV).", - "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", - "Target ads to specific web browsers (for example, Chrome).", - "Target ads to a specific household income range (for example, top 10%).", - "Target ads in a specific on screen position.", - "Filter web sites through third party verification (for example, IAS or DoubleVerify).", - "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", - "Filter website content by sensitive categories (for example, adult).", - "Target ads to a specific environment (for example, web or app).", - "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", - "Target ads to a specific operating system (for example, macOS).", - "Target ads to a specific device make or model (for example, Roku or Samsung).", - "Target ads to a specific keyword (for example, dog or retriever).", - "Target ads to a specific negative keyword list.", - "Target ads to a specific viewability (for example, 80% viewable).", - "Target ads to a specific content category (for example, arts & entertainment).", - "Purchase impressions from specific deals and auction packages.", - "Target ads to a specific language (for example, English or Japanese).", - "Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", - "Target ads to a specific regional location (for example, a city or state).", - "Purchase impressions from a group of deals and auction packages.", - "Purchase impressions from specific exchanges.", - "Purchase impressions from specific sub-exchanges.", - "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", - "Target ads around locations of a business chain within a specific geo region.", - "Target ads to a specific video content duration.", - "Target ads to a specific video content stream type.", - "Target ads to a specific native content position.", - "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type.", - "Target ads to a specific content genre." - ], - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}", - "response": { - "$ref": "AssignedTargetingOption" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "list": { - "description": "Lists the targeting options assigned to a line item.", - "flatPath": "v1/advertisers/{advertisersId}/lineItems/{lineItemsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions", - "httpMethod": "GET", - "id": "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.list", - "parameterOrder": [ - "advertiserId", - "lineItemId", - "targetingType" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser the line item belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "filter": { - "description": "Allows filtering by assigned targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `assignedTargetingOptionId` * `inheritance` Examples: * `AssignedTargetingOption` resources with ID 1 or 2: `assignedTargetingOptionId=\"1\" OR assignedTargetingOptionId=\"2\"` * `AssignedTargetingOption` resources with inheritance status of `NOT_INHERITED` or `INHERITED_FROM_PARTNER`: `inheritance=\"NOT_INHERITED\" OR inheritance=\"INHERITED_FROM_PARTNER\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "lineItemId": { - "description": "Required. The ID of the line item to list assigned targeting options for.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `assignedTargetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `assignedTargetingOptionId desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `5000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListLineItemAssignedTargetingOptions` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - }, - "targetingType": { - "description": "Required. Identifies the type of assigned targeting options to list. Supported targeting types include: * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_APP` * `TARGETING_TYPE_APP_CATEGORY` * `TARGETING_TYPE_AUDIENCE_GROUP` * `TARGETING_TYPE_AUDIO_CONTENT_TYPE` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_BUSINESS_CHAIN` * `TARGETING_TYPE_CARRIER_AND_ISP` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_CONTENT_DURATION` * `TARGETING_TYPE_CONTENT_GENRE` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_STREAM_TYPE` * `TARGETING_TYPE_DAY_AND_TIME` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_DEVICE_TYPE` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_KEYWORD` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_POI` * `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` * `TARGETING_TYPE_REGIONAL_LOCATION_LIST` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * `TARGETING_TYPE_URL` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_VIEWABILITY` * `TARGETING_TYPE_YOUTUBE_CHANNEL` (only for `LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_VIDEO_SEQUENCE` line items) * `TARGETING_TYPE_YOUTUBE_VIDEO` (only for `LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_VIDEO_SEQUENCE` line items)", - "enum": [ - "TARGETING_TYPE_UNSPECIFIED", - "TARGETING_TYPE_CHANNEL", - "TARGETING_TYPE_APP_CATEGORY", - "TARGETING_TYPE_APP", - "TARGETING_TYPE_URL", - "TARGETING_TYPE_DAY_AND_TIME", - "TARGETING_TYPE_AGE_RANGE", - "TARGETING_TYPE_REGIONAL_LOCATION_LIST", - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST", - "TARGETING_TYPE_GENDER", - "TARGETING_TYPE_VIDEO_PLAYER_SIZE", - "TARGETING_TYPE_USER_REWARDED_CONTENT", - "TARGETING_TYPE_PARENTAL_STATUS", - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION", - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", - "TARGETING_TYPE_DEVICE_TYPE", - "TARGETING_TYPE_AUDIENCE_GROUP", - "TARGETING_TYPE_BROWSER", - "TARGETING_TYPE_HOUSEHOLD_INCOME", - "TARGETING_TYPE_ON_SCREEN_POSITION", - "TARGETING_TYPE_THIRD_PARTY_VERIFIER", - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", - "TARGETING_TYPE_ENVIRONMENT", - "TARGETING_TYPE_CARRIER_AND_ISP", - "TARGETING_TYPE_OPERATING_SYSTEM", - "TARGETING_TYPE_DEVICE_MAKE_MODEL", - "TARGETING_TYPE_KEYWORD", - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", - "TARGETING_TYPE_VIEWABILITY", - "TARGETING_TYPE_CATEGORY", - "TARGETING_TYPE_INVENTORY_SOURCE", - "TARGETING_TYPE_LANGUAGE", - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", - "TARGETING_TYPE_GEO_REGION", - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", - "TARGETING_TYPE_EXCHANGE", - "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_POI", - "TARGETING_TYPE_BUSINESS_CHAIN", - "TARGETING_TYPE_CONTENT_DURATION", - "TARGETING_TYPE_CONTENT_STREAM_TYPE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION", - "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE", - "TARGETING_TYPE_CONTENT_GENRE" - ], - "enumDescriptions": [ - "Default value when type is not specified or is unknown in this version.", - "Target a channel (a custom group of related websites or apps).", - "Target an app category (for example, education or puzzle games).", - "Target a specific app (for example, Angry Birds).", - "Target a specific url (for example, quora.com).", - "Target ads during a chosen time period on a specific day.", - "Target ads to a specific age range (for example, 18-24).", - "Target ads to the specified regions on a regional location list.", - "Target ads to the specified points of interest on a proximity location list.", - "Target ads to a specific gender (for example, female or male).", - "Target a specific video player size for video ads.", - "Target user rewarded content for video ads.", - "Target ads to a specific parental status (for example, parent or not a parent).", - "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", - "Target ads in a specific content outstream position.", - "Target ads to a specific device type (for example, tablet or connected TV).", - "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", - "Target ads to specific web browsers (for example, Chrome).", - "Target ads to a specific household income range (for example, top 10%).", - "Target ads in a specific on screen position.", - "Filter web sites through third party verification (for example, IAS or DoubleVerify).", - "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", - "Filter website content by sensitive categories (for example, adult).", - "Target ads to a specific environment (for example, web or app).", - "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", - "Target ads to a specific operating system (for example, macOS).", - "Target ads to a specific device make or model (for example, Roku or Samsung).", - "Target ads to a specific keyword (for example, dog or retriever).", - "Target ads to a specific negative keyword list.", - "Target ads to a specific viewability (for example, 80% viewable).", - "Target ads to a specific content category (for example, arts & entertainment).", - "Purchase impressions from specific deals and auction packages.", - "Target ads to a specific language (for example, English or Japanese).", - "Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", - "Target ads to a specific regional location (for example, a city or state).", - "Purchase impressions from a group of deals and auction packages.", - "Purchase impressions from specific exchanges.", - "Purchase impressions from specific sub-exchanges.", - "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", - "Target ads around locations of a business chain within a specific geo region.", - "Target ads to a specific video content duration.", - "Target ads to a specific video content stream type.", - "Target ads to a specific native content position.", - "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type.", - "Target ads to a specific content genre." - ], - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/lineItems/{+lineItemId}/targetingTypes/{+targetingType}/assignedTargetingOptions", - "response": { - "$ref": "ListLineItemAssignedTargetingOptionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - } - } - } - } - } - }, - "locationLists": { - "methods": { - "create": { - "description": "Creates a new location list. Returns the newly created location list if successful.", - "flatPath": "v1/advertisers/{advertisersId}/locationLists", - "httpMethod": "POST", - "id": "displayvideo.advertisers.locationLists.create", - "parameterOrder": [ - "advertiserId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the DV360 advertiser to which the location list belongs.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/locationLists", - "request": { - "$ref": "LocationList" - }, - "response": { - "$ref": "LocationList" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "get": { - "description": "Gets a location list.", - "flatPath": "v1/advertisers/{advertisersId}/locationLists/{locationListsId}", - "httpMethod": "GET", - "id": "displayvideo.advertisers.locationLists.get", - "parameterOrder": [ - "advertiserId", - "locationListId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the DV360 advertiser to which the fetched location list belongs.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "locationListId": { - "description": "Required. The ID of the location list to fetch.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/locationLists/{+locationListId}", - "response": { - "$ref": "LocationList" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "list": { - "description": "Lists location lists based on a given advertiser id.", - "flatPath": "v1/advertisers/{advertisersId}/locationLists", - "httpMethod": "GET", - "id": "displayvideo.advertisers.locationLists.list", - "parameterOrder": [ - "advertiserId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the DV360 advertiser to which the fetched location lists belong.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "filter": { - "description": "Allows filtering by location list fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `locationType` Examples: * All regional location list: `locationType=\"TARGETING_LOCATION_TYPE_REGIONAL\"` * All proximity location list: `locationType=\"TARGETING_LOCATION_TYPE_PROXIMITY\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `locationListId` (default) * `displayName` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `200`. Defaults to `100` if not set. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListLocationLists` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/locationLists", - "response": { - "$ref": "ListLocationListsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "patch": { - "description": "Updates a location list. Returns the updated location list if successful.", - "flatPath": "v1/advertisers/{advertisersId}/locationLists/{locationListId}", - "httpMethod": "PATCH", - "id": "displayvideo.advertisers.locationLists.patch", - "parameterOrder": [ - "advertiserId", - "locationListId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the DV360 advertiser to which the location lists belongs.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "locationListId": { - "description": "Output only. The unique ID of the location list. Assigned by the system.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "updateMask": { - "description": "Required. The mask to control which fields to update.", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/locationLists/{locationListId}", - "request": { - "$ref": "LocationList" - }, - "response": { - "$ref": "LocationList" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - }, - "resources": { - "assignedLocations": { - "methods": { - "bulkEdit": { - "description": "Bulk edits multiple assignments between locations and a single location list. The operation will delete the assigned locations provided in deletedAssignedLocations and then create the assigned locations provided in createdAssignedLocations.", - "flatPath": "v1/advertisers/{advertiserId}/locationLists/{locationListsId}/assignedLocations:bulkEdit", - "httpMethod": "POST", - "id": "displayvideo.advertisers.locationLists.assignedLocations.bulkEdit", - "parameterOrder": [ - "advertiserId", - "locationListId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the DV360 advertiser to which the location list belongs.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "locationListId": { - "description": "Required. The ID of the location list to which these assignments are assigned.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{advertiserId}/locationLists/{+locationListId}/assignedLocations:bulkEdit", - "request": { - "$ref": "BulkEditAssignedLocationsRequest" - }, - "response": { - "$ref": "BulkEditAssignedLocationsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "create": { - "description": "Creates an assignment between a location and a location list.", - "flatPath": "v1/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations", - "httpMethod": "POST", - "id": "displayvideo.advertisers.locationLists.assignedLocations.create", - "parameterOrder": [ - "advertiserId", - "locationListId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the DV360 advertiser to which the location list belongs.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "locationListId": { - "description": "Required. The ID of the location list for which the assignment will be created.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations", - "request": { - "$ref": "AssignedLocation" - }, - "response": { - "$ref": "AssignedLocation" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "delete": { - "description": "Deletes the assignment between a location and a location list.", - "flatPath": "v1/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations/{assignedLocationsId}", - "httpMethod": "DELETE", - "id": "displayvideo.advertisers.locationLists.assignedLocations.delete", - "parameterOrder": [ - "advertiserId", - "locationListId", - "assignedLocationId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the DV360 advertiser to which the location list belongs.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "assignedLocationId": { - "description": "Required. The ID of the assigned location to delete.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "locationListId": { - "description": "Required. The ID of the location list to which this assignment is assigned.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations/{+assignedLocationId}", - "response": { - "$ref": "Empty" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "list": { - "description": "Lists locations assigned to a location list.", - "flatPath": "v1/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations", - "httpMethod": "GET", - "id": "displayvideo.advertisers.locationLists.assignedLocations.list", - "parameterOrder": [ - "advertiserId", - "locationListId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the DV360 advertiser to which the location list belongs.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "filter": { - "description": "Allows filtering by location list assignment fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the `OR` logical operator. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `assignedLocationId` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "locationListId": { - "description": "Required. The ID of the location list to which these assignments are assigned.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `assignedLocationId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be added to the field name. Example: `assignedLocationId desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListAssignedLocations` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - } - }, - "path": "v1/advertisers/{advertiserId}/locationLists/{locationListId}/assignedLocations", - "response": { - "$ref": "ListAssignedLocationsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - } - } - } - }, - "manualTriggers": { - "methods": { - "activate": { - "description": "Activates a manual trigger. Each activation of the manual trigger must be at least 5 minutes apart, otherwise an error will be returned. **Warning:** Line Items using manual triggers no longer serve in Display & Video 360. This method will sunset on August 1, 2023. Read our [feature deprecation announcement](/display-video/api/deprecations#features.manual_triggers) for more information.", - "flatPath": "v1/advertisers/{advertisersId}/manualTriggers/{manualTriggersId}:activate", - "httpMethod": "POST", - "id": "displayvideo.advertisers.manualTriggers.activate", - "parameterOrder": [ - "advertiserId", - "triggerId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser that the manual trigger belongs.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "triggerId": { - "description": "Required. The ID of the manual trigger to activate.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/manualTriggers/{+triggerId}:activate", - "request": { - "$ref": "ActivateManualTriggerRequest" - }, - "response": { - "$ref": "ManualTrigger" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "create": { - "description": "Creates a new manual trigger. Returns the newly created manual trigger if successful. **Warning:** Line Items using manual triggers no longer serve in Display & Video 360. This method will sunset on August 1, 2023. Read our [feature deprecation announcement](/display-video/api/deprecations#features.manual_triggers) for more information.", - "flatPath": "v1/advertisers/{advertisersId}/manualTriggers", - "httpMethod": "POST", - "id": "displayvideo.advertisers.manualTriggers.create", - "parameterOrder": [ - "advertiserId" - ], - "parameters": { - "advertiserId": { - "description": "Required. Immutable. The unique ID of the advertiser that the manual trigger belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/manualTriggers", - "request": { - "$ref": "ManualTrigger" - }, - "response": { - "$ref": "ManualTrigger" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "deactivate": { - "description": "Deactivates a manual trigger. **Warning:** Line Items using manual triggers no longer serve in Display & Video 360. This method will sunset on August 1, 2023. Read our [feature deprecation announcement](/display-video/api/deprecations#features.manual_triggers) for more information.", - "flatPath": "v1/advertisers/{advertisersId}/manualTriggers/{manualTriggersId}:deactivate", - "httpMethod": "POST", - "id": "displayvideo.advertisers.manualTriggers.deactivate", - "parameterOrder": [ - "advertiserId", - "triggerId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser that the manual trigger belongs.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "triggerId": { - "description": "Required. The ID of the manual trigger to deactivate.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/manualTriggers/{+triggerId}:deactivate", - "request": { - "$ref": "DeactivateManualTriggerRequest" - }, - "response": { - "$ref": "ManualTrigger" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "get": { - "description": "Gets a manual trigger. **Warning:** Line Items using manual triggers no longer serve in Display & Video 360. This method will sunset on August 1, 2023. Read our [feature deprecation announcement](/display-video/api/deprecations#features.manual_triggers) for more information.", - "flatPath": "v1/advertisers/{advertisersId}/manualTriggers/{manualTriggersId}", - "httpMethod": "GET", - "id": "displayvideo.advertisers.manualTriggers.get", - "parameterOrder": [ - "advertiserId", - "triggerId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser this manual trigger belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "triggerId": { - "description": "Required. The ID of the manual trigger to fetch.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/manualTriggers/{+triggerId}", - "response": { - "$ref": "ManualTrigger" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "list": { - "description": "Lists manual triggers that are accessible to the current user for a given advertiser ID. The order is defined by the order_by parameter. A single advertiser_id is required. **Warning:** Line Items using manual triggers no longer serve in Display & Video 360. This method will sunset on August 1, 2023. Read our [feature deprecation announcement](/display-video/api/deprecations#features.manual_triggers) for more information.", - "flatPath": "v1/advertisers/{advertisersId}/manualTriggers", - "httpMethod": "GET", - "id": "displayvideo.advertisers.manualTriggers.list", - "parameterOrder": [ - "advertiserId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser that the fetched manual triggers belong to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "filter": { - "description": "Allows filtering by manual trigger fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `displayName` * `state` Examples: * All active manual triggers under an advertiser: `state=\"ACTIVE\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) * `state` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. For example, `displayName desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListManualTriggers` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/manualTriggers", - "response": { - "$ref": "ListManualTriggersResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "patch": { - "description": "Updates a manual trigger. Returns the updated manual trigger if successful. **Warning:** Line Items using manual triggers no longer serve in Display & Video 360. This method will sunset on August 1, 2023. Read our [feature deprecation announcement](/display-video/api/deprecations#features.manual_triggers) for more information.", - "flatPath": "v1/advertisers/{advertisersId}/manualTriggers/{manualTriggersId}", - "httpMethod": "PATCH", - "id": "displayvideo.advertisers.manualTriggers.patch", - "parameterOrder": [ - "advertiserId", - "triggerId" - ], - "parameters": { - "advertiserId": { - "description": "Required. Immutable. The unique ID of the advertiser that the manual trigger belongs to.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "triggerId": { - "description": "Output only. The unique ID of the manual trigger.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "updateMask": { - "description": "Required. The mask to control which fields to update.", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/manualTriggers/{+triggerId}", - "request": { - "$ref": "ManualTrigger" - }, - "response": { - "$ref": "ManualTrigger" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - } - }, - "negativeKeywordLists": { - "methods": { - "create": { - "description": "Creates a new negative keyword list. Returns the newly created negative keyword list if successful.", - "flatPath": "v1/advertisers/{advertisersId}/negativeKeywordLists", - "httpMethod": "POST", - "id": "displayvideo.advertisers.negativeKeywordLists.create", - "parameterOrder": [ - "advertiserId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the DV360 advertiser to which the negative keyword list will belong.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/negativeKeywordLists", - "request": { - "$ref": "NegativeKeywordList" - }, - "response": { - "$ref": "NegativeKeywordList" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "delete": { - "description": "Deletes a negative keyword list given an advertiser ID and a negative keyword list ID.", - "flatPath": "v1/advertisers/{advertisersId}/negativeKeywordLists/{negativeKeywordListsId}", - "httpMethod": "DELETE", - "id": "displayvideo.advertisers.negativeKeywordLists.delete", - "parameterOrder": [ - "advertiserId", - "negativeKeywordListId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the DV360 advertiser to which the negative keyword list belongs.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "negativeKeywordListId": { - "description": "Required. The ID of the negative keyword list to delete.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/negativeKeywordLists/{+negativeKeywordListId}", - "response": { - "$ref": "Empty" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "get": { - "description": "Gets a negative keyword list given an advertiser ID and a negative keyword list ID.", - "flatPath": "v1/advertisers/{advertisersId}/negativeKeywordLists/{negativeKeywordListsId}", - "httpMethod": "GET", - "id": "displayvideo.advertisers.negativeKeywordLists.get", - "parameterOrder": [ - "advertiserId", - "negativeKeywordListId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the DV360 advertiser to which the fetched negative keyword list belongs.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "negativeKeywordListId": { - "description": "Required. The ID of the negative keyword list to fetch.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/negativeKeywordLists/{+negativeKeywordListId}", - "response": { - "$ref": "NegativeKeywordList" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "list": { - "description": "Lists negative keyword lists based on a given advertiser id.", - "flatPath": "v1/advertisers/{advertisersId}/negativeKeywordLists", - "httpMethod": "GET", - "id": "displayvideo.advertisers.negativeKeywordLists.list", - "parameterOrder": [ - "advertiserId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the DV360 advertiser to which the fetched negative keyword lists belong.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `200`. Defaults to `100` if not set. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListNegativeKeywordLists` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/negativeKeywordLists", - "response": { - "$ref": "ListNegativeKeywordListsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "patch": { - "description": "Updates a negative keyword list. Returns the updated negative keyword list if successful.", - "flatPath": "v1/advertisers/{advertisersId}/negativeKeywordLists/{negativeKeywordListId}", - "httpMethod": "PATCH", - "id": "displayvideo.advertisers.negativeKeywordLists.patch", - "parameterOrder": [ - "advertiserId", - "negativeKeywordListId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the DV360 advertiser to which the negative keyword list belongs.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "negativeKeywordListId": { - "description": "Output only. The unique ID of the negative keyword list. Assigned by the system.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "updateMask": { - "description": "Required. The mask to control which fields to update.", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/negativeKeywordLists/{negativeKeywordListId}", - "request": { - "$ref": "NegativeKeywordList" - }, - "response": { - "$ref": "NegativeKeywordList" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - }, - "resources": { - "negativeKeywords": { - "methods": { - "bulkEdit": { - "description": "Bulk edits negative keywords in a single negative keyword list. The operation will delete the negative keywords provided in BulkEditNegativeKeywordsRequest.deleted_negative_keywords and then create the negative keywords provided in BulkEditNegativeKeywordsRequest.created_negative_keywords. This operation is guaranteed to be atomic and will never result in a partial success or partial failure.", - "flatPath": "v1/advertisers/{advertiserId}/negativeKeywordLists/{negativeKeywordListsId}/negativeKeywords:bulkEdit", - "httpMethod": "POST", - "id": "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.bulkEdit", - "parameterOrder": [ - "advertiserId", - "negativeKeywordListId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the DV360 advertiser to which the parent negative keyword list belongs.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "negativeKeywordListId": { - "description": "Required. The ID of the parent negative keyword list to which the negative keywords belong.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords:bulkEdit", - "request": { - "$ref": "BulkEditNegativeKeywordsRequest" - }, - "response": { - "$ref": "BulkEditNegativeKeywordsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "create": { - "description": "Creates a negative keyword in a negative keyword list.", - "flatPath": "v1/advertisers/{advertiserId}/negativeKeywordLists/{negativeKeywordListsId}/negativeKeywords", - "httpMethod": "POST", - "id": "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.create", - "parameterOrder": [ - "advertiserId", - "negativeKeywordListId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the DV360 advertiser to which the parent negative keyword list belongs.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "negativeKeywordListId": { - "description": "Required. The ID of the parent negative keyword list in which the negative keyword will be created.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords", - "request": { - "$ref": "NegativeKeyword" - }, - "response": { - "$ref": "NegativeKeyword" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "delete": { - "description": "Deletes a negative keyword from a negative keyword list.", - "flatPath": "v1/advertisers/{advertiserId}/negativeKeywordLists/{negativeKeywordListsId}/negativeKeywords/{negativeKeywordsId}", - "httpMethod": "DELETE", - "id": "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.delete", - "parameterOrder": [ - "advertiserId", - "negativeKeywordListId", - "keywordValue" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the DV360 advertiser to which the parent negative keyword list belongs.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "keywordValue": { - "description": "Required. The keyword value of the negative keyword to delete.", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "negativeKeywordListId": { - "description": "Required. The ID of the parent negative keyword list to which the negative keyword belongs.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords/{+keywordValue}", - "response": { - "$ref": "Empty" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "list": { - "description": "Lists negative keywords in a negative keyword list.", - "flatPath": "v1/advertisers/{advertisersId}/negativeKeywordLists/{negativeKeywordListsId}/negativeKeywords", - "httpMethod": "GET", - "id": "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.list", - "parameterOrder": [ - "advertiserId", - "negativeKeywordListId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the DV360 advertiser to which the parent negative keyword list belongs.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "filter": { - "description": "Allows filtering by negative keyword fields. Supported syntax: * Filter expressions for negative keywords can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `HAS (:)` operator. Supported fields: * `keywordValue` Examples: * All negative keywords for which the keyword value contains \"google\": `keywordValue : \"google\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "negativeKeywordListId": { - "description": "Required. The ID of the parent negative keyword list to which the requested negative keywords belong.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `keywordValue` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be added to the field name. Example: `keywordValue desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `1000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListNegativeKeywords` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords", - "response": { - "$ref": "ListNegativeKeywordsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "replace": { - "description": "Replaces all negative keywords in a single negative keyword list. The operation will replace the keywords in a negative keyword list with keywords provided in ReplaceNegativeKeywordsRequest.new_negative_keywords.", - "flatPath": "v1/advertisers/{advertiserId}/negativeKeywordLists/{negativeKeywordListsId}/negativeKeywords:replace", - "httpMethod": "POST", - "id": "displayvideo.advertisers.negativeKeywordLists.negativeKeywords.replace", - "parameterOrder": [ - "advertiserId", - "negativeKeywordListId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the DV360 advertiser to which the parent negative keyword list belongs.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "negativeKeywordListId": { - "description": "Required. The ID of the parent negative keyword list to which the negative keywords belong.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{advertiserId}/negativeKeywordLists/{+negativeKeywordListId}/negativeKeywords:replace", - "request": { - "$ref": "ReplaceNegativeKeywordsRequest" - }, - "response": { - "$ref": "ReplaceNegativeKeywordsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - } - } - } - }, - "targetingTypes": { - "resources": { - "assignedTargetingOptions": { - "methods": { - "create": { - "description": "Assigns a targeting option to an advertiser. Returns the assigned targeting option if successful.", - "flatPath": "v1/advertisers/{advertisersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions", - "httpMethod": "POST", - "id": "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.create", - "parameterOrder": [ - "advertiserId", - "targetingType" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "targetingType": { - "description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`", - "enum": [ - "TARGETING_TYPE_UNSPECIFIED", - "TARGETING_TYPE_CHANNEL", - "TARGETING_TYPE_APP_CATEGORY", - "TARGETING_TYPE_APP", - "TARGETING_TYPE_URL", - "TARGETING_TYPE_DAY_AND_TIME", - "TARGETING_TYPE_AGE_RANGE", - "TARGETING_TYPE_REGIONAL_LOCATION_LIST", - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST", - "TARGETING_TYPE_GENDER", - "TARGETING_TYPE_VIDEO_PLAYER_SIZE", - "TARGETING_TYPE_USER_REWARDED_CONTENT", - "TARGETING_TYPE_PARENTAL_STATUS", - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION", - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", - "TARGETING_TYPE_DEVICE_TYPE", - "TARGETING_TYPE_AUDIENCE_GROUP", - "TARGETING_TYPE_BROWSER", - "TARGETING_TYPE_HOUSEHOLD_INCOME", - "TARGETING_TYPE_ON_SCREEN_POSITION", - "TARGETING_TYPE_THIRD_PARTY_VERIFIER", - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", - "TARGETING_TYPE_ENVIRONMENT", - "TARGETING_TYPE_CARRIER_AND_ISP", - "TARGETING_TYPE_OPERATING_SYSTEM", - "TARGETING_TYPE_DEVICE_MAKE_MODEL", - "TARGETING_TYPE_KEYWORD", - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", - "TARGETING_TYPE_VIEWABILITY", - "TARGETING_TYPE_CATEGORY", - "TARGETING_TYPE_INVENTORY_SOURCE", - "TARGETING_TYPE_LANGUAGE", - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", - "TARGETING_TYPE_GEO_REGION", - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", - "TARGETING_TYPE_EXCHANGE", - "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_POI", - "TARGETING_TYPE_BUSINESS_CHAIN", - "TARGETING_TYPE_CONTENT_DURATION", - "TARGETING_TYPE_CONTENT_STREAM_TYPE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION", - "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE", - "TARGETING_TYPE_CONTENT_GENRE" - ], - "enumDescriptions": [ - "Default value when type is not specified or is unknown in this version.", - "Target a channel (a custom group of related websites or apps).", - "Target an app category (for example, education or puzzle games).", - "Target a specific app (for example, Angry Birds).", - "Target a specific url (for example, quora.com).", - "Target ads during a chosen time period on a specific day.", - "Target ads to a specific age range (for example, 18-24).", - "Target ads to the specified regions on a regional location list.", - "Target ads to the specified points of interest on a proximity location list.", - "Target ads to a specific gender (for example, female or male).", - "Target a specific video player size for video ads.", - "Target user rewarded content for video ads.", - "Target ads to a specific parental status (for example, parent or not a parent).", - "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", - "Target ads in a specific content outstream position.", - "Target ads to a specific device type (for example, tablet or connected TV).", - "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", - "Target ads to specific web browsers (for example, Chrome).", - "Target ads to a specific household income range (for example, top 10%).", - "Target ads in a specific on screen position.", - "Filter web sites through third party verification (for example, IAS or DoubleVerify).", - "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", - "Filter website content by sensitive categories (for example, adult).", - "Target ads to a specific environment (for example, web or app).", - "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", - "Target ads to a specific operating system (for example, macOS).", - "Target ads to a specific device make or model (for example, Roku or Samsung).", - "Target ads to a specific keyword (for example, dog or retriever).", - "Target ads to a specific negative keyword list.", - "Target ads to a specific viewability (for example, 80% viewable).", - "Target ads to a specific content category (for example, arts & entertainment).", - "Purchase impressions from specific deals and auction packages.", - "Target ads to a specific language (for example, English or Japanese).", - "Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", - "Target ads to a specific regional location (for example, a city or state).", - "Purchase impressions from a group of deals and auction packages.", - "Purchase impressions from specific exchanges.", - "Purchase impressions from specific sub-exchanges.", - "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", - "Target ads around locations of a business chain within a specific geo region.", - "Target ads to a specific video content duration.", - "Target ads to a specific video content stream type.", - "Target ads to a specific native content position.", - "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type.", - "Target ads to a specific content genre." - ], - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/targetingTypes/{+targetingType}/assignedTargetingOptions", - "request": { - "$ref": "AssignedTargetingOption" - }, - "response": { - "$ref": "AssignedTargetingOption" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "delete": { - "description": "Deletes an assigned targeting option from an advertiser.", - "flatPath": "v1/advertisers/{advertisersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}", - "httpMethod": "DELETE", - "id": "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.delete", - "parameterOrder": [ - "advertiserId", - "targetingType", - "assignedTargetingOptionId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "assignedTargetingOptionId": { - "description": "Required. The ID of the assigned targeting option to delete.", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "targetingType": { - "description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`", - "enum": [ - "TARGETING_TYPE_UNSPECIFIED", - "TARGETING_TYPE_CHANNEL", - "TARGETING_TYPE_APP_CATEGORY", - "TARGETING_TYPE_APP", - "TARGETING_TYPE_URL", - "TARGETING_TYPE_DAY_AND_TIME", - "TARGETING_TYPE_AGE_RANGE", - "TARGETING_TYPE_REGIONAL_LOCATION_LIST", - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST", - "TARGETING_TYPE_GENDER", - "TARGETING_TYPE_VIDEO_PLAYER_SIZE", - "TARGETING_TYPE_USER_REWARDED_CONTENT", - "TARGETING_TYPE_PARENTAL_STATUS", - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION", - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", - "TARGETING_TYPE_DEVICE_TYPE", - "TARGETING_TYPE_AUDIENCE_GROUP", - "TARGETING_TYPE_BROWSER", - "TARGETING_TYPE_HOUSEHOLD_INCOME", - "TARGETING_TYPE_ON_SCREEN_POSITION", - "TARGETING_TYPE_THIRD_PARTY_VERIFIER", - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", - "TARGETING_TYPE_ENVIRONMENT", - "TARGETING_TYPE_CARRIER_AND_ISP", - "TARGETING_TYPE_OPERATING_SYSTEM", - "TARGETING_TYPE_DEVICE_MAKE_MODEL", - "TARGETING_TYPE_KEYWORD", - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", - "TARGETING_TYPE_VIEWABILITY", - "TARGETING_TYPE_CATEGORY", - "TARGETING_TYPE_INVENTORY_SOURCE", - "TARGETING_TYPE_LANGUAGE", - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", - "TARGETING_TYPE_GEO_REGION", - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", - "TARGETING_TYPE_EXCHANGE", - "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_POI", - "TARGETING_TYPE_BUSINESS_CHAIN", - "TARGETING_TYPE_CONTENT_DURATION", - "TARGETING_TYPE_CONTENT_STREAM_TYPE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION", - "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE", - "TARGETING_TYPE_CONTENT_GENRE" - ], - "enumDescriptions": [ - "Default value when type is not specified or is unknown in this version.", - "Target a channel (a custom group of related websites or apps).", - "Target an app category (for example, education or puzzle games).", - "Target a specific app (for example, Angry Birds).", - "Target a specific url (for example, quora.com).", - "Target ads during a chosen time period on a specific day.", - "Target ads to a specific age range (for example, 18-24).", - "Target ads to the specified regions on a regional location list.", - "Target ads to the specified points of interest on a proximity location list.", - "Target ads to a specific gender (for example, female or male).", - "Target a specific video player size for video ads.", - "Target user rewarded content for video ads.", - "Target ads to a specific parental status (for example, parent or not a parent).", - "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", - "Target ads in a specific content outstream position.", - "Target ads to a specific device type (for example, tablet or connected TV).", - "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", - "Target ads to specific web browsers (for example, Chrome).", - "Target ads to a specific household income range (for example, top 10%).", - "Target ads in a specific on screen position.", - "Filter web sites through third party verification (for example, IAS or DoubleVerify).", - "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", - "Filter website content by sensitive categories (for example, adult).", - "Target ads to a specific environment (for example, web or app).", - "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", - "Target ads to a specific operating system (for example, macOS).", - "Target ads to a specific device make or model (for example, Roku or Samsung).", - "Target ads to a specific keyword (for example, dog or retriever).", - "Target ads to a specific negative keyword list.", - "Target ads to a specific viewability (for example, 80% viewable).", - "Target ads to a specific content category (for example, arts & entertainment).", - "Purchase impressions from specific deals and auction packages.", - "Target ads to a specific language (for example, English or Japanese).", - "Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", - "Target ads to a specific regional location (for example, a city or state).", - "Purchase impressions from a group of deals and auction packages.", - "Purchase impressions from specific exchanges.", - "Purchase impressions from specific sub-exchanges.", - "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", - "Target ads around locations of a business chain within a specific geo region.", - "Target ads to a specific video content duration.", - "Target ads to a specific video content stream type.", - "Target ads to a specific native content position.", - "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type.", - "Target ads to a specific content genre." - ], - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}", - "response": { - "$ref": "Empty" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "get": { - "description": "Gets a single targeting option assigned to an advertiser.", - "flatPath": "v1/advertisers/{advertisersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}", - "httpMethod": "GET", - "id": "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.get", - "parameterOrder": [ - "advertiserId", - "targetingType", - "assignedTargetingOptionId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "assignedTargetingOptionId": { - "description": "Required. An identifier unique to the targeting type in this advertiser that identifies the assigned targeting option being requested.", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "targetingType": { - "description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_YOUTUBE_VIDEO` * `TARGETING_TYPE_YOUTUBE_CHANNEL`", - "enum": [ - "TARGETING_TYPE_UNSPECIFIED", - "TARGETING_TYPE_CHANNEL", - "TARGETING_TYPE_APP_CATEGORY", - "TARGETING_TYPE_APP", - "TARGETING_TYPE_URL", - "TARGETING_TYPE_DAY_AND_TIME", - "TARGETING_TYPE_AGE_RANGE", - "TARGETING_TYPE_REGIONAL_LOCATION_LIST", - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST", - "TARGETING_TYPE_GENDER", - "TARGETING_TYPE_VIDEO_PLAYER_SIZE", - "TARGETING_TYPE_USER_REWARDED_CONTENT", - "TARGETING_TYPE_PARENTAL_STATUS", - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION", - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", - "TARGETING_TYPE_DEVICE_TYPE", - "TARGETING_TYPE_AUDIENCE_GROUP", - "TARGETING_TYPE_BROWSER", - "TARGETING_TYPE_HOUSEHOLD_INCOME", - "TARGETING_TYPE_ON_SCREEN_POSITION", - "TARGETING_TYPE_THIRD_PARTY_VERIFIER", - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", - "TARGETING_TYPE_ENVIRONMENT", - "TARGETING_TYPE_CARRIER_AND_ISP", - "TARGETING_TYPE_OPERATING_SYSTEM", - "TARGETING_TYPE_DEVICE_MAKE_MODEL", - "TARGETING_TYPE_KEYWORD", - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", - "TARGETING_TYPE_VIEWABILITY", - "TARGETING_TYPE_CATEGORY", - "TARGETING_TYPE_INVENTORY_SOURCE", - "TARGETING_TYPE_LANGUAGE", - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", - "TARGETING_TYPE_GEO_REGION", - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", - "TARGETING_TYPE_EXCHANGE", - "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_POI", - "TARGETING_TYPE_BUSINESS_CHAIN", - "TARGETING_TYPE_CONTENT_DURATION", - "TARGETING_TYPE_CONTENT_STREAM_TYPE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION", - "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE", - "TARGETING_TYPE_CONTENT_GENRE" - ], - "enumDescriptions": [ - "Default value when type is not specified or is unknown in this version.", - "Target a channel (a custom group of related websites or apps).", - "Target an app category (for example, education or puzzle games).", - "Target a specific app (for example, Angry Birds).", - "Target a specific url (for example, quora.com).", - "Target ads during a chosen time period on a specific day.", - "Target ads to a specific age range (for example, 18-24).", - "Target ads to the specified regions on a regional location list.", - "Target ads to the specified points of interest on a proximity location list.", - "Target ads to a specific gender (for example, female or male).", - "Target a specific video player size for video ads.", - "Target user rewarded content for video ads.", - "Target ads to a specific parental status (for example, parent or not a parent).", - "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", - "Target ads in a specific content outstream position.", - "Target ads to a specific device type (for example, tablet or connected TV).", - "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", - "Target ads to specific web browsers (for example, Chrome).", - "Target ads to a specific household income range (for example, top 10%).", - "Target ads in a specific on screen position.", - "Filter web sites through third party verification (for example, IAS or DoubleVerify).", - "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", - "Filter website content by sensitive categories (for example, adult).", - "Target ads to a specific environment (for example, web or app).", - "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", - "Target ads to a specific operating system (for example, macOS).", - "Target ads to a specific device make or model (for example, Roku or Samsung).", - "Target ads to a specific keyword (for example, dog or retriever).", - "Target ads to a specific negative keyword list.", - "Target ads to a specific viewability (for example, 80% viewable).", - "Target ads to a specific content category (for example, arts & entertainment).", - "Purchase impressions from specific deals and auction packages.", - "Target ads to a specific language (for example, English or Japanese).", - "Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", - "Target ads to a specific regional location (for example, a city or state).", - "Purchase impressions from a group of deals and auction packages.", - "Purchase impressions from specific exchanges.", - "Purchase impressions from specific sub-exchanges.", - "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", - "Target ads around locations of a business chain within a specific geo region.", - "Target ads to a specific video content duration.", - "Target ads to a specific video content stream type.", - "Target ads to a specific native content position.", - "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type.", - "Target ads to a specific content genre." - ], - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}", - "response": { - "$ref": "AssignedTargetingOption" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "list": { - "description": "Lists the targeting options assigned to an advertiser.", - "flatPath": "v1/advertisers/{advertisersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions", - "httpMethod": "GET", - "id": "displayvideo.advertisers.targetingTypes.assignedTargetingOptions.list", - "parameterOrder": [ - "advertiserId", - "targetingType" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "filter": { - "description": "Allows filtering by assigned targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the `OR` logical operator. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `assignedTargetingOptionId` Examples: * `AssignedTargetingOption` with ID 123456: `assignedTargetingOptionId=\"123456\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `assignedTargetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `assignedTargetingOptionId desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `5000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListAdvertiserAssignedTargetingOptions` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - }, - "targetingType": { - "description": "Required. Identifies the type of assigned targeting options to list. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_YOUTUBE_VIDEO` * `TARGETING_TYPE_YOUTUBE_CHANNEL`", - "enum": [ - "TARGETING_TYPE_UNSPECIFIED", - "TARGETING_TYPE_CHANNEL", - "TARGETING_TYPE_APP_CATEGORY", - "TARGETING_TYPE_APP", - "TARGETING_TYPE_URL", - "TARGETING_TYPE_DAY_AND_TIME", - "TARGETING_TYPE_AGE_RANGE", - "TARGETING_TYPE_REGIONAL_LOCATION_LIST", - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST", - "TARGETING_TYPE_GENDER", - "TARGETING_TYPE_VIDEO_PLAYER_SIZE", - "TARGETING_TYPE_USER_REWARDED_CONTENT", - "TARGETING_TYPE_PARENTAL_STATUS", - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION", - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", - "TARGETING_TYPE_DEVICE_TYPE", - "TARGETING_TYPE_AUDIENCE_GROUP", - "TARGETING_TYPE_BROWSER", - "TARGETING_TYPE_HOUSEHOLD_INCOME", - "TARGETING_TYPE_ON_SCREEN_POSITION", - "TARGETING_TYPE_THIRD_PARTY_VERIFIER", - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", - "TARGETING_TYPE_ENVIRONMENT", - "TARGETING_TYPE_CARRIER_AND_ISP", - "TARGETING_TYPE_OPERATING_SYSTEM", - "TARGETING_TYPE_DEVICE_MAKE_MODEL", - "TARGETING_TYPE_KEYWORD", - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", - "TARGETING_TYPE_VIEWABILITY", - "TARGETING_TYPE_CATEGORY", - "TARGETING_TYPE_INVENTORY_SOURCE", - "TARGETING_TYPE_LANGUAGE", - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", - "TARGETING_TYPE_GEO_REGION", - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", - "TARGETING_TYPE_EXCHANGE", - "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_POI", - "TARGETING_TYPE_BUSINESS_CHAIN", - "TARGETING_TYPE_CONTENT_DURATION", - "TARGETING_TYPE_CONTENT_STREAM_TYPE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION", - "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE", - "TARGETING_TYPE_CONTENT_GENRE" - ], - "enumDescriptions": [ - "Default value when type is not specified or is unknown in this version.", - "Target a channel (a custom group of related websites or apps).", - "Target an app category (for example, education or puzzle games).", - "Target a specific app (for example, Angry Birds).", - "Target a specific url (for example, quora.com).", - "Target ads during a chosen time period on a specific day.", - "Target ads to a specific age range (for example, 18-24).", - "Target ads to the specified regions on a regional location list.", - "Target ads to the specified points of interest on a proximity location list.", - "Target ads to a specific gender (for example, female or male).", - "Target a specific video player size for video ads.", - "Target user rewarded content for video ads.", - "Target ads to a specific parental status (for example, parent or not a parent).", - "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", - "Target ads in a specific content outstream position.", - "Target ads to a specific device type (for example, tablet or connected TV).", - "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", - "Target ads to specific web browsers (for example, Chrome).", - "Target ads to a specific household income range (for example, top 10%).", - "Target ads in a specific on screen position.", - "Filter web sites through third party verification (for example, IAS or DoubleVerify).", - "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", - "Filter website content by sensitive categories (for example, adult).", - "Target ads to a specific environment (for example, web or app).", - "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", - "Target ads to a specific operating system (for example, macOS).", - "Target ads to a specific device make or model (for example, Roku or Samsung).", - "Target ads to a specific keyword (for example, dog or retriever).", - "Target ads to a specific negative keyword list.", - "Target ads to a specific viewability (for example, 80% viewable).", - "Target ads to a specific content category (for example, arts & entertainment).", - "Purchase impressions from specific deals and auction packages.", - "Target ads to a specific language (for example, English or Japanese).", - "Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", - "Target ads to a specific regional location (for example, a city or state).", - "Purchase impressions from a group of deals and auction packages.", - "Purchase impressions from specific exchanges.", - "Purchase impressions from specific sub-exchanges.", - "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", - "Target ads around locations of a business chain within a specific geo region.", - "Target ads to a specific video content duration.", - "Target ads to a specific video content stream type.", - "Target ads to a specific native content position.", - "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type.", - "Target ads to a specific content genre." - ], - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/advertisers/{+advertiserId}/targetingTypes/{+targetingType}/assignedTargetingOptions", - "response": { - "$ref": "ListAdvertiserAssignedTargetingOptionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - } - } - } - } - } - }, - "combinedAudiences": { - "methods": { - "get": { - "description": "Gets a combined audience.", - "flatPath": "v1/combinedAudiences/{combinedAudiencesId}", - "httpMethod": "GET", - "id": "displayvideo.combinedAudiences.get", - "parameterOrder": [ - "combinedAudienceId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that has access to the fetched combined audience.", - "format": "int64", - "location": "query", - "type": "string" - }, - "combinedAudienceId": { - "description": "Required. The ID of the combined audience to fetch.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that has access to the fetched combined audience.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/combinedAudiences/{+combinedAudienceId}", - "response": { - "$ref": "CombinedAudience" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "list": { - "description": "Lists combined audiences. The order is defined by the order_by parameter.", - "flatPath": "v1/combinedAudiences", - "httpMethod": "GET", - "id": "displayvideo.combinedAudiences.list", - "parameterOrder": [], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that has access to the fetched combined audiences.", - "format": "int64", - "location": "query", - "type": "string" - }, - "filter": { - "description": "Allows filtering by combined audience fields. Supported syntax: * Filter expressions for combined audiences can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `HAS (:)` operator. Supported fields: * `displayName` Examples: * All combined audiences for which the display name contains \"Google\": `displayName : \"Google\"`. The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `combinedAudienceId` (default) * `displayName` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListCombinedAudiences` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that has access to the fetched combined audiences.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/combinedAudiences", - "response": { - "$ref": "ListCombinedAudiencesResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - } - }, - "customBiddingAlgorithms": { - "methods": { - "create": { - "description": "Creates a new custom bidding algorithm. Returns the newly created custom bidding algorithm if successful.", - "flatPath": "v1/customBiddingAlgorithms", - "httpMethod": "POST", - "id": "displayvideo.customBiddingAlgorithms.create", - "parameterOrder": [], - "parameters": {}, - "path": "v1/customBiddingAlgorithms", - "request": { - "$ref": "CustomBiddingAlgorithm" - }, - "response": { - "$ref": "CustomBiddingAlgorithm" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "get": { - "description": "Gets a custom bidding algorithm.", - "flatPath": "v1/customBiddingAlgorithms/{customBiddingAlgorithmsId}", - "httpMethod": "GET", - "id": "displayvideo.customBiddingAlgorithms.get", - "parameterOrder": [ - "customBiddingAlgorithmId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the DV360 partner that has access to the custom bidding algorithm.", - "format": "int64", - "location": "query", - "type": "string" - }, - "customBiddingAlgorithmId": { - "description": "Required. The ID of the custom bidding algorithm to fetch.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "partnerId": { - "description": "The ID of the DV360 partner that has access to the custom bidding algorithm.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/customBiddingAlgorithms/{+customBiddingAlgorithmId}", - "response": { - "$ref": "CustomBiddingAlgorithm" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "list": { - "description": "Lists custom bidding algorithms that are accessible to the current user and can be used in bidding stratgies. The order is defined by the order_by parameter.", - "flatPath": "v1/customBiddingAlgorithms", - "httpMethod": "GET", - "id": "displayvideo.customBiddingAlgorithms.list", - "parameterOrder": [], - "parameters": { - "advertiserId": { - "description": "The ID of the DV360 advertiser that has access to the custom bidding algorithm.", - "format": "int64", - "location": "query", - "type": "string" - }, - "filter": { - "description": "Allows filtering by custom bidding algorithm fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND`. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * The `customBiddingAlgorithmType` field must use the `EQUALS (=)` operator. * The `displayName` field must use the `HAS (:)` operator. Supported fields: * `customBiddingAlgorithmType` * `displayName` Examples: * All custom bidding algorithms for which the display name contains \"politics\": `displayName:\"politics\"`. * All custom bidding algorithms for which the type is \"SCRIPT_BASED\": `customBiddingAlgorithmType=SCRIPT_BASED` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListCustomBiddingAlgorithms` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - }, - "partnerId": { - "description": "The ID of the DV360 partner that has access to the custom bidding algorithm.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/customBiddingAlgorithms", - "response": { - "$ref": "ListCustomBiddingAlgorithmsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "patch": { - "description": "Updates an existing custom bidding algorithm. Returns the updated custom bidding algorithm if successful.", - "flatPath": "v1/customBiddingAlgorithms/{customBiddingAlgorithmsId}", - "httpMethod": "PATCH", - "id": "displayvideo.customBiddingAlgorithms.patch", - "parameterOrder": [ - "customBiddingAlgorithmId" - ], - "parameters": { - "customBiddingAlgorithmId": { - "description": "Output only. The unique ID of the custom bidding algorithm. Assigned by the system.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "updateMask": { - "description": "Required. The mask to control which fields to update.", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1/customBiddingAlgorithms/{+customBiddingAlgorithmId}", - "request": { - "$ref": "CustomBiddingAlgorithm" - }, - "response": { - "$ref": "CustomBiddingAlgorithm" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "uploadScript": { - "description": "Creates a custom bidding script reference object for a script file. The resulting reference object provides a resource path to which the script file should be uploaded. This reference object should be included in when creating a new custom bidding script object.", - "flatPath": "v1/customBiddingAlgorithms/{customBiddingAlgorithmsId}:uploadScript", - "httpMethod": "GET", - "id": "displayvideo.customBiddingAlgorithms.uploadScript", - "parameterOrder": [ - "customBiddingAlgorithmId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that owns the parent custom bidding algorithm.", - "format": "int64", - "location": "query", - "type": "string" - }, - "customBiddingAlgorithmId": { - "description": "Required. The ID of the custom bidding algorithm owns the script.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that owns the parent custom bidding algorithm. Only this partner will have write access to this custom bidding script.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/customBiddingAlgorithms/{+customBiddingAlgorithmId}:uploadScript", - "response": { - "$ref": "CustomBiddingScriptRef" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - }, - "resources": { - "scripts": { - "methods": { - "create": { - "description": "Creates a new custom bidding script. Returns the newly created script if successful.", - "flatPath": "v1/customBiddingAlgorithms/{customBiddingAlgorithmsId}/scripts", - "httpMethod": "POST", - "id": "displayvideo.customBiddingAlgorithms.scripts.create", - "parameterOrder": [ - "customBiddingAlgorithmId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that owns the parent custom bidding algorithm.", - "format": "int64", - "location": "query", - "type": "string" - }, - "customBiddingAlgorithmId": { - "description": "Required. The ID of the custom bidding algorithm that owns the script.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that owns the parent custom bidding algorithm. Only this partner will have write access to this custom bidding script.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/customBiddingAlgorithms/{+customBiddingAlgorithmId}/scripts", - "request": { - "$ref": "CustomBiddingScript" - }, - "response": { - "$ref": "CustomBiddingScript" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "get": { - "description": "Gets a custom bidding script.", - "flatPath": "v1/customBiddingAlgorithms/{customBiddingAlgorithmsId}/scripts/{scriptsId}", - "httpMethod": "GET", - "id": "displayvideo.customBiddingAlgorithms.scripts.get", - "parameterOrder": [ - "customBiddingAlgorithmId", - "customBiddingScriptId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that owns the parent custom bidding algorithm.", - "format": "int64", - "location": "query", - "type": "string" - }, - "customBiddingAlgorithmId": { - "description": "Required. The ID of the custom bidding algorithm owns the script.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "customBiddingScriptId": { - "description": "Required. The ID of the custom bidding script to fetch.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that owns the parent custom bidding algorithm. Only this partner will have write access to this custom bidding script.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/customBiddingAlgorithms/{+customBiddingAlgorithmId}/scripts/{+customBiddingScriptId}", - "response": { - "$ref": "CustomBiddingScript" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "list": { - "description": "Lists custom bidding scripts that belong to the given algorithm. The order is defined by the order_by parameter.", - "flatPath": "v1/customBiddingAlgorithms/{customBiddingAlgorithmsId}/scripts", - "httpMethod": "GET", - "id": "displayvideo.customBiddingAlgorithms.scripts.list", - "parameterOrder": [ - "customBiddingAlgorithmId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that owns the parent custom bidding algorithm.", - "format": "int64", - "location": "query", - "type": "string" - }, - "customBiddingAlgorithmId": { - "description": "Required. The ID of the custom bidding algorithm owns the script.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `createTime desc` (default) The default sorting order is descending. To specify ascending order for a field, the suffix \"desc\" should be removed. Example: `createTime`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListCustomBiddingScripts` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that owns the parent custom bidding algorithm. Only this partner will have write access to this custom bidding script.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/customBiddingAlgorithms/{+customBiddingAlgorithmId}/scripts", - "response": { - "$ref": "ListCustomBiddingScriptsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - } - } - } - }, - "customLists": { - "methods": { - "get": { - "description": "Gets a custom list.", - "flatPath": "v1/customLists/{customListsId}", - "httpMethod": "GET", - "id": "displayvideo.customLists.get", - "parameterOrder": [ - "customListId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the DV360 advertiser that has access to the fetched custom lists.", - "format": "int64", - "location": "query", - "type": "string" - }, - "customListId": { - "description": "Required. The ID of the custom list to fetch.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/customLists/{+customListId}", - "response": { - "$ref": "CustomList" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "list": { - "description": "Lists custom lists. The order is defined by the order_by parameter.", - "flatPath": "v1/customLists", - "httpMethod": "GET", - "id": "displayvideo.customLists.list", - "parameterOrder": [], - "parameters": { - "advertiserId": { - "description": "The ID of the DV360 advertiser that has access to the fetched custom lists.", - "format": "int64", - "location": "query", - "type": "string" - }, - "filter": { - "description": "Allows filtering by custom list fields. Supported syntax: * Filter expressions for custom lists can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `HAS (:)` operator. Supported fields: * `displayName` Examples: * All custom lists for which the display name contains \"Google\": `displayName:\"Google\"`. The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `customListId` (default) * `displayName` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListCustomLists` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - } - }, - "path": "v1/customLists", - "response": { - "$ref": "ListCustomListsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - } - }, - "firstAndThirdPartyAudiences": { - "methods": { - "create": { - "description": "Creates a FirstAndThirdPartyAudience. Only supported for the following audience_type: * `CUSTOMER_MATCH_CONTACT_INFO` * `CUSTOMER_MATCH_DEVICE_ID`", - "flatPath": "v1/firstAndThirdPartyAudiences", - "httpMethod": "POST", - "id": "displayvideo.firstAndThirdPartyAudiences.create", - "parameterOrder": [], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the advertiser under whom the FirstAndThirdPartyAudience will be created.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/firstAndThirdPartyAudiences", - "request": { - "$ref": "FirstAndThirdPartyAudience" - }, - "response": { - "$ref": "FirstAndThirdPartyAudience" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "editCustomerMatchMembers": { - "description": "Updates the member list of a Customer Match audience. Only supported for the following audience_type: * `CUSTOMER_MATCH_CONTACT_INFO` * `CUSTOMER_MATCH_DEVICE_ID`", - "flatPath": "v1/firstAndThirdPartyAudiences/{firstAndThirdPartyAudiencesId}:editCustomerMatchMembers", - "httpMethod": "POST", - "id": "displayvideo.firstAndThirdPartyAudiences.editCustomerMatchMembers", - "parameterOrder": [ - "firstAndThirdPartyAudienceId" - ], - "parameters": { - "firstAndThirdPartyAudienceId": { - "description": "Required. The ID of the Customer Match FirstAndThirdPartyAudience whose members will be edited.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/firstAndThirdPartyAudiences/{+firstAndThirdPartyAudienceId}:editCustomerMatchMembers", - "request": { - "$ref": "EditCustomerMatchMembersRequest" - }, - "response": { - "$ref": "EditCustomerMatchMembersResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "get": { - "description": "Gets a first and third party audience.", - "flatPath": "v1/firstAndThirdPartyAudiences/{firstAndThirdPartyAudiencesId}", - "httpMethod": "GET", - "id": "displayvideo.firstAndThirdPartyAudiences.get", - "parameterOrder": [ - "firstAndThirdPartyAudienceId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that has access to the fetched first and third party audience.", - "format": "int64", - "location": "query", - "type": "string" - }, - "firstAndThirdPartyAudienceId": { - "description": "Required. The ID of the first and third party audience to fetch.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that has access to the fetched first and third party audience.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/firstAndThirdPartyAudiences/{+firstAndThirdPartyAudienceId}", - "response": { - "$ref": "FirstAndThirdPartyAudience" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "list": { - "description": "Lists first and third party audiences. The order is defined by the order_by parameter.", - "flatPath": "v1/firstAndThirdPartyAudiences", - "httpMethod": "GET", - "id": "displayvideo.firstAndThirdPartyAudiences.list", - "parameterOrder": [], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that has access to the fetched first and third party audiences.", - "format": "int64", - "location": "query", - "type": "string" - }, - "filter": { - "description": "Allows filtering by first and third party audience fields. Supported syntax: * Filter expressions for first and third party audiences can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `HAS (:)` operator. Supported fields: * `displayName` Examples: * All first and third party audiences for which the display name contains \"Google\": `displayName:\"Google\"`. The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `firstAndThirdPartyAudienceId` (default) * `displayName` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListFirstAndThirdPartyAudiences` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that has access to the fetched first and third party audiences.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/firstAndThirdPartyAudiences", - "response": { - "$ref": "ListFirstAndThirdPartyAudiencesResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "patch": { - "description": "Updates an existing FirstAndThirdPartyAudience. Only supported for the following audience_type: * `CUSTOMER_MATCH_CONTACT_INFO` * `CUSTOMER_MATCH_DEVICE_ID`", - "flatPath": "v1/firstAndThirdPartyAudiences/{firstAndThirdPartyAudiencesId}", - "httpMethod": "PATCH", - "id": "displayvideo.firstAndThirdPartyAudiences.patch", - "parameterOrder": [ - "firstAndThirdPartyAudienceId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The ID of the owner advertiser of the updated FirstAndThirdPartyAudience.", - "format": "int64", - "location": "query", - "type": "string" - }, - "firstAndThirdPartyAudienceId": { - "description": "Output only. The unique ID of the first and third party audience. Assigned by the system.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "updateMask": { - "description": "Required. The mask to control which fields to update. Updates are only supported for the following fields: * `displayName` * `description` * `membershipDurationDays`", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1/firstAndThirdPartyAudiences/{+firstAndThirdPartyAudienceId}", - "request": { - "$ref": "FirstAndThirdPartyAudience" - }, - "response": { - "$ref": "FirstAndThirdPartyAudience" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - } - }, - "floodlightGroups": { - "methods": { - "get": { - "description": "Gets a Floodlight group.", - "flatPath": "v1/floodlightGroups/{floodlightGroupsId}", - "httpMethod": "GET", - "id": "displayvideo.floodlightGroups.get", - "parameterOrder": [ - "floodlightGroupId" - ], - "parameters": { - "floodlightGroupId": { - "description": "Required. The ID of the Floodlight group to fetch.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "partnerId": { - "description": "Required. The partner context by which the Floodlight group is being accessed.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/floodlightGroups/{+floodlightGroupId}", - "response": { - "$ref": "FloodlightGroup" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "patch": { - "description": "Updates an existing Floodlight group. Returns the updated Floodlight group if successful.", - "flatPath": "v1/floodlightGroups/{floodlightGroupId}", - "httpMethod": "PATCH", - "id": "displayvideo.floodlightGroups.patch", - "parameterOrder": [ - "floodlightGroupId" - ], - "parameters": { - "floodlightGroupId": { - "description": "Output only. The unique ID of the Floodlight group. Assigned by the system.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "partnerId": { - "description": "Required. The partner context by which the Floodlight group is being accessed.", - "format": "int64", - "location": "query", - "type": "string" - }, - "updateMask": { - "description": "Required. The mask to control which fields to update.", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1/floodlightGroups/{floodlightGroupId}", - "request": { - "$ref": "FloodlightGroup" - }, - "response": { - "$ref": "FloodlightGroup" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - } - }, - "googleAudiences": { - "methods": { - "get": { - "description": "Gets a Google audience.", - "flatPath": "v1/googleAudiences/{googleAudiencesId}", - "httpMethod": "GET", - "id": "displayvideo.googleAudiences.get", - "parameterOrder": [ - "googleAudienceId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that has access to the fetched Google audience.", - "format": "int64", - "location": "query", - "type": "string" - }, - "googleAudienceId": { - "description": "Required. The ID of the Google audience to fetch.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that has access to the fetched Google audience.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/googleAudiences/{+googleAudienceId}", - "response": { - "$ref": "GoogleAudience" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "list": { - "description": "Lists Google audiences. The order is defined by the order_by parameter.", - "flatPath": "v1/googleAudiences", - "httpMethod": "GET", - "id": "displayvideo.googleAudiences.list", - "parameterOrder": [], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that has access to the fetched Google audiences.", - "format": "int64", - "location": "query", - "type": "string" - }, - "filter": { - "description": "Allows filtering by Google audience fields. Supported syntax: * Filter expressions for Google audiences can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `HAS (:)` operator. Supported fields: * `displayName` Examples: * All Google audiences for which the display name contains \"Google\": `displayName:\"Google\"`. The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `googleAudienceId` (default) * `displayName` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListGoogleAudiences` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that has access to the fetched Google audiences.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/googleAudiences", - "response": { - "$ref": "ListGoogleAudiencesResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - } - }, - "guaranteedOrders": { - "methods": { - "create": { - "description": "Creates a new guaranteed order. Returns the newly created guaranteed order if successful.", - "flatPath": "v1/guaranteedOrders", - "httpMethod": "POST", - "id": "displayvideo.guaranteedOrders.create", - "parameterOrder": [], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that the request is being made within.", - "format": "int64", - "location": "query", - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that the request is being made within.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/guaranteedOrders", - "request": { - "$ref": "GuaranteedOrder" - }, - "response": { - "$ref": "GuaranteedOrder" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "editGuaranteedOrderReadAccessors": { - "description": "Edits read advertisers of a guaranteed order.", - "flatPath": "v1/guaranteedOrders/{guaranteedOrdersId}:editGuaranteedOrderReadAccessors", - "httpMethod": "POST", - "id": "displayvideo.guaranteedOrders.editGuaranteedOrderReadAccessors", - "parameterOrder": [ - "guaranteedOrderId" - ], - "parameters": { - "guaranteedOrderId": { - "description": "Required. The ID of the guaranteed order to edit. The ID is of the format `{exchange}-{legacy_guaranteed_order_id}`", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/guaranteedOrders/{+guaranteedOrderId}:editGuaranteedOrderReadAccessors", - "request": { - "$ref": "EditGuaranteedOrderReadAccessorsRequest" - }, - "response": { - "$ref": "EditGuaranteedOrderReadAccessorsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "get": { - "description": "Gets a guaranteed order.", - "flatPath": "v1/guaranteedOrders/{guaranteedOrdersId}", - "httpMethod": "GET", - "id": "displayvideo.guaranteedOrders.get", - "parameterOrder": [ - "guaranteedOrderId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that has access to the guaranteed order.", - "format": "int64", - "location": "query", - "type": "string" - }, - "guaranteedOrderId": { - "description": "Required. The ID of the guaranteed order to fetch. The ID is of the format `{exchange}-{legacy_guaranteed_order_id}`", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that has access to the guaranteed order.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/guaranteedOrders/{+guaranteedOrderId}", - "response": { - "$ref": "GuaranteedOrder" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "list": { - "description": "Lists guaranteed orders that are accessible to the current user. The order is defined by the order_by parameter. If a filter by entity_status is not specified, guaranteed orders with entity status `ENTITY_STATUS_ARCHIVED` will not be included in the results.", - "flatPath": "v1/guaranteedOrders", - "httpMethod": "GET", - "id": "displayvideo.guaranteedOrders.list", - "parameterOrder": [], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that has access to the guaranteed order.", - "format": "int64", - "location": "query", - "type": "string" - }, - "filter": { - "description": "Allows filtering by guaranteed order fields. * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `guaranteed_order_id` * `exchange` * `display_name` * `status.entityStatus` Examples: * All active guaranteed orders: `status.entityStatus=\"ENTITY_STATUS_ACTIVE\"` * Guaranteed orders belonging to Google Ad Manager or Rubicon exchanges: `exchange=\"EXCHANGE_GOOGLE_AD_MANAGER\" OR exchange=\"EXCHANGE_RUBICON\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. For example, `displayName desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListGuaranteedOrders` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that has access to the guaranteed order.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/guaranteedOrders", - "response": { - "$ref": "ListGuaranteedOrdersResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "patch": { - "description": "Updates an existing guaranteed order. Returns the updated guaranteed order if successful.", - "flatPath": "v1/guaranteedOrders/{guaranteedOrdersId}", - "httpMethod": "PATCH", - "id": "displayvideo.guaranteedOrders.patch", - "parameterOrder": [ - "guaranteedOrderId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that the request is being made within.", - "format": "int64", - "location": "query", - "type": "string" - }, - "guaranteedOrderId": { - "description": "Output only. The unique identifier of the guaranteed order. The guaranteed order IDs have the format `{exchange}-{legacy_guaranteed_order_id}`.", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that the request is being made within.", - "format": "int64", - "location": "query", - "type": "string" - }, - "updateMask": { - "description": "Required. The mask to control which fields to update.", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1/guaranteedOrders/{+guaranteedOrderId}", - "request": { - "$ref": "GuaranteedOrder" - }, - "response": { - "$ref": "GuaranteedOrder" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - } - }, - "inventorySourceGroups": { - "methods": { - "create": { - "description": "Creates a new inventory source group. Returns the newly created inventory source group if successful.", - "flatPath": "v1/inventorySourceGroups", - "httpMethod": "POST", - "id": "displayvideo.inventorySourceGroups.create", - "parameterOrder": [], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that owns the inventory source group. The parent partner will not have access to this group.", - "format": "int64", - "location": "query", - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that owns the inventory source group. Only this partner will have write access to this group. Only advertisers to which this group is explicitly shared will have read access to this group.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/inventorySourceGroups", - "request": { - "$ref": "InventorySourceGroup" - }, - "response": { - "$ref": "InventorySourceGroup" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "delete": { - "description": "Deletes an inventory source group.", - "flatPath": "v1/inventorySourceGroups/{inventorySourceGroupsId}", - "httpMethod": "DELETE", - "id": "displayvideo.inventorySourceGroups.delete", - "parameterOrder": [ - "inventorySourceGroupId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that owns the inventory source group. The parent partner does not have access to this group.", - "format": "int64", - "location": "query", - "type": "string" - }, - "inventorySourceGroupId": { - "description": "Required. The ID of the inventory source group to delete.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that owns the inventory source group. Only this partner has write access to this group.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/inventorySourceGroups/{+inventorySourceGroupId}", - "response": { - "$ref": "Empty" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "get": { - "description": "Gets an inventory source group.", - "flatPath": "v1/inventorySourceGroups/{inventorySourceGroupsId}", - "httpMethod": "GET", - "id": "displayvideo.inventorySourceGroups.get", - "parameterOrder": [ - "inventorySourceGroupId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that has access to the inventory source group. If an inventory source group is partner-owned, only advertisers to which the group is explicitly shared can access the group.", - "format": "int64", - "location": "query", - "type": "string" - }, - "inventorySourceGroupId": { - "description": "Required. The ID of the inventory source group to fetch.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that has access to the inventory source group. A partner cannot access an advertiser-owned inventory source group.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/inventorySourceGroups/{+inventorySourceGroupId}", - "response": { - "$ref": "InventorySourceGroup" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "list": { - "description": "Lists inventory source groups that are accessible to the current user. The order is defined by the order_by parameter.", - "flatPath": "v1/inventorySourceGroups", - "httpMethod": "GET", - "id": "displayvideo.inventorySourceGroups.list", - "parameterOrder": [], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that has access to the inventory source group. If an inventory source group is partner-owned, only advertisers to which the group is explicitly shared can access the group.", - "format": "int64", - "location": "query", - "type": "string" - }, - "filter": { - "description": "Allows filtering by inventory source group fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `inventorySourceGroupId` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) * `inventorySourceGroupId` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. For example, `displayName desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListInventorySources` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that has access to the inventory source group. A partner cannot access advertiser-owned inventory source groups.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/inventorySourceGroups", - "response": { - "$ref": "ListInventorySourceGroupsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "patch": { - "description": "Updates an inventory source group. Returns the updated inventory source group if successful.", - "flatPath": "v1/inventorySourceGroups/{inventorySourceGroupId}", - "httpMethod": "PATCH", - "id": "displayvideo.inventorySourceGroups.patch", - "parameterOrder": [ - "inventorySourceGroupId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that owns the inventory source group. The parent partner does not have access to this group.", - "format": "int64", - "location": "query", - "type": "string" - }, - "inventorySourceGroupId": { - "description": "Output only. The unique ID of the inventory source group. Assigned by the system.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that owns the inventory source group. Only this partner has write access to this group.", - "format": "int64", - "location": "query", - "type": "string" - }, - "updateMask": { - "description": "Required. The mask to control which fields to update.", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1/inventorySourceGroups/{inventorySourceGroupId}", - "request": { - "$ref": "InventorySourceGroup" - }, - "response": { - "$ref": "InventorySourceGroup" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - }, - "resources": { - "assignedInventorySources": { - "methods": { - "bulkEdit": { - "description": "Bulk edits multiple assignments between inventory sources and a single inventory source group. The operation will delete the assigned inventory sources provided in BulkEditAssignedInventorySourcesRequest.deleted_assigned_inventory_sources and then create the assigned inventory sources provided in BulkEditAssignedInventorySourcesRequest.created_assigned_inventory_sources.", - "flatPath": "v1/inventorySourceGroups/{inventorySourceGroupsId}/assignedInventorySources:bulkEdit", - "httpMethod": "POST", - "id": "displayvideo.inventorySourceGroups.assignedInventorySources.bulkEdit", - "parameterOrder": [ - "inventorySourceGroupId" - ], - "parameters": { - "inventorySourceGroupId": { - "description": "Required. The ID of the inventory source group to which the assignments are assigned.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/inventorySourceGroups/{+inventorySourceGroupId}/assignedInventorySources:bulkEdit", - "request": { - "$ref": "BulkEditAssignedInventorySourcesRequest" - }, - "response": { - "$ref": "BulkEditAssignedInventorySourcesResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "create": { - "description": "Creates an assignment between an inventory source and an inventory source group.", - "flatPath": "v1/inventorySourceGroups/{inventorySourceGroupsId}/assignedInventorySources", - "httpMethod": "POST", - "id": "displayvideo.inventorySourceGroups.assignedInventorySources.create", - "parameterOrder": [ - "inventorySourceGroupId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that owns the parent inventory source group. The parent partner will not have access to this assigned inventory source.", - "format": "int64", - "location": "query", - "type": "string" - }, - "inventorySourceGroupId": { - "description": "Required. The ID of the inventory source group to which the assignment will be assigned.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that owns the parent inventory source group. Only this partner will have write access to this assigned inventory source.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/inventorySourceGroups/{+inventorySourceGroupId}/assignedInventorySources", - "request": { - "$ref": "AssignedInventorySource" - }, - "response": { - "$ref": "AssignedInventorySource" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "delete": { - "description": "Deletes the assignment between an inventory source and an inventory source group.", - "flatPath": "v1/inventorySourceGroups/{inventorySourceGroupsId}/assignedInventorySources/{assignedInventorySourcesId}", - "httpMethod": "DELETE", - "id": "displayvideo.inventorySourceGroups.assignedInventorySources.delete", - "parameterOrder": [ - "inventorySourceGroupId", - "assignedInventorySourceId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that owns the parent inventory source group. The parent partner does not have access to this assigned inventory source.", - "format": "int64", - "location": "query", - "type": "string" - }, - "assignedInventorySourceId": { - "description": "Required. The ID of the assigned inventory source to delete.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "inventorySourceGroupId": { - "description": "Required. The ID of the inventory source group to which this assignment is assigned.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that owns the parent inventory source group. Only this partner has write access to this assigned inventory source.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/inventorySourceGroups/{+inventorySourceGroupId}/assignedInventorySources/{+assignedInventorySourceId}", - "response": { - "$ref": "Empty" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "list": { - "description": "Lists inventory sources assigned to an inventory source group.", - "flatPath": "v1/inventorySourceGroups/{inventorySourceGroupsId}/assignedInventorySources", - "httpMethod": "GET", - "id": "displayvideo.inventorySourceGroups.assignedInventorySources.list", - "parameterOrder": [ - "inventorySourceGroupId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that has access to the assignment. If the parent inventory source group is partner-owned, only advertisers to which the parent group is explicitly shared can access the assigned inventory source.", - "format": "int64", - "location": "query", - "type": "string" - }, - "filter": { - "description": "Allows filtering by assigned inventory source fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the `OR` logical operator. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `assignedInventorySourceId` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "inventorySourceGroupId": { - "description": "Required. The ID of the inventory source group to which these assignments are assigned.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `assignedInventorySourceId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be added to the field name. Example: `assignedInventorySourceId desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListAssignedInventorySources` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that has access to the assignment. If the parent inventory source group is advertiser-owned, the assignment cannot be accessed via a partner.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/inventorySourceGroups/{+inventorySourceGroupId}/assignedInventorySources", - "response": { - "$ref": "ListAssignedInventorySourcesResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - } - } - } - }, - "inventorySources": { - "methods": { - "create": { - "description": "Creates a new inventory source. Returns the newly created inventory source if successful.", - "flatPath": "v1/inventorySources", - "httpMethod": "POST", - "id": "displayvideo.inventorySources.create", - "parameterOrder": [], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that the request is being made within.", - "format": "int64", - "location": "query", - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that the request is being made within.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/inventorySources", - "request": { - "$ref": "InventorySource" - }, - "response": { - "$ref": "InventorySource" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "editInventorySourceReadWriteAccessors": { - "description": "Edits read/write accessors of an inventory source. Returns the updated read_write_accessors for the inventory source.", - "flatPath": "v1/inventorySources/{inventorySourcesId}:editInventorySourceReadWriteAccessors", - "httpMethod": "POST", - "id": "displayvideo.inventorySources.editInventorySourceReadWriteAccessors", - "parameterOrder": [ - "inventorySourceId" - ], - "parameters": { - "inventorySourceId": { - "description": "Required. The ID of inventory source to update.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/inventorySources/{+inventorySourceId}:editInventorySourceReadWriteAccessors", - "request": { - "$ref": "EditInventorySourceReadWriteAccessorsRequest" - }, - "response": { - "$ref": "InventorySourceAccessors" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "get": { - "description": "Gets an inventory source.", - "flatPath": "v1/inventorySources/{inventorySourcesId}", - "httpMethod": "GET", - "id": "displayvideo.inventorySources.get", - "parameterOrder": [ - "inventorySourceId" - ], - "parameters": { - "inventorySourceId": { - "description": "Required. The ID of the inventory source to fetch.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "partnerId": { - "description": "Required. The ID of the DV360 partner to which the fetched inventory source is permissioned.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/inventorySources/{+inventorySourceId}", - "response": { - "$ref": "InventorySource" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "list": { - "description": "Lists inventory sources that are accessible to the current user. The order is defined by the order_by parameter. If a filter by entity_status is not specified, inventory sources with entity status `ENTITY_STATUS_ARCHIVED` will not be included in the results.", - "flatPath": "v1/inventorySources", - "httpMethod": "GET", - "id": "displayvideo.inventorySources.list", - "parameterOrder": [], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that has access to the inventory source.", - "format": "int64", - "location": "query", - "type": "string" - }, - "filter": { - "description": "Allows filtering by inventory source fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `status.entityStatus` * `commitment` * `deliveryMethod` * `rateDetails.rateType` * `exchange` Examples: * All active inventory sources: `status.entityStatus=\"ENTITY_STATUS_ACTIVE\"` * Inventory sources belonging to Google Ad Manager or Rubicon exchanges: `exchange=\"EXCHANGE_GOOGLE_AD_MANAGER\" OR exchange=\"EXCHANGE_RUBICON\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. For example, `displayName desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListInventorySources` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that has access to the inventory source.", - "format": "int64", - "location": "query", - "type": "string" - } - }, - "path": "v1/inventorySources", - "response": { - "$ref": "ListInventorySourcesResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "patch": { - "description": "Updates an existing inventory source. Returns the updated inventory source if successful.", - "flatPath": "v1/inventorySources/{inventorySourcesId}", - "httpMethod": "PATCH", - "id": "displayvideo.inventorySources.patch", - "parameterOrder": [ - "inventorySourceId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that the request is being made within.", - "format": "int64", - "location": "query", - "type": "string" - }, - "inventorySourceId": { - "description": "Output only. The unique ID of the inventory source. Assigned by the system.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that the request is being made within.", - "format": "int64", - "location": "query", - "type": "string" - }, - "updateMask": { - "description": "Required. The mask to control which fields to update.", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1/inventorySources/{+inventorySourceId}", - "request": { - "$ref": "InventorySource" - }, - "response": { - "$ref": "InventorySource" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - } - }, - "media": { - "methods": { - "download": { - "description": "Downloads media. Download is supported on the URI `/download/{resource_name=**}?alt=media.` **Note**: Download requests will not be successful without including `alt=media` query string.", - "flatPath": "download/{downloadId}", - "httpMethod": "GET", - "id": "displayvideo.media.download", - "parameterOrder": [ - "resourceName" - ], - "parameters": { - "resourceName": { - "description": "Name of the media that is being downloaded. See ReadRequest.resource_name.", - "location": "path", - "pattern": "^.*$", - "required": true, - "type": "string" - } - }, - "path": "download/{+resourceName}", - "response": { - "$ref": "GoogleBytestreamMedia" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video", - "https://www.googleapis.com/auth/doubleclickbidmanager" - ], - "supportsMediaDownload": true - }, - "upload": { - "description": "Uploads media. Upload is supported on the URI `/upload/media/{resource_name=**}?upload_type=media.` **Note**: Upload requests will not be successful without including `upload_type=media` query string.", - "flatPath": "media/{mediaId}", - "httpMethod": "POST", - "id": "displayvideo.media.upload", - "mediaUpload": { - "accept": [ - "*/*" - ], - "protocols": { - "simple": { - "multipart": true, - "path": "/upload/media/{+resourceName}" - } - } - }, - "parameterOrder": [ - "resourceName" - ], - "parameters": { - "resourceName": { - "description": "Name of the media that is being downloaded. See ReadRequest.resource_name.", - "location": "path", - "pattern": "^.*$", - "required": true, - "type": "string" - } - }, - "path": "media/{+resourceName}", - "request": { - "$ref": "GoogleBytestreamMedia" - }, - "response": { - "$ref": "GoogleBytestreamMedia" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video", - "https://www.googleapis.com/auth/doubleclickbidmanager" - ], - "supportsMediaUpload": true - } - } - }, - "partners": { - "methods": { - "bulkEditPartnerAssignedTargetingOptions": { - "description": "Bulk edits targeting options under a single partner. The operation will delete the assigned targeting options provided in BulkEditPartnerAssignedTargetingOptionsRequest.deleteRequests and then create the assigned targeting options provided in BulkEditPartnerAssignedTargetingOptionsRequest.createRequests .", - "flatPath": "v1/partners/{partnersId}:bulkEditPartnerAssignedTargetingOptions", - "httpMethod": "POST", - "id": "displayvideo.partners.bulkEditPartnerAssignedTargetingOptions", - "parameterOrder": [ - "partnerId" - ], - "parameters": { - "partnerId": { - "description": "Required. The ID of the partner.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/partners/{+partnerId}:bulkEditPartnerAssignedTargetingOptions", - "request": { - "$ref": "BulkEditPartnerAssignedTargetingOptionsRequest" - }, - "response": { - "$ref": "BulkEditPartnerAssignedTargetingOptionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "get": { - "description": "Gets a partner.", - "flatPath": "v1/partners/{partnersId}", - "httpMethod": "GET", - "id": "displayvideo.partners.get", - "parameterOrder": [ - "partnerId" - ], - "parameters": { - "partnerId": { - "description": "Required. The ID of the partner to fetch.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/partners/{+partnerId}", - "response": { - "$ref": "Partner" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "list": { - "description": "Lists partners that are accessible to the current user. The order is defined by the order_by parameter.", - "flatPath": "v1/partners", - "httpMethod": "GET", - "id": "displayvideo.partners.list", - "parameterOrder": [], - "parameters": { - "filter": { - "description": "Allows filtering by partner fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `AND` or `OR` logical operators. A sequence of restrictions implicitly uses `AND`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `entityStatus` Examples: * All active partners: `entityStatus=\"ENTITY_STATUS_ACTIVE\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `displayName` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. For example, `displayName desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListPartners` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - } - }, - "path": "v1/partners", - "response": { - "$ref": "ListPartnersResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - }, - "resources": { - "channels": { - "methods": { - "create": { - "description": "Creates a new channel. Returns the newly created channel if successful.", - "flatPath": "v1/partners/{partnersId}/channels", - "httpMethod": "POST", - "id": "displayvideo.partners.channels.create", - "parameterOrder": [ - "partnerId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that owns the created channel.", - "format": "int64", - "location": "query", - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that owns the created channel.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/partners/{+partnerId}/channels", - "request": { - "$ref": "Channel" - }, - "response": { - "$ref": "Channel" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "get": { - "description": "Gets a channel for a partner or advertiser.", - "flatPath": "v1/partners/{partnersId}/channels/{channelsId}", - "httpMethod": "GET", - "id": "displayvideo.partners.channels.get", - "parameterOrder": [ - "partnerId", - "channelId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that owns the fetched channel.", - "format": "int64", - "location": "query", - "type": "string" - }, - "channelId": { - "description": "Required. The ID of the channel to fetch.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that owns the fetched channel.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/partners/{+partnerId}/channels/{+channelId}", - "response": { - "$ref": "Channel" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "list": { - "description": "Lists channels for a partner or advertiser.", - "flatPath": "v1/partners/{partnersId}/channels", - "httpMethod": "GET", - "id": "displayvideo.partners.channels.list", - "parameterOrder": [ - "partnerId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that owns the channels.", - "format": "int64", - "location": "query", - "type": "string" - }, - "filter": { - "description": "Allows filtering by channel fields. Supported syntax: * Filter expressions for channel can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `HAS (:)` operator. Supported fields: * `displayName` Examples: * All channels for which the display name contains \"google\": `displayName : \"google\"`. The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) * `channelId` The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be added to the field name. Example: `displayName desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListChannels` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that owns the channels.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/partners/{+partnerId}/channels", - "response": { - "$ref": "ListChannelsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "patch": { - "description": "Updates a channel. Returns the updated channel if successful.", - "flatPath": "v1/partners/{partnersId}/channels/{channelId}", - "httpMethod": "PATCH", - "id": "displayvideo.partners.channels.patch", - "parameterOrder": [ - "partnerId", - "channelId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that owns the created channel.", - "format": "int64", - "location": "query", - "type": "string" - }, - "channelId": { - "description": "Output only. The unique ID of the channel. Assigned by the system.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that owns the created channel.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "updateMask": { - "description": "Required. The mask to control which fields to update.", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1/partners/{+partnerId}/channels/{channelId}", - "request": { - "$ref": "Channel" - }, - "response": { - "$ref": "Channel" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - }, - "resources": { - "sites": { - "methods": { - "bulkEdit": { - "description": "Bulk edits sites under a single channel. The operation will delete the sites provided in BulkEditSitesRequest.deleted_sites and then create the sites provided in BulkEditSitesRequest.created_sites.", - "flatPath": "v1/partners/{partnerId}/channels/{channelsId}/sites:bulkEdit", - "httpMethod": "POST", - "id": "displayvideo.partners.channels.sites.bulkEdit", - "parameterOrder": [ - "partnerId", - "channelId" - ], - "parameters": { - "channelId": { - "description": "Required. The ID of the parent channel to which the sites belong.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that owns the parent channel.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "v1/partners/{partnerId}/channels/{+channelId}/sites:bulkEdit", - "request": { - "$ref": "BulkEditSitesRequest" - }, - "response": { - "$ref": "BulkEditSitesResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "create": { - "description": "Creates a site in a channel.", - "flatPath": "v1/partners/{partnerId}/channels/{channelsId}/sites", - "httpMethod": "POST", - "id": "displayvideo.partners.channels.sites.create", - "parameterOrder": [ - "partnerId", - "channelId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that owns the parent channel.", - "format": "int64", - "location": "query", - "type": "string" - }, - "channelId": { - "description": "Required. The ID of the parent channel in which the site will be created.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that owns the parent channel.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "v1/partners/{partnerId}/channels/{+channelId}/sites", - "request": { - "$ref": "Site" - }, - "response": { - "$ref": "Site" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "delete": { - "description": "Deletes a site from a channel.", - "flatPath": "v1/partners/{partnerId}/channels/{channelsId}/sites/{sitesId}", - "httpMethod": "DELETE", - "id": "displayvideo.partners.channels.sites.delete", - "parameterOrder": [ - "partnerId", - "channelId", - "urlOrAppId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that owns the parent channel.", - "format": "int64", - "location": "query", - "type": "string" - }, - "channelId": { - "description": "Required. The ID of the parent channel to which the site belongs.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that owns the parent channel.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - }, - "urlOrAppId": { - "description": "Required. The URL or app ID of the site to delete.", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/partners/{partnerId}/channels/{+channelId}/sites/{+urlOrAppId}", - "response": { - "$ref": "Empty" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "list": { - "description": "Lists sites in a channel.", - "flatPath": "v1/partners/{partnersId}/channels/{channelsId}/sites", - "httpMethod": "GET", - "id": "displayvideo.partners.channels.sites.list", - "parameterOrder": [ - "partnerId", - "channelId" - ], - "parameters": { - "advertiserId": { - "description": "The ID of the advertiser that owns the parent channel.", - "format": "int64", - "location": "query", - "type": "string" - }, - "channelId": { - "description": "Required. The ID of the parent channel to which the requested sites belong.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "filter": { - "description": "Allows filtering by site fields. Supported syntax: * Filter expressions for site retrieval can only contain at most one restriction. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `HAS (:)` operator. Supported fields: * `urlOrAppId` Examples: * All sites for which the URL or app ID contains \"google\": `urlOrAppId : \"google\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `urlOrAppId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \" desc\" should be added to the field name. Example: `urlOrAppId desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `10000`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListSites` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that owns the parent channel.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/partners/{+partnerId}/channels/{+channelId}/sites", - "response": { - "$ref": "ListSitesResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "replace": { - "description": "Replaces all of the sites under a single channel. The operation will replace the sites under a channel with the sites provided in ReplaceSitesRequest.new_sites.", - "flatPath": "v1/partners/{partnerId}/channels/{channelsId}/sites:replace", - "httpMethod": "POST", - "id": "displayvideo.partners.channels.sites.replace", - "parameterOrder": [ - "partnerId", - "channelId" - ], - "parameters": { - "channelId": { - "description": "Required. The ID of the parent channel whose sites will be replaced.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that owns the parent channel.", - "format": "int64", - "location": "path", - "required": true, - "type": "string" - } - }, - "path": "v1/partners/{partnerId}/channels/{+channelId}/sites:replace", - "request": { - "$ref": "ReplaceSitesRequest" - }, - "response": { - "$ref": "ReplaceSitesResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - } - } - } - }, - "targetingTypes": { - "resources": { - "assignedTargetingOptions": { - "methods": { - "create": { - "description": "Assigns a targeting option to a partner. Returns the assigned targeting option if successful.", - "flatPath": "v1/partners/{partnersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions", - "httpMethod": "POST", - "id": "displayvideo.partners.targetingTypes.assignedTargetingOptions.create", - "parameterOrder": [ - "partnerId", - "targetingType" - ], - "parameters": { - "partnerId": { - "description": "Required. The ID of the partner.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "targetingType": { - "description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL`", - "enum": [ - "TARGETING_TYPE_UNSPECIFIED", - "TARGETING_TYPE_CHANNEL", - "TARGETING_TYPE_APP_CATEGORY", - "TARGETING_TYPE_APP", - "TARGETING_TYPE_URL", - "TARGETING_TYPE_DAY_AND_TIME", - "TARGETING_TYPE_AGE_RANGE", - "TARGETING_TYPE_REGIONAL_LOCATION_LIST", - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST", - "TARGETING_TYPE_GENDER", - "TARGETING_TYPE_VIDEO_PLAYER_SIZE", - "TARGETING_TYPE_USER_REWARDED_CONTENT", - "TARGETING_TYPE_PARENTAL_STATUS", - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION", - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", - "TARGETING_TYPE_DEVICE_TYPE", - "TARGETING_TYPE_AUDIENCE_GROUP", - "TARGETING_TYPE_BROWSER", - "TARGETING_TYPE_HOUSEHOLD_INCOME", - "TARGETING_TYPE_ON_SCREEN_POSITION", - "TARGETING_TYPE_THIRD_PARTY_VERIFIER", - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", - "TARGETING_TYPE_ENVIRONMENT", - "TARGETING_TYPE_CARRIER_AND_ISP", - "TARGETING_TYPE_OPERATING_SYSTEM", - "TARGETING_TYPE_DEVICE_MAKE_MODEL", - "TARGETING_TYPE_KEYWORD", - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", - "TARGETING_TYPE_VIEWABILITY", - "TARGETING_TYPE_CATEGORY", - "TARGETING_TYPE_INVENTORY_SOURCE", - "TARGETING_TYPE_LANGUAGE", - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", - "TARGETING_TYPE_GEO_REGION", - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", - "TARGETING_TYPE_EXCHANGE", - "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_POI", - "TARGETING_TYPE_BUSINESS_CHAIN", - "TARGETING_TYPE_CONTENT_DURATION", - "TARGETING_TYPE_CONTENT_STREAM_TYPE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION", - "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE", - "TARGETING_TYPE_CONTENT_GENRE" - ], - "enumDescriptions": [ - "Default value when type is not specified or is unknown in this version.", - "Target a channel (a custom group of related websites or apps).", - "Target an app category (for example, education or puzzle games).", - "Target a specific app (for example, Angry Birds).", - "Target a specific url (for example, quora.com).", - "Target ads during a chosen time period on a specific day.", - "Target ads to a specific age range (for example, 18-24).", - "Target ads to the specified regions on a regional location list.", - "Target ads to the specified points of interest on a proximity location list.", - "Target ads to a specific gender (for example, female or male).", - "Target a specific video player size for video ads.", - "Target user rewarded content for video ads.", - "Target ads to a specific parental status (for example, parent or not a parent).", - "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", - "Target ads in a specific content outstream position.", - "Target ads to a specific device type (for example, tablet or connected TV).", - "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", - "Target ads to specific web browsers (for example, Chrome).", - "Target ads to a specific household income range (for example, top 10%).", - "Target ads in a specific on screen position.", - "Filter web sites through third party verification (for example, IAS or DoubleVerify).", - "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", - "Filter website content by sensitive categories (for example, adult).", - "Target ads to a specific environment (for example, web or app).", - "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", - "Target ads to a specific operating system (for example, macOS).", - "Target ads to a specific device make or model (for example, Roku or Samsung).", - "Target ads to a specific keyword (for example, dog or retriever).", - "Target ads to a specific negative keyword list.", - "Target ads to a specific viewability (for example, 80% viewable).", - "Target ads to a specific content category (for example, arts & entertainment).", - "Purchase impressions from specific deals and auction packages.", - "Target ads to a specific language (for example, English or Japanese).", - "Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", - "Target ads to a specific regional location (for example, a city or state).", - "Purchase impressions from a group of deals and auction packages.", - "Purchase impressions from specific exchanges.", - "Purchase impressions from specific sub-exchanges.", - "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", - "Target ads around locations of a business chain within a specific geo region.", - "Target ads to a specific video content duration.", - "Target ads to a specific video content stream type.", - "Target ads to a specific native content position.", - "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type.", - "Target ads to a specific content genre." - ], - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/partners/{+partnerId}/targetingTypes/{+targetingType}/assignedTargetingOptions", - "request": { - "$ref": "AssignedTargetingOption" - }, - "response": { - "$ref": "AssignedTargetingOption" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "delete": { - "description": "Deletes an assigned targeting option from a partner.", - "flatPath": "v1/partners/{partnersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}", - "httpMethod": "DELETE", - "id": "displayvideo.partners.targetingTypes.assignedTargetingOptions.delete", - "parameterOrder": [ - "partnerId", - "targetingType", - "assignedTargetingOptionId" - ], - "parameters": { - "assignedTargetingOptionId": { - "description": "Required. The ID of the assigned targeting option to delete.", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "partnerId": { - "description": "Required. The ID of the partner.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "targetingType": { - "description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL`", - "enum": [ - "TARGETING_TYPE_UNSPECIFIED", - "TARGETING_TYPE_CHANNEL", - "TARGETING_TYPE_APP_CATEGORY", - "TARGETING_TYPE_APP", - "TARGETING_TYPE_URL", - "TARGETING_TYPE_DAY_AND_TIME", - "TARGETING_TYPE_AGE_RANGE", - "TARGETING_TYPE_REGIONAL_LOCATION_LIST", - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST", - "TARGETING_TYPE_GENDER", - "TARGETING_TYPE_VIDEO_PLAYER_SIZE", - "TARGETING_TYPE_USER_REWARDED_CONTENT", - "TARGETING_TYPE_PARENTAL_STATUS", - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION", - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", - "TARGETING_TYPE_DEVICE_TYPE", - "TARGETING_TYPE_AUDIENCE_GROUP", - "TARGETING_TYPE_BROWSER", - "TARGETING_TYPE_HOUSEHOLD_INCOME", - "TARGETING_TYPE_ON_SCREEN_POSITION", - "TARGETING_TYPE_THIRD_PARTY_VERIFIER", - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", - "TARGETING_TYPE_ENVIRONMENT", - "TARGETING_TYPE_CARRIER_AND_ISP", - "TARGETING_TYPE_OPERATING_SYSTEM", - "TARGETING_TYPE_DEVICE_MAKE_MODEL", - "TARGETING_TYPE_KEYWORD", - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", - "TARGETING_TYPE_VIEWABILITY", - "TARGETING_TYPE_CATEGORY", - "TARGETING_TYPE_INVENTORY_SOURCE", - "TARGETING_TYPE_LANGUAGE", - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", - "TARGETING_TYPE_GEO_REGION", - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", - "TARGETING_TYPE_EXCHANGE", - "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_POI", - "TARGETING_TYPE_BUSINESS_CHAIN", - "TARGETING_TYPE_CONTENT_DURATION", - "TARGETING_TYPE_CONTENT_STREAM_TYPE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION", - "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE", - "TARGETING_TYPE_CONTENT_GENRE" - ], - "enumDescriptions": [ - "Default value when type is not specified or is unknown in this version.", - "Target a channel (a custom group of related websites or apps).", - "Target an app category (for example, education or puzzle games).", - "Target a specific app (for example, Angry Birds).", - "Target a specific url (for example, quora.com).", - "Target ads during a chosen time period on a specific day.", - "Target ads to a specific age range (for example, 18-24).", - "Target ads to the specified regions on a regional location list.", - "Target ads to the specified points of interest on a proximity location list.", - "Target ads to a specific gender (for example, female or male).", - "Target a specific video player size for video ads.", - "Target user rewarded content for video ads.", - "Target ads to a specific parental status (for example, parent or not a parent).", - "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", - "Target ads in a specific content outstream position.", - "Target ads to a specific device type (for example, tablet or connected TV).", - "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", - "Target ads to specific web browsers (for example, Chrome).", - "Target ads to a specific household income range (for example, top 10%).", - "Target ads in a specific on screen position.", - "Filter web sites through third party verification (for example, IAS or DoubleVerify).", - "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", - "Filter website content by sensitive categories (for example, adult).", - "Target ads to a specific environment (for example, web or app).", - "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", - "Target ads to a specific operating system (for example, macOS).", - "Target ads to a specific device make or model (for example, Roku or Samsung).", - "Target ads to a specific keyword (for example, dog or retriever).", - "Target ads to a specific negative keyword list.", - "Target ads to a specific viewability (for example, 80% viewable).", - "Target ads to a specific content category (for example, arts & entertainment).", - "Purchase impressions from specific deals and auction packages.", - "Target ads to a specific language (for example, English or Japanese).", - "Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", - "Target ads to a specific regional location (for example, a city or state).", - "Purchase impressions from a group of deals and auction packages.", - "Purchase impressions from specific exchanges.", - "Purchase impressions from specific sub-exchanges.", - "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", - "Target ads around locations of a business chain within a specific geo region.", - "Target ads to a specific video content duration.", - "Target ads to a specific video content stream type.", - "Target ads to a specific native content position.", - "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type.", - "Target ads to a specific content genre." - ], - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/partners/{+partnerId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}", - "response": { - "$ref": "Empty" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "get": { - "description": "Gets a single targeting option assigned to a partner.", - "flatPath": "v1/partners/{partnersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}", - "httpMethod": "GET", - "id": "displayvideo.partners.targetingTypes.assignedTargetingOptions.get", - "parameterOrder": [ - "partnerId", - "targetingType", - "assignedTargetingOptionId" - ], - "parameters": { - "assignedTargetingOptionId": { - "description": "Required. An identifier unique to the targeting type in this partner that identifies the assigned targeting option being requested.", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "partnerId": { - "description": "Required. The ID of the partner.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "targetingType": { - "description": "Required. Identifies the type of this assigned targeting option. Supported targeting types: * `TARGETING_TYPE_CHANNEL`", - "enum": [ - "TARGETING_TYPE_UNSPECIFIED", - "TARGETING_TYPE_CHANNEL", - "TARGETING_TYPE_APP_CATEGORY", - "TARGETING_TYPE_APP", - "TARGETING_TYPE_URL", - "TARGETING_TYPE_DAY_AND_TIME", - "TARGETING_TYPE_AGE_RANGE", - "TARGETING_TYPE_REGIONAL_LOCATION_LIST", - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST", - "TARGETING_TYPE_GENDER", - "TARGETING_TYPE_VIDEO_PLAYER_SIZE", - "TARGETING_TYPE_USER_REWARDED_CONTENT", - "TARGETING_TYPE_PARENTAL_STATUS", - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION", - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", - "TARGETING_TYPE_DEVICE_TYPE", - "TARGETING_TYPE_AUDIENCE_GROUP", - "TARGETING_TYPE_BROWSER", - "TARGETING_TYPE_HOUSEHOLD_INCOME", - "TARGETING_TYPE_ON_SCREEN_POSITION", - "TARGETING_TYPE_THIRD_PARTY_VERIFIER", - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", - "TARGETING_TYPE_ENVIRONMENT", - "TARGETING_TYPE_CARRIER_AND_ISP", - "TARGETING_TYPE_OPERATING_SYSTEM", - "TARGETING_TYPE_DEVICE_MAKE_MODEL", - "TARGETING_TYPE_KEYWORD", - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", - "TARGETING_TYPE_VIEWABILITY", - "TARGETING_TYPE_CATEGORY", - "TARGETING_TYPE_INVENTORY_SOURCE", - "TARGETING_TYPE_LANGUAGE", - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", - "TARGETING_TYPE_GEO_REGION", - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", - "TARGETING_TYPE_EXCHANGE", - "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_POI", - "TARGETING_TYPE_BUSINESS_CHAIN", - "TARGETING_TYPE_CONTENT_DURATION", - "TARGETING_TYPE_CONTENT_STREAM_TYPE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION", - "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE", - "TARGETING_TYPE_CONTENT_GENRE" - ], - "enumDescriptions": [ - "Default value when type is not specified or is unknown in this version.", - "Target a channel (a custom group of related websites or apps).", - "Target an app category (for example, education or puzzle games).", - "Target a specific app (for example, Angry Birds).", - "Target a specific url (for example, quora.com).", - "Target ads during a chosen time period on a specific day.", - "Target ads to a specific age range (for example, 18-24).", - "Target ads to the specified regions on a regional location list.", - "Target ads to the specified points of interest on a proximity location list.", - "Target ads to a specific gender (for example, female or male).", - "Target a specific video player size for video ads.", - "Target user rewarded content for video ads.", - "Target ads to a specific parental status (for example, parent or not a parent).", - "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", - "Target ads in a specific content outstream position.", - "Target ads to a specific device type (for example, tablet or connected TV).", - "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", - "Target ads to specific web browsers (for example, Chrome).", - "Target ads to a specific household income range (for example, top 10%).", - "Target ads in a specific on screen position.", - "Filter web sites through third party verification (for example, IAS or DoubleVerify).", - "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", - "Filter website content by sensitive categories (for example, adult).", - "Target ads to a specific environment (for example, web or app).", - "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", - "Target ads to a specific operating system (for example, macOS).", - "Target ads to a specific device make or model (for example, Roku or Samsung).", - "Target ads to a specific keyword (for example, dog or retriever).", - "Target ads to a specific negative keyword list.", - "Target ads to a specific viewability (for example, 80% viewable).", - "Target ads to a specific content category (for example, arts & entertainment).", - "Purchase impressions from specific deals and auction packages.", - "Target ads to a specific language (for example, English or Japanese).", - "Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", - "Target ads to a specific regional location (for example, a city or state).", - "Purchase impressions from a group of deals and auction packages.", - "Purchase impressions from specific exchanges.", - "Purchase impressions from specific sub-exchanges.", - "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", - "Target ads around locations of a business chain within a specific geo region.", - "Target ads to a specific video content duration.", - "Target ads to a specific video content stream type.", - "Target ads to a specific native content position.", - "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type.", - "Target ads to a specific content genre." - ], - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/partners/{+partnerId}/targetingTypes/{+targetingType}/assignedTargetingOptions/{+assignedTargetingOptionId}", - "response": { - "$ref": "AssignedTargetingOption" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "list": { - "description": "Lists the targeting options assigned to a partner.", - "flatPath": "v1/partners/{partnersId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions", - "httpMethod": "GET", - "id": "displayvideo.partners.targetingTypes.assignedTargetingOptions.list", - "parameterOrder": [ - "partnerId", - "targetingType" - ], - "parameters": { - "filter": { - "description": "Allows filtering by assigned targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `OR`. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `assignedTargetingOptionId` Examples: * `AssignedTargetingOption` resource with ID 123456: `assignedTargetingOptionId=\"123456\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `assignedTargetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `assignedTargetingOptionId desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListPartnerAssignedTargetingOptions` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - }, - "partnerId": { - "description": "Required. The ID of the partner.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "targetingType": { - "description": "Required. Identifies the type of assigned targeting options to list. Supported targeting types: * `TARGETING_TYPE_CHANNEL`", - "enum": [ - "TARGETING_TYPE_UNSPECIFIED", - "TARGETING_TYPE_CHANNEL", - "TARGETING_TYPE_APP_CATEGORY", - "TARGETING_TYPE_APP", - "TARGETING_TYPE_URL", - "TARGETING_TYPE_DAY_AND_TIME", - "TARGETING_TYPE_AGE_RANGE", - "TARGETING_TYPE_REGIONAL_LOCATION_LIST", - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST", - "TARGETING_TYPE_GENDER", - "TARGETING_TYPE_VIDEO_PLAYER_SIZE", - "TARGETING_TYPE_USER_REWARDED_CONTENT", - "TARGETING_TYPE_PARENTAL_STATUS", - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION", - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", - "TARGETING_TYPE_DEVICE_TYPE", - "TARGETING_TYPE_AUDIENCE_GROUP", - "TARGETING_TYPE_BROWSER", - "TARGETING_TYPE_HOUSEHOLD_INCOME", - "TARGETING_TYPE_ON_SCREEN_POSITION", - "TARGETING_TYPE_THIRD_PARTY_VERIFIER", - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", - "TARGETING_TYPE_ENVIRONMENT", - "TARGETING_TYPE_CARRIER_AND_ISP", - "TARGETING_TYPE_OPERATING_SYSTEM", - "TARGETING_TYPE_DEVICE_MAKE_MODEL", - "TARGETING_TYPE_KEYWORD", - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", - "TARGETING_TYPE_VIEWABILITY", - "TARGETING_TYPE_CATEGORY", - "TARGETING_TYPE_INVENTORY_SOURCE", - "TARGETING_TYPE_LANGUAGE", - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", - "TARGETING_TYPE_GEO_REGION", - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", - "TARGETING_TYPE_EXCHANGE", - "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_POI", - "TARGETING_TYPE_BUSINESS_CHAIN", - "TARGETING_TYPE_CONTENT_DURATION", - "TARGETING_TYPE_CONTENT_STREAM_TYPE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION", - "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE", - "TARGETING_TYPE_CONTENT_GENRE" - ], - "enumDescriptions": [ - "Default value when type is not specified or is unknown in this version.", - "Target a channel (a custom group of related websites or apps).", - "Target an app category (for example, education or puzzle games).", - "Target a specific app (for example, Angry Birds).", - "Target a specific url (for example, quora.com).", - "Target ads during a chosen time period on a specific day.", - "Target ads to a specific age range (for example, 18-24).", - "Target ads to the specified regions on a regional location list.", - "Target ads to the specified points of interest on a proximity location list.", - "Target ads to a specific gender (for example, female or male).", - "Target a specific video player size for video ads.", - "Target user rewarded content for video ads.", - "Target ads to a specific parental status (for example, parent or not a parent).", - "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", - "Target ads in a specific content outstream position.", - "Target ads to a specific device type (for example, tablet or connected TV).", - "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", - "Target ads to specific web browsers (for example, Chrome).", - "Target ads to a specific household income range (for example, top 10%).", - "Target ads in a specific on screen position.", - "Filter web sites through third party verification (for example, IAS or DoubleVerify).", - "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", - "Filter website content by sensitive categories (for example, adult).", - "Target ads to a specific environment (for example, web or app).", - "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", - "Target ads to a specific operating system (for example, macOS).", - "Target ads to a specific device make or model (for example, Roku or Samsung).", - "Target ads to a specific keyword (for example, dog or retriever).", - "Target ads to a specific negative keyword list.", - "Target ads to a specific viewability (for example, 80% viewable).", - "Target ads to a specific content category (for example, arts & entertainment).", - "Purchase impressions from specific deals and auction packages.", - "Target ads to a specific language (for example, English or Japanese).", - "Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", - "Target ads to a specific regional location (for example, a city or state).", - "Purchase impressions from a group of deals and auction packages.", - "Purchase impressions from specific exchanges.", - "Purchase impressions from specific sub-exchanges.", - "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", - "Target ads around locations of a business chain within a specific geo region.", - "Target ads to a specific video content duration.", - "Target ads to a specific video content stream type.", - "Target ads to a specific native content position.", - "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type.", - "Target ads to a specific content genre." - ], - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/partners/{+partnerId}/targetingTypes/{+targetingType}/assignedTargetingOptions", - "response": { - "$ref": "ListPartnerAssignedTargetingOptionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - } - } - } - } - } - }, - "sdfdownloadtasks": { - "methods": { - "create": { - "description": "Creates an SDF Download Task. Returns an Operation. An SDF Download Task is a long-running, asynchronous operation. The metadata type of this operation is SdfDownloadTaskMetadata. If the request is successful, the response type of the operation is SdfDownloadTask. The response will not include the download files, which must be retrieved with media.download. The state of operation can be retrieved with sdfdownloadtask.operations.get. Any errors can be found in the error.message. Note that error.details is expected to be empty.", - "flatPath": "v1/sdfdownloadtasks", - "httpMethod": "POST", - "id": "displayvideo.sdfdownloadtasks.create", - "parameterOrder": [], - "parameters": {}, - "path": "v1/sdfdownloadtasks", - "request": { - "$ref": "CreateSdfDownloadTaskRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - }, - "resources": { - "operations": { - "methods": { - "get": { - "description": "Gets the latest state of an asynchronous SDF download task operation. Clients should poll this method at intervals of 30 seconds.", - "flatPath": "v1/sdfdownloadtasks/operations/{operationsId}", - "httpMethod": "GET", - "id": "displayvideo.sdfdownloadtasks.operations.get", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "The name of the operation resource.", - "location": "path", - "pattern": "^sdfdownloadtasks/operations/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/{+name}", - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video", - "https://www.googleapis.com/auth/doubleclickbidmanager" - ] - } - } - } - } - }, - "targetingTypes": { - "resources": { - "targetingOptions": { - "methods": { - "get": { - "description": "Gets a single targeting option.", - "flatPath": "v1/targetingTypes/{targetingTypesId}/targetingOptions/{targetingOptionsId}", - "httpMethod": "GET", - "id": "displayvideo.targetingTypes.targetingOptions.get", - "parameterOrder": [ - "targetingType", - "targetingOptionId" - ], - "parameters": { - "advertiserId": { - "description": "Required. The Advertiser this request is being made in the context of.", - "format": "int64", - "location": "query", - "type": "string" - }, - "targetingOptionId": { - "description": "Required. The ID of the of targeting option to retrieve.", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - }, - "targetingType": { - "description": "Required. The type of targeting option to retrieve. Accepted values are: * `TARGETING_TYPE_APP_CATEGORY` * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_DEVICE_TYPE` * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_CARRIER_AND_ISP` * `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_VIEWABILITY` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * `TARGETING_TYPE_OMID`", - "enum": [ - "TARGETING_TYPE_UNSPECIFIED", - "TARGETING_TYPE_CHANNEL", - "TARGETING_TYPE_APP_CATEGORY", - "TARGETING_TYPE_APP", - "TARGETING_TYPE_URL", - "TARGETING_TYPE_DAY_AND_TIME", - "TARGETING_TYPE_AGE_RANGE", - "TARGETING_TYPE_REGIONAL_LOCATION_LIST", - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST", - "TARGETING_TYPE_GENDER", - "TARGETING_TYPE_VIDEO_PLAYER_SIZE", - "TARGETING_TYPE_USER_REWARDED_CONTENT", - "TARGETING_TYPE_PARENTAL_STATUS", - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION", - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", - "TARGETING_TYPE_DEVICE_TYPE", - "TARGETING_TYPE_AUDIENCE_GROUP", - "TARGETING_TYPE_BROWSER", - "TARGETING_TYPE_HOUSEHOLD_INCOME", - "TARGETING_TYPE_ON_SCREEN_POSITION", - "TARGETING_TYPE_THIRD_PARTY_VERIFIER", - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", - "TARGETING_TYPE_ENVIRONMENT", - "TARGETING_TYPE_CARRIER_AND_ISP", - "TARGETING_TYPE_OPERATING_SYSTEM", - "TARGETING_TYPE_DEVICE_MAKE_MODEL", - "TARGETING_TYPE_KEYWORD", - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", - "TARGETING_TYPE_VIEWABILITY", - "TARGETING_TYPE_CATEGORY", - "TARGETING_TYPE_INVENTORY_SOURCE", - "TARGETING_TYPE_LANGUAGE", - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", - "TARGETING_TYPE_GEO_REGION", - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", - "TARGETING_TYPE_EXCHANGE", - "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_POI", - "TARGETING_TYPE_BUSINESS_CHAIN", - "TARGETING_TYPE_CONTENT_DURATION", - "TARGETING_TYPE_CONTENT_STREAM_TYPE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION", - "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE", - "TARGETING_TYPE_CONTENT_GENRE" - ], - "enumDescriptions": [ - "Default value when type is not specified or is unknown in this version.", - "Target a channel (a custom group of related websites or apps).", - "Target an app category (for example, education or puzzle games).", - "Target a specific app (for example, Angry Birds).", - "Target a specific url (for example, quora.com).", - "Target ads during a chosen time period on a specific day.", - "Target ads to a specific age range (for example, 18-24).", - "Target ads to the specified regions on a regional location list.", - "Target ads to the specified points of interest on a proximity location list.", - "Target ads to a specific gender (for example, female or male).", - "Target a specific video player size for video ads.", - "Target user rewarded content for video ads.", - "Target ads to a specific parental status (for example, parent or not a parent).", - "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", - "Target ads in a specific content outstream position.", - "Target ads to a specific device type (for example, tablet or connected TV).", - "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", - "Target ads to specific web browsers (for example, Chrome).", - "Target ads to a specific household income range (for example, top 10%).", - "Target ads in a specific on screen position.", - "Filter web sites through third party verification (for example, IAS or DoubleVerify).", - "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", - "Filter website content by sensitive categories (for example, adult).", - "Target ads to a specific environment (for example, web or app).", - "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", - "Target ads to a specific operating system (for example, macOS).", - "Target ads to a specific device make or model (for example, Roku or Samsung).", - "Target ads to a specific keyword (for example, dog or retriever).", - "Target ads to a specific negative keyword list.", - "Target ads to a specific viewability (for example, 80% viewable).", - "Target ads to a specific content category (for example, arts & entertainment).", - "Purchase impressions from specific deals and auction packages.", - "Target ads to a specific language (for example, English or Japanese).", - "Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", - "Target ads to a specific regional location (for example, a city or state).", - "Purchase impressions from a group of deals and auction packages.", - "Purchase impressions from specific exchanges.", - "Purchase impressions from specific sub-exchanges.", - "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", - "Target ads around locations of a business chain within a specific geo region.", - "Target ads to a specific video content duration.", - "Target ads to a specific video content stream type.", - "Target ads to a specific native content position.", - "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type.", - "Target ads to a specific content genre." - ], - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/targetingTypes/{+targetingType}/targetingOptions/{+targetingOptionId}", - "response": { - "$ref": "TargetingOption" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "list": { - "description": "Lists targeting options of a given type.", - "flatPath": "v1/targetingTypes/{targetingTypesId}/targetingOptions", - "httpMethod": "GET", - "id": "displayvideo.targetingTypes.targetingOptions.list", - "parameterOrder": [ - "targetingType" - ], - "parameters": { - "advertiserId": { - "description": "Required. The Advertiser this request is being made in the context of.", - "format": "int64", - "location": "query", - "type": "string" - }, - "filter": { - "description": "Allows filtering by targeting option fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by `OR` logical operators. * A restriction has the form of `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` operator. Supported fields: * `carrierAndIspDetails.type` * `geoRegionDetails.geoRegionType` * `targetingOptionId` Examples: * All `GEO REGION` targeting options that belong to sub type `GEO_REGION_TYPE_COUNTRY` or `GEO_REGION_TYPE_STATE`: `geoRegionDetails.geoRegionType=\"GEO_REGION_TYPE_COUNTRY\" OR geoRegionDetails.geoRegionType=\"GEO_REGION_TYPE_STATE\"` * All `CARRIER AND ISP` targeting options that belong to sub type `CARRIER_AND_ISP_TYPE_CARRIER`: `carrierAndIspDetails.type=\"CARRIER_AND_ISP_TYPE_CARRIER\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `targetingOptionId` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `targetingOptionId desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListTargetingOptions` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - }, - "targetingType": { - "description": "Required. The type of targeting option to be listed. Accepted values are: * `TARGETING_TYPE_APP_CATEGORY` * `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_DEVICE_TYPE` * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_CARRIER_AND_ISP` * `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_VIEWABILITY` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_EXCHANGE` * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * `TARGETING_TYPE_OMID`", - "enum": [ - "TARGETING_TYPE_UNSPECIFIED", - "TARGETING_TYPE_CHANNEL", - "TARGETING_TYPE_APP_CATEGORY", - "TARGETING_TYPE_APP", - "TARGETING_TYPE_URL", - "TARGETING_TYPE_DAY_AND_TIME", - "TARGETING_TYPE_AGE_RANGE", - "TARGETING_TYPE_REGIONAL_LOCATION_LIST", - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST", - "TARGETING_TYPE_GENDER", - "TARGETING_TYPE_VIDEO_PLAYER_SIZE", - "TARGETING_TYPE_USER_REWARDED_CONTENT", - "TARGETING_TYPE_PARENTAL_STATUS", - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION", - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", - "TARGETING_TYPE_DEVICE_TYPE", - "TARGETING_TYPE_AUDIENCE_GROUP", - "TARGETING_TYPE_BROWSER", - "TARGETING_TYPE_HOUSEHOLD_INCOME", - "TARGETING_TYPE_ON_SCREEN_POSITION", - "TARGETING_TYPE_THIRD_PARTY_VERIFIER", - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", - "TARGETING_TYPE_ENVIRONMENT", - "TARGETING_TYPE_CARRIER_AND_ISP", - "TARGETING_TYPE_OPERATING_SYSTEM", - "TARGETING_TYPE_DEVICE_MAKE_MODEL", - "TARGETING_TYPE_KEYWORD", - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", - "TARGETING_TYPE_VIEWABILITY", - "TARGETING_TYPE_CATEGORY", - "TARGETING_TYPE_INVENTORY_SOURCE", - "TARGETING_TYPE_LANGUAGE", - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", - "TARGETING_TYPE_GEO_REGION", - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", - "TARGETING_TYPE_EXCHANGE", - "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_POI", - "TARGETING_TYPE_BUSINESS_CHAIN", - "TARGETING_TYPE_CONTENT_DURATION", - "TARGETING_TYPE_CONTENT_STREAM_TYPE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION", - "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE", - "TARGETING_TYPE_CONTENT_GENRE" - ], - "enumDescriptions": [ - "Default value when type is not specified or is unknown in this version.", - "Target a channel (a custom group of related websites or apps).", - "Target an app category (for example, education or puzzle games).", - "Target a specific app (for example, Angry Birds).", - "Target a specific url (for example, quora.com).", - "Target ads during a chosen time period on a specific day.", - "Target ads to a specific age range (for example, 18-24).", - "Target ads to the specified regions on a regional location list.", - "Target ads to the specified points of interest on a proximity location list.", - "Target ads to a specific gender (for example, female or male).", - "Target a specific video player size for video ads.", - "Target user rewarded content for video ads.", - "Target ads to a specific parental status (for example, parent or not a parent).", - "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", - "Target ads in a specific content outstream position.", - "Target ads to a specific device type (for example, tablet or connected TV).", - "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", - "Target ads to specific web browsers (for example, Chrome).", - "Target ads to a specific household income range (for example, top 10%).", - "Target ads in a specific on screen position.", - "Filter web sites through third party verification (for example, IAS or DoubleVerify).", - "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", - "Filter website content by sensitive categories (for example, adult).", - "Target ads to a specific environment (for example, web or app).", - "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", - "Target ads to a specific operating system (for example, macOS).", - "Target ads to a specific device make or model (for example, Roku or Samsung).", - "Target ads to a specific keyword (for example, dog or retriever).", - "Target ads to a specific negative keyword list.", - "Target ads to a specific viewability (for example, 80% viewable).", - "Target ads to a specific content category (for example, arts & entertainment).", - "Purchase impressions from specific deals and auction packages.", - "Target ads to a specific language (for example, English or Japanese).", - "Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", - "Target ads to a specific regional location (for example, a city or state).", - "Purchase impressions from a group of deals and auction packages.", - "Purchase impressions from specific exchanges.", - "Purchase impressions from specific sub-exchanges.", - "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", - "Target ads around locations of a business chain within a specific geo region.", - "Target ads to a specific video content duration.", - "Target ads to a specific video content stream type.", - "Target ads to a specific native content position.", - "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type.", - "Target ads to a specific content genre." - ], - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/targetingTypes/{+targetingType}/targetingOptions", - "response": { - "$ref": "ListTargetingOptionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - }, - "search": { - "description": "Searches for targeting options of a given type based on the given search terms.", - "flatPath": "v1/targetingTypes/{targetingTypesId}/targetingOptions:search", - "httpMethod": "POST", - "id": "displayvideo.targetingTypes.targetingOptions.search", - "parameterOrder": [ - "targetingType" - ], - "parameters": { - "targetingType": { - "description": "Required. The type of targeting options to retrieve. Accepted values are: * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_POI` * `TARGETING_TYPE_BUSINESS_CHAIN`", - "enum": [ - "TARGETING_TYPE_UNSPECIFIED", - "TARGETING_TYPE_CHANNEL", - "TARGETING_TYPE_APP_CATEGORY", - "TARGETING_TYPE_APP", - "TARGETING_TYPE_URL", - "TARGETING_TYPE_DAY_AND_TIME", - "TARGETING_TYPE_AGE_RANGE", - "TARGETING_TYPE_REGIONAL_LOCATION_LIST", - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST", - "TARGETING_TYPE_GENDER", - "TARGETING_TYPE_VIDEO_PLAYER_SIZE", - "TARGETING_TYPE_USER_REWARDED_CONTENT", - "TARGETING_TYPE_PARENTAL_STATUS", - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION", - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", - "TARGETING_TYPE_DEVICE_TYPE", - "TARGETING_TYPE_AUDIENCE_GROUP", - "TARGETING_TYPE_BROWSER", - "TARGETING_TYPE_HOUSEHOLD_INCOME", - "TARGETING_TYPE_ON_SCREEN_POSITION", - "TARGETING_TYPE_THIRD_PARTY_VERIFIER", - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", - "TARGETING_TYPE_ENVIRONMENT", - "TARGETING_TYPE_CARRIER_AND_ISP", - "TARGETING_TYPE_OPERATING_SYSTEM", - "TARGETING_TYPE_DEVICE_MAKE_MODEL", - "TARGETING_TYPE_KEYWORD", - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", - "TARGETING_TYPE_VIEWABILITY", - "TARGETING_TYPE_CATEGORY", - "TARGETING_TYPE_INVENTORY_SOURCE", - "TARGETING_TYPE_LANGUAGE", - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", - "TARGETING_TYPE_GEO_REGION", - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", - "TARGETING_TYPE_EXCHANGE", - "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_POI", - "TARGETING_TYPE_BUSINESS_CHAIN", - "TARGETING_TYPE_CONTENT_DURATION", - "TARGETING_TYPE_CONTENT_STREAM_TYPE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION", - "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE", - "TARGETING_TYPE_CONTENT_GENRE" - ], - "enumDescriptions": [ - "Default value when type is not specified or is unknown in this version.", - "Target a channel (a custom group of related websites or apps).", - "Target an app category (for example, education or puzzle games).", - "Target a specific app (for example, Angry Birds).", - "Target a specific url (for example, quora.com).", - "Target ads during a chosen time period on a specific day.", - "Target ads to a specific age range (for example, 18-24).", - "Target ads to the specified regions on a regional location list.", - "Target ads to the specified points of interest on a proximity location list.", - "Target ads to a specific gender (for example, female or male).", - "Target a specific video player size for video ads.", - "Target user rewarded content for video ads.", - "Target ads to a specific parental status (for example, parent or not a parent).", - "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", - "Target ads in a specific content outstream position.", - "Target ads to a specific device type (for example, tablet or connected TV).", - "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", - "Target ads to specific web browsers (for example, Chrome).", - "Target ads to a specific household income range (for example, top 10%).", - "Target ads in a specific on screen position.", - "Filter web sites through third party verification (for example, IAS or DoubleVerify).", - "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", - "Filter website content by sensitive categories (for example, adult).", - "Target ads to a specific environment (for example, web or app).", - "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", - "Target ads to a specific operating system (for example, macOS).", - "Target ads to a specific device make or model (for example, Roku or Samsung).", - "Target ads to a specific keyword (for example, dog or retriever).", - "Target ads to a specific negative keyword list.", - "Target ads to a specific viewability (for example, 80% viewable).", - "Target ads to a specific content category (for example, arts & entertainment).", - "Purchase impressions from specific deals and auction packages.", - "Target ads to a specific language (for example, English or Japanese).", - "Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", - "Target ads to a specific regional location (for example, a city or state).", - "Purchase impressions from a group of deals and auction packages.", - "Purchase impressions from specific exchanges.", - "Purchase impressions from specific sub-exchanges.", - "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", - "Target ads around locations of a business chain within a specific geo region.", - "Target ads to a specific video content duration.", - "Target ads to a specific video content stream type.", - "Target ads to a specific native content position.", - "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type.", - "Target ads to a specific content genre." - ], - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/targetingTypes/{+targetingType}/targetingOptions:search", - "request": { - "$ref": "SearchTargetingOptionsRequest" - }, - "response": { - "$ref": "SearchTargetingOptionsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video" - ] - } - } - } - } - }, - "users": { - "methods": { - "bulkEditAssignedUserRoles": { - "description": "Bulk edits user roles for a user. The operation will delete the assigned user roles provided in BulkEditAssignedUserRolesRequest.deletedAssignedUserRoles and then assign the user roles provided in BulkEditAssignedUserRolesRequest.createdAssignedUserRoles. This method has unique authentication requirements. Read the prerequisites in our [Managing Users guide](/display-video/api/guides/users/overview#prerequisites) before using this method. The \"Try this method\" feature does not work for this method.", - "flatPath": "v1/users/{usersId}:bulkEditAssignedUserRoles", - "httpMethod": "POST", - "id": "displayvideo.users.bulkEditAssignedUserRoles", - "parameterOrder": [ - "userId" - ], - "parameters": { - "userId": { - "description": "Required. The ID of the user to which the assigned user roles belong.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/users/{+userId}:bulkEditAssignedUserRoles", - "request": { - "$ref": "BulkEditAssignedUserRolesRequest" - }, - "response": { - "$ref": "BulkEditAssignedUserRolesResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video-user-management" - ] - }, - "create": { - "description": "Creates a new user. Returns the newly created user if successful. This method has unique authentication requirements. Read the prerequisites in our [Managing Users guide](/display-video/api/guides/users/overview#prerequisites) before using this method. The \"Try this method\" feature does not work for this method.", - "flatPath": "v1/users", - "httpMethod": "POST", - "id": "displayvideo.users.create", - "parameterOrder": [], - "parameters": {}, - "path": "v1/users", - "request": { - "$ref": "User" - }, - "response": { - "$ref": "User" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video-user-management" - ] - }, - "delete": { - "description": "Deletes a user. This method has unique authentication requirements. Read the prerequisites in our [Managing Users guide](/display-video/api/guides/users/overview#prerequisites) before using this method. The \"Try this method\" feature does not work for this method.", - "flatPath": "v1/users/{usersId}", - "httpMethod": "DELETE", - "id": "displayvideo.users.delete", - "parameterOrder": [ - "userId" - ], - "parameters": { - "userId": { - "description": "Required. The ID of the user to delete.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/users/{+userId}", - "response": { - "$ref": "Empty" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video-user-management" - ] - }, - "get": { - "description": "Gets a user. This method has unique authentication requirements. Read the prerequisites in our [Managing Users guide](/display-video/api/guides/users/overview#prerequisites) before using this method. The \"Try this method\" feature does not work for this method.", - "flatPath": "v1/users/{usersId}", - "httpMethod": "GET", - "id": "displayvideo.users.get", - "parameterOrder": [ - "userId" - ], - "parameters": { - "userId": { - "description": "Required. The ID of the user to fetch.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/users/{+userId}", - "response": { - "$ref": "User" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video-user-management" - ] - }, - "list": { - "description": "Lists users that are accessible to the current user. If two users have user roles on the same partner or advertiser, they can access each other. This method has unique authentication requirements. Read the prerequisites in our [Managing Users guide](/display-video/api/guides/users/overview#prerequisites) before using this method. The \"Try this method\" feature does not work for this method.", - "flatPath": "v1/users", - "httpMethod": "GET", - "id": "displayvideo.users.list", - "parameterOrder": [], - "parameters": { - "filter": { - "description": "Allows filtering by user fields. Supported syntax: * Filter expressions are made up of one or more restrictions. * Restrictions can be combined by the logical operator `AND`. * A restriction has the form of `{field} {operator} {value}`. * The `budget.budget_segments.date_range.end_date` field must use the `LESS THAN (<)` operator. * The `displayName and `email` field must use the `HAS (:)` operator. * All other fields must use the `EQUALS (=)` operator. Supported fields: * `assignedUserRole.advertiserId` * `assignedUserRole.entityType` * This is synthetic field of `AssignedUserRole` used for filtering. Identifies the type of entity to which the user role is assigned. Valid values are `Partner` and `Advertiser`. * `assignedUserRole.parentPartnerId` * This is a synthetic field of `AssignedUserRole` used for filtering. Identifies the parent partner of the entity to which the user role is assigned. * `assignedUserRole.partnerId` * `assignedUserRole.userRole` * `displayName` * `email` Examples: * The user with `displayName` containing \"foo\": `displayName:\"foo\"` * The user with `email` containing \"bar\": `email:\"bar\"` * All users with standard user roles: `assignedUserRole.userRole=\"STANDARD\"` * All users with user roles for partner 123: `assignedUserRole.partnerId=\"123\"` * All users with user roles for advertiser 123: `assignedUserRole.advertiserId=\"123\"` * All users with partner level user roles: `entityType=\"PARTNER\"` * All users with user roles for partner 123 and advertisers under partner 123: `parentPartnerId=\"123\"` The length of this field should be no more than 500 characters. Reference our [filter `LIST` requests](/display-video/api/guides/how-tos/filters) guide for more information.", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Field by which to sort the list. Acceptable values are: * `displayName` (default) The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. For example, `displayName desc`.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListUsers` method. If not specified, the first page of results will be returned.", - "location": "query", - "type": "string" - } - }, - "path": "v1/users", - "response": { - "$ref": "ListUsersResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video-user-management" - ] - }, - "patch": { - "description": "Updates an existing user. Returns the updated user if successful. This method has unique authentication requirements. Read the prerequisites in our [Managing Users guide](/display-video/api/guides/users/overview#prerequisites) before using this method. The \"Try this method\" feature does not work for this method.", - "flatPath": "v1/users/{usersId}", - "httpMethod": "PATCH", - "id": "displayvideo.users.patch", - "parameterOrder": [ - "userId" - ], - "parameters": { - "updateMask": { - "description": "Required. The mask to control which fields to update.", - "format": "google-fieldmask", - "location": "query", - "type": "string" - }, - "userId": { - "description": "Output only. The unique ID of the user. Assigned by the system.", - "format": "int64", - "location": "path", - "pattern": "^[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/users/{+userId}", - "request": { - "$ref": "User" - }, - "response": { - "$ref": "User" - }, - "scopes": [ - "https://www.googleapis.com/auth/display-video-user-management" - ] - } - } - } - }, - "schemas": { - "ActivateManualTriggerRequest": { - "description": "Request message for ManualTriggerService.ActivateManualTrigger.", - "id": "ActivateManualTriggerRequest", - "properties": {}, - "type": "object" - }, - "ActiveViewVideoViewabilityMetricConfig": { - "description": "Configuration for custom Active View video viewability metrics.", - "id": "ActiveViewVideoViewabilityMetricConfig", - "properties": { - "displayName": { - "description": "Required. The display name of the custom metric.", - "type": "string" - }, - "minimumDuration": { - "description": "The minimum visible video duration required (in seconds) in order for an impression to be recorded. You must specify minimum_duration, minimum_quartile or both. If both are specified, an impression meets the metric criteria if either requirement is met (whichever happens first).", - "enum": [ - "VIDEO_DURATION_UNSPECIFIED", - "VIDEO_DURATION_SECONDS_NONE", - "VIDEO_DURATION_SECONDS_0", - "VIDEO_DURATION_SECONDS_1", - "VIDEO_DURATION_SECONDS_2", - "VIDEO_DURATION_SECONDS_3", - "VIDEO_DURATION_SECONDS_4", - "VIDEO_DURATION_SECONDS_5", - "VIDEO_DURATION_SECONDS_6", - "VIDEO_DURATION_SECONDS_7", - "VIDEO_DURATION_SECONDS_8", - "VIDEO_DURATION_SECONDS_9", - "VIDEO_DURATION_SECONDS_10", - "VIDEO_DURATION_SECONDS_11", - "VIDEO_DURATION_SECONDS_12", - "VIDEO_DURATION_SECONDS_13", - "VIDEO_DURATION_SECONDS_14", - "VIDEO_DURATION_SECONDS_15", - "VIDEO_DURATION_SECONDS_30", - "VIDEO_DURATION_SECONDS_45", - "VIDEO_DURATION_SECONDS_60" - ], - "enumDescriptions": [ - "Value is not specified or is unknown in this version.", - "No duration value.", - "0 seconds.", - "1 second.", - "2 seconds.", - "3 seconds.", - "4 seconds.", - "5 seconds.", - "6 seconds.", - "7 seconds.", - "8 seconds.", - "9 seconds.", - "10 seconds.", - "11 seconds.", - "12 seconds.", - "13 seconds.", - "14 seconds.", - "15 seconds.", - "30 seconds.", - "45 seconds.", - "60 seconds." - ], - "type": "string" - }, - "minimumQuartile": { - "description": "The minimum visible video duration required, based on the video quartiles, in order for an impression to be recorded. You must specify minimum_duration, minimum_quartile or both. If both are specified, an impression meets the metric criteria if either requirement is met (whichever happens first).", - "enum": [ - "VIDEO_DURATION_QUARTILE_UNSPECIFIED", - "VIDEO_DURATION_QUARTILE_NONE", - "VIDEO_DURATION_QUARTILE_FIRST", - "VIDEO_DURATION_QUARTILE_SECOND", - "VIDEO_DURATION_QUARTILE_THIRD", - "VIDEO_DURATION_QUARTILE_FOURTH" - ], - "enumDescriptions": [ - "Value is not specified or is unknown in this version.", - "No quartile value.", - "First quartile.", - "Second quartile (midpoint).", - "Third quartile.", - "Fourth quartile (completion)." - ], - "type": "string" - }, - "minimumViewability": { - "description": "Required. The minimum percentage of the video ad's pixels visible on the screen in order for an impression to be recorded.", - "enum": [ - "VIEWABILITY_PERCENT_UNSPECIFIED", - "VIEWABILITY_PERCENT_0", - "VIEWABILITY_PERCENT_25", - "VIEWABILITY_PERCENT_50", - "VIEWABILITY_PERCENT_75", - "VIEWABILITY_PERCENT_100" - ], - "enumDescriptions": [ - "Value is not specified or is unknown in this version.", - "0% viewable.", - "25% viewable.", - "50% viewable.", - "75% viewable.", - "100% viewable." - ], - "type": "string" - }, - "minimumVolume": { - "description": "Required. The minimum percentage of the video ad's volume required in order for an impression to be recorded.", - "enum": [ - "VIDEO_VOLUME_PERCENT_UNSPECIFIED", - "VIDEO_VOLUME_PERCENT_0", - "VIDEO_VOLUME_PERCENT_10" - ], - "enumDescriptions": [ - "Value is not specified or is unknown in this version.", - "0% volume.", - "10% volume." - ], - "type": "string" - } - }, - "type": "object" - }, - "Adloox": { - "description": "Details of Adloox settings.", - "id": "Adloox", - "properties": { - "excludedAdlooxCategories": { - "description": "Adloox's brand safety settings.", - "items": { - "enum": [ - "ADLOOX_UNSPECIFIED", - "ADULT_CONTENT_HARD", - "ADULT_CONTENT_SOFT", - "ILLEGAL_CONTENT", - "BORDERLINE_CONTENT", - "DISCRIMINATORY_CONTENT", - "VIOLENT_CONTENT_WEAPONS", - "LOW_VIEWABILITY_DOMAINS", - "FRAUD" - ], - "enumDescriptions": [ - "This enum is only a placeholder and it doesn't specify any Adloox option.", - "Adult content (hard).", - "Adult content (soft).", - "Illegal content.", - "Borderline content.", - "Discriminatory content.", - "Violent content & weapons.", - "Low viewability domains.", - "Fraud." - ], - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "Advertiser": { - "description": "A single advertiser in Display & Video 360 (DV360).", - "id": "Advertiser", - "properties": { - "adServerConfig": { - "$ref": "AdvertiserAdServerConfig", - "description": "Required. Immutable. Ad server related settings of the advertiser." - }, - "advertiserId": { - "description": "Output only. The unique ID of the advertiser. Assigned by the system.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "creativeConfig": { - "$ref": "AdvertiserCreativeConfig", - "description": "Required. Creative related settings of the advertiser." - }, - "dataAccessConfig": { - "$ref": "AdvertiserDataAccessConfig", - "description": "Settings that control how advertiser data may be accessed." - }, - "displayName": { - "description": "Required. The display name of the advertiser. Must be UTF-8 encoded with a maximum size of 240 bytes.", - "type": "string" - }, - "entityStatus": { - "description": "Required. Controls whether or not insertion orders and line items of the advertiser can spend their budgets and bid on inventory. * Accepted values are `ENTITY_STATUS_ACTIVE`, `ENTITY_STATUS_PAUSED` and `ENTITY_STATUS_SCHEDULED_FOR_DELETION`. * If set to `ENTITY_STATUS_SCHEDULED_FOR_DELETION`, the advertiser will be deleted 30 days from when it was first scheduled for deletion.", - "enum": [ - "ENTITY_STATUS_UNSPECIFIED", - "ENTITY_STATUS_ACTIVE", - "ENTITY_STATUS_ARCHIVED", - "ENTITY_STATUS_DRAFT", - "ENTITY_STATUS_PAUSED", - "ENTITY_STATUS_SCHEDULED_FOR_DELETION" - ], - "enumDescriptions": [ - "Default value when status is not specified or is unknown in this version.", - "The entity is enabled to bid and spend budget.", - "The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", - "The entity is under draft. Bidding and budget spending are disabled.", - "Bidding and budget spending are paused for the entity.", - "The entity is scheduled for deletion." - ], - "type": "string" - }, - "generalConfig": { - "$ref": "AdvertiserGeneralConfig", - "description": "Required. General settings of the advertiser." - }, - "integrationDetails": { - "$ref": "IntegrationDetails", - "description": "Integration details of the advertiser. Only integrationCode is currently applicable to advertiser. Other fields of IntegrationDetails are not supported and will be ignored if provided." - }, - "name": { - "description": "Output only. The resource name of the advertiser.", - "readOnly": true, - "type": "string" - }, - "partnerId": { - "description": "Required. Immutable. The unique ID of the partner that the advertiser belongs to.", - "format": "int64", - "type": "string" - }, - "prismaEnabled": { - "description": "Whether integration with Mediaocean (Prisma) is enabled. By enabling this, you agree to the following: On behalf of my company, I authorize Mediaocean (Prisma) to send budget segment plans to Google, and I authorize Google to send corresponding reporting and invoices from DV360 to Mediaocean for the purposes of budget planning, billing, and reconciliation for this advertiser.", - "type": "boolean" - }, - "servingConfig": { - "$ref": "AdvertiserTargetingConfig", - "description": "Targeting settings related to ad serving of the advertiser." - }, - "updateTime": { - "description": "Output only. The timestamp when the advertiser was last updated. Assigned by the system.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "AdvertiserAdServerConfig": { - "description": "Ad server related settings of an advertiser.", - "id": "AdvertiserAdServerConfig", - "properties": { - "cmHybridConfig": { - "$ref": "CmHybridConfig", - "description": "The configuration for advertisers that use both Campaign Manager 360 (CM360) and third-party ad servers." - }, - "thirdPartyOnlyConfig": { - "$ref": "ThirdPartyOnlyConfig", - "description": "The configuration for advertisers that use third-party ad servers only." - } - }, - "type": "object" - }, - "AdvertiserCreativeConfig": { - "description": "Creatives related settings of an advertiser.", - "id": "AdvertiserCreativeConfig", - "properties": { - "dynamicCreativeEnabled": { - "description": "Whether or not the advertiser is enabled for dynamic creatives.", - "type": "boolean" - }, - "iasClientId": { - "description": "An ID for configuring campaign monitoring provided by Integral Ad Service (IAS). The DV360 system will append an IAS \"Campaign Monitor\" tag containing this ID to the creative tag.", - "format": "int64", - "type": "string" - }, - "obaComplianceDisabled": { - "description": "Whether or not to use DV360's Online Behavioral Advertising (OBA) compliance. Warning: Changing OBA settings may cause the audit status of your creatives to be reset by some ad exchanges, making them ineligible to serve until they are re-approved.", - "type": "boolean" - }, - "videoCreativeDataSharingAuthorized": { - "description": "By setting this field to `true`, you, on behalf of your company, authorize Google to use video creatives associated with this Display & Video 360 advertiser to provide reporting and features related to the advertiser's television campaigns. Applicable only when the advertiser has a CM360 hybrid ad server configuration.", - "type": "boolean" - } - }, - "type": "object" - }, - "AdvertiserDataAccessConfig": { - "description": "Settings that control how advertiser related data may be accessed.", - "id": "AdvertiserDataAccessConfig", - "properties": { - "sdfConfig": { - "$ref": "AdvertiserSdfConfig", - "description": "Structured Data Files (SDF) settings for the advertiser. If not specified, the SDF settings of the parent partner are used." - } - }, - "type": "object" - }, - "AdvertiserGeneralConfig": { - "description": "General settings of an advertiser.", - "id": "AdvertiserGeneralConfig", - "properties": { - "currencyCode": { - "description": "Required. Immutable. Advertiser's currency in ISO 4217 format. Accepted codes and the currencies they represent are: Currency Code : Currency Name * `ARS` : Argentine Peso * `AUD` : Australian Dollar * `BRL` : Brazilian Real * `CAD` : Canadian Dollar * `CHF` : Swiss Franc * `CLP` : Chilean Peso * `CNY` : Chinese Yuan * `COP` : Colombian Peso * `CZK` : Czech Koruna * `DKK` : Danish Krone * `EGP` : Egyption Pound * `EUR` : Euro * `GBP` : British Pound * `HKD` : Hong Kong Dollar * `HUF` : Hungarian Forint * `IDR` : Indonesian Rupiah * `ILS` : Israeli Shekel * `INR` : Indian Rupee * `JPY` : Japanese Yen * `KRW` : South Korean Won * `MXN` : Mexican Pesos * `MYR` : Malaysian Ringgit * `NGN` : Nigerian Naira * `NOK` : Norwegian Krone * `NZD` : New Zealand Dollar * `PEN` : Peruvian Nuevo Sol * `PLN` : Polish Zloty * `RON` : New Romanian Leu * `RUB` : Russian Ruble * `SEK` : Swedish Krona * `TRY` : Turkish Lira * `TWD` : New Taiwan Dollar * `USD` : US Dollar * `ZAR` : South African Rand", - "type": "string" - }, - "domainUrl": { - "description": "Required. The domain URL of the advertiser's primary website. The system will send this information to publishers that require website URL to associate a campaign with an advertiser. Provide a URL with no path or query string, beginning with `http:` or `https:`. For example, http://www.example.com", - "type": "string" - }, - "timeZone": { - "description": "Output only. The standard TZ database name of the advertiser's time zone. For example, `America/New_York`. See more at: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones For CM360 hybrid advertisers, the time zone is the same as that of the associated CM360 account; for third-party only advertisers, the time zone is the same as that of the parent partner.", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "AdvertiserSdfConfig": { - "description": "Structured Data Files (SDF) settings of an advertiser.", - "id": "AdvertiserSdfConfig", - "properties": { - "overridePartnerSdfConfig": { - "description": "Whether or not this advertiser overrides the SDF configuration of its parent partner. By default, an advertiser inherits the SDF configuration from the parent partner. To override the partner configuration, set this field to `true` and provide the new configuration in sdfConfig.", - "type": "boolean" - }, - "sdfConfig": { - "$ref": "SdfConfig", - "description": "The SDF configuration for the advertiser. * Required when overridePartnerSdfConfig is `true`. * Output only when overridePartnerSdfConfig is `false`." - } - }, - "type": "object" - }, - "AdvertiserTargetingConfig": { - "description": "Targeting settings related to ad serving of an advertiser.", - "id": "AdvertiserTargetingConfig", - "properties": { - "exemptTvFromViewabilityTargeting": { - "description": "Whether or not connected TV devices are exempt from viewability targeting for all video line items under the advertiser.", - "type": "boolean" - } - }, - "type": "object" - }, - "AgeRangeAssignedTargetingOptionDetails": { - "description": "Represents a targetable age range. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_AGE_RANGE`.", - "id": "AgeRangeAssignedTargetingOptionDetails", - "properties": { - "ageRange": { - "description": "Required. The age range of an audience. We only support targeting a continuous age range of an audience. Thus, the age range represented in this field can be 1) targeted solely, or, 2) part of a larger continuous age range. The reach of a continuous age range targeting can be expanded by also targeting an audience of an unknown age.", - "enum": [ - "AGE_RANGE_UNSPECIFIED", - "AGE_RANGE_18_24", - "AGE_RANGE_25_34", - "AGE_RANGE_35_44", - "AGE_RANGE_45_54", - "AGE_RANGE_55_64", - "AGE_RANGE_65_PLUS", - "AGE_RANGE_UNKNOWN" - ], - "enumDescriptions": [ - "Default value when age range is not specified in this version. This enum is a placeholder for default value and does not represent a real age range option.", - "The age range of the audience is 18 to 24.", - "The age range of the audience is 25 to 34.", - "The age range of the audience is 35 to 44.", - "The age range of the audience is 45 to 54.", - "The age range of the audience is 55 to 64.", - "The age range of the audience is 65 and up.", - "The age range of the audience is unknown." - ], - "type": "string" - }, - "targetingOptionId": { - "description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_AGE_RANGE`.", - "type": "string" - } - }, - "type": "object" - }, - "AgeRangeTargetingOptionDetails": { - "description": "Represents a targetable age range. This will be populated in the age_range_details field when targeting_type is `TARGETING_TYPE_AGE_RANGE`.", - "id": "AgeRangeTargetingOptionDetails", - "properties": { - "ageRange": { - "description": "Output only. The age range of an audience.", - "enum": [ - "AGE_RANGE_UNSPECIFIED", - "AGE_RANGE_18_24", - "AGE_RANGE_25_34", - "AGE_RANGE_35_44", - "AGE_RANGE_45_54", - "AGE_RANGE_55_64", - "AGE_RANGE_65_PLUS", - "AGE_RANGE_UNKNOWN" - ], - "enumDescriptions": [ - "Default value when age range is not specified in this version. This enum is a placeholder for default value and does not represent a real age range option.", - "The age range of the audience is 18 to 24.", - "The age range of the audience is 25 to 34.", - "The age range of the audience is 35 to 44.", - "The age range of the audience is 45 to 54.", - "The age range of the audience is 55 to 64.", - "The age range of the audience is 65 and up.", - "The age range of the audience is unknown." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "AppAssignedTargetingOptionDetails": { - "description": "Details for assigned app targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_APP`.", - "id": "AppAssignedTargetingOptionDetails", - "properties": { - "appId": { - "description": "Required. The ID of the app. Android's Play store app uses bundle ID, for example `com.google.android.gm`. Apple's App store app ID uses 9 digit string, for example `422689480`.", - "type": "string" - }, - "appPlatform": { - "description": "Indicates the platform of the targeted app. If this field is not specified, the app platform will be assumed to be mobile (i.e., Android or iOS), and we will derive the appropriate mobile platform from the app ID.", - "enum": [ - "APP_PLATFORM_UNSPECIFIED", - "APP_PLATFORM_IOS", - "APP_PLATFORM_ANDROID", - "APP_PLATFORM_ROKU", - "APP_PLATFORM_AMAZON_FIRETV", - "APP_PLATFORM_PLAYSTATION", - "APP_PLATFORM_APPLE_TV", - "APP_PLATFORM_XBOX", - "APP_PLATFORM_SAMSUNG_TV", - "APP_PLATFORM_ANDROID_TV", - "APP_PLATFORM_GENERIC_CTV" - ], - "enumDescriptions": [ - "Default value when app platform is not specified in this version. This enum is a placeholder for default value and does not represent a real platform option.", - "The app platform is iOS.", - "The app platform is Android.", - "The app platform is Roku.", - "The app platform is Amazon FireTV.", - "The app platform is Playstation.", - "The app platform is Apple TV.", - "The app platform is Xbox.", - "The app platform is Samsung TV.", - "The app platform is Android TV.", - "The app platform is a CTV platform that is not explicitly listed elsewhere." - ], - "type": "string" - }, - "displayName": { - "description": "Output only. The display name of the app.", - "readOnly": true, - "type": "string" - }, - "negative": { - "description": "Indicates if this option is being negatively targeted.", - "type": "boolean" - } - }, - "type": "object" - }, - "AppCategoryAssignedTargetingOptionDetails": { - "description": "Details for assigned app category targeting option. This will be populated in the app_category_details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_APP_CATEGORY`.", - "id": "AppCategoryAssignedTargetingOptionDetails", - "properties": { - "displayName": { - "description": "Output only. The display name of the app category.", - "readOnly": true, - "type": "string" - }, - "negative": { - "description": "Indicates if this option is being negatively targeted.", - "type": "boolean" - }, - "targetingOptionId": { - "description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_APP_CATEGORY`.", - "type": "string" - } - }, - "type": "object" - }, - "AppCategoryTargetingOptionDetails": { - "description": "Represents a targetable collection of apps. A collection lets you target dynamic groups of related apps that are maintained by the platform, for example `All Apps/Google Play/Games`. This will be populated in the app_category_details field when targeting_type is `TARGETING_TYPE_APP_CATEGORY`.", - "id": "AppCategoryTargetingOptionDetails", - "properties": { - "displayName": { - "description": "Output only. The name of the app collection.", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "Asset": { - "description": "A single asset.", - "id": "Asset", - "properties": { - "content": { - "description": "The asset content. For uploaded assets, the content is the serving path.", - "type": "string" - }, - "mediaId": { - "description": "Media ID of the uploaded asset. This is a unique identifier for the asset. This ID can be passed to other API calls, e.g. CreateCreative to associate the asset with a creative. The Media ID space updated on **April 5, 2023**. Update media IDs cached before **April 5, 2023** by retrieving the new media ID from associated creative resources or re-uploading the asset.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "AssetAssociation": { - "description": "Asset association for the creative.", - "id": "AssetAssociation", - "properties": { - "asset": { - "$ref": "Asset", - "description": "The associated asset." - }, - "role": { - "description": "The role of this asset for the creative.", - "enum": [ - "ASSET_ROLE_UNSPECIFIED", - "ASSET_ROLE_MAIN", - "ASSET_ROLE_BACKUP", - "ASSET_ROLE_POLITE_LOAD", - "ASSET_ROLE_HEADLINE", - "ASSET_ROLE_LONG_HEADLINE", - "ASSET_ROLE_BODY", - "ASSET_ROLE_LONG_BODY", - "ASSET_ROLE_CAPTION_URL", - "ASSET_ROLE_CALL_TO_ACTION", - "ASSET_ROLE_ADVERTISER_NAME", - "ASSET_ROLE_PRICE", - "ASSET_ROLE_ANDROID_APP_ID", - "ASSET_ROLE_IOS_APP_ID", - "ASSET_ROLE_RATING", - "ASSET_ROLE_ICON", - "ASSET_ROLE_COVER_IMAGE" - ], - "enumDescriptions": [ - "Asset role is not specified or is unknown in this version.", - "The asset is the main asset of the creative.", - "The asset is a backup asset of the creative.", - "The asset is a polite load asset of the creative.", - "Headline of a native creative. The content must be UTF-8 encoded with a length of no more than 25 characters. This role is only supported in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO`", - "Long headline of a native creative. The content must be UTF-8 encoded with a length of no more than 50 characters. This role is only supported in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO`", - "Body text of a native creative. The content must be UTF-8 encoded with a length of no more than 90 characters. This role is only supported in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO`", - "Long body text of a native creative. The content must be UTF-8 encoded with a length of no more than 150 characters. This role is only supported in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO`", - "A short, friendly version of the landing page URL to show in the creative. This URL gives people an idea of where they'll arrive after they click on the creative. The content must be UTF-8 encoded with a length of no more than 30 characters. For example, if the landing page URL is 'http://www.example.com/page', the caption URL can be 'example.com'. The protocol (http://) is optional, but the URL can't contain spaces or special characters. This role is only supported in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO`", - "The text to use on the call-to-action button of a native creative. The content must be UTF-8 encoded with a length of no more than 15 characters. This role is only supported in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO`", - "The text that identifies the advertiser or brand name. The content must be UTF-8 encoded with a length of no more than 25 characters. This role is only supported in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO`", - "The purchase price of your app in the Google play store or iOS app store (for example, $5.99). Note that this value is not automatically synced with the actual value listed in the store. It will always be the one provided when save the creative. The content must be UTF-8 encoded with a length of no more than 15 characters. Assets of this role are read-only.", - "The ID of an Android app in the Google play store. You can find this ID in the App’s Google Play Store URL after ‘id’. For example, in https://play.google.com/store/apps/details?id=com.company.appname the identifier is com.company.appname. Assets of this role are read-only.", - "The ID of an iOS app in the Apple app store. This ID number can be found in the Apple App Store URL as the string of numbers directly after \"id\". For example, in https://apps.apple.com/us/app/gmail-email-by-google/id422689480 the ID is 422689480. Assets of this role are read-only.", - "The rating of an app in the Google play store or iOS app store. Note that this value is not automatically synced with the actual rating in the store. It will always be the one provided when save the creative. Assets of this role are read-only.", - "The icon of a creative. This role is only supported and required in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE`", - "The cover image of a native video creative. This role is only supported and required in following creative_type: * `CREATIVE_TYPE_VIDEO`" - ], - "type": "string" - } - }, - "type": "object" - }, - "AssignedInventorySource": { - "description": "An assignment between a targetable inventory source and an inventory source group.", - "id": "AssignedInventorySource", - "properties": { - "assignedInventorySourceId": { - "description": "Output only. The unique ID of the assigned inventory source. The ID is only unique within a given inventory source group. It may be reused in other contexts.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "inventorySourceId": { - "description": "Required. The ID of the inventory source entity being targeted.", - "type": "string" - }, - "name": { - "description": "Output only. The resource name of the assigned inventory source.", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "AssignedLocation": { - "description": "An assignment between a location list and a relevant targeting option.", - "id": "AssignedLocation", - "properties": { - "assignedLocationId": { - "description": "Output only. The unique ID of the assigned location. The ID is only unique within a location list. It may be reused in other contexts.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "name": { - "description": "Output only. The resource name of the assigned location.", - "readOnly": true, - "type": "string" - }, - "targetingOptionId": { - "description": "Required. The ID of the targeting option assigned to the location list.", - "type": "string" - } - }, - "type": "object" - }, - "AssignedTargetingOption": { - "description": "A single assigned targeting option, which defines the state of a targeting option for an entity with targeting settings.", - "id": "AssignedTargetingOption", - "properties": { - "ageRangeDetails": { - "$ref": "AgeRangeAssignedTargetingOptionDetails", - "description": "Age range details. This field will be populated when the targeting_type is `TARGETING_TYPE_AGE_RANGE`." - }, - "appCategoryDetails": { - "$ref": "AppCategoryAssignedTargetingOptionDetails", - "description": "App category details. This field will be populated when the targeting_type is `TARGETING_TYPE_APP_CATEGORY`." - }, - "appDetails": { - "$ref": "AppAssignedTargetingOptionDetails", - "description": "App details. This field will be populated when the targeting_type is `TARGETING_TYPE_APP`." - }, - "assignedTargetingOptionId": { - "description": "Output only. The unique ID of the assigned targeting option. The ID is only unique within a given resource and targeting type. It may be reused in other contexts.", - "readOnly": true, - "type": "string" - }, - "audienceGroupDetails": { - "$ref": "AudienceGroupAssignedTargetingOptionDetails", - "description": "Audience targeting details. This field will be populated when the targeting_type is `TARGETING_TYPE_AUDIENCE_GROUP`. You can only target one audience group option per resource." - }, - "audioContentTypeDetails": { - "$ref": "AudioContentTypeAssignedTargetingOptionDetails", - "description": "Audio content type details. This field will be populated when the targeting_type is `TARGETING_TYPE_AUDIO_CONTENT_TYPE`." - }, - "authorizedSellerStatusDetails": { - "$ref": "AuthorizedSellerStatusAssignedTargetingOptionDetails", - "description": "Authorized seller status details. This field will be populated when the targeting_type is `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`. You can only target one authorized seller status option per resource. If a resource doesn't have an authorized seller status option, all authorized sellers indicated as DIRECT or RESELLER in the ads.txt file are targeted by default." - }, - "browserDetails": { - "$ref": "BrowserAssignedTargetingOptionDetails", - "description": "Browser details. This field will be populated when the targeting_type is `TARGETING_TYPE_BROWSER`." - }, - "businessChainDetails": { - "$ref": "BusinessChainAssignedTargetingOptionDetails", - "description": "Business chain details. This field will be populated when the targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`." - }, - "carrierAndIspDetails": { - "$ref": "CarrierAndIspAssignedTargetingOptionDetails", - "description": "Carrier and ISP details. This field will be populated when the targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`." - }, - "categoryDetails": { - "$ref": "CategoryAssignedTargetingOptionDetails", - "description": "Category details. This field will be populated when the targeting_type is `TARGETING_TYPE_CATEGORY`. Targeting a category will also target its subcategories. If a category is excluded from targeting and a subcategory is included, the exclusion will take precedence." - }, - "channelDetails": { - "$ref": "ChannelAssignedTargetingOptionDetails", - "description": "Channel details. This field will be populated when the targeting_type is `TARGETING_TYPE_CHANNEL`." - }, - "contentDurationDetails": { - "$ref": "ContentDurationAssignedTargetingOptionDetails", - "description": "Content duration details. This field will be populated when the targeting_type is `TARGETING_TYPE_CONTENT_DURATION`." - }, - "contentGenreDetails": { - "$ref": "ContentGenreAssignedTargetingOptionDetails", - "description": "Content genre details. This field will be populated when the targeting_type is `TARGETING_TYPE_CONTENT_GENRE`." - }, - "contentInstreamPositionDetails": { - "$ref": "ContentInstreamPositionAssignedTargetingOptionDetails", - "description": "Content instream position details. This field will be populated when the targeting_type is `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`." - }, - "contentOutstreamPositionDetails": { - "$ref": "ContentOutstreamPositionAssignedTargetingOptionDetails", - "description": "Content outstream position details. This field will be populated when the targeting_type is `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`." - }, - "contentStreamTypeDetails": { - "$ref": "ContentStreamTypeAssignedTargetingOptionDetails", - "description": "Content duration details. This field will be populated when the TargetingType is `TARGETING_TYPE_CONTENT_STREAM_TYPE`." - }, - "dayAndTimeDetails": { - "$ref": "DayAndTimeAssignedTargetingOptionDetails", - "description": "Day and time details. This field will be populated when the targeting_type is `TARGETING_TYPE_DAY_AND_TIME`." - }, - "deviceMakeModelDetails": { - "$ref": "DeviceMakeModelAssignedTargetingOptionDetails", - "description": "Device make and model details. This field will be populated when the targeting_type is `TARGETING_TYPE_DEVICE_MAKE_MODEL`." - }, - "deviceTypeDetails": { - "$ref": "DeviceTypeAssignedTargetingOptionDetails", - "description": "Device Type details. This field will be populated when the targeting_type is `TARGETING_TYPE_DEVICE_TYPE`." - }, - "digitalContentLabelExclusionDetails": { - "$ref": "DigitalContentLabelAssignedTargetingOptionDetails", - "description": "Digital content label details. This field will be populated when the targeting_type is `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION`. Digital content labels are targeting exclusions. Advertiser level digital content label exclusions, if set, are always applied in serving (even though they aren't visible in resource settings). Resource settings can exclude content labels in addition to advertiser exclusions, but can't override them. A line item won't serve if all the digital content labels are excluded." - }, - "environmentDetails": { - "$ref": "EnvironmentAssignedTargetingOptionDetails", - "description": "Environment details. This field will be populated when the targeting_type is `TARGETING_TYPE_ENVIRONMENT`." - }, - "exchangeDetails": { - "$ref": "ExchangeAssignedTargetingOptionDetails", - "description": "Exchange details. This field will be populated when the targeting_type is `TARGETING_TYPE_EXCHANGE`." - }, - "genderDetails": { - "$ref": "GenderAssignedTargetingOptionDetails", - "description": "Gender details. This field will be populated when the targeting_type is `TARGETING_TYPE_GENDER`." - }, - "geoRegionDetails": { - "$ref": "GeoRegionAssignedTargetingOptionDetails", - "description": "Geographic region details. This field will be populated when the targeting_type is `TARGETING_TYPE_GEO_REGION`." - }, - "householdIncomeDetails": { - "$ref": "HouseholdIncomeAssignedTargetingOptionDetails", - "description": "Household income details. This field will be populated when the targeting_type is `TARGETING_TYPE_HOUSEHOLD_INCOME`." - }, - "inheritance": { - "description": "Output only. The inheritance status of the assigned targeting option.", - "enum": [ - "INHERITANCE_UNSPECIFIED", - "NOT_INHERITED", - "INHERITED_FROM_PARTNER", - "INHERITED_FROM_ADVERTISER" - ], - "enumDescriptions": [ - "The inheritance is unspecified or unknown.", - "The assigned targeting option is not inherited from higher level entity.", - "The assigned targeting option is inherited from partner targeting settings.", - "The assigned targeting option is inherited from advertiser targeting settings." - ], - "readOnly": true, - "type": "string" - }, - "inventorySourceDetails": { - "$ref": "InventorySourceAssignedTargetingOptionDetails", - "description": "Inventory source details. This field will be populated when the targeting_type is `TARGETING_TYPE_INVENTORY_SOURCE`." - }, - "inventorySourceGroupDetails": { - "$ref": "InventorySourceGroupAssignedTargetingOptionDetails", - "description": "Inventory source group details. This field will be populated when the targeting_type is `TARGETING_TYPE_INVENTORY_SOURCE_GROUP`." - }, - "keywordDetails": { - "$ref": "KeywordAssignedTargetingOptionDetails", - "description": "Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_KEYWORD`. A maximum of 5000 direct negative keywords can be assigned to a resource. No limit on number of positive keywords that can be assigned." - }, - "languageDetails": { - "$ref": "LanguageAssignedTargetingOptionDetails", - "description": "Language details. This field will be populated when the targeting_type is `TARGETING_TYPE_LANGUAGE`." - }, - "name": { - "description": "Output only. The resource name for this assigned targeting option.", - "readOnly": true, - "type": "string" - }, - "nativeContentPositionDetails": { - "$ref": "NativeContentPositionAssignedTargetingOptionDetails", - "description": "Native content position details. This field will be populated when the targeting_type is `TARGETING_TYPE_NATIVE_CONTENT_POSITION`." - }, - "negativeKeywordListDetails": { - "$ref": "NegativeKeywordListAssignedTargetingOptionDetails", - "description": "Keyword details. This field will be populated when the targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative keyword lists can be assigned to a resource." - }, - "omidDetails": { - "$ref": "OmidAssignedTargetingOptionDetails", - "description": "Open Measurement enabled inventory details. This field will be populated when the targeting_type is `TARGETING_TYPE_OMID`." - }, - "onScreenPositionDetails": { - "$ref": "OnScreenPositionAssignedTargetingOptionDetails", - "description": "On screen position details. This field will be populated when the targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`." - }, - "operatingSystemDetails": { - "$ref": "OperatingSystemAssignedTargetingOptionDetails", - "description": "Operating system details. This field will be populated when the targeting_type is `TARGETING_TYPE_OPERATING_SYSTEM`." - }, - "parentalStatusDetails": { - "$ref": "ParentalStatusAssignedTargetingOptionDetails", - "description": "Parental status details. This field will be populated when the targeting_type is `TARGETING_TYPE_PARENTAL_STATUS`." - }, - "poiDetails": { - "$ref": "PoiAssignedTargetingOptionDetails", - "description": "POI details. This field will be populated when the targeting_type is `TARGETING_TYPE_POI`." - }, - "proximityLocationListDetails": { - "$ref": "ProximityLocationListAssignedTargetingOptionDetails", - "description": "Proximity location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`." - }, - "regionalLocationListDetails": { - "$ref": "RegionalLocationListAssignedTargetingOptionDetails", - "description": "Regional location list details. This field will be populated when the targeting_type is `TARGETING_TYPE_REGIONAL_LOCATION_LIST`." - }, - "sensitiveCategoryExclusionDetails": { - "$ref": "SensitiveCategoryAssignedTargetingOptionDetails", - "description": "Sensitive category details. This field will be populated when the targeting_type is `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`. Sensitive categories are targeting exclusions. Advertiser level sensitive category exclusions, if set, are always applied in serving (even though they aren't visible in resource settings). Resource settings can exclude sensitive categories in addition to advertiser exclusions, but can't override them." - }, - "subExchangeDetails": { - "$ref": "SubExchangeAssignedTargetingOptionDetails", - "description": "Sub-exchange details. This field will be populated when the targeting_type is `TARGETING_TYPE_SUB_EXCHANGE`." - }, - "targetingType": { - "description": "Output only. Identifies the type of this assigned targeting option.", - "enum": [ - "TARGETING_TYPE_UNSPECIFIED", - "TARGETING_TYPE_CHANNEL", - "TARGETING_TYPE_APP_CATEGORY", - "TARGETING_TYPE_APP", - "TARGETING_TYPE_URL", - "TARGETING_TYPE_DAY_AND_TIME", - "TARGETING_TYPE_AGE_RANGE", - "TARGETING_TYPE_REGIONAL_LOCATION_LIST", - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST", - "TARGETING_TYPE_GENDER", - "TARGETING_TYPE_VIDEO_PLAYER_SIZE", - "TARGETING_TYPE_USER_REWARDED_CONTENT", - "TARGETING_TYPE_PARENTAL_STATUS", - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION", - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", - "TARGETING_TYPE_DEVICE_TYPE", - "TARGETING_TYPE_AUDIENCE_GROUP", - "TARGETING_TYPE_BROWSER", - "TARGETING_TYPE_HOUSEHOLD_INCOME", - "TARGETING_TYPE_ON_SCREEN_POSITION", - "TARGETING_TYPE_THIRD_PARTY_VERIFIER", - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", - "TARGETING_TYPE_ENVIRONMENT", - "TARGETING_TYPE_CARRIER_AND_ISP", - "TARGETING_TYPE_OPERATING_SYSTEM", - "TARGETING_TYPE_DEVICE_MAKE_MODEL", - "TARGETING_TYPE_KEYWORD", - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", - "TARGETING_TYPE_VIEWABILITY", - "TARGETING_TYPE_CATEGORY", - "TARGETING_TYPE_INVENTORY_SOURCE", - "TARGETING_TYPE_LANGUAGE", - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", - "TARGETING_TYPE_GEO_REGION", - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", - "TARGETING_TYPE_EXCHANGE", - "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_POI", - "TARGETING_TYPE_BUSINESS_CHAIN", - "TARGETING_TYPE_CONTENT_DURATION", - "TARGETING_TYPE_CONTENT_STREAM_TYPE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION", - "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE", - "TARGETING_TYPE_CONTENT_GENRE" - ], - "enumDescriptions": [ - "Default value when type is not specified or is unknown in this version.", - "Target a channel (a custom group of related websites or apps).", - "Target an app category (for example, education or puzzle games).", - "Target a specific app (for example, Angry Birds).", - "Target a specific url (for example, quora.com).", - "Target ads during a chosen time period on a specific day.", - "Target ads to a specific age range (for example, 18-24).", - "Target ads to the specified regions on a regional location list.", - "Target ads to the specified points of interest on a proximity location list.", - "Target ads to a specific gender (for example, female or male).", - "Target a specific video player size for video ads.", - "Target user rewarded content for video ads.", - "Target ads to a specific parental status (for example, parent or not a parent).", - "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", - "Target ads in a specific content outstream position.", - "Target ads to a specific device type (for example, tablet or connected TV).", - "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", - "Target ads to specific web browsers (for example, Chrome).", - "Target ads to a specific household income range (for example, top 10%).", - "Target ads in a specific on screen position.", - "Filter web sites through third party verification (for example, IAS or DoubleVerify).", - "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", - "Filter website content by sensitive categories (for example, adult).", - "Target ads to a specific environment (for example, web or app).", - "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", - "Target ads to a specific operating system (for example, macOS).", - "Target ads to a specific device make or model (for example, Roku or Samsung).", - "Target ads to a specific keyword (for example, dog or retriever).", - "Target ads to a specific negative keyword list.", - "Target ads to a specific viewability (for example, 80% viewable).", - "Target ads to a specific content category (for example, arts & entertainment).", - "Purchase impressions from specific deals and auction packages.", - "Target ads to a specific language (for example, English or Japanese).", - "Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", - "Target ads to a specific regional location (for example, a city or state).", - "Purchase impressions from a group of deals and auction packages.", - "Purchase impressions from specific exchanges.", - "Purchase impressions from specific sub-exchanges.", - "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", - "Target ads around locations of a business chain within a specific geo region.", - "Target ads to a specific video content duration.", - "Target ads to a specific video content stream type.", - "Target ads to a specific native content position.", - "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type.", - "Target ads to a specific content genre." - ], - "readOnly": true, - "type": "string" - }, - "thirdPartyVerifierDetails": { - "$ref": "ThirdPartyVerifierAssignedTargetingOptionDetails", - "description": "Third party verification details. This field will be populated when the targeting_type is `TARGETING_TYPE_THIRD_PARTY_VERIFIER`." - }, - "urlDetails": { - "$ref": "UrlAssignedTargetingOptionDetails", - "description": "URL details. This field will be populated when the targeting_type is `TARGETING_TYPE_URL`." - }, - "userRewardedContentDetails": { - "$ref": "UserRewardedContentAssignedTargetingOptionDetails", - "description": "User rewarded content details. This field will be populated when the targeting_type is `TARGETING_TYPE_USER_REWARDED_CONTENT`." - }, - "videoPlayerSizeDetails": { - "$ref": "VideoPlayerSizeAssignedTargetingOptionDetails", - "description": "Video player size details. This field will be populated when the targeting_type is `TARGETING_TYPE_VIDEO_PLAYER_SIZE`." - }, - "viewabilityDetails": { - "$ref": "ViewabilityAssignedTargetingOptionDetails", - "description": "Viewability details. This field will be populated when the targeting_type is `TARGETING_TYPE_VIEWABILITY`. You can only target one viewability option per resource." - } - }, - "type": "object" - }, - "AssignedUserRole": { - "description": "A single assigned user role, which defines a user's authorized interaction with a specified partner or advertiser.", - "id": "AssignedUserRole", - "properties": { - "advertiserId": { - "description": "The ID of the advertiser that the assigend user role applies to.", - "format": "int64", - "type": "string" - }, - "assignedUserRoleId": { - "description": "Output only. The ID of the assigned user role.", - "readOnly": true, - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that the assigned user role applies to.", - "format": "int64", - "type": "string" - }, - "userRole": { - "description": "Required. The user role to assign to a user for the entity.", - "enum": [ - "USER_ROLE_UNSPECIFIED", - "ADMIN", - "ADMIN_PARTNER_CLIENT", - "STANDARD", - "STANDARD_PLANNER", - "STANDARD_PLANNER_LIMITED", - "STANDARD_PARTNER_CLIENT", - "READ_ONLY", - "REPORTING_ONLY", - "LIMITED_REPORTING_ONLY", - "CREATIVE", - "CREATIVE_ADMIN" - ], - "enumDescriptions": [ - "Default value when the user role is not specified or is unknown in this version.", - "The user can manage campaigns, creatives, insertion orders, line items, and reports for the entity. They can view and edit billing information, create or modify users, and enable or disable exchanges. This role can only be assigned for a partner entity.", - "The user can manage campaigns, creatives, insertion orders, line items, and reports for the entity. They can create and modify other `ADMIN_PARTNER_CLIENT` users and view billing information. They cannot view revenue models, markups, or any other reseller-sensitive fields. This role can only be assigned for a partner entity.", - "The user can manage campaigns, creatives, insertion orders, line items, and reports for the entity. They cannot create and modify users or view billing information.", - "The user can view all campaigns, creatives, insertion orders, line items, and reports for the entity, including all cost data. They can create and modify planning-related features, including plans and inventory.", - "The user can view all campaigns, creatives, insertion orders, line items, and reports for the entity. They can create or modify planning-related features, including plans and inventory. They have no access to cost data and cannot start, accept, or negotiate deals.", - "The user can manage campaigns, creatives, insertion orders, line items, and reports for the entity. They cannot create or modify other users or view billing information. They cannot view revenue models, markups, or any other reseller-sensitive fields. This role can only be assigned for an advertiser entity.", - "The user can only build reports and view data for the entity.", - "The user can only create and manage reports.", - "The user can only create and manage the following client-safe reports: General, Audience Performance, Cross-Partner, Keyword, Order ID, Category, and Third-Party Data Provider.", - "The user can view media plan information they need to collaborate, but can't view cost-related data or Marketplace.", - "The user can view media plan information they need to collaborate, but can't view cost-related data or Marketplace. In addition, they can add other creative admins or creative users to the entity." - ], - "type": "string" - } - }, - "type": "object" - }, - "AudienceGroupAssignedTargetingOptionDetails": { - "description": "Assigned audience group targeting option details. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_AUDIENCE_GROUP`. The relation between each group is UNION, except for excluded_first_and_third_party_audience_group and excluded_google_audience_group, of which COMPLEMENT is used as an INTERSECTION with other groups.", - "id": "AudienceGroupAssignedTargetingOptionDetails", - "properties": { - "excludedFirstAndThirdPartyAudienceGroup": { - "$ref": "FirstAndThirdPartyAudienceGroup", - "description": "The first and third party audience ids and recencies of the excluded first and third party audience group. Used for negative targeting. The COMPLEMENT of the UNION of this group and other excluded audience groups is used as an INTERSECTION to any positive audience targeting. All items are logically ‘OR’ of each other." - }, - "excludedGoogleAudienceGroup": { - "$ref": "GoogleAudienceGroup", - "description": "The Google audience ids of the excluded Google audience group. Used for negative targeting. The COMPLEMENT of the UNION of this group and other excluded audience groups is used as an INTERSECTION to any positive audience targeting. Only contains Affinity, In-market and Installed-apps type Google audiences. All items are logically ‘OR’ of each other." - }, - "includedCombinedAudienceGroup": { - "$ref": "CombinedAudienceGroup", - "description": "The combined audience ids of the included combined audience group. Contains combined audience ids only." - }, - "includedCustomListGroup": { - "$ref": "CustomListGroup", - "description": "The custom list ids of the included custom list group. Contains custom list ids only." - }, - "includedFirstAndThirdPartyAudienceGroups": { - "description": "The first and third party audience ids and recencies of included first and third party audience groups. Each first and third party audience group contains first and third party audience ids only. The relation between each first and third party audience group is INTERSECTION, and the result is UNION'ed with other audience groups. Repeated groups with same settings will be ignored.", - "items": { - "$ref": "FirstAndThirdPartyAudienceGroup" - }, - "type": "array" - }, - "includedGoogleAudienceGroup": { - "$ref": "GoogleAudienceGroup", - "description": "The Google audience ids of the included Google audience group. Contains Google audience ids only." - } - }, - "type": "object" - }, - "AudioContentTypeAssignedTargetingOptionDetails": { - "description": "Details for audio content type assigned targeting option. This will be populated in the audio_content_type_details field when targeting_type is `TARGETING_TYPE_AUDIO_CONTENT_TYPE`. Explicitly targeting all options is not supported. Remove all audio content type targeting options to achieve this effect.", - "id": "AudioContentTypeAssignedTargetingOptionDetails", - "properties": { - "audioContentType": { - "description": "Required. The audio content type.", - "enum": [ - "AUDIO_CONTENT_TYPE_UNSPECIFIED", - "AUDIO_CONTENT_TYPE_UNKNOWN", - "AUDIO_CONTENT_TYPE_MUSIC", - "AUDIO_CONTENT_TYPE_BROADCAST", - "AUDIO_CONTENT_TYPE_PODCAST" - ], - "enumDescriptions": [ - "Audio content type is not specified in this version. This enum is a place holder for a default value and does not represent a real content stream type.", - "The audio content type is unknown.", - "The audio content type is music.", - "The audio content type is broadcast.", - "The audio content type is podcast." - ], - "type": "string" - }, - "targetingOptionId": { - "description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_AUDIO_CONTENT_TYPE`.", - "type": "string" - } - }, - "type": "object" - }, - "AudioContentTypeTargetingOptionDetails": { - "description": "Represents a targetable audio content type. This will be populated in the audio_content_type_details field when targeting_type is `TARGETING_TYPE_AUDIO_CONTENT_TYPE`.", - "id": "AudioContentTypeTargetingOptionDetails", - "properties": { - "audioContentType": { - "description": "Output only. The audio content type.", - "enum": [ - "AUDIO_CONTENT_TYPE_UNSPECIFIED", - "AUDIO_CONTENT_TYPE_UNKNOWN", - "AUDIO_CONTENT_TYPE_MUSIC", - "AUDIO_CONTENT_TYPE_BROADCAST", - "AUDIO_CONTENT_TYPE_PODCAST" - ], - "enumDescriptions": [ - "Audio content type is not specified in this version. This enum is a place holder for a default value and does not represent a real content stream type.", - "The audio content type is unknown.", - "The audio content type is music.", - "The audio content type is broadcast.", - "The audio content type is podcast." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "AudioVideoOffset": { - "description": "The length an audio or a video has been played.", - "id": "AudioVideoOffset", - "properties": { - "percentage": { - "description": "The offset in percentage of the audio or video duration.", - "format": "int64", - "type": "string" - }, - "seconds": { - "description": "The offset in seconds from the start of the audio or video.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "AuditAdvertiserResponse": { - "description": "Response message for AdvertiserService.AuditAdvertiser.", - "id": "AuditAdvertiserResponse", - "properties": { - "adGroupCriteriaCount": { - "description": "The number of individual targeting options from the following targeting types that are assigned to a line item under this advertiser. These individual targeting options count towards the limit of 4500000 ad group targeting options per advertiser. Qualifying Targeting types: * Channels, URLs, apps, and collections * Demographic * Google Audiences, including Affinity, Custom Affinity, and In-market audiences * Inventory source * Keyword * Mobile app category * User lists * Video targeting * Viewability", - "format": "int64", - "type": "string" - }, - "campaignCriteriaCount": { - "description": "The number of individual targeting options from the following targeting types that are assigned to a line item under this advertiser. These individual targeting options count towards the limit of 900000 campaign targeting options per advertiser. Qualifying Targeting types: * Position * Browser * Connection speed * Day and time * Device and operating system * Digital content label * Sensitive categories * Environment * Geography, including business chains and proximity * ISP * Language * Third-party verification", - "format": "int64", - "type": "string" - }, - "channelsCount": { - "description": "The number of channels created under this advertiser. These channels count towards the limit of 1000 channels per advertiser.", - "format": "int64", - "type": "string" - }, - "negativeKeywordListsCount": { - "description": "The number of negative keyword lists created under this advertiser. These negative keyword lists count towards the limit of 20 negative keyword lists per advertiser.", - "format": "int64", - "type": "string" - }, - "negativelyTargetedChannelsCount": { - "description": "The number of negatively targeted channels created under this advertiser. These negatively targeted channels count towards the limit of 5 negatively targeted channels per advertiser.", - "format": "int64", - "type": "string" - }, - "usedCampaignsCount": { - "description": "The number of ACTIVE and PAUSED campaigns under this advertiser. These campaigns count towards the limit of 9999 campaigns per advertiser.", - "format": "int64", - "type": "string" - }, - "usedInsertionOrdersCount": { - "description": "The number of ACTIVE, PAUSED and DRAFT insertion orders under this advertiser. These insertion orders count towards the limit of 9999 insertion orders per advertiser.", - "format": "int64", - "type": "string" - }, - "usedLineItemsCount": { - "description": "The number of ACTIVE, PAUSED, and DRAFT line items under this advertiser. These line items count towards the limit of 9999 line items per advertiser.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "AuthorizedSellerStatusAssignedTargetingOptionDetails": { - "description": "Represents an assigned authorized seller status. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`. If a resource does not have an `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` assigned targeting option, it is using the \"Authorized Direct Sellers and Resellers\" option.", - "id": "AuthorizedSellerStatusAssignedTargetingOptionDetails", - "properties": { - "authorizedSellerStatus": { - "description": "Output only. The authorized seller status to target.", - "enum": [ - "AUTHORIZED_SELLER_STATUS_UNSPECIFIED", - "AUTHORIZED_SELLER_STATUS_AUTHORIZED_DIRECT_SELLERS_ONLY", - "AUTHORIZED_SELLER_STATUS_AUTHORIZED_AND_NON_PARTICIPATING_PUBLISHERS" - ], - "enumDescriptions": [ - "Default value when authorized seller status is not specified in this version. This enum is a placeholder for the default value, or \"Authorized Direct Sellers and Resellers\" in the UI.", - "Only authorized sellers that directly own the inventory being monetized, as indicated by a DIRECT declaration in the ads.txt file. This value is equivalent to \"Authorized Direct Sellers\" in the UI.", - "All authorized sellers, including publishers that have not posted an ads.txt file. Display & Video 360 automatically disallows unauthorized sellers. This value is equivalent to \"Authorized and Non-Participating Publishers\" in the UI." - ], - "readOnly": true, - "type": "string" - }, - "targetingOptionId": { - "description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`.", - "type": "string" - } - }, - "type": "object" - }, - "AuthorizedSellerStatusTargetingOptionDetails": { - "description": "Represents a targetable authorized seller status. This will be populated in the authorized_seller_status_details field when targeting_type is `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`.", - "id": "AuthorizedSellerStatusTargetingOptionDetails", - "properties": { - "authorizedSellerStatus": { - "description": "Output only. The authorized seller status.", - "enum": [ - "AUTHORIZED_SELLER_STATUS_UNSPECIFIED", - "AUTHORIZED_SELLER_STATUS_AUTHORIZED_DIRECT_SELLERS_ONLY", - "AUTHORIZED_SELLER_STATUS_AUTHORIZED_AND_NON_PARTICIPATING_PUBLISHERS" - ], - "enumDescriptions": [ - "Default value when authorized seller status is not specified in this version. This enum is a placeholder for the default value, or \"Authorized Direct Sellers and Resellers\" in the UI.", - "Only authorized sellers that directly own the inventory being monetized, as indicated by a DIRECT declaration in the ads.txt file. This value is equivalent to \"Authorized Direct Sellers\" in the UI.", - "All authorized sellers, including publishers that have not posted an ads.txt file. Display & Video 360 automatically disallows unauthorized sellers. This value is equivalent to \"Authorized and Non-Participating Publishers\" in the UI." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "BiddingStrategy": { - "description": "Settings that control the bid strategy. Bid strategy determines the bid price.", - "id": "BiddingStrategy", - "properties": { - "fixedBid": { - "$ref": "FixedBidStrategy", - "description": "A strategy that uses a fixed bid price." - }, - "maximizeSpendAutoBid": { - "$ref": "MaximizeSpendBidStrategy", - "description": "A strategy that automatically adjusts the bid to optimize to your performance goal while spending the full budget. At insertion order level, the markup_type of line items cannot be set to `PARTNER_REVENUE_MODEL_MARKUP_TYPE_CPM`. In addition, when performance_goal_type is one of: * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPA` * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPC` * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_AV_VIEWED` , the line_item_type of the insertion order line items must be either: * `LINE_ITEM_TYPE_DISPLAY_DEFAULT` * `LINE_ITEM_TYPE_VIDEO_DEFAULT` , and when performance_goal_type is either: * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CIVA` * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_IVO_TEN` the line_item_type of the insertion order line items must be `LINE_ITEM_TYPE_VIDEO_DEFAULT`." - }, - "performanceGoalAutoBid": { - "$ref": "PerformanceGoalBidStrategy", - "description": "A strategy that automatically adjusts the bid to meet or beat a specified performance goal. It is to be used only for a line item entity." - } - }, - "type": "object" - }, - "BrowserAssignedTargetingOptionDetails": { - "description": "Details for assigned browser targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BROWSER`.", - "id": "BrowserAssignedTargetingOptionDetails", - "properties": { - "displayName": { - "description": "Output only. The display name of the browser.", - "readOnly": true, - "type": "string" - }, - "negative": { - "description": "Indicates if this option is being negatively targeted. All assigned browser targeting options on the same resource must have the same value for this field.", - "type": "boolean" - }, - "targetingOptionId": { - "description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BROWSER`.", - "type": "string" - } - }, - "type": "object" - }, - "BrowserTargetingOptionDetails": { - "description": "Represents a targetable browser. This will be populated in the browser_details field when targeting_type is `TARGETING_TYPE_BROWSER`.", - "id": "BrowserTargetingOptionDetails", - "properties": { - "displayName": { - "description": "Output only. The display name of the browser.", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "BudgetSummary": { - "description": "Summarized information of an individual campaign budget.", - "id": "BudgetSummary", - "properties": { - "externalBudgetId": { - "description": "Corresponds to the external_budget_id of a campaign budget. If the value is not set in the campaign budget, this field will be empty.", - "type": "string" - }, - "preTaxAmountMicros": { - "description": "The sum of charges made under this budget before taxes, in micros of the invoice's currency. For example, if currency_code is `USD`, then 1000000 represents one US dollar.", - "format": "int64", - "type": "string" - }, - "prismaCpeCode": { - "$ref": "PrismaCpeCode", - "description": "Relevant client, product, and estimate codes from the Mediaocean Prisma tool. Only applicable for campaign budgets with an external_budget_source of EXTERNAL_BUDGET_SOURCE_MEDIA_OCEAN." - }, - "taxAmountMicros": { - "description": "The amount of tax applied to charges under this budget, in micros of the invoice's currency. For example, if currency_code is `USD`, then 1000000 represents one US dollar.", - "format": "int64", - "type": "string" - }, - "totalAmountMicros": { - "description": "The total sum of charges made under this budget, including tax, in micros of the invoice's currency. For example, if currency_code is `USD`, then 1000000 represents one US dollar.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "BulkEditAdvertiserAssignedTargetingOptionsRequest": { - "description": "Request message for BulkEditAdvertiserAssignedTargetingOptions.", - "id": "BulkEditAdvertiserAssignedTargetingOptionsRequest", - "properties": { - "createRequests": { - "description": "The assigned targeting options to create in batch, specified as a list of `CreateAssignedTargetingOptionsRequest`. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`", - "items": { - "$ref": "CreateAssignedTargetingOptionsRequest" - }, - "type": "array" - }, - "deleteRequests": { - "description": "The assigned targeting options to delete in batch, specified as a list of `DeleteAssignedTargetingOptionsRequest`. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`", - "items": { - "$ref": "DeleteAssignedTargetingOptionsRequest" - }, - "type": "array" - } - }, - "type": "object" - }, - "BulkEditAdvertiserAssignedTargetingOptionsResponse": { - "id": "BulkEditAdvertiserAssignedTargetingOptionsResponse", - "properties": { - "createdAssignedTargetingOptions": { - "description": "The list of assigned targeting options that have been successfully created. This list will be absent if empty.", - "items": { - "$ref": "AssignedTargetingOption" - }, - "type": "array" - } - }, - "type": "object" - }, - "BulkEditAssignedInventorySourcesRequest": { - "description": "Request message for AssignedInventorySourceService.BulkEdit.", - "id": "BulkEditAssignedInventorySourcesRequest", - "properties": { - "advertiserId": { - "description": "The ID of the advertiser that owns the parent inventory source group. The parent partner does not have access to these assigned inventory sources.", - "format": "int64", - "type": "string" - }, - "createdAssignedInventorySources": { - "description": "The assigned inventory sources to create in bulk, specified as a list of AssignedInventorySources.", - "items": { - "$ref": "AssignedInventorySource" - }, - "type": "array" - }, - "deletedAssignedInventorySources": { - "description": "The IDs of the assigned inventory sources to delete in bulk, specified as a list of assigned_inventory_source_ids.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "partnerId": { - "description": "The ID of the partner that owns the inventory source group. Only this partner has write access to these assigned inventory sources.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "BulkEditAssignedInventorySourcesResponse": { - "description": "Response message for AssignedInventorySourceService.BulkEdit.", - "id": "BulkEditAssignedInventorySourcesResponse", - "properties": { - "assignedInventorySources": { - "description": "The list of assigned inventory sources that have been successfully created. This list will be absent if empty.", - "items": { - "$ref": "AssignedInventorySource" - }, - "type": "array" - } - }, - "type": "object" - }, - "BulkEditAssignedLocationsRequest": { - "description": "Request message for AssignedLocationService.BulkEditAssignedLocations.", - "id": "BulkEditAssignedLocationsRequest", - "properties": { - "createdAssignedLocations": { - "description": "The assigned locations to create in bulk, specified as a list of AssignedLocation resources.", - "items": { - "$ref": "AssignedLocation" - }, - "type": "array" - }, - "deletedAssignedLocations": { - "description": "The IDs of the assigned locations to delete in bulk, specified as a list of assignedLocationId values.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "BulkEditAssignedLocationsResponse": { - "id": "BulkEditAssignedLocationsResponse", - "properties": { - "assignedLocations": { - "description": "The list of assigned locations that have been successfully created. This list will be absent if empty.", - "items": { - "$ref": "AssignedLocation" - }, - "type": "array" - } - }, - "type": "object" - }, - "BulkEditAssignedUserRolesRequest": { - "description": "Request message for BulkEditAssignedUserRoles.", - "id": "BulkEditAssignedUserRolesRequest", - "properties": { - "createdAssignedUserRoles": { - "description": "The assigned user roles to create in batch, specified as a list of AssignedUserRoles.", - "items": { - "$ref": "AssignedUserRole" - }, - "type": "array" - }, - "deletedAssignedUserRoles": { - "description": "The assigned user roles to delete in batch, specified as a list of assigned_user_role_ids. The format of assigned_user_role_id is `entityType-entityid`, for example `partner-123`.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "BulkEditAssignedUserRolesResponse": { - "id": "BulkEditAssignedUserRolesResponse", - "properties": { - "createdAssignedUserRoles": { - "description": "The list of assigned user roles that have been successfully created. This list will be absent if empty.", - "items": { - "$ref": "AssignedUserRole" - }, - "type": "array" - } - }, - "type": "object" - }, - "BulkEditLineItemAssignedTargetingOptionsRequest": { - "description": "Request message for BulkEditLineItemAssignedTargetingOptions.", - "id": "BulkEditLineItemAssignedTargetingOptionsRequest", - "properties": { - "createRequests": { - "description": "The assigned targeting options to create in batch, specified as a list of `CreateAssignedTargetingOptionsRequest`.", - "items": { - "$ref": "CreateAssignedTargetingOptionsRequest" - }, - "type": "array" - }, - "deleteRequests": { - "description": "The assigned targeting options to delete in batch, specified as a list of `DeleteAssignedTargetingOptionsRequest`.", - "items": { - "$ref": "DeleteAssignedTargetingOptionsRequest" - }, - "type": "array" - } - }, - "type": "object" - }, - "BulkEditLineItemAssignedTargetingOptionsResponse": { - "id": "BulkEditLineItemAssignedTargetingOptionsResponse", - "properties": { - "createdAssignedTargetingOptions": { - "description": "The list of assigned targeting options that have been successfully created. This list will be absent if empty.", - "items": { - "$ref": "AssignedTargetingOption" - }, - "type": "array" - } - }, - "type": "object" - }, - "BulkEditNegativeKeywordsRequest": { - "description": "Request message for NegativeKeywordService.BulkEditNegativeKeywords.", - "id": "BulkEditNegativeKeywordsRequest", - "properties": { - "createdNegativeKeywords": { - "description": "The negative keywords to create in batch, specified as a list of NegativeKeywords.", - "items": { - "$ref": "NegativeKeyword" - }, - "type": "array" - }, - "deletedNegativeKeywords": { - "description": "The negative keywords to delete in batch, specified as a list of keyword_values.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "BulkEditNegativeKeywordsResponse": { - "description": "Response message for NegativeKeywordService.BulkEditNegativeKeywords.", - "id": "BulkEditNegativeKeywordsResponse", - "properties": { - "negativeKeywords": { - "description": "The list of negative keywords that have been successfully created. This list will be absent if empty.", - "items": { - "$ref": "NegativeKeyword" - }, - "type": "array" - } - }, - "type": "object" - }, - "BulkEditPartnerAssignedTargetingOptionsRequest": { - "description": "Request message for BulkEditPartnerAssignedTargetingOptions.", - "id": "BulkEditPartnerAssignedTargetingOptionsRequest", - "properties": { - "createRequests": { - "description": "The assigned targeting options to create in batch, specified as a list of `CreateAssignedTargetingOptionsRequest`. Supported targeting types: * `TARGETING_TYPE_CHANNEL`", - "items": { - "$ref": "CreateAssignedTargetingOptionsRequest" - }, - "type": "array" - }, - "deleteRequests": { - "description": "The assigned targeting options to delete in batch, specified as a list of `DeleteAssignedTargetingOptionsRequest`. Supported targeting types: * `TARGETING_TYPE_CHANNEL`", - "items": { - "$ref": "DeleteAssignedTargetingOptionsRequest" - }, - "type": "array" - } - }, - "type": "object" - }, - "BulkEditPartnerAssignedTargetingOptionsResponse": { - "id": "BulkEditPartnerAssignedTargetingOptionsResponse", - "properties": { - "createdAssignedTargetingOptions": { - "description": "The list of assigned targeting options that have been successfully created. This list will be absent if empty.", - "items": { - "$ref": "AssignedTargetingOption" - }, - "type": "array" - } - }, - "type": "object" - }, - "BulkEditSitesRequest": { - "description": "Request message for SiteService.BulkEditSites.", - "id": "BulkEditSitesRequest", - "properties": { - "advertiserId": { - "description": "The ID of the advertiser that owns the parent channel.", - "format": "int64", - "type": "string" - }, - "createdSites": { - "description": "The sites to create in batch, specified as a list of Sites.", - "items": { - "$ref": "Site" - }, - "type": "array" - }, - "deletedSites": { - "description": "The sites to delete in batch, specified as a list of site url_or_app_ids.", - "items": { - "type": "string" - }, - "type": "array" - }, - "partnerId": { - "description": "The ID of the partner that owns the parent channel.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "BulkEditSitesResponse": { - "description": "Response message for SiteService.BulkEditSites.", - "id": "BulkEditSitesResponse", - "properties": { - "sites": { - "description": "The list of sites that have been successfully created. This list will be absent if empty.", - "items": { - "$ref": "Site" - }, - "type": "array" - } - }, - "type": "object" - }, - "BulkListAdvertiserAssignedTargetingOptionsResponse": { - "id": "BulkListAdvertiserAssignedTargetingOptionsResponse", - "properties": { - "assignedTargetingOptions": { - "description": "The list of assigned targeting options. This list will be absent if empty.", - "items": { - "$ref": "AssignedTargetingOption" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token identifying the next page of results. This value should be specified as the pageToken in a subsequent BulkListAdvertiserAssignedTargetingOptionsRequest to fetch the next page of results. This token will be absent if there are no more assigned_targeting_options to return.", - "type": "string" - } - }, - "type": "object" - }, - "BulkListCampaignAssignedTargetingOptionsResponse": { - "id": "BulkListCampaignAssignedTargetingOptionsResponse", - "properties": { - "assignedTargetingOptions": { - "description": "The list of assigned targeting options. This list will be absent if empty.", - "items": { - "$ref": "AssignedTargetingOption" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token identifying the next page of results. This value should be specified as the pageToken in a subsequent BulkListCampaignAssignedTargetingOptionsRequest to fetch the next page of results. This token will be absent if there are no more assigned_targeting_options to return.", - "type": "string" - } - }, - "type": "object" - }, - "BulkListInsertionOrderAssignedTargetingOptionsResponse": { - "id": "BulkListInsertionOrderAssignedTargetingOptionsResponse", - "properties": { - "assignedTargetingOptions": { - "description": "The list of assigned targeting options. This list will be absent if empty.", - "items": { - "$ref": "AssignedTargetingOption" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token identifying the next page of results. This value should be specified as the pageToken in a subsequent BulkListInsertionOrderAssignedTargetingOptionsRequest to fetch the next page of results. This token will be absent if there are no more assigned_targeting_options to return.", - "type": "string" - } - }, - "type": "object" - }, - "BulkListLineItemAssignedTargetingOptionsResponse": { - "id": "BulkListLineItemAssignedTargetingOptionsResponse", - "properties": { - "assignedTargetingOptions": { - "description": "The list of assigned targeting options. This list will be absent if empty.", - "items": { - "$ref": "AssignedTargetingOption" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token identifying the next page of results. This value should be specified as the pageToken in a subsequent BulkListLineItemAssignedTargetingOptionsRequest to fetch the next page of results. This token will be absent if there are no more assigned_targeting_options to return.", - "type": "string" - } - }, - "type": "object" - }, - "BusinessChainAssignedTargetingOptionDetails": { - "description": "Details for assigned Business chain targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`.", - "id": "BusinessChainAssignedTargetingOptionDetails", - "properties": { - "displayName": { - "description": "Output only. The display name of a business chain, e.g. \"KFC\", \"Chase Bank\".", - "readOnly": true, - "type": "string" - }, - "proximityRadiusAmount": { - "description": "Required. The radius of the area around the business chain that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`. The minimum increment for both cases is 0.1. Inputs will be rounded to the nearest acceptable value if it is too granular, e.g. 15.57 will become 15.6.", - "format": "double", - "type": "number" - }, - "proximityRadiusUnit": { - "description": "Required. The unit of distance by which the targeting radius is measured.", - "enum": [ - "DISTANCE_UNIT_UNSPECIFIED", - "DISTANCE_UNIT_MILES", - "DISTANCE_UNIT_KILOMETERS" - ], - "enumDescriptions": [ - "Type value is not specified or is unknown in this version.", - "Miles.", - "Kilometers." - ], - "type": "string" - }, - "targetingOptionId": { - "description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_BUSINESS_CHAIN`. Accepted business chain targeting option IDs can be retrieved using SearchTargetingOptions.", - "type": "string" - } - }, - "type": "object" - }, - "BusinessChainSearchTerms": { - "description": "Search terms for Business Chain targeting options. At least one of the field should be populated.", - "id": "BusinessChainSearchTerms", - "properties": { - "businessChainQuery": { - "description": "The search query for the desired business chain. The query must be the full name of the business, e.g. \"KFC\", \"mercedes-benz\".", - "type": "string" - }, - "regionQuery": { - "description": "The search query for the desired geo region, e.g. \"Seattle\", \"United State\".", - "type": "string" - } - }, - "type": "object" - }, - "BusinessChainTargetingOptionDetails": { - "description": "Represents a targetable business chain within a geo region. This will be populated in the business_chain_details field when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`.", - "id": "BusinessChainTargetingOptionDetails", - "properties": { - "businessChain": { - "description": "Output only. The display name of the business chain, e.g. \"KFC\", \"Chase Bank\".", - "readOnly": true, - "type": "string" - }, - "geoRegion": { - "description": "Output only. The display name of the geographic region, e.g. \"Ontario, Canada\".", - "readOnly": true, - "type": "string" - }, - "geoRegionType": { - "description": "Output only. The type of the geographic region.", - "enum": [ - "GEO_REGION_TYPE_UNKNOWN", - "GEO_REGION_TYPE_OTHER", - "GEO_REGION_TYPE_COUNTRY", - "GEO_REGION_TYPE_REGION", - "GEO_REGION_TYPE_TERRITORY", - "GEO_REGION_TYPE_PROVINCE", - "GEO_REGION_TYPE_STATE", - "GEO_REGION_TYPE_PREFECTURE", - "GEO_REGION_TYPE_GOVERNORATE", - "GEO_REGION_TYPE_CANTON", - "GEO_REGION_TYPE_UNION_TERRITORY", - "GEO_REGION_TYPE_AUTONOMOUS_COMMUNITY", - "GEO_REGION_TYPE_DMA_REGION", - "GEO_REGION_TYPE_METRO", - "GEO_REGION_TYPE_CONGRESSIONAL_DISTRICT", - "GEO_REGION_TYPE_COUNTY", - "GEO_REGION_TYPE_MUNICIPALITY", - "GEO_REGION_TYPE_CITY", - "GEO_REGION_TYPE_POSTAL_CODE", - "GEO_REGION_TYPE_DEPARTMENT", - "GEO_REGION_TYPE_AIRPORT", - "GEO_REGION_TYPE_TV_REGION", - "GEO_REGION_TYPE_OKRUG", - "GEO_REGION_TYPE_BOROUGH", - "GEO_REGION_TYPE_CITY_REGION", - "GEO_REGION_TYPE_ARRONDISSEMENT", - "GEO_REGION_TYPE_NEIGHBORHOOD", - "GEO_REGION_TYPE_UNIVERSITY", - "GEO_REGION_TYPE_DISTRICT" - ], - "enumDescriptions": [ - "The geographic region type is unknown.", - "The geographic region type is other.", - "The geographic region is a country.", - "The geographic region type is region.", - "The geographic region is a territory.", - "The geographic region is a province.", - "The geographic region is a state.", - "The geographic region is a prefecture.", - "The geographic region is a governorate.", - "The geographic region is a canton.", - "The geographic region is a union territory.", - "The geographic region is an autonomous community.", - "The geographic region is a designated market area (DMA) region.", - "The geographic region type is metro.", - "The geographic region is a congressional district.", - "The geographic region is a county.", - "The geographic region is a municipality.", - "The geographic region is a city.", - "The geographic region targeting type is postal code.", - "The geographic region targeting type is department.", - "The geographic region is an airport.", - "The geographic region is a TV region.", - "The geographic region is an okrug.", - "The geographic region is a borough.", - "The geographic region is a city region.", - "The geographic region is an arrondissement.", - "The geographic region is a neighborhood.", - "The geographic region is a university.", - "The geographic region is a district." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "Campaign": { - "description": "A single campaign.", - "id": "Campaign", - "properties": { - "advertiserId": { - "description": "Output only. The unique ID of the advertiser the campaign belongs to.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "campaignBudgets": { - "description": "The list of budgets available to this campaign. If this field is not set, the campaign uses an unlimited budget.", - "items": { - "$ref": "CampaignBudget" - }, - "type": "array" - }, - "campaignFlight": { - "$ref": "CampaignFlight", - "description": "Required. The planned spend and duration of the campaign." - }, - "campaignGoal": { - "$ref": "CampaignGoal", - "description": "Required. The goal of the campaign." - }, - "campaignId": { - "description": "Output only. The unique ID of the campaign. Assigned by the system.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "displayName": { - "description": "Required. The display name of the campaign. Must be UTF-8 encoded with a maximum size of 240 bytes.", - "type": "string" - }, - "entityStatus": { - "description": "Required. Controls whether or not the insertion orders under this campaign can spend their budgets and bid on inventory. * Accepted values are `ENTITY_STATUS_ACTIVE`, `ENTITY_STATUS_ARCHIVED`, and `ENTITY_STATUS_PAUSED`. * For CreateCampaign method, `ENTITY_STATUS_ARCHIVED` is not allowed.", - "enum": [ - "ENTITY_STATUS_UNSPECIFIED", - "ENTITY_STATUS_ACTIVE", - "ENTITY_STATUS_ARCHIVED", - "ENTITY_STATUS_DRAFT", - "ENTITY_STATUS_PAUSED", - "ENTITY_STATUS_SCHEDULED_FOR_DELETION" - ], - "enumDescriptions": [ - "Default value when status is not specified or is unknown in this version.", - "The entity is enabled to bid and spend budget.", - "The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", - "The entity is under draft. Bidding and budget spending are disabled.", - "Bidding and budget spending are paused for the entity.", - "The entity is scheduled for deletion." - ], - "type": "string" - }, - "frequencyCap": { - "$ref": "FrequencyCap", - "description": "Required. The frequency cap setting of the campaign." - }, - "name": { - "description": "Output only. The resource name of the campaign.", - "readOnly": true, - "type": "string" - }, - "updateTime": { - "description": "Output only. The timestamp when the campaign was last updated. Assigned by the system.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "CampaignBudget": { - "description": "Settings that control how the campaign budget is allocated.", - "id": "CampaignBudget", - "properties": { - "budgetAmountMicros": { - "description": "Required. The total amount the linked insertion order segments can budget. The amount is in micros. Must be greater than 0. For example, 500000000 represents 500 standard units of the currency.", - "format": "int64", - "type": "string" - }, - "budgetId": { - "description": "The unique ID of the campaign budget. Assigned by the system. Do not set for new budgets. Must be included when updating or adding budgets to campaign_budgets. Otherwise, a new ID will be generated and assigned.", - "format": "int64", - "type": "string" - }, - "budgetUnit": { - "description": "Required. Immutable. Specifies whether the budget is measured in currency or impressions.", - "enum": [ - "BUDGET_UNIT_UNSPECIFIED", - "BUDGET_UNIT_CURRENCY", - "BUDGET_UNIT_IMPRESSIONS" - ], - "enumDescriptions": [ - "Type value is not specified or is unknown in this version.", - "Budgeting in currency amounts.", - "Budgeting in impression amounts." - ], - "type": "string" - }, - "dateRange": { - "$ref": "DateRange", - "description": "Required. The date range for the campaign budget. Linked budget segments may have a different date range. They are resolved relative to the parent advertiser's time zone. Both `start_date` and `end_date` must be before the year 2037." - }, - "displayName": { - "description": "Required. The display name of the budget. Must be UTF-8 encoded with a maximum size of 240 bytes.", - "type": "string" - }, - "externalBudgetId": { - "description": "Immutable. The ID identifying this budget to the external source. If this field is set and the invoice detail level of the corresponding billing profile is set to \"Budget level PO\", all impressions served against this budget will include this ID on the invoice. Must be unique under the campaign.", - "type": "string" - }, - "externalBudgetSource": { - "description": "Required. The external source of the budget.", - "enum": [ - "EXTERNAL_BUDGET_SOURCE_UNSPECIFIED", - "EXTERNAL_BUDGET_SOURCE_NONE", - "EXTERNAL_BUDGET_SOURCE_MEDIA_OCEAN" - ], - "enumDescriptions": [ - "External budget source value is not specified or unknown in this version.", - "Budget has no external source.", - "Budget source is Mediaocean." - ], - "type": "string" - }, - "invoiceGroupingId": { - "description": "Immutable. The ID used to group budgets to be included the same invoice. If this field is set and the invoice level of the corresponding billing profile is set to \"Budget invoice grouping ID\", all external_budget_id sharing the same invoice_grouping_id will be grouped in the same invoice.", - "type": "string" - }, - "prismaConfig": { - "$ref": "PrismaConfig", - "description": "Additional metadata for use by the Mediaocean Prisma tool. Required for Mediaocean budgets. Only applicable to prisma_enabled advertisers." - } - }, - "type": "object" - }, - "CampaignFlight": { - "description": "Settings that track the planned spend and duration of a campaign.", - "id": "CampaignFlight", - "properties": { - "plannedDates": { - "$ref": "DateRange", - "description": "Required. The dates that the campaign is expected to run. They are resolved relative to the parent advertiser's time zone. * The dates specified here will not affect serving. They are used to generate alerts and warnings. For example, if the flight date of any child insertion order is outside the range of these dates, the user interface will show a warning. * `start_date` is required and must be the current date or later. * `end_date` is optional. If specified, it must be the `start_date` or later. * Any specified date must be before the year 2037." - }, - "plannedSpendAmountMicros": { - "description": "The amount the campaign is expected to spend for its given planned_dates. This will not limit serving, but will be used for tracking spend in the DV360 UI. The amount is in micros. Must be greater than or equal to 0. For example, 500000000 represents 500 standard units of the currency.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "CampaignGoal": { - "description": "Settings that control the goal of a campaign.", - "id": "CampaignGoal", - "properties": { - "campaignGoalType": { - "description": "Required. The type of the campaign goal.", - "enum": [ - "CAMPAIGN_GOAL_TYPE_UNSPECIFIED", - "CAMPAIGN_GOAL_TYPE_APP_INSTALL", - "CAMPAIGN_GOAL_TYPE_BRAND_AWARENESS", - "CAMPAIGN_GOAL_TYPE_OFFLINE_ACTION", - "CAMPAIGN_GOAL_TYPE_ONLINE_ACTION" - ], - "enumDescriptions": [ - "Goal value is not specified or unknown in this version.", - "Drive app installs or engagements.", - "Raise awareness of a brand or product.", - "Drive offline or in-store sales.", - "Drive online action or visits." - ], - "type": "string" - }, - "performanceGoal": { - "$ref": "PerformanceGoal", - "description": "Required. The performance goal of the campaign. Acceptable values for performance_goal_type are: * `PERFORMANCE_GOAL_TYPE_CPM` * `PERFORMANCE_GOAL_TYPE_CPC` * `PERFORMANCE_GOAL_TYPE_CPA` * `PERFORMANCE_GOAL_TYPE_CPIAVC` * `PERFORMANCE_GOAL_TYPE_CTR` * `PERFORMANCE_GOAL_TYPE_VIEWABILITY` * `PERFORMANCE_GOAL_TYPE_OTHER`" - } - }, - "type": "object" - }, - "CarrierAndIspAssignedTargetingOptionDetails": { - "description": "Details for assigned carrier and ISP targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`.", - "id": "CarrierAndIspAssignedTargetingOptionDetails", - "properties": { - "displayName": { - "description": "Output only. The display name of the carrier or ISP.", - "readOnly": true, - "type": "string" - }, - "negative": { - "description": "Indicates if this option is being negatively targeted. All assigned carrier and ISP targeting options on the same resource must have the same value for this field.", - "type": "boolean" - }, - "targetingOptionId": { - "description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_CARRIER_AND_ISP`.", - "type": "string" - } - }, - "type": "object" - }, - "CarrierAndIspTargetingOptionDetails": { - "description": "Represents a targetable carrier or ISP. This will be populated in the carrier_and_isp_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`.", - "id": "CarrierAndIspTargetingOptionDetails", - "properties": { - "displayName": { - "description": "Output only. The display name of the carrier or ISP.", - "readOnly": true, - "type": "string" - }, - "type": { - "description": "Output only. The type indicating if it's carrier or ISP.", - "enum": [ - "CARRIER_AND_ISP_TYPE_UNSPECIFIED", - "CARRIER_AND_ISP_TYPE_ISP", - "CARRIER_AND_ISP_TYPE_CARRIER" - ], - "enumDescriptions": [ - "Default value when type is not specified or is unknown in this version.", - "Indicates this targeting resource refers to an ISP.", - "Indicates this targeting resource refers to a mobile carrier." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "CategoryAssignedTargetingOptionDetails": { - "description": "Assigned category targeting option details. This will be populated in the category_details field when targeting_type is `TARGETING_TYPE_CATEGORY`.", - "id": "CategoryAssignedTargetingOptionDetails", - "properties": { - "displayName": { - "description": "Output only. The display name of the category.", - "readOnly": true, - "type": "string" - }, - "negative": { - "description": "Indicates if this option is being negatively targeted.", - "type": "boolean" - }, - "targetingOptionId": { - "description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_CATEGORY`.", - "type": "string" - } - }, - "type": "object" - }, - "CategoryTargetingOptionDetails": { - "description": "Represents a targetable category. This will be populated in the category_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_CATEGORY`.", - "id": "CategoryTargetingOptionDetails", - "properties": { - "displayName": { - "description": "Output only. The display name of the category.", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "Channel": { - "description": "A single channel. Channels are custom groups of related websites and apps.", - "id": "Channel", - "properties": { - "advertiserId": { - "description": "The ID of the advertiser that owns the channel.", - "format": "int64", - "type": "string" - }, - "channelId": { - "description": "Output only. The unique ID of the channel. Assigned by the system.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "displayName": { - "description": "Required. The display name of the channel. Must be UTF-8 encoded with a maximum length of 240 bytes.", - "type": "string" - }, - "name": { - "description": "Output only. The resource name of the channel.", - "readOnly": true, - "type": "string" - }, - "negativelyTargetedLineItemCount": { - "description": "Output only. Number of line items that are directly targeting this channel negatively.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "partnerId": { - "description": "The ID of the partner that owns the channel.", - "format": "int64", - "type": "string" - }, - "positivelyTargetedLineItemCount": { - "description": "Output only. Number of line items that are directly targeting this channel positively.", - "format": "int64", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "ChannelAssignedTargetingOptionDetails": { - "description": "Details for assigned channel targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_CHANNEL`.", - "id": "ChannelAssignedTargetingOptionDetails", - "properties": { - "channelId": { - "description": "Required. ID of the channel. Should refer to the channel ID field on a [Partner-owned channel](partners.channels#Channel.FIELDS.channel_id) or [advertiser-owned channel](advertisers.channels#Channel.FIELDS.channel_id) resource.", - "format": "int64", - "type": "string" - }, - "negative": { - "description": "Indicates if this option is being negatively targeted. For advertiser level assigned targeting option, this field must be true.", - "type": "boolean" - } - }, - "type": "object" - }, - "CmHybridConfig": { - "description": "Settings for advertisers that use both Campaign Manager 360 (CM360) and third-party ad servers.", - "id": "CmHybridConfig", - "properties": { - "cmAccountId": { - "description": "Required. Immutable. Account ID of the CM360 Floodlight configuration linked with the DV360 advertiser.", - "format": "int64", - "type": "string" - }, - "cmFloodlightConfigId": { - "description": "Required. Immutable. ID of the CM360 Floodlight configuration linked with the DV360 advertiser.", - "format": "int64", - "type": "string" - }, - "cmFloodlightLinkingAuthorized": { - "description": "Required. Immutable. By setting this field to `true`, you, on behalf of your company, authorize the sharing of information from the given Floodlight configuration to this Display & Video 360 advertiser.", - "type": "boolean" - }, - "cmSyncableSiteIds": { - "description": "A list of CM360 sites whose placements will be synced to DV360 as creatives. If absent or empty in CreateAdvertiser method, the system will automatically create a CM360 site. Removing sites from this list may cause DV360 creatives synced from CM360 to be deleted. At least one site must be specified.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "dv360ToCmCostReportingEnabled": { - "description": "Whether or not to report DV360 cost to CM360.", - "type": "boolean" - }, - "dv360ToCmDataSharingEnabled": { - "description": "Whether or not to include DV360 data in CM360 data transfer reports.", - "type": "boolean" - } - }, - "type": "object" - }, - "CmTrackingAd": { - "description": "A Campaign Manager 360 tracking ad.", - "id": "CmTrackingAd", - "properties": { - "cmAdId": { - "description": "The ad ID of the campaign manager 360 tracking Ad.", - "format": "int64", - "type": "string" - }, - "cmCreativeId": { - "description": "The creative ID of the campaign manager 360 tracking Ad.", - "format": "int64", - "type": "string" - }, - "cmPlacementId": { - "description": "The placement ID of the campaign manager 360 tracking Ad.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "CombinedAudience": { - "description": "Describes a combined audience resource.", - "id": "CombinedAudience", - "properties": { - "combinedAudienceId": { - "description": "Output only. The unique ID of the combined audience. Assigned by the system.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "displayName": { - "description": "Output only. The display name of the combined audience. .", - "readOnly": true, - "type": "string" - }, - "name": { - "description": "Output only. The resource name of the combined audience.", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "CombinedAudienceGroup": { - "description": "Details of combined audience group. All combined audience targeting settings are logically ‘OR’ of each other.", - "id": "CombinedAudienceGroup", - "properties": { - "settings": { - "description": "Required. All combined audience targeting settings in combined audience group. Repeated settings with same id will be ignored. The number of combined audience settings should be no more than five, error will be thrown otherwise.", - "items": { - "$ref": "CombinedAudienceTargetingSetting" - }, - "type": "array" - } - }, - "type": "object" - }, - "CombinedAudienceTargetingSetting": { - "description": "Details of combined audience targeting setting.", - "id": "CombinedAudienceTargetingSetting", - "properties": { - "combinedAudienceId": { - "description": "Required. Combined audience id of combined audience targeting setting. This id is combined_audience_id.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "Consent": { - "description": "User consent status.", - "id": "Consent", - "properties": { - "adPersonalization": { - "description": "Represents consent for ad personalization.", - "enum": [ - "CONSENT_STATUS_UNSPECIFIED", - "CONSENT_STATUS_GRANTED", - "CONSENT_STATUS_DENIED" - ], - "enumDescriptions": [ - "Consent is not specified.", - "Consent is granted.", - "Consent is denied." - ], - "type": "string" - }, - "adUserData": { - "description": "Represents consent for ad user data.", - "enum": [ - "CONSENT_STATUS_UNSPECIFIED", - "CONSENT_STATUS_GRANTED", - "CONSENT_STATUS_DENIED" - ], - "enumDescriptions": [ - "Consent is not specified.", - "Consent is granted.", - "Consent is denied." - ], - "type": "string" - } - }, - "type": "object" - }, - "ContactInfo": { - "description": "Contact information defining a Customer Match audience member.", - "id": "ContactInfo", - "properties": { - "countryCode": { - "description": "Country code of the member. Must also be set with the following fields: * hashed_first_name * hashed_last_name * zip_codes", - "type": "string" - }, - "hashedEmails": { - "description": "A list of SHA256 hashed email of the member. Before hashing, remove all whitespace and make sure the string is all lowercase.", - "items": { - "type": "string" - }, - "type": "array" - }, - "hashedFirstName": { - "description": "SHA256 hashed first name of the member. Before hashing, remove all whitespace and make sure the string is all lowercase. Must also be set with the following fields: * country_code * hashed_last_name * zip_codes", - "type": "string" - }, - "hashedLastName": { - "description": "SHA256 hashed last name of the member. Before hashing, remove all whitespace and make sure the string is all lowercase. Must also be set with the following fields: * country_code * hashed_first_name * zip_codes", - "type": "string" - }, - "hashedPhoneNumbers": { - "description": "A list of SHA256 hashed phone numbers of the member. Before hashing, all phone numbers must be formatted using the [E.164 format](//en.wikipedia.org/wiki/E.164) and include the country calling code.", - "items": { - "type": "string" - }, - "type": "array" - }, - "zipCodes": { - "description": "A list of zip codes of the member. Must also be set with the following fields: * country_code * hashed_first_name * hashed_last_name", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "ContactInfoList": { - "description": "Wrapper message for a list of contact information defining Customer Match audience members.", - "id": "ContactInfoList", - "properties": { - "consent": { - "$ref": "Consent", - "description": "Input only. User consent status." - }, - "contactInfos": { - "description": "A list of ContactInfo objects defining Customer Match audience members. The size of members after splitting the contact_infos mustn't be greater than 500,000.", - "items": { - "$ref": "ContactInfo" - }, - "type": "array" - } - }, - "type": "object" - }, - "ContentDurationAssignedTargetingOptionDetails": { - "description": "Details for content duration assigned targeting option. This will be populated in the content_duration_details field when targeting_type is `TARGETING_TYPE_CONTENT_DURATION`. Explicitly targeting all options is not supported. Remove all content duration targeting options to achieve this effect.", - "id": "ContentDurationAssignedTargetingOptionDetails", - "properties": { - "contentDuration": { - "description": "Output only. The content duration.", - "enum": [ - "CONTENT_DURATION_UNSPECIFIED", - "CONTENT_DURATION_UNKNOWN", - "CONTENT_DURATION_0_TO_1_MIN", - "CONTENT_DURATION_1_TO_5_MIN", - "CONTENT_DURATION_5_TO_15_MIN", - "CONTENT_DURATION_15_TO_30_MIN", - "CONTENT_DURATION_30_TO_60_MIN", - "CONTENT_DURATION_OVER_60_MIN" - ], - "enumDescriptions": [ - "Content duration is not specified in this version. This enum is a place holder for a default value and does not represent a real content duration.", - "The content duration is unknown.", - "Content is 0-1 minute long.", - "Content is 1-5 minutes long.", - "Content is 5-15 minutes long.", - "Content is 15-30 minutes long.", - "Content is 30-60 minutes long.", - "Content is over 60 minutes long." - ], - "readOnly": true, - "type": "string" - }, - "targetingOptionId": { - "description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_CONTENT_DURATION`.", - "type": "string" - } - }, - "type": "object" - }, - "ContentDurationTargetingOptionDetails": { - "description": "Represents a targetable content duration. This will be populated in the content_duration_details field when targeting_type is `TARGETING_TYPE_CONTENT_DURATION`.", - "id": "ContentDurationTargetingOptionDetails", - "properties": { - "contentDuration": { - "description": "Output only. The content duration.", - "enum": [ - "CONTENT_DURATION_UNSPECIFIED", - "CONTENT_DURATION_UNKNOWN", - "CONTENT_DURATION_0_TO_1_MIN", - "CONTENT_DURATION_1_TO_5_MIN", - "CONTENT_DURATION_5_TO_15_MIN", - "CONTENT_DURATION_15_TO_30_MIN", - "CONTENT_DURATION_30_TO_60_MIN", - "CONTENT_DURATION_OVER_60_MIN" - ], - "enumDescriptions": [ - "Content duration is not specified in this version. This enum is a place holder for a default value and does not represent a real content duration.", - "The content duration is unknown.", - "Content is 0-1 minute long.", - "Content is 1-5 minutes long.", - "Content is 5-15 minutes long.", - "Content is 15-30 minutes long.", - "Content is 30-60 minutes long.", - "Content is over 60 minutes long." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "ContentGenreAssignedTargetingOptionDetails": { - "description": "Details for content genre assigned targeting option. This will be populated in the content_genre_details field when targeting_type is `TARGETING_TYPE_CONTENT_GENRE`. Explicitly targeting all options is not supported. Remove all content genre targeting options to achieve this effect.", - "id": "ContentGenreAssignedTargetingOptionDetails", - "properties": { - "displayName": { - "description": "Output only. The display name of the content genre.", - "readOnly": true, - "type": "string" - }, - "negative": { - "description": "Indicates if this option is being negatively targeted.", - "type": "boolean" - }, - "targetingOptionId": { - "description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_CONTENT_GENRE`.", - "type": "string" - } - }, - "type": "object" - }, - "ContentGenreTargetingOptionDetails": { - "description": "Represents a targetable content genre. This will be populated in the content_genre_details field when targeting_type is `TARGETING_TYPE_CONTENT_GENRE`.", - "id": "ContentGenreTargetingOptionDetails", - "properties": { - "displayName": { - "description": "Output only. The display name of the content genre", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "ContentInstreamPositionAssignedTargetingOptionDetails": { - "description": "Assigned content instream position targeting option details. This will be populated in the content_instream_position_details field when targeting_type is `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`.", - "id": "ContentInstreamPositionAssignedTargetingOptionDetails", - "properties": { - "adType": { - "description": "Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. * `AD_TYPE_AUDIO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_AUDIO_DEFAULT`.", - "enum": [ - "AD_TYPE_UNSPECIFIED", - "AD_TYPE_DISPLAY", - "AD_TYPE_VIDEO", - "AD_TYPE_AUDIO" - ], - "enumDescriptions": [ - "Ad type is not specified or is unknown in this version.", - "Display creatives, e.g. image and HTML5.", - "Video creatives, e.g. video ads that play during streaming content in video players.", - "Audio creatives, e.g. audio ads that play during audio content." - ], - "readOnly": true, - "type": "string" - }, - "contentInstreamPosition": { - "description": "Required. The content instream position for video or audio ads.", - "enum": [ - "CONTENT_INSTREAM_POSITION_UNSPECIFIED", - "CONTENT_INSTREAM_POSITION_PRE_ROLL", - "CONTENT_INSTREAM_POSITION_MID_ROLL", - "CONTENT_INSTREAM_POSITION_POST_ROLL", - "CONTENT_INSTREAM_POSITION_UNKNOWN" - ], - "enumDescriptions": [ - "Content instream position is not specified in this version. This enum is a place holder for a default value and does not represent a real in stream ad position.", - "Ads that play before streaming content.", - "Ads that play between the beginning and end of streaming content.", - "Ads that play at the end of streaming content.", - "Ads instream position is unknown." - ], - "type": "string" - }, - "targetingOptionId": { - "description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`.", - "type": "string" - } - }, - "type": "object" - }, - "ContentInstreamPositionTargetingOptionDetails": { - "description": "Represents a targetable content instream position, which could be used by video and audio ads. This will be populated in the content_instream_position_details field when targeting_type is `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`.", - "id": "ContentInstreamPositionTargetingOptionDetails", - "properties": { - "contentInstreamPosition": { - "description": "Output only. The content instream position.", - "enum": [ - "CONTENT_INSTREAM_POSITION_UNSPECIFIED", - "CONTENT_INSTREAM_POSITION_PRE_ROLL", - "CONTENT_INSTREAM_POSITION_MID_ROLL", - "CONTENT_INSTREAM_POSITION_POST_ROLL", - "CONTENT_INSTREAM_POSITION_UNKNOWN" - ], - "enumDescriptions": [ - "Content instream position is not specified in this version. This enum is a place holder for a default value and does not represent a real in stream ad position.", - "Ads that play before streaming content.", - "Ads that play between the beginning and end of streaming content.", - "Ads that play at the end of streaming content.", - "Ads instream position is unknown." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "ContentOutstreamPositionAssignedTargetingOptionDetails": { - "description": "Assigned content outstream position targeting option details. This will be populated in the content_outstream_position_details field when targeting_type is `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`.", - "id": "ContentOutstreamPositionAssignedTargetingOptionDetails", - "properties": { - "adType": { - "description": "Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`.", - "enum": [ - "AD_TYPE_UNSPECIFIED", - "AD_TYPE_DISPLAY", - "AD_TYPE_VIDEO", - "AD_TYPE_AUDIO" - ], - "enumDescriptions": [ - "Ad type is not specified or is unknown in this version.", - "Display creatives, e.g. image and HTML5.", - "Video creatives, e.g. video ads that play during streaming content in video players.", - "Audio creatives, e.g. audio ads that play during audio content." - ], - "readOnly": true, - "type": "string" - }, - "contentOutstreamPosition": { - "description": "Required. The content outstream position.", - "enum": [ - "CONTENT_OUTSTREAM_POSITION_UNSPECIFIED", - "CONTENT_OUTSTREAM_POSITION_UNKNOWN", - "CONTENT_OUTSTREAM_POSITION_IN_ARTICLE", - "CONTENT_OUTSTREAM_POSITION_IN_BANNER", - "CONTENT_OUTSTREAM_POSITION_IN_FEED", - "CONTENT_OUTSTREAM_POSITION_INTERSTITIAL" - ], - "enumDescriptions": [ - "Content outstream position is not specified in this version. This enum is a place holder for a default value and does not represent a real content outstream position.", - "The ad position is unknown in the content outstream.", - "Ads that appear between the paragraphs of your pages.", - "Ads that display on the top and the sides of a page.", - "Ads that appear in a scrollable stream of content. A feed is typically editorial (e.g. a list of articles or news) or listings (e.g. a list of products or services).", - "Ads shown before or between content loads." - ], - "type": "string" - }, - "targetingOptionId": { - "description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`.", - "type": "string" - } - }, - "type": "object" - }, - "ContentOutstreamPositionTargetingOptionDetails": { - "description": "Represents a targetable content outstream position, which could be used by display and video ads. This will be populated in the content_outstream_position_details field when targeting_type is `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`.", - "id": "ContentOutstreamPositionTargetingOptionDetails", - "properties": { - "contentOutstreamPosition": { - "description": "Output only. The content outstream position.", - "enum": [ - "CONTENT_OUTSTREAM_POSITION_UNSPECIFIED", - "CONTENT_OUTSTREAM_POSITION_UNKNOWN", - "CONTENT_OUTSTREAM_POSITION_IN_ARTICLE", - "CONTENT_OUTSTREAM_POSITION_IN_BANNER", - "CONTENT_OUTSTREAM_POSITION_IN_FEED", - "CONTENT_OUTSTREAM_POSITION_INTERSTITIAL" - ], - "enumDescriptions": [ - "Content outstream position is not specified in this version. This enum is a place holder for a default value and does not represent a real content outstream position.", - "The ad position is unknown in the content outstream.", - "Ads that appear between the paragraphs of your pages.", - "Ads that display on the top and the sides of a page.", - "Ads that appear in a scrollable stream of content. A feed is typically editorial (e.g. a list of articles or news) or listings (e.g. a list of products or services).", - "Ads shown before or between content loads." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "ContentStreamTypeAssignedTargetingOptionDetails": { - "description": "Details for content stream type assigned targeting option. This will be populated in the content_stream_type_details field when targeting_type is `TARGETING_TYPE_CONTENT_STREAM_TYPE`. Explicitly targeting all options is not supported. Remove all content stream type targeting options to achieve this effect.", - "id": "ContentStreamTypeAssignedTargetingOptionDetails", - "properties": { - "contentStreamType": { - "description": "Output only. The content stream type.", - "enum": [ - "CONTENT_STREAM_TYPE_UNSPECIFIED", - "CONTENT_LIVE_STREAM", - "CONTENT_ON_DEMAND" - ], - "enumDescriptions": [ - "Content stream type is not specified in this version. This enum is a place holder for a default value and does not represent a real content stream type.", - "The content is being live-streamed.", - "The content is viewed on-demand." - ], - "readOnly": true, - "type": "string" - }, - "targetingOptionId": { - "description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_CONTENT_STREAM_TYPE`.", - "type": "string" - } - }, - "type": "object" - }, - "ContentStreamTypeTargetingOptionDetails": { - "description": "Represents a targetable content stream type. This will be populated in the content_stream_type_details field when targeting_type is `TARGETING_TYPE_CONTENT_STREAM_TYPE`.", - "id": "ContentStreamTypeTargetingOptionDetails", - "properties": { - "contentStreamType": { - "description": "Output only. The content stream type.", - "enum": [ - "CONTENT_STREAM_TYPE_UNSPECIFIED", - "CONTENT_LIVE_STREAM", - "CONTENT_ON_DEMAND" - ], - "enumDescriptions": [ - "Content stream type is not specified in this version. This enum is a place holder for a default value and does not represent a real content stream type.", - "The content is being live-streamed.", - "The content is viewed on-demand." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "ConversionCountingConfig": { - "description": "Settings that control how conversions are counted. All post-click conversions will be counted. A percentage value can be set for post-view conversions counting.", - "id": "ConversionCountingConfig", - "properties": { - "floodlightActivityConfigs": { - "description": "The Floodlight activity configs used to track conversions. The number of conversions counted is the sum of all of the conversions counted by all of the Floodlight activity IDs specified in this field.", - "items": { - "$ref": "TrackingFloodlightActivityConfig" - }, - "type": "array" - }, - "postViewCountPercentageMillis": { - "description": "The percentage of post-view conversions to count, in millis (1/1000 of a percent). Must be between 0 and 100000 inclusive. For example, to track 50% of the post-click conversions, set a value of 50000.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "CounterEvent": { - "description": "Counter event of the creative.", - "id": "CounterEvent", - "properties": { - "name": { - "description": "Required. The name of the counter event.", - "type": "string" - }, - "reportingName": { - "description": "Required. The name used to identify this counter event in reports.", - "type": "string" - } - }, - "type": "object" - }, - "CreateAssetRequest": { - "description": "A request message for CreateAsset.", - "id": "CreateAssetRequest", - "properties": { - "filename": { - "description": "Required. The filename of the asset, including the file extension. The filename must be UTF-8 encoded with a maximum size of 240 bytes.", - "type": "string" - } - }, - "type": "object" - }, - "CreateAssetResponse": { - "description": "A response message for CreateAsset.", - "id": "CreateAssetResponse", - "properties": { - "asset": { - "$ref": "Asset", - "description": "The uploaded asset, if successful." - } - }, - "type": "object" - }, - "CreateAssignedTargetingOptionsRequest": { - "description": "A request listing which assigned targeting options of a given targeting type should be created and added.", - "id": "CreateAssignedTargetingOptionsRequest", - "properties": { - "assignedTargetingOptions": { - "description": "Required. The assigned targeting options to create and add.", - "items": { - "$ref": "AssignedTargetingOption" - }, - "type": "array" - }, - "targetingType": { - "description": "Required. Identifies the type of this assigned targeting option.", - "enum": [ - "TARGETING_TYPE_UNSPECIFIED", - "TARGETING_TYPE_CHANNEL", - "TARGETING_TYPE_APP_CATEGORY", - "TARGETING_TYPE_APP", - "TARGETING_TYPE_URL", - "TARGETING_TYPE_DAY_AND_TIME", - "TARGETING_TYPE_AGE_RANGE", - "TARGETING_TYPE_REGIONAL_LOCATION_LIST", - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST", - "TARGETING_TYPE_GENDER", - "TARGETING_TYPE_VIDEO_PLAYER_SIZE", - "TARGETING_TYPE_USER_REWARDED_CONTENT", - "TARGETING_TYPE_PARENTAL_STATUS", - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION", - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", - "TARGETING_TYPE_DEVICE_TYPE", - "TARGETING_TYPE_AUDIENCE_GROUP", - "TARGETING_TYPE_BROWSER", - "TARGETING_TYPE_HOUSEHOLD_INCOME", - "TARGETING_TYPE_ON_SCREEN_POSITION", - "TARGETING_TYPE_THIRD_PARTY_VERIFIER", - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", - "TARGETING_TYPE_ENVIRONMENT", - "TARGETING_TYPE_CARRIER_AND_ISP", - "TARGETING_TYPE_OPERATING_SYSTEM", - "TARGETING_TYPE_DEVICE_MAKE_MODEL", - "TARGETING_TYPE_KEYWORD", - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", - "TARGETING_TYPE_VIEWABILITY", - "TARGETING_TYPE_CATEGORY", - "TARGETING_TYPE_INVENTORY_SOURCE", - "TARGETING_TYPE_LANGUAGE", - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", - "TARGETING_TYPE_GEO_REGION", - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", - "TARGETING_TYPE_EXCHANGE", - "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_POI", - "TARGETING_TYPE_BUSINESS_CHAIN", - "TARGETING_TYPE_CONTENT_DURATION", - "TARGETING_TYPE_CONTENT_STREAM_TYPE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION", - "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE", - "TARGETING_TYPE_CONTENT_GENRE" - ], - "enumDescriptions": [ - "Default value when type is not specified or is unknown in this version.", - "Target a channel (a custom group of related websites or apps).", - "Target an app category (for example, education or puzzle games).", - "Target a specific app (for example, Angry Birds).", - "Target a specific url (for example, quora.com).", - "Target ads during a chosen time period on a specific day.", - "Target ads to a specific age range (for example, 18-24).", - "Target ads to the specified regions on a regional location list.", - "Target ads to the specified points of interest on a proximity location list.", - "Target ads to a specific gender (for example, female or male).", - "Target a specific video player size for video ads.", - "Target user rewarded content for video ads.", - "Target ads to a specific parental status (for example, parent or not a parent).", - "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", - "Target ads in a specific content outstream position.", - "Target ads to a specific device type (for example, tablet or connected TV).", - "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", - "Target ads to specific web browsers (for example, Chrome).", - "Target ads to a specific household income range (for example, top 10%).", - "Target ads in a specific on screen position.", - "Filter web sites through third party verification (for example, IAS or DoubleVerify).", - "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", - "Filter website content by sensitive categories (for example, adult).", - "Target ads to a specific environment (for example, web or app).", - "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", - "Target ads to a specific operating system (for example, macOS).", - "Target ads to a specific device make or model (for example, Roku or Samsung).", - "Target ads to a specific keyword (for example, dog or retriever).", - "Target ads to a specific negative keyword list.", - "Target ads to a specific viewability (for example, 80% viewable).", - "Target ads to a specific content category (for example, arts & entertainment).", - "Purchase impressions from specific deals and auction packages.", - "Target ads to a specific language (for example, English or Japanese).", - "Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", - "Target ads to a specific regional location (for example, a city or state).", - "Purchase impressions from a group of deals and auction packages.", - "Purchase impressions from specific exchanges.", - "Purchase impressions from specific sub-exchanges.", - "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", - "Target ads around locations of a business chain within a specific geo region.", - "Target ads to a specific video content duration.", - "Target ads to a specific video content stream type.", - "Target ads to a specific native content position.", - "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type.", - "Target ads to a specific content genre." - ], - "type": "string" - } - }, - "type": "object" - }, - "CreateSdfDownloadTaskRequest": { - "description": "Request message for [SdfDownloadTaskService.CreateSdfDownloadTask].", - "id": "CreateSdfDownloadTaskRequest", - "properties": { - "advertiserId": { - "description": "The ID of the advertiser to download SDF for.", - "format": "int64", - "type": "string" - }, - "idFilter": { - "$ref": "IdFilter", - "description": "Filters on entities by their entity IDs." - }, - "inventorySourceFilter": { - "$ref": "InventorySourceFilter", - "description": "Filters on Inventory Sources by their IDs." - }, - "parentEntityFilter": { - "$ref": "ParentEntityFilter", - "description": "Filters on selected file types. The entities in each file are filtered by a chosen set of filter entities. The filter entities must be the same type as, or a parent type of, the selected file types." - }, - "partnerId": { - "description": "The ID of the partner to download SDF for.", - "format": "int64", - "type": "string" - }, - "version": { - "description": "Required. The SDF version of the downloaded file. If set to `SDF_VERSION_UNSPECIFIED`, this will default to the version specified by the advertiser or partner identified by `root_id`. An advertiser inherits its SDF version from its partner unless configured otherwise.", - "enum": [ - "SDF_VERSION_UNSPECIFIED", - "SDF_VERSION_3_1", - "SDF_VERSION_4", - "SDF_VERSION_4_1", - "SDF_VERSION_4_2", - "SDF_VERSION_5", - "SDF_VERSION_5_1", - "SDF_VERSION_5_2", - "SDF_VERSION_5_3", - "SDF_VERSION_5_4", - "SDF_VERSION_5_5", - "SDF_VERSION_6", - "SDF_VERSION_7" - ], - "enumDeprecated": [ - false, - true, - true, - true, - true, - true, - true, - true, - true, - false, - false, - false, - false - ], - "enumDescriptions": [ - "SDF version value is not specified or is unknown in this version.", - "SDF version 3.1", - "SDF version 4", - "SDF version 4.1", - "SDF version 4.2", - "SDF version 5.", - "SDF version 5.1", - "SDF version 5.2", - "SDF version 5.3", - "SDF version 5.4", - "SDF version 5.5", - "SDF version 6", - "SDF version 7. Read the [v7 migration guide](/display-video/api/structured-data-file/v7-migration-guide) before migrating to this version. Currently in beta. Only available for use by a subset of users." - ], - "type": "string" - } - }, - "type": "object" - }, - "Creative": { - "description": "A single Creative.", - "id": "Creative", - "properties": { - "additionalDimensions": { - "description": "Additional dimensions. Applicable when creative_type is one of: * `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_EXPANDABLE` * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_LIGHTBOX` * `CREATIVE_TYPE_PUBLISHER_HOSTED` If this field is specified, width_pixels and height_pixels are both required and must be greater than or equal to 0.", - "items": { - "$ref": "Dimensions" - }, - "type": "array" - }, - "advertiserId": { - "description": "Output only. The unique ID of the advertiser the creative belongs to.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "appendedTag": { - "description": "Third-party HTML tracking tag to be appended to the creative tag.", - "type": "string" - }, - "assets": { - "description": "Required. Assets associated to this creative.", - "items": { - "$ref": "AssetAssociation" - }, - "type": "array" - }, - "cmPlacementId": { - "description": "Output only. The unique ID of the Campaign Manager 360 placement associated with the creative. This field is only applicable for creatives that are synced from Campaign Manager.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "cmTrackingAd": { - "$ref": "CmTrackingAd", - "description": "The Campaign Manager 360 tracking ad associated with the creative. Optional for the following creative_type when created by an advertiser that uses both Campaign Manager 360 and third-party ad serving: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` Output only for other cases." - }, - "companionCreativeIds": { - "description": "The IDs of companion creatives for a video creative. You can assign existing display creatives (with image or HTML5 assets) to serve surrounding the publisher's video player. Companions display around the video player while the video is playing and remain after the video has completed. Creatives contain additional dimensions can not be companion creatives. This field is only supported for following creative_type: * `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_VIDEO`", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "counterEvents": { - "description": "Counter events for a rich media creative. Counters track the number of times that a user interacts with any part of a rich media creative in a specified way (mouse-overs, mouse-outs, clicks, taps, data loading, keyboard entries, etc.). Any event that can be captured in the creative can be recorded as a counter. Leave it empty or unset for creatives containing image assets only.", - "items": { - "$ref": "CounterEvent" - }, - "type": "array" - }, - "createTime": { - "description": "Output only. The timestamp when the creative was created. Assigned by the system.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "creativeAttributes": { - "description": "Output only. A list of attributes of the creative that is generated by the system.", - "items": { - "enum": [ - "CREATIVE_ATTRIBUTE_UNSPECIFIED", - "CREATIVE_ATTRIBUTE_VAST", - "CREATIVE_ATTRIBUTE_VPAID_LINEAR", - "CREATIVE_ATTRIBUTE_VPAID_NON_LINEAR" - ], - "enumDescriptions": [ - "The creative attribute is not specified or is unknown in this version.", - "The creative is a VAST creative.", - "The creative is a linear VPAID creative.", - "The creative is a non-linear VPAID creative." - ], - "type": "string" - }, - "readOnly": true, - "type": "array" - }, - "creativeId": { - "description": "Output only. The unique ID of the creative. Assigned by the system.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "creativeType": { - "description": "Required. Immutable. The type of the creative.", - "enum": [ - "CREATIVE_TYPE_UNSPECIFIED", - "CREATIVE_TYPE_STANDARD", - "CREATIVE_TYPE_EXPANDABLE", - "CREATIVE_TYPE_VIDEO", - "CREATIVE_TYPE_NATIVE", - "CREATIVE_TYPE_TEMPLATED_APP_INSTALL", - "CREATIVE_TYPE_NATIVE_SITE_SQUARE", - "CREATIVE_TYPE_TEMPLATED_APP_INSTALL_INTERSTITIAL", - "CREATIVE_TYPE_LIGHTBOX", - "CREATIVE_TYPE_NATIVE_APP_INSTALL", - "CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE", - "CREATIVE_TYPE_AUDIO", - "CREATIVE_TYPE_PUBLISHER_HOSTED", - "CREATIVE_TYPE_NATIVE_VIDEO", - "CREATIVE_TYPE_TEMPLATED_APP_INSTALL_VIDEO" - ], - "enumDescriptions": [ - "Type value is not specified or is unknown in this version.", - "Standard display creative. Create and update methods are supported for this creative type if the hosting_source is one of the following: * `HOSTING_SOURCE_HOSTED` * `HOSTING_SOURCE_THIRD_PARTY`", - "Expandable creative. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_THIRD_PARTY`", - "Video creative. Create and update methods are supported for this creative type if the hosting_source is one of the following: * `HOSTING_SOURCE_HOSTED` * `HOSTING_SOURCE_THIRD_PARTY`", - "Native creative rendered by publishers with assets from advertiser. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`", - "Templated app install mobile creative (banner). Create and update methods are **not** supported for this creative type.", - "Square native creative. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`", - "Interstitial creative including both display and video. Create and update methods are **not** supported for this creative type.", - "Responsive and expandable Lightbox creative. Create and update methods are **not** supported for this creative type.", - "Native app install creative. Create and update methods are **not** supported for this creative type.", - "Square native app install creative. Create and update methods are **not** supported for this creative type.", - "Audio creative. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`", - "Publisher hosted creative. Create and update methods are **not** supported for this creative type.", - "Native video creative. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`", - "Templated app install mobile video creative. Create and update methods are **not** supported for this creative type." - ], - "type": "string" - }, - "dimensions": { - "$ref": "Dimensions", - "description": "Required. Primary dimensions of the creative. Applicable to all creative types. The value of width_pixels and height_pixels defaults to `0` when creative_type is one of: * `CREATIVE_TYPE_VIDEO` * `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_NATIVE_VIDEO`" - }, - "displayName": { - "description": "Required. The display name of the creative. Must be UTF-8 encoded with a maximum size of 240 bytes.", - "type": "string" - }, - "dynamic": { - "description": "Output only. Indicates whether the creative is dynamic.", - "readOnly": true, - "type": "boolean" - }, - "entityStatus": { - "description": "Required. Controls whether or not the creative can serve. Accepted values are: * `ENTITY_STATUS_ACTIVE` * `ENTITY_STATUS_ARCHIVED` * `ENTITY_STATUS_PAUSED`", - "enum": [ - "ENTITY_STATUS_UNSPECIFIED", - "ENTITY_STATUS_ACTIVE", - "ENTITY_STATUS_ARCHIVED", - "ENTITY_STATUS_DRAFT", - "ENTITY_STATUS_PAUSED", - "ENTITY_STATUS_SCHEDULED_FOR_DELETION" - ], - "enumDescriptions": [ - "Default value when status is not specified or is unknown in this version.", - "The entity is enabled to bid and spend budget.", - "The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", - "The entity is under draft. Bidding and budget spending are disabled.", - "Bidding and budget spending are paused for the entity.", - "The entity is scheduled for deletion." - ], - "type": "string" - }, - "exitEvents": { - "description": "Required. Exit events for this creative. An exit (also known as a click tag) is any area in your creative that someone can click or tap to open an advertiser's landing page. Every creative must include at least one exit. You can add an exit to your creative in any of the following ways: * Use Google Web Designer's tap area. * Define a JavaScript variable called \"clickTag\". * Use the Enabler (Enabler.exit()) to track exits in rich media formats.", - "items": { - "$ref": "ExitEvent" - }, - "type": "array" - }, - "expandOnHover": { - "description": "Optional. Indicates the creative will automatically expand on hover. Optional and only valid for third-party expandable creatives. Third-party expandable creatives are creatives with following hosting source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_EXPANDABLE`", - "type": "boolean" - }, - "expandingDirection": { - "description": "Optional. Specifies the expanding direction of the creative. Required and only valid for third-party expandable creatives. Third-party expandable creatives are creatives with following hosting source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_EXPANDABLE`", - "enum": [ - "EXPANDING_DIRECTION_UNSPECIFIED", - "EXPANDING_DIRECTION_NONE", - "EXPANDING_DIRECTION_UP", - "EXPANDING_DIRECTION_DOWN", - "EXPANDING_DIRECTION_LEFT", - "EXPANDING_DIRECTION_RIGHT", - "EXPANDING_DIRECTION_UP_AND_LEFT", - "EXPANDING_DIRECTION_UP_AND_RIGHT", - "EXPANDING_DIRECTION_DOWN_AND_LEFT", - "EXPANDING_DIRECTION_DOWN_AND_RIGHT", - "EXPANDING_DIRECTION_UP_OR_DOWN", - "EXPANDING_DIRECTION_LEFT_OR_RIGHT", - "EXPANDING_DIRECTION_ANY_DIAGONAL" - ], - "enumDescriptions": [ - "The expanding direction is not specified.", - "Does not expand in any direction.", - "Expands up.", - "Expands down.", - "Expands left.", - "Expands right.", - "Expands up and to the left side.", - "Expands up and to the right side.", - "Expands down and to the left side.", - "Expands down and to the right side.", - "Expands either up or down.", - "Expands to either the left or the right side.", - "Can expand in any diagonal direction." - ], - "type": "string" - }, - "hostingSource": { - "description": "Required. Indicates where the creative is hosted.", - "enum": [ - "HOSTING_SOURCE_UNSPECIFIED", - "HOSTING_SOURCE_CM", - "HOSTING_SOURCE_THIRD_PARTY", - "HOSTING_SOURCE_HOSTED", - "HOSTING_SOURCE_RICH_MEDIA" - ], - "enumDescriptions": [ - "Hosting source is not specified or is unknown in this version.", - "A creative synced from Campaign Manager 360. Create and update methods are **not** supported for this hosting type.", - "A creative hosted by a third-party ad server (3PAS). Create and update methods are supported for this hosting type if the creative_type is one of the following: * `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_EXPANDABLE` * `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_VIDEO`", - "A creative created in DV360 and hosted by Campaign Manager 360. Create and update methods are supported for this hosting type if the creative_type is one of the following: * `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO` * `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_VIDEO`", - "A rich media creative created in Studio and hosted by Campaign Manager 360. Create and update methods are **not** supported for this hosting type." - ], - "type": "string" - }, - "html5Video": { - "description": "Output only. Indicates the third-party VAST tag creative requires HTML5 Video support. Output only and only valid for third-party VAST tag creatives. Third-party VAST tag creatives are creatives with following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_VIDEO`", - "readOnly": true, - "type": "boolean" - }, - "iasCampaignMonitoring": { - "description": "Indicates whether Integral Ad Science (IAS) campaign monitoring is enabled. To enable this for the creative, make sure the Advertiser.creative_config.ias_client_id has been set to your IAS client ID.", - "type": "boolean" - }, - "integrationCode": { - "description": "ID information used to link this creative to an external system. Must be UTF-8 encoded with a length of no more than 10,000 characters.", - "type": "string" - }, - "jsTrackerUrl": { - "description": "JavaScript measurement URL from supported third-party verification providers (ComScore, DoubleVerify, IAS, Moat). HTML script tags are not supported. This field is only writeable in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO`", - "type": "string" - }, - "lineItemIds": { - "description": "Output only. The IDs of the line items this creative is associated with. To associate a creative to a line item, use LineItem.creative_ids instead.", - "items": { - "format": "int64", - "type": "string" - }, - "readOnly": true, - "type": "array" - }, - "mediaDuration": { - "description": "Output only. Media duration of the creative. Applicable when creative_type is one of: * `CREATIVE_TYPE_VIDEO` * `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_NATIVE_VIDEO` * `CREATIVE_TYPE_PUBLISHER_HOSTED`", - "format": "google-duration", - "readOnly": true, - "type": "string" - }, - "mp3Audio": { - "description": "Output only. Indicates the third-party audio creative supports MP3. Output only and only valid for third-party audio creatives. Third-party audio creatives are creatives with following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_AUDIO`", - "readOnly": true, - "type": "boolean" - }, - "name": { - "description": "Output only. The resource name of the creative.", - "readOnly": true, - "type": "string" - }, - "notes": { - "description": "User notes for this creative. Must be UTF-8 encoded with a length of no more than 20,000 characters.", - "type": "string" - }, - "obaIcon": { - "$ref": "ObaIcon", - "description": "Specifies the OBA icon for a video creative. This field is only supported in following creative_type: * `CREATIVE_TYPE_VIDEO`" - }, - "oggAudio": { - "description": "Output only. Indicates the third-party audio creative supports OGG. Output only and only valid for third-party audio creatives. Third-party audio creatives are creatives with following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_AUDIO`", - "readOnly": true, - "type": "boolean" - }, - "progressOffset": { - "$ref": "AudioVideoOffset", - "description": "Amount of time to play the video before counting a view. This field is required when skippable is true. This field is only supported for the following creative_type: * `CREATIVE_TYPE_VIDEO`" - }, - "requireHtml5": { - "description": "Optional. Indicates that the creative relies on HTML5 to render properly. Optional and only valid for third-party tag creatives. Third-party tag creatives are creatives with following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_EXPANDABLE`", - "type": "boolean" - }, - "requireMraid": { - "description": "Optional. Indicates that the creative requires MRAID (Mobile Rich Media Ad Interface Definitions system). Set this if the creative relies on mobile gestures for interactivity, such as swiping or tapping. Optional and only valid for third-party tag creatives. Third-party tag creatives are creatives with following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_EXPANDABLE`", - "type": "boolean" - }, - "requirePingForAttribution": { - "description": "Optional. Indicates that the creative will wait for a return ping for attribution. Only valid when using a Campaign Manager 360 tracking ad with a third-party ad server parameter and the ${DC_DBM_TOKEN} macro. Optional and only valid for third-party tag creatives or third-party VAST tag creatives. Third-party tag creatives are creatives with following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_EXPANDABLE` Third-party VAST tag creatives are creatives with following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_VIDEO`", - "type": "boolean" - }, - "reviewStatus": { - "$ref": "ReviewStatusInfo", - "description": "Output only. The current status of the creative review process.", - "readOnly": true - }, - "skipOffset": { - "$ref": "AudioVideoOffset", - "description": "Amount of time to play the video before the skip button appears. This field is required when skippable is true. This field is only supported for the following creative_type: * `CREATIVE_TYPE_VIDEO`" - }, - "skippable": { - "description": "Whether the user can choose to skip a video creative. This field is only supported for the following creative_type: * `CREATIVE_TYPE_VIDEO`", - "type": "boolean" - }, - "thirdPartyTag": { - "description": "Optional. The original third-party tag used for the creative. Required and only valid for third-party tag creatives. Third-party tag creatives are creatives with following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_EXPANDABLE`", - "type": "string" - }, - "thirdPartyUrls": { - "description": "Tracking URLs from third parties to track interactions with a video creative. This field is only supported for the following creative_type: * `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_VIDEO` * `CREATIVE_TYPE_NATIVE_VIDEO`", - "items": { - "$ref": "ThirdPartyUrl" - }, - "type": "array" - }, - "timerEvents": { - "description": "Timer custom events for a rich media creative. Timers track the time during which a user views and interacts with a specified part of a rich media creative. A creative can have multiple timer events, each timed independently. Leave it empty or unset for creatives containing image assets only.", - "items": { - "$ref": "TimerEvent" - }, - "type": "array" - }, - "trackerUrls": { - "description": "Tracking URLs for analytics providers or third-party ad technology vendors. The URLs must start with https (except on inventory that doesn't require SSL compliance). If using macros in your URL, use only macros supported by Display & Video 360. Standard URLs only, no IMG or SCRIPT tags. This field is only writeable in following creative_type: * `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO`", - "items": { - "type": "string" - }, - "type": "array" - }, - "transcodes": { - "description": "Output only. Audio/Video transcodes. Display & Video 360 transcodes the main asset into a number of alternative versions that use different file formats or have different properties (resolution, audio bit rate, and video bit rate), each designed for specific video players or bandwidths. These transcodes give a publisher's system more options to choose from for each impression on your video and ensures that the appropriate file serves based on the viewer’s connection and screen size. This field is only supported in following creative_type: * `CREATIVE_TYPE_VIDEO` * `CREATIVE_TYPE_NATIVE_VIDEO` * `CREATIVE_TYPE_AUDIO`", - "items": { - "$ref": "Transcode" - }, - "readOnly": true, - "type": "array" - }, - "universalAdId": { - "$ref": "UniversalAdId", - "description": "Optional. An optional creative identifier provided by a registry that is unique across all platforms. Universal Ad ID is part of the VAST 4.0 standard. It can be modified after the creative is created. This field is only supported for the following creative_type: * `CREATIVE_TYPE_VIDEO`" - }, - "updateTime": { - "description": "Output only. The timestamp when the creative was last updated, either by the user or system (e.g. creative review). Assigned by the system.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "vastTagUrl": { - "description": "Optional. The URL of the VAST tag for a third-party VAST tag creative. Required and only valid for third-party VAST tag creatives. Third-party VAST tag creatives are creatives with following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_VIDEO`", - "type": "string" - }, - "vpaid": { - "description": "Output only. Indicates the third-party VAST tag creative requires VPAID (Digital Video Player-Ad Interface). Output only and only valid for third-party VAST tag creatives. Third-party VAST tag creatives are creatives with following hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * `CREATIVE_TYPE_VIDEO`", - "readOnly": true, - "type": "boolean" - } - }, - "type": "object" - }, - "CreativeConfig": { - "description": "Creative requirements configuration for the inventory source.", - "id": "CreativeConfig", - "properties": { - "creativeType": { - "description": "The type of creative that can be assigned to the inventory source. Only the following types are supported: * `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_VIDEO`", - "enum": [ - "CREATIVE_TYPE_UNSPECIFIED", - "CREATIVE_TYPE_STANDARD", - "CREATIVE_TYPE_EXPANDABLE", - "CREATIVE_TYPE_VIDEO", - "CREATIVE_TYPE_NATIVE", - "CREATIVE_TYPE_TEMPLATED_APP_INSTALL", - "CREATIVE_TYPE_NATIVE_SITE_SQUARE", - "CREATIVE_TYPE_TEMPLATED_APP_INSTALL_INTERSTITIAL", - "CREATIVE_TYPE_LIGHTBOX", - "CREATIVE_TYPE_NATIVE_APP_INSTALL", - "CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE", - "CREATIVE_TYPE_AUDIO", - "CREATIVE_TYPE_PUBLISHER_HOSTED", - "CREATIVE_TYPE_NATIVE_VIDEO", - "CREATIVE_TYPE_TEMPLATED_APP_INSTALL_VIDEO" - ], - "enumDescriptions": [ - "Type value is not specified or is unknown in this version.", - "Standard display creative. Create and update methods are supported for this creative type if the hosting_source is one of the following: * `HOSTING_SOURCE_HOSTED` * `HOSTING_SOURCE_THIRD_PARTY`", - "Expandable creative. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_THIRD_PARTY`", - "Video creative. Create and update methods are supported for this creative type if the hosting_source is one of the following: * `HOSTING_SOURCE_HOSTED` * `HOSTING_SOURCE_THIRD_PARTY`", - "Native creative rendered by publishers with assets from advertiser. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`", - "Templated app install mobile creative (banner). Create and update methods are **not** supported for this creative type.", - "Square native creative. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`", - "Interstitial creative including both display and video. Create and update methods are **not** supported for this creative type.", - "Responsive and expandable Lightbox creative. Create and update methods are **not** supported for this creative type.", - "Native app install creative. Create and update methods are **not** supported for this creative type.", - "Square native app install creative. Create and update methods are **not** supported for this creative type.", - "Audio creative. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`", - "Publisher hosted creative. Create and update methods are **not** supported for this creative type.", - "Native video creative. Create and update methods are supported for this creative type if the hosting_source is `HOSTING_SOURCE_HOSTED`", - "Templated app install mobile video creative. Create and update methods are **not** supported for this creative type." - ], - "type": "string" - }, - "displayCreativeConfig": { - "$ref": "InventorySourceDisplayCreativeConfig", - "description": "The configuration for display creatives. Applicable when creative_type is `CREATIVE_TYPE_STANDARD`." - }, - "videoCreativeConfig": { - "$ref": "InventorySourceVideoCreativeConfig", - "description": "The configuration for video creatives. Applicable when creative_type is `CREATIVE_TYPE_VIDEO`." - } - }, - "type": "object" - }, - "CustomBiddingAlgorithm": { - "description": "A single custom bidding algorithm.", - "id": "CustomBiddingAlgorithm", - "properties": { - "advertiserId": { - "description": "Immutable. The unique ID of the advertiser that owns the custom bidding algorithm.", - "format": "int64", - "type": "string" - }, - "customBiddingAlgorithmId": { - "description": "Output only. The unique ID of the custom bidding algorithm. Assigned by the system.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "customBiddingAlgorithmState": { - "description": "Output only. The status of custom bidding algorithm.", - "enum": [ - "STATE_UNSPECIFIED", - "ENABLED", - "DORMANT", - "SUSPENDED" - ], - "enumDescriptions": [ - "State is not specified or is unknown in this version.", - "Algorithm is enabled, either recently used, currently used or scheduled to be used. The algorithm is actively scoring impressions.", - "Algorithm has not been used recently. Although the algorithm still acts as `ENABLED`, it will eventually be suspended if not used.", - "Algorithm is susepended from scoring impressions and doesn't have a serving model trained. If the algorithm is assigned to a line item or otherwise updated, it will switch back to the `ENABLED` state and require time to prepare the serving model again." - ], - "readOnly": true, - "type": "string" - }, - "customBiddingAlgorithmType": { - "description": "Required. Immutable. The type of custom bidding algorithm.", - "enum": [ - "CUSTOM_BIDDING_ALGORITHM_TYPE_UNSPECIFIED", - "SCRIPT_BASED", - "ADS_DATA_HUB_BASED", - "GOAL_BUILDER_BASED" - ], - "enumDescriptions": [ - "Algorithm type is not specified or is unknown in this version.", - "Algorithm generated through customer-uploaded custom bidding script files.", - "Algorithm created through Ads Data Hub product.", - "Algorithm created through goal builder in DV3 UI." - ], - "type": "string" - }, - "displayName": { - "description": "Required. The display name of the custom bidding algorithm. Must be UTF-8 encoded with a maximum size of 240 bytes.", - "type": "string" - }, - "entityStatus": { - "description": "Controls whether or not the custom bidding algorithm can be used as a bidding strategy. Accepted values are: * `ENTITY_STATUS_ACTIVE` * `ENTITY_STATUS_ARCHIVED`", - "enum": [ - "ENTITY_STATUS_UNSPECIFIED", - "ENTITY_STATUS_ACTIVE", - "ENTITY_STATUS_ARCHIVED", - "ENTITY_STATUS_DRAFT", - "ENTITY_STATUS_PAUSED", - "ENTITY_STATUS_SCHEDULED_FOR_DELETION" - ], - "enumDescriptions": [ - "Default value when status is not specified or is unknown in this version.", - "The entity is enabled to bid and spend budget.", - "The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", - "The entity is under draft. Bidding and budget spending are disabled.", - "Bidding and budget spending are paused for the entity.", - "The entity is scheduled for deletion." - ], - "type": "string" - }, - "modelReadiness": { - "description": "Output only. The state of custom bidding model readiness for each advertiser who has access. This field may only include the state of the queried advertiser if the algorithm [`owner`](/display-video/api/reference/rest/v1/customBiddingAlgorithms#CustomBiddingAlgorithm.FIELDS.oneof_owner) is a partner and is being retrieved using an advertiser [`accessor`](/display-video/api/reference/rest/v1/customBiddingAlgorithms/list#body.QUERY_PARAMETERS.oneof_accessor).", - "items": { - "$ref": "CustomBiddingModelReadinessState" - }, - "readOnly": true, - "type": "array" - }, - "name": { - "description": "Output only. The resource name of the custom bidding algorithm.", - "readOnly": true, - "type": "string" - }, - "partnerId": { - "description": "Immutable. The unique ID of the partner that owns the custom bidding algorithm.", - "format": "int64", - "type": "string" - }, - "sharedAdvertiserIds": { - "description": "The IDs of the advertisers who have access to this algorithm. If advertiser_id is set, this field will only consist of that value. This field will not be set if the algorithm [`owner`](/display-video/api/reference/rest/v1/customBiddingAlgorithms#CustomBiddingAlgorithm.FIELDS.oneof_owner) is a partner and is being retrieved using an advertiser [`accessor`](/display-video/api/reference/rest/v1/customBiddingAlgorithms/list#body.QUERY_PARAMETERS.oneof_accessor).", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "CustomBiddingModelReadinessState": { - "description": "The custom bidding algorithm model readiness state for a single shared advertiser.", - "id": "CustomBiddingModelReadinessState", - "properties": { - "advertiserId": { - "description": "The unique ID of the relevant advertiser.", - "format": "int64", - "type": "string" - }, - "readinessState": { - "description": "The readiness state of custom bidding model.", - "enum": [ - "READINESS_STATE_UNSPECIFIED", - "READINESS_STATE_ACTIVE", - "READINESS_STATE_INSUFFICIENT_DATA", - "READINESS_STATE_TRAINING", - "READINESS_STATE_NO_VALID_SCRIPT" - ], - "enumDescriptions": [ - "State is not specified or is unknown in this version.", - "The model is trained and ready for serving.", - "There is not enough data to train the serving model.", - "The model is training and not ready for serving.", - "A valid custom bidding script has not been provided with which to train the model. This state will only be applied to algorithms whose `custom_bidding_algorithm_type` is `SCRIPT_BASED`." - ], - "type": "string" - } - }, - "type": "object" - }, - "CustomBiddingScript": { - "description": "A single custom bidding script.", - "id": "CustomBiddingScript", - "properties": { - "active": { - "description": "Output only. Whether the script is currently being used for scoring by the parent algorithm.", - "readOnly": true, - "type": "boolean" - }, - "createTime": { - "description": "Output only. The time when the script was created.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "customBiddingAlgorithmId": { - "description": "Output only. The unique ID of the custom bidding algorithm the script belongs to.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "customBiddingScriptId": { - "description": "Output only. The unique ID of the custom bidding script.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "errors": { - "description": "Output only. Error details of a rejected custom bidding script. This field will only be populated when state is REJECTED.", - "items": { - "$ref": "ScriptError" - }, - "readOnly": true, - "type": "array" - }, - "name": { - "description": "Output only. The resource name of the custom bidding script.", - "readOnly": true, - "type": "string" - }, - "script": { - "$ref": "CustomBiddingScriptRef", - "description": "The reference to the uploaded script file." - }, - "state": { - "description": "Output only. The state of the custom bidding script.", - "enum": [ - "STATE_UNSPECIFIED", - "ACCEPTED", - "REJECTED", - "PENDING" - ], - "enumDescriptions": [ - "The script state is not specified or is unknown in this version.", - "The script has been accepted for scoring impressions.", - "The script has been rejected by backend pipelines. It may have errors.", - "The script is being processed for backend pipelines." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "CustomBiddingScriptRef": { - "description": "The reference to the uploaded custom bidding script file.", - "id": "CustomBiddingScriptRef", - "properties": { - "resourceName": { - "description": "A resource name to be used in media.download to Download the script files. Or media.upload to Upload the script files. Resource names have the format `customBiddingAlgorithms/{custom_bidding_algorithm_id}/scriptRef/{ref_id}`.", - "type": "string" - } - }, - "type": "object" - }, - "CustomList": { - "description": "Describes a custom list entity, such as a custom affinity or custom intent audience list.", - "id": "CustomList", - "properties": { - "customListId": { - "description": "Output only. The unique ID of the custom list. Assigned by the system.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "displayName": { - "description": "Output only. The display name of the custom list. .", - "readOnly": true, - "type": "string" - }, - "name": { - "description": "Output only. The resource name of the custom list.", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "CustomListGroup": { - "description": "Details of custom list group. All custom list targeting settings are logically ‘OR’ of each other.", - "id": "CustomListGroup", - "properties": { - "settings": { - "description": "Required. All custom list targeting settings in custom list group. Repeated settings with same id will be ignored.", - "items": { - "$ref": "CustomListTargetingSetting" - }, - "type": "array" - } - }, - "type": "object" - }, - "CustomListTargetingSetting": { - "description": "Details of custom list targeting setting.", - "id": "CustomListTargetingSetting", - "properties": { - "customListId": { - "description": "Required. Custom id of custom list targeting setting. This id is custom_list_id.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "Date": { - "description": "Represents a whole or partial calendar date, such as a birthday. The time of day and time zone are either specified elsewhere or are insignificant. The date is relative to the Gregorian Calendar. This can represent one of the following: * A full date, with non-zero year, month, and day values. * A month and day, with a zero year (for example, an anniversary). * A year on its own, with a zero month and a zero day. * A year and month, with a zero day (for example, a credit card expiration date). Related types: * google.type.TimeOfDay * google.type.DateTime * google.protobuf.Timestamp", - "id": "Date", - "properties": { - "day": { - "description": "Day of a month. Must be from 1 to 31 and valid for the year and month, or 0 to specify a year by itself or a year and month where the day isn't significant.", - "format": "int32", - "type": "integer" - }, - "month": { - "description": "Month of a year. Must be from 1 to 12, or 0 to specify a year without a month and day.", - "format": "int32", - "type": "integer" - }, - "year": { - "description": "Year of the date. Must be from 1 to 9999, or 0 to specify a date without a year.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "DateRange": { - "description": "A date range.", - "id": "DateRange", - "properties": { - "endDate": { - "$ref": "Date", - "description": "The upper bound of the date range, inclusive. Must specify a positive value for `year`, `month`, and `day`." - }, - "startDate": { - "$ref": "Date", - "description": "The lower bound of the date range, inclusive. Must specify a positive value for `year`, `month`, and `day`." - } - }, - "type": "object" - }, - "DayAndTimeAssignedTargetingOptionDetails": { - "description": "Representation of a segment of time defined on a specific day of the week and with a start and end time. The time represented by `start_hour` must be before the time represented by `end_hour`.", - "id": "DayAndTimeAssignedTargetingOptionDetails", - "properties": { - "dayOfWeek": { - "description": "Required. The day of the week for this day and time targeting setting.", - "enum": [ - "DAY_OF_WEEK_UNSPECIFIED", - "MONDAY", - "TUESDAY", - "WEDNESDAY", - "THURSDAY", - "FRIDAY", - "SATURDAY", - "SUNDAY" - ], - "enumDescriptions": [ - "The day of the week is unspecified.", - "Monday", - "Tuesday", - "Wednesday", - "Thursday", - "Friday", - "Saturday", - "Sunday" - ], - "type": "string" - }, - "endHour": { - "description": "Required. The end hour for day and time targeting. Must be between 1 (1 hour after start of day) and 24 (end of day).", - "format": "int32", - "type": "integer" - }, - "startHour": { - "description": "Required. The start hour for day and time targeting. Must be between 0 (start of day) and 23 (1 hour before end of day).", - "format": "int32", - "type": "integer" - }, - "timeZoneResolution": { - "description": "Required. The mechanism used to determine which timezone to use for this day and time targeting setting.", - "enum": [ - "TIME_ZONE_RESOLUTION_UNSPECIFIED", - "TIME_ZONE_RESOLUTION_END_USER", - "TIME_ZONE_RESOLUTION_ADVERTISER" - ], - "enumDescriptions": [ - "Time zone resolution is either unspecific or unknown.", - "Times are resolved in the time zone of the user that saw the ad.", - "Times are resolved in the time zone of the advertiser that served the ad." - ], - "type": "string" - } - }, - "type": "object" - }, - "DeactivateManualTriggerRequest": { - "description": "Request message for ManualTriggerService.DeactivateManualTrigger.", - "id": "DeactivateManualTriggerRequest", - "properties": {}, - "type": "object" - }, - "DeleteAssignedTargetingOptionsRequest": { - "description": "A request listing which assigned targeting options of a given targeting type should be deleted.", - "id": "DeleteAssignedTargetingOptionsRequest", - "properties": { - "assignedTargetingOptionIds": { - "description": "Required. The assigned targeting option IDs to delete.", - "items": { - "type": "string" - }, - "type": "array" - }, - "targetingType": { - "description": "Required. Identifies the type of this assigned targeting option.", - "enum": [ - "TARGETING_TYPE_UNSPECIFIED", - "TARGETING_TYPE_CHANNEL", - "TARGETING_TYPE_APP_CATEGORY", - "TARGETING_TYPE_APP", - "TARGETING_TYPE_URL", - "TARGETING_TYPE_DAY_AND_TIME", - "TARGETING_TYPE_AGE_RANGE", - "TARGETING_TYPE_REGIONAL_LOCATION_LIST", - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST", - "TARGETING_TYPE_GENDER", - "TARGETING_TYPE_VIDEO_PLAYER_SIZE", - "TARGETING_TYPE_USER_REWARDED_CONTENT", - "TARGETING_TYPE_PARENTAL_STATUS", - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION", - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", - "TARGETING_TYPE_DEVICE_TYPE", - "TARGETING_TYPE_AUDIENCE_GROUP", - "TARGETING_TYPE_BROWSER", - "TARGETING_TYPE_HOUSEHOLD_INCOME", - "TARGETING_TYPE_ON_SCREEN_POSITION", - "TARGETING_TYPE_THIRD_PARTY_VERIFIER", - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", - "TARGETING_TYPE_ENVIRONMENT", - "TARGETING_TYPE_CARRIER_AND_ISP", - "TARGETING_TYPE_OPERATING_SYSTEM", - "TARGETING_TYPE_DEVICE_MAKE_MODEL", - "TARGETING_TYPE_KEYWORD", - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", - "TARGETING_TYPE_VIEWABILITY", - "TARGETING_TYPE_CATEGORY", - "TARGETING_TYPE_INVENTORY_SOURCE", - "TARGETING_TYPE_LANGUAGE", - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", - "TARGETING_TYPE_GEO_REGION", - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", - "TARGETING_TYPE_EXCHANGE", - "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_POI", - "TARGETING_TYPE_BUSINESS_CHAIN", - "TARGETING_TYPE_CONTENT_DURATION", - "TARGETING_TYPE_CONTENT_STREAM_TYPE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION", - "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE", - "TARGETING_TYPE_CONTENT_GENRE" - ], - "enumDescriptions": [ - "Default value when type is not specified or is unknown in this version.", - "Target a channel (a custom group of related websites or apps).", - "Target an app category (for example, education or puzzle games).", - "Target a specific app (for example, Angry Birds).", - "Target a specific url (for example, quora.com).", - "Target ads during a chosen time period on a specific day.", - "Target ads to a specific age range (for example, 18-24).", - "Target ads to the specified regions on a regional location list.", - "Target ads to the specified points of interest on a proximity location list.", - "Target ads to a specific gender (for example, female or male).", - "Target a specific video player size for video ads.", - "Target user rewarded content for video ads.", - "Target ads to a specific parental status (for example, parent or not a parent).", - "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", - "Target ads in a specific content outstream position.", - "Target ads to a specific device type (for example, tablet or connected TV).", - "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", - "Target ads to specific web browsers (for example, Chrome).", - "Target ads to a specific household income range (for example, top 10%).", - "Target ads in a specific on screen position.", - "Filter web sites through third party verification (for example, IAS or DoubleVerify).", - "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", - "Filter website content by sensitive categories (for example, adult).", - "Target ads to a specific environment (for example, web or app).", - "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", - "Target ads to a specific operating system (for example, macOS).", - "Target ads to a specific device make or model (for example, Roku or Samsung).", - "Target ads to a specific keyword (for example, dog or retriever).", - "Target ads to a specific negative keyword list.", - "Target ads to a specific viewability (for example, 80% viewable).", - "Target ads to a specific content category (for example, arts & entertainment).", - "Purchase impressions from specific deals and auction packages.", - "Target ads to a specific language (for example, English or Japanese).", - "Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", - "Target ads to a specific regional location (for example, a city or state).", - "Purchase impressions from a group of deals and auction packages.", - "Purchase impressions from specific exchanges.", - "Purchase impressions from specific sub-exchanges.", - "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", - "Target ads around locations of a business chain within a specific geo region.", - "Target ads to a specific video content duration.", - "Target ads to a specific video content stream type.", - "Target ads to a specific native content position.", - "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type.", - "Target ads to a specific content genre." - ], - "type": "string" - } - }, - "type": "object" - }, - "DeviceMakeModelAssignedTargetingOptionDetails": { - "description": "Assigned device make and model targeting option details. This will be populated in the device_make_model_details field when targeting_type is `TARGETING_TYPE_DEVICE_MAKE_MODEL`.", - "id": "DeviceMakeModelAssignedTargetingOptionDetails", - "properties": { - "displayName": { - "description": "Output only. The display name of the device make and model.", - "readOnly": true, - "type": "string" - }, - "negative": { - "description": "Indicates if this option is being negatively targeted.", - "type": "boolean" - }, - "targetingOptionId": { - "description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_DEVICE_MAKE_MODEL`.", - "type": "string" - } - }, - "type": "object" - }, - "DeviceMakeModelTargetingOptionDetails": { - "description": "Represents a targetable device make and model. This will be populated in the device_make_model_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_DEVICE_MAKE_MODEL`.", - "id": "DeviceMakeModelTargetingOptionDetails", - "properties": { - "displayName": { - "description": "Output only. The display name of the device make and model.", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "DeviceTypeAssignedTargetingOptionDetails": { - "description": "Targeting details for device type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_DEVICE_TYPE`.", - "id": "DeviceTypeAssignedTargetingOptionDetails", - "properties": { - "deviceType": { - "description": "Required. The display name of the device type.", - "enum": [ - "DEVICE_TYPE_UNSPECIFIED", - "DEVICE_TYPE_COMPUTER", - "DEVICE_TYPE_CONNECTED_TV", - "DEVICE_TYPE_SMART_PHONE", - "DEVICE_TYPE_TABLET" - ], - "enumDescriptions": [ - "Default value when device type is not specified in this version. This enum is a placeholder for default value and does not represent a real device type option.", - "Computer.", - "Connected TV.", - "Smart phone.", - "Tablet." - ], - "type": "string" - }, - "targetingOptionId": { - "description": "Required. ID of the device type.", - "type": "string" - } - }, - "type": "object" - }, - "DeviceTypeTargetingOptionDetails": { - "description": "Represents a targetable device type. This will be populated in the device_type_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_DEVICE_TYPE`.", - "id": "DeviceTypeTargetingOptionDetails", - "properties": { - "deviceType": { - "description": "Output only. The device type that is used to be targeted.", - "enum": [ - "DEVICE_TYPE_UNSPECIFIED", - "DEVICE_TYPE_COMPUTER", - "DEVICE_TYPE_CONNECTED_TV", - "DEVICE_TYPE_SMART_PHONE", - "DEVICE_TYPE_TABLET" - ], - "enumDescriptions": [ - "Default value when device type is not specified in this version. This enum is a placeholder for default value and does not represent a real device type option.", - "Computer.", - "Connected TV.", - "Smart phone.", - "Tablet." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "DigitalContentLabelAssignedTargetingOptionDetails": { - "description": "Targeting details for digital content label. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION`.", - "id": "DigitalContentLabelAssignedTargetingOptionDetails", - "properties": { - "contentRatingTier": { - "description": "Output only. The display name of the digital content label rating tier.", - "enum": [ - "CONTENT_RATING_TIER_UNSPECIFIED", - "CONTENT_RATING_TIER_UNRATED", - "CONTENT_RATING_TIER_GENERAL", - "CONTENT_RATING_TIER_PARENTAL_GUIDANCE", - "CONTENT_RATING_TIER_TEENS", - "CONTENT_RATING_TIER_MATURE" - ], - "enumDescriptions": [ - "Content label is not specified in this version. This enum is a place holder for a default value and does not represent a real content rating.", - "Content that has not been labeled.", - "Content suitable for general audiences.", - "Content suitable for most audiences with parental guidance.", - "Content suitable for teen and older audiences.", - "Content suitable only for mature audiences." - ], - "readOnly": true, - "type": "string" - }, - "excludedTargetingOptionId": { - "description": "Required. ID of the digital content label to be EXCLUDED.", - "type": "string" - } - }, - "type": "object" - }, - "DigitalContentLabelTargetingOptionDetails": { - "description": "Represents a targetable digital content label rating tier. This will be populated in the digital_content_label_details field of the TargetingOption when targeting_type is `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION`.", - "id": "DigitalContentLabelTargetingOptionDetails", - "properties": { - "contentRatingTier": { - "description": "Output only. An enum for the content label brand safety tiers.", - "enum": [ - "CONTENT_RATING_TIER_UNSPECIFIED", - "CONTENT_RATING_TIER_UNRATED", - "CONTENT_RATING_TIER_GENERAL", - "CONTENT_RATING_TIER_PARENTAL_GUIDANCE", - "CONTENT_RATING_TIER_TEENS", - "CONTENT_RATING_TIER_MATURE" - ], - "enumDescriptions": [ - "Content label is not specified in this version. This enum is a place holder for a default value and does not represent a real content rating.", - "Content that has not been labeled.", - "Content suitable for general audiences.", - "Content suitable for most audiences with parental guidance.", - "Content suitable for teen and older audiences.", - "Content suitable only for mature audiences." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "Dimensions": { - "description": "Dimensions.", - "id": "Dimensions", - "properties": { - "heightPixels": { - "description": "The height in pixels.", - "format": "int32", - "type": "integer" - }, - "widthPixels": { - "description": "The width in pixels.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "DoubleVerify": { - "description": "Details of DoubleVerify settings.", - "id": "DoubleVerify", - "properties": { - "appStarRating": { - "$ref": "DoubleVerifyAppStarRating", - "description": "Avoid bidding on apps with the star ratings." - }, - "avoidedAgeRatings": { - "description": "Avoid bidding on apps with the age rating.", - "items": { - "enum": [ - "AGE_RATING_UNSPECIFIED", - "APP_AGE_RATE_UNKNOWN", - "APP_AGE_RATE_4_PLUS", - "APP_AGE_RATE_9_PLUS", - "APP_AGE_RATE_12_PLUS", - "APP_AGE_RATE_17_PLUS", - "APP_AGE_RATE_18_PLUS" - ], - "enumDescriptions": [ - "This enum is only a placeholder and it doesn't specify any age rating options.", - "Apps with unknown age rating.", - "Apps rated for Everyone (4+).", - "Apps rated for Everyone (9+).", - "Apps rated for Teens (12+).", - "Apps rated for Mature (17+).", - "Apps rated for Adults Only (18+)." - ], - "type": "string" - }, - "type": "array" - }, - "brandSafetyCategories": { - "$ref": "DoubleVerifyBrandSafetyCategories", - "description": "DV Brand Safety Controls." - }, - "customSegmentId": { - "description": "The custom segment ID provided by DoubleVerify. The ID must start with \"51\" and consist of eight digits. Custom segment ID cannot be specified along with any of the following fields: * brand_safety_categories * avoided_age_ratings * app_star_rating * fraud_invalid_traffic", - "format": "int64", - "type": "string" - }, - "displayViewability": { - "$ref": "DoubleVerifyDisplayViewability", - "description": "Display viewability settings (applicable to display line items only)." - }, - "fraudInvalidTraffic": { - "$ref": "DoubleVerifyFraudInvalidTraffic", - "description": "Avoid Sites and Apps with historical Fraud & IVT Rates." - }, - "videoViewability": { - "$ref": "DoubleVerifyVideoViewability", - "description": "Video viewability settings (applicable to video line items only)." - } - }, - "type": "object" - }, - "DoubleVerifyAppStarRating": { - "description": "Details of DoubleVerify star ratings settings.", - "id": "DoubleVerifyAppStarRating", - "properties": { - "avoidInsufficientStarRating": { - "description": "Avoid bidding on apps with insufficient star ratings.", - "type": "boolean" - }, - "avoidedStarRating": { - "description": "Avoid bidding on apps with the star ratings.", - "enum": [ - "APP_STAR_RATE_UNSPECIFIED", - "APP_STAR_RATE_1_POINT_5_LESS", - "APP_STAR_RATE_2_LESS", - "APP_STAR_RATE_2_POINT_5_LESS", - "APP_STAR_RATE_3_LESS", - "APP_STAR_RATE_3_POINT_5_LESS", - "APP_STAR_RATE_4_LESS", - "APP_STAR_RATE_4_POINT_5_LESS" - ], - "enumDescriptions": [ - "This enum is only a placeholder and it doesn't specify any app star rating options.", - "Official Apps with rating < 1.5 Stars.", - "Official Apps with rating < 2 Stars.", - "Official Apps with rating < 2.5 Stars.", - "Official Apps with rating < 3 Stars.", - "Official Apps with rating < 3.5 Stars.", - "Official Apps with rating < 4 Stars.", - "Official Apps with rating < 4.5 Stars." - ], - "type": "string" - } - }, - "type": "object" - }, - "DoubleVerifyBrandSafetyCategories": { - "description": "Settings for brand safety controls.", - "id": "DoubleVerifyBrandSafetyCategories", - "properties": { - "avoidUnknownBrandSafetyCategory": { - "description": "Unknown or unrateable.", - "type": "boolean" - }, - "avoidedHighSeverityCategories": { - "description": "Brand safety high severity avoidance categories.", - "items": { - "enum": [ - "HIGHER_SEVERITY_UNSPECIFIED", - "ADULT_CONTENT_PORNOGRAPHY", - "COPYRIGHT_INFRINGEMENT", - "SUBSTANCE_ABUSE", - "GRAPHIC_VIOLENCE_WEAPONS", - "HATE_PROFANITY", - "CRIMINAL_SKILLS", - "NUISANCE_INCENTIVIZED_MALWARE_CLUTTER" - ], - "enumDescriptions": [ - "This enum is only a placeholder and it doesn't specify any high severity categories.", - "Adult Content: Pornography, Mature Topics & Nudity.", - "Copyright Infringement.", - "Drugs/Alcohol/Controlled Substances: Substance Abuse.", - "Extreme Graphic/Explicit Violence/Weapons.", - "Hate/Profanity.", - "Illegal Activities: Criminal Skills.", - "Incentivized/Malware/Clutter." - ], - "type": "string" - }, - "type": "array" - }, - "avoidedMediumSeverityCategories": { - "description": "Brand safety medium severity avoidance categories.", - "items": { - "enum": [ - "MEDIUM_SEVERITY_UNSPECIFIED", - "AD_SERVERS", - "ADULT_CONTENT_SWIMSUIT", - "ALTERNATIVE_LIFESTYLES", - "CELEBRITY_GOSSIP", - "GAMBLING", - "OCCULT", - "SEX_EDUCATION", - "DISASTER_AVIATION", - "DISASTER_MAN_MADE", - "DISASTER_NATURAL", - "DISASTER_TERRORIST_EVENTS", - "DISASTER_VEHICLE", - "ALCOHOL", - "SMOKING", - "NEGATIVE_NEWS_FINANCIAL", - "NON_ENGLISH", - "PARKING_PAGE", - "UNMODERATED_UGC", - "INFLAMMATORY_POLITICS_AND_NEWS", - "NEGATIVE_NEWS_PHARMACEUTICAL" - ], - "enumDescriptions": [ - "This enum is only a placeholder and it doesn't specify any medium severity categories.", - "Ad Servers.", - "Adult Content: Swimsuit.", - "Controversial Subjects: Alternative Lifestyles.", - "Controversial Subjects: Celebrity Gossip.", - "Controversial Subjects: Gambling.", - "Controversial Subjects: Occult.", - "Controversial Subjects: Sex Education.", - "Disaster: Aviation.", - "Disaster: Man-made.", - "Disaster: Natural.", - "Disaster: Terrorist Events.", - "Disaster: Vehicle.", - "Drugs/Alcohol/Controlled Substances: Alcohol.", - "Drugs/Alcohol/Controlled Substances: Smoking.", - "Negative News: Financial.", - "Non-Std Content: Non-English.", - "Non-Std Content: Parking Page.", - "Unmoderated UGC: Forums, Images & Video.", - "Controversial Subjects: Inflammatory Politics and News.", - "Negative News: Pharmaceutical." - ], - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "DoubleVerifyDisplayViewability": { - "description": "Details of DoubleVerify display viewability settings.", - "id": "DoubleVerifyDisplayViewability", - "properties": { - "iab": { - "description": "Target web and app inventory to maximize IAB viewable rate.", - "enum": [ - "IAB_VIEWED_RATE_UNSPECIFIED", - "IAB_VIEWED_RATE_80_PERCENT_HIGHER", - "IAB_VIEWED_RATE_75_PERCENT_HIGHER", - "IAB_VIEWED_RATE_70_PERCENT_HIGHER", - "IAB_VIEWED_RATE_65_PERCENT_HIGHER", - "IAB_VIEWED_RATE_60_PERCENT_HIGHER", - "IAB_VIEWED_RATE_55_PERCENT_HIGHER", - "IAB_VIEWED_RATE_50_PERCENT_HIGHER", - "IAB_VIEWED_RATE_40_PERCENT_HIGHER", - "IAB_VIEWED_RATE_30_PERCENT_HIGHER" - ], - "enumDescriptions": [ - "This enum is only a placeholder and it doesn't specify any IAB viewed rate options.", - "Target web and app inventory to maximize IAB viewable rate 80% or higher.", - "Target web and app inventory to maximize IAB viewable rate 75% or higher.", - "Target web and app inventory to maximize IAB viewable rate 70% or higher.", - "Target web and app inventory to maximize IAB viewable rate 65% or higher.", - "Target web and app inventory to maximize IAB viewable rate 60% or higher.", - "Target web and app inventory to maximize IAB viewable rate 55% or higher.", - "Target web and app inventory to maximize IAB viewable rate 50% or higher.", - "Target web and app inventory to maximize IAB viewable rate 40% or higher.", - "Target web and app inventory to maximize IAB viewable rate 30% or higher." - ], - "type": "string" - }, - "viewableDuring": { - "description": "Target web and app inventory to maximize 100% viewable duration.", - "enum": [ - "AVERAGE_VIEW_DURATION_UNSPECIFIED", - "AVERAGE_VIEW_DURATION_5_SEC", - "AVERAGE_VIEW_DURATION_10_SEC", - "AVERAGE_VIEW_DURATION_15_SEC" - ], - "enumDescriptions": [ - "This enum is only a placeholder and it doesn't specify any average view duration options.", - "Target web and app inventory to maximize 100% viewable duration 5 seconds or more.", - "Target web and app inventory to maximize 100% viewable duration 10 seconds or more.", - "Target web and app inventory to maximize 100% viewable duration 15 seconds or more." - ], - "type": "string" - } - }, - "type": "object" - }, - "DoubleVerifyFraudInvalidTraffic": { - "description": "DoubleVerify Fraud & Invalid Traffic settings.", - "id": "DoubleVerifyFraudInvalidTraffic", - "properties": { - "avoidInsufficientOption": { - "description": "Insufficient Historical Fraud & IVT Stats.", - "type": "boolean" - }, - "avoidedFraudOption": { - "description": "Avoid Sites and Apps with historical Fraud & IVT.", - "enum": [ - "FRAUD_UNSPECIFIED", - "AD_IMPRESSION_FRAUD_100", - "AD_IMPRESSION_FRAUD_50", - "AD_IMPRESSION_FRAUD_25", - "AD_IMPRESSION_FRAUD_10", - "AD_IMPRESSION_FRAUD_8", - "AD_IMPRESSION_FRAUD_6", - "AD_IMPRESSION_FRAUD_4", - "AD_IMPRESSION_FRAUD_2" - ], - "enumDescriptions": [ - "This enum is only a placeholder and it doesn't specify any fraud and invalid traffic options.", - "100% Fraud & IVT.", - "50% or Higher Fraud & IVT.", - "25% or Higher Fraud & IVT.", - "10% or Higher Fraud & IVT.", - "8% or Higher Fraud & IVT.", - "6% or Higher Fraud & IVT.", - "4% or Higher Fraud & IVT.", - "2% or Higher Fraud & IVT." - ], - "type": "string" - } - }, - "type": "object" - }, - "DoubleVerifyVideoViewability": { - "description": "Details of DoubleVerify video viewability settings.", - "id": "DoubleVerifyVideoViewability", - "properties": { - "playerImpressionRate": { - "description": "Target inventory to maximize impressions with 400x300 or greater player size.", - "enum": [ - "PLAYER_SIZE_400X300_UNSPECIFIED", - "PLAYER_SIZE_400X300_95", - "PLAYER_SIZE_400X300_70", - "PLAYER_SIZE_400X300_25", - "PLAYER_SIZE_400X300_5" - ], - "enumDescriptions": [ - "This enum is only a placeholder and it doesn't specify any impressions options.", - "Sites with 95%+ of impressions.", - "Sites with 70%+ of impressions.", - "Sites with 25%+ of impressions.", - "Sites with 5%+ of impressions." - ], - "type": "string" - }, - "videoIab": { - "description": "Target web inventory to maximize IAB viewable rate.", - "enum": [ - "VIDEO_IAB_UNSPECIFIED", - "IAB_VIEWABILITY_80_PERCENT_HIGHER", - "IAB_VIEWABILITY_75_PERCENT_HIGHER", - "IAB_VIEWABILITY_70_PERCENT_HIGHER", - "IAB_VIEWABILITY_65_PERCENT_HIHGER", - "IAB_VIEWABILITY_60_PERCENT_HIGHER", - "IAB_VIEWABILITY_55_PERCENT_HIHGER", - "IAB_VIEWABILITY_50_PERCENT_HIGHER", - "IAB_VIEWABILITY_40_PERCENT_HIHGER", - "IAB_VIEWABILITY_30_PERCENT_HIHGER" - ], - "enumDescriptions": [ - "This enum is only a placeholder and it doesn't specify any video IAB viewable rate options.", - "Target web and app inventory to maximize IAB viewable rate 80% or higher.", - "Target web and app inventory to maximize IAB viewable rate 75% or higher.", - "Target web and app inventory to maximize IAB viewable rate 70% or higher.", - "Target web and app inventory to maximize IAB viewable rate 65% or higher.", - "Target web and app inventory to maximize IAB viewable rate 60% or higher.", - "Target web and app inventory to maximize IAB viewable rate 55% or higher.", - "Target web and app inventory to maximize IAB viewable rate 50% or higher.", - "Target web and app inventory to maximize IAB viewable rate 40% or higher.", - "Target web and app inventory to maximize IAB viewable rate 30% or higher." - ], - "type": "string" - }, - "videoViewableRate": { - "description": "Target web inventory to maximize fully viewable rate.", - "enum": [ - "VIDEO_VIEWABLE_RATE_UNSPECIFIED", - "VIEWED_PERFORMANCE_40_PERCENT_HIGHER", - "VIEWED_PERFORMANCE_35_PERCENT_HIGHER", - "VIEWED_PERFORMANCE_30_PERCENT_HIGHER", - "VIEWED_PERFORMANCE_25_PERCENT_HIGHER", - "VIEWED_PERFORMANCE_20_PERCENT_HIGHER", - "VIEWED_PERFORMANCE_10_PERCENT_HIGHER" - ], - "enumDescriptions": [ - "This enum is only a placeholder and it doesn't specify any video viewable rate options.", - "Target web inventory to maximize fully viewable rate 40% or higher.", - "Target web inventory to maximize fully viewable rate 35% or higher.", - "Target web inventory to maximize fully viewable rate 30% or higher.", - "Target web inventory to maximize fully viewable rate 25% or higher.", - "Target web inventory to maximize fully viewable rate 20% or higher.", - "Target web inventory to maximize fully viewable rate 10% or higher." - ], - "type": "string" - } - }, - "type": "object" - }, - "EditCustomerMatchMembersRequest": { - "description": "Request message for FirstAndThirdPartyAudienceService.EditCustomerMatchMembers.", - "id": "EditCustomerMatchMembersRequest", - "properties": { - "addedContactInfoList": { - "$ref": "ContactInfoList", - "description": "Input only. A list of contact information to define the members to be added." - }, - "addedMobileDeviceIdList": { - "$ref": "MobileDeviceIdList", - "description": "Input only. A list of mobile device IDs to define the members to be added." - }, - "advertiserId": { - "description": "Required. The ID of the owner advertiser of the updated Customer Match FirstAndThirdPartyAudience.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "EditCustomerMatchMembersResponse": { - "description": "The response of FirstAndThirdPartyAudienceService.EditCustomerMatchMembers.", - "id": "EditCustomerMatchMembersResponse", - "properties": { - "firstAndThirdPartyAudienceId": { - "description": "Required. The ID of the updated Customer Match FirstAndThirdPartyAudience.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "EditGuaranteedOrderReadAccessorsRequest": { - "description": "Request message for GuaranteedOrderService.EditGuaranteedOrderReadAccessors.", - "id": "EditGuaranteedOrderReadAccessorsRequest", - "properties": { - "addedAdvertisers": { - "description": "The advertisers to add as read accessors to the guaranteed order.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "partnerId": { - "description": "Required. The partner context in which the change is being made.", - "format": "int64", - "type": "string" - }, - "readAccessInherited": { - "description": "Whether to give all advertisers of the read/write accessor partner read access to the guaranteed order. Only applicable if read_write_partner_id is set in the guaranteed order.", - "type": "boolean" - }, - "removedAdvertisers": { - "description": "The advertisers to remove as read accessors to the guaranteed order.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "EditGuaranteedOrderReadAccessorsResponse": { - "id": "EditGuaranteedOrderReadAccessorsResponse", - "properties": { - "readAccessInherited": { - "description": "Whether all advertisers of read_write_partner_id have read access to the guaranteed order.", - "type": "boolean" - }, - "readAdvertiserIds": { - "description": "The IDs of advertisers with read access to the guaranteed order.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "EditInventorySourceReadWriteAccessorsRequest": { - "description": "Request message for InventorySourceService.EditInventorySourceReadWriteAccessors.", - "id": "EditInventorySourceReadWriteAccessorsRequest", - "properties": { - "advertisersUpdate": { - "$ref": "EditInventorySourceReadWriteAccessorsRequestAdvertisersUpdate", - "description": "The advertisers to add or remove from the list of advertisers that have read/write access to the inventory source. This change will remove an existing partner read/write accessor." - }, - "assignPartner": { - "description": "Set the partner context as read/write accessor of the inventory source. This will remove all other current read/write advertiser accessors.", - "type": "boolean" - }, - "partnerId": { - "description": "Required. The partner context by which the accessors change is being made.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "EditInventorySourceReadWriteAccessorsRequestAdvertisersUpdate": { - "description": "Update to the list of advertisers with read/write access to the inventory source.", - "id": "EditInventorySourceReadWriteAccessorsRequestAdvertisersUpdate", - "properties": { - "addedAdvertisers": { - "description": "The advertisers to add.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "removedAdvertisers": { - "description": "The advertisers to remove.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "Empty": { - "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": "Empty", - "properties": {}, - "type": "object" - }, - "EnvironmentAssignedTargetingOptionDetails": { - "description": "Assigned environment targeting option details. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_ENVIRONMENT`.", - "id": "EnvironmentAssignedTargetingOptionDetails", - "properties": { - "environment": { - "description": "Required. The serving environment.", - "enum": [ - "ENVIRONMENT_UNSPECIFIED", - "ENVIRONMENT_WEB_OPTIMIZED", - "ENVIRONMENT_WEB_NOT_OPTIMIZED", - "ENVIRONMENT_APP" - ], - "enumDescriptions": [ - "Default value when environment is not specified in this version. This enum is a placeholder for default value and does not represent a real environment option.", - "Target inventory displayed in browsers. This includes inventory that was designed for the device it was viewed on, such as mobile websites viewed on a mobile device. ENVIRONMENT_WEB_NOT_OPTIMIZED, if targeted, should be deleted prior to the deletion of this targeting option.", - "Target inventory displayed in browsers. This includes inventory that was not designed for the device but viewed on it, such as websites optimized for desktop but viewed on a mobile device. ENVIRONMENT_WEB_OPTIMIZED should be targeted prior to the addition of this targeting option.", - "Target inventory displayed in apps." - ], - "type": "string" - }, - "targetingOptionId": { - "description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_ENVIRONMENT` (e.g., \"508010\" for targeting the `ENVIRONMENT_WEB_OPTIMIZED` option).", - "type": "string" - } - }, - "type": "object" - }, - "EnvironmentTargetingOptionDetails": { - "description": "Represents a targetable environment. This will be populated in the environment_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_ENVIRONMENT`.", - "id": "EnvironmentTargetingOptionDetails", - "properties": { - "environment": { - "description": "Output only. The serving environment.", - "enum": [ - "ENVIRONMENT_UNSPECIFIED", - "ENVIRONMENT_WEB_OPTIMIZED", - "ENVIRONMENT_WEB_NOT_OPTIMIZED", - "ENVIRONMENT_APP" - ], - "enumDescriptions": [ - "Default value when environment is not specified in this version. This enum is a placeholder for default value and does not represent a real environment option.", - "Target inventory displayed in browsers. This includes inventory that was designed for the device it was viewed on, such as mobile websites viewed on a mobile device. ENVIRONMENT_WEB_NOT_OPTIMIZED, if targeted, should be deleted prior to the deletion of this targeting option.", - "Target inventory displayed in browsers. This includes inventory that was not designed for the device but viewed on it, such as websites optimized for desktop but viewed on a mobile device. ENVIRONMENT_WEB_OPTIMIZED should be targeted prior to the addition of this targeting option.", - "Target inventory displayed in apps." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "ExchangeAssignedTargetingOptionDetails": { - "description": "Details for assigned exchange targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_EXCHANGE`.", - "id": "ExchangeAssignedTargetingOptionDetails", - "properties": { - "targetingOptionId": { - "description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_EXCHANGE`.", - "type": "string" - } - }, - "type": "object" - }, - "ExchangeConfig": { - "description": "Settings that control which exchanges are enabled for a partner.", - "id": "ExchangeConfig", - "properties": { - "enabledExchanges": { - "description": "All enabled exchanges in the partner. Duplicate enabled exchanges will be ignored.", - "items": { - "$ref": "ExchangeConfigEnabledExchange" - }, - "type": "array" - } - }, - "type": "object" - }, - "ExchangeConfigEnabledExchange": { - "description": "An enabled exchange in the partner.", - "id": "ExchangeConfigEnabledExchange", - "properties": { - "exchange": { - "description": "The enabled exchange.", - "enum": [ - "EXCHANGE_UNSPECIFIED", - "EXCHANGE_GOOGLE_AD_MANAGER", - "EXCHANGE_APPNEXUS", - "EXCHANGE_BRIGHTROLL", - "EXCHANGE_ADFORM", - "EXCHANGE_ADMETA", - "EXCHANGE_ADMIXER", - "EXCHANGE_ADSMOGO", - "EXCHANGE_ADSWIZZ", - "EXCHANGE_BIDSWITCH", - "EXCHANGE_BRIGHTROLL_DISPLAY", - "EXCHANGE_CADREON", - "EXCHANGE_DAILYMOTION", - "EXCHANGE_FIVE", - "EXCHANGE_FLUCT", - "EXCHANGE_FREEWHEEL", - "EXCHANGE_GENIEE", - "EXCHANGE_GUMGUM", - "EXCHANGE_IMOBILE", - "EXCHANGE_IBILLBOARD", - "EXCHANGE_IMPROVE_DIGITAL", - "EXCHANGE_INDEX", - "EXCHANGE_KARGO", - "EXCHANGE_MICROAD", - "EXCHANGE_MOPUB", - "EXCHANGE_NEND", - "EXCHANGE_ONE_BY_AOL_DISPLAY", - "EXCHANGE_ONE_BY_AOL_MOBILE", - "EXCHANGE_ONE_BY_AOL_VIDEO", - "EXCHANGE_OOYALA", - "EXCHANGE_OPENX", - "EXCHANGE_PERMODO", - "EXCHANGE_PLATFORMONE", - "EXCHANGE_PLATFORMID", - "EXCHANGE_PUBMATIC", - "EXCHANGE_PULSEPOINT", - "EXCHANGE_REVENUEMAX", - "EXCHANGE_RUBICON", - "EXCHANGE_SMARTCLIP", - "EXCHANGE_SMARTRTB", - "EXCHANGE_SMARTSTREAMTV", - "EXCHANGE_SOVRN", - "EXCHANGE_SPOTXCHANGE", - "EXCHANGE_STROER", - "EXCHANGE_TEADSTV", - "EXCHANGE_TELARIA", - "EXCHANGE_TVN", - "EXCHANGE_UNITED", - "EXCHANGE_YIELDLAB", - "EXCHANGE_YIELDMO", - "EXCHANGE_UNRULYX", - "EXCHANGE_OPEN8", - "EXCHANGE_TRITON", - "EXCHANGE_TRIPLELIFT", - "EXCHANGE_TABOOLA", - "EXCHANGE_INMOBI", - "EXCHANGE_SMAATO", - "EXCHANGE_AJA", - "EXCHANGE_SUPERSHIP", - "EXCHANGE_NEXSTAR_DIGITAL", - "EXCHANGE_WAZE", - "EXCHANGE_SOUNDCAST", - "EXCHANGE_SHARETHROUGH", - "EXCHANGE_FYBER", - "EXCHANGE_RED_FOR_PUBLISHERS", - "EXCHANGE_MEDIANET", - "EXCHANGE_TAPJOY", - "EXCHANGE_VISTAR", - "EXCHANGE_DAX", - "EXCHANGE_JCD", - "EXCHANGE_PLACE_EXCHANGE", - "EXCHANGE_APPLOVIN", - "EXCHANGE_CONNATIX", - "EXCHANGE_RESET_DIGITAL", - "EXCHANGE_HIVESTACK" - ], - "enumDescriptions": [ - "Exchange is not specified or is unknown in this version.", - "Google Ad Manager.", - "AppNexus.", - "BrightRoll Exchange for Video from Yahoo!.", - "Adform.", - "Admeta.", - "Admixer.", - "AdsMogo.", - "AdsWizz.", - "BidSwitch.", - "BrightRoll Exchange for Display from Yahoo!.", - "Cadreon.", - "Dailymotion.", - "Five.", - "Fluct.", - "FreeWheel SSP.", - "Geniee.", - "GumGum.", - "i-mobile.", - "iBILLBOARD.", - "Improve Digital.", - "Index Exchange.", - "Kargo.", - "MicroAd.", - "MoPub.", - "Nend.", - "ONE by AOL: Display Market Place.", - "ONE by AOL: Mobile.", - "ONE by AOL: Video.", - "Ooyala.", - "OpenX.", - "Permodo.", - "Platform One.", - "PlatformId.", - "PubMatic.", - "PulsePoint.", - "RevenueMax.", - "Rubicon.", - "SmartClip.", - "SmartRTB+.", - "SmartstreamTv.", - "Sovrn.", - "SpotXchange.", - "Ströer SSP.", - "TeadsTv.", - "Telaria.", - "TVN.", - "United.", - "Yieldlab.", - "Yieldmo.", - "UnrulyX.", - "Open8.", - "Triton.", - "TripleLift.", - "Taboola.", - "InMobi.", - "Smaato.", - "Aja.", - "Supership.", - "Nexstar Digital.", - "Waze.", - "SoundCast.", - "Sharethrough.", - "Fyber.", - "Red For Publishers.", - "Media.net.", - "Tapjoy.", - "Vistar.", - "DAX.", - "JCD.", - "Place Exchange.", - "AppLovin.", - "Connatix.", - "Reset Digital.", - "Hivestack." - ], - "type": "string" - }, - "googleAdManagerAgencyId": { - "description": "Output only. Agency ID of Google Ad Manager. The field is only relevant when Google Ad Manager is the enabled exchange.", - "readOnly": true, - "type": "string" - }, - "googleAdManagerBuyerNetworkId": { - "description": "Output only. Network ID of Google Ad Manager. The field is only relevant when Google Ad Manager is the enabled exchange.", - "readOnly": true, - "type": "string" - }, - "seatId": { - "description": "Output only. Seat ID of the enabled exchange.", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "ExchangeReviewStatus": { - "description": "Exchange review status for the creative.", - "id": "ExchangeReviewStatus", - "properties": { - "exchange": { - "description": "The exchange reviewing the creative.", - "enum": [ - "EXCHANGE_UNSPECIFIED", - "EXCHANGE_GOOGLE_AD_MANAGER", - "EXCHANGE_APPNEXUS", - "EXCHANGE_BRIGHTROLL", - "EXCHANGE_ADFORM", - "EXCHANGE_ADMETA", - "EXCHANGE_ADMIXER", - "EXCHANGE_ADSMOGO", - "EXCHANGE_ADSWIZZ", - "EXCHANGE_BIDSWITCH", - "EXCHANGE_BRIGHTROLL_DISPLAY", - "EXCHANGE_CADREON", - "EXCHANGE_DAILYMOTION", - "EXCHANGE_FIVE", - "EXCHANGE_FLUCT", - "EXCHANGE_FREEWHEEL", - "EXCHANGE_GENIEE", - "EXCHANGE_GUMGUM", - "EXCHANGE_IMOBILE", - "EXCHANGE_IBILLBOARD", - "EXCHANGE_IMPROVE_DIGITAL", - "EXCHANGE_INDEX", - "EXCHANGE_KARGO", - "EXCHANGE_MICROAD", - "EXCHANGE_MOPUB", - "EXCHANGE_NEND", - "EXCHANGE_ONE_BY_AOL_DISPLAY", - "EXCHANGE_ONE_BY_AOL_MOBILE", - "EXCHANGE_ONE_BY_AOL_VIDEO", - "EXCHANGE_OOYALA", - "EXCHANGE_OPENX", - "EXCHANGE_PERMODO", - "EXCHANGE_PLATFORMONE", - "EXCHANGE_PLATFORMID", - "EXCHANGE_PUBMATIC", - "EXCHANGE_PULSEPOINT", - "EXCHANGE_REVENUEMAX", - "EXCHANGE_RUBICON", - "EXCHANGE_SMARTCLIP", - "EXCHANGE_SMARTRTB", - "EXCHANGE_SMARTSTREAMTV", - "EXCHANGE_SOVRN", - "EXCHANGE_SPOTXCHANGE", - "EXCHANGE_STROER", - "EXCHANGE_TEADSTV", - "EXCHANGE_TELARIA", - "EXCHANGE_TVN", - "EXCHANGE_UNITED", - "EXCHANGE_YIELDLAB", - "EXCHANGE_YIELDMO", - "EXCHANGE_UNRULYX", - "EXCHANGE_OPEN8", - "EXCHANGE_TRITON", - "EXCHANGE_TRIPLELIFT", - "EXCHANGE_TABOOLA", - "EXCHANGE_INMOBI", - "EXCHANGE_SMAATO", - "EXCHANGE_AJA", - "EXCHANGE_SUPERSHIP", - "EXCHANGE_NEXSTAR_DIGITAL", - "EXCHANGE_WAZE", - "EXCHANGE_SOUNDCAST", - "EXCHANGE_SHARETHROUGH", - "EXCHANGE_FYBER", - "EXCHANGE_RED_FOR_PUBLISHERS", - "EXCHANGE_MEDIANET", - "EXCHANGE_TAPJOY", - "EXCHANGE_VISTAR", - "EXCHANGE_DAX", - "EXCHANGE_JCD", - "EXCHANGE_PLACE_EXCHANGE", - "EXCHANGE_APPLOVIN", - "EXCHANGE_CONNATIX", - "EXCHANGE_RESET_DIGITAL", - "EXCHANGE_HIVESTACK" - ], - "enumDescriptions": [ - "Exchange is not specified or is unknown in this version.", - "Google Ad Manager.", - "AppNexus.", - "BrightRoll Exchange for Video from Yahoo!.", - "Adform.", - "Admeta.", - "Admixer.", - "AdsMogo.", - "AdsWizz.", - "BidSwitch.", - "BrightRoll Exchange for Display from Yahoo!.", - "Cadreon.", - "Dailymotion.", - "Five.", - "Fluct.", - "FreeWheel SSP.", - "Geniee.", - "GumGum.", - "i-mobile.", - "iBILLBOARD.", - "Improve Digital.", - "Index Exchange.", - "Kargo.", - "MicroAd.", - "MoPub.", - "Nend.", - "ONE by AOL: Display Market Place.", - "ONE by AOL: Mobile.", - "ONE by AOL: Video.", - "Ooyala.", - "OpenX.", - "Permodo.", - "Platform One.", - "PlatformId.", - "PubMatic.", - "PulsePoint.", - "RevenueMax.", - "Rubicon.", - "SmartClip.", - "SmartRTB+.", - "SmartstreamTv.", - "Sovrn.", - "SpotXchange.", - "Ströer SSP.", - "TeadsTv.", - "Telaria.", - "TVN.", - "United.", - "Yieldlab.", - "Yieldmo.", - "UnrulyX.", - "Open8.", - "Triton.", - "TripleLift.", - "Taboola.", - "InMobi.", - "Smaato.", - "Aja.", - "Supership.", - "Nexstar Digital.", - "Waze.", - "SoundCast.", - "Sharethrough.", - "Fyber.", - "Red For Publishers.", - "Media.net.", - "Tapjoy.", - "Vistar.", - "DAX.", - "JCD.", - "Place Exchange.", - "AppLovin.", - "Connatix.", - "Reset Digital.", - "Hivestack." - ], - "type": "string" - }, - "status": { - "description": "Status of the exchange review.", - "enum": [ - "REVIEW_STATUS_UNSPECIFIED", - "REVIEW_STATUS_APPROVED", - "REVIEW_STATUS_REJECTED", - "REVIEW_STATUS_PENDING" - ], - "enumDescriptions": [ - "Type value is not specified or is unknown in this version.", - "The creative is approved.", - "The creative is rejected.", - "The creative is pending review." - ], - "type": "string" - } - }, - "type": "object" - }, - "ExchangeTargetingOptionDetails": { - "description": "Represents a targetable exchange. This will be populated in the exchange_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_EXCHANGE`.", - "id": "ExchangeTargetingOptionDetails", - "properties": { - "exchange": { - "description": "Output only. The type of exchange.", - "enum": [ - "EXCHANGE_UNSPECIFIED", - "EXCHANGE_GOOGLE_AD_MANAGER", - "EXCHANGE_APPNEXUS", - "EXCHANGE_BRIGHTROLL", - "EXCHANGE_ADFORM", - "EXCHANGE_ADMETA", - "EXCHANGE_ADMIXER", - "EXCHANGE_ADSMOGO", - "EXCHANGE_ADSWIZZ", - "EXCHANGE_BIDSWITCH", - "EXCHANGE_BRIGHTROLL_DISPLAY", - "EXCHANGE_CADREON", - "EXCHANGE_DAILYMOTION", - "EXCHANGE_FIVE", - "EXCHANGE_FLUCT", - "EXCHANGE_FREEWHEEL", - "EXCHANGE_GENIEE", - "EXCHANGE_GUMGUM", - "EXCHANGE_IMOBILE", - "EXCHANGE_IBILLBOARD", - "EXCHANGE_IMPROVE_DIGITAL", - "EXCHANGE_INDEX", - "EXCHANGE_KARGO", - "EXCHANGE_MICROAD", - "EXCHANGE_MOPUB", - "EXCHANGE_NEND", - "EXCHANGE_ONE_BY_AOL_DISPLAY", - "EXCHANGE_ONE_BY_AOL_MOBILE", - "EXCHANGE_ONE_BY_AOL_VIDEO", - "EXCHANGE_OOYALA", - "EXCHANGE_OPENX", - "EXCHANGE_PERMODO", - "EXCHANGE_PLATFORMONE", - "EXCHANGE_PLATFORMID", - "EXCHANGE_PUBMATIC", - "EXCHANGE_PULSEPOINT", - "EXCHANGE_REVENUEMAX", - "EXCHANGE_RUBICON", - "EXCHANGE_SMARTCLIP", - "EXCHANGE_SMARTRTB", - "EXCHANGE_SMARTSTREAMTV", - "EXCHANGE_SOVRN", - "EXCHANGE_SPOTXCHANGE", - "EXCHANGE_STROER", - "EXCHANGE_TEADSTV", - "EXCHANGE_TELARIA", - "EXCHANGE_TVN", - "EXCHANGE_UNITED", - "EXCHANGE_YIELDLAB", - "EXCHANGE_YIELDMO", - "EXCHANGE_UNRULYX", - "EXCHANGE_OPEN8", - "EXCHANGE_TRITON", - "EXCHANGE_TRIPLELIFT", - "EXCHANGE_TABOOLA", - "EXCHANGE_INMOBI", - "EXCHANGE_SMAATO", - "EXCHANGE_AJA", - "EXCHANGE_SUPERSHIP", - "EXCHANGE_NEXSTAR_DIGITAL", - "EXCHANGE_WAZE", - "EXCHANGE_SOUNDCAST", - "EXCHANGE_SHARETHROUGH", - "EXCHANGE_FYBER", - "EXCHANGE_RED_FOR_PUBLISHERS", - "EXCHANGE_MEDIANET", - "EXCHANGE_TAPJOY", - "EXCHANGE_VISTAR", - "EXCHANGE_DAX", - "EXCHANGE_JCD", - "EXCHANGE_PLACE_EXCHANGE", - "EXCHANGE_APPLOVIN", - "EXCHANGE_CONNATIX", - "EXCHANGE_RESET_DIGITAL", - "EXCHANGE_HIVESTACK" - ], - "enumDescriptions": [ - "Exchange is not specified or is unknown in this version.", - "Google Ad Manager.", - "AppNexus.", - "BrightRoll Exchange for Video from Yahoo!.", - "Adform.", - "Admeta.", - "Admixer.", - "AdsMogo.", - "AdsWizz.", - "BidSwitch.", - "BrightRoll Exchange for Display from Yahoo!.", - "Cadreon.", - "Dailymotion.", - "Five.", - "Fluct.", - "FreeWheel SSP.", - "Geniee.", - "GumGum.", - "i-mobile.", - "iBILLBOARD.", - "Improve Digital.", - "Index Exchange.", - "Kargo.", - "MicroAd.", - "MoPub.", - "Nend.", - "ONE by AOL: Display Market Place.", - "ONE by AOL: Mobile.", - "ONE by AOL: Video.", - "Ooyala.", - "OpenX.", - "Permodo.", - "Platform One.", - "PlatformId.", - "PubMatic.", - "PulsePoint.", - "RevenueMax.", - "Rubicon.", - "SmartClip.", - "SmartRTB+.", - "SmartstreamTv.", - "Sovrn.", - "SpotXchange.", - "Ströer SSP.", - "TeadsTv.", - "Telaria.", - "TVN.", - "United.", - "Yieldlab.", - "Yieldmo.", - "UnrulyX.", - "Open8.", - "Triton.", - "TripleLift.", - "Taboola.", - "InMobi.", - "Smaato.", - "Aja.", - "Supership.", - "Nexstar Digital.", - "Waze.", - "SoundCast.", - "Sharethrough.", - "Fyber.", - "Red For Publishers.", - "Media.net.", - "Tapjoy.", - "Vistar.", - "DAX.", - "JCD.", - "Place Exchange.", - "AppLovin.", - "Connatix.", - "Reset Digital.", - "Hivestack." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "ExitEvent": { - "description": "Exit event of the creative.", - "id": "ExitEvent", - "properties": { - "name": { - "description": "The name of the click tag of the exit event. The name must be unique within one creative. Leave it empty or unset for creatives containing image assets only.", - "type": "string" - }, - "reportingName": { - "description": "The name used to identify this event in reports. Leave it empty or unset for creatives containing image assets only.", - "type": "string" - }, - "type": { - "description": "Required. The type of the exit event.", - "enum": [ - "EXIT_EVENT_TYPE_UNSPECIFIED", - "EXIT_EVENT_TYPE_DEFAULT", - "EXIT_EVENT_TYPE_BACKUP" - ], - "enumDescriptions": [ - "Exit event type is not specified or is unknown in this version.", - "The exit event is the default one.", - "The exit event is a backup exit event. There could be multiple backup exit events in a creative." - ], - "type": "string" - }, - "url": { - "description": "Required. The click through URL of the exit event. This is required when type is: * `EXIT_EVENT_TYPE_DEFAULT` * `EXIT_EVENT_TYPE_BACKUP`", - "type": "string" - } - }, - "type": "object" - }, - "FirstAndThirdPartyAudience": { - "description": "Describes a first or third party audience list used for targeting. First party audiences are created via usage of client data. Third party audiences are provided by Third Party data providers and can only be licensed to customers.", - "id": "FirstAndThirdPartyAudience", - "properties": { - "activeDisplayAudienceSize": { - "description": "Output only. The estimated audience size for the Display network in the past month. If the size is less than 1000, the number will be hidden and 0 will be returned due to privacy reasons. Otherwise, the number will be rounded off to two significant digits. Only returned in GET request.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "appId": { - "description": "The app_id matches with the type of the mobile_device_ids being uploaded. Only applicable to audience_type `CUSTOMER_MATCH_DEVICE_ID`", - "type": "string" - }, - "audienceSource": { - "description": "Output only. The source of the audience.", - "enum": [ - "AUDIENCE_SOURCE_UNSPECIFIED", - "DISPLAY_VIDEO_360", - "CAMPAIGN_MANAGER", - "AD_MANAGER", - "SEARCH_ADS_360", - "YOUTUBE", - "ADS_DATA_HUB" - ], - "enumDescriptions": [ - "Default value when audience source is not specified or is unknown.", - "Originated from Display & Video 360.", - "Originated from Campaign Manager 360.", - "Originated from Google Ad Manager.", - "Originated from Search Ads 360.", - "Originated from Youtube.", - "Originated from Ads Data Hub." - ], - "readOnly": true, - "type": "string" - }, - "audienceType": { - "description": "The type of the audience.", - "enum": [ - "AUDIENCE_TYPE_UNSPECIFIED", - "CUSTOMER_MATCH_CONTACT_INFO", - "CUSTOMER_MATCH_DEVICE_ID", - "CUSTOMER_MATCH_USER_ID", - "ACTIVITY_BASED", - "FREQUENCY_CAP", - "TAG_BASED", - "YOUTUBE_USERS", - "LICENSED" - ], - "enumDeprecated": [ - false, - false, - false, - false, - true, - true, - false, - false, - false - ], - "enumDescriptions": [ - "Default value when type is not specified or is unknown.", - "Audience was generated through matching customers to known contact information.", - "Audience was generated through matching customers to known Mobile device IDs.", - "Audience was generated through matching customers to known User IDs.", - "Audience was created based on campaign activity.", - "Audience was created based on excluding the number of impressions they were served.", - "Audience was created based on custom variables attached to pixel.", - "Audience was created based on past interactions with videos, YouTube ads, or YouTube channel.", - "Subtype of third party audience type." - ], - "type": "string" - }, - "contactInfoList": { - "$ref": "ContactInfoList", - "description": "Input only. A list of contact information to define the initial audience members. Only applicable to audience_type `CUSTOMER_MATCH_CONTACT_INFO`" - }, - "description": { - "description": "The user-provided description of the audience. Only applicable to first party audiences.", - "type": "string" - }, - "displayAudienceSize": { - "description": "Output only. The estimated audience size for the Display network. If the size is less than 1000, the number will be hidden and 0 will be returned due to privacy reasons. Otherwise, the number will be rounded off to two significant digits. Only returned in GET request.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "displayDesktopAudienceSize": { - "description": "Output only. The estimated desktop audience size in Display network. If the size is less than 1000, the number will be hidden and 0 will be returned due to privacy reasons. Otherwise, the number will be rounded off to two significant digits. Only applicable to first party audiences. Only returned in GET request.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "displayMobileAppAudienceSize": { - "description": "Output only. The estimated mobile app audience size in Display network. If the size is less than 1000, the number will be hidden and 0 will be returned due to privacy reasons. Otherwise, the number will be rounded off to two significant digits. Only applicable to first party audiences. Only returned in GET request.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "displayMobileWebAudienceSize": { - "description": "Output only. The estimated mobile web audience size in Display network. If the size is less than 1000, the number will be hidden and 0 will be returned due to privacy reasons. Otherwise, the number will be rounded off to two significant digits. Only applicable to first party audiences. Only returned in GET request.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "displayName": { - "description": "The display name of the first and third party audience.", - "type": "string" - }, - "firstAndThirdPartyAudienceId": { - "description": "Output only. The unique ID of the first and third party audience. Assigned by the system.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "firstAndThirdPartyAudienceType": { - "description": "Whether the audience is a first or third party audience.", - "enum": [ - "FIRST_AND_THIRD_PARTY_AUDIENCE_TYPE_UNSPECIFIED", - "FIRST_AND_THIRD_PARTY_AUDIENCE_TYPE_FIRST_PARTY", - "FIRST_AND_THIRD_PARTY_AUDIENCE_TYPE_THIRD_PARTY" - ], - "enumDescriptions": [ - "Default value when type is not specified or is unknown.", - "Audience that is created via usage of client data.", - "Audience that is provided by Third Party data providers." - ], - "type": "string" - }, - "gmailAudienceSize": { - "description": "Output only. The estimated audience size for Gmail network. If the size is less than 1000, the number will be hidden and 0 will be returned due to privacy reasons. Otherwise, the number will be rounded off to two significant digits. Only applicable to first party audiences. Only returned in GET request.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "membershipDurationDays": { - "description": "The duration in days that an entry remains in the audience after the qualifying event. If the audience has no expiration, set the value of this field to 10000. Otherwise, the set value must be greater than 0 and less than or equal to 540. Only applicable to first party audiences. This field is required if one of the following audience_type is used: * `CUSTOMER_MATCH_CONTACT_INFO` * `CUSTOMER_MATCH_DEVICE_ID`", - "format": "int64", - "type": "string" - }, - "mobileDeviceIdList": { - "$ref": "MobileDeviceIdList", - "description": "Input only. A list of mobile device IDs to define the initial audience members. Only applicable to audience_type `CUSTOMER_MATCH_DEVICE_ID`" - }, - "name": { - "description": "Output only. The resource name of the first and third party audience.", - "readOnly": true, - "type": "string" - }, - "youtubeAudienceSize": { - "description": "Output only. The estimated audience size for YouTube network. If the size is less than 1000, the number will be hidden and 0 will be returned due to privacy reasons. Otherwise, the number will be rounded off to two significant digits. Only applicable to first party audiences. Only returned in GET request.", - "format": "int64", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "FirstAndThirdPartyAudienceGroup": { - "description": "Details of first and third party audience group. All first and third party audience targeting settings are logically ‘OR’ of each other.", - "id": "FirstAndThirdPartyAudienceGroup", - "properties": { - "settings": { - "description": "Required. All first and third party audience targeting settings in first and third party audience group. Repeated settings with same id are not allowed.", - "items": { - "$ref": "FirstAndThirdPartyAudienceTargetingSetting" - }, - "type": "array" - } - }, - "type": "object" - }, - "FirstAndThirdPartyAudienceTargetingSetting": { - "description": "Details of first and third party audience targeting setting.", - "id": "FirstAndThirdPartyAudienceTargetingSetting", - "properties": { - "firstAndThirdPartyAudienceId": { - "description": "Required. First and third party audience id of the first and third party audience targeting setting. This id is first_and_third_party_audience_id.", - "format": "int64", - "type": "string" - }, - "recency": { - "description": "The recency of the first and third party audience targeting setting. Only applicable to first party audiences, otherwise will be ignored. For more info, refer to https://support.google.com/displayvideo/answer/2949947#recency When unspecified, no recency limit will be used.", - "enum": [ - "RECENCY_NO_LIMIT", - "RECENCY_1_MINUTE", - "RECENCY_5_MINUTES", - "RECENCY_10_MINUTES", - "RECENCY_15_MINUTES", - "RECENCY_30_MINUTES", - "RECENCY_1_HOUR", - "RECENCY_2_HOURS", - "RECENCY_3_HOURS", - "RECENCY_6_HOURS", - "RECENCY_12_HOURS", - "RECENCY_1_DAY", - "RECENCY_2_DAYS", - "RECENCY_3_DAYS", - "RECENCY_5_DAYS", - "RECENCY_7_DAYS", - "RECENCY_10_DAYS", - "RECENCY_14_DAYS", - "RECENCY_15_DAYS", - "RECENCY_21_DAYS", - "RECENCY_28_DAYS", - "RECENCY_30_DAYS", - "RECENCY_40_DAYS", - "RECENCY_45_DAYS", - "RECENCY_60_DAYS", - "RECENCY_90_DAYS", - "RECENCY_120_DAYS", - "RECENCY_180_DAYS", - "RECENCY_270_DAYS", - "RECENCY_365_DAYS" - ], - "enumDescriptions": [ - "No limit of recency.", - "Recency is 1 minute.", - "Recency is 5 minutes.", - "Recency is 10 minutes.", - "Recency is 15 minutes.", - "Recency is 30 minutes.", - "Recency is 1 hour.", - "Recency is 2 hours.", - "Recency is 3 hours.", - "Recency is 6 hours.", - "Recency is 12 hours.", - "Recency is 1 day.", - "Recency is 2 days.", - "Recency is 3 days.", - "Recency is 5 days.", - "Recency is 7 days.", - "Recency is 10 days.", - "Recency is 14 days.", - "Recency is 15 days.", - "Recency is 21 days.", - "Recency is 28 days.", - "Recency is 30 days.", - "Recency is 40 days.", - "Recency is 45 days.", - "Recency is 60 days.", - "Recency is 90 days.", - "Recency is 120 days.", - "Recency is 180 days.", - "Recency is 270 days.", - "Recency is 365 days." - ], - "type": "string" - } - }, - "type": "object" - }, - "FixedBidStrategy": { - "description": "A strategy that uses a fixed bidding price.", - "id": "FixedBidStrategy", - "properties": { - "bidAmountMicros": { - "description": "The fixed bid amount, in micros of the advertiser's currency. For insertion order entity, bid_amount_micros should be set as 0. For line item entity, bid_amount_micros must be greater than or equal to billable unit of the given currency and smaller than or equal to the upper limit 1000000000. For example, 1500000 represents 1.5 standard units of the currency.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "FloodlightGroup": { - "description": "A single Floodlight group.", - "id": "FloodlightGroup", - "properties": { - "activeViewConfig": { - "$ref": "ActiveViewVideoViewabilityMetricConfig", - "description": "The Active View video viewability metric configuration for the Floodlight group." - }, - "customVariables": { - "additionalProperties": { - "description": "Properties of the object.", - "type": "any" - }, - "description": "User-defined custom variables owned by the Floodlight group. Use custom Floodlight variables to create reporting data that is tailored to your unique business needs. Custom Floodlight variables use the keys `U1=`, `U2=`, and so on, and can take any values that you choose to pass to them. You can use them to track virtually any type of data that you collect about your customers, such as the genre of movie that a customer purchases, the country to which the item is shipped, and so on. Custom Floodlight variables may not be used to pass any data that could be used or recognized as personally identifiable information (PII). Example: `custom_variables { fields { \"U1\": value { number_value: 123.4 }, \"U2\": value { string_value: \"MyVariable2\" }, \"U3\": value { string_value: \"MyVariable3\" } } }` Acceptable values for keys are \"U1\" through \"U100\", inclusive. String values must be less than 64 characters long, and cannot contain the following characters: `\"<>`.", - "type": "object" - }, - "displayName": { - "description": "Required. The display name of the Floodlight group.", - "type": "string" - }, - "floodlightGroupId": { - "description": "Output only. The unique ID of the Floodlight group. Assigned by the system.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "lookbackWindow": { - "$ref": "LookbackWindow", - "description": "Required. The lookback window for the Floodlight group. Both click_days and impression_days are required. Acceptable values for both are `0` to `90`, inclusive." - }, - "name": { - "description": "Output only. The resource name of the Floodlight group.", - "readOnly": true, - "type": "string" - }, - "webTagType": { - "description": "Required. The web tag type enabled for the Floodlight group.", - "enum": [ - "WEB_TAG_TYPE_UNSPECIFIED", - "WEB_TAG_TYPE_NONE", - "WEB_TAG_TYPE_IMAGE", - "WEB_TAG_TYPE_DYNAMIC" - ], - "enumDescriptions": [ - "Type value is not specified or is unknown in this version.", - "No tag type.", - "Image tag.", - "Dynamic tag." - ], - "type": "string" - } - }, - "type": "object" - }, - "FrequencyCap": { - "description": "Settings that control the number of times a user may be shown with the same ad during a given time period.", - "id": "FrequencyCap", - "properties": { - "maxImpressions": { - "description": "The maximum number of times a user may be shown the same ad during this period. Must be greater than 0. Required when unlimited is `false` and max_views is not set.", - "format": "int32", - "type": "integer" - }, - "timeUnit": { - "description": "The time unit in which the frequency cap will be applied. Required when unlimited is `false`.", - "enum": [ - "TIME_UNIT_UNSPECIFIED", - "TIME_UNIT_LIFETIME", - "TIME_UNIT_MONTHS", - "TIME_UNIT_WEEKS", - "TIME_UNIT_DAYS", - "TIME_UNIT_HOURS", - "TIME_UNIT_MINUTES" - ], - "enumDescriptions": [ - "Time unit value is not specified or is unknown in this version.", - "The frequency cap will be applied to the whole life time of the line item.", - "The frequency cap will be applied to a number of months.", - "The frequency cap will be applied to a number of weeks.", - "The frequency cap will be applied to a number of days.", - "The frequency cap will be applied to a number of hours.", - "The frequency cap will be applied to a number of minutes." - ], - "type": "string" - }, - "timeUnitCount": { - "description": "The number of time_unit the frequency cap will last. Required when unlimited is `false`. The following restrictions apply based on the value of time_unit: * `TIME_UNIT_LIFETIME` - this field is output only and will default to 1 * `TIME_UNIT_MONTHS` - must be between 1 and 2 * `TIME_UNIT_WEEKS` - must be between 1 and 4 * `TIME_UNIT_DAYS` - must be between 1 and 6 * `TIME_UNIT_HOURS` - must be between 1 and 23 * `TIME_UNIT_MINUTES` - must be between 1 and 59", - "format": "int32", - "type": "integer" - }, - "unlimited": { - "description": "Whether unlimited frequency capping is applied. When this field is set to `true`, the remaining frequency cap fields are not applicable.", - "type": "boolean" - } - }, - "type": "object" - }, - "GenderAssignedTargetingOptionDetails": { - "description": "Details for assigned gender targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_GENDER`.", - "id": "GenderAssignedTargetingOptionDetails", - "properties": { - "gender": { - "description": "Required. The gender of the audience.", - "enum": [ - "GENDER_UNSPECIFIED", - "GENDER_MALE", - "GENDER_FEMALE", - "GENDER_UNKNOWN" - ], - "enumDescriptions": [ - "Default value when gender is not specified in this version. This enum is a place holder for default value and does not represent a real gender option.", - "The audience gender is male.", - "The audience gender is female.", - "The audience gender is unknown." - ], - "type": "string" - }, - "targetingOptionId": { - "description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_GENDER`.", - "type": "string" - } - }, - "type": "object" - }, - "GenderTargetingOptionDetails": { - "description": "Represents a targetable gender. This will be populated in the gender_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_GENDER`.", - "id": "GenderTargetingOptionDetails", - "properties": { - "gender": { - "description": "Output only. The gender of an audience.", - "enum": [ - "GENDER_UNSPECIFIED", - "GENDER_MALE", - "GENDER_FEMALE", - "GENDER_UNKNOWN" - ], - "enumDescriptions": [ - "Default value when gender is not specified in this version. This enum is a place holder for default value and does not represent a real gender option.", - "The audience gender is male.", - "The audience gender is female.", - "The audience gender is unknown." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "GenerateDefaultLineItemRequest": { - "description": "Request message for LineItemService.GenerateDefaultLineItem.", - "id": "GenerateDefaultLineItemRequest", - "properties": { - "displayName": { - "description": "Required. The display name of the line item. Must be UTF-8 encoded with a maximum size of 240 bytes.", - "type": "string" - }, - "insertionOrderId": { - "description": "Required. The unique ID of the insertion order that the line item belongs to.", - "format": "int64", - "type": "string" - }, - "lineItemType": { - "description": "Required. The type of the line item.", - "enum": [ - "LINE_ITEM_TYPE_UNSPECIFIED", - "LINE_ITEM_TYPE_DISPLAY_DEFAULT", - "LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INSTALL", - "LINE_ITEM_TYPE_VIDEO_DEFAULT", - "LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INSTALL", - "LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INVENTORY", - "LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INVENTORY", - "LINE_ITEM_TYPE_AUDIO_DEFAULT", - "LINE_ITEM_TYPE_VIDEO_OVER_THE_TOP", - "LINE_ITEM_TYPE_DISPLAY_OUT_OF_HOME", - "LINE_ITEM_TYPE_VIDEO_OUT_OF_HOME" - ], - "enumDescriptions": [ - "Type value is not specified or is unknown in this version. Line items of this type and their targeting cannot be created or updated using the API.", - "Image, HTML5, native, or rich media ads.", - "Display ads that drive installs of an app.", - "Video ads sold on a CPM basis for a variety of environments.", - "Video ads that drive installs of an app.", - "Display ads served on mobile app inventory. Line items of this type and their targeting cannot be created or updated using the API.", - "Video ads served on mobile app inventory. Line items of this type and their targeting cannot be created or updated using the API.", - "RTB Audio ads sold for a variety of environments.", - "Over-the-top ads present in OTT insertion orders. This type is only applicable to line items with an insertion order of insertion_order_type `OVER_THE_TOP`.", - "Display ads served on digital-out-of-home inventory. Line items of this type and their targeting cannot be created or updated using the API.", - "Video ads served on digital-out-of-home inventory. Line items of this type and their targeting cannot be created or updated using the API." - ], - "type": "string" - }, - "mobileApp": { - "$ref": "MobileApp", - "description": "The mobile app promoted by the line item. This is applicable only when line_item_type is either `LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INSTALL` or `LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INSTALL`." - } - }, - "type": "object" - }, - "GeoRegionAssignedTargetingOptionDetails": { - "description": "Details for assigned geographic region targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_GEO_REGION`.", - "id": "GeoRegionAssignedTargetingOptionDetails", - "properties": { - "displayName": { - "description": "Output only. The display name of the geographic region (e.g., \"Ontario, Canada\").", - "readOnly": true, - "type": "string" - }, - "geoRegionType": { - "description": "Output only. The type of geographic region targeting.", - "enum": [ - "GEO_REGION_TYPE_UNKNOWN", - "GEO_REGION_TYPE_OTHER", - "GEO_REGION_TYPE_COUNTRY", - "GEO_REGION_TYPE_REGION", - "GEO_REGION_TYPE_TERRITORY", - "GEO_REGION_TYPE_PROVINCE", - "GEO_REGION_TYPE_STATE", - "GEO_REGION_TYPE_PREFECTURE", - "GEO_REGION_TYPE_GOVERNORATE", - "GEO_REGION_TYPE_CANTON", - "GEO_REGION_TYPE_UNION_TERRITORY", - "GEO_REGION_TYPE_AUTONOMOUS_COMMUNITY", - "GEO_REGION_TYPE_DMA_REGION", - "GEO_REGION_TYPE_METRO", - "GEO_REGION_TYPE_CONGRESSIONAL_DISTRICT", - "GEO_REGION_TYPE_COUNTY", - "GEO_REGION_TYPE_MUNICIPALITY", - "GEO_REGION_TYPE_CITY", - "GEO_REGION_TYPE_POSTAL_CODE", - "GEO_REGION_TYPE_DEPARTMENT", - "GEO_REGION_TYPE_AIRPORT", - "GEO_REGION_TYPE_TV_REGION", - "GEO_REGION_TYPE_OKRUG", - "GEO_REGION_TYPE_BOROUGH", - "GEO_REGION_TYPE_CITY_REGION", - "GEO_REGION_TYPE_ARRONDISSEMENT", - "GEO_REGION_TYPE_NEIGHBORHOOD", - "GEO_REGION_TYPE_UNIVERSITY", - "GEO_REGION_TYPE_DISTRICT" - ], - "enumDescriptions": [ - "The geographic region type is unknown.", - "The geographic region type is other.", - "The geographic region is a country.", - "The geographic region type is region.", - "The geographic region is a territory.", - "The geographic region is a province.", - "The geographic region is a state.", - "The geographic region is a prefecture.", - "The geographic region is a governorate.", - "The geographic region is a canton.", - "The geographic region is a union territory.", - "The geographic region is an autonomous community.", - "The geographic region is a designated market area (DMA) region.", - "The geographic region type is metro.", - "The geographic region is a congressional district.", - "The geographic region is a county.", - "The geographic region is a municipality.", - "The geographic region is a city.", - "The geographic region targeting type is postal code.", - "The geographic region targeting type is department.", - "The geographic region is an airport.", - "The geographic region is a TV region.", - "The geographic region is an okrug.", - "The geographic region is a borough.", - "The geographic region is a city region.", - "The geographic region is an arrondissement.", - "The geographic region is a neighborhood.", - "The geographic region is a university.", - "The geographic region is a district." - ], - "readOnly": true, - "type": "string" - }, - "negative": { - "description": "Indicates if this option is being negatively targeted.", - "type": "boolean" - }, - "targetingOptionId": { - "description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_GEO_REGION`.", - "type": "string" - } - }, - "type": "object" - }, - "GeoRegionSearchTerms": { - "description": "Search terms for geo region targeting options.", - "id": "GeoRegionSearchTerms", - "properties": { - "geoRegionQuery": { - "description": "The search query for the desired geo region. The query can be a prefix, e.g. \"New Yor\", \"Seattle\", \"USA\", etc.", - "type": "string" - } - }, - "type": "object" - }, - "GeoRegionTargetingOptionDetails": { - "description": "Represents a targetable geographic region. This will be populated in the geo_region_details field when targeting_type is `TARGETING_TYPE_GEO_REGION`.", - "id": "GeoRegionTargetingOptionDetails", - "properties": { - "displayName": { - "description": "Output only. The display name of the geographic region (e.g., \"Ontario, Canada\").", - "readOnly": true, - "type": "string" - }, - "geoRegionType": { - "description": "Output only. The type of geographic region targeting.", - "enum": [ - "GEO_REGION_TYPE_UNKNOWN", - "GEO_REGION_TYPE_OTHER", - "GEO_REGION_TYPE_COUNTRY", - "GEO_REGION_TYPE_REGION", - "GEO_REGION_TYPE_TERRITORY", - "GEO_REGION_TYPE_PROVINCE", - "GEO_REGION_TYPE_STATE", - "GEO_REGION_TYPE_PREFECTURE", - "GEO_REGION_TYPE_GOVERNORATE", - "GEO_REGION_TYPE_CANTON", - "GEO_REGION_TYPE_UNION_TERRITORY", - "GEO_REGION_TYPE_AUTONOMOUS_COMMUNITY", - "GEO_REGION_TYPE_DMA_REGION", - "GEO_REGION_TYPE_METRO", - "GEO_REGION_TYPE_CONGRESSIONAL_DISTRICT", - "GEO_REGION_TYPE_COUNTY", - "GEO_REGION_TYPE_MUNICIPALITY", - "GEO_REGION_TYPE_CITY", - "GEO_REGION_TYPE_POSTAL_CODE", - "GEO_REGION_TYPE_DEPARTMENT", - "GEO_REGION_TYPE_AIRPORT", - "GEO_REGION_TYPE_TV_REGION", - "GEO_REGION_TYPE_OKRUG", - "GEO_REGION_TYPE_BOROUGH", - "GEO_REGION_TYPE_CITY_REGION", - "GEO_REGION_TYPE_ARRONDISSEMENT", - "GEO_REGION_TYPE_NEIGHBORHOOD", - "GEO_REGION_TYPE_UNIVERSITY", - "GEO_REGION_TYPE_DISTRICT" - ], - "enumDescriptions": [ - "The geographic region type is unknown.", - "The geographic region type is other.", - "The geographic region is a country.", - "The geographic region type is region.", - "The geographic region is a territory.", - "The geographic region is a province.", - "The geographic region is a state.", - "The geographic region is a prefecture.", - "The geographic region is a governorate.", - "The geographic region is a canton.", - "The geographic region is a union territory.", - "The geographic region is an autonomous community.", - "The geographic region is a designated market area (DMA) region.", - "The geographic region type is metro.", - "The geographic region is a congressional district.", - "The geographic region is a county.", - "The geographic region is a municipality.", - "The geographic region is a city.", - "The geographic region targeting type is postal code.", - "The geographic region targeting type is department.", - "The geographic region is an airport.", - "The geographic region is a TV region.", - "The geographic region is an okrug.", - "The geographic region is a borough.", - "The geographic region is a city region.", - "The geographic region is an arrondissement.", - "The geographic region is a neighborhood.", - "The geographic region is a university.", - "The geographic region is a district." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "GoogleAudience": { - "description": "Describes a Google audience resource. Includes Google audience lists.", - "id": "GoogleAudience", - "properties": { - "displayName": { - "description": "Output only. The display name of the Google audience. .", - "readOnly": true, - "type": "string" - }, - "googleAudienceId": { - "description": "Output only. The unique ID of the Google audience. Assigned by the system.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "googleAudienceType": { - "description": "Output only. The type of Google audience. .", - "enum": [ - "GOOGLE_AUDIENCE_TYPE_UNSPECIFIED", - "GOOGLE_AUDIENCE_TYPE_AFFINITY", - "GOOGLE_AUDIENCE_TYPE_IN_MARKET", - "GOOGLE_AUDIENCE_TYPE_INSTALLED_APPS", - "GOOGLE_AUDIENCE_TYPE_NEW_MOBILE_DEVICES", - "GOOGLE_AUDIENCE_TYPE_LIFE_EVENT", - "GOOGLE_AUDIENCE_TYPE_EXTENDED_DEMOGRAPHIC" - ], - "enumDeprecated": [ - false, - false, - false, - true, - true, - false, - false - ], - "enumDescriptions": [ - "Default value when type is not specified or is unknown.", - "Affinity type Google audience.", - "In-Market type Google audience.", - "Installed-Apps type Google audience.", - "New-Mobile-Devices type Google audience.", - "Life-Event type Google audience.", - "Extended-Demographic type Google audience." - ], - "readOnly": true, - "type": "string" - }, - "name": { - "description": "Output only. The resource name of the google audience.", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "GoogleAudienceGroup": { - "description": "Details of Google audience group. All Google audience targeting settings are logically ‘OR’ of each other.", - "id": "GoogleAudienceGroup", - "properties": { - "settings": { - "description": "Required. All Google audience targeting settings in Google audience group. Repeated settings with same id will be ignored.", - "items": { - "$ref": "GoogleAudienceTargetingSetting" - }, - "type": "array" - } - }, - "type": "object" - }, - "GoogleAudienceTargetingSetting": { - "description": "Details of Google audience targeting setting.", - "id": "GoogleAudienceTargetingSetting", - "properties": { - "googleAudienceId": { - "description": "Required. Google audience id of the Google audience targeting setting. This id is google_audience_id.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "GoogleBytestreamMedia": { - "description": "Media resource.", - "id": "GoogleBytestreamMedia", - "properties": { - "resourceName": { - "description": "Name of the media resource.", - "type": "string" - } - }, - "type": "object" - }, - "GuaranteedOrder": { - "description": "A guaranteed order. Guaranteed orders are parent entity of guaranteed inventory sources. When creating a guaranteed inventory source, a guaranteed order ID must be assigned to the inventory source.", - "id": "GuaranteedOrder", - "properties": { - "defaultAdvertiserId": { - "description": "Output only. The ID of default advertiser of the guaranteed order. The default advertiser is either the read_write_advertiser_id or, if that is not set, the first advertiser listed in read_advertiser_ids. Otherwise, there is no default advertiser.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "defaultCampaignId": { - "description": "The ID of the default campaign that is assigned to the guaranteed order. The default campaign must belong to the default advertiser.", - "format": "int64", - "type": "string" - }, - "displayName": { - "description": "Required. The display name of the guaranteed order. Must be UTF-8 encoded with a maximum size of 240 bytes.", - "type": "string" - }, - "exchange": { - "description": "Required. Immutable. The exchange where the guaranteed order originated.", - "enum": [ - "EXCHANGE_UNSPECIFIED", - "EXCHANGE_GOOGLE_AD_MANAGER", - "EXCHANGE_APPNEXUS", - "EXCHANGE_BRIGHTROLL", - "EXCHANGE_ADFORM", - "EXCHANGE_ADMETA", - "EXCHANGE_ADMIXER", - "EXCHANGE_ADSMOGO", - "EXCHANGE_ADSWIZZ", - "EXCHANGE_BIDSWITCH", - "EXCHANGE_BRIGHTROLL_DISPLAY", - "EXCHANGE_CADREON", - "EXCHANGE_DAILYMOTION", - "EXCHANGE_FIVE", - "EXCHANGE_FLUCT", - "EXCHANGE_FREEWHEEL", - "EXCHANGE_GENIEE", - "EXCHANGE_GUMGUM", - "EXCHANGE_IMOBILE", - "EXCHANGE_IBILLBOARD", - "EXCHANGE_IMPROVE_DIGITAL", - "EXCHANGE_INDEX", - "EXCHANGE_KARGO", - "EXCHANGE_MICROAD", - "EXCHANGE_MOPUB", - "EXCHANGE_NEND", - "EXCHANGE_ONE_BY_AOL_DISPLAY", - "EXCHANGE_ONE_BY_AOL_MOBILE", - "EXCHANGE_ONE_BY_AOL_VIDEO", - "EXCHANGE_OOYALA", - "EXCHANGE_OPENX", - "EXCHANGE_PERMODO", - "EXCHANGE_PLATFORMONE", - "EXCHANGE_PLATFORMID", - "EXCHANGE_PUBMATIC", - "EXCHANGE_PULSEPOINT", - "EXCHANGE_REVENUEMAX", - "EXCHANGE_RUBICON", - "EXCHANGE_SMARTCLIP", - "EXCHANGE_SMARTRTB", - "EXCHANGE_SMARTSTREAMTV", - "EXCHANGE_SOVRN", - "EXCHANGE_SPOTXCHANGE", - "EXCHANGE_STROER", - "EXCHANGE_TEADSTV", - "EXCHANGE_TELARIA", - "EXCHANGE_TVN", - "EXCHANGE_UNITED", - "EXCHANGE_YIELDLAB", - "EXCHANGE_YIELDMO", - "EXCHANGE_UNRULYX", - "EXCHANGE_OPEN8", - "EXCHANGE_TRITON", - "EXCHANGE_TRIPLELIFT", - "EXCHANGE_TABOOLA", - "EXCHANGE_INMOBI", - "EXCHANGE_SMAATO", - "EXCHANGE_AJA", - "EXCHANGE_SUPERSHIP", - "EXCHANGE_NEXSTAR_DIGITAL", - "EXCHANGE_WAZE", - "EXCHANGE_SOUNDCAST", - "EXCHANGE_SHARETHROUGH", - "EXCHANGE_FYBER", - "EXCHANGE_RED_FOR_PUBLISHERS", - "EXCHANGE_MEDIANET", - "EXCHANGE_TAPJOY", - "EXCHANGE_VISTAR", - "EXCHANGE_DAX", - "EXCHANGE_JCD", - "EXCHANGE_PLACE_EXCHANGE", - "EXCHANGE_APPLOVIN", - "EXCHANGE_CONNATIX", - "EXCHANGE_RESET_DIGITAL", - "EXCHANGE_HIVESTACK" - ], - "enumDescriptions": [ - "Exchange is not specified or is unknown in this version.", - "Google Ad Manager.", - "AppNexus.", - "BrightRoll Exchange for Video from Yahoo!.", - "Adform.", - "Admeta.", - "Admixer.", - "AdsMogo.", - "AdsWizz.", - "BidSwitch.", - "BrightRoll Exchange for Display from Yahoo!.", - "Cadreon.", - "Dailymotion.", - "Five.", - "Fluct.", - "FreeWheel SSP.", - "Geniee.", - "GumGum.", - "i-mobile.", - "iBILLBOARD.", - "Improve Digital.", - "Index Exchange.", - "Kargo.", - "MicroAd.", - "MoPub.", - "Nend.", - "ONE by AOL: Display Market Place.", - "ONE by AOL: Mobile.", - "ONE by AOL: Video.", - "Ooyala.", - "OpenX.", - "Permodo.", - "Platform One.", - "PlatformId.", - "PubMatic.", - "PulsePoint.", - "RevenueMax.", - "Rubicon.", - "SmartClip.", - "SmartRTB+.", - "SmartstreamTv.", - "Sovrn.", - "SpotXchange.", - "Ströer SSP.", - "TeadsTv.", - "Telaria.", - "TVN.", - "United.", - "Yieldlab.", - "Yieldmo.", - "UnrulyX.", - "Open8.", - "Triton.", - "TripleLift.", - "Taboola.", - "InMobi.", - "Smaato.", - "Aja.", - "Supership.", - "Nexstar Digital.", - "Waze.", - "SoundCast.", - "Sharethrough.", - "Fyber.", - "Red For Publishers.", - "Media.net.", - "Tapjoy.", - "Vistar.", - "DAX.", - "JCD.", - "Place Exchange.", - "AppLovin.", - "Connatix.", - "Reset Digital.", - "Hivestack." - ], - "type": "string" - }, - "guaranteedOrderId": { - "description": "Output only. The unique identifier of the guaranteed order. The guaranteed order IDs have the format `{exchange}-{legacy_guaranteed_order_id}`.", - "readOnly": true, - "type": "string" - }, - "legacyGuaranteedOrderId": { - "description": "Output only. The legacy ID of the guaranteed order. Assigned by the original exchange. The legacy ID is unique within one exchange, but is not guaranteed to be unique across all guaranteed orders. This ID is used in SDF and UI.", - "readOnly": true, - "type": "string" - }, - "name": { - "description": "Output only. The resource name of the guaranteed order.", - "readOnly": true, - "type": "string" - }, - "publisherName": { - "description": "Required. The publisher name of the guaranteed order. Must be UTF-8 encoded with a maximum size of 240 bytes.", - "type": "string" - }, - "readAccessInherited": { - "description": "Whether all advertisers of read_write_partner_id have read access to the guaranteed order. Only applicable if read_write_partner_id is set. If True, overrides read_advertiser_ids.", - "type": "boolean" - }, - "readAdvertiserIds": { - "description": "The IDs of advertisers with read access to the guaranteed order. This field must not include the advertiser assigned to read_write_advertiser_id if it is set. All advertisers in this field must belong to read_write_partner_id or the same partner as read_write_advertiser_id.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "readWriteAdvertiserId": { - "description": "The advertiser with read/write access to the guaranteed order. This is also the default advertiser of the guaranteed order.", - "format": "int64", - "type": "string" - }, - "readWritePartnerId": { - "description": "The partner with read/write access to the guaranteed order.", - "format": "int64", - "type": "string" - }, - "status": { - "$ref": "GuaranteedOrderStatus", - "description": "The status settings of the guaranteed order." - }, - "updateTime": { - "description": "Output only. The timestamp when the guaranteed order was last updated. Assigned by the system.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "GuaranteedOrderStatus": { - "description": "The status settings of the guaranteed order.", - "id": "GuaranteedOrderStatus", - "properties": { - "configStatus": { - "description": "Output only. The configuration status of the guaranteed order. Acceptable values are `PENDING` and `COMPLETED`. A guaranteed order must be configured (fill in the required fields, choose creatives, and select a default campaign) before it can serve. Currently the configuration action can only be performed via UI.", - "enum": [ - "GUARANTEED_ORDER_CONFIG_STATUS_UNSPECIFIED", - "PENDING", - "COMPLETED" - ], - "enumDescriptions": [ - "The approval status is not specified or is unknown in this version.", - "The beginning state of a guaranteed order. The guaranteed order in this state needs to be configured before it can serve.", - "The state after the buyer configures a guaranteed order." - ], - "readOnly": true, - "type": "string" - }, - "entityPauseReason": { - "description": "The user-provided reason for pausing this guaranteed order. Must be UTF-8 encoded with a maximum length of 100 bytes. Only applicable when entity_status is set to `ENTITY_STATUS_PAUSED`.", - "type": "string" - }, - "entityStatus": { - "description": "Whether or not the guaranteed order is servable. Acceptable values are `ENTITY_STATUS_ACTIVE`, `ENTITY_STATUS_ARCHIVED`, and `ENTITY_STATUS_PAUSED`. Default value is `ENTITY_STATUS_ACTIVE`.", - "enum": [ - "ENTITY_STATUS_UNSPECIFIED", - "ENTITY_STATUS_ACTIVE", - "ENTITY_STATUS_ARCHIVED", - "ENTITY_STATUS_DRAFT", - "ENTITY_STATUS_PAUSED", - "ENTITY_STATUS_SCHEDULED_FOR_DELETION" - ], - "enumDescriptions": [ - "Default value when status is not specified or is unknown in this version.", - "The entity is enabled to bid and spend budget.", - "The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", - "The entity is under draft. Bidding and budget spending are disabled.", - "Bidding and budget spending are paused for the entity.", - "The entity is scheduled for deletion." - ], - "type": "string" - } - }, - "type": "object" - }, - "HouseholdIncomeAssignedTargetingOptionDetails": { - "description": "Details for assigned household income targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_HOUSEHOLD_INCOME`.", - "id": "HouseholdIncomeAssignedTargetingOptionDetails", - "properties": { - "householdIncome": { - "description": "Required. The household income of the audience.", - "enum": [ - "HOUSEHOLD_INCOME_UNSPECIFIED", - "HOUSEHOLD_INCOME_UNKNOWN", - "HOUSEHOLD_INCOME_LOWER_50_PERCENT", - "HOUSEHOLD_INCOME_TOP_41_TO_50_PERCENT", - "HOUSEHOLD_INCOME_TOP_31_TO_40_PERCENT", - "HOUSEHOLD_INCOME_TOP_21_TO_30_PERCENT", - "HOUSEHOLD_INCOME_TOP_11_TO_20_PERCENT", - "HOUSEHOLD_INCOME_TOP_10_PERCENT" - ], - "enumDescriptions": [ - "Default value when household income is not specified in this version. This enum is a placeholder for default value and does not represent a real household income option.", - "The household income of the audience is unknown.", - "The audience is in the lower 50% of U.S. household incomes.", - "The audience is in the top 41-50% of U.S. household incomes.", - "The audience is in the top 31-40% of U.S. household incomes.", - "The audience is in the top 21-30% of U.S. household incomes.", - "The audience is in the top 11-20% of U.S. household incomes.", - "The audience is in the top 10% of U.S. household incomes." - ], - "type": "string" - }, - "targetingOptionId": { - "description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_HOUSEHOLD_INCOME`.", - "type": "string" - } - }, - "type": "object" - }, - "HouseholdIncomeTargetingOptionDetails": { - "description": "Represents a targetable household income. This will be populated in the household_income_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_HOUSEHOLD_INCOME`.", - "id": "HouseholdIncomeTargetingOptionDetails", - "properties": { - "householdIncome": { - "description": "Output only. The household income of an audience.", - "enum": [ - "HOUSEHOLD_INCOME_UNSPECIFIED", - "HOUSEHOLD_INCOME_UNKNOWN", - "HOUSEHOLD_INCOME_LOWER_50_PERCENT", - "HOUSEHOLD_INCOME_TOP_41_TO_50_PERCENT", - "HOUSEHOLD_INCOME_TOP_31_TO_40_PERCENT", - "HOUSEHOLD_INCOME_TOP_21_TO_30_PERCENT", - "HOUSEHOLD_INCOME_TOP_11_TO_20_PERCENT", - "HOUSEHOLD_INCOME_TOP_10_PERCENT" - ], - "enumDescriptions": [ - "Default value when household income is not specified in this version. This enum is a placeholder for default value and does not represent a real household income option.", - "The household income of the audience is unknown.", - "The audience is in the lower 50% of U.S. household incomes.", - "The audience is in the top 41-50% of U.S. household incomes.", - "The audience is in the top 31-40% of U.S. household incomes.", - "The audience is in the top 21-30% of U.S. household incomes.", - "The audience is in the top 11-20% of U.S. household incomes.", - "The audience is in the top 10% of U.S. household incomes." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "IdFilter": { - "description": "A filtering option that filters entities by their entity IDs.", - "id": "IdFilter", - "properties": { - "adGroupAdIds": { - "description": "YouTube Ads to download by ID. All IDs must belong to the same Advertiser or Partner specified in CreateSdfDownloadTaskRequest.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "adGroupIds": { - "description": "YouTube Ad Groups to download by ID. All IDs must belong to the same Advertiser or Partner specified in CreateSdfDownloadTaskRequest.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "campaignIds": { - "description": "Campaigns to download by ID. All IDs must belong to the same Advertiser or Partner specified in CreateSdfDownloadTaskRequest.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "insertionOrderIds": { - "description": "Insertion Orders to download by ID. All IDs must belong to the same Advertiser or Partner specified in CreateSdfDownloadTaskRequest.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "lineItemIds": { - "description": "Line Items to download by ID. All IDs must belong to the same Advertiser or Partner specified in CreateSdfDownloadTaskRequest.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "mediaProductIds": { - "description": "Media Products to download by ID. All IDs must belong to the same Advertiser or Partner specified in CreateSdfDownloadTaskRequest.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "InsertionOrder": { - "description": "A single insertion order.", - "id": "InsertionOrder", - "properties": { - "advertiserId": { - "description": "Output only. The unique ID of the advertiser the insertion order belongs to.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "bidStrategy": { - "$ref": "BiddingStrategy", - "description": "The bidding strategy of the insertion order. By default, fixed_bid is set." - }, - "billableOutcome": { - "description": "Immutable. The billable outcome of the insertion order. Outcome based buying is deprecated. `BILLABLE_OUTCOME_PAY_PER_IMPRESSION` is the only valid value.", - "enum": [ - "BILLABLE_OUTCOME_UNSPECIFIED", - "BILLABLE_OUTCOME_PAY_PER_IMPRESSION", - "BILLABLE_OUTCOME_PAY_PER_CLICK", - "BILLABLE_OUTCOME_PAY_PER_VIEWABLE_IMPRESSION" - ], - "enumDeprecated": [ - false, - false, - true, - true - ], - "enumDescriptions": [ - "Unspecified billable outcome.", - "Pay per impressions.", - "Pay per click.", - "Pay per active view." - ], - "type": "string" - }, - "budget": { - "$ref": "InsertionOrderBudget", - "description": "Required. The budget allocation settings of the insertion order." - }, - "campaignId": { - "description": "Required. Immutable. The unique ID of the campaign that the insertion order belongs to.", - "format": "int64", - "type": "string" - }, - "displayName": { - "description": "Required. The display name of the insertion order. Must be UTF-8 encoded with a maximum size of 240 bytes.", - "type": "string" - }, - "entityStatus": { - "description": "Required. Controls whether or not the insertion order can spend its budget and bid on inventory. * For CreateInsertionOrder method, only `ENTITY_STATUS_DRAFT` is allowed. To activate an insertion order, use UpdateInsertionOrder method and update the status to `ENTITY_STATUS_ACTIVE` after creation. * An insertion order cannot be changed back to `ENTITY_STATUS_DRAFT` status from any other status. * An insertion order cannot be set to `ENTITY_STATUS_ACTIVE` if its parent campaign is not active.", - "enum": [ - "ENTITY_STATUS_UNSPECIFIED", - "ENTITY_STATUS_ACTIVE", - "ENTITY_STATUS_ARCHIVED", - "ENTITY_STATUS_DRAFT", - "ENTITY_STATUS_PAUSED", - "ENTITY_STATUS_SCHEDULED_FOR_DELETION" - ], - "enumDescriptions": [ - "Default value when status is not specified or is unknown in this version.", - "The entity is enabled to bid and spend budget.", - "The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", - "The entity is under draft. Bidding and budget spending are disabled.", - "Bidding and budget spending are paused for the entity.", - "The entity is scheduled for deletion." - ], - "type": "string" - }, - "frequencyCap": { - "$ref": "FrequencyCap", - "description": "Required. The frequency capping setting of the insertion order." - }, - "insertionOrderId": { - "description": "Output only. The unique ID of the insertion order. Assigned by the system.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "insertionOrderType": { - "description": "The type of insertion order. If this field is unspecified in creation, the value defaults to `RTB`.", - "enum": [ - "INSERTION_ORDER_TYPE_UNSPECIFIED", - "RTB", - "OVER_THE_TOP" - ], - "enumDescriptions": [ - "Insertion order type is not specified or is unknown.", - "Real-time bidding.", - "Over-the-top." - ], - "type": "string" - }, - "integrationDetails": { - "$ref": "IntegrationDetails", - "description": "Additional integration details of the insertion order." - }, - "name": { - "description": "Output only. The resource name of the insertion order.", - "readOnly": true, - "type": "string" - }, - "pacing": { - "$ref": "Pacing", - "description": "Required. The budget spending speed setting of the insertion order." - }, - "partnerCosts": { - "description": "The partner costs associated with the insertion order. If absent or empty in CreateInsertionOrder method, the newly created insertion order will inherit partner costs from the partner settings.", - "items": { - "$ref": "PartnerCost" - }, - "type": "array" - }, - "performanceGoal": { - "$ref": "PerformanceGoal", - "description": "Required. Performance goal of the insertion order." - }, - "reservationType": { - "description": "Output only. The reservation type of the insertion order.", - "enum": [ - "RESERVATION_TYPE_UNSPECIFIED", - "RESERVATION_TYPE_NOT_GUARANTEED", - "RESERVATION_TYPE_PROGRAMMATIC_GUARANTEED", - "RESERVATION_TYPE_TAG_GUARANTEED" - ], - "enumDescriptions": [ - "Reservation type value is not specified or is unknown in this version.", - "Not created through a guaranteed inventory source.", - "Created through a programmatic guaranteed inventory source.", - "Created through a tag guaranteed inventory source." - ], - "readOnly": true, - "type": "string" - }, - "updateTime": { - "description": "Output only. The timestamp when the insertion order was last updated. Assigned by the system.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "InsertionOrderBudget": { - "description": "Settings that control how insertion order budget is allocated.", - "id": "InsertionOrderBudget", - "properties": { - "automationType": { - "description": "The type of automation used to manage bid and budget for the insertion order. If this field is unspecified in creation, the value defaults to `INSERTION_ORDER_AUTOMATION_TYPE_NONE`.", - "enum": [ - "INSERTION_ORDER_AUTOMATION_TYPE_UNSPECIFIED", - "INSERTION_ORDER_AUTOMATION_TYPE_BUDGET", - "INSERTION_ORDER_AUTOMATION_TYPE_NONE", - "INSERTION_ORDER_AUTOMATION_TYPE_BID_BUDGET" - ], - "enumDescriptions": [ - "Insertion order automation option is not specified or is unknown in this version.", - "Automatic budget allocation. Allow the system to automatically shift budget to owning line items to optimize performance defined by kpi. No automation on bid settings.", - "No automation of bid or budget on insertion order level. Bid and budget must be manually configured at the line item level.", - "Allow the system to automatically adjust bids and shift budget to owning line items to optimize performance defined by kpi." - ], - "type": "string" - }, - "budgetSegments": { - "description": "Required. The list of budget segments. Use a budget segment to specify a specific budget for a given period of time an insertion order is running.", - "items": { - "$ref": "InsertionOrderBudgetSegment" - }, - "type": "array" - }, - "budgetUnit": { - "description": "Required. Immutable. The budget unit specifies whether the budget is currency based or impression based.", - "enum": [ - "BUDGET_UNIT_UNSPECIFIED", - "BUDGET_UNIT_CURRENCY", - "BUDGET_UNIT_IMPRESSIONS" - ], - "enumDescriptions": [ - "Type value is not specified or is unknown in this version.", - "Budgeting in currency amounts.", - "Budgeting in impression amounts." - ], - "type": "string" - } - }, - "type": "object" - }, - "InsertionOrderBudgetSegment": { - "description": "Settings that control the budget of a single budget segment.", - "id": "InsertionOrderBudgetSegment", - "properties": { - "budgetAmountMicros": { - "description": "Required. The budget amount the insertion order will spend for the given date_range. The amount is in micros. Must be greater than 0. For example, 500000000 represents 500 standard units of the currency.", - "format": "int64", - "type": "string" - }, - "campaignBudgetId": { - "description": "The budget_id of the campaign budget that this insertion order budget segment is a part of.", - "format": "int64", - "type": "string" - }, - "dateRange": { - "$ref": "DateRange", - "description": "Required. The start and end date settings of the budget segment. They are resolved relative to the parent advertiser's time zone. * When creating a new budget segment, both `start_date` and `end_date` must be in the future. * An existing budget segment with a `start_date` in the past has a mutable `end_date` but an immutable `start_date`. * `end_date` must be the `start_date` or later, both before the year 2037." - }, - "description": { - "description": "The budget segment description. It can be used to enter Purchase Order information for each budget segment and have that information printed on the invoices. Must be UTF-8 encoded.", - "type": "string" - } - }, - "type": "object" - }, - "IntegralAdScience": { - "description": "Details of Integral Ad Science settings.", - "id": "IntegralAdScience", - "properties": { - "customSegmentId": { - "description": "The custom segment ID provided by Integral Ad Science. The ID must be between `1000001` and `1999999`, inclusive.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "displayViewability": { - "description": "Display Viewability section (applicable to display line items only).", - "enum": [ - "PERFORMANCE_VIEWABILITY_UNSPECIFIED", - "PERFORMANCE_VIEWABILITY_40", - "PERFORMANCE_VIEWABILITY_50", - "PERFORMANCE_VIEWABILITY_60", - "PERFORMANCE_VIEWABILITY_70" - ], - "enumDescriptions": [ - "This enum is only a placeholder and it doesn't specify any display viewability options.", - "Target 40% Viewability or Higher.", - "Target 50% Viewability or Higher.", - "Target 60% Viewability or Higher.", - "Target 70% Viewability or Higher." - ], - "type": "string" - }, - "excludeUnrateable": { - "description": "Brand Safety - **Unrateable**.", - "type": "boolean" - }, - "excludedAdFraudRisk": { - "description": "Ad Fraud settings.", - "enum": [ - "SUSPICIOUS_ACTIVITY_UNSPECIFIED", - "SUSPICIOUS_ACTIVITY_HR", - "SUSPICIOUS_ACTIVITY_HMR" - ], - "enumDescriptions": [ - "This enum is only a placeholder and it doesn't specify any ad fraud prevention options.", - "Ad Fraud - Exclude High Risk.", - "Ad Fraud - Exclude High and Moderate Risk." - ], - "type": "string" - }, - "excludedAdultRisk": { - "description": "Brand Safety - **Adult content**.", - "enum": [ - "ADULT_UNSPECIFIED", - "ADULT_HR", - "ADULT_HMR" - ], - "enumDescriptions": [ - "This enum is only a placeholder and it doesn't specify any adult options.", - "Adult - Exclude High Risk.", - "Adult - Exclude High and Moderate Risk." - ], - "type": "string" - }, - "excludedAlcoholRisk": { - "description": "Brand Safety - **Alcohol**.", - "enum": [ - "ALCOHOL_UNSPECIFIED", - "ALCOHOL_HR", - "ALCOHOL_HMR" - ], - "enumDescriptions": [ - "This enum is only a placeholder and it doesn't specify any alcohol options.", - "Alcohol - Exclude High Risk.", - "Alcohol - Exclude High and Moderate Risk." - ], - "type": "string" - }, - "excludedDrugsRisk": { - "description": "Brand Safety - **Drugs**.", - "enum": [ - "DRUGS_UNSPECIFIED", - "DRUGS_HR", - "DRUGS_HMR" - ], - "enumDescriptions": [ - "This enum is only a placeholder and it doesn't specify any drugs options.", - "Drugs - Exclude High Risk.", - "Drugs - Exclude High and Moderate Risk." - ], - "type": "string" - }, - "excludedGamblingRisk": { - "description": "Brand Safety - **Gambling**.", - "enum": [ - "GAMBLING_UNSPECIFIED", - "GAMBLING_HR", - "GAMBLING_HMR" - ], - "enumDescriptions": [ - "This enum is only a placeholder and it doesn't specify any gambling options.", - "Gambling - Exclude High Risk.", - "Gambling - Exclude High and Moderate Risk." - ], - "type": "string" - }, - "excludedHateSpeechRisk": { - "description": "Brand Safety - **Hate speech**.", - "enum": [ - "HATE_SPEECH_UNSPECIFIED", - "HATE_SPEECH_HR", - "HATE_SPEECH_HMR" - ], - "enumDescriptions": [ - "This enum is only a placeholder and it doesn't specify any hate speech options.", - "Hate Speech - Exclude High Risk.", - "Hate Speech - Exclude High and Moderate Risk." - ], - "type": "string" - }, - "excludedIllegalDownloadsRisk": { - "description": "Brand Safety - **Illegal downloads**.", - "enum": [ - "ILLEGAL_DOWNLOADS_UNSPECIFIED", - "ILLEGAL_DOWNLOADS_HR", - "ILLEGAL_DOWNLOADS_HMR" - ], - "enumDescriptions": [ - "This enum is only a placeholder and it doesn't specify any illegal downloads options.", - "Illegal Downloads - Exclude High Risk.", - "Illegal Downloads - Exclude High and Moderate Risk." - ], - "type": "string" - }, - "excludedOffensiveLanguageRisk": { - "description": "Brand Safety - **Offensive language**.", - "enum": [ - "OFFENSIVE_LANGUAGE_UNSPECIFIED", - "OFFENSIVE_LANGUAGE_HR", - "OFFENSIVE_LANGUAGE_HMR" - ], - "enumDescriptions": [ - "This enum is only a placeholder and it doesn't specify any language options.", - "Offensive Language - Exclude High Risk.", - "Offensive Language - Exclude High and Moderate Risk." - ], - "type": "string" - }, - "excludedViolenceRisk": { - "description": "Brand Safety - **Violence**.", - "enum": [ - "VIOLENCE_UNSPECIFIED", - "VIOLENCE_HR", - "VIOLENCE_HMR" - ], - "enumDescriptions": [ - "This enum is only a placeholder and it doesn't specify any violence options.", - "Violence - Exclude High Risk.", - "Violence - Exclude High and Moderate Risk." - ], - "type": "string" - }, - "traqScoreOption": { - "description": "True advertising quality (applicable to Display line items only).", - "enum": [ - "TRAQ_UNSPECIFIED", - "TRAQ_250", - "TRAQ_500", - "TRAQ_600", - "TRAQ_700", - "TRAQ_750", - "TRAQ_875", - "TRAQ_1000" - ], - "enumDescriptions": [ - "This enum is only a placeholder and it doesn't specify any true advertising quality scores.", - "TRAQ score 250-1000.", - "TRAQ score 500-1000.", - "TRAQ score 600-1000.", - "TRAQ score 700-1000.", - "TRAQ score 750-1000.", - "TRAQ score 875-1000.", - "TRAQ score 1000." - ], - "type": "string" - }, - "videoViewability": { - "description": "Video Viewability Section (applicable to video line items only).", - "enum": [ - "VIDEO_VIEWABILITY_UNSPECIFIED", - "VIDEO_VIEWABILITY_40", - "VIDEO_VIEWABILITY_50", - "VIDEO_VIEWABILITY_60", - "VIDEO_VIEWABILITY_70" - ], - "enumDescriptions": [ - "This enum is only a placeholder and it doesn't specify any video viewability options.", - "40%+ in view (IAB video viewability standard).", - "50%+ in view (IAB video viewability standard).", - "60%+ in view (IAB video viewability standard).", - "70%+ in view (IAB video viewability standard)." - ], - "type": "string" - } - }, - "type": "object" - }, - "IntegrationDetails": { - "description": "Integration details of an entry.", - "id": "IntegrationDetails", - "properties": { - "details": { - "description": "Additional details of the entry in string format. Must be UTF-8 encoded with a length of no more than 1000 characters.", - "type": "string" - }, - "integrationCode": { - "description": "An external identifier to be associated with the entry. The integration code will show up together with the entry in many places in the system, for example, reporting. Must be UTF-8 encoded with a length of no more than 500 characters.", - "type": "string" - } - }, - "type": "object" - }, - "InventorySource": { - "description": "An inventory source.", - "id": "InventorySource", - "properties": { - "commitment": { - "description": "Whether the inventory source has a guaranteed or non-guaranteed delivery.", - "enum": [ - "INVENTORY_SOURCE_COMMITMENT_UNSPECIFIED", - "INVENTORY_SOURCE_COMMITMENT_GUARANTEED", - "INVENTORY_SOURCE_COMMITMENT_NON_GUARANTEED" - ], - "enumDescriptions": [ - "The commitment is not specified or is unknown in this version.", - "The commitment is guaranteed delivery.", - "The commitment is non-guaranteed delivery." - ], - "type": "string" - }, - "creativeConfigs": { - "description": "The creative requirements of the inventory source. Not applicable for auction packages.", - "items": { - "$ref": "CreativeConfig" - }, - "type": "array" - }, - "dealId": { - "description": "The ID in the exchange space that uniquely identifies the inventory source. Must be unique across buyers within each exchange but not necessarily unique across exchanges.", - "type": "string" - }, - "deliveryMethod": { - "description": "The delivery method of the inventory source. * For non-guaranteed inventory sources, the only acceptable value is `INVENTORY_SOURCE_DELIVERY_METHOD_PROGRAMMATIC`. * For guaranteed inventory sources, acceptable values are `INVENTORY_SOURCE_DELIVERY_METHOD_TAG` and `INVENTORY_SOURCE_DELIVERY_METHOD_PROGRAMMATIC`.", - "enum": [ - "INVENTORY_SOURCE_DELIVERY_METHOD_UNSPECIFIED", - "INVENTORY_SOURCE_DELIVERY_METHOD_PROGRAMMATIC", - "INVENTORY_SOURCE_DELIVERY_METHOD_TAG" - ], - "enumDescriptions": [ - "The delivery method is not specified or is unknown in this version.", - "The delivery method is programmatic.", - "The delivery method is tag." - ], - "type": "string" - }, - "displayName": { - "description": "The display name of the inventory source. Must be UTF-8 encoded with a maximum size of 240 bytes.", - "type": "string" - }, - "exchange": { - "description": "The exchange to which the inventory source belongs.", - "enum": [ - "EXCHANGE_UNSPECIFIED", - "EXCHANGE_GOOGLE_AD_MANAGER", - "EXCHANGE_APPNEXUS", - "EXCHANGE_BRIGHTROLL", - "EXCHANGE_ADFORM", - "EXCHANGE_ADMETA", - "EXCHANGE_ADMIXER", - "EXCHANGE_ADSMOGO", - "EXCHANGE_ADSWIZZ", - "EXCHANGE_BIDSWITCH", - "EXCHANGE_BRIGHTROLL_DISPLAY", - "EXCHANGE_CADREON", - "EXCHANGE_DAILYMOTION", - "EXCHANGE_FIVE", - "EXCHANGE_FLUCT", - "EXCHANGE_FREEWHEEL", - "EXCHANGE_GENIEE", - "EXCHANGE_GUMGUM", - "EXCHANGE_IMOBILE", - "EXCHANGE_IBILLBOARD", - "EXCHANGE_IMPROVE_DIGITAL", - "EXCHANGE_INDEX", - "EXCHANGE_KARGO", - "EXCHANGE_MICROAD", - "EXCHANGE_MOPUB", - "EXCHANGE_NEND", - "EXCHANGE_ONE_BY_AOL_DISPLAY", - "EXCHANGE_ONE_BY_AOL_MOBILE", - "EXCHANGE_ONE_BY_AOL_VIDEO", - "EXCHANGE_OOYALA", - "EXCHANGE_OPENX", - "EXCHANGE_PERMODO", - "EXCHANGE_PLATFORMONE", - "EXCHANGE_PLATFORMID", - "EXCHANGE_PUBMATIC", - "EXCHANGE_PULSEPOINT", - "EXCHANGE_REVENUEMAX", - "EXCHANGE_RUBICON", - "EXCHANGE_SMARTCLIP", - "EXCHANGE_SMARTRTB", - "EXCHANGE_SMARTSTREAMTV", - "EXCHANGE_SOVRN", - "EXCHANGE_SPOTXCHANGE", - "EXCHANGE_STROER", - "EXCHANGE_TEADSTV", - "EXCHANGE_TELARIA", - "EXCHANGE_TVN", - "EXCHANGE_UNITED", - "EXCHANGE_YIELDLAB", - "EXCHANGE_YIELDMO", - "EXCHANGE_UNRULYX", - "EXCHANGE_OPEN8", - "EXCHANGE_TRITON", - "EXCHANGE_TRIPLELIFT", - "EXCHANGE_TABOOLA", - "EXCHANGE_INMOBI", - "EXCHANGE_SMAATO", - "EXCHANGE_AJA", - "EXCHANGE_SUPERSHIP", - "EXCHANGE_NEXSTAR_DIGITAL", - "EXCHANGE_WAZE", - "EXCHANGE_SOUNDCAST", - "EXCHANGE_SHARETHROUGH", - "EXCHANGE_FYBER", - "EXCHANGE_RED_FOR_PUBLISHERS", - "EXCHANGE_MEDIANET", - "EXCHANGE_TAPJOY", - "EXCHANGE_VISTAR", - "EXCHANGE_DAX", - "EXCHANGE_JCD", - "EXCHANGE_PLACE_EXCHANGE", - "EXCHANGE_APPLOVIN", - "EXCHANGE_CONNATIX", - "EXCHANGE_RESET_DIGITAL", - "EXCHANGE_HIVESTACK" - ], - "enumDescriptions": [ - "Exchange is not specified or is unknown in this version.", - "Google Ad Manager.", - "AppNexus.", - "BrightRoll Exchange for Video from Yahoo!.", - "Adform.", - "Admeta.", - "Admixer.", - "AdsMogo.", - "AdsWizz.", - "BidSwitch.", - "BrightRoll Exchange for Display from Yahoo!.", - "Cadreon.", - "Dailymotion.", - "Five.", - "Fluct.", - "FreeWheel SSP.", - "Geniee.", - "GumGum.", - "i-mobile.", - "iBILLBOARD.", - "Improve Digital.", - "Index Exchange.", - "Kargo.", - "MicroAd.", - "MoPub.", - "Nend.", - "ONE by AOL: Display Market Place.", - "ONE by AOL: Mobile.", - "ONE by AOL: Video.", - "Ooyala.", - "OpenX.", - "Permodo.", - "Platform One.", - "PlatformId.", - "PubMatic.", - "PulsePoint.", - "RevenueMax.", - "Rubicon.", - "SmartClip.", - "SmartRTB+.", - "SmartstreamTv.", - "Sovrn.", - "SpotXchange.", - "Ströer SSP.", - "TeadsTv.", - "Telaria.", - "TVN.", - "United.", - "Yieldlab.", - "Yieldmo.", - "UnrulyX.", - "Open8.", - "Triton.", - "TripleLift.", - "Taboola.", - "InMobi.", - "Smaato.", - "Aja.", - "Supership.", - "Nexstar Digital.", - "Waze.", - "SoundCast.", - "Sharethrough.", - "Fyber.", - "Red For Publishers.", - "Media.net.", - "Tapjoy.", - "Vistar.", - "DAX.", - "JCD.", - "Place Exchange.", - "AppLovin.", - "Connatix.", - "Reset Digital.", - "Hivestack." - ], - "type": "string" - }, - "guaranteedOrderId": { - "description": "Immutable. The ID of the guaranteed order that this inventory source belongs to. Only applicable when commitment is `INVENTORY_SOURCE_COMMITMENT_GUARANTEED`.", - "type": "string" - }, - "inventorySourceId": { - "description": "Output only. The unique ID of the inventory source. Assigned by the system.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "inventorySourceProductType": { - "description": "Output only. The product type of the inventory source, denoting the way through which it sells inventory.", - "enum": [ - "INVENTORY_SOURCE_PRODUCT_TYPE_UNSPECIFIED", - "PREFERRED_DEAL", - "PRIVATE_AUCTION", - "PROGRAMMATIC_GUARANTEED", - "TAG_GUARANTEED", - "YOUTUBE_RESERVE", - "INSTANT_RESERVE", - "GUARANTEED_PACKAGE", - "PROGRAMMATIC_TV", - "AUCTION_PACKAGE" - ], - "enumDescriptions": [ - "The product type is not specified or is unknown in this version. Modifying inventory sources of this product type are not supported via API.", - "The inventory source sells inventory through Preferred Deal.", - "The inventory source sells inventory through Private Auction.", - "The inventory source sells inventory through Programmatic Guaranteed.", - "The inventory source sells inventory through Tag Guaranteed.", - "The inventory source sells inventory through YouTube Reserve.", - "The inventory source sells inventory through Instant Reserve. Modifying inventory sources of this product type are not supported via API.", - "The inventory source sells inventory through Guaranteed Package. Modifying inventory sources of this product type are not supported via API.", - "The inventory source sells inventory through Programmtic TV. Modifying inventory sources of this product type are not supported via API.", - "The inventory source sells inventory through Auction Package. Modifying inventory sources of this product type are not supported via API." - ], - "readOnly": true, - "type": "string" - }, - "inventorySourceType": { - "description": "Denotes the type of the inventory source.", - "enum": [ - "INVENTORY_SOURCE_TYPE_UNSPECIFIED", - "INVENTORY_SOURCE_TYPE_PRIVATE", - "INVENTORY_SOURCE_TYPE_AUCTION_PACKAGE" - ], - "enumDescriptions": [ - "The inventory source type is not specified or is unknown in this version.", - "Private inventory source.", - "Auction package." - ], - "type": "string" - }, - "name": { - "description": "Output only. The resource name of the inventory source.", - "readOnly": true, - "type": "string" - }, - "publisherName": { - "description": "The publisher/seller name of the inventory source.", - "type": "string" - }, - "rateDetails": { - "$ref": "RateDetails", - "description": "Required. The rate details of the inventory source." - }, - "readAdvertiserIds": { - "description": "Output only. The IDs of advertisers with read-only access to the inventory source.", - "items": { - "format": "int64", - "type": "string" - }, - "readOnly": true, - "type": "array" - }, - "readPartnerIds": { - "description": "Output only. The IDs of partners with read-only access to the inventory source. All advertisers of partners in this field inherit read-only access to the inventory source.", - "items": { - "format": "int64", - "type": "string" - }, - "readOnly": true, - "type": "array" - }, - "readWriteAccessors": { - "$ref": "InventorySourceAccessors", - "description": "The partner or advertisers that have read/write access to the inventory source. Output only when commitment is `INVENTORY_SOURCE_COMMITMENT_GUARANTEED`, in which case the read/write accessors are inherited from the parent guaranteed order. Required when commitment is `INVENTORY_SOURCE_COMMITMENT_NON_GUARANTEED`. If commitment is `INVENTORY_SOURCE_COMMITMENT_NON_GUARANTEED` and a partner is set in this field, all advertisers under this partner will automatically have read-only access to the inventory source. These advertisers will not be included in read_advertiser_ids." - }, - "status": { - "$ref": "InventorySourceStatus", - "description": "The status settings of the inventory source." - }, - "timeRange": { - "$ref": "TimeRange", - "description": "The time range when this inventory source starts and stops serving." - }, - "updateTime": { - "description": "Output only. The timestamp when the inventory source was last updated. Assigned by the system.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "InventorySourceAccessors": { - "description": "The partner or advertisers with access to the inventory source.", - "id": "InventorySourceAccessors", - "properties": { - "advertisers": { - "$ref": "InventorySourceAccessorsAdvertiserAccessors", - "description": "The advertisers with access to the inventory source. All advertisers must belong to the same partner." - }, - "partner": { - "$ref": "InventorySourceAccessorsPartnerAccessor", - "description": "The partner with access to the inventory source." - } - }, - "type": "object" - }, - "InventorySourceAccessorsAdvertiserAccessors": { - "description": "The advertisers with access to the inventory source.", - "id": "InventorySourceAccessorsAdvertiserAccessors", - "properties": { - "advertiserIds": { - "description": "The IDs of the advertisers.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "InventorySourceAccessorsPartnerAccessor": { - "description": "The partner with access to the inventory source.", - "id": "InventorySourceAccessorsPartnerAccessor", - "properties": { - "partnerId": { - "description": "The ID of the partner.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "InventorySourceAssignedTargetingOptionDetails": { - "description": "Targeting details for inventory source. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_INVENTORY_SOURCE`.", - "id": "InventorySourceAssignedTargetingOptionDetails", - "properties": { - "inventorySourceId": { - "description": "Required. ID of the inventory source. Should refer to the inventory_source_id field of an InventorySource resource.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "InventorySourceDisplayCreativeConfig": { - "description": "The configuration for display creatives.", - "id": "InventorySourceDisplayCreativeConfig", - "properties": { - "creativeSize": { - "$ref": "Dimensions", - "description": "The size requirements for display creatives that can be assigned to the inventory source." - } - }, - "type": "object" - }, - "InventorySourceFilter": { - "description": "A filtering option for filtering on Inventory Source entities.", - "id": "InventorySourceFilter", - "properties": { - "inventorySourceIds": { - "description": "Inventory Sources to download by ID. All IDs must belong to the same Advertiser or Partner specified in CreateSdfDownloadTaskRequest. Leave empty to download all Inventory Sources for the selected Advertiser or Partner.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "InventorySourceGroup": { - "description": "A collection of targetable inventory sources.", - "id": "InventorySourceGroup", - "properties": { - "displayName": { - "description": "Required. The display name of the inventory source group. Must be UTF-8 encoded with a maximum size of 240 bytes.", - "type": "string" - }, - "inventorySourceGroupId": { - "description": "Output only. The unique ID of the inventory source group. Assigned by the system.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "name": { - "description": "Output only. The resource name of the inventory source group.", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "InventorySourceGroupAssignedTargetingOptionDetails": { - "description": "Targeting details for inventory source group. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_INVENTORY_SOURCE_GROUP`.", - "id": "InventorySourceGroupAssignedTargetingOptionDetails", - "properties": { - "inventorySourceGroupId": { - "description": "Required. ID of the inventory source group. Should refer to the inventory_source_group_id field of an InventorySourceGroup resource.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "InventorySourceStatus": { - "description": "The status related settings of the inventory source.", - "id": "InventorySourceStatus", - "properties": { - "configStatus": { - "description": "Output only. The configuration status of the inventory source. Only applicable for guaranteed inventory sources. Acceptable values are `INVENTORY_SOURCE_CONFIG_STATUS_PENDING` and `INVENTORY_SOURCE_CONFIG_STATUS_COMPLETED`. An inventory source must be configured (fill in the required fields, choose creatives, and select a default campaign) before it can serve.", - "enum": [ - "INVENTORY_SOURCE_CONFIG_STATUS_UNSPECIFIED", - "INVENTORY_SOURCE_CONFIG_STATUS_PENDING", - "INVENTORY_SOURCE_CONFIG_STATUS_COMPLETED" - ], - "enumDescriptions": [ - "The approval status is not specified or is unknown in this version.", - "The beginning state of a guaranteed inventory source. The inventory source in this state needs to be configured.", - "The state after the buyer configures a guaranteed inventory source." - ], - "readOnly": true, - "type": "string" - }, - "entityPauseReason": { - "description": "The user-provided reason for pausing this inventory source. Must not exceed 100 characters. Only applicable when entity_status is set to `ENTITY_STATUS_PAUSED`.", - "type": "string" - }, - "entityStatus": { - "description": "Whether or not the inventory source is servable. Acceptable values are `ENTITY_STATUS_ACTIVE`, `ENTITY_STATUS_ARCHIVED`, and `ENTITY_STATUS_PAUSED`. Default value is `ENTITY_STATUS_ACTIVE`.", - "enum": [ - "ENTITY_STATUS_UNSPECIFIED", - "ENTITY_STATUS_ACTIVE", - "ENTITY_STATUS_ARCHIVED", - "ENTITY_STATUS_DRAFT", - "ENTITY_STATUS_PAUSED", - "ENTITY_STATUS_SCHEDULED_FOR_DELETION" - ], - "enumDescriptions": [ - "Default value when status is not specified or is unknown in this version.", - "The entity is enabled to bid and spend budget.", - "The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", - "The entity is under draft. Bidding and budget spending are disabled.", - "Bidding and budget spending are paused for the entity.", - "The entity is scheduled for deletion." - ], - "type": "string" - }, - "sellerPauseReason": { - "description": "Output only. The seller-provided reason for pausing this inventory source. Only applicable for inventory sources synced directly from the publishers and when seller_status is set to `ENTITY_STATUS_PAUSED`.", - "readOnly": true, - "type": "string" - }, - "sellerStatus": { - "description": "Output only. The status set by the seller for the inventory source. Only applicable for inventory sources synced directly from the publishers. Acceptable values are `ENTITY_STATUS_ACTIVE` and `ENTITY_STATUS_PAUSED`.", - "enum": [ - "ENTITY_STATUS_UNSPECIFIED", - "ENTITY_STATUS_ACTIVE", - "ENTITY_STATUS_ARCHIVED", - "ENTITY_STATUS_DRAFT", - "ENTITY_STATUS_PAUSED", - "ENTITY_STATUS_SCHEDULED_FOR_DELETION" - ], - "enumDescriptions": [ - "Default value when status is not specified or is unknown in this version.", - "The entity is enabled to bid and spend budget.", - "The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", - "The entity is under draft. Bidding and budget spending are disabled.", - "Bidding and budget spending are paused for the entity.", - "The entity is scheduled for deletion." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "InventorySourceVideoCreativeConfig": { - "description": "The configuration for video creatives.", - "id": "InventorySourceVideoCreativeConfig", - "properties": { - "duration": { - "description": "The duration requirements for the video creatives that can be assigned to the inventory source.", - "format": "google-duration", - "type": "string" - } - }, - "type": "object" - }, - "Invoice": { - "description": "A single invoice.", - "id": "Invoice", - "properties": { - "budgetInvoiceGroupingId": { - "description": "The budget grouping ID for this invoice. This field will only be set if the invoice level of the corresponding billing profile was set to \"Budget invoice grouping ID\".", - "type": "string" - }, - "budgetSummaries": { - "description": "The list of summarized information for each budget associated with this invoice. This field will only be set if the invoice detail level of the corresponding billing profile was set to \"Budget level PO\".", - "items": { - "$ref": "BudgetSummary" - }, - "type": "array" - }, - "correctedInvoiceId": { - "description": "The ID of the original invoice being adjusted by this invoice, if applicable. May appear on the invoice PDF as `Reference invoice number`. If replaced_invoice_ids is set, this field will be empty.", - "type": "string" - }, - "currencyCode": { - "description": "The currency used in the invoice in ISO 4217 format.", - "type": "string" - }, - "displayName": { - "description": "The display name of the invoice.", - "type": "string" - }, - "dueDate": { - "$ref": "Date", - "description": "The date when the invoice is due." - }, - "invoiceId": { - "description": "The unique ID of the invoice.", - "type": "string" - }, - "invoiceType": { - "description": "The type of invoice document.", - "enum": [ - "INVOICE_TYPE_UNSPECIFIED", - "INVOICE_TYPE_CREDIT", - "INVOICE_TYPE_INVOICE" - ], - "enumDescriptions": [ - "Not specified or is unknown in this version.", - "The invoice has a negative amount.", - "The invoice has a positive amount." - ], - "type": "string" - }, - "issueDate": { - "$ref": "Date", - "description": "The date when the invoice was issued." - }, - "name": { - "description": "The resource name of the invoice.", - "type": "string" - }, - "nonBudgetMicros": { - "description": "The total amount of costs or adjustments not tied to a particular budget, in micros of the invoice's currency. For example, if currency_code is `USD`, then 1000000 represents one US dollar.", - "format": "int64", - "type": "string" - }, - "paymentsAccountId": { - "description": "The ID of the payments account the invoice belongs to. Appears on the invoice PDF as `Billing Account Number`.", - "type": "string" - }, - "paymentsProfileId": { - "description": "The ID of the payments profile the invoice belongs to. Appears on the invoice PDF as `Billing ID`.", - "type": "string" - }, - "pdfUrl": { - "description": "The URL to download a PDF copy of the invoice. This URL is user specific and requires a valid OAuth 2.0 access token to access. The access token must be provided in an `Authorization: Bearer` HTTP header and be authorized for one of the following scopes: * `https://www.googleapis.com/auth/display-video-mediaplanning` * `https://www.googleapis.com/auth/display-video` The URL will be valid for 7 days after retrieval of this invoice object or until this invoice is retrieved again.", - "type": "string" - }, - "purchaseOrderNumber": { - "description": "Purchase order number associated with the invoice.", - "type": "string" - }, - "replacedInvoiceIds": { - "description": "The ID(s) of any originally issued invoice that is being cancelled by this invoice, if applicable. Multiple invoices may be listed if those invoices are being consolidated into a single invoice. May appear on invoice PDF as `Replaced invoice numbers`. If corrected_invoice_id is set, this field will be empty.", - "items": { - "type": "string" - }, - "type": "array" - }, - "serviceDateRange": { - "$ref": "DateRange", - "description": "The service start and end dates which are covered by this invoice." - }, - "subtotalAmountMicros": { - "description": "The pre-tax subtotal amount, in micros of the invoice's currency. For example, if currency_code is `USD`, then 1000000 represents one US dollar.", - "format": "int64", - "type": "string" - }, - "totalAmountMicros": { - "description": "The invoice total amount, in micros of the invoice's currency. For example, if currency_code is `USD`, then 1000000 represents one US dollar.", - "format": "int64", - "type": "string" - }, - "totalTaxAmountMicros": { - "description": "The sum of all taxes in invoice, in micros of the invoice's currency. For example, if currency_code is `USD`, then 1000000 represents one US dollar.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "KeywordAssignedTargetingOptionDetails": { - "description": "Details for assigned keyword targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_KEYWORD`.", - "id": "KeywordAssignedTargetingOptionDetails", - "properties": { - "keyword": { - "description": "Required. The keyword, for example `car insurance`. Positive keyword cannot be offensive word. Must be UTF-8 encoded with a maximum size of 255 bytes. Maximum number of characters is 80. Maximum number of words is 10.", - "type": "string" - }, - "negative": { - "description": "Indicates if this option is being negatively targeted.", - "type": "boolean" - } - }, - "type": "object" - }, - "LanguageAssignedTargetingOptionDetails": { - "description": "Details for assigned language targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_LANGUAGE`.", - "id": "LanguageAssignedTargetingOptionDetails", - "properties": { - "displayName": { - "description": "Output only. The display name of the language (e.g., \"French\").", - "readOnly": true, - "type": "string" - }, - "negative": { - "description": "Indicates if this option is being negatively targeted. All assigned language targeting options on the same resource must have the same value for this field.", - "type": "boolean" - }, - "targetingOptionId": { - "description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_LANGUAGE`.", - "type": "string" - } - }, - "type": "object" - }, - "LanguageTargetingOptionDetails": { - "description": "Represents a targetable language. This will be populated in the language_details field when targeting_type is `TARGETING_TYPE_LANGUAGE`.", - "id": "LanguageTargetingOptionDetails", - "properties": { - "displayName": { - "description": "Output only. The display name of the language (e.g., \"French\").", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "LineItem": { - "description": "A single line item.", - "id": "LineItem", - "properties": { - "advertiserId": { - "description": "Output only. The unique ID of the advertiser the line item belongs to.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "bidStrategy": { - "$ref": "BiddingStrategy", - "description": "Required. The bidding strategy of the line item." - }, - "budget": { - "$ref": "LineItemBudget", - "description": "Required. The budget allocation setting of the line item." - }, - "campaignId": { - "description": "Output only. The unique ID of the campaign that the line item belongs to.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "conversionCounting": { - "$ref": "ConversionCountingConfig", - "description": "The conversion tracking setting of the line item." - }, - "creativeIds": { - "description": "The IDs of the creatives associated with the line item.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "displayName": { - "description": "Required. The display name of the line item. Must be UTF-8 encoded with a maximum size of 240 bytes.", - "type": "string" - }, - "entityStatus": { - "description": "Required. Controls whether or not the line item can spend its budget and bid on inventory. * For CreateLineItem method, only `ENTITY_STATUS_DRAFT` is allowed. To activate a line item, use UpdateLineItem method and update the status to `ENTITY_STATUS_ACTIVE` after creation. * A line item cannot be changed back to `ENTITY_STATUS_DRAFT` status from any other status. * If the line item's parent insertion order is not active, the line item can't spend its budget even if its own status is `ENTITY_STATUS_ACTIVE`.", - "enum": [ - "ENTITY_STATUS_UNSPECIFIED", - "ENTITY_STATUS_ACTIVE", - "ENTITY_STATUS_ARCHIVED", - "ENTITY_STATUS_DRAFT", - "ENTITY_STATUS_PAUSED", - "ENTITY_STATUS_SCHEDULED_FOR_DELETION" - ], - "enumDescriptions": [ - "Default value when status is not specified or is unknown in this version.", - "The entity is enabled to bid and spend budget.", - "The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", - "The entity is under draft. Bidding and budget spending are disabled.", - "Bidding and budget spending are paused for the entity.", - "The entity is scheduled for deletion." - ], - "type": "string" - }, - "excludeNewExchanges": { - "description": "Whether to exclude new exchanges from automatically being targeted by the line item. This field is false by default.", - "type": "boolean" - }, - "flight": { - "$ref": "LineItemFlight", - "description": "Required. The start and end time of the line item's flight." - }, - "frequencyCap": { - "$ref": "FrequencyCap", - "description": "Required. The impression frequency cap settings of the line item. The max_impressions field in this settings object must be used if assigning a limited cap." - }, - "insertionOrderId": { - "description": "Required. Immutable. The unique ID of the insertion order that the line item belongs to.", - "format": "int64", - "type": "string" - }, - "integrationDetails": { - "$ref": "IntegrationDetails", - "description": "Integration details of the line item." - }, - "inventorySourceIds": { - "description": "The IDs of the private inventory sources assigned to the line item.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "lineItemId": { - "description": "Output only. The unique ID of the line item. Assigned by the system.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "lineItemType": { - "description": "Required. Immutable. The type of the line item.", - "enum": [ - "LINE_ITEM_TYPE_UNSPECIFIED", - "LINE_ITEM_TYPE_DISPLAY_DEFAULT", - "LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INSTALL", - "LINE_ITEM_TYPE_VIDEO_DEFAULT", - "LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INSTALL", - "LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INVENTORY", - "LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INVENTORY", - "LINE_ITEM_TYPE_AUDIO_DEFAULT", - "LINE_ITEM_TYPE_VIDEO_OVER_THE_TOP", - "LINE_ITEM_TYPE_DISPLAY_OUT_OF_HOME", - "LINE_ITEM_TYPE_VIDEO_OUT_OF_HOME" - ], - "enumDescriptions": [ - "Type value is not specified or is unknown in this version. Line items of this type and their targeting cannot be created or updated using the API.", - "Image, HTML5, native, or rich media ads.", - "Display ads that drive installs of an app.", - "Video ads sold on a CPM basis for a variety of environments.", - "Video ads that drive installs of an app.", - "Display ads served on mobile app inventory. Line items of this type and their targeting cannot be created or updated using the API.", - "Video ads served on mobile app inventory. Line items of this type and their targeting cannot be created or updated using the API.", - "RTB Audio ads sold for a variety of environments.", - "Over-the-top ads present in OTT insertion orders. This type is only applicable to line items with an insertion order of insertion_order_type `OVER_THE_TOP`.", - "Display ads served on digital-out-of-home inventory. Line items of this type and their targeting cannot be created or updated using the API.", - "Video ads served on digital-out-of-home inventory. Line items of this type and their targeting cannot be created or updated using the API." - ], - "type": "string" - }, - "mobileApp": { - "$ref": "MobileApp", - "description": "The mobile app promoted by the line item. This is applicable only when line_item_type is either `LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INSTALL` or `LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INSTALL`." - }, - "name": { - "description": "Output only. The resource name of the line item.", - "readOnly": true, - "type": "string" - }, - "pacing": { - "$ref": "Pacing", - "description": "Required. The budget spending speed setting of the line item." - }, - "partnerCosts": { - "description": "The partner costs associated with the line item. If absent or empty in CreateLineItem method, the newly created line item will inherit partner costs from its parent insertion order.", - "items": { - "$ref": "PartnerCost" - }, - "type": "array" - }, - "partnerRevenueModel": { - "$ref": "PartnerRevenueModel", - "description": "Required. The partner revenue model setting of the line item." - }, - "reservationType": { - "description": "Output only. The reservation type of the line item.", - "enum": [ - "RESERVATION_TYPE_UNSPECIFIED", - "RESERVATION_TYPE_NOT_GUARANTEED", - "RESERVATION_TYPE_PROGRAMMATIC_GUARANTEED", - "RESERVATION_TYPE_TAG_GUARANTEED" - ], - "enumDescriptions": [ - "Reservation type value is not specified or is unknown in this version.", - "Not created through a guaranteed inventory source.", - "Created through a programmatic guaranteed inventory source.", - "Created through a tag guaranteed inventory source." - ], - "readOnly": true, - "type": "string" - }, - "targetingExpansion": { - "$ref": "TargetingExpansionConfig", - "description": "The [optimized targeting](//support.google.com/displayvideo/answer/12060859) settings of the line item. This config is only applicable for display, video, or audio line items that use automated bidding and positively target eligible audience lists." - }, - "updateTime": { - "description": "Output only. The timestamp when the line item was last updated. Assigned by the system.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "warningMessages": { - "description": "Output only. The warning messages generated by the line item. These warnings do not block saving the line item, but some may block the line item from running.", - "items": { - "enum": [ - "LINE_ITEM_WARNING_MESSAGE_UNSPECIFIED", - "INVALID_FLIGHT_DATES", - "EXPIRED", - "PENDING_FLIGHT", - "ALL_PARTNER_ENABLED_EXCHANGES_NEGATIVELY_TARGETED", - "INVALID_INVENTORY_SOURCE", - "APP_INVENTORY_INVALID_SITE_TARGETING", - "APP_INVENTORY_INVALID_AUDIENCE_LISTS", - "NO_VALID_CREATIVE", - "PARENT_INSERTION_ORDER_PAUSED", - "PARENT_INSERTION_ORDER_EXPIRED", - "NO_POSITIVE_AUDIENCE_LIST_TARGETED", - "APP_INSTALL_NO_CONVERSION_PIXEL", - "TARGETING_REVOKED_OR_CLOSED_USER_LIST", - "APP_INSTALL_NO_OPTIMAL_BIDDING_STRATEGY", - "CREATIVE_SIZE_NOT_IN_USE_FOR_TARGETED_DEALS", - "NO_CREATIVE_FOR_TARGETED_DEALS", - "TARGETING_DEPRECATED_GEO_TARGET", - "DEPRECATED_FIRST_PARTY_AUDIENCE_EXCLUSION" - ], - "enumDescriptions": [ - "Not specified or is unknown.", - "This line item has invalid flight dates. The line item will not run.", - "This line item's end date is in the past.", - "This line item will begin running in the future.", - "All partner enabled exchanges are negatively targeted. The line item will not run.", - "No active inventory sources are being targeted. The line item will not run.", - "This line item's Apps & URLs targeting doesn't include any mobile apps. This line item's type requires you to include mobile apps in your channel, sitelist, or apps targeting. The line item will not run.", - "This line item isn't targeting any mobile users. This line item's type requires you to target a user list with mobile users. The line item will not run.", - "This line item does not contain any valid creative. The line item will not run.", - "The insertion order of this line item is paused. The line item will not run.", - "The insertion order of this line item has its end date set in the past. The line item will not run.", - "This line item does not target any audience lists, which may result in spending your budget too quickly.", - "This app install line item does not have any conversion pixel set up.", - "This line item targets one or more user lists that are no longer available. In the future, this will prevent the line item from serving, so consider removing these lists from your targeting.", - "This app install line item does not have an optimal bidding strategy.", - "Deals targeted by this line item accept creative sizes which are not in use. This may limit the line item's delivery or performance.", - "This line item does not contain any creative for the targeted deals.", - "This line item targets a geo target that is deprecated.", - "This line item uses the exclude_first_party_audience setting, which is deprecated and scheduled to sunset after **March 25, 2023**. Update your API integration to directly exclude any first-party audiences using audience targeting before **March 25, 2023** to account for the sunset of the exclude_first_party_audience field." - ], - "type": "string" - }, - "readOnly": true, - "type": "array" - } - }, - "type": "object" - }, - "LineItemBudget": { - "description": "Settings that control how budget is allocated.", - "id": "LineItemBudget", - "properties": { - "budgetAllocationType": { - "description": "Required. The type of the budget allocation. `LINE_ITEM_BUDGET_ALLOCATION_TYPE_AUTOMATIC` is only applicable when automatic budget allocation is enabled for the parent insertion order.", - "enum": [ - "LINE_ITEM_BUDGET_ALLOCATION_TYPE_UNSPECIFIED", - "LINE_ITEM_BUDGET_ALLOCATION_TYPE_AUTOMATIC", - "LINE_ITEM_BUDGET_ALLOCATION_TYPE_FIXED", - "LINE_ITEM_BUDGET_ALLOCATION_TYPE_UNLIMITED" - ], - "enumDescriptions": [ - "Type value is not specified or is unknown in this version.", - "Automatic budget allocation is enabled for the line item.", - "A fixed max budget amount is allocated for the line item.", - "No budget limit is applied to the line item." - ], - "type": "string" - }, - "budgetUnit": { - "description": "Output only. The budget unit specifies whether the budget is currency based or impression based. This value is inherited from the parent insertion order.", - "enum": [ - "BUDGET_UNIT_UNSPECIFIED", - "BUDGET_UNIT_CURRENCY", - "BUDGET_UNIT_IMPRESSIONS" - ], - "enumDescriptions": [ - "Type value is not specified or is unknown in this version.", - "Budgeting in currency amounts.", - "Budgeting in impression amounts." - ], - "readOnly": true, - "type": "string" - }, - "maxAmount": { - "description": "The maximum budget amount the line item will spend. Must be greater than 0. When budget_allocation_type is: * `LINE_ITEM_BUDGET_ALLOCATION_TYPE_AUTOMATIC`, this field is immutable and is set by the system. * `LINE_ITEM_BUDGET_ALLOCATION_TYPE_FIXED`, if budget_unit is: - `BUDGET_UNIT_CURRENCY`, this field represents maximum budget amount to spend, in micros of the advertiser's currency. For example, 1500000 represents 1.5 standard units of the currency. - `BUDGET_UNIT_IMPRESSIONS`, this field represents the maximum number of impressions to serve. * `LINE_ITEM_BUDGET_ALLOCATION_TYPE_UNLIMITED`, this field is not applicable and will be ignored by the system.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "LineItemFlight": { - "description": "Settings that control the active duration of a line item.", - "id": "LineItemFlight", - "properties": { - "dateRange": { - "$ref": "DateRange", - "description": "The flight start and end dates of the line item. They are resolved relative to the parent advertiser's time zone. * Required when flight_date_type is `LINE_ITEM_FLIGHT_DATE_TYPE_CUSTOM`. Output only otherwise. * When creating a new flight, both `start_date` and `end_date` must be in the future. * An existing flight with a `start_date` in the past has a mutable `end_date` but an immutable `start_date`. * `end_date` must be the `start_date` or later, both before the year 2037." - }, - "flightDateType": { - "description": "Required. The type of the line item's flight dates.", - "enum": [ - "LINE_ITEM_FLIGHT_DATE_TYPE_UNSPECIFIED", - "LINE_ITEM_FLIGHT_DATE_TYPE_INHERITED", - "LINE_ITEM_FLIGHT_DATE_TYPE_CUSTOM", - "LINE_ITEM_FLIGHT_DATE_TYPE_TRIGGER" - ], - "enumDescriptions": [ - "Type value is not specified or is unknown in this version.", - "The line item's flight dates are inherited from its parent insertion order.", - "The line item uses its own custom flight dates.", - "The line item uses a trigger. **Warning:** Line Items using manual triggers no longer serve in Display & Video 360. This value will sunset on August 1, 2023. Read our [feature deprecation announcement](/display-video/api/deprecations#features.manual_triggers) for more information." - ], - "type": "string" - }, - "triggerId": { - "description": "The ID of the manual trigger associated with the line item. * Required when flight_date_type is `LINE_ITEM_FLIGHT_DATE_TYPE_TRIGGER`. Must not be set otherwise. * When set, the line item's flight dates are inherited from its parent insertion order. * Active line items will spend when the selected trigger is activated within the parent insertion order's flight dates. **Warning:** Line Items using manual triggers no longer serve in Display & Video 360. This field will sunset on August 1, 2023. Read our [feature deprecation announcement](/display-video/api/deprecations#features.manual_triggers) for more information.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "ListAdvertiserAssignedTargetingOptionsResponse": { - "description": "Response message for ListAdvertiserAssignedTargetingOptions.", - "id": "ListAdvertiserAssignedTargetingOptionsResponse", - "properties": { - "assignedTargetingOptions": { - "description": "The list of assigned targeting options. This list will be absent if empty.", - "items": { - "$ref": "AssignedTargetingOption" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token identifying the next page of results. This value should be specified as the pageToken in a subsequent ListAdvertiserAssignedTargetingOptionsRequest to fetch the next page of results. This token will be absent if there are no more assigned_targeting_options to return.", - "type": "string" - } - }, - "type": "object" - }, - "ListAdvertisersResponse": { - "id": "ListAdvertisersResponse", - "properties": { - "advertisers": { - "description": "The list of advertisers. This list will be absent if empty.", - "items": { - "$ref": "Advertiser" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListAdvertisers` method to retrieve the next page of results.", - "type": "string" - } - }, - "type": "object" - }, - "ListAssignedInventorySourcesResponse": { - "description": "Response message for AssignedInventorySourceService.ListAssignedInventorySources.", - "id": "ListAssignedInventorySourcesResponse", - "properties": { - "assignedInventorySources": { - "description": "The list of assigned inventory sources. This list will be absent if empty.", - "items": { - "$ref": "AssignedInventorySource" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListAssignedInventorySources` method to retrieve the next page of results.", - "type": "string" - } - }, - "type": "object" - }, - "ListAssignedLocationsResponse": { - "description": "Response message for AssignedLocationService.ListAssignedLocations.", - "id": "ListAssignedLocationsResponse", - "properties": { - "assignedLocations": { - "description": "The list of assigned locations. This list will be absent if empty.", - "items": { - "$ref": "AssignedLocation" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListAssignedLocations` method to retrieve the next page of results.", - "type": "string" - } - }, - "type": "object" - }, - "ListCampaignAssignedTargetingOptionsResponse": { - "description": "Response message for ListCampaignAssignedTargetingOptions.", - "id": "ListCampaignAssignedTargetingOptionsResponse", - "properties": { - "assignedTargetingOptions": { - "description": "The list of assigned targeting options. This list will be absent if empty.", - "items": { - "$ref": "AssignedTargetingOption" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token identifying the next page of results. This value should be specified as the pageToken in a subsequent ListCampaignAssignedTargetingOptionsRequest to fetch the next page of results. This token will be absent if there are no more assigned_targeting_options to return.", - "type": "string" - } - }, - "type": "object" - }, - "ListCampaignsResponse": { - "id": "ListCampaignsResponse", - "properties": { - "campaigns": { - "description": "The list of campaigns. This list will be absent if empty.", - "items": { - "$ref": "Campaign" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListCampaigns` method to retrieve the next page of results.", - "type": "string" - } - }, - "type": "object" - }, - "ListChannelsResponse": { - "id": "ListChannelsResponse", - "properties": { - "channels": { - "description": "The list of channels. This list will be absent if empty.", - "items": { - "$ref": "Channel" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListChannels` method to retrieve the next page of results.", - "type": "string" - } - }, - "type": "object" - }, - "ListCombinedAudiencesResponse": { - "id": "ListCombinedAudiencesResponse", - "properties": { - "combinedAudiences": { - "description": "The list of combined audiences. This list will be absent if empty.", - "items": { - "$ref": "CombinedAudience" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListCombinedAudiences` method to retrieve the next page of results.", - "type": "string" - } - }, - "type": "object" - }, - "ListCreativesResponse": { - "id": "ListCreativesResponse", - "properties": { - "creatives": { - "description": "The list of creatives. This list will be absent if empty.", - "items": { - "$ref": "Creative" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListCreativesRequest` method to retrieve the next page of results. If this field is null, it means this is the last page.", - "type": "string" - } - }, - "type": "object" - }, - "ListCustomBiddingAlgorithmsResponse": { - "id": "ListCustomBiddingAlgorithmsResponse", - "properties": { - "customBiddingAlgorithms": { - "description": "The list of custom bidding algorithms. This list will be absent if empty.", - "items": { - "$ref": "CustomBiddingAlgorithm" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListCustomBiddingAlgorithmsRequest` method to retrieve the next page of results. If this field is null, it means this is the last page.", - "type": "string" - } - }, - "type": "object" - }, - "ListCustomBiddingScriptsResponse": { - "id": "ListCustomBiddingScriptsResponse", - "properties": { - "customBiddingScripts": { - "description": "The list of custom bidding scripts. This list will be absent if empty.", - "items": { - "$ref": "CustomBiddingScript" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListCustomBiddingScriptsRequest` method to retrieve the next page of results. If this field is null, it means this is the last page.", - "type": "string" - } - }, - "type": "object" - }, - "ListCustomListsResponse": { - "id": "ListCustomListsResponse", - "properties": { - "customLists": { - "description": "The list of custom lists. This list will be absent if empty.", - "items": { - "$ref": "CustomList" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListCustomLists` method to retrieve the next page of results.", - "type": "string" - } - }, - "type": "object" - }, - "ListFirstAndThirdPartyAudiencesResponse": { - "id": "ListFirstAndThirdPartyAudiencesResponse", - "properties": { - "firstAndThirdPartyAudiences": { - "description": "The list of first and third party audiences. Audience size properties will not be included. This list will be absent if empty.", - "items": { - "$ref": "FirstAndThirdPartyAudience" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListFirstAndThirdPartyAudiences` method to retrieve the next page of results.", - "type": "string" - } - }, - "type": "object" - }, - "ListGoogleAudiencesResponse": { - "id": "ListGoogleAudiencesResponse", - "properties": { - "googleAudiences": { - "description": "The list of Google audiences. This list will be absent if empty.", - "items": { - "$ref": "GoogleAudience" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListGoogleAudiences` method to retrieve the next page of results.", - "type": "string" - } - }, - "type": "object" - }, - "ListGuaranteedOrdersResponse": { - "id": "ListGuaranteedOrdersResponse", - "properties": { - "guaranteedOrders": { - "description": "The list of guaranteed orders. This list will be absent if empty.", - "items": { - "$ref": "GuaranteedOrder" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListGuaranteedOrders` method to retrieve the next page of results.", - "type": "string" - } - }, - "type": "object" - }, - "ListInsertionOrderAssignedTargetingOptionsResponse": { - "id": "ListInsertionOrderAssignedTargetingOptionsResponse", - "properties": { - "assignedTargetingOptions": { - "description": "The list of assigned targeting options. This list will be absent if empty.", - "items": { - "$ref": "AssignedTargetingOption" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token identifying the next page of results. This value should be specified as the pageToken in a subsequent ListInsertionOrderAssignedTargetingOptionsRequest to fetch the next page of results. This token will be absent if there are no more assigned_targeting_options to return.", - "type": "string" - } - }, - "type": "object" - }, - "ListInsertionOrdersResponse": { - "id": "ListInsertionOrdersResponse", - "properties": { - "insertionOrders": { - "description": "The list of insertion orders. This list will be absent if empty.", - "items": { - "$ref": "InsertionOrder" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListInsertionOrders` method to retrieve the next page of results.", - "type": "string" - } - }, - "type": "object" - }, - "ListInventorySourceGroupsResponse": { - "description": "Response message for InventorySourceGroupService.ListInventorySourceGroups.", - "id": "ListInventorySourceGroupsResponse", - "properties": { - "inventorySourceGroups": { - "description": "The list of inventory source groups. This list will be absent if empty.", - "items": { - "$ref": "InventorySourceGroup" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListInventorySourceGroups` method to retrieve the next page of results.", - "type": "string" - } - }, - "type": "object" - }, - "ListInventorySourcesResponse": { - "id": "ListInventorySourcesResponse", - "properties": { - "inventorySources": { - "description": "The list of inventory sources. This list will be absent if empty.", - "items": { - "$ref": "InventorySource" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListInventorySources` method to retrieve the next page of results.", - "type": "string" - } - }, - "type": "object" - }, - "ListInvoicesResponse": { - "id": "ListInvoicesResponse", - "properties": { - "invoices": { - "description": "The list of invoices. This list will be absent if empty.", - "items": { - "$ref": "Invoice" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListInvoices` method to retrieve the next page of results. This token will be absent if there are no more invoices to return.", - "type": "string" - } - }, - "type": "object" - }, - "ListLineItemAssignedTargetingOptionsResponse": { - "description": "Response message for ListLineItemAssignedTargetingOptions.", - "id": "ListLineItemAssignedTargetingOptionsResponse", - "properties": { - "assignedTargetingOptions": { - "description": "The list of assigned targeting options. This list will be absent if empty.", - "items": { - "$ref": "AssignedTargetingOption" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token identifying the next page of results. This value should be specified as the pageToken in a subsequent ListLineItemAssignedTargetingOptionsRequest to fetch the next page of results. This token will be absent if there are no more assigned_targeting_options to return.", - "type": "string" - } - }, - "type": "object" - }, - "ListLineItemsResponse": { - "id": "ListLineItemsResponse", - "properties": { - "lineItems": { - "description": "The list of line items. This list will be absent if empty.", - "items": { - "$ref": "LineItem" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListLineItems` method to retrieve the next page of results.", - "type": "string" - } - }, - "type": "object" - }, - "ListLocationListsResponse": { - "id": "ListLocationListsResponse", - "properties": { - "locationLists": { - "description": "The list of location lists. This list will be absent if empty.", - "items": { - "$ref": "LocationList" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListLocationLists` method to retrieve the next page of results.", - "type": "string" - } - }, - "type": "object" - }, - "ListManualTriggersResponse": { - "id": "ListManualTriggersResponse", - "properties": { - "manualTriggers": { - "description": "The list of manual triggers. This list will be absent if empty.", - "items": { - "$ref": "ManualTrigger" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListManualTriggers` method to retrieve the next page of results.", - "type": "string" - } - }, - "type": "object" - }, - "ListNegativeKeywordListsResponse": { - "description": "Response message for NegativeKeywordListService.ListNegativeKeywordLists.", - "id": "ListNegativeKeywordListsResponse", - "properties": { - "negativeKeywordLists": { - "description": "The list of negative keyword lists. This list will be absent if empty.", - "items": { - "$ref": "NegativeKeywordList" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListNegativeKeywordLists` method to retrieve the next page of results.", - "type": "string" - } - }, - "type": "object" - }, - "ListNegativeKeywordsResponse": { - "description": "Response message for NegativeKeywordService.ListNegativeKeywords.", - "id": "ListNegativeKeywordsResponse", - "properties": { - "negativeKeywords": { - "description": "The list of negative keywords. This list will be absent if empty.", - "items": { - "$ref": "NegativeKeyword" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListNegativeKeywords` method to retrieve the next page of results.", - "type": "string" - } - }, - "type": "object" - }, - "ListPartnerAssignedTargetingOptionsResponse": { - "id": "ListPartnerAssignedTargetingOptionsResponse", - "properties": { - "assignedTargetingOptions": { - "description": "The list of assigned targeting options. This list will be absent if empty.", - "items": { - "$ref": "AssignedTargetingOption" - }, - "type": "array" - }, - "nextPageToken": { - "description": "A token identifying the next page of results. This value should be specified as the pageToken in a subsequent ListPartnerAssignedTargetingOptionsRequest to fetch the next page of results. This token will be absent if there are no more assigned_targeting_options to return.", - "type": "string" - } - }, - "type": "object" - }, - "ListPartnersResponse": { - "id": "ListPartnersResponse", - "properties": { - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListPartners` method to retrieve the next page of results.", - "type": "string" - }, - "partners": { - "description": "The list of partners. This list will be absent if empty.", - "items": { - "$ref": "Partner" - }, - "type": "array" - } - }, - "type": "object" - }, - "ListSitesResponse": { - "description": "Response message for SiteService.ListSites.", - "id": "ListSitesResponse", - "properties": { - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListSites` method to retrieve the next page of results.", - "type": "string" - }, - "sites": { - "description": "The list of sites. This list will be absent if empty.", - "items": { - "$ref": "Site" - }, - "type": "array" - } - }, - "type": "object" - }, - "ListTargetingOptionsResponse": { - "description": "Response message for ListTargetingOptions.", - "id": "ListTargetingOptionsResponse", - "properties": { - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListTargetingOptions` method to retrieve the next page of results.", - "type": "string" - }, - "targetingOptions": { - "description": "The list of targeting options. This list will be absent if empty.", - "items": { - "$ref": "TargetingOption" - }, - "type": "array" - } - }, - "type": "object" - }, - "ListUsersResponse": { - "id": "ListUsersResponse", - "properties": { - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListUsers` method to retrieve the next page of results. This token will be absent if there are no more results to return.", - "type": "string" - }, - "users": { - "description": "The list of users. This list will be absent if empty.", - "items": { - "$ref": "User" - }, - "type": "array" - } - }, - "type": "object" - }, - "LocationList": { - "description": "A list of locations used for targeting.", - "id": "LocationList", - "properties": { - "advertiserId": { - "description": "Required. Immutable. The unique ID of the advertiser the location list belongs to.", - "format": "int64", - "type": "string" - }, - "displayName": { - "description": "Required. The display name of the location list. Must be UTF-8 encoded with a maximum size of 240 bytes.", - "type": "string" - }, - "locationListId": { - "description": "Output only. The unique ID of the location list. Assigned by the system.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "locationType": { - "description": "Required. Immutable. The type of location. All locations in the list will share this type.", - "enum": [ - "TARGETING_LOCATION_TYPE_UNSPECIFIED", - "TARGETING_LOCATION_TYPE_PROXIMITY", - "TARGETING_LOCATION_TYPE_REGIONAL" - ], - "enumDescriptions": [ - "Default value when type is not specified or is unknown.", - "The type for proximity geo location.", - "The type for regional geo location." - ], - "type": "string" - }, - "name": { - "description": "Output only. The resource name of the location list.", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "LookbackWindow": { - "description": "Specifies how many days into the past to look when determining whether to record a conversion.", - "id": "LookbackWindow", - "properties": { - "clickDays": { - "description": "Lookback window, in days, from the last time a given user clicked on one of your ads.", - "format": "int32", - "type": "integer" - }, - "impressionDays": { - "description": "Lookback window, in days, from the last time a given user viewed one of your ads.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "LookupInvoiceCurrencyResponse": { - "id": "LookupInvoiceCurrencyResponse", - "properties": { - "currencyCode": { - "description": "Currency used by the advertiser in ISO 4217 format.", - "type": "string" - } - }, - "type": "object" - }, - "ManualTrigger": { - "description": "A single manual trigger in Display & Video 360. **Warning:** Line Items using manual triggers no longer serve in Display & Video 360. This resource will sunset on August 1, 2023. Read our [feature deprecation announcement](/display-video/api/deprecations#features.manual_triggers) for more information.", - "id": "ManualTrigger", - "properties": { - "activationDurationMinutes": { - "description": "Required. The maximum duration of each activation in minutes. Must be between 1 and 360 inclusive. After this duration, the trigger will be automatically deactivated.", - "format": "int64", - "type": "string" - }, - "advertiserId": { - "description": "Required. Immutable. The unique ID of the advertiser that the manual trigger belongs to.", - "format": "int64", - "type": "string" - }, - "displayName": { - "description": "Required. The display name of the manual trigger. Must be UTF-8 encoded with a maximum size of 240 bytes.", - "type": "string" - }, - "latestActivationTime": { - "description": "Output only. The timestamp of the trigger's latest activation.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - }, - "name": { - "description": "Output only. The resource name of the manual trigger.", - "readOnly": true, - "type": "string" - }, - "state": { - "description": "Output only. The state of the manual trigger. Will be set to the `INACTIVE` state upon creation.", - "enum": [ - "STATE_UNSPECIFIED", - "INACTIVE", - "ACTIVE" - ], - "enumDescriptions": [ - "Default value when state is not specified or is unknown in this version.", - "The trigger is currently inactive and ready to be activated.", - "The trigger is currently active (activated)." - ], - "readOnly": true, - "type": "string" - }, - "triggerId": { - "description": "Output only. The unique ID of the manual trigger.", - "format": "int64", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "MaximizeSpendBidStrategy": { - "description": "A strategy that automatically adjusts the bid to optimize a specified performance goal while spending the full budget.", - "id": "MaximizeSpendBidStrategy", - "properties": { - "customBiddingAlgorithmId": { - "description": "The ID of the Custom Bidding Algorithm used by this strategy. Only applicable when performance_goal_type is set to `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO`.", - "format": "int64", - "type": "string" - }, - "maxAverageCpmBidAmountMicros": { - "description": "The maximum average CPM that may be bid, in micros of the advertiser's currency. Must be greater than or equal to a billable unit of the given currency. For example, 1500000 represents 1.5 standard units of the currency.", - "format": "int64", - "type": "string" - }, - "performanceGoalType": { - "description": "Required. The type of the performance goal that the bidding strategy tries to minimize while spending the full budget. `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM` is not supported for this strategy.", - "enum": [ - "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_UNSPECIFIED", - "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPA", - "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPC", - "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM", - "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO", - "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CIVA", - "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_IVO_TEN", - "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_AV_VIEWED" - ], - "enumDescriptions": [ - "Type value is not specified or is unknown in this version.", - "Cost per action.", - "Cost per click.", - "Viewable CPM.", - "Custom bidding algorithm.", - "Completed inview and audible views.", - "Inview time over 10 secs views.", - "Viewable impressions." - ], - "type": "string" - }, - "raiseBidForDeals": { - "description": "Whether the strategy takes deal floor prices into account.", - "type": "boolean" - } - }, - "type": "object" - }, - "MeasurementConfig": { - "description": "Measurement settings of a partner.", - "id": "MeasurementConfig", - "properties": { - "dv360ToCmCostReportingEnabled": { - "description": "Whether or not to report DV360 cost to CM360.", - "type": "boolean" - }, - "dv360ToCmDataSharingEnabled": { - "description": "Whether or not to include DV360 data in CM360 data transfer reports.", - "type": "boolean" - } - }, - "type": "object" - }, - "MobileApp": { - "description": "A mobile app promoted by a mobile app install line item.", - "id": "MobileApp", - "properties": { - "appId": { - "description": "Required. The ID of the app provided by the platform store. Android apps are identified by the bundle ID used by Android's Play store, such as `com.google.android.gm`. iOS apps are identified by a nine-digit app ID used by Apple's App store, such as `422689480`.", - "type": "string" - }, - "displayName": { - "description": "Output only. The app name.", - "readOnly": true, - "type": "string" - }, - "platform": { - "description": "Output only. The app platform.", - "enum": [ - "PLATFORM_UNSPECIFIED", - "IOS", - "ANDROID" - ], - "enumDescriptions": [ - "Platform is not specified.", - "iOS platform.", - "Android platform." - ], - "readOnly": true, - "type": "string" - }, - "publisher": { - "description": "Output only. The app publisher.", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "MobileDeviceIdList": { - "description": "Wrapper message for a list of mobile device IDs defining Customer Match audience members.", - "id": "MobileDeviceIdList", - "properties": { - "consent": { - "$ref": "Consent", - "description": "Input only. User consent status." - }, - "mobileDeviceIds": { - "description": "A list of mobile device IDs defining Customer Match audience members. The size of mobile_device_ids mustn't be greater than 500,000.", - "items": { - "type": "string" - }, - "type": "array" - } - }, - "type": "object" - }, - "Money": { - "description": "Represents an amount of money with its currency type.", - "id": "Money", - "properties": { - "currencyCode": { - "description": "The three-letter currency code defined in ISO 4217.", - "type": "string" - }, - "nanos": { - "description": "Number of nano (10^-9) units of the amount. The value must be between -999,999,999 and +999,999,999 inclusive. If `units` is positive, `nanos` must be positive or zero. If `units` is zero, `nanos` can be positive, zero, or negative. If `units` is negative, `nanos` must be negative or zero. For example $-1.75 is represented as `units`=-1 and `nanos`=-750,000,000.", - "format": "int32", - "type": "integer" - }, - "units": { - "description": "The whole units of the amount. For example if `currencyCode` is `\"USD\"`, then 1 unit is one US dollar.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "NativeContentPositionAssignedTargetingOptionDetails": { - "description": "Details for native content position assigned targeting option. This will be populated in the native_content_position_details field when targeting_type is `TARGETING_TYPE_NATIVE_CONTENT_POSITION`. Explicitly targeting all options is not supported. Remove all native content position targeting options to achieve this effect.", - "id": "NativeContentPositionAssignedTargetingOptionDetails", - "properties": { - "contentPosition": { - "description": "Required. The content position.", - "enum": [ - "NATIVE_CONTENT_POSITION_UNSPECIFIED", - "NATIVE_CONTENT_POSITION_UNKNOWN", - "NATIVE_CONTENT_POSITION_IN_ARTICLE", - "NATIVE_CONTENT_POSITION_IN_FEED", - "NATIVE_CONTENT_POSITION_PERIPHERAL", - "NATIVE_CONTENT_POSITION_RECOMMENDATION" - ], - "enumDescriptions": [ - "Native content position is not specified in this version. This enum is a place holder for a default value and does not represent a real native content position.", - "The native content position is unknown.", - "Native content position is in-article, i.e., ads appear between the paragraphs of pages.", - "Native content position is in-feed, i.e., ads appear in a scrollable stream of content. A feed is typically editorial (e.g. a list of articles or news) or listings (e.g. a list of products or services).", - "Native content position is peripheral, i.e., ads appear outside of core content on pages, such as the right- or left-hand side of the page.", - "Native content position is recommendation, i.e., ads appear in sections for recommended content." - ], - "type": "string" - }, - "targetingOptionId": { - "description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_NATIVE_CONTENT_POSITION`.", - "type": "string" - } - }, - "type": "object" - }, - "NativeContentPositionTargetingOptionDetails": { - "description": "Represents a targetable native content position. This will be populated in the native_content_position_details field when targeting_type is `TARGETING_TYPE_NATIVE_CONTENT_POSITION`.", - "id": "NativeContentPositionTargetingOptionDetails", - "properties": { - "contentPosition": { - "description": "Output only. The content position.", - "enum": [ - "NATIVE_CONTENT_POSITION_UNSPECIFIED", - "NATIVE_CONTENT_POSITION_UNKNOWN", - "NATIVE_CONTENT_POSITION_IN_ARTICLE", - "NATIVE_CONTENT_POSITION_IN_FEED", - "NATIVE_CONTENT_POSITION_PERIPHERAL", - "NATIVE_CONTENT_POSITION_RECOMMENDATION" - ], - "enumDescriptions": [ - "Native content position is not specified in this version. This enum is a place holder for a default value and does not represent a real native content position.", - "The native content position is unknown.", - "Native content position is in-article, i.e., ads appear between the paragraphs of pages.", - "Native content position is in-feed, i.e., ads appear in a scrollable stream of content. A feed is typically editorial (e.g. a list of articles or news) or listings (e.g. a list of products or services).", - "Native content position is peripheral, i.e., ads appear outside of core content on pages, such as the right- or left-hand side of the page.", - "Native content position is recommendation, i.e., ads appear in sections for recommended content." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "NegativeKeyword": { - "description": "A negatively targeted keyword that belongs to a negative keyword list.", - "id": "NegativeKeyword", - "properties": { - "keywordValue": { - "description": "Required. Immutable. The negatively targeted keyword, for example `car insurance`. Must be UTF-8 encoded with a maximum size of 255 bytes. Maximum number of characters is 80. Maximum number of words is 10. Valid characters are restricted to ASCII characters only. The only URL-escaping permitted is for representing whitespace between words. Leading or trailing whitespace is ignored.", - "type": "string" - }, - "name": { - "description": "Output only. The resource name of the negative keyword.", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "NegativeKeywordList": { - "description": "A list of negative keywords used for targeting.", - "id": "NegativeKeywordList", - "properties": { - "advertiserId": { - "description": "Output only. The unique ID of the advertiser the negative keyword list belongs to.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "displayName": { - "description": "Required. The display name of the negative keyword list. Must be UTF-8 encoded with a maximum size of 255 bytes.", - "type": "string" - }, - "name": { - "description": "Output only. The resource name of the negative keyword list.", - "readOnly": true, - "type": "string" - }, - "negativeKeywordListId": { - "description": "Output only. The unique ID of the negative keyword list. Assigned by the system.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "targetedLineItemCount": { - "description": "Output only. Number of line items that are directly targeting this negative keyword list.", - "format": "int64", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "NegativeKeywordListAssignedTargetingOptionDetails": { - "description": "Targeting details for negative keyword list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`.", - "id": "NegativeKeywordListAssignedTargetingOptionDetails", - "properties": { - "negativeKeywordListId": { - "description": "Required. ID of the negative keyword list. Should refer to the negative_keyword_list_id field of a NegativeKeywordList resource.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "ObaIcon": { - "description": "OBA Icon for a Creative", - "id": "ObaIcon", - "properties": { - "clickTrackingUrl": { - "description": "Required. The click tracking URL of the OBA icon. Only URLs of the following domains are allowed: * https://info.evidon.com * https://l.betrad.com", - "type": "string" - }, - "dimensions": { - "$ref": "Dimensions", - "description": "The dimensions of the OBA icon." - }, - "landingPageUrl": { - "description": "Required. The landing page URL of the OBA icon. Only URLs of the following domains are allowed: * https://info.evidon.com * https://l.betrad.com", - "type": "string" - }, - "position": { - "description": "The position of the OBA icon on the creative.", - "enum": [ - "OBA_ICON_POSITION_UNSPECIFIED", - "OBA_ICON_POSITION_UPPER_RIGHT", - "OBA_ICON_POSITION_UPPER_LEFT", - "OBA_ICON_POSITION_LOWER_RIGHT", - "OBA_ICON_POSITION_LOWER_LEFT" - ], - "enumDescriptions": [ - "The OBA icon position is not specified.", - "At the upper right side of the creative.", - "At the upper left side of the creative.", - "At the lower right side of the creative.", - "At the lower left side of the creative." - ], - "type": "string" - }, - "program": { - "description": "The program of the OBA icon. For example: “AdChoices”.", - "type": "string" - }, - "resourceMimeType": { - "description": "The MIME type of the OBA icon resource.", - "type": "string" - }, - "resourceUrl": { - "description": "The URL of the OBA icon resource.", - "type": "string" - }, - "viewTrackingUrl": { - "description": "Required. The view tracking URL of the OBA icon. Only URLs of the following domains are allowed: * https://info.evidon.com * https://l.betrad.com", - "type": "string" - } - }, - "type": "object" - }, - "OmidAssignedTargetingOptionDetails": { - "description": "Represents a targetable Open Measurement enabled inventory type. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_OMID`.", - "id": "OmidAssignedTargetingOptionDetails", - "properties": { - "omid": { - "description": "Required. The type of Open Measurement enabled inventory.", - "enum": [ - "OMID_UNSPECIFIED", - "OMID_FOR_MOBILE_DISPLAY_ADS" - ], - "enumDescriptions": [ - "Default value when omid targeting is not specified in this version.", - "Open Measurement enabled mobile display inventory." - ], - "type": "string" - }, - "targetingOptionId": { - "description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_OMID`.", - "type": "string" - } - }, - "type": "object" - }, - "OmidTargetingOptionDetails": { - "description": "Represents a targetable Open Measurement enabled inventory type. This will be populated in the omid_details field when targeting_type is `TARGETING_TYPE_OMID`.", - "id": "OmidTargetingOptionDetails", - "properties": { - "omid": { - "description": "Output only. The type of Open Measurement enabled inventory.", - "enum": [ - "OMID_UNSPECIFIED", - "OMID_FOR_MOBILE_DISPLAY_ADS" - ], - "enumDescriptions": [ - "Default value when omid targeting is not specified in this version.", - "Open Measurement enabled mobile display inventory." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "OnScreenPositionAssignedTargetingOptionDetails": { - "description": "On screen position targeting option details. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`.", - "id": "OnScreenPositionAssignedTargetingOptionDetails", - "properties": { - "adType": { - "description": "Output only. The ad type to target. Only applicable to insertion order targeting and new line items supporting the specified ad type will inherit this targeting option by default. Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * `AD_TYPE_VIDEO`, the setting will be inherited by new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`.", - "enum": [ - "AD_TYPE_UNSPECIFIED", - "AD_TYPE_DISPLAY", - "AD_TYPE_VIDEO", - "AD_TYPE_AUDIO" - ], - "enumDescriptions": [ - "Ad type is not specified or is unknown in this version.", - "Display creatives, e.g. image and HTML5.", - "Video creatives, e.g. video ads that play during streaming content in video players.", - "Audio creatives, e.g. audio ads that play during audio content." - ], - "readOnly": true, - "type": "string" - }, - "onScreenPosition": { - "description": "Output only. The on screen position.", - "enum": [ - "ON_SCREEN_POSITION_UNSPECIFIED", - "ON_SCREEN_POSITION_UNKNOWN", - "ON_SCREEN_POSITION_ABOVE_THE_FOLD", - "ON_SCREEN_POSITION_BELOW_THE_FOLD" - ], - "enumDescriptions": [ - "On screen position is not specified in this version. This enum is a place holder for a default value and does not represent a real on screen position.", - "The ad position is unknown on the screen.", - "The ad is located above the fold.", - "The ad is located below the fold." - ], - "readOnly": true, - "type": "string" - }, - "targetingOptionId": { - "description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`.", - "type": "string" - } - }, - "type": "object" - }, - "OnScreenPositionTargetingOptionDetails": { - "description": "Represents a targetable on screen position, which could be used by display and video ads. This will be populated in the on_screen_position_details field when targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`.", - "id": "OnScreenPositionTargetingOptionDetails", - "properties": { - "onScreenPosition": { - "description": "Output only. The on screen position.", - "enum": [ - "ON_SCREEN_POSITION_UNSPECIFIED", - "ON_SCREEN_POSITION_UNKNOWN", - "ON_SCREEN_POSITION_ABOVE_THE_FOLD", - "ON_SCREEN_POSITION_BELOW_THE_FOLD" - ], - "enumDescriptions": [ - "On screen position is not specified in this version. This enum is a place holder for a default value and does not represent a real on screen position.", - "The ad position is unknown on the screen.", - "The ad is located above the fold.", - "The ad is located below the fold." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "OperatingSystemAssignedTargetingOptionDetails": { - "description": "Assigned operating system targeting option details. This will be populated in the operating_system_details field when targeting_type is `TARGETING_TYPE_OPERATING_SYSTEM`.", - "id": "OperatingSystemAssignedTargetingOptionDetails", - "properties": { - "displayName": { - "description": "Output only. The display name of the operating system.", - "readOnly": true, - "type": "string" - }, - "negative": { - "description": "Indicates if this option is being negatively targeted.", - "type": "boolean" - }, - "targetingOptionId": { - "description": "Required. The targeting option ID populated in targeting_option_id field when targeting_type is `TARGETING_TYPE_OPERATING_SYSTEM`.", - "type": "string" - } - }, - "type": "object" - }, - "OperatingSystemTargetingOptionDetails": { - "description": "Represents a targetable operating system. This will be populated in the operating_system_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_OPERATING_SYSTEM`.", - "id": "OperatingSystemTargetingOptionDetails", - "properties": { - "displayName": { - "description": "Output only. The display name of the operating system.", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "Operation": { - "description": "This resource represents a long-running operation that is the result of a network API call.", - "id": "Operation", - "properties": { - "done": { - "description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", - "type": "boolean" - }, - "error": { - "$ref": "Status", - "description": "The error result of the operation in case of failure or cancellation." - }, - "metadata": { - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - }, - "description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", - "type": "object" - }, - "name": { - "description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", - "type": "string" - }, - "response": { - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - }, - "description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", - "type": "object" - } - }, - "type": "object" - }, - "Pacing": { - "description": "Settings that control the rate at which a budget is spent.", - "id": "Pacing", - "properties": { - "dailyMaxImpressions": { - "description": "Maximum number of impressions to serve every day. Applicable when the budget is impression based. Must be greater than 0.", - "format": "int64", - "type": "string" - }, - "dailyMaxMicros": { - "description": "Maximum currency amount to spend every day in micros of advertiser's currency. Applicable when the budget is currency based. Must be greater than 0. For example, for 1.5 standard unit of the currency, set this field to 1500000. The value assigned will be rounded to whole billable units for the relevant currency by the following rules: any positive value less than a single billable unit will be rounded up to one billable unit and any value larger than a single billable unit will be rounded down to the nearest billable value. For example, if the currency's billable unit is 0.01, and this field is set to 10257770, it will round down to 10250000, a value of 10.25. If set to 505, it will round up to 10000, a value of 0.01.", - "format": "int64", - "type": "string" - }, - "pacingPeriod": { - "description": "Required. The time period in which the pacing budget will be spent. When automatic budget allocation is enabled at the insertion order via automationType, this field is output only and defaults to `PACING_PERIOD_FLIGHT`.", - "enum": [ - "PACING_PERIOD_UNSPECIFIED", - "PACING_PERIOD_DAILY", - "PACING_PERIOD_FLIGHT" - ], - "enumDescriptions": [ - "Period value is not specified or is unknown in this version.", - "The pacing setting will be applied on daily basis.", - "The pacing setting will be applied to the whole flight duration." - ], - "type": "string" - }, - "pacingType": { - "description": "Required. The type of pacing that defines how the budget amount will be spent across the pacing_period.", - "enum": [ - "PACING_TYPE_UNSPECIFIED", - "PACING_TYPE_AHEAD", - "PACING_TYPE_ASAP", - "PACING_TYPE_EVEN" - ], - "enumDescriptions": [ - "Pacing mode value is not specified or is unknown in this version.", - "Only applicable to `PACING_PERIOD_FLIGHT` pacing period. Ahead pacing attempts to spend faster than evenly, to make sure the entire budget is spent by the end of the flight.", - "Spend all of pacing budget amount as quick as possible.", - "Spend a consistent budget amount every period of time." - ], - "type": "string" - } - }, - "type": "object" - }, - "ParentEntityFilter": { - "description": "A filtering option that filters on selected file types belonging to a chosen set of filter entities.", - "id": "ParentEntityFilter", - "properties": { - "fileType": { - "description": "Required. File types that will be returned.", - "items": { - "enum": [ - "FILE_TYPE_UNSPECIFIED", - "FILE_TYPE_CAMPAIGN", - "FILE_TYPE_MEDIA_PRODUCT", - "FILE_TYPE_INSERTION_ORDER", - "FILE_TYPE_LINE_ITEM", - "FILE_TYPE_AD_GROUP", - "FILE_TYPE_AD" - ], - "enumDescriptions": [ - "Default value when type is unspecified or is unknown in this version.", - "Campaign.", - "Media Product.", - "Insertion Order.", - "Line Item.", - "YouTube Ad Group.", - "YouTube Ad." - ], - "type": "string" - }, - "type": "array" - }, - "filterIds": { - "description": "The IDs of the specified filter type. This is used to filter entities to fetch. If filter type is not `FILTER_TYPE_NONE`, at least one ID must be specified.", - "items": { - "format": "int64", - "type": "string" - }, - "type": "array" - }, - "filterType": { - "description": "Required. Filter type used to filter fetched entities.", - "enum": [ - "FILTER_TYPE_UNSPECIFIED", - "FILTER_TYPE_NONE", - "FILTER_TYPE_ADVERTISER_ID", - "FILTER_TYPE_CAMPAIGN_ID", - "FILTER_TYPE_MEDIA_PRODUCT_ID", - "FILTER_TYPE_INSERTION_ORDER_ID", - "FILTER_TYPE_LINE_ITEM_ID" - ], - "enumDescriptions": [ - "Default value when type is unspecified or is unknown in this version.", - "If selected, no filter will be applied to the download. Can only be used if an Advertiser is specified in CreateSdfDownloadTaskRequest.", - "Advertiser ID. If selected, all filter IDs must be Advertiser IDs that belong to the Partner specified in CreateSdfDownloadTaskRequest.", - "Campaign ID. If selected, all filter IDs must be Campaign IDs that belong to the Advertiser or Partner specified in CreateSdfDownloadTaskRequest.", - "Media Product ID. If selected, all filter IDs must be Media Product IDs that belong to the Advertiser or Partner specified in CreateSdfDownloadTaskRequest. Can only be used for downloading `FILE_TYPE_MEDIA_PRODUCT`.", - "Insertion Order ID. If selected, all filter IDs must be Insertion Order IDs that belong to the Advertiser or Partner specified in CreateSdfDownloadTaskRequest. Can only be used for downloading `FILE_TYPE_INSERTION_ORDER`, `FILE_TYPE_LINE_ITEM`, `FILE_TYPE_AD_GROUP`, and `FILE_TYPE_AD`.", - "Line Item ID. If selected, all filter IDs must be Line Item IDs that belong to the Advertiser or Partner specified in CreateSdfDownloadTaskRequest. Can only be used for downloading `FILE_TYPE_LINE_ITEM`, `FILE_TYPE_AD_GROUP`, and `FILE_TYPE_AD`." - ], - "type": "string" - } - }, - "type": "object" - }, - "ParentalStatusAssignedTargetingOptionDetails": { - "description": "Details for assigned parental status targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PARENTAL_STATUS`.", - "id": "ParentalStatusAssignedTargetingOptionDetails", - "properties": { - "parentalStatus": { - "description": "Required. The parental status of the audience.", - "enum": [ - "PARENTAL_STATUS_UNSPECIFIED", - "PARENTAL_STATUS_PARENT", - "PARENTAL_STATUS_NOT_A_PARENT", - "PARENTAL_STATUS_UNKNOWN" - ], - "enumDescriptions": [ - "Default value when parental status is not specified in this version. This enum is a place holder for default value and does not represent a real parental status option.", - "The audience is a parent.", - "The audience is not a parent.", - "The parental status of the audience is unknown." - ], - "type": "string" - }, - "targetingOptionId": { - "description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_PARENTAL_STATUS`.", - "type": "string" - } - }, - "type": "object" - }, - "ParentalStatusTargetingOptionDetails": { - "description": "Represents a targetable parental status. This will be populated in the parental_status_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_PARENTAL_STATUS`.", - "id": "ParentalStatusTargetingOptionDetails", - "properties": { - "parentalStatus": { - "description": "Output only. The parental status of an audience.", - "enum": [ - "PARENTAL_STATUS_UNSPECIFIED", - "PARENTAL_STATUS_PARENT", - "PARENTAL_STATUS_NOT_A_PARENT", - "PARENTAL_STATUS_UNKNOWN" - ], - "enumDescriptions": [ - "Default value when parental status is not specified in this version. This enum is a place holder for default value and does not represent a real parental status option.", - "The audience is a parent.", - "The audience is not a parent.", - "The parental status of the audience is unknown." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "Partner": { - "description": "A single partner in Display & Video 360 (DV360).", - "id": "Partner", - "properties": { - "adServerConfig": { - "$ref": "PartnerAdServerConfig", - "description": "Ad server related settings of the partner." - }, - "dataAccessConfig": { - "$ref": "PartnerDataAccessConfig", - "description": "Settings that control how partner data may be accessed." - }, - "displayName": { - "description": "The display name of the partner. Must be UTF-8 encoded with a maximum size of 240 bytes.", - "type": "string" - }, - "entityStatus": { - "description": "Output only. The status of the partner.", - "enum": [ - "ENTITY_STATUS_UNSPECIFIED", - "ENTITY_STATUS_ACTIVE", - "ENTITY_STATUS_ARCHIVED", - "ENTITY_STATUS_DRAFT", - "ENTITY_STATUS_PAUSED", - "ENTITY_STATUS_SCHEDULED_FOR_DELETION" - ], - "enumDescriptions": [ - "Default value when status is not specified or is unknown in this version.", - "The entity is enabled to bid and spend budget.", - "The entity is archived. Bidding and budget spending are disabled. An entity can be deleted after archived. Deleted entities cannot be retrieved.", - "The entity is under draft. Bidding and budget spending are disabled.", - "Bidding and budget spending are paused for the entity.", - "The entity is scheduled for deletion." - ], - "readOnly": true, - "type": "string" - }, - "exchangeConfig": { - "$ref": "ExchangeConfig", - "description": "Settings that control which exchanges are enabled for the partner." - }, - "generalConfig": { - "$ref": "PartnerGeneralConfig", - "description": "General settings of the partner." - }, - "name": { - "description": "Output only. The resource name of the partner.", - "readOnly": true, - "type": "string" - }, - "partnerId": { - "description": "Output only. The unique ID of the partner. Assigned by the system.", - "format": "int64", - "readOnly": true, - "type": "string" - }, - "updateTime": { - "description": "Output only. The timestamp when the partner was last updated. Assigned by the system.", - "format": "google-datetime", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "PartnerAdServerConfig": { - "description": "Ad server related settings of a partner.", - "id": "PartnerAdServerConfig", - "properties": { - "measurementConfig": { - "$ref": "MeasurementConfig", - "description": "Measurement settings of a partner." - } - }, - "type": "object" - }, - "PartnerCost": { - "description": "Settings that control a partner cost. A partner cost is any type of expense involved in running a campaign, other than the costs of purchasing impressions (which is called the media cost) and using third-party audience segment data (data fee). Some examples of partner costs include the fees for using DV360, a third-party ad server, or a third-party ad serving verification service.", - "id": "PartnerCost", - "properties": { - "costType": { - "description": "Required. The type of the partner cost.", - "enum": [ - "PARTNER_COST_TYPE_UNSPECIFIED", - "PARTNER_COST_TYPE_ADLOOX", - "PARTNER_COST_TYPE_ADLOOX_PREBID", - "PARTNER_COST_TYPE_ADSAFE", - "PARTNER_COST_TYPE_ADXPOSE", - "PARTNER_COST_TYPE_AGGREGATE_KNOWLEDGE", - "PARTNER_COST_TYPE_AGENCY_TRADING_DESK", - "PARTNER_COST_TYPE_DV360_FEE", - "PARTNER_COST_TYPE_COMSCORE_VCE", - "PARTNER_COST_TYPE_DATA_MANAGEMENT_PLATFORM", - "PARTNER_COST_TYPE_DEFAULT", - "PARTNER_COST_TYPE_DOUBLE_VERIFY", - "PARTNER_COST_TYPE_DOUBLE_VERIFY_PREBID", - "PARTNER_COST_TYPE_EVIDON", - "PARTNER_COST_TYPE_INTEGRAL_AD_SCIENCE_VIDEO", - "PARTNER_COST_TYPE_INTEGRAL_AD_SCIENCE_PREBID", - "PARTNER_COST_TYPE_MEDIA_COST_DATA", - "PARTNER_COST_TYPE_MOAT_VIDEO", - "PARTNER_COST_TYPE_NIELSEN_DAR", - "PARTNER_COST_TYPE_SHOP_LOCAL", - "PARTNER_COST_TYPE_TERACENT", - "PARTNER_COST_TYPE_THIRD_PARTY_AD_SERVER", - "PARTNER_COST_TYPE_TRUST_METRICS", - "PARTNER_COST_TYPE_VIZU", - "PARTNER_COST_TYPE_ADLINGO_FEE", - "PARTNER_COST_TYPE_CUSTOM_FEE_1", - "PARTNER_COST_TYPE_CUSTOM_FEE_2", - "PARTNER_COST_TYPE_CUSTOM_FEE_3", - "PARTNER_COST_TYPE_CUSTOM_FEE_4", - "PARTNER_COST_TYPE_CUSTOM_FEE_5", - "PARTNER_COST_TYPE_SCIBIDS_FEE" - ], - "enumDescriptions": [ - "Type value is not specified or is unknown in this version.", - "The cost is charged for using Adloox. Billed by the partner.", - "The cost is charged for using Adloox Pre-Bid. Billed through DV360.", - "The cost is charged for using AdSafe. Billed by the partner.", - "The cost is charged for using AdExpose. Billed by the partner.", - "The cost is charged for using Aggregate Knowledge. Billed by the partner.", - "The cost is charged for using an Agency Trading Desk. Billed by the partner.", - "The cost is charged for using DV360. Billed through DV360.", - "The cost is charged for using comScore vCE. Billed through DV360.", - "The cost is charged for using a Data Management Platform. Billed by the partner.", - "The default cost type. Billed by the partner.", - "The cost is charged for using DoubleVerify. Billed by the partner.", - "The cost is charged for using DoubleVerify Pre-Bid. Billed through DV360.", - "The cost is charged for using Evidon. Billed by the partner.", - "The cost is charged for using Integral Ad Science Video. Billed by the partner.", - "The cost is charged for using Integral Ad Science Pre-Bid. Billed through DV360.", - "The cost is charged for using media cost data. Billed by the partner.", - "The cost is charged for using MOAT Video. Billed by the partner.", - "The cost is charged for using Nielsen Digital Ad Ratings. Billed through DV360.", - "The cost is charged for using ShopLocal. Billed by the partner.", - "The cost is charged for using Teracent. Billed by the partner.", - "The cost is charged for using a third-party ad server. Billed by the partner.", - "The cost is charged for using TrustMetrics. Billed by the partner.", - "The cost is charged for using Vizu. Billed by the partner.", - "The cost is charged for using AdLingo. Billed through DV360.", - "The cost is charged as custom fee 1. Billed by the partner.", - "The cost is charged as custom fee 2. Billed by the partner.", - "The cost is charged as custom fee 3. Billed by the partner.", - "The cost is charged as custom fee 4. Billed by the partner.", - "The cost is charged as custom fee 5. Billed by the partner.", - "The cost is charged for using Scibids. Billed through DV360. This type is currently only available to certain customers. Other customers attempting to use this type will receive an error." - ], - "type": "string" - }, - "feeAmount": { - "description": "The CPM fee amount in micros of advertiser's currency. Applicable when the fee_type is `PARTNER_FEE_TYPE_CPM_FEE`. Must be greater than or equal to 0. For example, for 1.5 standard unit of the advertiser's currency, set this field to 1500000.", - "format": "int64", - "type": "string" - }, - "feePercentageMillis": { - "description": "The media fee percentage in millis (1/1000 of a percent). Applicable when the fee_type is `PARTNER_FEE_TYPE_MEDIA_FEE`. Must be greater than or equal to 0. For example: 100 represents 0.1%.", - "format": "int64", - "type": "string" - }, - "feeType": { - "description": "Required. The fee type for this partner cost.", - "enum": [ - "PARTNER_COST_FEE_TYPE_UNSPECIFIED", - "PARTNER_COST_FEE_TYPE_CPM_FEE", - "PARTNER_COST_FEE_TYPE_MEDIA_FEE" - ], - "enumDescriptions": [ - "Value is not specified or is unknown in this version.", - "The partner cost is a fixed CPM fee. Not applicable when the partner cost cost_type is one of: * `PARTNER_COST_TYPE_MEDIA_COST_DATA` * `PARTNER_COST_TYPE_DV360_FEE`.", - "The partner cost is a percentage surcharge based on the media cost. Not applicable when the partner cost_type is one of: * `PARTNER_COST_TYPE_SHOP_LOCAL` * `PARTNER_COST_TYPE_TRUST_METRICS` * `PARTNER_COST_TYPE_INTEGRAL_AD_SCIENCE_VIDEO` * `PARTNER_COST_TYPE_MOAT_VIDEO`." - ], - "type": "string" - }, - "invoiceType": { - "description": "The invoice type for this partner cost. * Required when cost_type is one of: - `PARTNER_COST_TYPE_ADLOOX` - `PARTNER_COST_TYPE_DOUBLE_VERIFY` - `PARTNER_COST_TYPE_INTEGRAL_AD_SCIENCE`. * Output only for other types.", - "enum": [ - "PARTNER_COST_INVOICE_TYPE_UNSPECIFIED", - "PARTNER_COST_INVOICE_TYPE_DV360", - "PARTNER_COST_INVOICE_TYPE_PARTNER" - ], - "enumDescriptions": [ - "Type value is not specified or is unknown in this version.", - "Partner cost is billed through DV360.", - "Partner cost is billed by the partner." - ], - "type": "string" - } - }, - "type": "object" - }, - "PartnerDataAccessConfig": { - "description": "Settings that control how partner related data may be accessed.", - "id": "PartnerDataAccessConfig", - "properties": { - "sdfConfig": { - "$ref": "SdfConfig", - "description": "Structured Data Files (SDF) settings for the partner. The SDF configuration for the partner." - } - }, - "type": "object" - }, - "PartnerGeneralConfig": { - "description": "General settings of a partner.", - "id": "PartnerGeneralConfig", - "properties": { - "currencyCode": { - "description": "Immutable. Partner's currency in ISO 4217 format.", - "type": "string" - }, - "timeZone": { - "description": "Immutable. The standard TZ database name of the partner's time zone. For example, `America/New_York`. See more at: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones", - "type": "string" - } - }, - "type": "object" - }, - "PartnerRevenueModel": { - "description": "Settings that control how partner revenue is calculated.", - "id": "PartnerRevenueModel", - "properties": { - "markupAmount": { - "description": "Required. The markup amount of the partner revenue model. Must be greater than or equal to 0. * When the markup_type is set to be `PARTNER_REVENUE_MODEL_MARKUP_TYPE_CPM`, this field represents the CPM markup in micros of advertiser's currency. For example, 1500000 represents 1.5 standard units of the currency. * When the markup_type is set to be `PARTNER_REVENUE_MODEL_MARKUP_TYPE_MEDIA_COST_MARKUP`, this field represents the media cost percent markup in millis. For example, 100 represents 0.1% (decimal 0.001). * When the markup_type is set to be `PARTNER_REVENUE_MODEL_MARKUP_TYPE_TOTAL_MEDIA_COST_MARKUP`, this field represents the total media cost percent markup in millis. For example, 100 represents 0.1% (decimal 0.001).", - "format": "int64", - "type": "string" - }, - "markupType": { - "description": "Required. The markup type of the partner revenue model.", - "enum": [ - "PARTNER_REVENUE_MODEL_MARKUP_TYPE_UNSPECIFIED", - "PARTNER_REVENUE_MODEL_MARKUP_TYPE_CPM", - "PARTNER_REVENUE_MODEL_MARKUP_TYPE_MEDIA_COST_MARKUP", - "PARTNER_REVENUE_MODEL_MARKUP_TYPE_TOTAL_MEDIA_COST_MARKUP" - ], - "enumDeprecated": [ - false, - false, - true, - false - ], - "enumDescriptions": [ - "Type value is not specified or is unknown in this version.", - "Calculate the partner revenue based on a fixed CPM.", - "Calculate the partner revenue based on a percentage surcharge of its media cost.", - "Calculate the partner revenue based on a percentage surcharge of its total media cost, which includes all partner costs and data costs." - ], - "type": "string" - } - }, - "type": "object" - }, - "PerformanceGoal": { - "description": "Settings that control the performance goal of a campaign.", - "id": "PerformanceGoal", - "properties": { - "performanceGoalAmountMicros": { - "description": "The goal amount, in micros of the advertiser's currency. Applicable when performance_goal_type is one of: * `PERFORMANCE_GOAL_TYPE_CPM` * `PERFORMANCE_GOAL_TYPE_CPC` * `PERFORMANCE_GOAL_TYPE_CPA` * `PERFORMANCE_GOAL_TYPE_CPIAVC` * `PERFORMANCE_GOAL_TYPE_VCPM` For example 1500000 represents 1.5 standard units of the currency.", - "format": "int64", - "type": "string" - }, - "performanceGoalPercentageMicros": { - "description": "The decimal representation of the goal percentage in micros. Applicable when performance_goal_type is one of: * `PERFORMANCE_GOAL_TYPE_CTR` * `PERFORMANCE_GOAL_TYPE_VIEWABILITY` * `PERFORMANCE_GOAL_TYPE_CLICK_CVR` * `PERFORMANCE_GOAL_TYPE_IMPRESSION_CVR` * `PERFORMANCE_GOAL_TYPE_VTR` * `PERFORMANCE_GOAL_TYPE_AUDIO_COMPLETION_RATE` * `PERFORMANCE_GOAL_TYPE_VIDEO_COMPLETION_RATE` For example, 70000 represents 7% (decimal 0.07).", - "format": "int64", - "type": "string" - }, - "performanceGoalString": { - "description": "A key performance indicator (KPI) string, which can be empty. Must be UTF-8 encoded with a length of no more than 100 characters. Applicable when performance_goal_type is set to `PERFORMANCE_GOAL_TYPE_OTHER`.", - "type": "string" - }, - "performanceGoalType": { - "description": "Required. The type of the performance goal.", - "enum": [ - "PERFORMANCE_GOAL_TYPE_UNSPECIFIED", - "PERFORMANCE_GOAL_TYPE_CPM", - "PERFORMANCE_GOAL_TYPE_CPC", - "PERFORMANCE_GOAL_TYPE_CPA", - "PERFORMANCE_GOAL_TYPE_CTR", - "PERFORMANCE_GOAL_TYPE_VIEWABILITY", - "PERFORMANCE_GOAL_TYPE_CPIAVC", - "PERFORMANCE_GOAL_TYPE_CPE", - "PERFORMANCE_GOAL_TYPE_CLICK_CVR", - "PERFORMANCE_GOAL_TYPE_IMPRESSION_CVR", - "PERFORMANCE_GOAL_TYPE_VCPM", - "PERFORMANCE_GOAL_TYPE_VTR", - "PERFORMANCE_GOAL_TYPE_AUDIO_COMPLETION_RATE", - "PERFORMANCE_GOAL_TYPE_VIDEO_COMPLETION_RATE", - "PERFORMANCE_GOAL_TYPE_OTHER" - ], - "enumDescriptions": [ - "Performance goal type is not specified or is unknown in this version.", - "The performance goal is set in CPM (cost per mille).", - "The performance goal is set in CPC (cost per click).", - "The performance goal is set in CPA (cost per action).", - "The performance goal is set in CTR (click-through rate) percentage.", - "The performance goal is set in Viewability percentage.", - "The performance goal is set as CPIAVC (cost per impression audible and visible at completion).", - "The performance goal is set in CPE (cost per engagement).", - "The performance goal is set in click conversion rate (conversions per click) percentage.", - "The performance goal is set in impression conversion rate (conversions per impression) percentage.", - "The performance goal is set in VCPM (cost per thousand viewable impressions).", - "The performance goal is set in YouTube view rate (YouTube views per impression) percentage.", - "The performance goal is set in audio completion rate (complete audio listens per impression) percentage.", - "The performance goal is set in video completion rate (complete video views per impression) percentage.", - "The performance goal is set to Other." - ], - "type": "string" - } - }, - "type": "object" - }, - "PerformanceGoalBidStrategy": { - "description": "A strategy that automatically adjusts the bid to meet or beat a specified performance goal.", - "id": "PerformanceGoalBidStrategy", - "properties": { - "customBiddingAlgorithmId": { - "description": "The ID of the Custom Bidding Algorithm used by this strategy. Only applicable when performance_goal_type is set to `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO`.", - "format": "int64", - "type": "string" - }, - "maxAverageCpmBidAmountMicros": { - "description": "The maximum average CPM that may be bid, in micros of the advertiser's currency. Must be greater than or equal to a billable unit of the given currency. Not applicable when performance_goal_type is set to `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM`. For example, 1500000 represents 1.5 standard units of the currency.", - "format": "int64", - "type": "string" - }, - "performanceGoalAmountMicros": { - "description": "Required. The performance goal the bidding strategy will attempt to meet or beat, in micros of the advertiser's currency or in micro of the ROAS (Return On Advertising Spend) value which is also based on advertiser's currency. Must be greater than or equal to a billable unit of the given currency and smaller or equal to upper bounds. Each performance_goal_type has its upper bound: * when performance_goal_type is `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPA`, upper bound is 10000.00 USD. * when performance_goal_type is `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPC`, upper bound is 1000.00 USD. * when performance_goal_type is `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM`, upper bound is 1000.00 USD. * when performance_goal_type is `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO`, upper bound is 1000.00 and lower bound is 0.01. Example: If set to `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM`, the bid price will be based on the probability that each available impression will be viewable. For example, if viewable CPM target is $2 and an impression is 40% likely to be viewable, the bid price will be $0.80 CPM (40% of $2). For example, 1500000 represents 1.5 standard units of the currency or ROAS value.", - "format": "int64", - "type": "string" - }, - "performanceGoalType": { - "description": "Required. The type of the performance goal that the bidding strategy will try to meet or beat. For line item level usage, the value must be one of: * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPA` * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPC` * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM` * `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO`.", - "enum": [ - "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_UNSPECIFIED", - "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPA", - "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPC", - "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_VIEWABLE_CPM", - "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CUSTOM_ALGO", - "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CIVA", - "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_IVO_TEN", - "BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_AV_VIEWED" - ], - "enumDescriptions": [ - "Type value is not specified or is unknown in this version.", - "Cost per action.", - "Cost per click.", - "Viewable CPM.", - "Custom bidding algorithm.", - "Completed inview and audible views.", - "Inview time over 10 secs views.", - "Viewable impressions." - ], - "type": "string" - } - }, - "type": "object" - }, - "PoiAssignedTargetingOptionDetails": { - "description": "Details for assigned POI targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_POI`.", - "id": "PoiAssignedTargetingOptionDetails", - "properties": { - "displayName": { - "description": "Output only. The display name of a POI, e.g. \"Times Square\", \"Space Needle\", followed by its full address if available.", - "readOnly": true, - "type": "string" - }, - "latitude": { - "description": "Output only. Latitude of the POI rounding to 6th decimal place.", - "format": "double", - "readOnly": true, - "type": "number" - }, - "longitude": { - "description": "Output only. Longitude of the POI rounding to 6th decimal place.", - "format": "double", - "readOnly": true, - "type": "number" - }, - "proximityRadiusAmount": { - "description": "Required. The radius of the area around the POI that will be targeted. The units of the radius are specified by proximity_radius_unit. Must be 1 to 800 if unit is `DISTANCE_UNIT_KILOMETERS` and 1 to 500 if unit is `DISTANCE_UNIT_MILES`.", - "format": "double", - "type": "number" - }, - "proximityRadiusUnit": { - "description": "Required. The unit of distance by which the targeting radius is measured.", - "enum": [ - "DISTANCE_UNIT_UNSPECIFIED", - "DISTANCE_UNIT_MILES", - "DISTANCE_UNIT_KILOMETERS" - ], - "enumDescriptions": [ - "Type value is not specified or is unknown in this version.", - "Miles.", - "Kilometers." - ], - "type": "string" - }, - "targetingOptionId": { - "description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. Accepted POI targeting option IDs can be retrieved using SearchTargetingOptions. If targeting a specific latitude/longitude coordinate removed from an address or POI name, you can generate the necessary targeting option ID by rounding the desired coordinate values to the 6th decimal place, removing the decimals, and concatenating the string values separated by a semicolon. For example, you can target the latitude/longitude pair of 40.7414691, -74.003387 using the targeting option ID \"40741469;-74003387\".", - "type": "string" - } - }, - "type": "object" - }, - "PoiSearchTerms": { - "description": "Search terms for POI targeting options.", - "id": "PoiSearchTerms", - "properties": { - "poiQuery": { - "description": "The search query for the desired POI name, street address, or coordinate of the desired POI. The query can be a prefix, e.g. \"Times squar\", \"40.7505045,-73.99562\", \"315 W 44th St\", etc.", - "type": "string" - } - }, - "type": "object" - }, - "PoiTargetingOptionDetails": { - "description": "Represents a targetable point of interest(POI). This will be populated in the poi_details field when targeting_type is `TARGETING_TYPE_POI`.", - "id": "PoiTargetingOptionDetails", - "properties": { - "displayName": { - "description": "Output only. The display name of a POI(e.g. \"Times Square\", \"Space Needle\"), followed by its full address if available.", - "readOnly": true, - "type": "string" - }, - "latitude": { - "description": "Output only. Latitude of the POI rounding to 6th decimal place.", - "format": "double", - "readOnly": true, - "type": "number" - }, - "longitude": { - "description": "Output only. Longitude of the POI rounding to 6th decimal place.", - "format": "double", - "readOnly": true, - "type": "number" - } - }, - "type": "object" - }, - "PrismaConfig": { - "description": "Settings specific to the Mediaocean Prisma tool.", - "id": "PrismaConfig", - "properties": { - "prismaCpeCode": { - "$ref": "PrismaCpeCode", - "description": "Required. Relevant client, product, and estimate codes from the Mediaocean Prisma tool." - }, - "prismaType": { - "description": "Required. The Prisma type.", - "enum": [ - "PRISMA_TYPE_UNSPECIFIED", - "PRISMA_TYPE_DISPLAY", - "PRISMA_TYPE_SEARCH", - "PRISMA_TYPE_VIDEO", - "PRISMA_TYPE_AUDIO", - "PRISMA_TYPE_SOCIAL", - "PRISMA_TYPE_FEE" - ], - "enumDescriptions": [ - "Type is not specified or unknown in this version.", - "Display type.", - "Search type.", - "Video type.", - "Audio type.", - "Social type.", - "Fee type." - ], - "type": "string" - }, - "supplier": { - "description": "Required. The entity allocated this budget (DSP, site, etc.).", - "type": "string" - } - }, - "type": "object" - }, - "PrismaCpeCode": { - "description": "Google Payments Center supports searching and filtering on the component fields of this code.", - "id": "PrismaCpeCode", - "properties": { - "prismaClientCode": { - "description": "The Prisma client code.", - "type": "string" - }, - "prismaEstimateCode": { - "description": "The Prisma estimate code.", - "type": "string" - }, - "prismaProductCode": { - "description": "The Prisma product code.", - "type": "string" - } - }, - "type": "object" - }, - "ProximityLocationListAssignedTargetingOptionDetails": { - "description": "Targeting details for proximity location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`.", - "id": "ProximityLocationListAssignedTargetingOptionDetails", - "properties": { - "proximityLocationListId": { - "description": "Required. ID of the proximity location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`.", - "format": "int64", - "type": "string" - }, - "proximityRadiusRange": { - "description": "Required. Radius range for proximity location list. This represents the size of the area around a chosen location that will be targeted. `All` proximity location targeting under a single resource must have the same radius range value. Set this value to match any existing targeting. If updated, this field will change the radius range for all proximity targeting under the resource.", - "enum": [ - "PROXIMITY_RADIUS_RANGE_UNSPECIFIED", - "PROXIMITY_RADIUS_RANGE_SMALL", - "PROXIMITY_RADIUS_RANGE_MEDIUM", - "PROXIMITY_RADIUS_RANGE_LARGE" - ], - "enumDescriptions": [ - "The targeted radius range is not specified or is unknown. Default value when radius range is not specified in this version. This enum is a placeholder for default value and does not represent a real radius range option.", - "The targeted radius range is small.", - "The targeted radius range is medium.", - "The targeted radius range is large." - ], - "type": "string" - } - }, - "type": "object" - }, - "PublisherReviewStatus": { - "description": "Publisher review status for the creative.", - "id": "PublisherReviewStatus", - "properties": { - "publisherName": { - "description": "The publisher reviewing the creative.", - "type": "string" - }, - "status": { - "description": "Status of the publisher review.", - "enum": [ - "REVIEW_STATUS_UNSPECIFIED", - "REVIEW_STATUS_APPROVED", - "REVIEW_STATUS_REJECTED", - "REVIEW_STATUS_PENDING" - ], - "enumDescriptions": [ - "Type value is not specified or is unknown in this version.", - "The creative is approved.", - "The creative is rejected.", - "The creative is pending review." - ], - "type": "string" - } - }, - "type": "object" - }, - "RateDetails": { - "description": "The rate related settings of the inventory source.", - "id": "RateDetails", - "properties": { - "inventorySourceRateType": { - "description": "The rate type. Acceptable values are `INVENTORY_SOURCE_RATE_TYPE_CPM_FIXED`, `INVENTORY_SOURCE_RATE_TYPE_CPM_FLOOR`, and `INVENTORY_SOURCE_RATE_TYPE_CPD`.", - "enum": [ - "INVENTORY_SOURCE_RATE_TYPE_UNSPECIFIED", - "INVENTORY_SOURCE_RATE_TYPE_CPM_FIXED", - "INVENTORY_SOURCE_RATE_TYPE_CPM_FLOOR", - "INVENTORY_SOURCE_RATE_TYPE_CPD", - "INVENTORY_SOURCE_RATE_TYPE_FLAT" - ], - "enumDescriptions": [ - "The rate type is not specified or is unknown in this version.", - "The rate type is CPM (Fixed).", - "The rate type is CPM (Floor).", - "The rate type is Cost per Day.", - "The rate type is Flat." - ], - "type": "string" - }, - "minimumSpend": { - "$ref": "Money", - "description": "Output only. The amount that the buyer has committed to spending on the inventory source up front. Only applicable for guaranteed inventory sources.", - "readOnly": true - }, - "rate": { - "$ref": "Money", - "description": "The rate for the inventory source." - }, - "unitsPurchased": { - "description": "Required for guaranteed inventory sources. The number of impressions guaranteed by the seller.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "RegionalLocationListAssignedTargetingOptionDetails": { - "description": "Targeting details for regional location list. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_REGIONAL_LOCATION_LIST`.", - "id": "RegionalLocationListAssignedTargetingOptionDetails", - "properties": { - "negative": { - "description": "Indicates if this option is being negatively targeted.", - "type": "boolean" - }, - "regionalLocationListId": { - "description": "Required. ID of the regional location list. Should refer to the location_list_id field of a LocationList resource whose type is `TARGETING_LOCATION_TYPE_REGIONAL`.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "ReplaceNegativeKeywordsRequest": { - "description": "Request message for NegativeKeywordService.ReplaceNegativeKeywords.", - "id": "ReplaceNegativeKeywordsRequest", - "properties": { - "newNegativeKeywords": { - "description": "The negative keywords that will replace the existing keywords in the negative keyword list, specified as a list of NegativeKeywords.", - "items": { - "$ref": "NegativeKeyword" - }, - "type": "array" - } - }, - "type": "object" - }, - "ReplaceNegativeKeywordsResponse": { - "description": "Response message for NegativeKeywordService.ReplaceNegativeKeywords.", - "id": "ReplaceNegativeKeywordsResponse", - "properties": { - "negativeKeywords": { - "description": "The full list of negative keywords now present in the negative keyword list.", - "items": { - "$ref": "NegativeKeyword" - }, - "type": "array" - } - }, - "type": "object" - }, - "ReplaceSitesRequest": { - "description": "Request message for SiteService.ReplaceSites.", - "id": "ReplaceSitesRequest", - "properties": { - "advertiserId": { - "description": "The ID of the advertiser that owns the parent channel.", - "format": "int64", - "type": "string" - }, - "newSites": { - "description": "The sites that will replace the existing sites assigned to the channel, specified as a list of Sites.", - "items": { - "$ref": "Site" - }, - "type": "array" - }, - "partnerId": { - "description": "The ID of the partner that owns the parent channel.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "ReplaceSitesResponse": { - "description": "Response message for SiteService.ReplaceSites.", - "id": "ReplaceSitesResponse", - "properties": { - "sites": { - "description": "The list of sites in the channel after replacing.", - "items": { - "$ref": "Site" - }, - "type": "array" - } - }, - "type": "object" - }, - "ReviewStatusInfo": { - "description": "Review statuses for the creative.", - "id": "ReviewStatusInfo", - "properties": { - "approvalStatus": { - "description": "Represents the basic approval needed for a creative to begin serving. Summary of creative_and_landing_page_review_status and content_and_policy_review_status.", - "enum": [ - "APPROVAL_STATUS_UNSPECIFIED", - "APPROVAL_STATUS_PENDING_NOT_SERVABLE", - "APPROVAL_STATUS_PENDING_SERVABLE", - "APPROVAL_STATUS_APPROVED_SERVABLE", - "APPROVAL_STATUS_REJECTED_NOT_SERVABLE" - ], - "enumDescriptions": [ - "Type value is not specified or is unknown in this version.", - "The creative is still under review and not servable.", - "The creative has passed creative & landing page review and is servable, but is awaiting additional content & policy review.", - "Both creative & landing page review and content & policy review are approved. The creative is servable.", - "There is an issue with the creative that must be fixed before it can serve." - ], - "type": "string" - }, - "contentAndPolicyReviewStatus": { - "description": "Content and policy review status for the creative.", - "enum": [ - "REVIEW_STATUS_UNSPECIFIED", - "REVIEW_STATUS_APPROVED", - "REVIEW_STATUS_REJECTED", - "REVIEW_STATUS_PENDING" - ], - "enumDescriptions": [ - "Type value is not specified or is unknown in this version.", - "The creative is approved.", - "The creative is rejected.", - "The creative is pending review." - ], - "type": "string" - }, - "creativeAndLandingPageReviewStatus": { - "description": "Creative and landing page review status for the creative.", - "enum": [ - "REVIEW_STATUS_UNSPECIFIED", - "REVIEW_STATUS_APPROVED", - "REVIEW_STATUS_REJECTED", - "REVIEW_STATUS_PENDING" - ], - "enumDescriptions": [ - "Type value is not specified or is unknown in this version.", - "The creative is approved.", - "The creative is rejected.", - "The creative is pending review." - ], - "type": "string" - }, - "exchangeReviewStatuses": { - "description": "Exchange review statuses for the creative.", - "items": { - "$ref": "ExchangeReviewStatus" - }, - "type": "array" - }, - "publisherReviewStatuses": { - "description": "Publisher review statuses for the creative.", - "items": { - "$ref": "PublisherReviewStatus" - }, - "type": "array" - } - }, - "type": "object" - }, - "ScriptError": { - "description": "An error message for a custom bidding script.", - "id": "ScriptError", - "properties": { - "column": { - "description": "The column number in the script where the error was thrown.", - "format": "int64", - "type": "string" - }, - "errorCode": { - "description": "The type of error.", - "enum": [ - "ERROR_CODE_UNSPECIFIED", - "SYNTAX_ERROR", - "DEPRECATED_SYNTAX", - "INTERNAL_ERROR" - ], - "enumDescriptions": [ - "The script error is not specified or is unknown in this version.", - "The script has a syntax error.", - "The script uses deprecated syntax.", - "Internal errors were thrown while processing the script." - ], - "type": "string" - }, - "errorMessage": { - "description": "The detailed error message.", - "type": "string" - }, - "line": { - "description": "The line number in the script where the error was thrown.", - "format": "int64", - "type": "string" - } - }, - "type": "object" - }, - "SdfConfig": { - "description": "Structured Data File (SDF) related settings.", - "id": "SdfConfig", - "properties": { - "adminEmail": { - "description": "An administrator email address to which the SDF processing status reports will be sent.", - "type": "string" - }, - "version": { - "description": "Required. The version of SDF being used.", - "enum": [ - "SDF_VERSION_UNSPECIFIED", - "SDF_VERSION_3_1", - "SDF_VERSION_4", - "SDF_VERSION_4_1", - "SDF_VERSION_4_2", - "SDF_VERSION_5", - "SDF_VERSION_5_1", - "SDF_VERSION_5_2", - "SDF_VERSION_5_3", - "SDF_VERSION_5_4", - "SDF_VERSION_5_5", - "SDF_VERSION_6", - "SDF_VERSION_7" - ], - "enumDeprecated": [ - false, - true, - true, - true, - true, - true, - true, - true, - true, - false, - false, - false, - false - ], - "enumDescriptions": [ - "SDF version value is not specified or is unknown in this version.", - "SDF version 3.1", - "SDF version 4", - "SDF version 4.1", - "SDF version 4.2", - "SDF version 5.", - "SDF version 5.1", - "SDF version 5.2", - "SDF version 5.3", - "SDF version 5.4", - "SDF version 5.5", - "SDF version 6", - "SDF version 7. Read the [v7 migration guide](/display-video/api/structured-data-file/v7-migration-guide) before migrating to this version. Currently in beta. Only available for use by a subset of users." - ], - "type": "string" - } - }, - "type": "object" - }, - "SdfDownloadTask": { - "description": "Type for the response returned by [SdfDownloadTaskService.CreateSdfDownloadTask].", - "id": "SdfDownloadTask", - "properties": { - "resourceName": { - "description": "A resource name to be used in media.download to Download the prepared files. Resource names have the format `download/sdfdownloadtasks/media/{media_id}`. `media_id` will be made available by the long running operation service once the task status is done.", - "type": "string" - } - }, - "type": "object" - }, - "SdfDownloadTaskMetadata": { - "description": "Type for the metadata returned by [SdfDownloadTaskService.CreateSdfDownloadTask].", - "id": "SdfDownloadTaskMetadata", - "properties": { - "createTime": { - "description": "The time when the operation was created.", - "format": "google-datetime", - "type": "string" - }, - "endTime": { - "description": "The time when execution was completed.", - "format": "google-datetime", - "type": "string" - }, - "version": { - "description": "The SDF version used to execute this download task.", - "enum": [ - "SDF_VERSION_UNSPECIFIED", - "SDF_VERSION_3_1", - "SDF_VERSION_4", - "SDF_VERSION_4_1", - "SDF_VERSION_4_2", - "SDF_VERSION_5", - "SDF_VERSION_5_1", - "SDF_VERSION_5_2", - "SDF_VERSION_5_3", - "SDF_VERSION_5_4", - "SDF_VERSION_5_5", - "SDF_VERSION_6", - "SDF_VERSION_7" - ], - "enumDeprecated": [ - false, - true, - true, - true, - true, - true, - true, - true, - true, - false, - false, - false, - false - ], - "enumDescriptions": [ - "SDF version value is not specified or is unknown in this version.", - "SDF version 3.1", - "SDF version 4", - "SDF version 4.1", - "SDF version 4.2", - "SDF version 5.", - "SDF version 5.1", - "SDF version 5.2", - "SDF version 5.3", - "SDF version 5.4", - "SDF version 5.5", - "SDF version 6", - "SDF version 7. Read the [v7 migration guide](/display-video/api/structured-data-file/v7-migration-guide) before migrating to this version. Currently in beta. Only available for use by a subset of users." - ], - "type": "string" - } - }, - "type": "object" - }, - "SearchTargetingOptionsRequest": { - "description": "Request message for SearchTargetingOptions.", - "id": "SearchTargetingOptionsRequest", - "properties": { - "advertiserId": { - "description": "Required. The Advertiser this request is being made in the context of.", - "format": "int64", - "type": "string" - }, - "businessChainSearchTerms": { - "$ref": "BusinessChainSearchTerms", - "description": "Search terms for Business Chain targeting options. Can only be used when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`." - }, - "geoRegionSearchTerms": { - "$ref": "GeoRegionSearchTerms", - "description": "Search terms for geo region targeting options. Can only be used when targeting_type is `TARGETING_TYPE_GEO_REGION`." - }, - "pageSize": { - "description": "Requested page size. Must be between `1` and `200`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", - "format": "int32", - "type": "integer" - }, - "pageToken": { - "description": "A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `SearchTargetingOptions` method. If not specified, the first page of results will be returned.", - "type": "string" - }, - "poiSearchTerms": { - "$ref": "PoiSearchTerms", - "description": "Search terms for POI targeting options. Can only be used when targeting_type is `TARGETING_TYPE_POI`." - } - }, - "type": "object" - }, - "SearchTargetingOptionsResponse": { - "description": "Response message for SearchTargetingOptions.", - "id": "SearchTargetingOptionsResponse", - "properties": { - "nextPageToken": { - "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `SearchTargetingOptions` method to retrieve the next page of results.", - "type": "string" - }, - "targetingOptions": { - "description": "The list of targeting options that match the search criteria. This list will be absent if empty.", - "items": { - "$ref": "TargetingOption" - }, - "type": "array" - } - }, - "type": "object" - }, - "SensitiveCategoryAssignedTargetingOptionDetails": { - "description": "Targeting details for sensitive category. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`.", - "id": "SensitiveCategoryAssignedTargetingOptionDetails", - "properties": { - "excludedTargetingOptionId": { - "description": "Required. ID of the sensitive category to be EXCLUDED.", - "type": "string" - }, - "sensitiveCategory": { - "description": "Output only. An enum for the DV360 Sensitive category content classifier.", - "enum": [ - "SENSITIVE_CATEGORY_UNSPECIFIED", - "SENSITIVE_CATEGORY_ADULT", - "SENSITIVE_CATEGORY_DEROGATORY", - "SENSITIVE_CATEGORY_DOWNLOADS_SHARING", - "SENSITIVE_CATEGORY_WEAPONS", - "SENSITIVE_CATEGORY_GAMBLING", - "SENSITIVE_CATEGORY_VIOLENCE", - "SENSITIVE_CATEGORY_SUGGESTIVE", - "SENSITIVE_CATEGORY_PROFANITY", - "SENSITIVE_CATEGORY_ALCOHOL", - "SENSITIVE_CATEGORY_DRUGS", - "SENSITIVE_CATEGORY_TOBACCO", - "SENSITIVE_CATEGORY_POLITICS", - "SENSITIVE_CATEGORY_RELIGION", - "SENSITIVE_CATEGORY_TRAGEDY", - "SENSITIVE_CATEGORY_TRANSPORTATION_ACCIDENTS", - "SENSITIVE_CATEGORY_SENSITIVE_SOCIAL_ISSUES", - "SENSITIVE_CATEGORY_SHOCKING" - ], - "enumDescriptions": [ - "This enum is only a placeholder and doesn't specify a DV360 sensitive category.", - "Adult or pornographic text, image, or video content.", - "Content that may be construed as biased against individuals, groups, or organizations based on criteria such as race, religion, disability, sex, age, veteran status, sexual orientation, gender identity, or political affiliation. May also indicate discussion of such content, for instance, in an academic or journalistic context.", - "Content related to audio, video, or software downloads.", - "Contains content related to personal weapons, including knives, guns, small firearms, and ammunition. Selecting either \"weapons\" or \"sensitive social issues\" will result in selecting both.", - "Contains content related to betting or wagering in a real-world or online setting.", - "Content which may be considered graphically violent, gory, gruesome, or shocking, such as street fighting videos, accident photos, descriptions of torture, etc.", - "Adult content, as well as suggestive content that's not explicitly pornographic. This category includes all pages categorized as adult.", - "Prominent use of words considered indecent, such as curse words and sexual slang. Pages with only very occasional usage, such as news sites that might include such words in a quotation, are not included.", - "Contains content related to alcoholic beverages, alcohol brands, recipes, etc.", - "Contains content related to the recreational use of legal or illegal drugs, as well as to drug paraphernalia or cultivation.", - "Contains content related to tobacco and tobacco accessories, including lighters, humidors, ashtrays, etc.", - "Political news and media, including discussions of social, governmental, and public policy.", - "Content related to religious thought or beliefs.", - "Content related to death, disasters, accidents, war, etc.", - "Content related to motor vehicle, aviation or other transportation accidents.", - "Issues that evoke strong, opposing views and spark debate. These include issues that are controversial in most countries and markets (such as abortion), as well as those that are controversial in specific countries and markets (such as immigration reform in the United States).", - "Content which may be considered shocking or disturbing, such as violent news stories, stunts, or toilet humor." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "SensitiveCategoryTargetingOptionDetails": { - "description": "Represents a targetable sensitive category. This will be populated in the sensitive_category_details field of the TargetingOption when targeting_type is `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`.", - "id": "SensitiveCategoryTargetingOptionDetails", - "properties": { - "sensitiveCategory": { - "description": "Output only. An enum for the DV360 Sensitive category content classifier.", - "enum": [ - "SENSITIVE_CATEGORY_UNSPECIFIED", - "SENSITIVE_CATEGORY_ADULT", - "SENSITIVE_CATEGORY_DEROGATORY", - "SENSITIVE_CATEGORY_DOWNLOADS_SHARING", - "SENSITIVE_CATEGORY_WEAPONS", - "SENSITIVE_CATEGORY_GAMBLING", - "SENSITIVE_CATEGORY_VIOLENCE", - "SENSITIVE_CATEGORY_SUGGESTIVE", - "SENSITIVE_CATEGORY_PROFANITY", - "SENSITIVE_CATEGORY_ALCOHOL", - "SENSITIVE_CATEGORY_DRUGS", - "SENSITIVE_CATEGORY_TOBACCO", - "SENSITIVE_CATEGORY_POLITICS", - "SENSITIVE_CATEGORY_RELIGION", - "SENSITIVE_CATEGORY_TRAGEDY", - "SENSITIVE_CATEGORY_TRANSPORTATION_ACCIDENTS", - "SENSITIVE_CATEGORY_SENSITIVE_SOCIAL_ISSUES", - "SENSITIVE_CATEGORY_SHOCKING" - ], - "enumDescriptions": [ - "This enum is only a placeholder and doesn't specify a DV360 sensitive category.", - "Adult or pornographic text, image, or video content.", - "Content that may be construed as biased against individuals, groups, or organizations based on criteria such as race, religion, disability, sex, age, veteran status, sexual orientation, gender identity, or political affiliation. May also indicate discussion of such content, for instance, in an academic or journalistic context.", - "Content related to audio, video, or software downloads.", - "Contains content related to personal weapons, including knives, guns, small firearms, and ammunition. Selecting either \"weapons\" or \"sensitive social issues\" will result in selecting both.", - "Contains content related to betting or wagering in a real-world or online setting.", - "Content which may be considered graphically violent, gory, gruesome, or shocking, such as street fighting videos, accident photos, descriptions of torture, etc.", - "Adult content, as well as suggestive content that's not explicitly pornographic. This category includes all pages categorized as adult.", - "Prominent use of words considered indecent, such as curse words and sexual slang. Pages with only very occasional usage, such as news sites that might include such words in a quotation, are not included.", - "Contains content related to alcoholic beverages, alcohol brands, recipes, etc.", - "Contains content related to the recreational use of legal or illegal drugs, as well as to drug paraphernalia or cultivation.", - "Contains content related to tobacco and tobacco accessories, including lighters, humidors, ashtrays, etc.", - "Political news and media, including discussions of social, governmental, and public policy.", - "Content related to religious thought or beliefs.", - "Content related to death, disasters, accidents, war, etc.", - "Content related to motor vehicle, aviation or other transportation accidents.", - "Issues that evoke strong, opposing views and spark debate. These include issues that are controversial in most countries and markets (such as abortion), as well as those that are controversial in specific countries and markets (such as immigration reform in the United States).", - "Content which may be considered shocking or disturbing, such as violent news stories, stunts, or toilet humor." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "Site": { - "description": "A single site. Sites are apps or websites belonging to a channel.", - "id": "Site", - "properties": { - "name": { - "description": "Output only. The resource name of the site.", - "readOnly": true, - "type": "string" - }, - "urlOrAppId": { - "description": "Required. The app ID or URL of the site. Must be UTF-8 encoded with a maximum length of 240 bytes.", - "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", - "properties": { - "code": { - "description": "The status code, which should be an enum value of google.rpc.Code.", - "format": "int32", - "type": "integer" - }, - "details": { - "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", - "items": { - "additionalProperties": { - "description": "Properties of the object. Contains field @type with type URL.", - "type": "any" - }, - "type": "object" - }, - "type": "array" - }, - "message": { - "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", - "type": "string" - } - }, - "type": "object" - }, - "SubExchangeAssignedTargetingOptionDetails": { - "description": "Details for assigned sub-exchange targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_SUB_EXCHANGE`.", - "id": "SubExchangeAssignedTargetingOptionDetails", - "properties": { - "targetingOptionId": { - "description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_SUB_EXCHANGE`.", - "type": "string" - } - }, - "type": "object" - }, - "SubExchangeTargetingOptionDetails": { - "description": "Represents a targetable sub-exchange. This will be populated in the sub_exchange_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_SUB_EXCHANGE`.", - "id": "SubExchangeTargetingOptionDetails", - "properties": { - "displayName": { - "description": "Output only. The display name of the sub-exchange.", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "TargetingExpansionConfig": { - "description": "Settings that control the [optimized targeting](//support.google.com/displayvideo/answer/12060859) settings of the line item.", - "id": "TargetingExpansionConfig", - "properties": { - "excludeFirstPartyAudience": { - "deprecated": true, - "description": "Whether to exclude first-party audiences from use in targeting expansion. This field was deprecated with the launch of [optimized targeting](//support.google.com/displayvideo/answer/12060859). This field will be set to `false`. If this field is set to `true` when deprecated, all positive first-party audience targeting assigned to this line item will be replaced with negative targeting of the same first-party audiences to ensure the continued exclusion of those audiences.", - "type": "boolean" - }, - "targetingExpansionLevel": { - "description": "Required. Whether optimized targeting is turned on. This field supports the following values: * `NO_EXPANSION`: optimized targeting is turned off * `LEAST_EXPANSION`: optimized targeting is turned on If this field is set to any other value, it will automatically be set to `LEAST_EXPANSION`. `NO_EXPANSION` will be the default value for the field and will be automatically assigned if you do not set the field.", - "enum": [ - "TARGETING_EXPANSION_LEVEL_UNSPECIFIED", - "NO_EXPANSION", - "LEAST_EXPANSION", - "SOME_EXPANSION", - "BALANCED_EXPANSION", - "MORE_EXPANSION", - "MOST_EXPANSION" - ], - "enumDeprecated": [ - false, - false, - false, - true, - true, - true, - true - ], - "enumDescriptions": [ - "The optimized targeting setting is not specified or is unknown in this version.", - "Optimized targeting is off.", - "Optimized targeting is on.", - "If used, will automatically be set to `LEAST_EXPANSION`.", - "If used, will automatically be set to `LEAST_EXPANSION`.", - "If used, will automatically be set to `LEAST_EXPANSION`.", - "If used, will automatically be set to `LEAST_EXPANSION`." - ], - "type": "string" - } - }, - "type": "object" - }, - "TargetingOption": { - "description": "Represents a single targeting option, which is a targetable concept in DV360.", - "id": "TargetingOption", - "properties": { - "ageRangeDetails": { - "$ref": "AgeRangeTargetingOptionDetails", - "description": "Age range details." - }, - "appCategoryDetails": { - "$ref": "AppCategoryTargetingOptionDetails", - "description": "App category details." - }, - "audioContentTypeDetails": { - "$ref": "AudioContentTypeTargetingOptionDetails", - "description": "Audio content type details." - }, - "authorizedSellerStatusDetails": { - "$ref": "AuthorizedSellerStatusTargetingOptionDetails", - "description": "Authorized seller status resource details." - }, - "browserDetails": { - "$ref": "BrowserTargetingOptionDetails", - "description": "Browser details." - }, - "businessChainDetails": { - "$ref": "BusinessChainTargetingOptionDetails", - "description": "Business chain resource details." - }, - "carrierAndIspDetails": { - "$ref": "CarrierAndIspTargetingOptionDetails", - "description": "Carrier and ISP details." - }, - "categoryDetails": { - "$ref": "CategoryTargetingOptionDetails", - "description": "Category resource details." - }, - "contentDurationDetails": { - "$ref": "ContentDurationTargetingOptionDetails", - "description": "Content duration resource details." - }, - "contentGenreDetails": { - "$ref": "ContentGenreTargetingOptionDetails", - "description": "Content genre resource details." - }, - "contentInstreamPositionDetails": { - "$ref": "ContentInstreamPositionTargetingOptionDetails", - "description": "Content instream position details." - }, - "contentOutstreamPositionDetails": { - "$ref": "ContentOutstreamPositionTargetingOptionDetails", - "description": "Content outstream position details." - }, - "contentStreamTypeDetails": { - "$ref": "ContentStreamTypeTargetingOptionDetails", - "description": "Content stream type resource details." - }, - "deviceMakeModelDetails": { - "$ref": "DeviceMakeModelTargetingOptionDetails", - "description": "Device make and model resource details." - }, - "deviceTypeDetails": { - "$ref": "DeviceTypeTargetingOptionDetails", - "description": "Device type details." - }, - "digitalContentLabelDetails": { - "$ref": "DigitalContentLabelTargetingOptionDetails", - "description": "Digital content label details." - }, - "environmentDetails": { - "$ref": "EnvironmentTargetingOptionDetails", - "description": "Environment details." - }, - "exchangeDetails": { - "$ref": "ExchangeTargetingOptionDetails", - "description": "Exchange details." - }, - "genderDetails": { - "$ref": "GenderTargetingOptionDetails", - "description": "Gender details." - }, - "geoRegionDetails": { - "$ref": "GeoRegionTargetingOptionDetails", - "description": "Geographic region resource details." - }, - "householdIncomeDetails": { - "$ref": "HouseholdIncomeTargetingOptionDetails", - "description": "Household income details." - }, - "languageDetails": { - "$ref": "LanguageTargetingOptionDetails", - "description": "Language resource details." - }, - "name": { - "description": "Output only. The resource name for this targeting option.", - "readOnly": true, - "type": "string" - }, - "nativeContentPositionDetails": { - "$ref": "NativeContentPositionTargetingOptionDetails", - "description": "Native content position details." - }, - "omidDetails": { - "$ref": "OmidTargetingOptionDetails", - "description": "Open Measurement enabled inventory details." - }, - "onScreenPositionDetails": { - "$ref": "OnScreenPositionTargetingOptionDetails", - "description": "On screen position details." - }, - "operatingSystemDetails": { - "$ref": "OperatingSystemTargetingOptionDetails", - "description": "Operating system resources details." - }, - "parentalStatusDetails": { - "$ref": "ParentalStatusTargetingOptionDetails", - "description": "Parental status details." - }, - "poiDetails": { - "$ref": "PoiTargetingOptionDetails", - "description": "POI resource details." - }, - "sensitiveCategoryDetails": { - "$ref": "SensitiveCategoryTargetingOptionDetails", - "description": "Sensitive Category details." - }, - "subExchangeDetails": { - "$ref": "SubExchangeTargetingOptionDetails", - "description": "Sub-exchange details." - }, - "targetingOptionId": { - "description": "Output only. A unique identifier for this targeting option. The tuple {`targeting_type`, `targeting_option_id`} will be unique.", - "readOnly": true, - "type": "string" - }, - "targetingType": { - "description": "Output only. The type of this targeting option.", - "enum": [ - "TARGETING_TYPE_UNSPECIFIED", - "TARGETING_TYPE_CHANNEL", - "TARGETING_TYPE_APP_CATEGORY", - "TARGETING_TYPE_APP", - "TARGETING_TYPE_URL", - "TARGETING_TYPE_DAY_AND_TIME", - "TARGETING_TYPE_AGE_RANGE", - "TARGETING_TYPE_REGIONAL_LOCATION_LIST", - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST", - "TARGETING_TYPE_GENDER", - "TARGETING_TYPE_VIDEO_PLAYER_SIZE", - "TARGETING_TYPE_USER_REWARDED_CONTENT", - "TARGETING_TYPE_PARENTAL_STATUS", - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION", - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION", - "TARGETING_TYPE_DEVICE_TYPE", - "TARGETING_TYPE_AUDIENCE_GROUP", - "TARGETING_TYPE_BROWSER", - "TARGETING_TYPE_HOUSEHOLD_INCOME", - "TARGETING_TYPE_ON_SCREEN_POSITION", - "TARGETING_TYPE_THIRD_PARTY_VERIFIER", - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION", - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION", - "TARGETING_TYPE_ENVIRONMENT", - "TARGETING_TYPE_CARRIER_AND_ISP", - "TARGETING_TYPE_OPERATING_SYSTEM", - "TARGETING_TYPE_DEVICE_MAKE_MODEL", - "TARGETING_TYPE_KEYWORD", - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST", - "TARGETING_TYPE_VIEWABILITY", - "TARGETING_TYPE_CATEGORY", - "TARGETING_TYPE_INVENTORY_SOURCE", - "TARGETING_TYPE_LANGUAGE", - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS", - "TARGETING_TYPE_GEO_REGION", - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP", - "TARGETING_TYPE_EXCHANGE", - "TARGETING_TYPE_SUB_EXCHANGE", - "TARGETING_TYPE_POI", - "TARGETING_TYPE_BUSINESS_CHAIN", - "TARGETING_TYPE_CONTENT_DURATION", - "TARGETING_TYPE_CONTENT_STREAM_TYPE", - "TARGETING_TYPE_NATIVE_CONTENT_POSITION", - "TARGETING_TYPE_OMID", - "TARGETING_TYPE_AUDIO_CONTENT_TYPE", - "TARGETING_TYPE_CONTENT_GENRE" - ], - "enumDescriptions": [ - "Default value when type is not specified or is unknown in this version.", - "Target a channel (a custom group of related websites or apps).", - "Target an app category (for example, education or puzzle games).", - "Target a specific app (for example, Angry Birds).", - "Target a specific url (for example, quora.com).", - "Target ads during a chosen time period on a specific day.", - "Target ads to a specific age range (for example, 18-24).", - "Target ads to the specified regions on a regional location list.", - "Target ads to the specified points of interest on a proximity location list.", - "Target ads to a specific gender (for example, female or male).", - "Target a specific video player size for video ads.", - "Target user rewarded content for video ads.", - "Target ads to a specific parental status (for example, parent or not a parent).", - "Target video or audio ads in a specific content instream position (for example, pre-roll, mid-roll, or post-roll).", - "Target ads in a specific content outstream position.", - "Target ads to a specific device type (for example, tablet or connected TV).", - "Target ads to an audience or groups of audiences. Singleton field, at most one can exist on a single Lineitem at a time.", - "Target ads to specific web browsers (for example, Chrome).", - "Target ads to a specific household income range (for example, top 10%).", - "Target ads in a specific on screen position.", - "Filter web sites through third party verification (for example, IAS or DoubleVerify).", - "Filter web sites by specific digital content label ratings (for example, DL-MA: suitable only for mature audiences).", - "Filter website content by sensitive categories (for example, adult).", - "Target ads to a specific environment (for example, web or app).", - "Target ads to a specific network carrier or internet service provider (ISP) (for example, Comcast or Orange).", - "Target ads to a specific operating system (for example, macOS).", - "Target ads to a specific device make or model (for example, Roku or Samsung).", - "Target ads to a specific keyword (for example, dog or retriever).", - "Target ads to a specific negative keyword list.", - "Target ads to a specific viewability (for example, 80% viewable).", - "Target ads to a specific content category (for example, arts & entertainment).", - "Purchase impressions from specific deals and auction packages.", - "Target ads to a specific language (for example, English or Japanese).", - "Target ads to ads.txt authorized sellers. If no targeting option of this type is assigned, the resource uses the \"Authorized Direct Sellers and Resellers\" option by default.", - "Target ads to a specific regional location (for example, a city or state).", - "Purchase impressions from a group of deals and auction packages.", - "Purchase impressions from specific exchanges.", - "Purchase impressions from specific sub-exchanges.", - "Target ads around a specific point of interest, such as a notable building, a street address, or latitude/longitude coordinates.", - "Target ads around locations of a business chain within a specific geo region.", - "Target ads to a specific video content duration.", - "Target ads to a specific video content stream type.", - "Target ads to a specific native content position.", - "Target ads in an Open Measurement enabled inventory.", - "Target ads to a specific audio content type.", - "Target ads to a specific content genre." - ], - "readOnly": true, - "type": "string" - }, - "userRewardedContentDetails": { - "$ref": "UserRewardedContentTargetingOptionDetails", - "description": "User rewarded content details." - }, - "videoPlayerSizeDetails": { - "$ref": "VideoPlayerSizeTargetingOptionDetails", - "description": "Video player size details." - }, - "viewabilityDetails": { - "$ref": "ViewabilityTargetingOptionDetails", - "description": "Viewability resource details." - } - }, - "type": "object" - }, - "ThirdPartyOnlyConfig": { - "description": "Settings for advertisers that use third-party ad servers only.", - "id": "ThirdPartyOnlyConfig", - "properties": { - "pixelOrderIdReportingEnabled": { - "description": "Whether or not order ID reporting for pixels is enabled. This value cannot be changed once set to `true`.", - "type": "boolean" - } - }, - "type": "object" - }, - "ThirdPartyUrl": { - "description": "Tracking URLs from third parties to track interactions with an audio or a video creative.", - "id": "ThirdPartyUrl", - "properties": { - "type": { - "description": "The type of interaction needs to be tracked by the tracking URL", - "enum": [ - "THIRD_PARTY_URL_TYPE_UNSPECIFIED", - "THIRD_PARTY_URL_TYPE_IMPRESSION", - "THIRD_PARTY_URL_TYPE_CLICK_TRACKING", - "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_START", - "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_FIRST_QUARTILE", - "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_MIDPOINT", - "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_THIRD_QUARTILE", - "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_COMPLETE", - "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_MUTE", - "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_PAUSE", - "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_REWIND", - "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_FULLSCREEN", - "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_STOP", - "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_CUSTOM", - "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_SKIP", - "THIRD_PARTY_URL_TYPE_AUDIO_VIDEO_PROGRESS" - ], - "enumDescriptions": [ - "The type of third-party URL is unspecified or is unknown in this version.", - "Used to count impressions of the creative after the audio or video buffering is complete.", - "Used to track user clicks on the audio or video.", - "Used to track the number of times a user starts the audio or video.", - "Used to track the number of times the audio or video plays to 25% of its length.", - "Used to track the number of times the audio or video plays to 50% of its length.", - "Used to track the number of times the audio or video plays to 75% of its length.", - "Used to track the number of times the audio or video plays to the end.", - "Used to track the number of times a user mutes the audio or video.", - "Used to track the number of times a user pauses the audio or video.", - "Used to track the number of times a user replays the audio or video.", - "Used to track the number of times a user expands the player to full-screen size.", - "Used to track the number of times a user stops the audio or video.", - "Used to track the number of times a user performs a custom click, such as clicking on a video hot spot.", - "Used to track the number of times the audio or video was skipped.", - "Used to track the number of times the audio or video plays to an offset determined by the progress_offset." - ], - "type": "string" - }, - "url": { - "description": "Tracking URL used to track the interaction. Provide a URL with optional path or query string, beginning with `https:`. For example, https://www.example.com/path", - "type": "string" - } - }, - "type": "object" - }, - "ThirdPartyVerifierAssignedTargetingOptionDetails": { - "description": "Assigned third party verifier targeting option details. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_THIRD_PARTY_VERIFIER`.", - "id": "ThirdPartyVerifierAssignedTargetingOptionDetails", - "properties": { - "adloox": { - "$ref": "Adloox", - "description": "Third party brand verifier -- Adloox." - }, - "doubleVerify": { - "$ref": "DoubleVerify", - "description": "Third party brand verifier -- DoubleVerify." - }, - "integralAdScience": { - "$ref": "IntegralAdScience", - "description": "Third party brand verifier -- Integral Ad Science." - } - }, - "type": "object" - }, - "TimeRange": { - "description": "A time range.", - "id": "TimeRange", - "properties": { - "endTime": { - "description": "Required. The upper bound of a time range, inclusive.", - "format": "google-datetime", - "type": "string" - }, - "startTime": { - "description": "Required. The lower bound of a time range, inclusive.", - "format": "google-datetime", - "type": "string" - } - }, - "type": "object" - }, - "TimerEvent": { - "description": "Timer event of the creative.", - "id": "TimerEvent", - "properties": { - "name": { - "description": "Required. The name of the timer event.", - "type": "string" - }, - "reportingName": { - "description": "Required. The name used to identify this timer event in reports.", - "type": "string" - } - }, - "type": "object" - }, - "TrackingFloodlightActivityConfig": { - "description": "Settings that control the behavior of a single Floodlight activity config.", - "id": "TrackingFloodlightActivityConfig", - "properties": { - "floodlightActivityId": { - "description": "Required. The ID of the Floodlight activity.", - "format": "int64", - "type": "string" - }, - "postClickLookbackWindowDays": { - "description": "Required. The number of days after an ad has been clicked in which a conversion may be counted. Must be between 0 and 90 inclusive.", - "format": "int32", - "type": "integer" - }, - "postViewLookbackWindowDays": { - "description": "Required. The number of days after an ad has been viewed in which a conversion may be counted. Must be between 0 and 90 inclusive.", - "format": "int32", - "type": "integer" - } - }, - "type": "object" - }, - "Transcode": { - "description": "Represents information about the transcoded audio or video file.", - "id": "Transcode", - "properties": { - "audioBitRateKbps": { - "description": "The bit rate for the audio stream of the transcoded video, or the bit rate for the transcoded audio, in kilobits per second.", - "format": "int64", - "type": "string" - }, - "audioSampleRateHz": { - "description": "The sample rate for the audio stream of the transcoded video, or the sample rate for the transcoded audio, in hertz.", - "format": "int64", - "type": "string" - }, - "bitRateKbps": { - "description": "The transcoding bit rate of the transcoded video, in kilobits per second.", - "format": "int64", - "type": "string" - }, - "dimensions": { - "$ref": "Dimensions", - "description": "The dimensions of the transcoded video." - }, - "fileSizeBytes": { - "description": "The size of the transcoded file, in bytes.", - "format": "int64", - "type": "string" - }, - "frameRate": { - "description": "The frame rate of the transcoded video, in frames per second.", - "format": "float", - "type": "number" - }, - "mimeType": { - "description": "The MIME type of the transcoded file.", - "type": "string" - }, - "name": { - "description": "The name of the transcoded file.", - "type": "string" - }, - "transcoded": { - "description": "Indicates if the transcoding was successful.", - "type": "boolean" - } - }, - "type": "object" - }, - "UniversalAdId": { - "description": "A creative identifier provided by a registry that is unique across all platforms. This is part of the VAST 4.0 standard.", - "id": "UniversalAdId", - "properties": { - "id": { - "description": "The unique creative identifier.", - "type": "string" - }, - "registry": { - "description": "The registry provides unique creative identifiers.", - "enum": [ - "UNIVERSAL_AD_REGISTRY_UNSPECIFIED", - "UNIVERSAL_AD_REGISTRY_OTHER", - "UNIVERSAL_AD_REGISTRY_AD_ID", - "UNIVERSAL_AD_REGISTRY_CLEARCAST", - "UNIVERSAL_AD_REGISTRY_DV360", - "UNIVERSAL_AD_REGISTRY_CM" - ], - "enumDescriptions": [ - "The Universal Ad registry is unspecified or is unknown in this version.", - "Use a custom provider to provide the Universal Ad ID.", - "Use Ad-ID to provide the Universal Ad ID.", - "Use clearcast.co.uk to provide the Universal Ad ID.", - "Use Display & Video 360 to provide the Universal Ad ID.", - "Use Campaign Manager 360 to provide the Universal Ad ID." - ], - "type": "string" - } - }, - "type": "object" - }, - "UrlAssignedTargetingOptionDetails": { - "description": "Details for assigned URL targeting option. This will be populated in the details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_URL`.", - "id": "UrlAssignedTargetingOptionDetails", - "properties": { - "negative": { - "description": "Indicates if this option is being negatively targeted.", - "type": "boolean" - }, - "url": { - "description": "Required. The URL, for example `example.com`. DV360 supports two levels of subdirectory targeting, for example `www.example.com/one-subdirectory-level/second-level`, and five levels of subdomain targeting, for example `five.four.three.two.one.example.com`.", - "type": "string" - } - }, - "type": "object" - }, - "User": { - "description": "A single user in Display & Video 360.", - "id": "User", - "properties": { - "assignedUserRoles": { - "description": "The assigned user roles. Required in CreateUser. Output only in UpdateUser. Can only be updated through BulkEditAssignedUserRoles.", - "items": { - "$ref": "AssignedUserRole" - }, - "type": "array" - }, - "displayName": { - "description": "Required. The display name of the user. Must be UTF-8 encoded with a maximum size of 240 bytes.", - "type": "string" - }, - "email": { - "description": "Required. Immutable. The email address used to identify the user.", - "type": "string" - }, - "name": { - "description": "Output only. The resource name of the user.", - "readOnly": true, - "type": "string" - }, - "userId": { - "description": "Output only. The unique ID of the user. Assigned by the system.", - "format": "int64", - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "UserRewardedContentAssignedTargetingOptionDetails": { - "description": "User rewarded content targeting option details. This will be populated in the user_rewarded_content_details field when targeting_type is `TARGETING_TYPE_USER_REWARDED_CONTENT`.", - "id": "UserRewardedContentAssignedTargetingOptionDetails", - "properties": { - "targetingOptionId": { - "description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_USER_REWARDED_CONTENT`.", - "type": "string" - }, - "userRewardedContent": { - "description": "Output only. User rewarded content status for video ads.", - "enum": [ - "USER_REWARDED_CONTENT_UNSPECIFIED", - "USER_REWARDED_CONTENT_USER_REWARDED", - "USER_REWARDED_CONTENT_NOT_USER_REWARDED" - ], - "enumDescriptions": [ - "User rewarded content is not specified or is unknown in this version.", - "Represents ads where the user will see a reward after viewing.", - "Represents all other ads besides user-rewarded." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "UserRewardedContentTargetingOptionDetails": { - "description": "Represents a targetable user rewarded content status for video ads only. This will be populated in the user_rewarded_content_details field when targeting_type is `TARGETING_TYPE_USER_REWARDED_CONTENT`.", - "id": "UserRewardedContentTargetingOptionDetails", - "properties": { - "userRewardedContent": { - "description": "Output only. User rewarded content status for video ads.", - "enum": [ - "USER_REWARDED_CONTENT_UNSPECIFIED", - "USER_REWARDED_CONTENT_USER_REWARDED", - "USER_REWARDED_CONTENT_NOT_USER_REWARDED" - ], - "enumDescriptions": [ - "User rewarded content is not specified or is unknown in this version.", - "Represents ads where the user will see a reward after viewing.", - "Represents all other ads besides user-rewarded." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "VideoPlayerSizeAssignedTargetingOptionDetails": { - "description": "Video player size targeting option details. This will be populated in the video_player_size_details field when targeting_type is `TARGETING_TYPE_VIDEO_PLAYER_SIZE`. Explicitly targeting all options is not supported. Remove all video player size targeting options to achieve this effect.", - "id": "VideoPlayerSizeAssignedTargetingOptionDetails", - "properties": { - "targetingOptionId": { - "description": "Required. The targeting_option_id field when targeting_type is `TARGETING_TYPE_VIDEO_PLAYER_SIZE`.", - "type": "string" - }, - "videoPlayerSize": { - "description": "Required. The video player size.", - "enum": [ - "VIDEO_PLAYER_SIZE_UNSPECIFIED", - "VIDEO_PLAYER_SIZE_SMALL", - "VIDEO_PLAYER_SIZE_LARGE", - "VIDEO_PLAYER_SIZE_HD", - "VIDEO_PLAYER_SIZE_UNKNOWN" - ], - "enumDescriptions": [ - "Video player size is not specified in this version. This enum is a place holder for a default value and does not represent a real video player size.", - "The dimensions of the video player are less than 400×300 (desktop), or up to 20% of screen covered (mobile).", - "The dimensions of the video player are between 400x300 and 1280x720 pixels (desktop), or 20% to 90% of the screen covered (mobile).", - "The dimensions of the video player are 1280×720 or greater (desktop), or over 90% of the screen covered (mobile).", - "The dimensions of the video player are unknown." - ], - "type": "string" - } - }, - "type": "object" - }, - "VideoPlayerSizeTargetingOptionDetails": { - "description": "Represents a targetable video player size. This will be populated in the video_player_size_details field when targeting_type is `TARGETING_TYPE_VIDEO_PLAYER_SIZE`.", - "id": "VideoPlayerSizeTargetingOptionDetails", - "properties": { - "videoPlayerSize": { - "description": "Output only. The video player size.", - "enum": [ - "VIDEO_PLAYER_SIZE_UNSPECIFIED", - "VIDEO_PLAYER_SIZE_SMALL", - "VIDEO_PLAYER_SIZE_LARGE", - "VIDEO_PLAYER_SIZE_HD", - "VIDEO_PLAYER_SIZE_UNKNOWN" - ], - "enumDescriptions": [ - "Video player size is not specified in this version. This enum is a place holder for a default value and does not represent a real video player size.", - "The dimensions of the video player are less than 400×300 (desktop), or up to 20% of screen covered (mobile).", - "The dimensions of the video player are between 400x300 and 1280x720 pixels (desktop), or 20% to 90% of the screen covered (mobile).", - "The dimensions of the video player are 1280×720 or greater (desktop), or over 90% of the screen covered (mobile).", - "The dimensions of the video player are unknown." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - }, - "ViewabilityAssignedTargetingOptionDetails": { - "description": "Assigned viewability targeting option details. This will be populated in the viewability_details field of an AssignedTargetingOption when targeting_type is `TARGETING_TYPE_VIEWABILITY`.", - "id": "ViewabilityAssignedTargetingOptionDetails", - "properties": { - "targetingOptionId": { - "description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_VIEWABILITY` (e.g., \"509010\" for targeting the `VIEWABILITY_10_PERCENT_OR_MORE` option).", - "type": "string" - }, - "viewability": { - "description": "Required. The predicted viewability percentage.", - "enum": [ - "VIEWABILITY_UNSPECIFIED", - "VIEWABILITY_10_PERCENT_OR_MORE", - "VIEWABILITY_20_PERCENT_OR_MORE", - "VIEWABILITY_30_PERCENT_OR_MORE", - "VIEWABILITY_40_PERCENT_OR_MORE", - "VIEWABILITY_50_PERCENT_OR_MORE", - "VIEWABILITY_60_PERCENT_OR_MORE", - "VIEWABILITY_70_PERCENT_OR_MORE", - "VIEWABILITY_80_PERCENT_OR_MORE", - "VIEWABILITY_90_PERCENT_OR_MORE" - ], - "enumDescriptions": [ - "Default value when viewability is not specified in this version. This enum is a placeholder for default value and does not represent a real viewability option.", - "Bid only on impressions that are at least 10% likely to be viewable.", - "Bid only on impressions that are at least 20% likely to be viewable.", - "Bid only on impressions that are at least 30% likely to be viewable.", - "Bid only on impressions that are at least 40% likely to be viewable.", - "Bid only on impressions that are at least 50% likely to be viewable.", - "Bid only on impressions that are at least 60% likely to be viewable.", - "Bid only on impressions that are at least 70% likely to be viewable.", - "Bid only on impressions that are at least 80% likely to be viewable.", - "Bid only on impressions that are at least 90% likely to be viewable." - ], - "type": "string" - } - }, - "type": "object" - }, - "ViewabilityTargetingOptionDetails": { - "description": "Represents a targetable viewability. This will be populated in the viewability_details field of a TargetingOption when targeting_type is `TARGETING_TYPE_VIEWABILITY`.", - "id": "ViewabilityTargetingOptionDetails", - "properties": { - "viewability": { - "description": "Output only. The predicted viewability percentage.", - "enum": [ - "VIEWABILITY_UNSPECIFIED", - "VIEWABILITY_10_PERCENT_OR_MORE", - "VIEWABILITY_20_PERCENT_OR_MORE", - "VIEWABILITY_30_PERCENT_OR_MORE", - "VIEWABILITY_40_PERCENT_OR_MORE", - "VIEWABILITY_50_PERCENT_OR_MORE", - "VIEWABILITY_60_PERCENT_OR_MORE", - "VIEWABILITY_70_PERCENT_OR_MORE", - "VIEWABILITY_80_PERCENT_OR_MORE", - "VIEWABILITY_90_PERCENT_OR_MORE" - ], - "enumDescriptions": [ - "Default value when viewability is not specified in this version. This enum is a placeholder for default value and does not represent a real viewability option.", - "Bid only on impressions that are at least 10% likely to be viewable.", - "Bid only on impressions that are at least 20% likely to be viewable.", - "Bid only on impressions that are at least 30% likely to be viewable.", - "Bid only on impressions that are at least 40% likely to be viewable.", - "Bid only on impressions that are at least 50% likely to be viewable.", - "Bid only on impressions that are at least 60% likely to be viewable.", - "Bid only on impressions that are at least 70% likely to be viewable.", - "Bid only on impressions that are at least 80% likely to be viewable.", - "Bid only on impressions that are at least 90% likely to be viewable." - ], - "readOnly": true, - "type": "string" - } - }, - "type": "object" - } - } -} diff --git a/discovery/googleapis/displayvideo__v2.json b/discovery/googleapis/displayvideo__v2.json index 603b50f37..d9bc97d89 100644 --- a/discovery/googleapis/displayvideo__v2.json +++ b/discovery/googleapis/displayvideo__v2.json @@ -34,7 +34,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231114", + "revision": "20240222", "rootUrl": "https://displayvideo.googleapis.com/", "servicePath": "", "title": "Display & Video 360 API", @@ -153,7 +153,7 @@ ] }, "create": { - "description": "Creates a new advertiser. Returns the newly created advertiser if successful. This method can take up to 180 seconds to complete.", + "description": "Creates a new advertiser. Returns the newly created advertiser if successful. **This method regularly experiences high latency.** We recommend [increasing your default timeout](/display-video/api/guides/best-practices/timeouts#client_library_timeout) to avoid errors.", "flatPath": "v2/advertisers", "httpMethod": "POST", "id": "displayvideo.advertisers.create", @@ -456,7 +456,7 @@ ] }, "delete": { - "description": "Permanently deletes a campaign. A deleted campaign cannot be recovered. The campaign should be archived first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, to be able to delete it.", + "description": "Permanently deletes a campaign. A deleted campaign cannot be recovered. The campaign should be archived first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, to be able to delete it. **This method regularly experiences high latency.** We recommend [increasing your default timeout](/display-video/api/guides/best-practices/timeouts#client_library_timeout) to avoid errors.", "flatPath": "v2/advertisers/{advertisersId}/campaigns/{campaignsId}", "httpMethod": "DELETE", "id": "displayvideo.advertisers.campaigns.delete", @@ -1382,7 +1382,7 @@ ] }, "replace": { - "description": "Replaces all of the sites under a single channel. The operation will replace the sites under a channel with the sites provided in ReplaceSitesRequest.new_sites.", + "description": "Replaces all of the sites under a single channel. The operation will replace the sites under a channel with the sites provided in ReplaceSitesRequest.new_sites. **This method regularly experiences high latency.** We recommend [increasing your default timeout](/display-video/api/guides/best-practices/timeouts#client_library_timeout) to avoid errors.", "flatPath": "v2/advertisers/{advertiserId}/channels/{channelsId}/sites:replace", "httpMethod": "POST", "id": "displayvideo.advertisers.channels.sites.replace", @@ -1425,7 +1425,7 @@ "creatives": { "methods": { "create": { - "description": "Creates a new creative. Returns the newly created creative if successful.", + "description": "Creates a new creative. Returns the newly created creative if successful. A [\"Standard\" user role](//support.google.com/displayvideo/answer/2723011) or greater for the parent advertiser or partner is required to make this request.", "flatPath": "v2/advertisers/{advertisersId}/creatives", "httpMethod": "POST", "id": "displayvideo.advertisers.creatives.create", @@ -1454,7 +1454,7 @@ ] }, "delete": { - "description": "Deletes a creative. Returns error code `NOT_FOUND` if the creative does not exist. The creative should be archived first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, before it can be deleted.", + "description": "Deletes a creative. Returns error code `NOT_FOUND` if the creative does not exist. The creative should be archived first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, before it can be deleted. A [\"Standard\" user role](//support.google.com/displayvideo/answer/2723011) or greater for the parent advertiser or partner is required to make this request.", "flatPath": "v2/advertisers/{advertisersId}/creatives/{creativesId}", "httpMethod": "DELETE", "id": "displayvideo.advertisers.creatives.delete", @@ -1571,7 +1571,7 @@ ] }, "patch": { - "description": "Updates an existing creative. Returns the updated creative if successful.", + "description": "Updates an existing creative. Returns the updated creative if successful. A [\"Standard\" user role](//support.google.com/displayvideo/answer/2723011) or greater for the parent advertiser or partner is required to make this request.", "flatPath": "v2/advertisers/{advertisersId}/creatives/{creativesId}", "httpMethod": "PATCH", "id": "displayvideo.advertisers.creatives.patch", @@ -2593,7 +2593,7 @@ "lineItems": { "methods": { "bulkEditAssignedTargetingOptions": { - "description": "Bulk edits targeting options under multiple line items. The operation will delete the assigned targeting options provided in BulkEditAssignedTargetingOptionsRequest.delete_requests and then create the assigned targeting options provided in BulkEditAssignedTargetingOptionsRequest.create_requests. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * lineItems.bulkUpdate * lineItems.patch * assignedTargetingOptions.create * assignedTargetingOptions.delete", + "description": "Bulk edits targeting options under multiple line items. The operation will delete the assigned targeting options provided in BulkEditAssignedTargetingOptionsRequest.delete_requests and then create the assigned targeting options provided in BulkEditAssignedTargetingOptionsRequest.create_requests. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * lineItems.bulkUpdate * lineItems.patch * assignedTargetingOptions.create * assignedTargetingOptions.delete YouTube & Partners line items cannot be created or updated using the API.", "flatPath": "v2/advertisers/{advertisersId}/lineItems:bulkEditAssignedTargetingOptions", "httpMethod": "POST", "id": "displayvideo.advertisers.lineItems.bulkEditAssignedTargetingOptions", @@ -2676,7 +2676,7 @@ ] }, "bulkUpdate": { - "description": "Updates multiple line items. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * BulkEditAssignedTargetingOptions * UpdateLineItem * assignedTargetingOptions.create * assignedTargetingOptions.delete", + "description": "Updates multiple line items. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * BulkEditAssignedTargetingOptions * UpdateLineItem * assignedTargetingOptions.create * assignedTargetingOptions.delete YouTube & Partners line items cannot be created or updated using the API.", "flatPath": "v2/advertisers/{advertisersId}/lineItems:bulkUpdate", "httpMethod": "POST", "id": "displayvideo.advertisers.lineItems.bulkUpdate", @@ -2705,7 +2705,7 @@ ] }, "create": { - "description": "Creates a new line item. Returns the newly created line item if successful.", + "description": "Creates a new line item. Returns the newly created line item if successful. YouTube & Partners line items cannot be created or updated using the API.", "flatPath": "v2/advertisers/{advertisersId}/lineItems", "httpMethod": "POST", "id": "displayvideo.advertisers.lineItems.create", @@ -2734,7 +2734,7 @@ ] }, "delete": { - "description": "Deletes a line item. Returns error code `NOT_FOUND` if the line item does not exist. The line item should be archived first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, to be able to delete it.", + "description": "Deletes a line item. Returns error code `NOT_FOUND` if the line item does not exist. The line item should be archived first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, to be able to delete it. YouTube & Partners line items cannot be created or updated using the API.", "flatPath": "v2/advertisers/{advertisersId}/lineItems/{lineItemsId}", "httpMethod": "DELETE", "id": "displayvideo.advertisers.lineItems.delete", @@ -2769,7 +2769,7 @@ ] }, "duplicate": { - "description": "Duplicates a line item. Returns the ID of the created line item if successful.", + "description": "Duplicates a line item. Returns the ID of the created line item if successful. YouTube & Partners line items cannot be created or updated using the API. **This method regularly experiences high latency.** We recommend [increasing your default timeout](/display-video/api/guides/best-practices/timeouts#client_library_timeout) to avoid errors.", "flatPath": "v2/advertisers/{advertisersId}/lineItems/{lineItemsId}:duplicate", "httpMethod": "POST", "id": "displayvideo.advertisers.lineItems.duplicate", @@ -2807,7 +2807,7 @@ ] }, "generateDefault": { - "description": "Creates a new line item with settings (including targeting) inherited from the insertion order and an `ENTITY_STATUS_DRAFT` entity_status. Returns the newly created line item if successful. There are default values based on the three fields: * The insertion order's insertion_order_type * The insertion order's automation_type * The given line_item_type", + "description": "Creates a new line item with settings (including targeting) inherited from the insertion order and an `ENTITY_STATUS_DRAFT` entity_status. Returns the newly created line item if successful. There are default values based on the three fields: * The insertion order's insertion_order_type * The insertion order's automation_type * The given line_item_type YouTube & Partners line items cannot be created or updated using the API.", "flatPath": "v2/advertisers/{advertisersId}/lineItems:generateDefault", "httpMethod": "POST", "id": "displayvideo.advertisers.lineItems.generateDefault", @@ -2918,7 +2918,7 @@ ] }, "patch": { - "description": "Updates an existing line item. Returns the updated line item if successful. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * BulkEditAssignedTargetingOptions * BulkUpdateLineItems * assignedTargetingOptions.create * assignedTargetingOptions.delete", + "description": "Updates an existing line item. Returns the updated line item if successful. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * BulkEditAssignedTargetingOptions * BulkUpdateLineItems * assignedTargetingOptions.create * assignedTargetingOptions.delete YouTube & Partners line items cannot be created or updated using the API. **This method regularly experiences high latency.** We recommend [increasing your default timeout](/display-video/api/guides/best-practices/timeouts#client_library_timeout) to avoid errors.", "flatPath": "v2/advertisers/{advertisersId}/lineItems/{lineItemsId}", "httpMethod": "PATCH", "id": "displayvideo.advertisers.lineItems.patch", @@ -2968,7 +2968,7 @@ "assignedTargetingOptions": { "methods": { "create": { - "description": "Assigns a targeting option to a line item. Returns the assigned targeting option if successful. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * lineItems.bulkEditAssignedTargetingOptions * lineItems.bulkUpdate * lineItems.patch * DeleteLineItemAssignedTargetingOption", + "description": "Assigns a targeting option to a line item. Returns the assigned targeting option if successful. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * lineItems.bulkEditAssignedTargetingOptions * lineItems.bulkUpdate * lineItems.patch * DeleteLineItemAssignedTargetingOption YouTube & Partners line items cannot be created or updated using the API.", "flatPath": "v2/advertisers/{advertisersId}/lineItems/{lineItemsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions", "httpMethod": "POST", "id": "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.create", @@ -3116,7 +3116,7 @@ ] }, "delete": { - "description": "Deletes an assigned targeting option from a line item. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * lineItems.bulkEditAssignedTargetingOptions * lineItems.bulkUpdate * lineItems.patch * CreateLineItemAssignedTargetingOption", + "description": "Deletes an assigned targeting option from a line item. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * lineItems.bulkEditAssignedTargetingOptions * lineItems.bulkUpdate * lineItems.patch * CreateLineItemAssignedTargetingOption YouTube & Partners line items cannot be created or updated using the API.", "flatPath": "v2/advertisers/{advertisersId}/lineItems/{lineItemsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}", "httpMethod": "DELETE", "id": "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.delete", @@ -6468,6 +6468,101 @@ "https://www.googleapis.com/auth/display-video" ] } + }, + "resources": { + "floodlightActivities": { + "methods": { + "get": { + "description": "Gets a Floodlight activity.", + "flatPath": "v2/floodlightGroups/{floodlightGroupsId}/floodlightActivities/{floodlightActivitiesId}", + "httpMethod": "GET", + "id": "displayvideo.floodlightGroups.floodlightActivities.get", + "parameterOrder": [ + "floodlightGroupId", + "floodlightActivityId" + ], + "parameters": { + "floodlightActivityId": { + "description": "Required. The ID of the Floodlight activity to fetch.", + "format": "int64", + "location": "path", + "pattern": "^[^/]+$", + "required": true, + "type": "string" + }, + "floodlightGroupId": { + "description": "Required. The ID of the parent Floodlight group to which the requested Floodlight activity belongs.", + "format": "int64", + "location": "path", + "pattern": "^[^/]+$", + "required": true, + "type": "string" + }, + "partnerId": { + "description": "Required. The ID of the partner through which the Floodlight activity is being accessed.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "v2/floodlightGroups/{+floodlightGroupId}/floodlightActivities/{+floodlightActivityId}", + "response": { + "$ref": "FloodlightActivity" + }, + "scopes": [ + "https://www.googleapis.com/auth/display-video" + ] + }, + "list": { + "description": "Lists Floodlight activities in a Floodlight group.", + "flatPath": "v2/floodlightGroups/{floodlightGroupsId}/floodlightActivities", + "httpMethod": "GET", + "id": "displayvideo.floodlightGroups.floodlightActivities.list", + "parameterOrder": [ + "floodlightGroupId" + ], + "parameters": { + "floodlightGroupId": { + "description": "Required. The ID of the parent Floodlight group to which the requested Floodlight activities belong.", + "format": "int64", + "location": "path", + "pattern": "^[^/]+$", + "required": true, + "type": "string" + }, + "orderBy": { + "description": "Optional. Field by which to sort the list. Acceptable values are: * `displayName` (default) * `floodlightActivityId` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListFloodlightActivities` method. If not specified, the first page of results will be returned.", + "location": "query", + "type": "string" + }, + "partnerId": { + "description": "Required. The ID of the partner through which the Floodlight activities are being accessed.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "v2/floodlightGroups/{+floodlightGroupId}/floodlightActivities", + "response": { + "$ref": "ListFloodlightActivitiesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/display-video" + ] + } + } + } } }, "googleAudiences": { @@ -7879,7 +7974,7 @@ ] }, "replace": { - "description": "Replaces all of the sites under a single channel. The operation will replace the sites under a channel with the sites provided in ReplaceSitesRequest.new_sites.", + "description": "Replaces all of the sites under a single channel. The operation will replace the sites under a channel with the sites provided in ReplaceSitesRequest.new_sites. **This method regularly experiences high latency.** We recommend [increasing your default timeout](/display-video/api/guides/best-practices/timeouts#client_library_timeout) to avoid errors.", "flatPath": "v2/partners/{partnerId}/channels/{channelsId}/sites:replace", "httpMethod": "POST", "id": "displayvideo.partners.channels.sites.replace", @@ -9379,7 +9474,7 @@ }, "billingConfig": { "$ref": "AdvertiserBillingConfig", - "description": "Required. Billing related settings of the advertiser." + "description": "Optional. Required. Billing related settings of the advertiser." }, "creativeConfig": { "$ref": "AdvertiserCreativeConfig", @@ -9468,7 +9563,7 @@ "id": "AdvertiserBillingConfig", "properties": { "billingProfileId": { - "description": "The ID of a billing profile assigned to the advertiser.", + "description": "Optional. The ID of a billing profile assigned to the advertiser.", "format": "int64", "type": "string" } @@ -9489,7 +9584,7 @@ "type": "string" }, "obaComplianceDisabled": { - "description": "Whether or not to use DV360's Online Behavioral Advertising (OBA) compliance. Warning: Changing OBA settings may cause the audit status of your creatives to be reset by some ad exchanges, making them ineligible to serve until they are re-approved.", + "description": "Whether or not to disable Google's About this Ad feature that adds badging (to identify the content as an ad) and transparency information (on interaction with About this Ad) to your ads for Online Behavioral Advertising (OBA) and regulatory requirements. About this Ad gives users greater control over the ads they see and helps you explain why they're seeing your ad. [Learn more](//support.google.com/displayvideo/answer/14315795). If you choose to set this field to `true`, note that ads served through Display & Video 360 must comply to the following: * Be Online Behavioral Advertising (OBA) compliant, as per your contract with Google Marketing Platform. * In the European Economic Area (EEA), include transparency information and a mechanism for users to report illegal content in ads. If using an alternative ad badging, transparency, and reporting solution, you must ensure it includes the required transparency information and illegal content flagging mechanism and that you notify Google of any illegal content reports using the appropriate [form](//support.google.com/legal/troubleshooter/1114905?sjid=6787484030557261960-EU#ts=2981967%2C2982031%2C12980091).", "type": "boolean" }, "videoCreativeDataSharingAuthorized": { @@ -11493,6 +11588,15 @@ "format": "int64", "type": "string" }, + "cmAdvertiserIds": { + "description": "Output only. The set of CM360 Advertiser IDs sharing the CM360 Floodlight configuration.", + "items": { + "format": "int64", + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "cmFloodlightConfigId": { "description": "Required. Immutable. ID of the CM360 Floodlight configuration linked with the DV360 advertiser.", "format": "int64", @@ -11639,7 +11743,7 @@ "CONSENT_STATUS_DENIED" ], "enumDescriptions": [ - "Consent is not specified.", + "Type value is not specified or is unknown in this version.", "Consent is granted.", "Consent is denied." ], @@ -11653,7 +11757,7 @@ "CONSENT_STATUS_DENIED" ], "enumDescriptions": [ - "Consent is not specified.", + "Type value is not specified or is unknown in this version.", "Consent is granted.", "Consent is denied." ], @@ -11708,7 +11812,7 @@ "properties": { "consent": { "$ref": "Consent", - "description": "Input only. User consent status." + "description": "Input only. The consent setting for the users in contact_infos. Leaving this field unset indicates that consent is not specified. If ad_user_data or ad_personalization fields are set to `CONSENT_STATUS_DENIED`, the request will return an error." }, "contactInfos": { "description": "A list of ContactInfo objects defining Customer Match audience members. The size of members after splitting the contact_infos mustn't be greater than 500,000.", @@ -13738,6 +13842,14 @@ "description": "Required. The ID of the owner advertiser of the updated Customer Match FirstAndThirdPartyAudience.", "format": "int64", "type": "string" + }, + "removedContactInfoList": { + "$ref": "ContactInfoList", + "description": "Input only. A list of contact information to define the members to be removed." + }, + "removedMobileDeviceIdList": { + "$ref": "MobileDeviceIdList", + "description": "Input only. A list of mobile device IDs to define the members to be removed." } }, "type": "object" @@ -13981,7 +14093,13 @@ "EXCHANGE_APPLOVIN", "EXCHANGE_CONNATIX", "EXCHANGE_RESET_DIGITAL", - "EXCHANGE_HIVESTACK" + "EXCHANGE_HIVESTACK", + "EXCHANGE_APPLOVIN_GBID", + "EXCHANGE_FYBER_GBID", + "EXCHANGE_UNITY_GBID", + "EXCHANGE_CHARTBOOST_GBID", + "EXCHANGE_ADMOST_GBID", + "EXCHANGE_TOPON_GBID" ], "enumDescriptions": [ "Exchange is not specified or is unknown in this version.", @@ -14058,7 +14176,13 @@ "AppLovin.", "Connatix.", "Reset Digital.", - "Hivestack." + "Hivestack.", + "AppLovin MAX.", + "DT Fairbid.", + "Unity LevelPlay.", + "Chartboost Mediation.", + "AdMost.", + "TopOn." ], "type": "string" } @@ -14160,7 +14284,13 @@ "EXCHANGE_APPLOVIN", "EXCHANGE_CONNATIX", "EXCHANGE_RESET_DIGITAL", - "EXCHANGE_HIVESTACK" + "EXCHANGE_HIVESTACK", + "EXCHANGE_APPLOVIN_GBID", + "EXCHANGE_FYBER_GBID", + "EXCHANGE_UNITY_GBID", + "EXCHANGE_CHARTBOOST_GBID", + "EXCHANGE_ADMOST_GBID", + "EXCHANGE_TOPON_GBID" ], "enumDescriptions": [ "Exchange is not specified or is unknown in this version.", @@ -14237,7 +14367,13 @@ "AppLovin.", "Connatix.", "Reset Digital.", - "Hivestack." + "Hivestack.", + "AppLovin MAX.", + "DT Fairbid.", + "Unity LevelPlay.", + "Chartboost Mediation.", + "AdMost.", + "TopOn." ], "type": "string" }, @@ -14340,7 +14476,13 @@ "EXCHANGE_APPLOVIN", "EXCHANGE_CONNATIX", "EXCHANGE_RESET_DIGITAL", - "EXCHANGE_HIVESTACK" + "EXCHANGE_HIVESTACK", + "EXCHANGE_APPLOVIN_GBID", + "EXCHANGE_FYBER_GBID", + "EXCHANGE_UNITY_GBID", + "EXCHANGE_CHARTBOOST_GBID", + "EXCHANGE_ADMOST_GBID", + "EXCHANGE_TOPON_GBID" ], "enumDescriptions": [ "Exchange is not specified or is unknown in this version.", @@ -14417,7 +14559,13 @@ "AppLovin.", "Connatix.", "Reset Digital.", - "Hivestack." + "Hivestack.", + "AppLovin MAX.", + "DT Fairbid.", + "Unity LevelPlay.", + "Chartboost Mediation.", + "AdMost.", + "TopOn." ], "type": "string" }, @@ -14521,7 +14669,13 @@ "EXCHANGE_APPLOVIN", "EXCHANGE_CONNATIX", "EXCHANGE_RESET_DIGITAL", - "EXCHANGE_HIVESTACK" + "EXCHANGE_HIVESTACK", + "EXCHANGE_APPLOVIN_GBID", + "EXCHANGE_FYBER_GBID", + "EXCHANGE_UNITY_GBID", + "EXCHANGE_CHARTBOOST_GBID", + "EXCHANGE_ADMOST_GBID", + "EXCHANGE_TOPON_GBID" ], "enumDescriptions": [ "Exchange is not specified or is unknown in this version.", @@ -14598,7 +14752,13 @@ "AppLovin.", "Connatix.", "Reset Digital.", - "Hivestack." + "Hivestack.", + "AppLovin MAX.", + "DT Fairbid.", + "Unity LevelPlay.", + "Chartboost Mediation.", + "AdMost.", + "TopOn." ], "readOnly": true, "type": "string" @@ -14904,6 +15064,69 @@ }, "type": "object" }, + "FloodlightActivity": { + "description": "A single Floodlight activity.", + "id": "FloodlightActivity", + "properties": { + "advertiserIds": { + "description": "Output only. IDs of the advertisers that have access to the parent Floodlight group. Only advertisers under the provided partner ID will be listed in this field.", + "items": { + "format": "int64", + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "displayName": { + "description": "Required. The display name of the Floodlight activity.", + "type": "string" + }, + "floodlightActivityId": { + "description": "Output only. The unique ID of the Floodlight activity. Assigned by the system.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "floodlightGroupId": { + "description": "Required. Immutable. The ID of the parent Floodlight group.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "Output only. The resource name of the Floodlight activity.", + "readOnly": true, + "type": "string" + }, + "remarketingConfigs": { + "description": "Output only. A list of configuration objects designating whether remarketing for this Floodlight Activity is enabled and available for a specifc advertiser. If enabled, this Floodlight Activity generates a remarketing user list that is able to be used in targeting under the advertiser.", + "items": { + "$ref": "RemarketingConfig" + }, + "readOnly": true, + "type": "array" + }, + "servingStatus": { + "description": "Optional. Whether the Floodlight activity is served.", + "enum": [ + "FLOODLIGHT_ACTIVITY_SERVING_STATUS_UNSPECIFIED", + "FLOODLIGHT_ACTIVITY_SERVING_STATUS_ENABLED", + "FLOODLIGHT_ACTIVITY_SERVING_STATUS_DISABLED" + ], + "enumDescriptions": [ + "Type value is not specified or is unknown in this version.", + "Enabled.", + "Disabled." + ], + "type": "string" + }, + "sslRequired": { + "description": "Output only. Whether tags are required to be compliant.", + "readOnly": true, + "type": "boolean" + } + }, + "type": "object" + }, "FloodlightGroup": { "description": "A single Floodlight group.", "id": "FloodlightGroup", @@ -14968,7 +15191,7 @@ "type": "integer" }, "maxViews": { - "description": "The maximum number of times a user may click-through or fully view an ad during this period until it is no longer served to them. Must be greater than 0. Only applicable to YouTube and Partners resources. Required when unlimited is `false` and max_impressions is not set.", + "description": "Optional. The maximum number of times a user may click-through or fully view an ad during this period until it is no longer served to them. Must be greater than 0. Only applicable to YouTube and Partners resources. Required when unlimited is `false` and max_impressions is not set.", "format": "int32", "type": "integer" }, @@ -15490,7 +15713,13 @@ "EXCHANGE_APPLOVIN", "EXCHANGE_CONNATIX", "EXCHANGE_RESET_DIGITAL", - "EXCHANGE_HIVESTACK" + "EXCHANGE_HIVESTACK", + "EXCHANGE_APPLOVIN_GBID", + "EXCHANGE_FYBER_GBID", + "EXCHANGE_UNITY_GBID", + "EXCHANGE_CHARTBOOST_GBID", + "EXCHANGE_ADMOST_GBID", + "EXCHANGE_TOPON_GBID" ], "enumDescriptions": [ "Exchange is not specified or is unknown in this version.", @@ -15567,7 +15796,13 @@ "AppLovin.", "Connatix.", "Reset Digital.", - "Hivestack." + "Hivestack.", + "AppLovin MAX.", + "DT Fairbid.", + "Unity LevelPlay.", + "Chartboost Mediation.", + "AdMost.", + "TopOn." ], "type": "string" }, @@ -16387,7 +16622,13 @@ "EXCHANGE_APPLOVIN", "EXCHANGE_CONNATIX", "EXCHANGE_RESET_DIGITAL", - "EXCHANGE_HIVESTACK" + "EXCHANGE_HIVESTACK", + "EXCHANGE_APPLOVIN_GBID", + "EXCHANGE_FYBER_GBID", + "EXCHANGE_UNITY_GBID", + "EXCHANGE_CHARTBOOST_GBID", + "EXCHANGE_ADMOST_GBID", + "EXCHANGE_TOPON_GBID" ], "enumDescriptions": [ "Exchange is not specified or is unknown in this version.", @@ -16464,7 +16705,13 @@ "AppLovin.", "Connatix.", "Reset Digital.", - "Hivestack." + "Hivestack.", + "AppLovin MAX.", + "DT Fairbid.", + "Unity LevelPlay.", + "Chartboost Mediation.", + "AdMost.", + "TopOn." ], "type": "string" }, @@ -17472,6 +17719,23 @@ }, "type": "object" }, + "ListFloodlightActivitiesResponse": { + "id": "ListFloodlightActivitiesResponse", + "properties": { + "floodlightActivities": { + "description": "The list of Floodlight activities. This list will be absent if empty.", + "items": { + "$ref": "FloodlightActivity" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListFloodlightActivities` method to retrieve the next page of results.", + "type": "string" + } + }, + "type": "object" + }, "ListGoogleAudiencesResponse": { "id": "ListGoogleAudiencesResponse", "properties": { @@ -18125,7 +18389,7 @@ "properties": { "consent": { "$ref": "Consent", - "description": "Input only. User consent status." + "description": "Input only. The consent setting for the users in mobile_device_ids. Leaving this field unset indicates that consent is not specified. If ad_user_data or ad_personalization fields are set to `CONSENT_STATUS_DENIED`, the request will return an error." }, "mobileDeviceIds": { "description": "A list of mobile device IDs defining Customer Match audience members. The size of mobile_device_ids mustn't be greater than 500,000.", @@ -19074,7 +19338,7 @@ "type": "string" }, "targetingOptionId": { - "description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. Accepted POI targeting option IDs can be retrieved using SearchTargetingOptions. If targeting a specific latitude/longitude coordinate removed from an address or POI name, you can generate the necessary targeting option ID by rounding the desired coordinate values to the 6th decimal place, removing the decimals, and concatenating the string values separated by a semicolon. For example, you can target the latitude/longitude pair of 40.7414691, -74.003387 using the targeting option ID \"40741469;-74003387\".", + "description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. Accepted POI targeting option IDs can be retrieved using `targetingTypes.targetingOptions.search`. If targeting a specific latitude/longitude coordinate removed from an address or POI name, you can generate the necessary targeting option ID by rounding the desired coordinate values to the 6th decimal place, removing the decimals, and concatenating the string values separated by a semicolon. For example, you can target the latitude/longitude pair of 40.7414691, -74.003387 using the targeting option ID \"40741469;-74003387\". **Upon** **creation, this field value will be updated to append a semicolon and** **alphanumerical hash value if only latitude/longitude coordinates are** **provided.**", "type": "string" } }, @@ -19333,6 +19597,24 @@ }, "type": "object" }, + "RemarketingConfig": { + "description": "Settings that control the whether remarketing is enabled for the given identified advertiser.", + "id": "RemarketingConfig", + "properties": { + "advertiserId": { + "description": "Output only. The ID of the advertiser.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "remarketingEnabled": { + "description": "Output only. Whether the Floodlight activity remarketing user list is available to the identified advertiser.", + "readOnly": true, + "type": "boolean" + } + }, + "type": "object" + }, "ReplaceNegativeKeywordsRequest": { "description": "Request message for NegativeKeywordService.ReplaceNegativeKeywords.", "id": "ReplaceNegativeKeywordsRequest", @@ -20518,6 +20800,12 @@ "description": "Required. Immutable. The email address used to identify the user.", "type": "string" }, + "lastLoginTime": { + "description": "Output only. The timestamp when the user last logged in DV360 UI.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, "name": { "description": "Output only. The resource name of the user.", "readOnly": true, @@ -21153,6 +21441,10 @@ "description": "Settings that control what YouTube related inventories the YouTube and Partners line item will target.", "id": "YoutubeAndPartnersInventorySourceConfig", "properties": { + "includeGoogleTv": { + "description": "Optional. Whether to target inventory in video apps available with Google TV.", + "type": "boolean" + }, "includeYoutubeSearch": { "description": "Whether to target inventory on the YouTube search results page.", "type": "boolean" @@ -21214,17 +21506,17 @@ "description": "Settings that control what YouTube and Partners inventories the line item will target." }, "leadFormId": { - "description": "The ID of the form to generate leads.", + "description": "Optional. The ID of the form to generate leads.", "format": "int64", "type": "string" }, "linkedMerchantId": { - "description": "The ID of the merchant which is linked to the line item for product feed.", + "description": "Optional. The ID of the merchant which is linked to the line item for product feed.", "format": "int64", "type": "string" }, "relatedVideoIds": { - "description": "The IDs of the videos appear below the primary video ad when the ad is playing in the YouTube app on mobile devices.", + "description": "Optional. The IDs of the videos appear below the primary video ad when the ad is playing in the YouTube app on mobile devices.", "items": { "type": "string" }, @@ -21232,7 +21524,7 @@ }, "targetFrequency": { "$ref": "TargetFrequency", - "description": "The average number of times you want ads from this line item to show to the same person over a certain period of time." + "description": "Optional. The average number of times you want ads from this line item to show to the same person over a certain period of time." }, "thirdPartyMeasurementSettings": { "$ref": "YoutubeAndPartnersThirdPartyMeasurementSettings", @@ -21240,7 +21532,7 @@ }, "videoAdSequenceSettings": { "$ref": "VideoAdSequenceSettings", - "description": "The settings related to VideoAdSequence." + "description": "Optional. The settings related to VideoAdSequence." }, "viewFrequencyCap": { "$ref": "FrequencyCap", diff --git a/discovery/googleapis/displayvideo__v3.json b/discovery/googleapis/displayvideo__v3.json index 3e5755f57..e434c4c7e 100644 --- a/discovery/googleapis/displayvideo__v3.json +++ b/discovery/googleapis/displayvideo__v3.json @@ -34,7 +34,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231114", + "revision": "20240222", "rootUrl": "https://displayvideo.googleapis.com/", "servicePath": "", "title": "Display & Video 360 API", @@ -153,7 +153,7 @@ ] }, "create": { - "description": "Creates a new advertiser. Returns the newly created advertiser if successful. This method can take up to 180 seconds to complete.", + "description": "Creates a new advertiser. Returns the newly created advertiser if successful. **This method regularly experiences high latency.** We recommend [increasing your default timeout](/display-video/api/guides/best-practices/timeouts#client_library_timeout) to avoid errors.", "flatPath": "v3/advertisers", "httpMethod": "POST", "id": "displayvideo.advertisers.create", @@ -1011,7 +1011,7 @@ ] }, "delete": { - "description": "Permanently deletes a campaign. A deleted campaign cannot be recovered. The campaign should be archived first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, to be able to delete it.", + "description": "Permanently deletes a campaign. A deleted campaign cannot be recovered. The campaign should be archived first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, to be able to delete it. **This method regularly experiences high latency.** We recommend [increasing your default timeout](/display-video/api/guides/best-practices/timeouts#client_library_timeout) to avoid errors.", "flatPath": "v3/advertisers/{advertisersId}/campaigns/{campaignsId}", "httpMethod": "DELETE", "id": "displayvideo.advertisers.campaigns.delete", @@ -1937,7 +1937,7 @@ ] }, "replace": { - "description": "Replaces all of the sites under a single channel. The operation will replace the sites under a channel with the sites provided in ReplaceSitesRequest.new_sites.", + "description": "Replaces all of the sites under a single channel. The operation will replace the sites under a channel with the sites provided in ReplaceSitesRequest.new_sites. **This method regularly experiences high latency.** We recommend [increasing your default timeout](/display-video/api/guides/best-practices/timeouts#client_library_timeout) to avoid errors.", "flatPath": "v3/advertisers/{advertiserId}/channels/{channelsId}/sites:replace", "httpMethod": "POST", "id": "displayvideo.advertisers.channels.sites.replace", @@ -1980,7 +1980,7 @@ "creatives": { "methods": { "create": { - "description": "Creates a new creative. Returns the newly created creative if successful.", + "description": "Creates a new creative. Returns the newly created creative if successful. A [\"Standard\" user role](//support.google.com/displayvideo/answer/2723011) or greater for the parent advertiser or partner is required to make this request.", "flatPath": "v3/advertisers/{advertisersId}/creatives", "httpMethod": "POST", "id": "displayvideo.advertisers.creatives.create", @@ -2009,7 +2009,7 @@ ] }, "delete": { - "description": "Deletes a creative. Returns error code `NOT_FOUND` if the creative does not exist. The creative should be archived first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, before it can be deleted.", + "description": "Deletes a creative. Returns error code `NOT_FOUND` if the creative does not exist. The creative should be archived first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, before it can be deleted. A [\"Standard\" user role](//support.google.com/displayvideo/answer/2723011) or greater for the parent advertiser or partner is required to make this request.", "flatPath": "v3/advertisers/{advertisersId}/creatives/{creativesId}", "httpMethod": "DELETE", "id": "displayvideo.advertisers.creatives.delete", @@ -2126,7 +2126,7 @@ ] }, "patch": { - "description": "Updates an existing creative. Returns the updated creative if successful.", + "description": "Updates an existing creative. Returns the updated creative if successful. A [\"Standard\" user role](//support.google.com/displayvideo/answer/2723011) or greater for the parent advertiser or partner is required to make this request.", "flatPath": "v3/advertisers/{advertisersId}/creatives/{creativesId}", "httpMethod": "PATCH", "id": "displayvideo.advertisers.creatives.patch", @@ -3148,7 +3148,7 @@ "lineItems": { "methods": { "bulkEditAssignedTargetingOptions": { - "description": "Bulk edits targeting options under multiple line items. The operation will delete the assigned targeting options provided in BulkEditAssignedTargetingOptionsRequest.delete_requests and then create the assigned targeting options provided in BulkEditAssignedTargetingOptionsRequest.create_requests. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * lineItems.bulkUpdate * lineItems.patch * assignedTargetingOptions.create * assignedTargetingOptions.delete", + "description": "Bulk edits targeting options under multiple line items. The operation will delete the assigned targeting options provided in BulkEditAssignedTargetingOptionsRequest.delete_requests and then create the assigned targeting options provided in BulkEditAssignedTargetingOptionsRequest.create_requests. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * lineItems.bulkUpdate * lineItems.patch * assignedTargetingOptions.create * assignedTargetingOptions.delete YouTube & Partners line items cannot be created or updated using the API.", "flatPath": "v3/advertisers/{advertisersId}/lineItems:bulkEditAssignedTargetingOptions", "httpMethod": "POST", "id": "displayvideo.advertisers.lineItems.bulkEditAssignedTargetingOptions", @@ -3231,7 +3231,7 @@ ] }, "bulkUpdate": { - "description": "Updates multiple line items. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * BulkEditAssignedTargetingOptions * UpdateLineItem * assignedTargetingOptions.create * assignedTargetingOptions.delete", + "description": "Updates multiple line items. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * BulkEditAssignedTargetingOptions * UpdateLineItem * assignedTargetingOptions.create * assignedTargetingOptions.delete YouTube & Partners line items cannot be created or updated using the API.", "flatPath": "v3/advertisers/{advertisersId}/lineItems:bulkUpdate", "httpMethod": "POST", "id": "displayvideo.advertisers.lineItems.bulkUpdate", @@ -3260,7 +3260,7 @@ ] }, "create": { - "description": "Creates a new line item. Returns the newly created line item if successful.", + "description": "Creates a new line item. Returns the newly created line item if successful. YouTube & Partners line items cannot be created or updated using the API.", "flatPath": "v3/advertisers/{advertisersId}/lineItems", "httpMethod": "POST", "id": "displayvideo.advertisers.lineItems.create", @@ -3289,7 +3289,7 @@ ] }, "delete": { - "description": "Deletes a line item. Returns error code `NOT_FOUND` if the line item does not exist. The line item should be archived first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, to be able to delete it.", + "description": "Deletes a line item. Returns error code `NOT_FOUND` if the line item does not exist. The line item should be archived first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, to be able to delete it. YouTube & Partners line items cannot be created or updated using the API.", "flatPath": "v3/advertisers/{advertisersId}/lineItems/{lineItemsId}", "httpMethod": "DELETE", "id": "displayvideo.advertisers.lineItems.delete", @@ -3324,7 +3324,7 @@ ] }, "duplicate": { - "description": "Duplicates a line item. Returns the ID of the created line item if successful.", + "description": "Duplicates a line item. Returns the ID of the created line item if successful. YouTube & Partners line items cannot be created or updated using the API. **This method regularly experiences high latency.** We recommend [increasing your default timeout](/display-video/api/guides/best-practices/timeouts#client_library_timeout) to avoid errors.", "flatPath": "v3/advertisers/{advertisersId}/lineItems/{lineItemsId}:duplicate", "httpMethod": "POST", "id": "displayvideo.advertisers.lineItems.duplicate", @@ -3362,7 +3362,7 @@ ] }, "generateDefault": { - "description": "Creates a new line item with settings (including targeting) inherited from the insertion order and an `ENTITY_STATUS_DRAFT` entity_status. Returns the newly created line item if successful. There are default values based on the three fields: * The insertion order's insertion_order_type * The insertion order's automation_type * The given line_item_type", + "description": "Creates a new line item with settings (including targeting) inherited from the insertion order and an `ENTITY_STATUS_DRAFT` entity_status. Returns the newly created line item if successful. There are default values based on the three fields: * The insertion order's insertion_order_type * The insertion order's automation_type * The given line_item_type YouTube & Partners line items cannot be created or updated using the API.", "flatPath": "v3/advertisers/{advertisersId}/lineItems:generateDefault", "httpMethod": "POST", "id": "displayvideo.advertisers.lineItems.generateDefault", @@ -3473,7 +3473,7 @@ ] }, "patch": { - "description": "Updates an existing line item. Returns the updated line item if successful. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * BulkEditAssignedTargetingOptions * BulkUpdateLineItems * assignedTargetingOptions.create * assignedTargetingOptions.delete", + "description": "Updates an existing line item. Returns the updated line item if successful. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * BulkEditAssignedTargetingOptions * BulkUpdateLineItems * assignedTargetingOptions.create * assignedTargetingOptions.delete YouTube & Partners line items cannot be created or updated using the API. **This method regularly experiences high latency.** We recommend [increasing your default timeout](/display-video/api/guides/best-practices/timeouts#client_library_timeout) to avoid errors.", "flatPath": "v3/advertisers/{advertisersId}/lineItems/{lineItemsId}", "httpMethod": "PATCH", "id": "displayvideo.advertisers.lineItems.patch", @@ -3523,7 +3523,7 @@ "assignedTargetingOptions": { "methods": { "create": { - "description": "Assigns a targeting option to a line item. Returns the assigned targeting option if successful. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * lineItems.bulkEditAssignedTargetingOptions * lineItems.bulkUpdate * lineItems.patch * DeleteLineItemAssignedTargetingOption", + "description": "Assigns a targeting option to a line item. Returns the assigned targeting option if successful. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * lineItems.bulkEditAssignedTargetingOptions * lineItems.bulkUpdate * lineItems.patch * DeleteLineItemAssignedTargetingOption YouTube & Partners line items cannot be created or updated using the API.", "flatPath": "v3/advertisers/{advertisersId}/lineItems/{lineItemsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions", "httpMethod": "POST", "id": "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.create", @@ -3671,7 +3671,7 @@ ] }, "delete": { - "description": "Deletes an assigned targeting option from a line item. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * lineItems.bulkEditAssignedTargetingOptions * lineItems.bulkUpdate * lineItems.patch * CreateLineItemAssignedTargetingOption", + "description": "Deletes an assigned targeting option from a line item. Requests to this endpoint cannot be made concurrently with the following requests updating the same line item: * lineItems.bulkEditAssignedTargetingOptions * lineItems.bulkUpdate * lineItems.patch * CreateLineItemAssignedTargetingOption YouTube & Partners line items cannot be created or updated using the API.", "flatPath": "v3/advertisers/{advertisersId}/lineItems/{lineItemsId}/targetingTypes/{targetingTypesId}/assignedTargetingOptions/{assignedTargetingOptionsId}", "httpMethod": "DELETE", "id": "displayvideo.advertisers.lineItems.targetingTypes.assignedTargetingOptions.delete", @@ -6417,6 +6417,101 @@ "https://www.googleapis.com/auth/display-video" ] } + }, + "resources": { + "floodlightActivities": { + "methods": { + "get": { + "description": "Gets a Floodlight activity.", + "flatPath": "v3/floodlightGroups/{floodlightGroupsId}/floodlightActivities/{floodlightActivitiesId}", + "httpMethod": "GET", + "id": "displayvideo.floodlightGroups.floodlightActivities.get", + "parameterOrder": [ + "floodlightGroupId", + "floodlightActivityId" + ], + "parameters": { + "floodlightActivityId": { + "description": "Required. The ID of the Floodlight activity to fetch.", + "format": "int64", + "location": "path", + "pattern": "^[^/]+$", + "required": true, + "type": "string" + }, + "floodlightGroupId": { + "description": "Required. The ID of the parent Floodlight group to which the requested Floodlight activity belongs.", + "format": "int64", + "location": "path", + "pattern": "^[^/]+$", + "required": true, + "type": "string" + }, + "partnerId": { + "description": "Required. The ID of the partner through which the Floodlight activity is being accessed.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "v3/floodlightGroups/{+floodlightGroupId}/floodlightActivities/{+floodlightActivityId}", + "response": { + "$ref": "FloodlightActivity" + }, + "scopes": [ + "https://www.googleapis.com/auth/display-video" + ] + }, + "list": { + "description": "Lists Floodlight activities in a Floodlight group.", + "flatPath": "v3/floodlightGroups/{floodlightGroupsId}/floodlightActivities", + "httpMethod": "GET", + "id": "displayvideo.floodlightGroups.floodlightActivities.list", + "parameterOrder": [ + "floodlightGroupId" + ], + "parameters": { + "floodlightGroupId": { + "description": "Required. The ID of the parent Floodlight group to which the requested Floodlight activities belong.", + "format": "int64", + "location": "path", + "pattern": "^[^/]+$", + "required": true, + "type": "string" + }, + "orderBy": { + "description": "Optional. Field by which to sort the list. Acceptable values are: * `displayName` (default) * `floodlightActivityId` The default sorting order is ascending. To specify descending order for a field, a suffix \"desc\" should be added to the field name. Example: `displayName desc`.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Requested page size. Must be between `1` and `100`. If unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` if an invalid value is specified.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A token identifying a page of results the server should return. Typically, this is the value of next_page_token returned from the previous call to `ListFloodlightActivities` method. If not specified, the first page of results will be returned.", + "location": "query", + "type": "string" + }, + "partnerId": { + "description": "Required. The ID of the partner through which the Floodlight activities are being accessed.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "v3/floodlightGroups/{+floodlightGroupId}/floodlightActivities", + "response": { + "$ref": "ListFloodlightActivitiesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/display-video" + ] + } + } + } } }, "googleAudiences": { @@ -7834,7 +7929,7 @@ ] }, "replace": { - "description": "Replaces all of the sites under a single channel. The operation will replace the sites under a channel with the sites provided in ReplaceSitesRequest.new_sites.", + "description": "Replaces all of the sites under a single channel. The operation will replace the sites under a channel with the sites provided in ReplaceSitesRequest.new_sites. **This method regularly experiences high latency.** We recommend [increasing your default timeout](/display-video/api/guides/best-practices/timeouts#client_library_timeout) to avoid errors.", "flatPath": "v3/partners/{partnerId}/channels/{channelsId}/sites:replace", "httpMethod": "POST", "id": "displayvideo.partners.channels.sites.replace", @@ -9521,7 +9616,7 @@ }, "billingConfig": { "$ref": "AdvertiserBillingConfig", - "description": "Required. Billing related settings of the advertiser." + "description": "Optional. Required. Billing related settings of the advertiser." }, "creativeConfig": { "$ref": "AdvertiserCreativeConfig", @@ -9610,7 +9705,7 @@ "id": "AdvertiserBillingConfig", "properties": { "billingProfileId": { - "description": "The ID of a billing profile assigned to the advertiser.", + "description": "Optional. The ID of a billing profile assigned to the advertiser.", "format": "int64", "type": "string" } @@ -9631,7 +9726,7 @@ "type": "string" }, "obaComplianceDisabled": { - "description": "Whether or not to use DV360's Online Behavioral Advertising (OBA) compliance. Warning: Changing OBA settings may cause the audit status of your creatives to be reset by some ad exchanges, making them ineligible to serve until they are re-approved.", + "description": "Whether or not to disable Google's About this Ad feature that adds badging (to identify the content as an ad) and transparency information (on interaction with About this Ad) to your ads for Online Behavioral Advertising (OBA) and regulatory requirements. About this Ad gives users greater control over the ads they see and helps you explain why they're seeing your ad. [Learn more](//support.google.com/displayvideo/answer/14315795). If you choose to set this field to `true`, note that ads served through Display & Video 360 must comply to the following: * Be Online Behavioral Advertising (OBA) compliant, as per your contract with Google Marketing Platform. * In the European Economic Area (EEA), include transparency information and a mechanism for users to report illegal content in ads. If using an alternative ad badging, transparency, and reporting solution, you must ensure it includes the required transparency information and illegal content flagging mechanism and that you notify Google of any illegal content reports using the appropriate [form](//support.google.com/legal/troubleshooter/1114905?sjid=6787484030557261960-EU#ts=2981967%2C2982031%2C12980091).", "type": "boolean" }, "videoCreativeDataSharingAuthorized": { @@ -9948,7 +10043,13 @@ "EXCHANGE_APPLOVIN", "EXCHANGE_CONNATIX", "EXCHANGE_RESET_DIGITAL", - "EXCHANGE_HIVESTACK" + "EXCHANGE_HIVESTACK", + "EXCHANGE_APPLOVIN_GBID", + "EXCHANGE_FYBER_GBID", + "EXCHANGE_UNITY_GBID", + "EXCHANGE_CHARTBOOST_GBID", + "EXCHANGE_ADMOST_GBID", + "EXCHANGE_TOPON_GBID" ], "enumDescriptions": [ "Exchange is not specified or is unknown in this version.", @@ -10025,7 +10126,13 @@ "AppLovin.", "Connatix.", "Reset Digital.", - "Hivestack." + "Hivestack.", + "AppLovin MAX.", + "DT Fairbid.", + "Unity LevelPlay.", + "Chartboost Mediation.", + "AdMost.", + "TopOn." ], "type": "string" }, @@ -12052,6 +12159,15 @@ "format": "int64", "type": "string" }, + "cmAdvertiserIds": { + "description": "Output only. The set of CM360 Advertiser IDs sharing the CM360 Floodlight configuration.", + "items": { + "format": "int64", + "type": "string" + }, + "readOnly": true, + "type": "array" + }, "cmFloodlightConfigId": { "description": "Required. Immutable. ID of the CM360 Floodlight configuration linked with the DV360 advertiser.", "format": "int64", @@ -12198,7 +12314,7 @@ "CONSENT_STATUS_DENIED" ], "enumDescriptions": [ - "Consent is not specified.", + "Type value is not specified or is unknown in this version.", "Consent is granted.", "Consent is denied." ], @@ -12212,7 +12328,7 @@ "CONSENT_STATUS_DENIED" ], "enumDescriptions": [ - "Consent is not specified.", + "Type value is not specified or is unknown in this version.", "Consent is granted.", "Consent is denied." ], @@ -12267,7 +12383,7 @@ "properties": { "consent": { "$ref": "Consent", - "description": "Input only. User consent status." + "description": "Input only. The consent setting for the users in contact_infos. Leaving this field unset indicates that consent is not specified. If ad_user_data or ad_personalization fields are set to `CONSENT_STATUS_DENIED`, the request will return an error." }, "contactInfos": { "description": "A list of ContactInfo objects defining Customer Match audience members. The size of members after splitting the contact_infos mustn't be greater than 500,000.", @@ -14438,6 +14554,14 @@ "description": "Required. The ID of the owner advertiser of the updated Customer Match FirstAndThirdPartyAudience.", "format": "int64", "type": "string" + }, + "removedContactInfoList": { + "$ref": "ContactInfoList", + "description": "Input only. A list of contact information to define the members to be removed." + }, + "removedMobileDeviceIdList": { + "$ref": "MobileDeviceIdList", + "description": "Input only. A list of mobile device IDs to define the members to be removed." } }, "type": "object" @@ -14681,7 +14805,13 @@ "EXCHANGE_APPLOVIN", "EXCHANGE_CONNATIX", "EXCHANGE_RESET_DIGITAL", - "EXCHANGE_HIVESTACK" + "EXCHANGE_HIVESTACK", + "EXCHANGE_APPLOVIN_GBID", + "EXCHANGE_FYBER_GBID", + "EXCHANGE_UNITY_GBID", + "EXCHANGE_CHARTBOOST_GBID", + "EXCHANGE_ADMOST_GBID", + "EXCHANGE_TOPON_GBID" ], "enumDescriptions": [ "Exchange is not specified or is unknown in this version.", @@ -14758,7 +14888,13 @@ "AppLovin.", "Connatix.", "Reset Digital.", - "Hivestack." + "Hivestack.", + "AppLovin MAX.", + "DT Fairbid.", + "Unity LevelPlay.", + "Chartboost Mediation.", + "AdMost.", + "TopOn." ], "type": "string" } @@ -14860,7 +14996,13 @@ "EXCHANGE_APPLOVIN", "EXCHANGE_CONNATIX", "EXCHANGE_RESET_DIGITAL", - "EXCHANGE_HIVESTACK" + "EXCHANGE_HIVESTACK", + "EXCHANGE_APPLOVIN_GBID", + "EXCHANGE_FYBER_GBID", + "EXCHANGE_UNITY_GBID", + "EXCHANGE_CHARTBOOST_GBID", + "EXCHANGE_ADMOST_GBID", + "EXCHANGE_TOPON_GBID" ], "enumDescriptions": [ "Exchange is not specified or is unknown in this version.", @@ -14937,7 +15079,13 @@ "AppLovin.", "Connatix.", "Reset Digital.", - "Hivestack." + "Hivestack.", + "AppLovin MAX.", + "DT Fairbid.", + "Unity LevelPlay.", + "Chartboost Mediation.", + "AdMost.", + "TopOn." ], "type": "string" }, @@ -15040,7 +15188,13 @@ "EXCHANGE_APPLOVIN", "EXCHANGE_CONNATIX", "EXCHANGE_RESET_DIGITAL", - "EXCHANGE_HIVESTACK" + "EXCHANGE_HIVESTACK", + "EXCHANGE_APPLOVIN_GBID", + "EXCHANGE_FYBER_GBID", + "EXCHANGE_UNITY_GBID", + "EXCHANGE_CHARTBOOST_GBID", + "EXCHANGE_ADMOST_GBID", + "EXCHANGE_TOPON_GBID" ], "enumDescriptions": [ "Exchange is not specified or is unknown in this version.", @@ -15117,7 +15271,13 @@ "AppLovin.", "Connatix.", "Reset Digital.", - "Hivestack." + "Hivestack.", + "AppLovin MAX.", + "DT Fairbid.", + "Unity LevelPlay.", + "Chartboost Mediation.", + "AdMost.", + "TopOn." ], "type": "string" }, @@ -15221,7 +15381,13 @@ "EXCHANGE_APPLOVIN", "EXCHANGE_CONNATIX", "EXCHANGE_RESET_DIGITAL", - "EXCHANGE_HIVESTACK" + "EXCHANGE_HIVESTACK", + "EXCHANGE_APPLOVIN_GBID", + "EXCHANGE_FYBER_GBID", + "EXCHANGE_UNITY_GBID", + "EXCHANGE_CHARTBOOST_GBID", + "EXCHANGE_ADMOST_GBID", + "EXCHANGE_TOPON_GBID" ], "enumDescriptions": [ "Exchange is not specified or is unknown in this version.", @@ -15298,7 +15464,13 @@ "AppLovin.", "Connatix.", "Reset Digital.", - "Hivestack." + "Hivestack.", + "AppLovin MAX.", + "DT Fairbid.", + "Unity LevelPlay.", + "Chartboost Mediation.", + "AdMost.", + "TopOn." ], "readOnly": true, "type": "string" @@ -15604,6 +15776,69 @@ }, "type": "object" }, + "FloodlightActivity": { + "description": "A single Floodlight activity.", + "id": "FloodlightActivity", + "properties": { + "advertiserIds": { + "description": "Output only. IDs of the advertisers that have access to the parent Floodlight group. Only advertisers under the provided partner ID will be listed in this field.", + "items": { + "format": "int64", + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "displayName": { + "description": "Required. The display name of the Floodlight activity.", + "type": "string" + }, + "floodlightActivityId": { + "description": "Output only. The unique ID of the Floodlight activity. Assigned by the system.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "floodlightGroupId": { + "description": "Required. Immutable. The ID of the parent Floodlight group.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "Output only. The resource name of the Floodlight activity.", + "readOnly": true, + "type": "string" + }, + "remarketingConfigs": { + "description": "Output only. A list of configuration objects designating whether remarketing for this Floodlight Activity is enabled and available for a specifc advertiser. If enabled, this Floodlight Activity generates a remarketing user list that is able to be used in targeting under the advertiser.", + "items": { + "$ref": "RemarketingConfig" + }, + "readOnly": true, + "type": "array" + }, + "servingStatus": { + "description": "Optional. Whether the Floodlight activity is served.", + "enum": [ + "FLOODLIGHT_ACTIVITY_SERVING_STATUS_UNSPECIFIED", + "FLOODLIGHT_ACTIVITY_SERVING_STATUS_ENABLED", + "FLOODLIGHT_ACTIVITY_SERVING_STATUS_DISABLED" + ], + "enumDescriptions": [ + "Type value is not specified or is unknown in this version.", + "Enabled.", + "Disabled." + ], + "type": "string" + }, + "sslRequired": { + "description": "Output only. Whether tags are required to be compliant.", + "readOnly": true, + "type": "boolean" + } + }, + "type": "object" + }, "FloodlightGroup": { "description": "A single Floodlight group.", "id": "FloodlightGroup", @@ -15668,7 +15903,7 @@ "type": "integer" }, "maxViews": { - "description": "The maximum number of times a user may click-through or fully view an ad during this period until it is no longer served to them. Must be greater than 0. Only applicable to YouTube and Partners resources. Required when unlimited is `false` and max_impressions is not set.", + "description": "Optional. The maximum number of times a user may click-through or fully view an ad during this period until it is no longer served to them. Must be greater than 0. Only applicable to YouTube and Partners resources. Required when unlimited is `false` and max_impressions is not set.", "format": "int32", "type": "integer" }, @@ -16190,7 +16425,13 @@ "EXCHANGE_APPLOVIN", "EXCHANGE_CONNATIX", "EXCHANGE_RESET_DIGITAL", - "EXCHANGE_HIVESTACK" + "EXCHANGE_HIVESTACK", + "EXCHANGE_APPLOVIN_GBID", + "EXCHANGE_FYBER_GBID", + "EXCHANGE_UNITY_GBID", + "EXCHANGE_CHARTBOOST_GBID", + "EXCHANGE_ADMOST_GBID", + "EXCHANGE_TOPON_GBID" ], "enumDescriptions": [ "Exchange is not specified or is unknown in this version.", @@ -16267,7 +16508,13 @@ "AppLovin.", "Connatix.", "Reset Digital.", - "Hivestack." + "Hivestack.", + "AppLovin MAX.", + "DT Fairbid.", + "Unity LevelPlay.", + "Chartboost Mediation.", + "AdMost.", + "TopOn." ], "type": "string" }, @@ -17065,7 +17312,13 @@ "EXCHANGE_APPLOVIN", "EXCHANGE_CONNATIX", "EXCHANGE_RESET_DIGITAL", - "EXCHANGE_HIVESTACK" + "EXCHANGE_HIVESTACK", + "EXCHANGE_APPLOVIN_GBID", + "EXCHANGE_FYBER_GBID", + "EXCHANGE_UNITY_GBID", + "EXCHANGE_CHARTBOOST_GBID", + "EXCHANGE_ADMOST_GBID", + "EXCHANGE_TOPON_GBID" ], "enumDescriptions": [ "Exchange is not specified or is unknown in this version.", @@ -17142,7 +17395,13 @@ "AppLovin.", "Connatix.", "Reset Digital.", - "Hivestack." + "Hivestack.", + "AppLovin MAX.", + "DT Fairbid.", + "Unity LevelPlay.", + "Chartboost Mediation.", + "AdMost.", + "TopOn." ], "type": "string" }, @@ -18276,6 +18535,23 @@ }, "type": "object" }, + "ListFloodlightActivitiesResponse": { + "id": "ListFloodlightActivitiesResponse", + "properties": { + "floodlightActivities": { + "description": "The list of Floodlight activities. This list will be absent if empty.", + "items": { + "$ref": "FloodlightActivity" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token to retrieve the next page of results. Pass this value in the page_token field in the subsequent call to `ListFloodlightActivities` method to retrieve the next page of results.", + "type": "string" + } + }, + "type": "object" + }, "ListGoogleAudiencesResponse": { "id": "ListGoogleAudiencesResponse", "properties": { @@ -18807,7 +19083,7 @@ "properties": { "consent": { "$ref": "Consent", - "description": "Input only. User consent status." + "description": "Input only. The consent setting for the users in mobile_device_ids. Leaving this field unset indicates that consent is not specified. If ad_user_data or ad_personalization fields are set to `CONSENT_STATUS_DENIED`, the request will return an error." }, "mobileDeviceIds": { "description": "A list of mobile device IDs defining Customer Match audience members. The size of mobile_device_ids mustn't be greater than 500,000.", @@ -19772,7 +20048,7 @@ "type": "string" }, "targetingOptionId": { - "description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. Accepted POI targeting option IDs can be retrieved using SearchTargetingOptions. If targeting a specific latitude/longitude coordinate removed from an address or POI name, you can generate the necessary targeting option ID by rounding the desired coordinate values to the 6th decimal place, removing the decimals, and concatenating the string values separated by a semicolon. For example, you can target the latitude/longitude pair of 40.7414691, -74.003387 using the targeting option ID \"40741469;-74003387\".", + "description": "Required. The targeting_option_id of a TargetingOption of type `TARGETING_TYPE_POI`. Accepted POI targeting option IDs can be retrieved using `targetingTypes.targetingOptions.search`. If targeting a specific latitude/longitude coordinate removed from an address or POI name, you can generate the necessary targeting option ID by rounding the desired coordinate values to the 6th decimal place, removing the decimals, and concatenating the string values separated by a semicolon. For example, you can target the latitude/longitude pair of 40.7414691, -74.003387 using the targeting option ID \"40741469;-74003387\". **Upon** **creation, this field value will be updated to append a semicolon and** **alphanumerical hash value if only latitude/longitude coordinates are** **provided.**", "type": "string" } }, @@ -20031,6 +20307,24 @@ }, "type": "object" }, + "RemarketingConfig": { + "description": "Settings that control the whether remarketing is enabled for the given identified advertiser.", + "id": "RemarketingConfig", + "properties": { + "advertiserId": { + "description": "Output only. The ID of the advertiser.", + "format": "int64", + "readOnly": true, + "type": "string" + }, + "remarketingEnabled": { + "description": "Output only. Whether the Floodlight activity remarketing user list is available to the identified advertiser.", + "readOnly": true, + "type": "boolean" + } + }, + "type": "object" + }, "ReplaceNegativeKeywordsRequest": { "description": "Request message for NegativeKeywordService.ReplaceNegativeKeywords.", "id": "ReplaceNegativeKeywordsRequest", @@ -21243,6 +21537,12 @@ "description": "Required. Immutable. The email address used to identify the user.", "type": "string" }, + "lastLoginTime": { + "description": "Output only. The timestamp when the user last logged in DV360 UI.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, "name": { "description": "Output only. The resource name of the user.", "readOnly": true, @@ -21677,8 +21977,12 @@ "description": "Settings that control what YouTube related inventories the YouTube and Partners line item will target.", "id": "YoutubeAndPartnersInventorySourceConfig", "properties": { + "includeGoogleTv": { + "description": "Optional. Whether to target inventory in video apps available with Google TV.", + "type": "boolean" + }, "includeYoutube": { - "description": "Whether to target inventory on YouTube. This includes both search, channels and videos.", + "description": "Optional. Whether to target inventory on YouTube. This includes both search, channels and videos.", "type": "boolean" }, "includeYoutubeVideoPartners": { @@ -21730,17 +22034,17 @@ "description": "Settings that control what YouTube and Partners inventories the line item will target." }, "leadFormId": { - "description": "The ID of the form to generate leads.", + "description": "Optional. The ID of the form to generate leads.", "format": "int64", "type": "string" }, "linkedMerchantId": { - "description": "The ID of the merchant which is linked to the line item for product feed.", + "description": "Optional. The ID of the merchant which is linked to the line item for product feed.", "format": "int64", "type": "string" }, "relatedVideoIds": { - "description": "The IDs of the videos appear below the primary video ad when the ad is playing in the YouTube app on mobile devices.", + "description": "Optional. The IDs of the videos appear below the primary video ad when the ad is playing in the YouTube app on mobile devices.", "items": { "type": "string" }, @@ -21748,7 +22052,7 @@ }, "targetFrequency": { "$ref": "TargetFrequency", - "description": "The average number of times you want ads from this line item to show to the same person over a certain period of time." + "description": "Optional. The average number of times you want ads from this line item to show to the same person over a certain period of time." }, "thirdPartyMeasurementConfigs": { "$ref": "ThirdPartyMeasurementConfigs", @@ -21756,7 +22060,7 @@ }, "videoAdSequenceSettings": { "$ref": "VideoAdSequenceSettings", - "description": "The settings related to VideoAdSequence." + "description": "Optional. The settings related to VideoAdSequence." }, "viewFrequencyCap": { "$ref": "FrequencyCap", diff --git a/discovery/googleapis/dlp__v2.json b/discovery/googleapis/dlp__v2.json index 0b13b39dd..a3839ae19 100644 --- a/discovery/googleapis/dlp__v2.json +++ b/discovery/googleapis/dlp__v2.json @@ -12,7 +12,7 @@ "baseUrl": "https://dlp.googleapis.com/", "batchPath": "batch", "canonicalName": "DLP", - "description": "Provides methods for detection, risk analysis, and de-identification of privacy-sensitive fragments in text, images, and Google Cloud Platform storage repositories.", + "description": "Discover and protect your sensitive data. A fully managed service designed to help you discover, classify, and protect your valuable data assets with ease.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/dlp/docs/", "icons": { @@ -25,10 +25,10 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231112", + "revision": "20240218", "rootUrl": "https://dlp.googleapis.com/", "servicePath": "", - "title": "Cloud Data Loss Prevention (DLP)", + "title": "Sensitive Data Protection (DLP)", "version": "v2", "version_module": true, "parameters": { @@ -2842,7 +2842,7 @@ ], "parameters": { "name": { - "description": "Required. The name of the DlpJob resource to be cancelled.", + "description": "Required. The name of the DlpJob resource to be finished.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/dlpJobs/[^/]+$", "required": true, @@ -3939,18 +3939,19 @@ "type": "string" }, "rowsLimitPercent": { - "description": "Max percentage of rows to scan. The rest are omitted. The number of rows scanned is rounded down. Must be between 0 and 100, inclusively. Both 0 and 100 means no limit. Defaults to 0. Only one of rows_limit and rows_limit_percent can be specified. Cannot be used in conjunction with TimespanConfig.", + "description": "Max percentage of rows to scan. The rest are omitted. The number of rows scanned is rounded down. Must be between 0 and 100, inclusively. Both 0 and 100 means no limit. Defaults to 0. Only one of rows_limit and rows_limit_percent can be specified. Cannot be used in conjunction with TimespanConfig. Caution: A [known issue](https://cloud.google.com/dlp/docs/known-issues#bq-sampling) is causing the `rowsLimitPercent` field to behave unexpectedly. We recommend using `rowsLimit` instead.", "format": "int32", "type": "integer" }, "sampleMethod": { + "description": "How to sample the data.", "enum": [ "SAMPLE_METHOD_UNSPECIFIED", "TOP", "RANDOM_START" ], "enumDescriptions": [ - "", + "No sampling.", "Scan groups of rows in the order BigQuery provides (default). Multiple groups of rows may be scanned in parallel, so results may not appear in the same order the rows are read.", "Randomly pick groups of rows to scan." ], @@ -4329,7 +4330,7 @@ "enumDescriptions": [ "Includes all files.", "Includes all file extensions not covered by another entry. Binary scanning attempts to convert the content of the file to utf_8 to scan the file. If you wish to avoid this fall back, specify one or more of the other file types in your storage scan.", - "Included file extensions: asc,asp, aspx, brf, c, cc,cfm, cgi, cpp, csv, cxx, c++, cs, css, dart, dat, dot, eml,, epbub, ged, go, h, hh, hpp, hxx, h++, hs, html, htm, mkd, markdown, m, ml, mli, perl, pl, plist, pm, php, phtml, pht, properties, py, pyw, rb, rbw, rs, rss, rc, scala, sh, sql, swift, tex, shtml, shtm, xhtml, lhs, ics, ini, java, js, json, kix, kml, ocaml, md, txt, text, tsv, vb, vcard, vcs, wml, xcodeproj, xml, xsl, xsd, yml, yaml.", + "Included file extensions: asc,asp, aspx, brf, c, cc,cfm, cgi, cpp, csv, cxx, c++, cs, css, dart, dat, dot, eml,, epbub, ged, go, h, hh, hpp, hxx, h++, hs, html, htm, mkd, markdown, m, ml, mli, perl, pl, plist, pm, php, phtml, pht, properties, py, pyw, rb, rbw, rs, rss, rc, scala, sh, sql, swift, tex, shtml, shtm, xhtml, lhs, ics, ini, java, js, json, jsonl, kix, kml, ocaml, md, txt, text, tsv, vb, vcard, vcs, wml, xcodeproj, xml, xsl, xsd, yml, yaml.", "Included file extensions: bmp, gif, jpg, jpeg, jpe, png. Setting bytes_limit_per_file or bytes_limit_per_file_percent has no effect on image files. Image inspection is restricted to the `global`, `us`, `asia`, and `europe` regions.", "Microsoft Word files larger than 30 MB will be scanned as binary files. Included file extensions: docx, dotx, docm, dotm. Setting `bytes_limit_per_file` or `bytes_limit_per_file_percent` has no effect on Word files.", "PDF files larger than 30 MB will be scanned as binary files. Included file extensions: pdf. Setting `bytes_limit_per_file` or `bytes_limit_per_file_percent` has no effect on PDF files.", @@ -4349,13 +4350,14 @@ "type": "integer" }, "sampleMethod": { + "description": "How to sample the data.", "enum": [ "SAMPLE_METHOD_UNSPECIFIED", "TOP", "RANDOM_START" ], "enumDescriptions": [ - "", + "No sampling.", "Scan from the top (default).", "For each file larger than bytes_limit_per_file, randomly pick the offset to start scanning. The scanned bytes are contiguous." ], @@ -4501,7 +4503,7 @@ "Unused.", "Very few null entries.", "Some null entries.", - "", + "A few null entries.", "A lot of null entries." ], "type": "string" @@ -4682,6 +4684,7 @@ "type": "object" }, "GooglePrivacyDlpV2ContentItem": { + "description": "Type of content to inspect.", "id": "GooglePrivacyDlpV2ContentItem", "properties": { "byteItem": { @@ -5051,7 +5054,11 @@ "dataProfileJob": { "$ref": "GooglePrivacyDlpV2DataProfileJobConfig", "deprecated": true, - "description": "A copy of the configuration used to generate this profile. This is deprecated and will be replaced by DiscoveryConfig. DataProfileJobConfig will still be written here for Discovery in BigQuery for backwards compatibility, but will not be updated with new fields, while DiscoveryConfig will." + "description": "A copy of the configuration used to generate this profile. This is deprecated, and the DiscoveryConfig field is preferred moving forward. DataProfileJobConfig will still be written here for Discovery in BigQuery for backwards compatibility, but will not be updated with new fields, while DiscoveryConfig will." + }, + "discoveryConfig": { + "$ref": "GooglePrivacyDlpV2DiscoveryConfig", + "description": "A copy of the configuration used to generate this profile." }, "inspectConfig": { "$ref": "GooglePrivacyDlpV2InspectConfig", @@ -5169,6 +5176,18 @@ }, "type": "object" }, + "GooglePrivacyDlpV2DataSourceType": { + "description": "Message used to identify the type of resource being profiled.", + "id": "GooglePrivacyDlpV2DataSourceType", + "properties": { + "dataSource": { + "description": "Output only. An identifying string to the type of resource being profiled. Current values: google/bigquery/table, google/project", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GooglePrivacyDlpV2DatastoreKey": { "description": "Record key for a finding in Cloud Datastore.", "id": "GooglePrivacyDlpV2DatastoreKey", @@ -5290,7 +5309,7 @@ "enumDescriptions": [ "Includes all files.", "Includes all file extensions not covered by another entry. Binary scanning attempts to convert the content of the file to utf_8 to scan the file. If you wish to avoid this fall back, specify one or more of the other file types in your storage scan.", - "Included file extensions: asc,asp, aspx, brf, c, cc,cfm, cgi, cpp, csv, cxx, c++, cs, css, dart, dat, dot, eml,, epbub, ged, go, h, hh, hpp, hxx, h++, hs, html, htm, mkd, markdown, m, ml, mli, perl, pl, plist, pm, php, phtml, pht, properties, py, pyw, rb, rbw, rs, rss, rc, scala, sh, sql, swift, tex, shtml, shtm, xhtml, lhs, ics, ini, java, js, json, kix, kml, ocaml, md, txt, text, tsv, vb, vcard, vcs, wml, xcodeproj, xml, xsl, xsd, yml, yaml.", + "Included file extensions: asc,asp, aspx, brf, c, cc,cfm, cgi, cpp, csv, cxx, c++, cs, css, dart, dat, dot, eml,, epbub, ged, go, h, hh, hpp, hxx, h++, hs, html, htm, mkd, markdown, m, ml, mli, perl, pl, plist, pm, php, phtml, pht, properties, py, pyw, rb, rbw, rs, rss, rc, scala, sh, sql, swift, tex, shtml, shtm, xhtml, lhs, ics, ini, java, js, json, jsonl, kix, kml, ocaml, md, txt, text, tsv, vb, vcard, vcs, wml, xcodeproj, xml, xsl, xsd, yml, yaml.", "Included file extensions: bmp, gif, jpg, jpeg, jpe, png. Setting bytes_limit_per_file or bytes_limit_per_file_percent has no effect on image files. Image inspection is restricted to the `global`, `us`, `asia`, and `europe` regions.", "Microsoft Word files larger than 30 MB will be scanned as binary files. Included file extensions: docx, dotx, docm, dotm. Setting `bytes_limit_per_file` or `bytes_limit_per_file_percent` has no effect on Word files.", "PDF files larger than 30 MB will be scanned as binary files. Included file extensions: pdf. Setting `bytes_limit_per_file` or `bytes_limit_per_file_percent` has no effect on PDF files.", @@ -6456,6 +6475,7 @@ "id": "GooglePrivacyDlpV2ImageTransformations", "properties": { "transforms": { + "description": "List of transforms to make.", "items": { "$ref": "GooglePrivacyDlpV2ImageTransformation" }, @@ -7922,6 +7942,7 @@ "type": "object" }, "GooglePrivacyDlpV2ProfileStatus": { + "description": "Success or errors for the profile generation.", "id": "GooglePrivacyDlpV2ProfileStatus", "properties": { "status": { @@ -8189,10 +8210,12 @@ "id": "GooglePrivacyDlpV2RecordKey", "properties": { "bigQueryKey": { - "$ref": "GooglePrivacyDlpV2BigQueryKey" + "$ref": "GooglePrivacyDlpV2BigQueryKey", + "description": "Datastore key" }, "datastoreKey": { - "$ref": "GooglePrivacyDlpV2DatastoreKey" + "$ref": "GooglePrivacyDlpV2DatastoreKey", + "description": "Bigquery key" }, "idValues": { "description": "Values of identifying columns in the given row. Order of values matches the order of `identifying_fields` specified in the scanning request.", @@ -8235,6 +8258,7 @@ "type": "object" }, "GooglePrivacyDlpV2RecordTransformation": { + "description": "The field in a record to transform.", "id": "GooglePrivacyDlpV2RecordTransformation", "properties": { "containerTimestamp": { @@ -8635,7 +8659,8 @@ "description": "Hybrid inspection options." }, "timespanConfig": { - "$ref": "GooglePrivacyDlpV2TimespanConfig" + "$ref": "GooglePrivacyDlpV2TimespanConfig", + "description": "Configuration of the timespan of the items to include in scanning." } }, "type": "object" @@ -8645,6 +8670,7 @@ "id": "GooglePrivacyDlpV2StorageMetadataLabel", "properties": { "key": { + "description": "Label name.", "type": "string" } }, @@ -8845,6 +8871,10 @@ "$ref": "GooglePrivacyDlpV2DataRiskLevel", "description": "The data risk level of this table." }, + "dataSourceType": { + "$ref": "GooglePrivacyDlpV2DataSourceType", + "description": "The resource type that was profiled." + }, "datasetId": { "description": "The BigQuery dataset ID.", "type": "string" @@ -9253,10 +9283,10 @@ "TRANSFORM_TABLE" ], "enumDescriptions": [ - "", - "", - "", - "" + "Unused.", + "Body of a file.", + "Metadata for a file.", + "A table." ], "type": "string" }, @@ -9291,6 +9321,7 @@ "type": "object" }, "GooglePrivacyDlpV2TransformationResultStatus": { + "description": "The outcome of a transformation.", "id": "GooglePrivacyDlpV2TransformationResultStatus", "properties": { "details": { @@ -9307,7 +9338,7 @@ "SUCCESS" ], "enumDescriptions": [ - "", + "Unused.", "This will be set when a finding could not be transformed (i.e. outside user set bucket range).", "This will be set when a BigQuery transformation was successful but could not be stored back in BigQuery because the transformed row exceeds BigQuery's max row size.", "This will be set when there is a finding in the custom metadata of a file, but at the write time of the transformed file, this key / value pair is unretrievable.", diff --git a/discovery/googleapis/dns__v1.json b/discovery/googleapis/dns__v1.json index 89e474e7f..b1dbf6222 100644 --- a/discovery/googleapis/dns__v1.json +++ b/discovery/googleapis/dns__v1.json @@ -34,7 +34,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231110", + "revision": "20240222", "rootUrl": "https://dns.googleapis.com/", "servicePath": "", "title": "Cloud DNS API", @@ -2157,14 +2157,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -2939,6 +2939,11 @@ "format": "int32", "type": "integer" }, + "nameserversPerDelegation": { + "description": "Maximum number of nameservers per delegation, meant to prevent abuse", + "format": "int32", + "type": "integer" + }, "networksPerManagedZone": { "description": "Maximum allowed number of networks to which a privately scoped zone can be attached.", "format": "int32", @@ -3026,6 +3031,10 @@ "geo": { "$ref": "RRSetRoutingPolicyGeoPolicy" }, + "healthCheck": { + "description": "The selfLink attribute of the HealthCheck resource to use for this RRSetRoutingPolicy. https://cloud.google.com/compute/docs/reference/rest/v1/healthChecks", + "type": "string" + }, "kind": { "default": "dns#rRSetRoutingPolicy", "type": "string" @@ -3094,10 +3103,18 @@ "type": "object" }, "RRSetRoutingPolicyHealthCheckTargets": { - "description": "HealthCheckTargets describes endpoints to health-check when responding to Routing Policy queries. Only the healthy endpoints will be included in the response.", + "description": "HealthCheckTargets describes endpoints to health-check when responding to Routing Policy queries. Only the healthy endpoints will be included in the response. Only one of internal_load_balancer and external_endpoints should be set.", "id": "RRSetRoutingPolicyHealthCheckTargets", "properties": { + "externalEndpoints": { + "description": "The Internet IP addresses to be health checked. The format matches the format of ResourceRecordSet.rrdata as defined in RFC 1035 (section 5) and RFC 1034 (section 3.6.1)", + "items": { + "type": "string" + }, + "type": "array" + }, "internalLoadBalancers": { + "description": "Configuration for internal load balancers to be health checked.", "items": { "$ref": "RRSetRoutingPolicyLoadBalancerTarget" }, diff --git a/discovery/googleapis/docs__v1.json b/discovery/googleapis/docs__v1.json index e619935be..7acd918fa 100644 --- a/discovery/googleapis/docs__v1.json +++ b/discovery/googleapis/docs__v1.json @@ -37,7 +37,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231120", + "revision": "20240220", "rootUrl": "https://docs.googleapis.com/", "servicePath": "", "title": "Google Docs API", diff --git a/discovery/googleapis/documentai__v1.json b/discovery/googleapis/documentai__v1.json index 191110022..07f04b2c3 100644 --- a/discovery/googleapis/documentai__v1.json +++ b/discovery/googleapis/documentai__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231116", + "revision": "20240212", "rootUrl": "https://documentai.googleapis.com/", "servicePath": "", "title": "Cloud Document AI API", @@ -2057,6 +2057,13 @@ "$ref": "GoogleCloudDocumentaiV1BatchDocumentsInputConfig", "description": "The input documents for the BatchProcessDocuments method." }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. The labels with user-defined metadata for the request. Label keys and values can be no longer than 63 characters (Unicode codepoints) and can only contain lowercase letters, numeric characters, underscores, and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter.", + "type": "object" + }, "processOptions": { "$ref": "GoogleCloudDocumentaiV1ProcessOptions", "description": "Inference-time options for the process API" @@ -4110,7 +4117,7 @@ }, "ocrConfig": { "$ref": "GoogleCloudDocumentaiV1OcrConfig", - "description": "Only applicable to `OCR_PROCESSOR`. Returns error if set on other processor types." + "description": "Only applicable to `OCR_PROCESSOR` and `FORM_PARSER_PROCESSOR`. Returns error if set on other processor types." } }, "type": "object" @@ -4147,6 +4154,13 @@ "$ref": "GoogleCloudDocumentaiV1Document", "description": "An inline document proto." }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. The labels with user-defined metadata for the request. Label keys and values can be no longer than 63 characters (Unicode codepoints) and can only contain lowercase letters, numeric characters, underscores, and dashes. International characters are allowed. Label values are optional. Label keys must start with a letter.", + "type": "object" + }, "processOptions": { "$ref": "GoogleCloudDocumentaiV1ProcessOptions", "description": "Inference-time options for the process API" @@ -4358,6 +4372,21 @@ "$ref": "GoogleCloudDocumentaiV1EvaluationReference", "description": "The most recently invoked evaluation for the processor version." }, + "modelType": { + "description": "Output only. The model type of this processor version.", + "enum": [ + "MODEL_TYPE_UNSPECIFIED", + "MODEL_TYPE_GENERATIVE", + "MODEL_TYPE_CUSTOM" + ], + "enumDescriptions": [ + "The processor version has unspecified model type.", + "The processor version has generative model type.", + "The processor version has custom model type." + ], + "readOnly": true, + "type": "string" + }, "name": { "description": "The resource name of the processor version. Format: `projects/{project}/locations/{location}/processors/{processor}/processorVersions/{processor_version}`", "type": "string" @@ -7673,7 +7702,7 @@ "documentWarehouseConfig": { "$ref": "GoogleCloudDocumentaiV1beta3DatasetDocumentWarehouseConfig", "deprecated": true, - "description": "Optional. Derepcated. Warehouse-based dataset configuration is not supported today." + "description": "Optional. Deprecated. Warehouse-based dataset configuration is not supported." }, "gcsManagedConfig": { "$ref": "GoogleCloudDocumentaiV1beta3DatasetGCSManagedConfig", diff --git a/discovery/googleapis/domains__v1.json b/discovery/googleapis/domains__v1.json index 328b8a418..57b0df381 100644 --- a/discovery/googleapis/domains__v1.json +++ b/discovery/googleapis/domains__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231108", + "revision": "20240204", "rootUrl": "https://domains.googleapis.com/", "servicePath": "", "title": "Cloud Domains API", @@ -921,14 +921,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -1053,7 +1053,7 @@ "enumDescriptions": [ "The contact privacy settings are undefined.", "All the data from `ContactSettings` is publicly available. When setting this option, you must also provide a `PUBLIC_CONTACT_DATA_ACKNOWLEDGEMENT` in the `contact_notices` field of the request.", - "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) None of the data from `ContactSettings` is publicly available. Instead, proxy contact data is published for your domain. Email sent to the proxy email address is forwarded to the registrant's email address. Cloud Domains provides this privacy proxy service at no additional cost.", + "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). None of the data from `ContactSettings` is publicly available. Instead, proxy contact data is published for your domain. Email sent to the proxy email address is forwarded to the registrant's email address. Cloud Domains provides this privacy proxy service at no additional cost.", "The organization name (if provided) and limited non-identifying data from `ContactSettings` is available to the public (e.g. country and state). The remaining data is marked as `REDACTED FOR PRIVACY` in the WHOIS database. The actual information redacted depends on the domain. For details, see [the registration privacy article](https://support.google.com/domains/answer/3251242)." ], "type": "string" @@ -1108,7 +1108,7 @@ "googleDomainsDns": { "$ref": "GoogleDomainsDns", "deprecated": true, - "description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) The free DNS zone provided by [Google Domains](https://domains.google/)." + "description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). The free DNS zone provided by [Google Domains](https://domains.google/)." } }, "type": "object" @@ -1228,7 +1228,7 @@ }, "ExportRegistrationRequest": { "deprecated": true, - "description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Request for the `ExportRegistration` method.", + "description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). Request for the `ExportRegistration` method.", "id": "ExportRegistrationRequest", "properties": {}, "type": "object" @@ -1283,7 +1283,7 @@ }, "GoogleDomainsDns": { "deprecated": true, - "description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Configuration for using the free DNS zone provided by Google Domains as a `Registration`'s `dns_provider`. You cannot configure the DNS zone itself using the API. To configure the DNS zone, go to [Google Domains](https://domains.google/).", + "description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). Configuration for using the free DNS zone provided by Google Domains as a `Registration`'s `dns_provider`. You cannot configure the DNS zone itself using the API. To configure the DNS zone, go to [Google Domains](https://domains.google/).", "id": "GoogleDomainsDns", "properties": { "dsRecords": { @@ -1321,7 +1321,7 @@ }, "ImportDomainRequest": { "deprecated": true, - "description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Request for the `ImportDomain` method.", + "description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). Request for the `ImportDomain` method.", "id": "ImportDomainRequest", "properties": { "domainName": { @@ -1431,7 +1431,7 @@ "id": "ManagementSettings", "properties": { "preferredRenewalMethod": { - "description": "Optional. The desired renewal method for this `Registration`. The actual `renewal_method` is automatically updated to reflect this choice. If unset or equal to `RENEWAL_METHOD_UNSPECIFIED`, it will be treated as if it were set to `AUTOMATIC_RENEWAL`. Can't be set to `RENEWAL_DISABLED` during resource creation and can only be updated when the `Registration` resource has state `ACTIVE` or `SUSPENDED`. When `preferred_renewal_method` is set to `AUTOMATIC_RENEWAL` the actual `renewal_method` can be set to `RENEWAL_DISABLED` in case of e.g. problems with the Billing Account or reported domain abuse. In such cases check the `issues` field on the `Registration`. After the problem is resolved the `renewal_method` will be automatically updated to `preferred_renewal_method` in a few hours.", + "description": "Optional. The desired renewal method for this `Registration`. The actual `renewal_method` is automatically updated to reflect this choice. If unset or equal to `RENEWAL_METHOD_UNSPECIFIED`, the actual `renewalMethod` is treated as if it were set to `AUTOMATIC_RENEWAL`. You cannot use `RENEWAL_DISABLED` during resource creation, and you can update the renewal status only when the `Registration` resource has state `ACTIVE` or `SUSPENDED`. When `preferred_renewal_method` is set to `AUTOMATIC_RENEWAL`, the actual `renewal_method` can be set to `RENEWAL_DISABLED` in case of problems with the billing account or reported domain abuse. In such cases, check the `issues` field on the `Registration`. After the problem is resolved, the `renewal_method` is automatically updated to `preferred_renewal_method` in a few hours.", "enum": [ "RENEWAL_METHOD_UNSPECIFIED", "AUTOMATIC_RENEWAL", @@ -1447,13 +1447,13 @@ "enumDescriptions": [ "The renewal method is undefined.", "The domain is automatically renewed each year.", - "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) This option was never used. Use RENEWAL_DISABLED instead.", + "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). This option was never used. Use `RENEWAL_DISABLED` instead.", "The domain won't be renewed and will expire at its expiration time." ], "type": "string" }, "renewalMethod": { - "description": "Output only. The actual renewal method for this `Registration`. When `preferred_renewal_method` is set to `AUTOMATIC_RENEWAL` the actual `renewal_method` can be equal to `RENEWAL_DISABLED` in case of e.g. problems with the Billing Account or reported domain abuse. In such cases check the `issues` field on the `Registration`. After the problem is resolved the `renewal_method` will be automatically updated to `preferred_renewal_method` in a few hours.", + "description": "Output only. The actual renewal method for this `Registration`. When `preferred_renewal_method` is set to `AUTOMATIC_RENEWAL`, the actual `renewal_method` can be equal to `RENEWAL_DISABLED`—for example, when there are problems with the billing account or reported domain abuse. In such cases, check the `issues` field on the `Registration`. After the problem is resolved, the `renewal_method` is automatically updated to `preferred_renewal_method` in a few hours.", "enum": [ "RENEWAL_METHOD_UNSPECIFIED", "AUTOMATIC_RENEWAL", @@ -1469,7 +1469,7 @@ "enumDescriptions": [ "The renewal method is undefined.", "The domain is automatically renewed each year.", - "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) This option was never used. Use RENEWAL_DISABLED instead.", + "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). This option was never used. Use `RENEWAL_DISABLED` instead.", "The domain won't be renewed and will expire at its expiration time." ], "readOnly": true, @@ -1778,7 +1778,7 @@ "enumDescriptions": [ "The contact privacy settings are undefined.", "All the data from `ContactSettings` is publicly available. When setting this option, you must also provide a `PUBLIC_CONTACT_DATA_ACKNOWLEDGEMENT` in the `contact_notices` field of the request.", - "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) None of the data from `ContactSettings` is publicly available. Instead, proxy contact data is published for your domain. Email sent to the proxy email address is forwarded to the registrant's email address. Cloud Domains provides this privacy proxy service at no additional cost.", + "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). None of the data from `ContactSettings` is publicly available. Instead, proxy contact data is published for your domain. Email sent to the proxy email address is forwarded to the registrant's email address. Cloud Domains provides this privacy proxy service at no additional cost.", "The organization name (if provided) and limited non-identifying data from `ContactSettings` is available to the public (e.g. country and state). The remaining data is marked as `REDACTED FOR PRIVACY` in the WHOIS database. The actual information redacted depends on the domain. For details, see [the registration privacy article](https://support.google.com/domains/answer/3251242)." ], "type": "string" @@ -1833,7 +1833,7 @@ "The issue is undefined.", "Contact the Cloud Support team to resolve a problem with this domain.", "[ICANN](https://icann.org/) requires verification of the email address in the `Registration`'s `contact_settings.registrant_contact` field. To verify the email address, follow the instructions in the email the `registrant_contact` receives following registration. If you do not complete email verification within 15 days of registration, the domain is suspended. To resend the verification email, call ConfigureContactSettings and provide the current `registrant_contact.email`.", - "Billing account is not in good standing. The domain will not automatically renew at its expiration time unless you resolve problems with your billing account." + "The billing account is not in good standing. The domain is not automatically renewed at its expiration time unless you resolve problems with your billing account." ], "type": "string" }, @@ -1911,7 +1911,7 @@ "The domain is being transferred from another registrar to Cloud Domains.", "The attempt to transfer the domain from another registrar to Cloud Domains failed. You can delete resources in this state and retry the transfer.", "The domain is being imported from Google Domains to Cloud Domains.", - "The domain is registered and operational. The domain renews automatically as long as it remains in this state and the RenewalMethod is set to AUTOMATIC_RENEWAL.", + "The domain is registered and operational. The domain renews automatically as long as it remains in this state and the `RenewalMethod` is set to `AUTOMATIC_RENEWAL`.", "The domain is suspended and inoperative. For more details, see the `issues` field.", "The domain is no longer managed with Cloud Domains. It may have been transferred to another registrar or exported for management in [Google Domains](https://domains.google/). You can no longer update it with this API, and information shown about it may be stale. Domains in this state are not automatically renewed by Cloud Domains.", "The domain is expired." @@ -1937,7 +1937,7 @@ "enumDescriptions": [ "The contact privacy settings are undefined.", "All the data from `ContactSettings` is publicly available. When setting this option, you must also provide a `PUBLIC_CONTACT_DATA_ACKNOWLEDGEMENT` in the `contact_notices` field of the request.", - "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) None of the data from `ContactSettings` is publicly available. Instead, proxy contact data is published for your domain. Email sent to the proxy email address is forwarded to the registrant's email address. Cloud Domains provides this privacy proxy service at no additional cost.", + "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). None of the data from `ContactSettings` is publicly available. Instead, proxy contact data is published for your domain. Email sent to the proxy email address is forwarded to the registrant's email address. Cloud Domains provides this privacy proxy service at no additional cost.", "The organization name (if provided) and limited non-identifying data from `ContactSettings` is available to the public (e.g. country and state). The remaining data is marked as `REDACTED FOR PRIVACY` in the WHOIS database. The actual information redacted depends on the domain. For details, see [the registration privacy article](https://support.google.com/domains/answer/3251242)." ], "type": "string" @@ -1947,7 +1947,7 @@ }, "transferFailureReason": { "deprecated": true, - "description": "Output only. Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) The reason the domain transfer failed. Only set for domains in TRANSFER_FAILED state.", + "description": "Output only. Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). The reason the domain transfer failed. Only set for domains in TRANSFER_FAILED state.", "enum": [ "TRANSFER_FAILURE_REASON_UNSPECIFIED", "TRANSFER_FAILURE_REASON_UNKNOWN", @@ -1988,7 +1988,7 @@ }, "RetrieveImportableDomainsResponse": { "deprecated": true, - "description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Response for the `RetrieveImportableDomains` method.", + "description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). Response for the `RetrieveImportableDomains` method.", "id": "RetrieveImportableDomainsResponse", "properties": { "domains": { @@ -2018,7 +2018,7 @@ }, "RetrieveTransferParametersResponse": { "deprecated": true, - "description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Response for the `RetrieveTransferParameters` method.", + "description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). Response for the `RetrieveTransferParameters` method.", "id": "RetrieveTransferParametersResponse", "properties": { "transferParameters": { @@ -2115,7 +2115,7 @@ }, "TransferDomainRequest": { "deprecated": true, - "description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Request for the `TransferDomain` method.", + "description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). Request for the `TransferDomain` method.", "id": "TransferDomainRequest", "properties": { "authorizationCode": { @@ -2154,7 +2154,7 @@ }, "TransferParameters": { "deprecated": true, - "description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) Parameters required to transfer a domain from another registrar.", + "description": "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). Parameters required to transfer a domain from another registrar.", "id": "TransferParameters", "properties": { "currentRegistrar": { @@ -2194,7 +2194,7 @@ "enumDescriptions": [ "The contact privacy settings are undefined.", "All the data from `ContactSettings` is publicly available. When setting this option, you must also provide a `PUBLIC_CONTACT_DATA_ACKNOWLEDGEMENT` in the `contact_notices` field of the request.", - "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) None of the data from `ContactSettings` is publicly available. Instead, proxy contact data is published for your domain. Email sent to the proxy email address is forwarded to the registrant's email address. Cloud Domains provides this privacy proxy service at no additional cost.", + "Deprecated: For more information, see [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). None of the data from `ContactSettings` is publicly available. Instead, proxy contact data is published for your domain. Email sent to the proxy email address is forwarded to the registrant's email address. Cloud Domains provides this privacy proxy service at no additional cost.", "The organization name (if provided) and limited non-identifying data from `ContactSettings` is available to the public (e.g. country and state). The remaining data is marked as `REDACTED FOR PRIVACY` in the WHOIS database. The actual information redacted depends on the domain. For details, see [the registration privacy article](https://support.google.com/domains/answer/3251242)." ], "type": "string" diff --git a/discovery/googleapis/domainsrdap__v1.json b/discovery/googleapis/domainsrdap__v1.json index f5760a3ca..f28bda78d 100644 --- a/discovery/googleapis/domainsrdap__v1.json +++ b/discovery/googleapis/domainsrdap__v1.json @@ -16,7 +16,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231128", + "revision": "20240227", "rootUrl": "https://domainsrdap.googleapis.com/", "servicePath": "", "title": "Domains RDAP API", diff --git a/discovery/googleapis/doubleclickbidmanager__v2.json b/discovery/googleapis/doubleclickbidmanager__v2.json index 62ecfd7f4..069cd3e3a 100644 --- a/discovery/googleapis/doubleclickbidmanager__v2.json +++ b/discovery/googleapis/doubleclickbidmanager__v2.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231031", + "revision": "20240221", "rootUrl": "https://doubleclickbidmanager.googleapis.com/", "servicePath": "v2/", "title": "DoubleClick Bid Manager API", diff --git a/discovery/googleapis/doubleclicksearch__v2.json b/discovery/googleapis/doubleclicksearch__v2.json index 65d0fca4b..17af82175 100644 --- a/discovery/googleapis/doubleclicksearch__v2.json +++ b/discovery/googleapis/doubleclicksearch__v2.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231107", + "revision": "20240220", "rootUrl": "https://doubleclicksearch.googleapis.com/", "servicePath": "", "title": "Search Ads 360 API", @@ -622,7 +622,7 @@ "type": "string" }, "adUserDataConsent": { - "description": "Ad user data consent for this conversion.", + "description": "Represents consent for core platform services (CPS) preferences in settings. No default value. Acceptable values are: GRANTED: The desired consent status is to grant. Read the CPS preferences from GTE settings. DENIED: The desired consent status is to deny; CPS list is empty.", "enum": [ "UNKNOWN", "GRANTED", diff --git a/discovery/googleapis/drive__v2.json b/discovery/googleapis/drive__v2.json index 916d885f1..1f4a2670f 100644 --- a/discovery/googleapis/drive__v2.json +++ b/discovery/googleapis/drive__v2.json @@ -48,7 +48,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231107", + "revision": "20240220", "rootUrl": "https://www.googleapis.com/", "servicePath": "drive/v2/", "title": "Google Drive API", @@ -4441,7 +4441,7 @@ "type": "string" }, "type": { - "description": "The type of delivery mechanism used for this channel.", + "description": "The type of delivery mechanism used for this channel. Valid values are \"web_hook\" or \"webhook\".", "type": "string" } }, @@ -4740,6 +4740,10 @@ "format": "date-time", "type": "string" }, + "systemRestricted": { + "description": "Output only. Whether the content restriction was applied by the system, for example due to an esignature. Users cannot modify or remove system restricted content restrictions.", + "type": "boolean" + }, "type": { "description": "Output only. The type of the content restriction. Currently the only possible value is `globalContentRestriction`.", "type": "string" diff --git a/discovery/googleapis/drive__v3.json b/discovery/googleapis/drive__v3.json index 39da53bbe..bdcc10f2b 100644 --- a/discovery/googleapis/drive__v3.json +++ b/discovery/googleapis/drive__v3.json @@ -8,6 +8,9 @@ "https://www.googleapis.com/auth/drive.appdata": { "description": "See, create, and delete its own configuration data in your Google Drive" }, + "https://www.googleapis.com/auth/drive.apps.readonly": { + "description": "View your Google Drive apps" + }, "https://www.googleapis.com/auth/drive.file": { "description": "See, edit, create, and delete only the specific Google Drive files you use with this app" }, @@ -45,7 +48,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231107", + "revision": "20240220", "rootUrl": "https://www.googleapis.com/", "servicePath": "drive/v3/", "title": "Google Drive API", @@ -153,6 +156,73 @@ } } }, + "apps": { + "methods": { + "get": { + "description": "Gets a specific app.", + "flatPath": "apps/{appId}", + "httpMethod": "GET", + "id": "drive.apps.get", + "parameterOrder": [ + "appId" + ], + "parameters": { + "appId": { + "description": "The ID of the app.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "apps/{appId}", + "response": { + "$ref": "App" + }, + "scopes": [ + "https://www.googleapis.com/auth/drive", + "https://www.googleapis.com/auth/drive.appdata", + "https://www.googleapis.com/auth/drive.apps.readonly", + "https://www.googleapis.com/auth/drive.file", + "https://www.googleapis.com/auth/drive.metadata", + "https://www.googleapis.com/auth/drive.metadata.readonly", + "https://www.googleapis.com/auth/drive.readonly" + ] + }, + "list": { + "description": "Lists a user's installed apps.", + "flatPath": "apps", + "httpMethod": "GET", + "id": "drive.apps.list", + "parameterOrder": [], + "parameters": { + "appFilterExtensions": { + "default": "", + "description": "A comma-separated list of file extensions to limit returned results. All results within the given app query scope which can open any of the given file extensions are included in the response. If `appFilterMimeTypes` are provided as well, the result is a union of the two resulting app lists.", + "location": "query", + "type": "string" + }, + "appFilterMimeTypes": { + "default": "", + "description": "A comma-separated list of file extensions to limit returned results. All results within the given app query scope which can open any of the given MIME types will be included in the response. If `appFilterExtensions` are provided as well, the result is a union of the two resulting app lists.", + "location": "query", + "type": "string" + }, + "languageCode": { + "description": "A language or locale code, as defined by BCP 47, with some extensions from Unicode's LDML format (http://www.unicode.org/reports/tr35/).", + "location": "query", + "type": "string" + } + }, + "path": "apps", + "response": { + "$ref": "AppList" + }, + "scopes": [ + "https://www.googleapis.com/auth/drive.apps.readonly" + ] + } + } + }, "changes": { "methods": { "getStartPageToken": { @@ -2579,6 +2649,174 @@ }, "type": "object" }, + "App": { + "description": "The `apps` resource provides a list of apps that a user has installed, with information about each app's supported MIME types, file extensions, and other details. Some resource methods (such as `apps.get`) require an `appId`. Use the `apps.list` method to retrieve the ID for an installed application.", + "id": "App", + "properties": { + "authorized": { + "description": "Whether the app is authorized to access data on the user's Drive.", + "type": "boolean" + }, + "createInFolderTemplate": { + "description": "The template URL to create a file with this app in a given folder. The template contains the {folderId} to be replaced by the folder ID house the new file.", + "type": "string" + }, + "createUrl": { + "description": "The URL to create a file with this app.", + "type": "string" + }, + "hasDriveWideScope": { + "description": "Whether the app has Drive-wide scope. An app with Drive-wide scope can access all files in the user's Drive.", + "type": "boolean" + }, + "icons": { + "description": "The various icons for the app.", + "items": { + "$ref": "AppIcons" + }, + "type": "array" + }, + "id": { + "description": "The ID of the app.", + "type": "string" + }, + "installed": { + "description": "Whether the app is installed.", + "type": "boolean" + }, + "kind": { + "default": "drive#app", + "description": "Output only. Identifies what kind of resource this is. Value: the fixed string \"drive#app\".", + "type": "string" + }, + "longDescription": { + "description": "A long description of the app.", + "type": "string" + }, + "name": { + "description": "The name of the app.", + "type": "string" + }, + "objectType": { + "description": "The type of object this app creates such as a Chart. If empty, the app name should be used instead.", + "type": "string" + }, + "openUrlTemplate": { + "description": "The template URL for opening files with this app. The template contains {ids} or {exportIds} to be replaced by the actual file IDs. For more information, see Open Files for the full documentation.", + "type": "string" + }, + "primaryFileExtensions": { + "description": "The list of primary file extensions.", + "items": { + "type": "string" + }, + "type": "array" + }, + "primaryMimeTypes": { + "description": "The list of primary MIME types.", + "items": { + "type": "string" + }, + "type": "array" + }, + "productId": { + "description": "The ID of the product listing for this app.", + "type": "string" + }, + "productUrl": { + "description": "A link to the product listing for this app.", + "type": "string" + }, + "secondaryFileExtensions": { + "description": "The list of secondary file extensions.", + "items": { + "type": "string" + }, + "type": "array" + }, + "secondaryMimeTypes": { + "description": "The list of secondary MIME types.", + "items": { + "type": "string" + }, + "type": "array" + }, + "shortDescription": { + "description": "A short description of the app.", + "type": "string" + }, + "supportsCreate": { + "description": "Whether this app supports creating objects.", + "type": "boolean" + }, + "supportsImport": { + "description": "Whether this app supports importing from Google Docs.", + "type": "boolean" + }, + "supportsMultiOpen": { + "description": "Whether this app supports opening more than one file.", + "type": "boolean" + }, + "supportsOfflineCreate": { + "description": "Whether this app supports creating files when offline.", + "type": "boolean" + }, + "useByDefault": { + "description": "Whether the app is selected as the default handler for the types it supports.", + "type": "boolean" + } + }, + "type": "object" + }, + "AppIcons": { + "id": "AppIcons", + "properties": { + "category": { + "description": "Category of the icon. Allowed values are: * `application` - The icon for the application. * `document` - The icon for a file associated with the app. * `documentShared` - The icon for a shared file associated with the app.", + "type": "string" + }, + "iconUrl": { + "description": "URL for the icon.", + "type": "string" + }, + "size": { + "description": "Size of the icon. Represented as the maximum of the width and height.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "AppList": { + "description": "A list of third-party applications which the user has installed or given access to Google Drive.", + "id": "AppList", + "properties": { + "defaultAppIds": { + "description": "The list of app IDs that the user has specified to use by default. The list is in reverse-priority order (lowest to highest).", + "items": { + "type": "string" + }, + "type": "array" + }, + "items": { + "description": "The list of apps.", + "items": { + "$ref": "App" + }, + "type": "array" + }, + "kind": { + "default": "drive#appList", + "description": "Output only. Identifies what kind of resource this is. Value: the fixed string \"drive#appList\".", + "type": "string" + }, + "selfLink": { + "description": "A link back to this list.", + "type": "string" + } + }, + "type": "object" + }, "Change": { "description": "A change to a file or shared drive.", "id": "Change", @@ -2708,7 +2946,7 @@ "type": "string" }, "type": { - "description": "The type of delivery mechanism used for this channel.", + "description": "The type of delivery mechanism used for this channel. Valid values are \"web_hook\" or \"webhook\".", "type": "string" } }, @@ -2839,6 +3077,10 @@ "format": "date-time", "type": "string" }, + "systemRestricted": { + "description": "Output only. Whether the content restriction was applied by the system, for example due to an esignature. Users cannot modify or remove system restricted content restrictions.", + "type": "boolean" + }, "type": { "description": "Output only. The type of the content restriction. Currently the only possible value is `globalContentRestriction`.", "type": "string" @@ -2996,7 +3238,7 @@ "type": "string" }, "restrictions": { - "description": "A set of restrictions that apply to this shared drive or items inside this shared drive.", + "description": "A set of restrictions that apply to this shared drive or items inside this shared drive. Note that restrictions can't be set when creating a shared drive. To add a restriction, first create a shared drive and then use `drives.update` to add restrictions.", "properties": { "adminManagedRestrictions": { "description": "Whether administrative privileges on this shared drive are required to modify restrictions.", diff --git a/discovery/googleapis/driveactivity__v2.json b/discovery/googleapis/driveactivity__v2.json index 0fca0bd3c..20d6b2c7c 100644 --- a/discovery/googleapis/driveactivity__v2.json +++ b/discovery/googleapis/driveactivity__v2.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231122", + "revision": "20240225", "rootUrl": "https://driveactivity.googleapis.com/", "servicePath": "", "title": "Drive Activity API", diff --git a/discovery/googleapis/drivelabels__v2.json b/discovery/googleapis/drivelabels__v2.json index 7bb9dfb31..4cd33a436 100644 --- a/discovery/googleapis/drivelabels__v2.json +++ b/discovery/googleapis/drivelabels__v2.json @@ -34,7 +34,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231120", + "revision": "20240220", "rootUrl": "https://drivelabels.googleapis.com/", "servicePath": "", "title": "Drive Labels API", @@ -1406,10 +1406,6 @@ "$ref": "GoogleAppsDriveLabelsV2FieldIntegerOptions", "description": "Update field to Integer." }, - "longTextOptions": { - "$ref": "GoogleAppsDriveLabelsV2FieldLongTextOptions", - "description": "Update field to Long Text." - }, "selectionOptions": { "$ref": "GoogleAppsDriveLabelsV2FieldSelectionOptions", "description": "Update field to Selection." @@ -1952,25 +1948,6 @@ }, "type": "object" }, - "GoogleAppsDriveLabelsV2FieldLongTextOptions": { - "description": "Options the Long Text field type.", - "id": "GoogleAppsDriveLabelsV2FieldLongTextOptions", - "properties": { - "maxLength": { - "description": "Output only. The maximum valid length of values for the text field.", - "format": "int32", - "readOnly": true, - "type": "integer" - }, - "minLength": { - "description": "Output only. The minimum valid length of values for the text field.", - "format": "int32", - "readOnly": true, - "type": "integer" - } - }, - "type": "object" - }, "GoogleAppsDriveLabelsV2FieldProperties": { "description": "The basic properties of the field.", "id": "GoogleAppsDriveLabelsV2FieldProperties", diff --git a/discovery/googleapis/essentialcontacts__v1.json b/discovery/googleapis/essentialcontacts__v1.json index 32d6b959d..0ee4adf35 100644 --- a/discovery/googleapis/essentialcontacts__v1.json +++ b/discovery/googleapis/essentialcontacts__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240223", "rootUrl": "https://essentialcontacts.googleapis.com/", "servicePath": "", "title": "Essential Contacts API", diff --git a/discovery/googleapis/eventarc__v1.json b/discovery/googleapis/eventarc__v1.json index d40f619a1..f00f8d91f 100644 --- a/discovery/googleapis/eventarc__v1.json +++ b/discovery/googleapis/eventarc__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231103", + "revision": "20240209", "rootUrl": "https://eventarc.googleapis.com/", "servicePath": "", "title": "Eventarc API", @@ -1259,14 +1259,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, diff --git a/discovery/googleapis/fcm__v1.json b/discovery/googleapis/fcm__v1.json index 471e094dd..118d2e925 100644 --- a/discovery/googleapis/fcm__v1.json +++ b/discovery/googleapis/fcm__v1.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231121", + "revision": "20240223", "rootUrl": "https://fcm.googleapis.com/", "servicePath": "", "title": "Firebase Cloud Messaging API", diff --git a/discovery/googleapis/file__v1.json b/discovery/googleapis/file__v1.json index bfabbf892..2974e9736 100644 --- a/discovery/googleapis/file__v1.json +++ b/discovery/googleapis/file__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231019", + "revision": "20240126", "rootUrl": "https://file.googleapis.com/", "servicePath": "", "title": "Cloud Filestore API", @@ -561,7 +561,7 @@ ], "parameters": { "name": { - "description": "Required. projects/{project_id}/locations/{location_id}/instances/{instance_id}. The resource name of the instance, in the format", + "description": "Required. `projects/{project_id}/locations/{location_id}/instances/{instance_id}`. The resource name of the instance, in the format", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", "required": true, @@ -921,6 +921,11 @@ "readOnly": true, "type": "string" }, + "satisfiesPzi": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, "satisfiesPzs": { "description": "Output only. Reserved for future use.", "readOnly": true, @@ -1070,7 +1075,7 @@ "type": "string" }, "name": { - "description": "The name of the file share (must be 16 characters or less).", + "description": "Required. The name of the file share. Must use 1-16 characters for the basic service tier and 1-63 characters for all other service tiers. Must use lowercase letters, numbers, or underscores `[a-z0-9_]`. Must start with a letter. Immutable.", "type": "string" }, "nfsExportOptions": { @@ -1116,7 +1121,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. The MaintenancePolicies that have been attached to the instance. The key must be of the type name of the oneof policy name defined in MaintenancePolicy, and the referenced policy must define the same policy type. For details, please refer to go/cloud-saas-mw-ug. Should not be set if maintenance_settings.maintenance_policies is set.", + "description": "Optional. The MaintenancePolicies that have been attached to the instance. The key must be of the type name of the oneof policy name defined in MaintenancePolicy, and the referenced policy must define the same policy type. For details, please refer to go/mr-user-guide. Should not be set if maintenance_settings.maintenance_policies is set.", "type": "object" }, "maintenanceSchedules": { @@ -1257,7 +1262,7 @@ "additionalProperties": { "$ref": "MaintenancePolicy" }, - "description": "Optional. The MaintenancePolicies that have been attached to the instance. The key must be of the type name of the oneof policy name defined in MaintenancePolicy, and the embedded policy must define the same policy type. For details, please refer to go/cloud-saas-mw-ug. Should not be set if maintenance_policy_names is set. If only the name is needed, then only populate MaintenancePolicy.name.", + "description": "Optional. The MaintenancePolicies that have been attached to the instance. The key must be of the type name of the oneof policy name defined in MaintenancePolicy, and the embedded policy must define the same policy type. For details, please refer to go/mr-user-guide. Should not be set if maintenance_policy_names is set. If only the name is needed, then only populate MaintenancePolicy.name.", "type": "object" } }, @@ -1410,6 +1415,11 @@ }, "type": "array" }, + "satisfiesPzi": { + "description": "Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, "satisfiesPzs": { "description": "Output only. Reserved for future use.", "readOnly": true, @@ -1902,7 +1912,7 @@ "id": "RevertInstanceRequest", "properties": { "targetSnapshotId": { - "description": "Required. The snapshot resource ID, in the format 'my-snapshot', where the specified ID is the {snapshot_id} of the fully qualified name like projects/{project_id}/locations/{location_id}/instances/{instance_id}/snapshots/{snapshot_id}", + "description": "Required. The snapshot resource ID, in the format 'my-snapshot', where the specified ID is the {snapshot_id} of the fully qualified name like `projects/{project_id}/locations/{location_id}/instances/{instance_id}/snapshots/{snapshot_id}`", "type": "string" } }, diff --git a/discovery/googleapis/firebaseappcheck__v1.json b/discovery/googleapis/firebaseappcheck__v1.json index 0e59f7821..45f8d5e91 100644 --- a/discovery/googleapis/firebaseappcheck__v1.json +++ b/discovery/googleapis/firebaseappcheck__v1.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231113", + "revision": "20240226", "rootUrl": "https://firebaseappcheck.googleapis.com/", "servicePath": "", "title": "Firebase App Check API", diff --git a/discovery/googleapis/firebaseappdistribution__v1.json b/discovery/googleapis/firebaseappdistribution__v1.json index 806a71d6f..a5157bdb6 100644 --- a/discovery/googleapis/firebaseappdistribution__v1.json +++ b/discovery/googleapis/firebaseappdistribution__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231128", + "revision": "20240227", "rootUrl": "https://firebaseappdistribution.googleapis.com/", "servicePath": "", "title": "Firebase App Distribution API", diff --git a/discovery/googleapis/firebasedynamiclinks__v1.json b/discovery/googleapis/firebasedynamiclinks__v1.json index 6084ad7a7..506eec125 100644 --- a/discovery/googleapis/firebasedynamiclinks__v1.json +++ b/discovery/googleapis/firebasedynamiclinks__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231128", + "revision": "20240226", "rootUrl": "https://firebasedynamiclinks.googleapis.com/", "servicePath": "", "title": "Firebase Dynamic Links API", diff --git a/discovery/googleapis/firebasehosting__v1.json b/discovery/googleapis/firebasehosting__v1.json index 35d8fda86..777dc18d4 100644 --- a/discovery/googleapis/firebasehosting__v1.json +++ b/discovery/googleapis/firebasehosting__v1.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240226", "rootUrl": "https://firebasehosting.googleapis.com/", "servicePath": "", "title": "Firebase Hosting API", diff --git a/discovery/googleapis/firebaseml__v1.json b/discovery/googleapis/firebaseml__v1.json index a35f34edf..835c7abff 100644 --- a/discovery/googleapis/firebaseml__v1.json +++ b/discovery/googleapis/firebaseml__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240221", "rootUrl": "https://firebaseml.googleapis.com/", "servicePath": "", "title": "Firebase ML API", diff --git a/discovery/googleapis/firebaseremoteconfig__v1.json b/discovery/googleapis/firebaseremoteconfig__v1.json index 02f108cf5..619f80b22 100644 --- a/discovery/googleapis/firebaseremoteconfig__v1.json +++ b/discovery/googleapis/firebaseremoteconfig__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240226", "rootUrl": "https://firebaseremoteconfig.googleapis.com/", "servicePath": "", "title": "Firebase Remote Config API", @@ -209,6 +209,28 @@ "response": { "$ref": "FetchRemoteConfigResponse" } + }, + "getServerRemoteConfig": { + "description": "Get a project's server-side Remote Config template. Note that this request proto is structured differently from other request messages in this proto, however this is consistent and compliant with the new API guidance (https://google.aip.dev/122#fields-representing-resource-names) and the standard going forward.", + "flatPath": "v1/projects/{projectsId}/namespaces/{namespacesId}/serverRemoteConfig", + "httpMethod": "GET", + "id": "firebaseremoteconfig.projects.namespaces.getServerRemoteConfig", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the template to get. Format: projects/{project}/namespaces/{namespace}/serverRemoteConfig Project is a Firebase project ID or project number. Namespace is the namespace ID (e.g.: firebase-server)", + "location": "path", + "pattern": "^projects/[^/]+/namespaces/[^/]+/serverRemoteConfig$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "ServerRemoteConfig" + } } } }, @@ -755,6 +777,101 @@ }, "type": "object" }, + "ServerRemoteConfig": { + "description": "A ServerRemoteConfig represents the raw data-plane version of a control plane Remote Config template. This raw template will be evaluated by the Admin SDK (RC Server SDK) to form the config.", + "id": "ServerRemoteConfig", + "properties": { + "conditions": { + "description": "A list of conditions in descending order by priority.", + "items": { + "$ref": "ServerRemoteConfigCondition" + }, + "type": "array" + }, + "parameters": { + "additionalProperties": { + "$ref": "ServerRemoteConfigParameter" + }, + "description": "Map of parameter keys to their optional default values and optional conditional values.", + "type": "object" + }, + "version": { + "$ref": "Version", + "description": "Contains all metadata about a particular version of the server Remote Config template. Note that we are reusing the control plane version proto here." + } + }, + "type": "object" + }, + "ServerRemoteConfigCondition": { + "description": "A condition targeting a specific group of users and servers. Same as the condition in the control plane.", + "id": "ServerRemoteConfigCondition", + "properties": { + "expression": { + "description": "Required. The logic of this condition. See the documentation regarding [Condition Expressions](/docs/remote-config/condition-reference) for the expected syntax of this field.", + "type": "string" + }, + "name": { + "description": "Required. A non-empty and unique name of this condition.", + "type": "string" + } + }, + "type": "object" + }, + "ServerRemoteConfigParameter": { + "description": "A parameter value associated with a parameter key in [google.firebase.remoteconfig.v1.ServerRemoteConfig.parameters]. At minimum, a `default_value` or a `conditional_values` entry should be present for the parameter to have any effect.", + "id": "ServerRemoteConfigParameter", + "properties": { + "conditionalValues": { + "additionalProperties": { + "$ref": "ServerRemoteConfigParameterValue" + }, + "description": "Optional - a (condition name, value) map. The condition_name of the highest priority (the one listed first in the RemoteConfig's conditions list) determines the value of this parameter.", + "type": "object" + }, + "defaultValue": { + "$ref": "ServerRemoteConfigParameterValue", + "description": "Optional - value to set the parameter to, when none of the named conditions evaluate to true." + }, + "description": { + "description": "Optional. A description for this Parameter. Its length must be less than or equal to 256 characters. A description may contain any Unicode characters.", + "type": "string" + }, + "valueType": { + "description": "The data type for all values of this parameter in the current version of the template. Defaults to `ParameterValueType.STRING` if unspecified.", + "enum": [ + "PARAMETER_VALUE_TYPE_UNSPECIFIED", + "STRING", + "BOOLEAN", + "NUMBER", + "JSON" + ], + "enumDescriptions": [ + "Catch-all for unrecognized enum values.", + "Represents String values.", + "Represents Boolean values (\"true\" or \"false\").", + "Represents both positive and negative integer and float values.", + "Represents JSON values." + ], + "type": "string" + } + }, + "type": "object" + }, + "ServerRemoteConfigParameterValue": { + "description": "A ServerRemoteConfigParameterValue resource contains the value that a parameter may have. Currently, there is no support for managed values like ABT or P13n.", + "id": "ServerRemoteConfigParameterValue", + "properties": { + "useInAppDefault": { + "description": "If true, the parameter is omitted from the parameter values returned to the server.", + "type": "boolean" + }, + "value": { + "description": "The string value that the parameter is set to.", + "type": "string" + } + }, + "type": "object" + }, "Version": { "description": "Contains all metadata about a particular version of the Remote Config template. All fields are set at the time the specified Remote Config template was written.", "id": "Version", diff --git a/discovery/googleapis/firebaserules__v1.json b/discovery/googleapis/firebaserules__v1.json index edd2bc3d6..dbf10c452 100644 --- a/discovery/googleapis/firebaserules__v1.json +++ b/discovery/googleapis/firebaserules__v1.json @@ -31,7 +31,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231023", + "revision": "20240214", "rootUrl": "https://firebaserules.googleapis.com/", "servicePath": "", "title": "Firebase Rules API", @@ -769,6 +769,10 @@ "description": "`Ruleset` is an immutable copy of `Source` with a globally unique identifier and a creation time.", "id": "Ruleset", "properties": { + "attachmentPoint": { + "description": "Immutable. Intended resource to which this Ruleset should be released. May be left blank to signify the resource associated with the default release. Expected format: firestore.googleapis.com/projects//databases/", + "type": "string" + }, "createTime": { "description": "Output only. Time the `Ruleset` was created.", "format": "google-datetime", diff --git a/discovery/googleapis/firestore__v1.json b/discovery/googleapis/firestore__v1.json index 2e2ba752b..f9ddd35dc 100644 --- a/discovery/googleapis/firestore__v1.json +++ b/discovery/googleapis/firestore__v1.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231103", + "revision": "20240215", "rootUrl": "https://firestore.googleapis.com/", "servicePath": "", "title": "Cloud Firestore API", @@ -534,7 +534,7 @@ ] }, "list": { - "description": "Lists the field configuration and metadata for this database. Currently, FirestoreAdmin.ListFields only supports listing fields that have been explicitly overridden. To issue this query, call FirestoreAdmin.ListFields with the filter set to `indexConfig.usesAncestorConfig:false or `ttlConfig:*`.", + "description": "Lists the field configuration and metadata for this database. Currently, FirestoreAdmin.ListFields only supports listing fields that have been explicitly overridden. To issue this query, call FirestoreAdmin.ListFields with the filter set to `indexConfig.usesAncestorConfig:false` or `ttlConfig:*`.", "flatPath": "v1/projects/{projectsId}/databases/{databasesId}/collectionGroups/{collectionGroupsId}/fields", "httpMethod": "GET", "id": "firestore.projects.databases.collectionGroups.fields.list", @@ -1992,6 +1992,7 @@ "additionalProperties": { "$ref": "Value" }, + "description": "The document's fields. The map keys represent field names. Field names matching the regular expression `__.*__` are reserved. Reserved field names are forbidden except in certain documented contexts. The field names, represented as UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be used in other contexts to refer to structured fields defined here. For `map_value`, the field path is represented by a dot-delimited (`.`) string of segments. Each segment is either a simple field name (defined below) or a quoted field name. For example, the structured field `\"foo\" : { map_value: { \"x&y\" : { string_value: \"hello\" }}}` would be represented by the field path `` foo.`x&y` ``. A simple field name contains only characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start with `0` to `9`. For example, `foo_bar_17`. A quoted field name starts and ends with `` ` `` and may contain any character. Some characters, including `` ` ``, must be escaped using a `\\`. For example, `` `x&y` `` represents `x&y` and `` `bak\\`tik` `` represents `` bak`tik ``.", "type": "object" }, "name": { @@ -2365,6 +2366,25 @@ }, "type": "object" }, + "GoogleFirestoreAdminV1CmekConfig": { + "description": "The CMEK (Customer Managed Encryption Key) configuration for a Firestore database. If not present, the database is secured by the default Google encryption key.", + "id": "GoogleFirestoreAdminV1CmekConfig", + "properties": { + "activeKeyVersion": { + "description": "Output only. Currently in-use [KMS key versions](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions). During [key rotation](https://cloud.google.com/kms/docs/key-rotation), there can be multiple in-use key versions. The expected format is `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{key_version}`.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "kmsKeyName": { + "description": "Required. Only keys in the same location as this database are allowed to be used for encryption. For Firestore's nam5 multi-region, this corresponds to Cloud KMS multi-region us. For Firestore's eur3 multi-region, this corresponds to Cloud KMS multi-region europe. See https://cloud.google.com/kms/docs/locations. The expected format is `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`.", + "type": "string" + } + }, + "type": "object" + }, "GoogleFirestoreAdminV1CreateDatabaseMetadata": { "description": "Metadata related to the create database operation.", "id": "GoogleFirestoreAdminV1CreateDatabaseMetadata", @@ -2395,6 +2415,10 @@ ], "type": "string" }, + "cmekConfig": { + "$ref": "GoogleFirestoreAdminV1CmekConfig", + "description": "Optional. Presence indicates CMEK is enabled for this database." + }, "concurrencyMode": { "description": "The concurrency control mode to use for this database.", "enum": [ @@ -2502,6 +2526,22 @@ }, "type": "object" }, + "GoogleFirestoreAdminV1DatabaseSnapshot": { + "description": "A consistent snapshot of a database at a specific point in time.", + "id": "GoogleFirestoreAdminV1DatabaseSnapshot", + "properties": { + "database": { + "description": "Required. A name of the form `projects/{project_id}/databases/{database_id}`", + "type": "string" + }, + "snapshotTime": { + "description": "Required. The timestamp at which the database snapshot is taken. The requested timestamp must be a whole minute within the PITR window.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "GoogleFirestoreAdminV1DeleteDatabaseMetadata": { "description": "Metadata related to the delete database operation.", "id": "GoogleFirestoreAdminV1DeleteDatabaseMetadata", @@ -3188,6 +3228,10 @@ "databaseId": { "description": "Required. The ID to use for the database, which will become the final component of the database's resource name. This database id must not be associated with an existing database. This value should be 4-63 characters. Valid characters are /a-z-/ with first character a letter and the last a letter or a number. Must not be UUID-like /[0-9a-f]{8}(-[0-9a-f]{4}){3}-[0-9a-f]{12}/. \"(default)\" database id is also valid.", "type": "string" + }, + "databaseSnapshot": { + "$ref": "GoogleFirestoreAdminV1DatabaseSnapshot", + "description": "Database snapshot to restore from. The source database must exist and have enabled PITR. The restored database will be created in the same location as the source database." } }, "type": "object" @@ -3871,7 +3915,7 @@ "type": "object" }, "StructuredQuery": { - "description": "A Firestore query.", + "description": "A Firestore query. The query stages are executed in the following order: 1. from 2. where 3. select 4. order_by + start_at + end_at 5. offset 6. limit", "id": "StructuredQuery", "properties": { "endAt": { diff --git a/discovery/googleapis/fitness__v1.json b/discovery/googleapis/fitness__v1.json index ccc40a949..4576f6429 100644 --- a/discovery/googleapis/fitness__v1.json +++ b/discovery/googleapis/fitness__v1.json @@ -87,7 +87,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231124", + "revision": "20240226", "rootUrl": "https://fitness.googleapis.com/", "servicePath": "fitness/v1/users/", "title": "Fitness API", diff --git a/discovery/googleapis/forms__v1.json b/discovery/googleapis/forms__v1.json index 2cc04b304..1ded76da3 100644 --- a/discovery/googleapis/forms__v1.json +++ b/discovery/googleapis/forms__v1.json @@ -40,7 +40,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231114", + "revision": "20240220", "rootUrl": "https://forms.googleapis.com/", "servicePath": "", "title": "Google Forms API", diff --git a/discovery/googleapis/gamesConfiguration__v1configuration.json b/discovery/googleapis/gamesConfiguration__v1configuration.json index 61f399654..3605b3dfd 100644 --- a/discovery/googleapis/gamesConfiguration__v1configuration.json +++ b/discovery/googleapis/gamesConfiguration__v1configuration.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240227", "rootUrl": "https://gamesconfiguration.googleapis.com/", "servicePath": "", "title": "Google Play Game Services Publishing API", diff --git a/discovery/googleapis/gamesManagement__v1management.json b/discovery/googleapis/gamesManagement__v1management.json index f20fa6ac0..53035be80 100644 --- a/discovery/googleapis/gamesManagement__v1management.json +++ b/discovery/googleapis/gamesManagement__v1management.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240227", "rootUrl": "https://gamesmanagement.googleapis.com/", "servicePath": "", "title": "Google Play Game Management", diff --git a/discovery/googleapis/games__v1.json b/discovery/googleapis/games__v1.json index f9cc33852..7921039a7 100644 --- a/discovery/googleapis/games__v1.json +++ b/discovery/googleapis/games__v1.json @@ -31,7 +31,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240227", "rootUrl": "https://games.googleapis.com/", "servicePath": "", "title": "Google Play Game Services", diff --git a/discovery/googleapis/gkebackup__v1.json b/discovery/googleapis/gkebackup__v1.json index b5e486662..bd695b470 100644 --- a/discovery/googleapis/gkebackup__v1.json +++ b/discovery/googleapis/gkebackup__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231101", + "revision": "20240219", "rootUrl": "https://gkebackup.googleapis.com/", "servicePath": "", "title": "Backup for GKE API", @@ -2049,14 +2049,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -2592,7 +2592,7 @@ "type": "object" }, "Restore": { - "description": "Represents both a request to Restore some portion of a Backup into a target GKE cluster and a record of the restore operation itself. Next id: 19", + "description": "Represents both a request to Restore some portion of a Backup into a target GKE cluster and a record of the restore operation itself. Next id: 20", "id": "Restore", "properties": { "backup": { @@ -2707,7 +2707,7 @@ "type": "object" }, "RestoreConfig": { - "description": "Configuration of a restore. Next id: 12", + "description": "Configuration of a restore. Next id: 14", "id": "RestoreConfig", "properties": { "allNamespaces": { diff --git a/discovery/googleapis/gkehub__v1.json b/discovery/googleapis/gkehub__v1.json index e5c5fd4dd..7a2881485 100644 --- a/discovery/googleapis/gkehub__v1.json +++ b/discovery/googleapis/gkehub__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231114", + "revision": "20240216", "rootUrl": "https://gkehub.googleapis.com/", "servicePath": "", "title": "GKE Hub API", @@ -1978,14 +1978,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -2180,21 +2180,10 @@ "description": "Per-membership state for this feature.", "id": "ClusterUpgradeMembershipState", "properties": { - "fleet": { - "description": "Project number or id of the fleet. It is set only for Memberships that are part of fleet-based Rollout Sequencing.", - "type": "string" - }, "ignored": { "$ref": "ClusterUpgradeIgnoredMembership", "description": "Whether this membership is ignored by the feature. For example, manually upgraded clusters can be ignored if they are newer than the default versions of its release channel." }, - "scopes": { - "description": "Fully qualified scope names that this clusters is bound to which also have rollout sequencing enabled.", - "items": { - "type": "string" - }, - "type": "array" - }, "upgrades": { "description": "Actual upgrade state against desired.", "items": { @@ -2267,6 +2256,10 @@ "$ref": "ClusterUpgradeFleetSpec", "description": "ClusterUpgrade (fleet-based) feature spec." }, + "dataplanev2": { + "$ref": "DataplaneV2FeatureSpec", + "description": "DataplaneV2 feature spec." + }, "fleetobservability": { "$ref": "FleetObservabilityFeatureSpec", "description": "FleetObservability feature spec." @@ -2343,7 +2336,7 @@ "description": "Git repo configuration for the cluster." }, "metricsGcpServiceAccountEmail": { - "description": "The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring and Cloud Monarch when Workload Identity is enabled. The GSA should have the Monitoring Metric Writer (roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount `default` in the namespace `config-management-monitoring` should be bound to the GSA. This field is required when automatic Feature management is enabled.", + "description": "The Email of the Google Cloud Service Account (GSA) used for exporting Config Sync metrics to Cloud Monitoring and Cloud Monarch when Workload Identity is enabled. The GSA should have the Monitoring Metric Writer (roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount `default` in the namespace `config-management-monitoring` should be bound to the GSA.", "type": "string" }, "oci": { @@ -2520,6 +2513,60 @@ }, "type": "array" }, + "reposyncCrd": { + "description": "The state of the Reposync CRD", + "enum": [ + "CRD_STATE_UNSPECIFIED", + "NOT_INSTALLED", + "INSTALLED", + "TERMINATING", + "INSTALLING" + ], + "enumDescriptions": [ + "CRD's state cannot be determined", + "CRD is not installed", + "CRD is installed", + "CRD is terminating (i.e., it has been deleted and is cleaning up)", + "CRD is installing" + ], + "type": "string" + }, + "rootsyncCrd": { + "description": "The state of the RootSync CRD", + "enum": [ + "CRD_STATE_UNSPECIFIED", + "NOT_INSTALLED", + "INSTALLED", + "TERMINATING", + "INSTALLING" + ], + "enumDescriptions": [ + "CRD's state cannot be determined", + "CRD is not installed", + "CRD is installed", + "CRD is terminating (i.e., it has been deleted and is cleaning up)", + "CRD is installing" + ], + "type": "string" + }, + "state": { + "description": "The state of CS This field summarizes the other fields in this message.", + "enum": [ + "STATE_UNSPECIFIED", + "CONFIG_SYNC_NOT_INSTALLED", + "CONFIG_SYNC_INSTALLED", + "CONFIG_SYNC_ERROR", + "CONFIG_SYNC_PENDING" + ], + "enumDescriptions": [ + "CS's state cannot be determined.", + "CS is not installed.", + "The expected CS version is installed successfully.", + "CS encounters errors.", + "CS is installing or terminating." + ], + "type": "string" + }, "syncState": { "$ref": "ConfigManagementSyncState", "description": "The state of ConfigSync's process to sync configs to a cluster" @@ -2828,6 +2875,20 @@ "$ref": "ConfigManagementHierarchyControllerConfig", "description": "Hierarchy Controller configuration for the cluster." }, + "management": { + "description": "Enables automatic Feature management.", + "enum": [ + "MANAGEMENT_UNSPECIFIED", + "MANAGEMENT_AUTOMATIC", + "MANAGEMENT_MANUAL" + ], + "enumDescriptions": [ + "Unspecified", + "Google will manage the Feature for the cluster.", + "User will manually manage the Feature for the cluster." + ], + "type": "string" + }, "policyController": { "$ref": "ConfigManagementPolicyController", "description": "Policy Controller configuration for the cluster." @@ -3160,6 +3221,17 @@ }, "type": "object" }, + "DataplaneV2FeatureSpec": { + "description": "**Dataplane V2**: Spec", + "id": "DataplaneV2FeatureSpec", + "properties": { + "enableEncryption": { + "description": "Enable dataplane-v2 based encryption for multiple clusters.", + "type": "boolean" + } + }, + "type": "object" + }, "DefaultClusterConfig": { "description": "DefaultClusterConfig describes the default cluster configurations to be applied to all clusters born-in-fleet.", "id": "DefaultClusterConfig", @@ -4972,7 +5044,8 @@ "type": "string" }, "podAntiAffinity": { - "description": "Pod anti-affinity enablement.", + "deprecated": true, + "description": "Pod anti-affinity enablement. Deprecated: use `pod_affinity` instead.", "type": "boolean" }, "podTolerations": { diff --git a/discovery/googleapis/gkeonprem__v1.json b/discovery/googleapis/gkeonprem__v1.json index b13032edc..3aa13782e 100644 --- a/discovery/googleapis/gkeonprem__v1.json +++ b/discovery/googleapis/gkeonprem__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231101", + "revision": "20240124", "rootUrl": "https://gkeonprem.googleapis.com/", "servicePath": "", "title": "Anthos On-Prem API", @@ -3031,7 +3031,7 @@ "type": "object" }, "BareMetalAdminCluster": { - "description": "Resource that represents a bare metal admin cluster. LINT.IfChange", + "description": "Resource that represents a bare metal admin cluster.", "id": "BareMetalAdminCluster", "properties": { "annotations": { @@ -3534,7 +3534,7 @@ "type": "object" }, "BareMetalCluster": { - "description": "Resource that represents a bare metal user cluster. LINT.IfChange", + "description": "Resource that represents a bare metal user cluster.", "id": "BareMetalCluster", "properties": { "adminClusterMembership": { @@ -4400,14 +4400,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -4988,7 +4988,7 @@ "type": "object" }, "OperationProgress": { - "description": "Information about operation progress. LINT.IfChange", + "description": "Information about operation progress.", "id": "OperationProgress", "properties": { "stages": { @@ -5820,6 +5820,10 @@ "resourcePool": { "description": "The name of the vCenter resource pool for the admin cluster.", "type": "string" + }, + "storagePolicyName": { + "description": "The name of the vCenter storage policy for the user cluster.", + "type": "string" } }, "type": "object" @@ -5909,6 +5913,10 @@ "$ref": "VmwareAutoRepairConfig", "description": "Configuration for auto repairing." }, + "binaryAuthorization": { + "$ref": "BinaryAuthorization", + "description": "Binary Authorization related configurations." + }, "controlPlaneNode": { "$ref": "VmwareControlPlaneNodeConfig", "description": "VMware user cluster control plane nodes must have either 1 or 3 replicas." @@ -6123,6 +6131,10 @@ "description": "Enables Dataplane V2.", "type": "boolean" }, + "forwardMode": { + "description": "Configure ForwardMode for Dataplane v2.", + "type": "string" + }, "windowsDataplaneV2Enabled": { "description": "Enable Dataplane V2 for clusters with Windows nodes.", "type": "boolean" @@ -6329,8 +6341,7 @@ "description": "Configuration settings for a static IP configuration." }, "vcenterNetwork": { - "description": "Output only. vcenter_network specifies vCenter network name. Inherited from the admin cluster.", - "readOnly": true, + "description": "vcenter_network specifies vCenter network name. Inherited from the admin cluster.", "type": "string" } }, diff --git a/discovery/googleapis/gmail__v1.json b/discovery/googleapis/gmail__v1.json index daca8aced..6970bde21 100644 --- a/discovery/googleapis/gmail__v1.json +++ b/discovery/googleapis/gmail__v1.json @@ -64,7 +64,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231120", + "revision": "20240226", "rootUrl": "https://gmail.googleapis.com/", "servicePath": "", "title": "Gmail API", @@ -3848,10 +3848,6 @@ "$ref": "Label" }, "type": "array" - }, - "productId": { - "format": "int32", - "type": "integer" } }, "type": "object" diff --git a/discovery/googleapis/gmailpostmastertools__v1.json b/discovery/googleapis/gmailpostmastertools__v1.json index f4f17ca19..3c1e47201 100644 --- a/discovery/googleapis/gmailpostmastertools__v1.json +++ b/discovery/googleapis/gmailpostmastertools__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240226", "rootUrl": "https://gmailpostmastertools.googleapis.com/", "servicePath": "", "title": "Gmail Postmaster Tools API", diff --git a/discovery/googleapis/groupsmigration__v1.json b/discovery/googleapis/groupsmigration__v1.json index 04960b1a8..d7ebb4829 100644 --- a/discovery/googleapis/groupsmigration__v1.json +++ b/discovery/googleapis/groupsmigration__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231106", + "revision": "20240201", "rootUrl": "https://groupsmigration.googleapis.com/", "servicePath": "", "title": "Groups Migration API", diff --git a/discovery/googleapis/healthcare__v1.json b/discovery/googleapis/healthcare__v1.json index ebb63b7a6..e23b56668 100644 --- a/discovery/googleapis/healthcare__v1.json +++ b/discovery/googleapis/healthcare__v1.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231115", + "revision": "20240220", "rootUrl": "https://healthcare.googleapis.com/", "servicePath": "", "title": "Cloud Healthcare API", @@ -198,12 +198,12 @@ ], "parameters": { "datasetId": { - "description": "The ID of the dataset that is being created. The string must match the following regex: `[\\p{L}\\p{N}_\\-\\.]{1,256}`.", + "description": "Required. The ID of the dataset that is being created. The string must match the following regex: `[\\p{L}\\p{N}_\\-\\.]{1,256}`.", "location": "query", "type": "string" }, "parent": { - "description": "The name of the project where the server creates the dataset. For example, `projects/{project_id}/locations/{location_id}`.", + "description": "Required. The name of the project where the server creates the dataset. For example, `projects/{project_id}/locations/{location_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -232,7 +232,7 @@ ], "parameters": { "sourceDataset": { - "description": "Source dataset resource name. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}`.", + "description": "Required. Source dataset resource name. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "required": true, @@ -261,7 +261,7 @@ ], "parameters": { "name": { - "description": "The name of the dataset to delete. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}`.", + "description": "Required. The name of the dataset to delete. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "required": true, @@ -287,7 +287,7 @@ ], "parameters": { "name": { - "description": "The name of the dataset to read. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}`.", + "description": "Required. The name of the dataset to read. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "required": true, @@ -356,7 +356,7 @@ "type": "string" }, "parent": { - "description": "The name of the project whose datasets should be listed. For example, `projects/{project_id}/locations/{location_id}`.", + "description": "Required. The name of the project whose datasets should be listed. For example, `projects/{project_id}/locations/{location_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, @@ -382,14 +382,14 @@ ], "parameters": { "name": { - "description": "Resource name of the dataset, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}`.", + "description": "Identifier. Resource name of the dataset, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "required": true, "type": "string" }, "updateMask": { - "description": "The update mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask", + "description": "Required. The update mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask", "format": "google-fieldmask", "location": "query", "type": "string" @@ -697,7 +697,7 @@ ], "parameters": { "name": { - "description": "Resource name of the consent store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}`. Cannot be changed after creation.", + "description": "Identifier. Resource name of the consent store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}`. Cannot be changed after creation.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+$", "required": true, @@ -951,7 +951,7 @@ ], "parameters": { "name": { - "description": "Resource name of the Attribute definition, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/attributeDefinitions/{attribute_definition_id}`. Cannot be changed after creation.", + "description": "Identifier. Resource name of the Attribute definition, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/attributeDefinitions/{attribute_definition_id}`. Cannot be changed after creation.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/attributeDefinitions/[^/]+$", "required": true, @@ -1337,7 +1337,7 @@ ], "parameters": { "name": { - "description": "Resource name of the Consent, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consents/{consent_id}`. Cannot be changed after creation.", + "description": "Identifier. Resource name of the Consent, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consents/{consent_id}`. Cannot be changed after creation.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/consentStores/[^/]+/consents/[^/]+$", "required": true, @@ -1615,6 +1615,100 @@ } } }, + "dataMapperWorkspaces": { + "methods": { + "getIamPolicy": { + "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dataMapperWorkspaces/{dataMapperWorkspacesId}:getIamPolicy", + "httpMethod": "GET", + "id": "healthcare.projects.locations.datasets.dataMapperWorkspaces.getIamPolicy", + "parameterOrder": [ + "resource" + ], + "parameters": { + "options.requestedPolicyVersion": { + "description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", + "format": "int32", + "location": "query", + "type": "integer" + }, + "resource": { + "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dataMapperWorkspaces/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "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}/locations/{locationsId}/datasets/{datasetsId}/dataMapperWorkspaces/{dataMapperWorkspacesId}:setIamPolicy", + "httpMethod": "POST", + "id": "healthcare.projects.locations.datasets.dataMapperWorkspaces.setIamPolicy", + "parameterOrder": [ + "resource" + ], + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dataMapperWorkspaces/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:setIamPolicy", + "request": { + "$ref": "SetIamPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/dataMapperWorkspaces/{dataMapperWorkspacesId}:testIamPermissions", + "httpMethod": "POST", + "id": "healthcare.projects.locations.datasets.dataMapperWorkspaces.testIamPermissions", + "parameterOrder": [ + "resource" + ], + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dataMapperWorkspaces/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "dicomStores": { "methods": { "create": { @@ -1627,12 +1721,12 @@ ], "parameters": { "dicomStoreId": { - "description": "The ID of the DICOM store that is being created. Any string value up to 256 characters in length.", + "description": "Required. The ID of the DICOM store that is being created. Any string value up to 256 characters in length.", "location": "query", "type": "string" }, "parent": { - "description": "The name of the dataset this DICOM store belongs to.", + "description": "Required. The name of the dataset this DICOM store belongs to.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "required": true, @@ -1661,7 +1755,7 @@ ], "parameters": { "sourceStore": { - "description": "Source DICOM store resource name. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", + "description": "Required. Source DICOM store resource name. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "required": true, @@ -1690,7 +1784,7 @@ ], "parameters": { "name": { - "description": "The resource name of the DICOM store to delete.", + "description": "Required. The resource name of the DICOM store to delete.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "required": true, @@ -1716,7 +1810,7 @@ ], "parameters": { "name": { - "description": "The DICOM store resource name from which to export the data. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", + "description": "Required. The DICOM store resource name from which to export the data. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "required": true, @@ -1745,7 +1839,7 @@ ], "parameters": { "name": { - "description": "The resource name of the DICOM store to get.", + "description": "Required. The resource name of the DICOM store to get.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "required": true, @@ -1771,7 +1865,7 @@ ], "parameters": { "name": { - "description": "The resource name of the DICOM store to get metrics for.", + "description": "Required. The resource name of the DICOM store to get metrics for.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "required": true, @@ -1829,7 +1923,7 @@ ], "parameters": { "name": { - "description": "The name of the DICOM store resource into which the data is imported. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", + "description": "Required. The name of the DICOM store resource into which the data is imported. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "required": true, @@ -1874,7 +1968,7 @@ "type": "string" }, "parent": { - "description": "Name of the dataset.", + "description": "Required. Name of the dataset.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "required": true, @@ -1900,14 +1994,14 @@ ], "parameters": { "name": { - "description": "Resource name of the DICOM store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", + "description": "Identifier. Resource name of the DICOM store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "required": true, "type": "string" }, "updateMask": { - "description": "The update mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask", + "description": "Required. The update mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask", "format": "google-fieldmask", "location": "query", "type": "string" @@ -1936,14 +2030,14 @@ ], "parameters": { "dicomWebPath": { - "description": "The path of the SearchForInstancesRequest DICOMweb request. For example, `instances`, `series/{series_uid}/instances`, or `studies/{study_uid}/instances`.", + "description": "Required. The path of the SearchForInstancesRequest DICOMweb request. For example, `instances`, `series/{series_uid}/instances`, or `studies/{study_uid}/instances`.", "location": "path", "pattern": "^instances$", "required": true, "type": "string" }, "parent": { - "description": "The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", + "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "required": true, @@ -1970,14 +2064,14 @@ ], "parameters": { "dicomWebPath": { - "description": "The path of the SearchForSeries DICOMweb request. For example, `series` or `studies/{study_uid}/series`.", + "description": "Required. The path of the SearchForSeries DICOMweb request. For example, `series` or `studies/{study_uid}/series`.", "location": "path", "pattern": "^series$", "required": true, "type": "string" }, "parent": { - "description": "The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", + "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "required": true, @@ -2004,14 +2098,14 @@ ], "parameters": { "dicomWebPath": { - "description": "The path of the SearchForStudies DICOMweb request. For example, `studies`.", + "description": "Required. The path of the SearchForStudies DICOMweb request. For example, `studies`.", "location": "path", "pattern": "^studies$", "required": true, "type": "string" }, "parent": { - "description": "The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", + "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "required": true, @@ -2067,14 +2161,14 @@ ], "parameters": { "dicomWebPath": { - "description": "The path of the StoreInstances DICOMweb request. For example, `studies/[{study_uid}]`. Note that the `study_uid` is optional.", + "description": "Required. The path of the StoreInstances DICOMweb request. For example, `studies/[{study_uid}]`. Note that the `study_uid` is optional.", "location": "path", "pattern": "^studies$", "required": true, "type": "string" }, "parent": { - "description": "The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", + "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "required": true, @@ -2138,7 +2232,7 @@ ], "parameters": { "study": { - "description": "The study resource path. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}/dicomWeb/studies/{study_uid}`.", + "description": "Required. The study resource path. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}/dicomWeb/studies/{study_uid}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+/dicomWeb/studies/[^/]+$", "required": true, @@ -2168,7 +2262,7 @@ ], "parameters": { "series": { - "description": "The series resource path. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}/dicomWeb/studies/{study_uid}/series/{series_uid}`.", + "description": "Required. The series resource path. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}/dicomWeb/studies/{study_uid}/series/{series_uid}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+/dicomWeb/studies/[^/]+/series/[^/]+$", "required": true, @@ -2203,7 +2297,7 @@ ], "parameters": { "dicomWebPath": { - "description": "The path of the DeleteStudy request. For example, `studies/{study_uid}`.", + "description": "Required. The path of the DeleteStudy request. For example, `studies/{study_uid}`.", "location": "path", "pattern": "^studies/[^/]+$", "required": true, @@ -2236,14 +2330,14 @@ ], "parameters": { "dicomWebPath": { - "description": "The path of the RetrieveStudyMetadata DICOMweb request. For example, `studies/{study_uid}/metadata`.", + "description": "Required. The path of the RetrieveStudyMetadata DICOMweb request. For example, `studies/{study_uid}/metadata`.", "location": "path", "pattern": "^studies/[^/]+/metadata$", "required": true, "type": "string" }, "parent": { - "description": "The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", + "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "required": true, @@ -2270,14 +2364,14 @@ ], "parameters": { "dicomWebPath": { - "description": "The path of the RetrieveStudy DICOMweb request. For example, `studies/{study_uid}`.", + "description": "Required. The path of the RetrieveStudy DICOMweb request. For example, `studies/{study_uid}`.", "location": "path", "pattern": "^studies/[^/]+$", "required": true, "type": "string" }, "parent": { - "description": "The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", + "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "required": true, @@ -2304,14 +2398,14 @@ ], "parameters": { "dicomWebPath": { - "description": "The path of the SearchForInstancesRequest DICOMweb request. For example, `instances`, `series/{series_uid}/instances`, or `studies/{study_uid}/instances`.", + "description": "Required. The path of the SearchForInstancesRequest DICOMweb request. For example, `instances`, `series/{series_uid}/instances`, or `studies/{study_uid}/instances`.", "location": "path", "pattern": "^studies/[^/]+/instances$", "required": true, "type": "string" }, "parent": { - "description": "The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", + "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "required": true, @@ -2338,14 +2432,14 @@ ], "parameters": { "dicomWebPath": { - "description": "The path of the SearchForSeries DICOMweb request. For example, `series` or `studies/{study_uid}/series`.", + "description": "Required. The path of the SearchForSeries DICOMweb request. For example, `series` or `studies/{study_uid}/series`.", "location": "path", "pattern": "^studies/[^/]+/series$", "required": true, "type": "string" }, "parent": { - "description": "The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", + "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "required": true, @@ -2372,14 +2466,14 @@ ], "parameters": { "dicomWebPath": { - "description": "The path of the StoreInstances DICOMweb request. For example, `studies/[{study_uid}]`. Note that the `study_uid` is optional.", + "description": "Required. The path of the StoreInstances DICOMweb request. For example, `studies/[{study_uid}]`. Note that the `study_uid` is optional.", "location": "path", "pattern": "^studies/[^/]+$", "required": true, "type": "string" }, "parent": { - "description": "The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", + "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "required": true, @@ -2413,14 +2507,14 @@ ], "parameters": { "dicomWebPath": { - "description": "The path of the DeleteSeries request. For example, `studies/{study_uid}/series/{series_uid}`.", + "description": "Required. The path of the DeleteSeries request. For example, `studies/{study_uid}/series/{series_uid}`.", "location": "path", "pattern": "^studies/[^/]+/series/[^/]+$", "required": true, "type": "string" }, "parent": { - "description": "The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", + "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "required": true, @@ -2447,14 +2541,14 @@ ], "parameters": { "dicomWebPath": { - "description": "The path of the RetrieveSeriesMetadata DICOMweb request. For example, `studies/{study_uid}/series/{series_uid}/metadata`.", + "description": "Required. The path of the RetrieveSeriesMetadata DICOMweb request. For example, `studies/{study_uid}/series/{series_uid}/metadata`.", "location": "path", "pattern": "^studies/[^/]+/series/[^/]+/metadata$", "required": true, "type": "string" }, "parent": { - "description": "The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", + "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "required": true, @@ -2481,14 +2575,14 @@ ], "parameters": { "dicomWebPath": { - "description": "The path of the RetrieveSeries DICOMweb request. For example, `studies/{study_uid}/series/{series_uid}`.", + "description": "Required. The path of the RetrieveSeries DICOMweb request. For example, `studies/{study_uid}/series/{series_uid}`.", "location": "path", "pattern": "^studies/[^/]+/series/[^/]+$", "required": true, "type": "string" }, "parent": { - "description": "The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", + "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "required": true, @@ -2515,14 +2609,14 @@ ], "parameters": { "dicomWebPath": { - "description": "The path of the SearchForInstancesRequest DICOMweb request. For example, `instances`, `series/{series_uid}/instances`, or `studies/{study_uid}/instances`.", + "description": "Required. The path of the SearchForInstancesRequest DICOMweb request. For example, `instances`, `series/{series_uid}/instances`, or `studies/{study_uid}/instances`.", "location": "path", "pattern": "^studies/[^/]+/series/[^/]+/instances$", "required": true, "type": "string" }, "parent": { - "description": "The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", + "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "required": true, @@ -2553,14 +2647,14 @@ ], "parameters": { "dicomWebPath": { - "description": "The path of the DeleteInstance request. For example, `studies/{study_uid}/series/{series_uid}/instances/{instance_uid}`.", + "description": "Required. The path of the DeleteInstance request. For example, `studies/{study_uid}/series/{series_uid}/instances/{instance_uid}`.", "location": "path", "pattern": "^studies/[^/]+/series/[^/]+/instances/[^/]+$", "required": true, "type": "string" }, "parent": { - "description": "The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", + "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "required": true, @@ -2587,14 +2681,14 @@ ], "parameters": { "dicomWebPath": { - "description": "The path of the RetrieveInstance DICOMweb request. For example, `studies/{study_uid}/series/{series_uid}/instances/{instance_uid}`.", + "description": "Required. The path of the RetrieveInstance DICOMweb request. For example, `studies/{study_uid}/series/{series_uid}/instances/{instance_uid}`.", "location": "path", "pattern": "^studies/[^/]+/series/[^/]+/instances/[^/]+$", "required": true, "type": "string" }, "parent": { - "description": "The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", + "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "required": true, @@ -2621,14 +2715,14 @@ ], "parameters": { "dicomWebPath": { - "description": "The path of the RetrieveInstanceMetadata DICOMweb request. For example, `studies/{study_uid}/series/{series_uid}/instances/{instance_uid}/metadata`.", + "description": "Required. The path of the RetrieveInstanceMetadata DICOMweb request. For example, `studies/{study_uid}/series/{series_uid}/instances/{instance_uid}/metadata`.", "location": "path", "pattern": "^studies/[^/]+/series/[^/]+/instances/[^/]+/metadata$", "required": true, "type": "string" }, "parent": { - "description": "The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", + "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "required": true, @@ -2655,14 +2749,14 @@ ], "parameters": { "dicomWebPath": { - "description": "The path of the RetrieveRenderedInstance DICOMweb request. For example, `studies/{study_uid}/series/{series_uid}/instances/{instance_uid}/rendered`.", + "description": "Required. The path of the RetrieveRenderedInstance DICOMweb request. For example, `studies/{study_uid}/series/{series_uid}/instances/{instance_uid}/rendered`.", "location": "path", "pattern": "^studies/[^/]+/series/[^/]+/instances/[^/]+/rendered$", "required": true, "type": "string" }, "parent": { - "description": "The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", + "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "required": true, @@ -2693,14 +2787,14 @@ ], "parameters": { "dicomWebPath": { - "description": "The path of the RetrieveFrames DICOMweb request. For example, `studies/{study_uid}/series/{series_uid}/instances/{instance_uid}/frames/{frame_list}`.", + "description": "Required. The path of the RetrieveFrames DICOMweb request. For example, `studies/{study_uid}/series/{series_uid}/instances/{instance_uid}/frames/{frame_list}`.", "location": "path", "pattern": "^studies/[^/]+/series/[^/]+/instances/[^/]+/frames/[^/]+$", "required": true, "type": "string" }, "parent": { - "description": "The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", + "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "required": true, @@ -2727,14 +2821,14 @@ ], "parameters": { "dicomWebPath": { - "description": "The path of the RetrieveRenderedFrames DICOMweb request. For example, `studies/{study_uid}/series/{series_uid}/instances/{instance_uid}/frames/{frame_list}/rendered`.", + "description": "Required. The path of the RetrieveRenderedFrames DICOMweb request. For example, `studies/{study_uid}/series/{series_uid}/instances/{instance_uid}/frames/{frame_list}/rendered`.", "location": "path", "pattern": "^studies/[^/]+/series/[^/]+/instances/[^/]+/frames/[^/]+/rendered$", "required": true, "type": "string" }, "parent": { - "description": "The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", + "description": "Required. The name of the DICOM store that is being accessed. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/dicomStores/[^/]+$", "required": true, @@ -2772,12 +2866,12 @@ ], "parameters": { "fhirStoreId": { - "description": "The ID of the FHIR store that is being created. The string must match the following regex: `[\\p{L}\\p{N}_\\-\\.]{1,256}`.", + "description": "Required. The ID of the FHIR store that is being created. The string must match the following regex: `[\\p{L}\\p{N}_\\-\\.]{1,256}`.", "location": "query", "type": "string" }, "parent": { - "description": "The name of the dataset this FHIR store belongs to.", + "description": "Required. The name of the dataset this FHIR store belongs to.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "required": true, @@ -2806,7 +2900,7 @@ ], "parameters": { "sourceStore": { - "description": "Source FHIR store resource name. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", + "description": "Required. Source FHIR store resource name. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "required": true, @@ -2835,7 +2929,7 @@ ], "parameters": { "name": { - "description": "The resource name of the FHIR store to delete.", + "description": "Required. The resource name of the FHIR store to delete.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "required": true, @@ -2861,7 +2955,7 @@ ], "parameters": { "name": { - "description": "The name of the FHIR store to export resource from, in the format of `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", + "description": "Required. The name of the FHIR store to export resource from, in the format of `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "required": true, @@ -2890,7 +2984,7 @@ ], "parameters": { "name": { - "description": "The resource name of the FHIR store to get.", + "description": "Required. The resource name of the FHIR store to get.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "required": true, @@ -2916,7 +3010,7 @@ ], "parameters": { "name": { - "description": "The resource name of the FHIR store to get metrics for.", + "description": "Required. The resource name of the FHIR store to get metrics for.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "required": true, @@ -2974,7 +3068,7 @@ ], "parameters": { "name": { - "description": "The name of the FHIR store to import FHIR resources to, in the format of `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", + "description": "Required. The name of the FHIR store to import FHIR resources to, in the format of `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "required": true, @@ -3019,7 +3113,7 @@ "type": "string" }, "parent": { - "description": "Name of the dataset.", + "description": "Required. Name of the dataset.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "required": true, @@ -3045,14 +3139,14 @@ ], "parameters": { "name": { - "description": "Output only. Resource name of the FHIR store, of the form `projects/{project_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", + "description": "Output only. Identifier. Resource name of the FHIR store, of the form `projects/{project_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "required": true, "type": "string" }, "updateMask": { - "description": "The update mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask", + "description": "Required. The update mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask", "format": "google-fieldmask", "location": "query", "type": "string" @@ -3070,6 +3164,35 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "rollback": { + "description": "Rolls back resources from the FHIR store to the specified time. This method returns an Operation that can be used to track the status of the rollback by calling GetOperation. Immediate fatal errors appear in the error field, errors are also logged to Cloud Logging (see [Viewing error logs in Cloud Logging](https://cloud.google.com/healthcare/docs/how-tos/logging)). Otherwise, when the operation finishes, a detailed response of type RollbackFhirResourcesResponse is returned in the response field. The metadata field type for this operation is OperationMetadata.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}:rollback", + "httpMethod": "POST", + "id": "healthcare.projects.locations.datasets.fhirStores.rollback", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the FHIR store to rollback, in the format of \"projects/{project_id}/locations/{location_id}/datasets/{dataset_id} /fhirStores/{fhir_store_id}\".", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:rollback", + "request": { + "$ref": "RollbackFhirResourcesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-healthcare", + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "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}/locations/{locationsId}/datasets/{datasetsId}/fhirStores/{fhirStoresId}:setIamPolicy", @@ -3142,7 +3265,7 @@ ], "parameters": { "_count": { - "description": "Maximum number of resources in a page. If not specified, 100 is used. May not be larger than 1000.", + "description": "Optional. Maximum number of resources in a page. If not specified, 100 is used. May not be larger than 1000.", "format": "int32", "location": "query", "type": "integer" @@ -3153,29 +3276,29 @@ "type": "string" }, "_since": { - "description": "If provided, only resources updated after this time are returned. The time uses the format YYYY-MM-DDThh:mm:ss.sss+zz:zz. For example, `2015-02-07T13:28:17.239+02:00` or `2017-01-01T00:00:00Z`. The time must be specified to the second and include a time zone.", + "description": "Optional. If provided, only resources updated after this time are returned. The time uses the format YYYY-MM-DDThh:mm:ss.sss+zz:zz. For example, `2015-02-07T13:28:17.239+02:00` or `2017-01-01T00:00:00Z`. The time must be specified to the second and include a time zone.", "location": "query", "type": "string" }, "_type": { - "description": "String of comma-delimited FHIR resource types. If provided, only resources of the specified resource type(s) are returned. Specifying multiple `_type` parameters isn't supported. For example, the result of `_type=Observation&_type=Encounter` is undefined. Use `_type=Observation,Encounter` instead.", + "description": "Optional. String of comma-delimited FHIR resource types. If provided, only resources of the specified resource type(s) are returned. Specifying multiple `_type` parameters isn't supported. For example, the result of `_type=Observation&_type=Encounter` is undefined. Use `_type=Observation,Encounter` instead.", "location": "query", "type": "string" }, "end": { - "description": "The response includes records prior to the end date. The date uses the format YYYY-MM-DD. If no end date is provided, all records subsequent to the start date are in scope.", + "description": "Optional. The response includes records prior to the end date. The date uses the format YYYY-MM-DD. If no end date is provided, all records subsequent to the start date are in scope.", "location": "query", "type": "string" }, "name": { - "description": "Name of the `Patient` resource for which the information is required.", + "description": "Required. Name of the `Patient` resource for which the information is required.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/Patient/[^/]+$", "required": true, "type": "string" }, "start": { - "description": "The response includes records subsequent to the start date. The date uses the format YYYY-MM-DD. If no start date is provided, all records prior to the end date are in scope.", + "description": "Optional. The response includes records subsequent to the start date. The date uses the format YYYY-MM-DD. If no start date is provided, all records prior to the end date are in scope.", "location": "query", "type": "string" } @@ -3199,7 +3322,7 @@ ], "parameters": { "name": { - "description": "The name of the resource to purge.", + "description": "Required. The name of the resource to purge.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/[^/]+/[^/]+$", "required": true, @@ -3226,19 +3349,19 @@ ], "parameters": { "parent": { - "description": "The name of the FHIR store that holds the profiles being used for validation.", + "description": "Required. The name of the FHIR store that holds the profiles being used for validation.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "required": true, "type": "string" }, "profile": { - "description": "The canonical URL of a profile that this resource should be validated against. For example, to validate a Patient resource against the US Core Patient profile this parameter would be `http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient`. A StructureDefinition with this canonical URL must exist in the FHIR store.", + "description": "Required. The canonical URL of a profile that this resource should be validated against. For example, to validate a Patient resource against the US Core Patient profile this parameter would be `http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient`. A StructureDefinition with this canonical URL must exist in the FHIR store.", "location": "query", "type": "string" }, "type": { - "description": "The FHIR resource type of the resource being validated. For a complete list, see the FHIR Resource Index ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/resourcelist.html), [STU3](http://hl7.org/implement/standards/fhir/STU3/resourcelist.html), or [R4](http://hl7.org/implement/standards/fhir/R4/resourcelist.html)). Must match the resource type in the provided content.", + "description": "Required. The FHIR resource type of the resource being validated. For a complete list, see the FHIR Resource Index ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/resourcelist.html), [STU3](http://hl7.org/implement/standards/fhir/STU3/resourcelist.html), or [R4](http://hl7.org/implement/standards/fhir/R4/resourcelist.html)). Must match the resource type in the provided content.", "location": "path", "pattern": "^[^/]+$", "required": true, @@ -3267,7 +3390,7 @@ ], "parameters": { "name": { - "description": "Name of the FHIR store to retrieve the capabilities for.", + "description": "Required. Name of the FHIR store to retrieve the capabilities for.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "required": true, @@ -3294,14 +3417,14 @@ ], "parameters": { "parent": { - "description": "The name of the FHIR store this resource belongs to.", + "description": "Required. The name of the FHIR store this resource belongs to.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "required": true, "type": "string" }, "type": { - "description": "The FHIR resource type to delete, such as Patient or Observation. For a complete list, see the FHIR Resource Index ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/resourcelist.html), [STU3](https://hl7.org/implement/standards/fhir/STU3/resourcelist.html), [R4](https://hl7.org/implement/standards/fhir/R4/resourcelist.html)).", + "description": "Required. The FHIR resource type to delete, such as Patient or Observation. For a complete list, see the FHIR Resource Index ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/resourcelist.html), [STU3](https://hl7.org/implement/standards/fhir/STU3/resourcelist.html), [R4](https://hl7.org/implement/standards/fhir/R4/resourcelist.html)).", "location": "path", "pattern": "^[^/]+$", "required": true, @@ -3328,14 +3451,14 @@ ], "parameters": { "parent": { - "description": "The name of the FHIR store this resource belongs to.", + "description": "Required. The name of the FHIR store this resource belongs to.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "required": true, "type": "string" }, "type": { - "description": "The FHIR resource type to update, such as Patient or Observation. For a complete list, see the FHIR Resource Index ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/resourcelist.html), [STU3](https://hl7.org/implement/standards/fhir/STU3/resourcelist.html), [R4](https://hl7.org/implement/standards/fhir/R4/resourcelist.html)).", + "description": "Required. The FHIR resource type to update, such as Patient or Observation. For a complete list, see the FHIR Resource Index ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/resourcelist.html), [STU3](https://hl7.org/implement/standards/fhir/STU3/resourcelist.html), [R4](https://hl7.org/implement/standards/fhir/R4/resourcelist.html)).", "location": "path", "pattern": "^[^/]+$", "required": true, @@ -3365,14 +3488,14 @@ ], "parameters": { "parent": { - "description": "The name of the FHIR store this resource belongs to.", + "description": "Required. The name of the FHIR store this resource belongs to.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "required": true, "type": "string" }, "type": { - "description": "The FHIR resource type to update, such as Patient or Observation. For a complete list, see the FHIR Resource Index ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/resourcelist.html), [STU3](https://hl7.org/implement/standards/fhir/STU3/resourcelist.html), [R4](https://hl7.org/implement/standards/fhir/R4/resourcelist.html)). Must match the resource type in the provided content.", + "description": "Required. The FHIR resource type to update, such as Patient or Observation. For a complete list, see the FHIR Resource Index ([DSTU2](https://hl7.org/implement/standards/fhir/DSTU2/resourcelist.html), [STU3](https://hl7.org/implement/standards/fhir/STU3/resourcelist.html), [R4](https://hl7.org/implement/standards/fhir/R4/resourcelist.html)). Must match the resource type in the provided content.", "location": "path", "pattern": "^[^/]+$", "required": true, @@ -3402,14 +3525,14 @@ ], "parameters": { "parent": { - "description": "The name of the FHIR store this resource belongs to.", + "description": "Required. The name of the FHIR store this resource belongs to.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "required": true, "type": "string" }, "type": { - "description": "The FHIR resource type to create, such as Patient or Observation. For a complete list, see the FHIR Resource Index ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/resourcelist.html), [STU3](http://hl7.org/implement/standards/fhir/STU3/resourcelist.html), [R4](http://hl7.org/implement/standards/fhir/R4/resourcelist.html)). Must match the resource type in the provided content.", + "description": "Required. The FHIR resource type to create, such as Patient or Observation. For a complete list, see the FHIR Resource Index ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/resourcelist.html), [STU3](http://hl7.org/implement/standards/fhir/STU3/resourcelist.html), [R4](http://hl7.org/implement/standards/fhir/R4/resourcelist.html)). Must match the resource type in the provided content.", "location": "path", "pattern": "^[^/]+$", "required": true, @@ -3438,7 +3561,7 @@ ], "parameters": { "name": { - "description": "The name of the resource to delete.", + "description": "Required. The name of the resource to delete.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/[^/]+/[^/]+$", "required": true, @@ -3464,7 +3587,7 @@ ], "parameters": { "parent": { - "description": "Name of the FHIR store in which this bundle will be executed.", + "description": "Required. Name of the FHIR store in which this bundle will be executed.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "required": true, @@ -3514,7 +3637,7 @@ "type": "string" }, "name": { - "description": "The name of the resource to retrieve.", + "description": "Required. The name of the resource to retrieve.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/[^/]+/[^/]+$", "required": true, @@ -3540,7 +3663,7 @@ ], "parameters": { "name": { - "description": "The name of the resource to update.", + "description": "Required. The name of the resource to update.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/[^/]+/[^/]+$", "required": true, @@ -3569,7 +3692,7 @@ ], "parameters": { "name": { - "description": "The name of the resource to retrieve.", + "description": "Required. The name of the resource to retrieve.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/[^/]+/[^/]+$", "required": true, @@ -3595,7 +3718,7 @@ ], "parameters": { "parent": { - "description": "Name of the FHIR store to retrieve resources from.", + "description": "Required. Name of the FHIR store to retrieve resources from.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "required": true, @@ -3625,14 +3748,14 @@ ], "parameters": { "parent": { - "description": "Name of the FHIR store to retrieve resources from.", + "description": "Required. Name of the FHIR store to retrieve resources from.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+$", "required": true, "type": "string" }, "resourceType": { - "description": "The FHIR resource type to search, such as Patient or Observation. For a complete list, see the FHIR Resource Index ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/resourcelist.html), [STU3](http://hl7.org/implement/standards/fhir/STU3/resourcelist.html), [R4](http://hl7.org/implement/standards/fhir/R4/resourcelist.html)).", + "description": "Required. The FHIR resource type to search, such as Patient or Observation. For a complete list, see the FHIR Resource Index ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/resourcelist.html), [STU3](http://hl7.org/implement/standards/fhir/STU3/resourcelist.html), [R4](http://hl7.org/implement/standards/fhir/R4/resourcelist.html)).", "location": "path", "required": true, "type": "string" @@ -3660,7 +3783,7 @@ ], "parameters": { "name": { - "description": "The name of the resource to update.", + "description": "Required. The name of the resource to update.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/[^/]+/[^/]+$", "required": true, @@ -3689,7 +3812,7 @@ ], "parameters": { "name": { - "description": "The name of the resource version to retrieve.", + "description": "Required. The name of the resource version to retrieve.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/fhirStores/[^/]+/fhir/[^/]+/[^/]+/_history/[^/]+$", "required": true, @@ -3721,12 +3844,12 @@ ], "parameters": { "hl7V2StoreId": { - "description": "The ID of the HL7v2 store that is being created. The string must match the following regex: `[\\p{L}\\p{N}_\\-\\.]{1,256}`.", + "description": "Required. The ID of the HL7v2 store that is being created. The string must match the following regex: `[\\p{L}\\p{N}_\\-\\.]{1,256}`.", "location": "query", "type": "string" }, "parent": { - "description": "The name of the dataset this HL7v2 store belongs to.", + "description": "Required. The name of the dataset this HL7v2 store belongs to.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "required": true, @@ -3755,7 +3878,7 @@ ], "parameters": { "name": { - "description": "The resource name of the HL7v2 store to delete.", + "description": "Required. The resource name of the HL7v2 store to delete.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", "required": true, @@ -3781,7 +3904,7 @@ ], "parameters": { "name": { - "description": "The name of the source HL7v2 store, in the format `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7v2Stores/{hl7v2_store_id}`", + "description": "Required. The name of the source HL7v2 store, in the format `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7v2Stores/{hl7v2_store_id}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", "required": true, @@ -3810,7 +3933,7 @@ ], "parameters": { "name": { - "description": "The resource name of the HL7v2 store to get.", + "description": "Required. The resource name of the HL7v2 store to get.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", "required": true, @@ -3836,7 +3959,7 @@ ], "parameters": { "name": { - "description": "The resource name of the HL7v2 store to get metrics for, in the format `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7V2Stores/{hl7v2_store_id}`.", + "description": "Required. The resource name of the HL7v2 store to get metrics for, in the format `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7V2Stores/{hl7v2_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", "required": true, @@ -3894,7 +4017,7 @@ ], "parameters": { "name": { - "description": "The name of the target HL7v2 store, in the format `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7v2Stores/{hl7v2_store_id}`", + "description": "Required. The name of the target HL7v2 store, in the format `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7v2Stores/{hl7v2_store_id}`", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", "required": true, @@ -3939,7 +4062,7 @@ "type": "string" }, "parent": { - "description": "Name of the dataset.", + "description": "Required. Name of the dataset.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+$", "required": true, @@ -3965,14 +4088,14 @@ ], "parameters": { "name": { - "description": "Resource name of the HL7v2 store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7V2Stores/{hl7v2_store_id}`.", + "description": "Identifier. Resource name of the HL7v2 store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7V2Stores/{hl7v2_store_id}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", "required": true, "type": "string" }, "updateMask": { - "description": "The update mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask", + "description": "Required. The update mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask", "format": "google-fieldmask", "location": "query", "type": "string" @@ -4062,7 +4185,7 @@ ], "parameters": { "parent": { - "description": "The name of the HL7v2 store this message belongs to.", + "description": "Required. The name of the HL7v2 store this message belongs to.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", "required": true, @@ -4091,7 +4214,7 @@ ], "parameters": { "name": { - "description": "The resource name of the HL7v2 message to delete.", + "description": "Required. The resource name of the HL7v2 message to delete.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+/messages/[^/]+$", "required": true, @@ -4117,7 +4240,7 @@ ], "parameters": { "name": { - "description": "The resource name of the HL7v2 message to retrieve.", + "description": "Required. The resource name of the HL7v2 message to retrieve.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+/messages/[^/]+$", "required": true, @@ -4164,7 +4287,7 @@ ], "parameters": { "parent": { - "description": "The name of the HL7v2 store this message belongs to.", + "description": "Required. The name of the HL7v2 store this message belongs to.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", "required": true, @@ -4214,7 +4337,7 @@ "type": "string" }, "parent": { - "description": "Name of the HL7v2 store to retrieve messages from.", + "description": "Required. Name of the HL7v2 store to retrieve messages from.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+$", "required": true, @@ -4261,14 +4384,14 @@ ], "parameters": { "name": { - "description": "Resource name of the Message, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7V2Stores/{hl7_v2_store_id}/messages/{message_id}`. Assigned by the server.", + "description": "Output only. Resource name of the Message, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7V2Stores/{hl7_v2_store_id}/messages/{message_id}`. Assigned by the server.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+/datasets/[^/]+/hl7V2Stores/[^/]+/messages/[^/]+$", "required": true, "type": "string" }, "updateMask": { - "description": "The update mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask", + "description": "Required. The update mask applies to the resource. For the `FieldMask` definition, see https://developers.google.com/protocol-buffers/docs/reference/google.protobuf#fieldmask", "format": "google-fieldmask", "location": "query", "type": "string" @@ -4600,7 +4723,7 @@ "type": "string" }, "name": { - "description": "Resource name of the Attribute definition, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/attributeDefinitions/{attribute_definition_id}`. Cannot be changed after creation.", + "description": "Identifier. Resource name of the Attribute definition, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/attributeDefinitions/{attribute_definition_id}`. Cannot be changed after creation.", "type": "string" } }, @@ -4663,14 +4786,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -4768,7 +4891,7 @@ "type": "object" }, "name": { - "description": "Resource name of the Consent, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consents/{consent_id}`. Cannot be changed after creation.", + "description": "Identifier. Resource name of the Consent, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consents/{consent_id}`. Cannot be changed after creation.", "type": "string" }, "policies": { @@ -4848,7 +4971,7 @@ "type": "object" }, "name": { - "description": "Resource name of the Consent artifact, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consentArtifacts/{consent_artifact_id}`. Cannot be changed after creation.", + "description": "Identifier. Resource name of the Consent artifact, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}/consentArtifacts/{consent_artifact_id}`. Cannot be changed after creation.", "type": "string" }, "userId": { @@ -4926,7 +5049,7 @@ "type": "object" }, "name": { - "description": "Resource name of the consent store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}`. Cannot be changed after creation.", + "description": "Identifier. Resource name of the consent store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/consentStores/{consent_store_id}`. Cannot be changed after creation.", "type": "string" } }, @@ -4938,7 +5061,7 @@ "properties": { "message": { "$ref": "Message", - "description": "HL7v2 message." + "description": "Required. HL7v2 message." } }, "type": "object" @@ -4964,7 +5087,7 @@ "id": "Dataset", "properties": { "name": { - "description": "Resource name of the dataset, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}`.", + "description": "Identifier. Resource name of the dataset, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}`.", "type": "string" }, "timeZone": { @@ -5041,7 +5164,7 @@ "description": "Deidentify configuration. Only one of `config` and `gcs_config_uri` can be specified." }, "destinationDataset": { - "description": "The name of the dataset resource to create and write the redacted data to. * The destination dataset must not exist. * The destination dataset must be in the same location as the source dataset. De-identifying data across multiple locations is not supported.", + "description": "Required. The name of the dataset resource to create and write the redacted data to. * The destination dataset must not exist. * The destination dataset must be in the same location as the source dataset. De-identifying data across multiple locations is not supported.", "type": "string" }, "gcsConfigUri": { @@ -5060,7 +5183,7 @@ "description": "Deidentify configuration. Only one of `config` and `gcs_config_uri` can be specified." }, "destinationStore": { - "description": "The name of the DICOM store to create and write the redacted data to. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`. * The destination dataset must exist. * The source dataset and destination dataset must both reside in the same location. De-identifying data across multiple locations is not supported. * The destination DICOM store must not exist. * The caller must have the necessary permissions to create the destination DICOM store.", + "description": "Required. The name of the DICOM store to create and write the redacted data to. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`. * The destination dataset must exist. * The source dataset and destination dataset must both reside in the same location. De-identifying data across multiple locations is not supported. * The destination DICOM store must not exist. * The caller must have the necessary permissions to create the destination DICOM store.", "type": "string" }, "filterConfig": { @@ -5083,7 +5206,7 @@ "description": "Deidentify configuration. Only one of `config` and `gcs_config_uri` can be specified." }, "destinationStore": { - "description": "The name of the FHIR store to create and write the redacted data to. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`. * The destination dataset must exist. * The source dataset and destination dataset must both reside in the same location. De-identifying data across multiple locations is not supported. * The destination FHIR store must exist. * The caller must have the healthcare.fhirResources.update permission to write to the destination FHIR store.", + "description": "Required. The name of the FHIR store to create and write the redacted data to. For example, `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`. * The destination dataset must exist. * The source dataset and destination dataset must both reside in the same location. De-identifying data across multiple locations is not supported. * The destination FHIR store must exist. * The caller must have the healthcare.fhirResources.update permission to write to the destination FHIR store.", "type": "string" }, "gcsConfigUri": { @@ -5167,7 +5290,7 @@ "type": "object" }, "name": { - "description": "Resource name of the DICOM store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", + "description": "Identifier. Resource name of the DICOM store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/dicomStores/{dicom_store_id}`.", "type": "string" }, "notificationConfig": { @@ -5594,7 +5717,7 @@ "type": "object" }, "name": { - "description": "Output only. Resource name of the FHIR store, of the form `projects/{project_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", + "description": "Output only. Identifier. Resource name of the FHIR store, of the form `projects/{project_id}/datasets/{dataset_id}/fhirStores/{fhir_store_id}`.", "type": "string" }, "notificationConfig": { @@ -5621,7 +5744,7 @@ "description": "Configuration for how to validate incoming FHIR resources against configured profiles." }, "version": { - "description": "Immutable. The FHIR specification version that this FHIR store supports natively. This field is immutable after store creation. Requests are rejected if they contain FHIR resources of a different version. Version is required for every FHIR store.", + "description": "Required. Immutable. The FHIR specification version that this FHIR store supports natively. This field is immutable after store creation. Requests are rejected if they contain FHIR resources of a different version. Version is required for every FHIR store.", "enum": [ "VERSION_UNSPECIFIED", "DSTU2", @@ -6039,7 +6162,7 @@ "type": "object" }, "name": { - "description": "Resource name of the HL7v2 store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7V2Stores/{hl7v2_store_id}`.", + "description": "Identifier. Resource name of the HL7v2 store, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7V2Stores/{hl7v2_store_id}`.", "type": "string" }, "notificationConfigs": { @@ -6274,7 +6397,7 @@ "properties": { "message": { "$ref": "Message", - "description": "HL7v2 message to ingest." + "description": "Required. HL7v2 message to ingest." } }, "type": "object" @@ -6595,7 +6718,7 @@ "type": "string" }, "data": { - "description": "Raw message bytes.", + "description": "Required. Raw message bytes.", "format": "byte", "type": "string" }, @@ -6611,7 +6734,8 @@ "type": "string" }, "name": { - "description": "Resource name of the Message, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7V2Stores/{hl7_v2_store_id}/messages/{message_id}`. Assigned by the server.", + "description": "Output only. Resource name of the Message, of the form `projects/{project_id}/locations/{location_id}/datasets/{dataset_id}/hl7V2Stores/{hl7_v2_store_id}/messages/{message_id}`. Assigned by the server.", + "readOnly": true, "type": "string" }, "parsedData": { @@ -6961,6 +7085,91 @@ }, "type": "object" }, + "RollbackFhirResourceFilteringFields": { + "id": "RollbackFhirResourceFilteringFields", + "properties": { + "metadataFilter": { + "description": "Optional. A filter expression that matches data in the `Resource.meta` element. Supports all filters in [AIP-160](https://google.aip.dev/160) except the \"has\" (`:`) operator. Supports the following custom functions: * `tag(\"\") = \"\"` for tag filtering. * `extension_value_ts(\"\") = ` for filtering extensions with a timestamp, where `` is a Unix timestamp. Supports the `>`, `<`, `<=`, `>=`, and `!=` comparison operators.", + "type": "string" + }, + "operationIds": { + "description": "Optional. A list of operation IDs to roll back.", + "items": { + "format": "uint64", + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "RollbackFhirResourcesRequest": { + "id": "RollbackFhirResourcesRequest", + "properties": { + "changeType": { + "description": "Optional. CREATE/UPDATE/DELETE/ALL for reverting all txns of a certain type.", + "enum": [ + "CHANGE_TYPE_UNSPECIFIED", + "ALL", + "CREATE", + "UPDATE", + "DELETE" + ], + "enumDescriptions": [ + "When unspecified, revert all transactions", + "All transactions", + "Revert only CREATE transactions", + "Revert only Update transactions", + "Revert only Delete transactions" + ], + "type": "string" + }, + "excludeRollbacks": { + "description": "Optional. Specifies whether to exclude earlier rollbacks.", + "type": "boolean" + }, + "filteringFields": { + "$ref": "RollbackFhirResourceFilteringFields", + "description": "Optional. Parameters for filtering resources" + }, + "force": { + "description": "Optional. When enabled, changes will be reverted without explicit confirmation", + "type": "boolean" + }, + "inputGcsObject": { + "description": "Optional. GCS object containing list of {resourceType}/{resourceId} lines, identifying resources to be reverted", + "type": "string" + }, + "resultGcsBucket": { + "description": "Required. Bucket to deposit result", + "type": "string" + }, + "rollbackTime": { + "description": "Required. Time point to rollback to.", + "format": "google-datetime", + "type": "string" + }, + "type": { + "description": "Optional. If specified, revert only resources of these types", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "RollbackFhirResourcesResponse": { + "description": "Final response of rollback FIHR resources request.", + "id": "RollbackFhirResourcesResponse", + "properties": { + "fhirStore": { + "description": "The name of the FHIR store to rollback, in the format of \"projects/{project_id}/locations/{location_id}/datasets/{dataset_id} /fhirStores/{fhir_store_id}\".", + "type": "string" + } + }, + "type": "object" + }, "SchemaConfig": { "description": "Configuration for the FHIR BigQuery schema. Determines how the server generates the schema.", "id": "SchemaConfig", @@ -7119,7 +7328,7 @@ "id": "SearchResourcesRequest", "properties": { "resourceType": { - "description": "The FHIR resource type to search, such as Patient or Observation. For a complete list, see the FHIR Resource Index ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/resourcelist.html), [STU3](http://hl7.org/implement/standards/fhir/STU3/resourcelist.html), [R4](http://hl7.org/implement/standards/fhir/R4/resourcelist.html)).", + "description": "Required. The FHIR resource type to search, such as Patient or Observation. For a complete list, see the FHIR Resource Index ([DSTU2](http://hl7.org/implement/standards/fhir/DSTU2/resourcelist.html), [STU3](http://hl7.org/implement/standards/fhir/STU3/resourcelist.html), [R4](http://hl7.org/implement/standards/fhir/R4/resourcelist.html)).", "type": "string" } }, diff --git a/discovery/googleapis/homegraph__v1.json b/discovery/googleapis/homegraph__v1.json index eecb04500..f02a0d8b3 100644 --- a/discovery/googleapis/homegraph__v1.json +++ b/discovery/googleapis/homegraph__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231123", + "revision": "20240226", "rootUrl": "https://homegraph.googleapis.com/", "servicePath": "", "title": "HomeGraph API", diff --git a/discovery/googleapis/iam__v1.json b/discovery/googleapis/iam__v1.json index 5ce2155f3..0185bad2f 100644 --- a/discovery/googleapis/iam__v1.json +++ b/discovery/googleapis/iam__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231026", + "revision": "20240220", "rootUrl": "https://iam.googleapis.com/", "servicePath": "", "title": "Identity and Access Management (IAM) API", @@ -2974,14 +2974,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -4412,14 +4412,14 @@ "id": "WorkforcePoolProvider", "properties": { "attributeCondition": { - "description": "A [Common Expression Language](https://opensource.google/projects/cel) expression, in plain text, to restrict what otherwise valid authentication credentials issued by the provider should not be accepted. The expression must output a boolean representing whether to allow the federation. The following keywords may be referenced in the expressions: * `assertion`: JSON representing the authentication credential issued by the provider. * `google`: The Google attributes mapped from the assertion in the `attribute_mappings`. `google.profile_photo` and `google.display_name` are not supported. * `attribute`: The custom attributes mapped from the assertion in the `attribute_mappings`. The maximum length of the attribute condition expression is 4096 characters. If unspecified, all valid authentication credentials will be accepted. The following example shows how to only allow credentials with a mapped `google.groups` value of `admins`: ``` \"'admins' in google.groups\" ```", + "description": "A [Common Expression Language](https://opensource.google/projects/cel) expression, in plain text, to restrict what otherwise valid authentication credentials issued by the provider should not be accepted. The expression must output a boolean representing whether to allow the federation. The following keywords may be referenced in the expressions: * `assertion`: JSON representing the authentication credential issued by the provider. * `google`: The Google attributes mapped from the assertion in the `attribute_mappings`. `google.profile_photo`, `google.display_name` and `google.posix_username` are not supported. * `attribute`: The custom attributes mapped from the assertion in the `attribute_mappings`. The maximum length of the attribute condition expression is 4096 characters. If unspecified, all valid authentication credentials will be accepted. The following example shows how to only allow credentials with a mapped `google.groups` value of `admins`: ``` \"'admins' in google.groups\" ```", "type": "string" }, "attributeMapping": { "additionalProperties": { "type": "string" }, - "description": "Required. Maps attributes from the authentication credentials issued by an external identity provider to Google Cloud attributes, such as `subject` and `segment`. Each key must be a string specifying the Google Cloud IAM attribute to map to. The following keys are supported: * `google.subject`: The principal IAM is authenticating. You can reference this value in IAM bindings. This is also the subject that appears in Cloud Logging logs. This is a required field and the mapped subject cannot exceed 127 bytes. * `google.groups`: Groups the authenticating user belongs to. You can grant groups access to resources using an IAM `principalSet` binding; access applies to all members of the group. * `google.display_name`: The name of the authenticated user. This is an optional field and the mapped display name cannot exceed 100 bytes. If not set, `google.subject` will be displayed instead. This attribute cannot be referenced in IAM bindings. * `google.profile_photo`: The URL that specifies the authenticated user's thumbnail photo. This is an optional field. When set, the image will be visible as the user's profile picture. If not set, a generic user icon will be displayed instead. This attribute cannot be referenced in IAM bindings. You can also provide custom attributes by specifying `attribute.{custom_attribute}`, where {custom_attribute} is the name of the custom attribute to be mapped. You can define a maximum of 50 custom attributes. The maximum length of a mapped attribute key is 100 characters, and the key may only contain the characters [a-z0-9_]. You can reference these attributes in IAM policies to define fine-grained access for a workforce pool to Google Cloud resources. For example: * `google.subject`: `principal://iam.googleapis.com/locations/global/workforcePools/{pool}/subject/{value}` * `google.groups`: `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool}/group/{value}` * `attribute.{custom_attribute}`: `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool}/attribute.{custom_attribute}/{value}` Each value must be a [Common Expression Language] (https://opensource.google/projects/cel) function that maps an identity provider credential to the normalized attribute specified by the corresponding map key. You can use the `assertion` keyword in the expression to access a JSON representation of the authentication credential issued by the provider. The maximum length of an attribute mapping expression is 2048 characters. When evaluated, the total size of all mapped attributes must not exceed 4KB. For OIDC providers, you must supply a custom mapping that includes the `google.subject` attribute. For example, the following maps the `sub` claim of the incoming credential to the `subject` attribute on a Google token: ``` {\"google.subject\": \"assertion.sub\"} ```", + "description": "Required. Maps attributes from the authentication credentials issued by an external identity provider to Google Cloud attributes, such as `subject` and `segment`. Each key must be a string specifying the Google Cloud IAM attribute to map to. The following keys are supported: * `google.subject`: The principal IAM is authenticating. You can reference this value in IAM bindings. This is also the subject that appears in Cloud Logging logs. This is a required field and the mapped subject cannot exceed 127 bytes. * `google.groups`: Groups the authenticating user belongs to. You can grant groups access to resources using an IAM `principalSet` binding; access applies to all members of the group. * `google.display_name`: The name of the authenticated user. This is an optional field and the mapped display name cannot exceed 100 bytes. If not set, `google.subject` will be displayed instead. This attribute cannot be referenced in IAM bindings. * `google.profile_photo`: The URL that specifies the authenticated user's thumbnail photo. This is an optional field. When set, the image will be visible as the user's profile picture. If not set, a generic user icon will be displayed instead. This attribute cannot be referenced in IAM bindings. * `google.posix_username`: The linux username used by OS login. This is an optional field and the mapped posix username cannot exceed 32 characters, The key must match the regex \"^a-zA-Z0-9._{0,31}$\". This attribute cannot be referenced in IAM bindings. You can also provide custom attributes by specifying `attribute.{custom_attribute}`, where {custom_attribute} is the name of the custom attribute to be mapped. You can define a maximum of 50 custom attributes. The maximum length of a mapped attribute key is 100 characters, and the key may only contain the characters [a-z0-9_]. You can reference these attributes in IAM policies to define fine-grained access for a workforce pool to Google Cloud resources. For example: * `google.subject`: `principal://iam.googleapis.com/locations/global/workforcePools/{pool}/subject/{value}` * `google.groups`: `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool}/group/{value}` * `attribute.{custom_attribute}`: `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool}/attribute.{custom_attribute}/{value}` Each value must be a [Common Expression Language] (https://opensource.google/projects/cel) function that maps an identity provider credential to the normalized attribute specified by the corresponding map key. You can use the `assertion` keyword in the expression to access a JSON representation of the authentication credential issued by the provider. The maximum length of an attribute mapping expression is 2048 characters. When evaluated, the total size of all mapped attributes must not exceed 4KB. For OIDC providers, you must supply a custom mapping that includes the `google.subject` attribute. For example, the following maps the `sub` claim of the incoming credential to the `subject` attribute on a Google token: ``` {\"google.subject\": \"assertion.sub\"} ```", "type": "object" }, "description": { diff --git a/discovery/googleapis/iam__v2.json b/discovery/googleapis/iam__v2.json index 7f2128ccf..235debbf8 100644 --- a/discovery/googleapis/iam__v2.json +++ b/discovery/googleapis/iam__v2.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231026", + "revision": "20240220", "rootUrl": "https://iam.googleapis.com/", "servicePath": "", "title": "Identity and Access Management (IAM) API", @@ -454,7 +454,7 @@ "type": "array" }, "deniedPrincipals": { - "description": "The identities that are prevented from using one or more permissions on Google Cloud resources. This field can contain the following values: * `principalSet://goog/public:all`: A special identifier that represents any principal that is on the internet, even if they do not have a Google Account or are not logged in. * `principal://goog/subject/{email_id}`: A specific Google Account. Includes Gmail, Cloud Identity, and Google Workspace user accounts. For example, `principal://goog/subject/alice@example.com`. * `deleted:principal://goog/subject/{email_id}?uid={uid}`: A specific Google Account that was deleted recently. For example, `deleted:principal://goog/subject/alice@example.com?uid=1234567890`. If the Google Account is recovered, this identifier reverts to the standard identifier for a Google Account. * `principalSet://goog/group/{group_id}`: A Google group. For example, `principalSet://goog/group/admins@example.com`. * `deleted:principalSet://goog/group/{group_id}?uid={uid}`: A Google group that was deleted recently. For example, `deleted:principalSet://goog/group/admins@example.com?uid=1234567890`. If the Google group is restored, this identifier reverts to the standard identifier for a Google group. * `principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}`: A Google Cloud service account. For example, `principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com`. * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}?uid={uid}`: A Google Cloud service account that was deleted recently. For example, `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com?uid=1234567890`. If the service account is undeleted, this identifier reverts to the standard identifier for a service account. * `principalSet://goog/cloudIdentityCustomerId/{customer_id}`: All of the principals associated with the specified Google Workspace or Cloud Identity customer ID. For example, `principalSet://goog/cloudIdentityCustomerId/C01Abc35`.", + "description": "The identities that are prevented from using one or more permissions on Google Cloud resources. This field can contain the following values: * `principal://goog/subject/{email_id}`: A specific Google Account. Includes Gmail, Cloud Identity, and Google Workspace user accounts. For example, `principal://goog/subject/alice@example.com`. * `principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}`: A Google Cloud service account. For example, `principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com`. * `principalSet://goog/group/{group_id}`: A Google group. For example, `principalSet://goog/group/admins@example.com`. * `principalSet://goog/public:all`: A special identifier that represents any principal that is on the internet, even if they do not have a Google Account or are not logged in. * `principalSet://goog/cloudIdentityCustomerId/{customer_id}`: All of the principals associated with the specified Google Workspace or Cloud Identity customer ID. For example, `principalSet://goog/cloudIdentityCustomerId/C01Abc35`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:principal://goog/subject/{email_id}?uid={uid}`: A specific Google Account that was deleted recently. For example, `deleted:principal://goog/subject/alice@example.com?uid=1234567890`. If the Google Account is recovered, this identifier reverts to the standard identifier for a Google Account. * `deleted:principalSet://goog/group/{group_id}?uid={uid}`: A Google group that was deleted recently. For example, `deleted:principalSet://goog/group/admins@example.com?uid=1234567890`. If the Google group is restored, this identifier reverts to the standard identifier for a Google group. * `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/{service_account_id}?uid={uid}`: A Google Cloud service account that was deleted recently. For example, `deleted:principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@iam.gserviceaccount.com?uid=1234567890`. If the service account is undeleted, this identifier reverts to the standard identifier for a service account. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, diff --git a/discovery/googleapis/iamcredentials__v1.json b/discovery/googleapis/iamcredentials__v1.json index df2cb403b..34a6f8614 100644 --- a/discovery/googleapis/iamcredentials__v1.json +++ b/discovery/googleapis/iamcredentials__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231110", + "revision": "20240207", "rootUrl": "https://iamcredentials.googleapis.com/", "servicePath": "", "title": "IAM Service Account Credentials API", diff --git a/discovery/googleapis/iap__v1.json b/discovery/googleapis/iap__v1.json index 5e2035416..dcf2e9753 100644 --- a/discovery/googleapis/iap__v1.json +++ b/discovery/googleapis/iap__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231113", + "revision": "20240220", "rootUrl": "https://iap.googleapis.com/", "servicePath": "", "title": "Cloud Identity-Aware Proxy API", @@ -821,14 +821,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -1190,7 +1190,7 @@ "description": "Properties of the object. Contains field @type with type URL.", "type": "any" }, - "description": "The proto or JSON formatted expected next state of the resource, wrapped in a google.protobuf.Any proto, against which the policy rules are evaluated. Services not integrated with custom org policy can omit this field. Services integrated with custom org policy must populate this field for all requests where the API call changes the state of the resource. Custom org policy backend uses these attributes to enforce custom org policies. When a proto is wrapped, it is generally the One Platform API proto. When a JSON string is wrapped, use `google.protobuf.StringValue` for the inner value. It is sufficient to pass just the max set of attributes that are allowed for use in custom constraints; other attributes can be omitted. See go/custom-constraints-org-policy-integration-guide for additional details.", + "description": "The proto or JSON formatted expected next state of the resource, wrapped in a google.protobuf.Any proto, against which the policy rules are evaluated. Services not integrated with custom org policy can omit this field. Services integrated with custom org policy must populate this field for all requests where the API call changes the state of the resource. Custom org policy backend uses these attributes to enforce custom org policies. When a proto is wrapped, it is generally the One Platform API proto. When a JSON string is wrapped, use `google.protobuf.StringValue` for the inner value. For create operations, GCP service is expected to pass resource from customer request as is. For update/patch operations, GCP service is expected to compute the next state with the patch provided by the user. See go/custom-constraints-org-policy-integration-guide for additional details.", "type": "object" }, "labels": { diff --git a/discovery/googleapis/identitytoolkit__v1.json b/discovery/googleapis/identitytoolkit__v1.json index 3c9f3bc7a..93b887999 100644 --- a/discovery/googleapis/identitytoolkit__v1.json +++ b/discovery/googleapis/identitytoolkit__v1.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231103", + "revision": "20240220", "rootUrl": "https://identitytoolkit.googleapis.com/", "servicePath": "", "title": "Identity Toolkit API", diff --git a/discovery/googleapis/identitytoolkit__v2.json b/discovery/googleapis/identitytoolkit__v2.json index 6d17c4f13..ef7ac8cf8 100644 --- a/discovery/googleapis/identitytoolkit__v2.json +++ b/discovery/googleapis/identitytoolkit__v2.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231103", + "revision": "20240220", "rootUrl": "https://identitytoolkit.googleapis.com/", "servicePath": "", "title": "Identity Toolkit API", @@ -2936,7 +2936,7 @@ "type": "string" }, "startTime": { - "description": "When this quota will take affect", + "description": "When this quota will take effect", "format": "google-datetime", "type": "string" } @@ -3661,14 +3661,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, diff --git a/discovery/googleapis/ids__v1.json b/discovery/googleapis/ids__v1.json index 532d5a40c..8e86e2679 100644 --- a/discovery/googleapis/ids__v1.json +++ b/discovery/googleapis/ids__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231029", + "revision": "20231203", "rootUrl": "https://ids.googleapis.com/", "servicePath": "", "title": "Cloud IDS API", diff --git a/discovery/googleapis/indexing__v3.json b/discovery/googleapis/indexing__v3.json index a1ac58299..1b18b2a21 100644 --- a/discovery/googleapis/indexing__v3.json +++ b/discovery/googleapis/indexing__v3.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231121", + "revision": "20240220", "rootUrl": "https://indexing.googleapis.com/", "servicePath": "", "title": "Web Search Indexing API", diff --git a/discovery/googleapis/jobs__v3.json b/discovery/googleapis/jobs__v3.json index 5f88d0e43..ea82e6444 100644 --- a/discovery/googleapis/jobs__v3.json +++ b/discovery/googleapis/jobs__v3.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231018", + "revision": "20240202", "rootUrl": "https://jobs.googleapis.com/", "servicePath": "", "title": "Cloud Talent Solution API", diff --git a/discovery/googleapis/jobs__v4.json b/discovery/googleapis/jobs__v4.json index 232531040..9c7349a01 100644 --- a/discovery/googleapis/jobs__v4.json +++ b/discovery/googleapis/jobs__v4.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231018", + "revision": "20240202", "rootUrl": "https://jobs.googleapis.com/", "servicePath": "", "title": "Cloud Talent Solution API", diff --git a/discovery/googleapis/keep__v1.json b/discovery/googleapis/keep__v1.json index 0908dacd6..d65bb889a 100644 --- a/discovery/googleapis/keep__v1.json +++ b/discovery/googleapis/keep__v1.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231114", + "revision": "20240220", "rootUrl": "https://keep.googleapis.com/", "servicePath": "", "title": "Google Keep API", diff --git a/discovery/googleapis/kgsearch__v1.json b/discovery/googleapis/kgsearch__v1.json index 2a987c6a6..e19b395e2 100644 --- a/discovery/googleapis/kgsearch__v1.json +++ b/discovery/googleapis/kgsearch__v1.json @@ -15,7 +15,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231112", + "revision": "20240225", "rootUrl": "https://kgsearch.googleapis.com/", "servicePath": "", "title": "Knowledge Graph Search API", diff --git a/discovery/googleapis/kmsinventory__v1.json b/discovery/googleapis/kmsinventory__v1.json index a1a248365..91f29a2cb 100644 --- a/discovery/googleapis/kmsinventory__v1.json +++ b/discovery/googleapis/kmsinventory__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231112", + "revision": "20240225", "rootUrl": "https://kmsinventory.googleapis.com/", "servicePath": "", "title": "KMS Inventory API", diff --git a/discovery/googleapis/language__v1.json b/discovery/googleapis/language__v1.json index cecd94612..b8772f428 100644 --- a/discovery/googleapis/language__v1.json +++ b/discovery/googleapis/language__v1.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231103", + "revision": "20240217", "rootUrl": "https://language.googleapis.com/", "servicePath": "", "title": "Cloud Natural Language API", @@ -560,7 +560,7 @@ "properties": { "classificationModelOptions": { "$ref": "ClassificationModelOptions", - "description": "Model options to use for classification. Defaults to v1 options if not specified." + "description": "Optional. Model options to use for classification. Defaults to v1 options if not specified." }, "document": { "$ref": "Document", @@ -905,7 +905,7 @@ "properties": { "classificationModelOptions": { "$ref": "ClassificationModelOptions", - "description": "The model options to use for classification. Defaults to v1 options if not specified. Only used if `classify_text` is set to true." + "description": "Optional. The model options to use for classification. Defaults to v1 options if not specified. Only used if `classify_text` is set to true." }, "classifyText": { "description": "Classify the full document into categories.", diff --git a/discovery/googleapis/language__v2.json b/discovery/googleapis/language__v2.json index a21d3070e..09e3135d1 100644 --- a/discovery/googleapis/language__v2.json +++ b/discovery/googleapis/language__v2.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231103", + "revision": "20240225", "rootUrl": "https://language.googleapis.com/", "servicePath": "", "title": "Cloud Natural Language API", @@ -340,12 +340,35 @@ "type": "string" }, "features": { - "$ref": "Features", + "$ref": "AnnotateTextRequestFeatures", "description": "Required. The enabled features." } }, "type": "object" }, + "AnnotateTextRequestFeatures": { + "description": "All available features. Setting each one to true will enable that specific analysis for the input.", + "id": "AnnotateTextRequestFeatures", + "properties": { + "classifyText": { + "description": "Optional. Classify the full document into categories.", + "type": "boolean" + }, + "extractDocumentSentiment": { + "description": "Optional. Extract document-level sentiment.", + "type": "boolean" + }, + "extractEntities": { + "description": "Optional. Extract entities.", + "type": "boolean" + }, + "moderateText": { + "description": "Optional. Moderate the document for harmful and sensitive categories.", + "type": "boolean" + } + }, + "type": "object" + }, "AnnotateTextResponse": { "description": "The text annotations response message.", "id": "AnnotateTextResponse", @@ -442,6 +465,450 @@ }, "type": "object" }, + "Color": { + "description": "Represents a color in the RGBA color space. This representation is designed for simplicity of conversion to and from color representations in various languages over compactness. For example, the fields of this representation can be trivially provided to the constructor of `java.awt.Color` in Java; it can also be trivially provided to UIColor's `+colorWithRed:green:blue:alpha` method in iOS; and, with just a little work, it can be easily formatted into a CSS `rgba()` string in JavaScript. This reference page doesn't have information about the absolute color space that should be used to interpret the RGB value—for example, sRGB, Adobe RGB, DCI-P3, and BT.2020. By default, applications should assume the sRGB color space. When color equality needs to be decided, implementations, unless documented otherwise, treat two colors as equal if all their red, green, blue, and alpha values each differ by at most `1e-5`. Example (Java): import com.google.type.Color; // ... public static java.awt.Color fromProto(Color protocolor) { float alpha = protocolor.hasAlpha() ? protocolor.getAlpha().getValue() : 1.0; return new java.awt.Color( protocolor.getRed(), protocolor.getGreen(), protocolor.getBlue(), alpha); } public static Color toProto(java.awt.Color color) { float red = (float) color.getRed(); float green = (float) color.getGreen(); float blue = (float) color.getBlue(); float denominator = 255.0; Color.Builder resultBuilder = Color .newBuilder() .setRed(red / denominator) .setGreen(green / denominator) .setBlue(blue / denominator); int alpha = color.getAlpha(); if (alpha != 255) { result.setAlpha( FloatValue .newBuilder() .setValue(((float) alpha) / denominator) .build()); } return resultBuilder.build(); } // ... Example (iOS / Obj-C): // ... static UIColor* fromProto(Color* protocolor) { float red = [protocolor red]; float green = [protocolor green]; float blue = [protocolor blue]; FloatValue* alpha_wrapper = [protocolor alpha]; float alpha = 1.0; if (alpha_wrapper != nil) { alpha = [alpha_wrapper value]; } return [UIColor colorWithRed:red green:green blue:blue alpha:alpha]; } static Color* toProto(UIColor* color) { CGFloat red, green, blue, alpha; if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) { return nil; } Color* result = [[Color alloc] init]; [result setRed:red]; [result setGreen:green]; [result setBlue:blue]; if (alpha <= 0.9999) { [result setAlpha:floatWrapperWithValue(alpha)]; } [result autorelease]; return result; } // ... Example (JavaScript): // ... var protoToCssColor = function(rgb_color) { var redFrac = rgb_color.red || 0.0; var greenFrac = rgb_color.green || 0.0; var blueFrac = rgb_color.blue || 0.0; var red = Math.floor(redFrac * 255); var green = Math.floor(greenFrac * 255); var blue = Math.floor(blueFrac * 255); if (!('alpha' in rgb_color)) { return rgbToCssColor(red, green, blue); } var alphaFrac = rgb_color.alpha.value || 0.0; var rgbParams = [red, green, blue].join(','); return ['rgba(', rgbParams, ',', alphaFrac, ')'].join(''); }; var rgbToCssColor = function(red, green, blue) { var rgbNumber = new Number((red << 16) | (green << 8) | blue); var hexString = rgbNumber.toString(16); var missingZeros = 6 - hexString.length; var resultBuilder = ['#']; for (var i = 0; i < missingZeros; i++) { resultBuilder.push('0'); } resultBuilder.push(hexString); return resultBuilder.join(''); }; // ...", + "id": "Color", + "properties": { + "alpha": { + "description": "The fraction of this color that should be applied to the pixel. That is, the final pixel color is defined by the equation: `pixel color = alpha * (this color) + (1.0 - alpha) * (background color)` This means that a value of 1.0 corresponds to a solid color, whereas a value of 0.0 corresponds to a completely transparent color. This uses a wrapper message rather than a simple float scalar so that it is possible to distinguish between a default value and the value being unset. If omitted, this color object is rendered as a solid color (as if the alpha value had been explicitly given a value of 1.0).", + "format": "float", + "type": "number" + }, + "blue": { + "description": "The amount of blue in the color as a value in the interval [0, 1].", + "format": "float", + "type": "number" + }, + "green": { + "description": "The amount of green in the color as a value in the interval [0, 1].", + "format": "float", + "type": "number" + }, + "red": { + "description": "The amount of red in the color as a value in the interval [0, 1].", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "CpuMetric": { + "description": "Metric for billing reports.", + "id": "CpuMetric", + "properties": { + "coreNumber": { + "description": "Required. Number of CPU cores.", + "format": "int64", + "type": "string" + }, + "coreSec": { + "description": "Required. Total seconds of core usage, e.g. 4.", + "format": "int64", + "type": "string" + }, + "cpuType": { + "description": "Required. Type of cpu, e.g. N2.", + "enum": [ + "UNKNOWN_CPU_TYPE", + "A2", + "A3", + "C2", + "C2D", + "CUSTOM", + "E2", + "G2", + "C3", + "M2", + "M1", + "N1", + "N2_CUSTOM", + "N2", + "N2D" + ], + "enumDescriptions": [ + "", + "GPU-based machine, skip quota reporting.", + "GPU-based machine, skip quota reporting.", + "COMPUTE_OPTIMIZED", + "", + "", + "", + "GPU-based machine, skip quota reporting.", + "", + "MEMORY_OPTIMIZED_UPGRADE_PREMIUM", + "MEMORY_OPTIMIZED", + "", + "", + "", + "" + ], + "type": "string" + }, + "machineSpec": { + "description": "Required. Machine spec, e.g. N1_STANDARD_4.", + "enum": [ + "UNKNOWN_MACHINE_SPEC", + "N1_STANDARD_2", + "N1_STANDARD_4", + "N1_STANDARD_8", + "N1_STANDARD_16", + "N1_STANDARD_32", + "N1_STANDARD_64", + "N1_STANDARD_96", + "N1_HIGHMEM_2", + "N1_HIGHMEM_4", + "N1_HIGHMEM_8", + "N1_HIGHMEM_16", + "N1_HIGHMEM_32", + "N1_HIGHMEM_64", + "N1_HIGHMEM_96", + "N1_HIGHCPU_2", + "N1_HIGHCPU_4", + "N1_HIGHCPU_8", + "N1_HIGHCPU_16", + "N1_HIGHCPU_32", + "N1_HIGHCPU_64", + "N1_HIGHCPU_96", + "A2_HIGHGPU_1G", + "A2_HIGHGPU_2G", + "A2_HIGHGPU_4G", + "A2_HIGHGPU_8G", + "A2_MEGAGPU_16G", + "A2_ULTRAGPU_1G", + "A2_ULTRAGPU_2G", + "A2_ULTRAGPU_4G", + "A2_ULTRAGPU_8G", + "A3_HIGHGPU_8G", + "E2_STANDARD_2", + "E2_STANDARD_4", + "E2_STANDARD_8", + "E2_STANDARD_16", + "E2_STANDARD_32", + "E2_HIGHMEM_2", + "E2_HIGHMEM_4", + "E2_HIGHMEM_8", + "E2_HIGHMEM_16", + "E2_HIGHCPU_2", + "E2_HIGHCPU_4", + "E2_HIGHCPU_8", + "E2_HIGHCPU_16", + "E2_HIGHCPU_32", + "N2_STANDARD_2", + "N2_STANDARD_4", + "N2_STANDARD_8", + "N2_STANDARD_16", + "N2_STANDARD_32", + "N2_STANDARD_48", + "N2_STANDARD_64", + "N2_STANDARD_80", + "N2_STANDARD_96", + "N2_STANDARD_128", + "N2_HIGHMEM_2", + "N2_HIGHMEM_4", + "N2_HIGHMEM_8", + "N2_HIGHMEM_16", + "N2_HIGHMEM_32", + "N2_HIGHMEM_48", + "N2_HIGHMEM_64", + "N2_HIGHMEM_80", + "N2_HIGHMEM_96", + "N2_HIGHMEM_128", + "N2_HIGHCPU_2", + "N2_HIGHCPU_4", + "N2_HIGHCPU_8", + "N2_HIGHCPU_16", + "N2_HIGHCPU_32", + "N2_HIGHCPU_48", + "N2_HIGHCPU_64", + "N2_HIGHCPU_80", + "N2_HIGHCPU_96", + "N2D_STANDARD_2", + "N2D_STANDARD_4", + "N2D_STANDARD_8", + "N2D_STANDARD_16", + "N2D_STANDARD_32", + "N2D_STANDARD_48", + "N2D_STANDARD_64", + "N2D_STANDARD_80", + "N2D_STANDARD_96", + "N2D_STANDARD_128", + "N2D_STANDARD_224", + "N2D_HIGHMEM_2", + "N2D_HIGHMEM_4", + "N2D_HIGHMEM_8", + "N2D_HIGHMEM_16", + "N2D_HIGHMEM_32", + "N2D_HIGHMEM_48", + "N2D_HIGHMEM_64", + "N2D_HIGHMEM_80", + "N2D_HIGHMEM_96", + "N2D_HIGHCPU_2", + "N2D_HIGHCPU_4", + "N2D_HIGHCPU_8", + "N2D_HIGHCPU_16", + "N2D_HIGHCPU_32", + "N2D_HIGHCPU_48", + "N2D_HIGHCPU_64", + "N2D_HIGHCPU_80", + "N2D_HIGHCPU_96", + "N2D_HIGHCPU_128", + "N2D_HIGHCPU_224", + "C2_STANDARD_4", + "C2_STANDARD_8", + "C2_STANDARD_16", + "C2_STANDARD_30", + "C2_STANDARD_60", + "C2D_STANDARD_2", + "C2D_STANDARD_4", + "C2D_STANDARD_8", + "C2D_STANDARD_16", + "C2D_STANDARD_32", + "C2D_STANDARD_56", + "C2D_STANDARD_112", + "C2D_HIGHCPU_2", + "C2D_HIGHCPU_4", + "C2D_HIGHCPU_8", + "C2D_HIGHCPU_16", + "C2D_HIGHCPU_32", + "C2D_HIGHCPU_56", + "C2D_HIGHCPU_112", + "C2D_HIGHMEM_2", + "C2D_HIGHMEM_4", + "C2D_HIGHMEM_8", + "C2D_HIGHMEM_16", + "C2D_HIGHMEM_32", + "C2D_HIGHMEM_56", + "C2D_HIGHMEM_112", + "G2_STANDARD_4", + "G2_STANDARD_8", + "G2_STANDARD_12", + "G2_STANDARD_16", + "G2_STANDARD_24", + "G2_STANDARD_32", + "G2_STANDARD_48", + "G2_STANDARD_96", + "C3_STANDARD_4", + "C3_STANDARD_8", + "C3_STANDARD_22", + "C3_STANDARD_44", + "C3_STANDARD_88", + "C3_STANDARD_176", + "C3_HIGHCPU_4", + "C3_HIGHCPU_8", + "C3_HIGHCPU_22", + "C3_HIGHCPU_44", + "C3_HIGHCPU_88", + "C3_HIGHCPU_176", + "C3_HIGHMEM_4", + "C3_HIGHMEM_8", + "C3_HIGHMEM_22", + "C3_HIGHMEM_44", + "C3_HIGHMEM_88", + "C3_HIGHMEM_176" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "trackingLabels": { + "additionalProperties": { + "type": "string" + }, + "description": "Billing tracking labels. They do not contain any user data but only the labels set by Vertex Core Infra itself. Tracking labels' keys are defined with special format: goog-[\\p{Ll}\\p{N}]+ E.g. \"key\": \"goog-k8s-cluster-name\",\"value\": \"us-east1-b4rk\"", + "type": "object" + } + }, + "type": "object" + }, + "DiskMetric": { + "id": "DiskMetric", + "properties": { + "diskType": { + "description": "Required. Type of Disk, e.g. REGIONAL_SSD.", + "enum": [ + "UNKNOWN_DISK_TYPE", + "REGIONAL_SSD", + "REGIONAL_STORAGE", + "PD_SSD", + "PD_STANDARD", + "STORAGE_SNAPSHOT" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "gibSec": { + "description": "Required. Seconds of physical disk usage, e.g. 3600.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "Document": { "description": "Represents the input to API methods.", "id": "Document", @@ -572,25 +1039,414 @@ }, "type": "object" }, - "Features": { - "description": "All available features. Setting each one to true will enable that specific analysis for the input.", - "id": "Features", + "GpuMetric": { + "id": "GpuMetric", "properties": { - "classifyText": { - "description": "Optional. Classify the full document into categories.", - "type": "boolean" + "gpuSec": { + "description": "Required. Seconds of GPU usage, e.g. 3600.", + "format": "int64", + "type": "string" }, - "extractDocumentSentiment": { - "description": "Optional. Extract document-level sentiment.", - "type": "boolean" + "gpuType": { + "description": "Required. Type of GPU, e.g. NVIDIA_TESLA_V100.", + "enum": [ + "UNKNOWN_GPU_TYPE", + "NVIDIA_TESLA_A100", + "NVIDIA_A100_80GB", + "NVIDIA_TESLA_K80", + "NVIDIA_L4", + "NVIDIA_TESLA_P100", + "NVIDIA_TESLA_P4", + "NVIDIA_TESLA_T4", + "NVIDIA_TESLA_V100", + "NVIDIA_H100_80GB" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" }, - "extractEntities": { - "description": "Optional. Extract entities.", - "type": "boolean" + "machineSpec": { + "description": "Required. Machine spec, e.g. N1_STANDARD_4.", + "enum": [ + "UNKNOWN_MACHINE_SPEC", + "N1_STANDARD_2", + "N1_STANDARD_4", + "N1_STANDARD_8", + "N1_STANDARD_16", + "N1_STANDARD_32", + "N1_STANDARD_64", + "N1_STANDARD_96", + "N1_HIGHMEM_2", + "N1_HIGHMEM_4", + "N1_HIGHMEM_8", + "N1_HIGHMEM_16", + "N1_HIGHMEM_32", + "N1_HIGHMEM_64", + "N1_HIGHMEM_96", + "N1_HIGHCPU_2", + "N1_HIGHCPU_4", + "N1_HIGHCPU_8", + "N1_HIGHCPU_16", + "N1_HIGHCPU_32", + "N1_HIGHCPU_64", + "N1_HIGHCPU_96", + "A2_HIGHGPU_1G", + "A2_HIGHGPU_2G", + "A2_HIGHGPU_4G", + "A2_HIGHGPU_8G", + "A2_MEGAGPU_16G", + "A2_ULTRAGPU_1G", + "A2_ULTRAGPU_2G", + "A2_ULTRAGPU_4G", + "A2_ULTRAGPU_8G", + "A3_HIGHGPU_8G", + "E2_STANDARD_2", + "E2_STANDARD_4", + "E2_STANDARD_8", + "E2_STANDARD_16", + "E2_STANDARD_32", + "E2_HIGHMEM_2", + "E2_HIGHMEM_4", + "E2_HIGHMEM_8", + "E2_HIGHMEM_16", + "E2_HIGHCPU_2", + "E2_HIGHCPU_4", + "E2_HIGHCPU_8", + "E2_HIGHCPU_16", + "E2_HIGHCPU_32", + "N2_STANDARD_2", + "N2_STANDARD_4", + "N2_STANDARD_8", + "N2_STANDARD_16", + "N2_STANDARD_32", + "N2_STANDARD_48", + "N2_STANDARD_64", + "N2_STANDARD_80", + "N2_STANDARD_96", + "N2_STANDARD_128", + "N2_HIGHMEM_2", + "N2_HIGHMEM_4", + "N2_HIGHMEM_8", + "N2_HIGHMEM_16", + "N2_HIGHMEM_32", + "N2_HIGHMEM_48", + "N2_HIGHMEM_64", + "N2_HIGHMEM_80", + "N2_HIGHMEM_96", + "N2_HIGHMEM_128", + "N2_HIGHCPU_2", + "N2_HIGHCPU_4", + "N2_HIGHCPU_8", + "N2_HIGHCPU_16", + "N2_HIGHCPU_32", + "N2_HIGHCPU_48", + "N2_HIGHCPU_64", + "N2_HIGHCPU_80", + "N2_HIGHCPU_96", + "N2D_STANDARD_2", + "N2D_STANDARD_4", + "N2D_STANDARD_8", + "N2D_STANDARD_16", + "N2D_STANDARD_32", + "N2D_STANDARD_48", + "N2D_STANDARD_64", + "N2D_STANDARD_80", + "N2D_STANDARD_96", + "N2D_STANDARD_128", + "N2D_STANDARD_224", + "N2D_HIGHMEM_2", + "N2D_HIGHMEM_4", + "N2D_HIGHMEM_8", + "N2D_HIGHMEM_16", + "N2D_HIGHMEM_32", + "N2D_HIGHMEM_48", + "N2D_HIGHMEM_64", + "N2D_HIGHMEM_80", + "N2D_HIGHMEM_96", + "N2D_HIGHCPU_2", + "N2D_HIGHCPU_4", + "N2D_HIGHCPU_8", + "N2D_HIGHCPU_16", + "N2D_HIGHCPU_32", + "N2D_HIGHCPU_48", + "N2D_HIGHCPU_64", + "N2D_HIGHCPU_80", + "N2D_HIGHCPU_96", + "N2D_HIGHCPU_128", + "N2D_HIGHCPU_224", + "C2_STANDARD_4", + "C2_STANDARD_8", + "C2_STANDARD_16", + "C2_STANDARD_30", + "C2_STANDARD_60", + "C2D_STANDARD_2", + "C2D_STANDARD_4", + "C2D_STANDARD_8", + "C2D_STANDARD_16", + "C2D_STANDARD_32", + "C2D_STANDARD_56", + "C2D_STANDARD_112", + "C2D_HIGHCPU_2", + "C2D_HIGHCPU_4", + "C2D_HIGHCPU_8", + "C2D_HIGHCPU_16", + "C2D_HIGHCPU_32", + "C2D_HIGHCPU_56", + "C2D_HIGHCPU_112", + "C2D_HIGHMEM_2", + "C2D_HIGHMEM_4", + "C2D_HIGHMEM_8", + "C2D_HIGHMEM_16", + "C2D_HIGHMEM_32", + "C2D_HIGHMEM_56", + "C2D_HIGHMEM_112", + "G2_STANDARD_4", + "G2_STANDARD_8", + "G2_STANDARD_12", + "G2_STANDARD_16", + "G2_STANDARD_24", + "G2_STANDARD_32", + "G2_STANDARD_48", + "G2_STANDARD_96", + "C3_STANDARD_4", + "C3_STANDARD_8", + "C3_STANDARD_22", + "C3_STANDARD_44", + "C3_STANDARD_88", + "C3_STANDARD_176", + "C3_HIGHCPU_4", + "C3_HIGHCPU_8", + "C3_HIGHCPU_22", + "C3_HIGHCPU_44", + "C3_HIGHCPU_88", + "C3_HIGHCPU_176", + "C3_HIGHMEM_4", + "C3_HIGHMEM_8", + "C3_HIGHMEM_22", + "C3_HIGHMEM_44", + "C3_HIGHMEM_88", + "C3_HIGHMEM_176" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" }, - "moderateText": { - "description": "Optional. Moderate the document for harmful and sensitive categories.", - "type": "boolean" + "trackingLabels": { + "additionalProperties": { + "type": "string" + }, + "description": "Billing tracking labels. They do not contain any user data but only the labels set by Vertex Core Infra itself. Tracking labels' keys are defined with special format: goog-[\\p{Ll}\\p{N}]+ E.g. \"key\": \"goog-k8s-cluster-name\",\"value\": \"us-east1-b4rk\"", + "type": "object" + } + }, + "type": "object" + }, + "InfraUsage": { + "description": "Infra Usage of billing metrics. Next ID: 6", + "id": "InfraUsage", + "properties": { + "cpuMetrics": { + "description": "Aggregated core metrics since requested start_time.", + "items": { + "$ref": "CpuMetric" + }, + "type": "array" + }, + "diskMetrics": { + "description": "Aggregated persistent disk metrics since requested start_time.", + "items": { + "$ref": "DiskMetric" + }, + "type": "array" + }, + "gpuMetrics": { + "description": "Aggregated gpu metrics since requested start_time.", + "items": { + "$ref": "GpuMetric" + }, + "type": "array" + }, + "ramMetrics": { + "description": "Aggregated ram metrics since requested start_time.", + "items": { + "$ref": "RamMetric" + }, + "type": "array" + }, + "tpuMetrics": { + "description": "Aggregated tpu metrics since requested start_time.", + "items": { + "$ref": "TpuMetric" + }, + "type": "array" } }, "type": "object" @@ -628,6 +1484,391 @@ }, "type": "object" }, + "RamMetric": { + "id": "RamMetric", + "properties": { + "gibSec": { + "description": "Required. VM memory in Gigabyte second, e.g. 3600. Using int64 type to match billing metrics definition.", + "format": "int64", + "type": "string" + }, + "machineSpec": { + "description": "Required. Machine spec, e.g. N1_STANDARD_4.", + "enum": [ + "UNKNOWN_MACHINE_SPEC", + "N1_STANDARD_2", + "N1_STANDARD_4", + "N1_STANDARD_8", + "N1_STANDARD_16", + "N1_STANDARD_32", + "N1_STANDARD_64", + "N1_STANDARD_96", + "N1_HIGHMEM_2", + "N1_HIGHMEM_4", + "N1_HIGHMEM_8", + "N1_HIGHMEM_16", + "N1_HIGHMEM_32", + "N1_HIGHMEM_64", + "N1_HIGHMEM_96", + "N1_HIGHCPU_2", + "N1_HIGHCPU_4", + "N1_HIGHCPU_8", + "N1_HIGHCPU_16", + "N1_HIGHCPU_32", + "N1_HIGHCPU_64", + "N1_HIGHCPU_96", + "A2_HIGHGPU_1G", + "A2_HIGHGPU_2G", + "A2_HIGHGPU_4G", + "A2_HIGHGPU_8G", + "A2_MEGAGPU_16G", + "A2_ULTRAGPU_1G", + "A2_ULTRAGPU_2G", + "A2_ULTRAGPU_4G", + "A2_ULTRAGPU_8G", + "A3_HIGHGPU_8G", + "E2_STANDARD_2", + "E2_STANDARD_4", + "E2_STANDARD_8", + "E2_STANDARD_16", + "E2_STANDARD_32", + "E2_HIGHMEM_2", + "E2_HIGHMEM_4", + "E2_HIGHMEM_8", + "E2_HIGHMEM_16", + "E2_HIGHCPU_2", + "E2_HIGHCPU_4", + "E2_HIGHCPU_8", + "E2_HIGHCPU_16", + "E2_HIGHCPU_32", + "N2_STANDARD_2", + "N2_STANDARD_4", + "N2_STANDARD_8", + "N2_STANDARD_16", + "N2_STANDARD_32", + "N2_STANDARD_48", + "N2_STANDARD_64", + "N2_STANDARD_80", + "N2_STANDARD_96", + "N2_STANDARD_128", + "N2_HIGHMEM_2", + "N2_HIGHMEM_4", + "N2_HIGHMEM_8", + "N2_HIGHMEM_16", + "N2_HIGHMEM_32", + "N2_HIGHMEM_48", + "N2_HIGHMEM_64", + "N2_HIGHMEM_80", + "N2_HIGHMEM_96", + "N2_HIGHMEM_128", + "N2_HIGHCPU_2", + "N2_HIGHCPU_4", + "N2_HIGHCPU_8", + "N2_HIGHCPU_16", + "N2_HIGHCPU_32", + "N2_HIGHCPU_48", + "N2_HIGHCPU_64", + "N2_HIGHCPU_80", + "N2_HIGHCPU_96", + "N2D_STANDARD_2", + "N2D_STANDARD_4", + "N2D_STANDARD_8", + "N2D_STANDARD_16", + "N2D_STANDARD_32", + "N2D_STANDARD_48", + "N2D_STANDARD_64", + "N2D_STANDARD_80", + "N2D_STANDARD_96", + "N2D_STANDARD_128", + "N2D_STANDARD_224", + "N2D_HIGHMEM_2", + "N2D_HIGHMEM_4", + "N2D_HIGHMEM_8", + "N2D_HIGHMEM_16", + "N2D_HIGHMEM_32", + "N2D_HIGHMEM_48", + "N2D_HIGHMEM_64", + "N2D_HIGHMEM_80", + "N2D_HIGHMEM_96", + "N2D_HIGHCPU_2", + "N2D_HIGHCPU_4", + "N2D_HIGHCPU_8", + "N2D_HIGHCPU_16", + "N2D_HIGHCPU_32", + "N2D_HIGHCPU_48", + "N2D_HIGHCPU_64", + "N2D_HIGHCPU_80", + "N2D_HIGHCPU_96", + "N2D_HIGHCPU_128", + "N2D_HIGHCPU_224", + "C2_STANDARD_4", + "C2_STANDARD_8", + "C2_STANDARD_16", + "C2_STANDARD_30", + "C2_STANDARD_60", + "C2D_STANDARD_2", + "C2D_STANDARD_4", + "C2D_STANDARD_8", + "C2D_STANDARD_16", + "C2D_STANDARD_32", + "C2D_STANDARD_56", + "C2D_STANDARD_112", + "C2D_HIGHCPU_2", + "C2D_HIGHCPU_4", + "C2D_HIGHCPU_8", + "C2D_HIGHCPU_16", + "C2D_HIGHCPU_32", + "C2D_HIGHCPU_56", + "C2D_HIGHCPU_112", + "C2D_HIGHMEM_2", + "C2D_HIGHMEM_4", + "C2D_HIGHMEM_8", + "C2D_HIGHMEM_16", + "C2D_HIGHMEM_32", + "C2D_HIGHMEM_56", + "C2D_HIGHMEM_112", + "G2_STANDARD_4", + "G2_STANDARD_8", + "G2_STANDARD_12", + "G2_STANDARD_16", + "G2_STANDARD_24", + "G2_STANDARD_32", + "G2_STANDARD_48", + "G2_STANDARD_96", + "C3_STANDARD_4", + "C3_STANDARD_8", + "C3_STANDARD_22", + "C3_STANDARD_44", + "C3_STANDARD_88", + "C3_STANDARD_176", + "C3_HIGHCPU_4", + "C3_HIGHCPU_8", + "C3_HIGHCPU_22", + "C3_HIGHCPU_44", + "C3_HIGHCPU_88", + "C3_HIGHCPU_176", + "C3_HIGHMEM_4", + "C3_HIGHMEM_8", + "C3_HIGHMEM_22", + "C3_HIGHMEM_44", + "C3_HIGHMEM_88", + "C3_HIGHMEM_176" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "memories": { + "description": "Required. VM memory in gb.", + "format": "double", + "type": "number" + }, + "ramType": { + "description": "Required. Type of ram.", + "enum": [ + "UNKNOWN_RAM_TYPE", + "A2", + "A3", + "C2", + "C2D", + "CUSTOM", + "E2", + "G2", + "C3", + "M2", + "M1", + "N1", + "N2_CUSTOM", + "N2", + "N2D" + ], + "enumDescriptions": [ + "", + "", + "", + "COMPUTE_OPTIMIZED", + "", + "", + "", + "", + "", + "MEMORY_OPTIMIZED_UPGRADE_PREMIUM", + "MEMORY_OPTIMIZED", + "", + "", + "", + "" + ], + "type": "string" + }, + "trackingLabels": { + "additionalProperties": { + "type": "string" + }, + "description": "Billing tracking labels. They do not contain any user data but only the labels set by Vertex Core Infra itself. Tracking labels' keys are defined with special format: goog-[\\p{Ll}\\p{N}]+ E.g. \"key\": \"goog-k8s-cluster-name\",\"value\": \"us-east1-b4rk\"", + "type": "object" + } + }, + "type": "object" + }, "Sentence": { "description": "Represents a sentence in the input document.", "id": "Sentence", @@ -702,6 +1943,3080 @@ } }, "type": "object" + }, + "TpuMetric": { + "id": "TpuMetric", + "properties": { + "tpuSec": { + "description": "Required. Seconds of TPU usage, e.g. 3600.", + "format": "int64", + "type": "string" + }, + "tpuType": { + "description": "Required. Type of TPU, e.g. TPU_V2, TPU_V3_POD.", + "enum": [ + "UNKNOWN_TPU_TYPE", + "TPU_V2_POD", + "TPU_V2", + "TPU_V3_POD", + "TPU_V3", + "TPU_V5_LITEPOD" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "XPSArrayStats": { + "description": "The data statistics of a series of ARRAY values.", + "id": "XPSArrayStats", + "properties": { + "commonStats": { + "$ref": "XPSCommonStats" + }, + "memberStats": { + "$ref": "XPSDataStats", + "description": "Stats of all the values of all arrays, as if they were a single long series of data. The type depends on the element type of the array." + } + }, + "type": "object" + }, + "XPSBatchPredictResponse": { + "id": "XPSBatchPredictResponse", + "properties": { + "exampleSet": { + "$ref": "XPSExampleSet", + "description": "Examples for batch prediction result. Under full API implementation, results are stored in shared RecordIO of AnnotatedExample protobufs, the annotations field of which is populated by XPS backend." + } + }, + "type": "object" + }, + "XPSBoundingBoxMetricsEntry": { + "description": "Bounding box matching model metrics for a single intersection-over-union threshold and multiple label match confidence thresholds.", + "id": "XPSBoundingBoxMetricsEntry", + "properties": { + "confidenceMetricsEntries": { + "description": "Metrics for each label-match confidence_threshold from 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99.", + "items": { + "$ref": "XPSBoundingBoxMetricsEntryConfidenceMetricsEntry" + }, + "type": "array" + }, + "iouThreshold": { + "description": "The intersection-over-union threshold value used to compute this metrics entry.", + "format": "float", + "type": "number" + }, + "meanAveragePrecision": { + "description": "The mean average precision.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "XPSBoundingBoxMetricsEntryConfidenceMetricsEntry": { + "description": "Metrics for a single confidence threshold.", + "id": "XPSBoundingBoxMetricsEntryConfidenceMetricsEntry", + "properties": { + "confidenceThreshold": { + "description": "The confidence threshold value used to compute the metrics.", + "format": "float", + "type": "number" + }, + "f1Score": { + "description": "The harmonic mean of recall and precision.", + "format": "float", + "type": "number" + }, + "precision": { + "description": "Precision for the given confidence threshold.", + "format": "float", + "type": "number" + }, + "recall": { + "description": "Recall for the given confidence threshold.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "XPSCategoryStats": { + "description": "The data statistics of a series of CATEGORY values.", + "id": "XPSCategoryStats", + "properties": { + "commonStats": { + "$ref": "XPSCommonStats" + }, + "topCategoryStats": { + "description": "The statistics of the top 20 CATEGORY values, ordered by CategoryStats.SingleCategoryStats.count.", + "items": { + "$ref": "XPSCategoryStatsSingleCategoryStats" + }, + "type": "array" + } + }, + "type": "object" + }, + "XPSCategoryStatsSingleCategoryStats": { + "description": "The statistics of a single CATEGORY value.", + "id": "XPSCategoryStatsSingleCategoryStats", + "properties": { + "count": { + "description": "The number of occurrences of this value in the series.", + "format": "int64", + "type": "string" + }, + "value": { + "description": "The CATEGORY value.", + "type": "string" + } + }, + "type": "object" + }, + "XPSClassificationEvaluationMetrics": { + "description": "Model evaluation metrics for classification problems. It can be used for image and video classification. Next tag: 9.", + "id": "XPSClassificationEvaluationMetrics", + "properties": { + "auPrc": { + "description": "The Area under precision recall curve metric.", + "format": "float", + "type": "number" + }, + "auRoc": { + "description": "The Area Under Receiver Operating Characteristic curve metric. Micro-averaged for the overall evaluation.", + "format": "float", + "type": "number" + }, + "baseAuPrc": { + "description": "The Area under precision recall curve metric based on priors.", + "format": "float", + "type": "number" + }, + "confidenceMetricsEntries": { + "description": "Metrics that have confidence thresholds. Precision-recall curve can be derived from it.", + "items": { + "$ref": "XPSConfidenceMetricsEntry" + }, + "type": "array" + }, + "confusionMatrix": { + "$ref": "XPSConfusionMatrix", + "description": "Confusion matrix of the evaluation. Only set for MULTICLASS classification problems where number of annotation specs is no more than 10. Only set for model level evaluation, not for evaluation per label." + }, + "evaluatedExamplesCount": { + "description": "The number of examples used for model evaluation.", + "format": "int32", + "type": "integer" + }, + "logLoss": { + "description": "The Log Loss metric.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "XPSColorMap": { + "description": "Map from color to display name. Will only be used by Image Segmentation for uCAIP.", + "id": "XPSColorMap", + "properties": { + "annotationSpecIdToken": { + "description": "Should be used during training.", + "type": "string" + }, + "color": { + "$ref": "Color", + "deprecated": true, + "description": "This type is deprecated in favor of the IntColor below. This is because google.type.Color represent color has a float which semantically does not reflect discrete classes/categories concept. Moreover, to handle it well we need to have some tolerance when converting to a discretized color. As such, the recommendation is to have API surface still use google.type.Color while internally IntColor is used." + }, + "displayName": { + "description": "Should be used during preprocessing.", + "type": "string" + }, + "intColor": { + "$ref": "XPSColorMapIntColor" + } + }, + "type": "object" + }, + "XPSColorMapIntColor": { + "description": "RGB color and each channel is represented by an integer.", + "id": "XPSColorMapIntColor", + "properties": { + "blue": { + "description": "The value should be in range of [0, 255].", + "format": "int32", + "type": "integer" + }, + "green": { + "description": "The value should be in range of [0, 255].", + "format": "int32", + "type": "integer" + }, + "red": { + "description": "The value should be in range of [0, 255].", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "XPSColumnSpec": { + "id": "XPSColumnSpec", + "properties": { + "columnId": { + "description": "The unique id of the column. When Preprocess, the Tables BE will popuate the order id of the column, which reflects the order of the column inside the table, i.e. 0 means the first column in the table, N-1 means the last column. AutoML BE will persist this order id in Spanner and set the order id here when calling RefreshTablesStats and Train. Note: it's different than the column_spec_id that is generated in AutoML BE.", + "format": "int32", + "type": "integer" + }, + "dataStats": { + "$ref": "XPSDataStats", + "description": "The data stats of the column. It's outputed in RefreshTablesStats and a required input for Train." + }, + "dataType": { + "$ref": "XPSDataType", + "description": "The data type of the column. It's outputed in Preprocess rpc and a required input for RefreshTablesStats and Train." + }, + "displayName": { + "description": "The display name of the column. It's outputed in Preprocess and a required input for RefreshTablesStats and Train.", + "type": "string" + }, + "forecastingMetadata": { + "$ref": "XPSColumnSpecForecastingMetadata" + }, + "topCorrelatedColumns": { + "description": "It's outputed in RefreshTablesStats, and a required input in Train.", + "items": { + "$ref": "XPSColumnSpecCorrelatedColumn" + }, + "type": "array" + } + }, + "type": "object" + }, + "XPSColumnSpecCorrelatedColumn": { + "description": "Identifies a table's column, and its correlation with the column this ColumnSpec describes.", + "id": "XPSColumnSpecCorrelatedColumn", + "properties": { + "columnId": { + "format": "int32", + "type": "integer" + }, + "correlationStats": { + "$ref": "XPSCorrelationStats" + } + }, + "type": "object" + }, + "XPSColumnSpecForecastingMetadata": { + "description": "=========================================================================== # The fields below are used exclusively for Forecasting.", + "id": "XPSColumnSpecForecastingMetadata", + "properties": { + "columnType": { + "description": "The type of the column for FORECASTING model training purposes.", + "enum": [ + "COLUMN_TYPE_UNSPECIFIED", + "KEY", + "KEY_METADATA", + "TIME_SERIES_AVAILABLE_PAST_ONLY", + "TIME_SERIES_AVAILABLE_PAST_AND_FUTURE" + ], + "enumDescriptions": [ + "An un-set value of this enum.", + "Key columns are used to identify timeseries.", + "This column contains information describing static properties of the entities identified by the key column(s) (e.g. city's ZIP code).", + "This column contains information for the given entity, at any time poinrt, they are only available in the time series before.", + "This column contains information for the given entity is known both for the past and the sufficiently far future." + ], + "type": "string" + } + }, + "type": "object" + }, + "XPSCommonStats": { + "description": "Common statistics for a column with a specified data type.", + "id": "XPSCommonStats", + "properties": { + "distinctValueCount": { + "format": "int64", + "type": "string" + }, + "nullValueCount": { + "format": "int64", + "type": "string" + }, + "validValueCount": { + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "XPSConfidenceMetricsEntry": { + "description": "ConfidenceMetricsEntry includes generic precision, recall, f1 score etc. Next tag: 16.", + "id": "XPSConfidenceMetricsEntry", + "properties": { + "confidenceThreshold": { + "description": "Metrics are computed with an assumption that the model never return predictions with score lower than this value.", + "format": "float", + "type": "number" + }, + "f1Score": { + "description": "The harmonic mean of recall and precision.", + "format": "float", + "type": "number" + }, + "f1ScoreAt1": { + "description": "The harmonic mean of recall_at1 and precision_at1.", + "format": "float", + "type": "number" + }, + "falseNegativeCount": { + "description": "The number of ground truth labels that are not matched by a model created label.", + "format": "int64", + "type": "string" + }, + "falsePositiveCount": { + "description": "The number of model created labels that do not match a ground truth label.", + "format": "int64", + "type": "string" + }, + "falsePositiveRate": { + "description": "False Positive Rate for the given confidence threshold.", + "format": "float", + "type": "number" + }, + "falsePositiveRateAt1": { + "description": "The False Positive Rate when only considering the label that has the highest prediction score and not below the confidence threshold for each example.", + "format": "float", + "type": "number" + }, + "positionThreshold": { + "description": "Metrics are computed with an assumption that the model always returns at most this many predictions (ordered by their score, descendingly), but they all still need to meet the confidence_threshold.", + "format": "int32", + "type": "integer" + }, + "precision": { + "description": "Precision for the given confidence threshold.", + "format": "float", + "type": "number" + }, + "precisionAt1": { + "description": "The precision when only considering the label that has the highest prediction score and not below the confidence threshold for each example.", + "format": "float", + "type": "number" + }, + "recall": { + "description": "Recall (true positive rate) for the given confidence threshold.", + "format": "float", + "type": "number" + }, + "recallAt1": { + "description": "The recall (true positive rate) when only considering the label that has the highest prediction score and not below the confidence threshold for each example.", + "format": "float", + "type": "number" + }, + "trueNegativeCount": { + "description": "The number of labels that were not created by the model, but if they would, they would not match a ground truth label.", + "format": "int64", + "type": "string" + }, + "truePositiveCount": { + "description": "The number of model created labels that match a ground truth label.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "XPSConfusionMatrix": { + "description": "Confusion matrix of the model running the classification.", + "id": "XPSConfusionMatrix", + "properties": { + "annotationSpecIdToken": { + "description": "For the following three repeated fields, only one is intended to be set. annotation_spec_id_token is preferable to be set. ID tokens of the annotation specs used in the confusion matrix.", + "items": { + "type": "string" + }, + "type": "array" + }, + "category": { + "description": "Category (mainly for segmentation). Set only for image segmentation models. Note: uCAIP Image Segmentation should use annotation_spec_id_token.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "row": { + "description": "Rows in the confusion matrix. The number of rows is equal to the size of `annotation_spec_id_token`. `row[i].value[j]` is the number of examples that have ground truth of the `annotation_spec_id_token[i]` and are predicted as `annotation_spec_id_token[j]` by the model being evaluated.", + "items": { + "$ref": "XPSConfusionMatrixRow" + }, + "type": "array" + }, + "sentimentLabel": { + "description": "Sentiment labels used in the confusion matrix. Set only for text sentiment models. For AutoML Text Revamp, use `annotation_spec_id_token` instead and leave this field empty.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + } + }, + "type": "object" + }, + "XPSConfusionMatrixRow": { + "description": "A row in the confusion matrix.", + "id": "XPSConfusionMatrixRow", + "properties": { + "count": { + "description": "Same as above except intended to represent other counts (for e.g. for segmentation this is pixel count). NOTE(params): Only example_count or count is set (oneoff does not support repeated fields unless they are embedded inside another message).", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "exampleCount": { + "description": "Value of the specific cell in the confusion matrix. The number of values each row has (i.e. the length of the row) is equal to the length of the annotation_spec_id_token field.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + } + }, + "type": "object" + }, + "XPSCoreMlFormat": { + "description": "A model format used for iOS mobile devices.", + "id": "XPSCoreMlFormat", + "properties": {}, + "type": "object" + }, + "XPSCorrelationStats": { + "description": "A correlation statistics between two series of DataType values. The series may have differing DataType-s, but within a single series the DataType must be the same.", + "id": "XPSCorrelationStats", + "properties": { + "cramersV": { + "description": "The correlation value using the Cramer's V measure.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "XPSDataErrors": { + "description": "Different types of errors and the stats associatesd with each error.", + "id": "XPSDataErrors", + "properties": { + "count": { + "description": "Number of records having errors associated with the enum.", + "format": "int32", + "type": "integer" + }, + "errorType": { + "description": "Type of the error.", + "enum": [ + "ERROR_TYPE_UNSPECIFIED", + "UNSUPPORTED_AUDIO_FORMAT", + "FILE_EXTENSION_MISMATCH_WITH_AUDIO_FORMAT", + "FILE_TOO_LARGE", + "MISSING_TRANSCRIPTION" + ], + "enumDescriptions": [ + "Not specified.", + "Audio format not in the formats by cloud-speech AutoML. Currently only wav and flac file formats are supported.", + "File format differnt from what is specified in the file name extension.", + "File too large. Maximum allowed size is 50 MB.", + "Transcript is missing." + ], + "type": "string" + } + }, + "type": "object" + }, + "XPSDataStats": { + "description": "The data statistics of a series of values that share the same DataType.", + "id": "XPSDataStats", + "properties": { + "arrayStats": { + "$ref": "XPSArrayStats", + "description": "The statistics for ARRAY DataType." + }, + "categoryStats": { + "$ref": "XPSCategoryStats", + "description": "The statistics for CATEGORY DataType." + }, + "distinctValueCount": { + "description": "The number of distinct values.", + "format": "int64", + "type": "string" + }, + "float64Stats": { + "$ref": "XPSFloat64Stats", + "description": "The statistics for FLOAT64 DataType." + }, + "nullValueCount": { + "description": "The number of values that are null.", + "format": "int64", + "type": "string" + }, + "stringStats": { + "$ref": "XPSStringStats", + "description": "The statistics for STRING DataType." + }, + "structStats": { + "$ref": "XPSStructStats", + "description": "The statistics for STRUCT DataType." + }, + "timestampStats": { + "$ref": "XPSTimestampStats", + "description": "The statistics for TIMESTAMP DataType." + }, + "validValueCount": { + "description": "The number of values that are valid.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "XPSDataType": { + "description": "Indicated the type of data that can be stored in a structured data entity (e.g. a table).", + "id": "XPSDataType", + "properties": { + "compatibleDataTypes": { + "description": "The highly compatible data types to this data type.", + "items": { + "$ref": "XPSDataType" + }, + "type": "array" + }, + "listElementType": { + "$ref": "XPSDataType", + "description": "If type_code == ARRAY, then `list_element_type` is the type of the elements." + }, + "nullable": { + "description": "If true, this DataType can also be `null`.", + "type": "boolean" + }, + "structType": { + "$ref": "XPSStructType", + "description": "If type_code == STRUCT, then `struct_type` provides type information for the struct's fields." + }, + "timeFormat": { + "description": "If type_code == TIMESTAMP then `time_format` provides the format in which that time field is expressed. The time_format must be written in `strftime` syntax. If time_format is not set, then the default format as described on the field is used.", + "type": "string" + }, + "typeCode": { + "description": "Required. The TypeCode for this type.", + "enum": [ + "TYPE_CODE_UNSPECIFIED", + "FLOAT64", + "TIMESTAMP", + "STRING", + "ARRAY", + "STRUCT", + "CATEGORY" + ], + "enumDescriptions": [ + "Not specified. Should not be used.", + "Encoded as `number`, or the strings `\"NaN\"`, `\"Infinity\"`, or `\"-Infinity\"`.", + "Must be between 0AD and 9999AD. Encoded as `string` according to time_format, or, if that format is not set, then in RFC 3339 `date-time` format, where `time-offset` = `\"Z\"` (e.g. 1985-04-12T23:20:50.52Z).", + "Encoded as `string`.", + "Encoded as `list`, where the list elements are represented according to list_element_type.", + "Encoded as `struct`, where field values are represented according to struct_type.", + "Values of this type are not further understood by AutoML, e.g. AutoML is unable to tell the order of values (as it could with FLOAT64), or is unable to say if one value contains another (as it could with STRING). Encoded as `string` (bytes should be base64-encoded, as described in RFC 4648, section 4)." + ], + "type": "string" + } + }, + "type": "object" + }, + "XPSDockerFormat": { + "description": "A model format used for Docker containers. Use the params field to customize the container. The container is verified to work correctly on ubuntu 16.04 operating system.", + "id": "XPSDockerFormat", + "properties": { + "cpuArchitecture": { + "description": "Optional. Additional cpu information describing the requirements for the to be exported model files.", + "enum": [ + "CPU_ARCHITECTURE_UNSPECIFIED", + "CPU_ARCHITECTURE_X86_64" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + }, + "gpuArchitecture": { + "description": "Optional. Additional gpu information describing the requirements for the to be exported model files.", + "enum": [ + "GPU_ARCHITECTURE_UNSPECIFIED", + "GPU_ARCHITECTURE_NVIDIA" + ], + "enumDescriptions": [ + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "XPSEdgeTpuTfLiteFormat": { + "description": "A model format used for [Edge TPU](https://cloud.google.com/edge-tpu/) devices.", + "id": "XPSEdgeTpuTfLiteFormat", + "properties": {}, + "type": "object" + }, + "XPSEvaluationMetrics": { + "description": "Contains xPS-specific model evaluation metrics either for a single annotation spec (label), or for the model overall. Next tag: 18.", + "id": "XPSEvaluationMetrics", + "properties": { + "annotationSpecIdToken": { + "description": "The annotation_spec for which this evaluation metrics instance had been created. Empty iff this is an overall model evaluation (like Tables evaluation metrics), i.e. aggregated across all labels. The value comes from the input annotations in AnnotatedExample. For MVP product or for text sentiment models where annotation_spec_id_token is not available, set label instead.", + "type": "string" + }, + "category": { + "description": "The integer category label for which this evaluation metric instance had been created. Valid categories are 0 or higher. Overall model evaluation should set this to negative values (rather than implicit zero). Only used for Image Segmentation (prefer to set annotation_spec_id_token instead). Note: uCAIP Image Segmentation should use annotation_spec_id_token.", + "format": "int32", + "type": "integer" + }, + "evaluatedExampleCount": { + "description": "The number of examples used to create this evaluation metrics instance.", + "format": "int32", + "type": "integer" + }, + "imageClassificationEvalMetrics": { + "$ref": "XPSClassificationEvaluationMetrics" + }, + "imageObjectDetectionEvalMetrics": { + "$ref": "XPSImageObjectDetectionEvaluationMetrics" + }, + "imageSegmentationEvalMetrics": { + "$ref": "XPSImageSegmentationEvaluationMetrics" + }, + "label": { + "description": "The label for which this evaluation metrics instance had been created. Empty iff this is an overall model evaluation (like Tables evaluation metrics), i.e. aggregated across all labels. The label maps to AnnotationSpec.display_name in Public API protos. Only used by MVP implementation and text sentiment FULL implementation.", + "type": "string" + }, + "regressionEvalMetrics": { + "$ref": "XPSRegressionEvaluationMetrics" + }, + "tablesClassificationEvalMetrics": { + "$ref": "XPSClassificationEvaluationMetrics" + }, + "tablesEvalMetrics": { + "$ref": "XPSTablesEvaluationMetrics" + }, + "textClassificationEvalMetrics": { + "$ref": "XPSClassificationEvaluationMetrics" + }, + "textExtractionEvalMetrics": { + "$ref": "XPSTextExtractionEvaluationMetrics" + }, + "textSentimentEvalMetrics": { + "$ref": "XPSTextSentimentEvaluationMetrics" + }, + "translationEvalMetrics": { + "$ref": "XPSTranslationEvaluationMetrics" + }, + "videoActionRecognitionEvalMetrics": { + "$ref": "XPSVideoActionRecognitionEvaluationMetrics" + }, + "videoClassificationEvalMetrics": { + "$ref": "XPSClassificationEvaluationMetrics" + }, + "videoObjectTrackingEvalMetrics": { + "$ref": "XPSVideoObjectTrackingEvaluationMetrics" + } + }, + "type": "object" + }, + "XPSEvaluationMetricsSet": { + "description": "Specifies location of model evaluation metrics.", + "id": "XPSEvaluationMetricsSet", + "properties": { + "evaluationMetrics": { + "description": "Inline EvaluationMetrics - should be relatively small. For passing large quantities of exhaustive metrics, use file_spec.", + "items": { + "$ref": "XPSEvaluationMetrics" + }, + "type": "array" + }, + "fileSpec": { + "$ref": "XPSFileSpec", + "description": "File spec containing evaluation metrics of a model, must point to RecordIO file(s) of intelligence.cloud.automl.xps.EvaluationMetrics messages." + }, + "numEvaluationMetrics": { + "description": "Number of the evaluation metrics (usually one per label plus overall).", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "XPSExampleSet": { + "description": "Set of examples or input sources.", + "id": "XPSExampleSet", + "properties": { + "fileSpec": { + "$ref": "XPSFileSpec", + "description": "File spec of the examples or input sources." + }, + "fingerprint": { + "description": "Fingerprint of the example set.", + "format": "int64", + "type": "string" + }, + "numExamples": { + "description": "Number of examples.", + "format": "int64", + "type": "string" + }, + "numInputSources": { + "description": "Number of input sources.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "XPSExportModelOutputConfig": { + "id": "XPSExportModelOutputConfig", + "properties": { + "coreMlFormat": { + "$ref": "XPSCoreMlFormat" + }, + "dockerFormat": { + "$ref": "XPSDockerFormat" + }, + "edgeTpuTfLiteFormat": { + "$ref": "XPSEdgeTpuTfLiteFormat" + }, + "exportFirebaseAuxiliaryInfo": { + "description": "For any model and format: If true, will additionally export FirebaseExportedModelInfo in a firebase.txt file.", + "type": "boolean" + }, + "outputGcrUri": { + "description": "The Google Contained Registry (GCR) path the exported files to be pushed to. This location is set if the exported format is DOCKDER.", + "type": "string" + }, + "outputGcsUri": { + "description": "The Google Cloud Storage (GCS) directory where XPS will output the exported models and related files. Format: gs://bucket/directory", + "type": "string" + }, + "tfJsFormat": { + "$ref": "XPSTfJsFormat" + }, + "tfLiteFormat": { + "$ref": "XPSTfLiteFormat" + }, + "tfSavedModelFormat": { + "$ref": "XPSTfSavedModelFormat" + } + }, + "type": "object" + }, + "XPSFileSpec": { + "description": "Spec of input and output files, on external file systems (CNS, GCS, etc).", + "id": "XPSFileSpec", + "properties": { + "directoryPath": { + "deprecated": true, + "description": "Deprecated. Use file_spec.", + "type": "string" + }, + "fileFormat": { + "enum": [ + "FILE_FORMAT_UNKNOWN", + "FILE_FORMAT_SSTABLE", + "FILE_FORMAT_TRANSLATION_RKV", + "FILE_FORMAT_RECORDIO", + "FILE_FORMAT_RAW_CSV", + "FILE_FORMAT_RAW_CAPACITOR" + ], + "enumDeprecated": [ + false, + true, + false, + false, + false, + false + ], + "enumDescriptions": [ + "", + "", + "Internal format for parallel text data used by Google Translate. go/rkvtools", + "", + "Only the lexicographically first file described by the file_spec contains the header line.", + "" + ], + "type": "string" + }, + "fileSpec": { + "description": "Single file path, or file pattern of format \"/path/to/file@shard_count\". E.g. /cns/cell-d/somewhere/file@2 is expanded to two files: /cns/cell-d/somewhere/file-00000-of-00002 and /cns/cell-d/somewhere/file-00001-of-00002.", + "type": "string" + }, + "singleFilePath": { + "deprecated": true, + "description": "Deprecated. Use file_spec.", + "type": "string" + } + }, + "type": "object" + }, + "XPSFloat64Stats": { + "description": "The data statistics of a series of FLOAT64 values.", + "id": "XPSFloat64Stats", + "properties": { + "commonStats": { + "$ref": "XPSCommonStats" + }, + "histogramBuckets": { + "description": "Histogram buckets of the data series. Sorted by the min value of the bucket, ascendingly, and the number of the buckets is dynamically generated. The buckets are non-overlapping and completely cover whole FLOAT64 range with min of first bucket being `\"-Infinity\"`, and max of the last one being `\"Infinity\"`.", + "items": { + "$ref": "XPSFloat64StatsHistogramBucket" + }, + "type": "array" + }, + "mean": { + "description": "The mean of the series.", + "format": "double", + "type": "number" + }, + "quantiles": { + "description": "Ordered from 0 to k k-quantile values of the data series of n values. The value at index i is, approximately, the i*n/k-th smallest value in the series; for i = 0 and i = k these are, respectively, the min and max values.", + "items": { + "format": "double", + "type": "number" + }, + "type": "array" + }, + "standardDeviation": { + "description": "The standard deviation of the series.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "XPSFloat64StatsHistogramBucket": { + "description": "A bucket of a histogram.", + "id": "XPSFloat64StatsHistogramBucket", + "properties": { + "count": { + "description": "The number of data values that are in the bucket, i.e. are between min and max values.", + "format": "int64", + "type": "string" + }, + "max": { + "description": "The maximum value of the bucket, exclusive unless max = `\"Infinity\"`, in which case it's inclusive.", + "format": "double", + "type": "number" + }, + "min": { + "description": "The minimum value of the bucket, inclusive.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "XPSImageClassificationTrainResponse": { + "id": "XPSImageClassificationTrainResponse", + "properties": { + "classCount": { + "description": "Total number of classes.", + "format": "int64", + "type": "string" + }, + "exportModelSpec": { + "$ref": "XPSImageExportModelSpec", + "description": "Information of downloadable models that are pre-generated as part of training flow and will be persisted in AutoMl backend. Populated for AutoMl requests." + }, + "modelArtifactSpec": { + "$ref": "XPSImageModelArtifactSpec", + "description": "## The fields below are only populated under uCAIP request scope." + }, + "modelServingSpec": { + "$ref": "XPSImageModelServingSpec" + }, + "stopReason": { + "description": "Stop reason for training job, e.g. 'TRAIN_BUDGET_REACHED', 'MODEL_CONVERGED', 'MODEL_EARLY_STOPPED'.", + "enum": [ + "TRAIN_STOP_REASON_UNSPECIFIED", + "TRAIN_STOP_REASON_BUDGET_REACHED", + "TRAIN_STOP_REASON_MODEL_CONVERGED", + "TRAIN_STOP_REASON_MODEL_EARLY_STOPPED" + ], + "enumDescriptions": [ + "", + "", + "Model fully converged, can not be resumbed training.", + "Model early converged, can be further trained till full convergency." + ], + "type": "string" + }, + "trainCostInNodeTime": { + "description": "The actual cost to create this model. - For edge type model, the cost is expressed in node hour. - For cloud type model,the cost is expressed in compute hour. - Populated for models created before GA. To be deprecated after GA.", + "format": "google-duration", + "type": "string" + }, + "trainCostNodeSeconds": { + "description": "The actual training cost, expressed in node seconds. Populated for models trained in node time.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "XPSImageExportModelSpec": { + "description": "Information of downloadable models that are pre-generated as part of training flow and will be persisted in AutoMl backend. Upon receiving ExportModel request from user, AutoMl backend can serve the pre-generated models to user if exists (by copying the files from internal path to user provided location), otherwise, AutoMl backend will call xPS ExportModel API to generate the model on the fly with the requesting format.", + "id": "XPSImageExportModelSpec", + "properties": { + "exportModelOutputConfig": { + "description": "Contains the model format and internal location of the model files to be exported/downloaded. Use the GCS bucket name which is provided via TrainRequest.gcs_bucket_name to store the model files.", + "items": { + "$ref": "XPSExportModelOutputConfig" + }, + "type": "array" + } + }, + "type": "object" + }, + "XPSImageModelArtifactSpec": { + "description": "Stores the locations and related metadata of the model artifacts. Populated for uCAIP requests only.", + "id": "XPSImageModelArtifactSpec", + "properties": { + "checkpointArtifact": { + "$ref": "XPSModelArtifactItem", + "description": "The Tensorflow checkpoint files. e.g. Used for resumable training." + }, + "exportArtifact": { + "description": "The model binary files in different formats for model export.", + "items": { + "$ref": "XPSModelArtifactItem" + }, + "type": "array" + }, + "labelGcsUri": { + "description": "GCS uri of decoded labels file for model export 'dict.txt'.", + "type": "string" + }, + "servingArtifact": { + "$ref": "XPSModelArtifactItem", + "description": "The default model binary file used for serving (e.g. online predict, batch predict) via public Cloud AI Platform API." + }, + "tfJsBinaryGcsPrefix": { + "description": "GCS uri prefix of Tensorflow JavaScript binary files 'groupX-shardXofX.bin' Deprecated.", + "type": "string" + }, + "tfLiteMetadataGcsUri": { + "description": "GCS uri of Tensorflow Lite metadata 'tflite_metadata.json'.", + "type": "string" + } + }, + "type": "object" + }, + "XPSImageModelServingSpec": { + "description": "Serving specification for image models.", + "id": "XPSImageModelServingSpec", + "properties": { + "modelThroughputEstimation": { + "description": "Populate under uCAIP request scope.", + "items": { + "$ref": "XPSImageModelServingSpecModelThroughputEstimation" + }, + "type": "array" + }, + "nodeQps": { + "description": "An estimated value of how much traffic a node can serve. Populated for AutoMl request only.", + "format": "double", + "type": "number" + }, + "tfRuntimeVersion": { + "description": "## The fields below are only populated under uCAIP request scope. https://cloud.google.com/ml-engine/docs/runtime-version-list", + "type": "string" + } + }, + "type": "object" + }, + "XPSImageModelServingSpecModelThroughputEstimation": { + "id": "XPSImageModelServingSpecModelThroughputEstimation", + "properties": { + "computeEngineAcceleratorType": { + "enum": [ + "UNSPECIFIED", + "NVIDIA_TESLA_K80", + "NVIDIA_TESLA_P100", + "NVIDIA_TESLA_V100", + "NVIDIA_TESLA_P4", + "NVIDIA_TESLA_T4", + "NVIDIA_TESLA_A100", + "NVIDIA_A100_80GB", + "NVIDIA_L4", + "NVIDIA_H100_80GB", + "TPU_V2", + "TPU_V3", + "TPU_V4_POD", + "TPU_V5_LITEPOD" + ], + "enumDescriptions": [ + "", + "Nvidia Tesla K80 GPU.", + "Nvidia Tesla P100 GPU.", + "Nvidia Tesla V100 GPU.", + "Nvidia Tesla P4 GPU.", + "Nvidia Tesla T4 GPU.", + "Nvidia Tesla A100 GPU.", + "Nvidia A100 80GB GPU.", + "Nvidia L4 GPU.", + "Nvidia H100 80Gb GPU.", + "TPU v2 (JellyFish).", + "TPU v3 (DragonFish).", + "TPU_v4 (PufferFish).", + "TPU v5 Lite Pods." + ], + "type": "string" + }, + "latencyInMilliseconds": { + "description": "Estimated latency.", + "format": "double", + "type": "number" + }, + "nodeQps": { + "description": "The approximate qps a deployed node can serve.", + "format": "double", + "type": "number" + }, + "servomaticPartitionType": { + "enum": [ + "PARTITION_TYPE_UNSPECIFIED", + "PARTITION_ZERO", + "PARTITION_REDUCED_HOMING", + "PARTITION_JELLYFISH", + "PARTITION_CPU", + "PARTITION_CUSTOM_STORAGE_CPU" + ], + "enumDescriptions": [ + "", + "The default partition.", + "It has significantly lower replication than partition-0 and is located in the US only. It also has a larger model size limit and higher default RAM quota than partition-0. Customers with batch traffic, US-based traffic, or very large models should use this partition. Capacity in this partition is significantly cheaper than partition-0.", + "To be used by customers with Jellyfish-accelerated ops. See go/servomatic-jellyfish for details.", + "The partition used by regionalized servomatic cloud regions.", + "The partition used for loading models from custom storage." + ], + "type": "string" + } + }, + "type": "object" + }, + "XPSImageObjectDetectionEvaluationMetrics": { + "description": "Model evaluation metrics for image object detection problems. Evaluates prediction quality of labeled bounding boxes.", + "id": "XPSImageObjectDetectionEvaluationMetrics", + "properties": { + "boundingBoxMeanAveragePrecision": { + "description": "The single metric for bounding boxes evaluation: the mean_average_precision averaged over all bounding_box_metrics_entries.", + "format": "float", + "type": "number" + }, + "boundingBoxMetricsEntries": { + "description": "The bounding boxes match metrics for each Intersection-over-union threshold 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99 and each label confidence threshold 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99 pair.", + "items": { + "$ref": "XPSBoundingBoxMetricsEntry" + }, + "type": "array" + }, + "evaluatedBoundingBoxCount": { + "description": "The total number of bounding boxes (i.e. summed over all images) the ground truth used to create this evaluation had.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "XPSImageObjectDetectionModelSpec": { + "id": "XPSImageObjectDetectionModelSpec", + "properties": { + "classCount": { + "description": "Total number of classes.", + "format": "int64", + "type": "string" + }, + "exportModelSpec": { + "$ref": "XPSImageExportModelSpec" + }, + "maxBoundingBoxCount": { + "description": "Max number of bounding box.", + "format": "int64", + "type": "string" + }, + "modelArtifactSpec": { + "$ref": "XPSImageModelArtifactSpec", + "description": "## The fields below are only populated under uCAIP request scope." + }, + "modelServingSpec": { + "$ref": "XPSImageModelServingSpec" + }, + "stopReason": { + "description": "Stop reason for training job, e.g. 'TRAIN_BUDGET_REACHED', 'MODEL_CONVERGED'.", + "enum": [ + "TRAIN_STOP_REASON_UNSPECIFIED", + "TRAIN_STOP_REASON_BUDGET_REACHED", + "TRAIN_STOP_REASON_MODEL_CONVERGED", + "TRAIN_STOP_REASON_MODEL_EARLY_STOPPED" + ], + "enumDescriptions": [ + "", + "", + "Model fully converged, can not be resumbed training.", + "Model early converged, can be further trained till full convergency." + ], + "type": "string" + }, + "trainCostNodeSeconds": { + "description": "The actual train cost of creating this model, expressed in node seconds, i.e. 3,600 value in this field means 1 node hour.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "XPSImageSegmentationEvaluationMetrics": { + "description": "Model evaluation metrics for image segmentation problems. Next tag: 4.", + "id": "XPSImageSegmentationEvaluationMetrics", + "properties": { + "confidenceMetricsEntries": { + "description": "Metrics that have confidence thresholds. Precision-recall curve can be derived from it.", + "items": { + "$ref": "XPSImageSegmentationEvaluationMetricsConfidenceMetricsEntry" + }, + "type": "array" + } + }, + "type": "object" + }, + "XPSImageSegmentationEvaluationMetricsConfidenceMetricsEntry": { + "description": "Metrics for a single confidence threshold.", + "id": "XPSImageSegmentationEvaluationMetricsConfidenceMetricsEntry", + "properties": { + "confidenceThreshold": { + "description": "The confidence threshold value used to compute the metrics.", + "format": "float", + "type": "number" + }, + "confusionMatrix": { + "$ref": "XPSConfusionMatrix", + "description": "Confusion matrix of the per confidence_threshold evaluation. Pixel counts are set here. Only set for model level evaluation, not for evaluation per label." + }, + "diceScoreCoefficient": { + "description": "DSC or the F1 score: The harmonic mean of recall and precision.", + "format": "float", + "type": "number" + }, + "iouScore": { + "description": "IOU score.", + "format": "float", + "type": "number" + }, + "precision": { + "description": "Precision for the given confidence threshold.", + "format": "float", + "type": "number" + }, + "recall": { + "description": "Recall for the given confidence threshold.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "XPSImageSegmentationTrainResponse": { + "id": "XPSImageSegmentationTrainResponse", + "properties": { + "colorMaps": { + "description": "Color map of the model.", + "items": { + "$ref": "XPSColorMap" + }, + "type": "array" + }, + "exportModelSpec": { + "$ref": "XPSImageExportModelSpec", + "description": "NOTE: These fields are not used/needed in EAP but will be set later." + }, + "modelArtifactSpec": { + "$ref": "XPSImageModelArtifactSpec", + "description": "## The fields below are only populated under uCAIP request scope. Model artifact spec stores and model gcs pathes and related metadata" + }, + "modelServingSpec": { + "$ref": "XPSImageModelServingSpec" + }, + "stopReason": { + "description": "Stop reason for training job, e.g. 'TRAIN_BUDGET_REACHED', 'MODEL_CONVERGED'.", + "enum": [ + "TRAIN_STOP_REASON_UNSPECIFIED", + "TRAIN_STOP_REASON_BUDGET_REACHED", + "TRAIN_STOP_REASON_MODEL_CONVERGED", + "TRAIN_STOP_REASON_MODEL_EARLY_STOPPED" + ], + "enumDescriptions": [ + "", + "", + "Model fully converged, can not be resumbed training.", + "Model early converged, can be further trained till full convergency." + ], + "type": "string" + }, + "trainCostNodeSeconds": { + "description": "The actual train cost of creating this model, expressed in node seconds, i.e. 3,600 value in this field means 1 node hour.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "XPSIntegratedGradientsAttribution": { + "deprecated": true, + "description": "An attribution method that computes the Aumann-Shapley value taking advantage of the model's fully differentiable structure. Refer to this paper for more details: https://arxiv.org/abs/1703.01365", + "id": "XPSIntegratedGradientsAttribution", + "properties": { + "stepCount": { + "description": "The number of steps for approximating the path integral. A good value to start is 50 and gradually increase until the sum to diff property is within the desired error range. Valid range of its value is [1, 100], inclusively.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "XPSMetricEntry": { + "id": "XPSMetricEntry", + "properties": { + "argentumMetricId": { + "description": "For billing metrics that are using legacy sku's, set the legacy billing metric id here. This will be sent to Chemist as the \"cloudbilling.googleapis.com/argentum_metric_id\" label. Otherwise leave empty.", + "type": "string" + }, + "doubleValue": { + "description": "A double value.", + "format": "double", + "type": "number" + }, + "int64Value": { + "description": "A signed 64-bit integer value.", + "format": "int64", + "type": "string" + }, + "metricName": { + "description": "The metric name defined in the service configuration.", + "type": "string" + }, + "systemLabels": { + "description": "Billing system labels for this (metric, value) pair.", + "items": { + "$ref": "XPSMetricEntryLabel" + }, + "type": "array" + } + }, + "type": "object" + }, + "XPSMetricEntryLabel": { + "id": "XPSMetricEntryLabel", + "properties": { + "labelName": { + "description": "The name of the label.", + "type": "string" + }, + "labelValue": { + "description": "The value of the label.", + "type": "string" + } + }, + "type": "object" + }, + "XPSModelArtifactItem": { + "description": "A single model artifact item.", + "id": "XPSModelArtifactItem", + "properties": { + "artifactFormat": { + "description": "The model artifact format.", + "enum": [ + "ARTIFACT_FORMAT_UNSPECIFIED", + "TF_CHECKPOINT", + "TF_SAVED_MODEL", + "TF_LITE", + "EDGE_TPU_TF_LITE", + "TF_JS", + "CORE_ML" + ], + "enumDescriptions": [ + "Should not be used.", + "The Tensorflow checkpoints. See https://www.tensorflow.org/guide/checkpoint.", + "The Tensorflow SavedModel binary.", + "Model artifact in generic TensorFlow Lite (.tflite) format. See https://www.tensorflow.org/lite.", + "Used for [Edge TPU](https://cloud.google.com/edge-tpu/) devices.", + "A [TensorFlow.js](https://www.tensorflow.org/js) model that can be used in the browser and in Node.js using JavaScript.", + "Used for iOS mobile devices in (.mlmodel) format. See https://developer.apple.com/documentation/coreml" + ], + "type": "string" + }, + "gcsUri": { + "description": "The Google Cloud Storage (GCS) uri that stores the model binary files.", + "type": "string" + } + }, + "type": "object" + }, + "XPSPreprocessResponse": { + "description": "Next ID: 8", + "id": "XPSPreprocessResponse", + "properties": { + "outputExampleSet": { + "$ref": "XPSExampleSet", + "description": "Preprocessed examples, that are to be imported into AutoML storage. This should point to RecordIO file(s) of PreprocessedExample messages. The PreprocessedExample.mvp_training_data-s returned here are later verbatim passed to Train() call in TrainExample.mvp_training_data." + }, + "speechPreprocessResp": { + "$ref": "XPSSpeechPreprocessResponse" + }, + "tablesPreprocessResponse": { + "$ref": "XPSTablesPreprocessResponse" + }, + "translationPreprocessResp": { + "$ref": "XPSTranslationPreprocessResponse" + } + }, + "type": "object" + }, + "XPSRegressionEvaluationMetrics": { + "description": "Model evaluation metrics for regression problems. It can be used for Tables.", + "id": "XPSRegressionEvaluationMetrics", + "properties": { + "meanAbsoluteError": { + "description": "Mean Absolute Error (MAE).", + "format": "float", + "type": "number" + }, + "meanAbsolutePercentageError": { + "description": "Mean absolute percentage error. Only set if all ground truth values are positive.", + "format": "float", + "type": "number" + }, + "rSquared": { + "description": "R squared.", + "format": "float", + "type": "number" + }, + "regressionMetricsEntries": { + "description": "A list of actual versus predicted points for the model being evaluated.", + "items": { + "$ref": "XPSRegressionMetricsEntry" + }, + "type": "array" + }, + "rootMeanSquaredError": { + "description": "Root Mean Squared Error (RMSE).", + "format": "float", + "type": "number" + }, + "rootMeanSquaredLogError": { + "description": "Root mean squared log error.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "XPSRegressionMetricsEntry": { + "description": "A pair of actual & observed values for the model being evaluated.", + "id": "XPSRegressionMetricsEntry", + "properties": { + "predictedValue": { + "description": "The observed value for a row in the dataset.", + "format": "float", + "type": "number" + }, + "trueValue": { + "description": "The actual target value for a row in the dataset.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "XPSReportingMetrics": { + "id": "XPSReportingMetrics", + "properties": { + "effectiveTrainingDuration": { + "deprecated": true, + "description": "The effective time training used. If set, this is used for quota management and billing. Deprecated. AutoML BE doesn't use this. Don't set.", + "format": "google-duration", + "type": "string" + }, + "metricEntries": { + "description": "One entry per metric name. The values must be aggregated per metric name.", + "items": { + "$ref": "XPSMetricEntry" + }, + "type": "array" + } + }, + "type": "object" + }, + "XPSResponseExplanationMetadata": { + "deprecated": true, + "id": "XPSResponseExplanationMetadata", + "properties": { + "inputs": { + "additionalProperties": { + "$ref": "XPSResponseExplanationMetadataInputMetadata" + }, + "description": "Metadata of the input.", + "type": "object" + }, + "outputs": { + "additionalProperties": { + "$ref": "XPSResponseExplanationMetadataOutputMetadata" + }, + "description": "Metadata of the output.", + "type": "object" + } + }, + "type": "object" + }, + "XPSResponseExplanationMetadataInputMetadata": { + "description": "Metadata of the input of a feature.", + "id": "XPSResponseExplanationMetadataInputMetadata", + "properties": { + "inputTensorName": { + "description": "Name of the input tensor for this model. Only needed in train response.", + "type": "string" + }, + "modality": { + "description": "Modality of the feature. Valid values are: numeric, image. Defaults to numeric.", + "enum": [ + "MODALITY_UNSPECIFIED", + "NUMERIC", + "IMAGE", + "CATEGORICAL" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "type": "string" + }, + "visualizationConfig": { + "$ref": "XPSVisualization", + "description": "Visualization configurations for image explanation." + } + }, + "type": "object" + }, + "XPSResponseExplanationMetadataOutputMetadata": { + "description": "Metadata of the prediction output to be explained.", + "id": "XPSResponseExplanationMetadataOutputMetadata", + "properties": { + "outputTensorName": { + "description": "Name of the output tensor. Only needed in train response.", + "type": "string" + } + }, + "type": "object" + }, + "XPSResponseExplanationParameters": { + "deprecated": true, + "id": "XPSResponseExplanationParameters", + "properties": { + "integratedGradientsAttribution": { + "$ref": "XPSIntegratedGradientsAttribution", + "description": "An attribution method that computes Aumann-Shapley values taking advantage of the model's fully differentiable structure. Refer to this paper for more details: https://arxiv.org/abs/1703.01365" + }, + "xraiAttribution": { + "$ref": "XPSXraiAttribution", + "description": "An attribution method that redistributes Integrated Gradients attribution to segmented regions, taking advantage of the model's fully differentiable structure. Refer to this paper for more details: https://arxiv.org/abs/1906.02825 XRAI currently performs better on natural images, like a picture of a house or an animal. If the images are taken in artificial environments, like a lab or manufacturing line, or from diagnostic equipment, like x-rays or quality-control cameras, use Integrated Gradients instead." + } + }, + "type": "object" + }, + "XPSResponseExplanationSpec": { + "deprecated": true, + "description": "Specification of Model explanation. Feature-based XAI in AutoML Vision ICN is deprecated, see b/288407203 for context.", + "id": "XPSResponseExplanationSpec", + "properties": { + "explanationType": { + "description": "Explanation type. For AutoML Image Classification models, possible values are: * `image-integrated-gradients` * `image-xrai`", + "type": "string" + }, + "metadata": { + "$ref": "XPSResponseExplanationMetadata", + "description": "Metadata describing the Model's input and output for explanation." + }, + "parameters": { + "$ref": "XPSResponseExplanationParameters", + "description": "Parameters that configure explaining of the Model's predictions." + } + }, + "type": "object" + }, + "XPSRow": { + "id": "XPSRow", + "properties": { + "columnIds": { + "description": "The ids of the columns. Note: The below `values` field must match order of this field, if this field is set.", + "items": { + "format": "int32", + "type": "integer" + }, + "type": "array" + }, + "values": { + "description": "The values of the row cells, given in the same order as the column_ids. If column_ids is not set, then in the same order as the input_feature_column_ids in TablesModelMetadata.", + "items": { + "type": "any" + }, + "type": "array" + } + }, + "type": "object" + }, + "XPSSpeechEvaluationMetrics": { + "id": "XPSSpeechEvaluationMetrics", + "properties": { + "subModelEvaluationMetrics": { + "description": "Evaluation metrics for all submodels contained in this model.", + "items": { + "$ref": "XPSSpeechEvaluationMetricsSubModelEvaluationMetric" + }, + "type": "array" + } + }, + "type": "object" + }, + "XPSSpeechEvaluationMetricsSubModelEvaluationMetric": { + "id": "XPSSpeechEvaluationMetricsSubModelEvaluationMetric", + "properties": { + "biasingModelType": { + "description": "Type of the biasing model.", + "enum": [ + "BIASING_MODEL_TYPE_UNSPECIFIED", + "COMMAND_AND_SEARCH", + "PHONE_CALL", + "VIDEO", + "DEFAULT" + ], + "enumDescriptions": [ + "", + "Build biasing model on top of COMMAND_AND_SEARCH model", + "Build biasing model on top of PHONE_CALL model", + "Build biasing model on top of VIDEO model", + "Build biasing model on top of DEFAULT model" + ], + "type": "string" + }, + "isEnhancedModel": { + "description": "If true then it means we have an enhanced version of the biasing models.", + "type": "boolean" + }, + "numDeletions": { + "format": "int32", + "type": "integer" + }, + "numInsertions": { + "format": "int32", + "type": "integer" + }, + "numSubstitutions": { + "format": "int32", + "type": "integer" + }, + "numUtterances": { + "description": "Number of utterances used in the wer computation.", + "format": "int32", + "type": "integer" + }, + "numWords": { + "description": "Number of words over which the word error rate was computed.", + "format": "int32", + "type": "integer" + }, + "sentenceAccuracy": { + "description": "Below fields are used for debugging purposes", + "format": "double", + "type": "number" + }, + "wer": { + "description": "Word error rate (standard error metric used for speech recognition).", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "XPSSpeechModelSpec": { + "id": "XPSSpeechModelSpec", + "properties": { + "datasetId": { + "description": "Required for speech xps backend. Speech xps has to use dataset_id and model_id as the primary key in db so that speech API can query the db directly.", + "format": "int64", + "type": "string" + }, + "language": { + "type": "string" + }, + "subModelSpecs": { + "description": "Model specs for all submodels contained in this model.", + "items": { + "$ref": "XPSSpeechModelSpecSubModelSpec" + }, + "type": "array" + } + }, + "type": "object" + }, + "XPSSpeechModelSpecSubModelSpec": { + "id": "XPSSpeechModelSpecSubModelSpec", + "properties": { + "biasingModelType": { + "description": "Type of the biasing model.", + "enum": [ + "BIASING_MODEL_TYPE_UNSPECIFIED", + "COMMAND_AND_SEARCH", + "PHONE_CALL", + "VIDEO", + "DEFAULT" + ], + "enumDescriptions": [ + "", + "Build biasing model on top of COMMAND_AND_SEARCH model", + "Build biasing model on top of PHONE_CALL model", + "Build biasing model on top of VIDEO model", + "Build biasing model on top of DEFAULT model" + ], + "type": "string" + }, + "clientId": { + "description": "In S3, Recognition ClientContextId.client_id", + "type": "string" + }, + "contextId": { + "description": "In S3, Recognition ClientContextId.context_id", + "type": "string" + }, + "isEnhancedModel": { + "description": "If true then it means we have an enhanced version of the biasing models.", + "type": "boolean" + } + }, + "type": "object" + }, + "XPSSpeechPreprocessResponse": { + "id": "XPSSpeechPreprocessResponse", + "properties": { + "cnsTestDataPath": { + "description": "Location od shards of sstables (test data) of DataUtterance protos.", + "type": "string" + }, + "cnsTrainDataPath": { + "description": "Location of shards of sstables (training data) of DataUtterance protos.", + "type": "string" + }, + "prebuiltModelEvaluationMetrics": { + "$ref": "XPSSpeechEvaluationMetrics", + "description": "The metrics for prebuilt speech models. They are included here because there is no prebuilt speech models stored in the AutoML." + }, + "speechPreprocessStats": { + "$ref": "XPSSpeechPreprocessStats", + "description": "Stats associated with the data." + } + }, + "type": "object" + }, + "XPSSpeechPreprocessStats": { + "id": "XPSSpeechPreprocessStats", + "properties": { + "dataErrors": { + "description": "Different types of data errors and the counts associated with them.", + "items": { + "$ref": "XPSDataErrors" + }, + "type": "array" + }, + "numHumanLabeledExamples": { + "description": "The number of rows marked HUMAN_LABELLED", + "format": "int32", + "type": "integer" + }, + "numLogsExamples": { + "description": "The number of samples found in the previously recorded logs data.", + "format": "int32", + "type": "integer" + }, + "numMachineTranscribedExamples": { + "description": "The number of rows marked as MACHINE_TRANSCRIBED", + "format": "int32", + "type": "integer" + }, + "testExamplesCount": { + "description": "The number of examples labelled as TEST by Speech xps server.", + "format": "int32", + "type": "integer" + }, + "testSentencesCount": { + "description": "The number of sentences in the test data set.", + "format": "int32", + "type": "integer" + }, + "testWordsCount": { + "description": "The number of words in the test data set.", + "format": "int32", + "type": "integer" + }, + "trainExamplesCount": { + "description": "The number of examples labeled as TRAIN by Speech xps server.", + "format": "int32", + "type": "integer" + }, + "trainSentencesCount": { + "description": "The number of sentences in the training data set.", + "format": "int32", + "type": "integer" + }, + "trainWordsCount": { + "description": "The number of words in the training data set.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "XPSStringStats": { + "description": "The data statistics of a series of STRING values.", + "id": "XPSStringStats", + "properties": { + "commonStats": { + "$ref": "XPSCommonStats" + }, + "topUnigramStats": { + "description": "The statistics of the top 20 unigrams, ordered by StringStats.UnigramStats.count.", + "items": { + "$ref": "XPSStringStatsUnigramStats" + }, + "type": "array" + } + }, + "type": "object" + }, + "XPSStringStatsUnigramStats": { + "description": "The statistics of a unigram.", + "id": "XPSStringStatsUnigramStats", + "properties": { + "count": { + "description": "The number of occurrences of this unigram in the series.", + "format": "int64", + "type": "string" + }, + "value": { + "description": "The unigram.", + "type": "string" + } + }, + "type": "object" + }, + "XPSStructStats": { + "description": "The data statistics of a series of STRUCT values.", + "id": "XPSStructStats", + "properties": { + "commonStats": { + "$ref": "XPSCommonStats" + }, + "fieldStats": { + "additionalProperties": { + "$ref": "XPSDataStats" + }, + "description": "Map from a field name of the struct to data stats aggregated over series of all data in that field across all the structs.", + "type": "object" + } + }, + "type": "object" + }, + "XPSStructType": { + "description": "`StructType` defines the DataType-s of a STRUCT type.", + "id": "XPSStructType", + "properties": { + "fields": { + "additionalProperties": { + "$ref": "XPSDataType" + }, + "description": "Unordered map of struct field names to their data types.", + "type": "object" + } + }, + "type": "object" + }, + "XPSTableSpec": { + "id": "XPSTableSpec", + "properties": { + "columnSpecs": { + "additionalProperties": { + "$ref": "XPSColumnSpec" + }, + "description": "Mapping from column id to column spec.", + "type": "object" + }, + "importedDataSizeInBytes": { + "description": "The total size of imported data of the table.", + "format": "int64", + "type": "string" + }, + "rowCount": { + "description": "The number of rows in the table.", + "format": "int64", + "type": "string" + }, + "timeColumnId": { + "description": "The id of the time column.", + "format": "int32", + "type": "integer" + }, + "validRowCount": { + "description": "The number of valid rows.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "XPSTablesClassificationMetrics": { + "description": "Metrics for Tables classification problems.", + "id": "XPSTablesClassificationMetrics", + "properties": { + "curveMetrics": { + "description": "Metrics building a curve.", + "items": { + "$ref": "XPSTablesClassificationMetricsCurveMetrics" + }, + "type": "array" + } + }, + "type": "object" + }, + "XPSTablesClassificationMetricsCurveMetrics": { + "description": "Metrics curve data point for a single value.", + "id": "XPSTablesClassificationMetricsCurveMetrics", + "properties": { + "aucPr": { + "description": "The area under the precision-recall curve.", + "format": "double", + "type": "number" + }, + "aucRoc": { + "description": "The area under receiver operating characteristic curve.", + "format": "double", + "type": "number" + }, + "confidenceMetricsEntries": { + "description": "Metrics that have confidence thresholds. Precision-recall curve and ROC curve can be derived from them.", + "items": { + "$ref": "XPSTablesConfidenceMetricsEntry" + }, + "type": "array" + }, + "logLoss": { + "description": "The Log loss metric.", + "format": "double", + "type": "number" + }, + "positionThreshold": { + "description": "The position threshold value used to compute the metrics.", + "format": "int32", + "type": "integer" + }, + "value": { + "description": "The CATEGORY row value (for ARRAY unnested) the curve metrics are for.", + "type": "string" + } + }, + "type": "object" + }, + "XPSTablesConfidenceMetricsEntry": { + "description": "Metrics for a single confidence threshold.", + "id": "XPSTablesConfidenceMetricsEntry", + "properties": { + "confidenceThreshold": { + "description": "The confidence threshold value used to compute the metrics.", + "format": "double", + "type": "number" + }, + "f1Score": { + "description": "The harmonic mean of recall and precision. (2 * precision * recall) / (precision + recall)", + "format": "double", + "type": "number" + }, + "falseNegativeCount": { + "description": "False negative count.", + "format": "int64", + "type": "string" + }, + "falsePositiveCount": { + "description": "False positive count.", + "format": "int64", + "type": "string" + }, + "falsePositiveRate": { + "description": "FPR = #false positives / (#false positives + #true negatives)", + "format": "double", + "type": "number" + }, + "precision": { + "description": "Precision = #true positives / (#true positives + #false positives).", + "format": "double", + "type": "number" + }, + "recall": { + "description": "Recall = #true positives / (#true positives + #false negatives).", + "format": "double", + "type": "number" + }, + "trueNegativeCount": { + "description": "True negative count.", + "format": "int64", + "type": "string" + }, + "truePositiveCount": { + "description": "True positive count.", + "format": "int64", + "type": "string" + }, + "truePositiveRate": { + "description": "TPR = #true positives / (#true positives + #false negatvies)", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "XPSTablesDatasetMetadata": { + "description": "Metadata for a dataset used for AutoML Tables. Next ID: 6", + "id": "XPSTablesDatasetMetadata", + "properties": { + "mlUseColumnId": { + "description": "Id the column to split the table.", + "format": "int32", + "type": "integer" + }, + "primaryTableSpec": { + "$ref": "XPSTableSpec", + "description": "Primary table." + }, + "targetColumnCorrelations": { + "additionalProperties": { + "$ref": "XPSCorrelationStats" + }, + "description": "(the column id : its CorrelationStats with target column).", + "type": "object" + }, + "targetColumnId": { + "description": "Id of the primary table column that should be used as the training label.", + "format": "int32", + "type": "integer" + }, + "weightColumnId": { + "description": "Id of the primary table column that should be used as the weight column.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "XPSTablesEvaluationMetrics": { + "id": "XPSTablesEvaluationMetrics", + "properties": { + "classificationMetrics": { + "$ref": "XPSTablesClassificationMetrics", + "description": "Classification metrics." + }, + "regressionMetrics": { + "$ref": "XPSTablesRegressionMetrics", + "description": "Regression metrics." + } + }, + "type": "object" + }, + "XPSTablesModelColumnInfo": { + "description": "An information specific to given column and Tables Model, in context of the Model and the predictions created by it.", + "id": "XPSTablesModelColumnInfo", + "properties": { + "columnId": { + "description": "The ID of the column.", + "format": "int32", + "type": "integer" + }, + "featureImportance": { + "description": "When given as part of a Model: Measurement of how much model predictions correctness on the TEST data depend on values in this column. A value between 0 and 1, higher means higher influence. These values are normalized - for all input feature columns of a given model they add to 1. When given back by Predict or Batch Predict: Measurement of how impactful for the prediction returned for the given row the value in this column was. Specifically, the feature importance specifies the marginal contribution that the feature made to the prediction score compared to the baseline score. These values are computed using the Sampled Shapley method.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "XPSTablesModelStructure": { + "description": "A description of Tables model structure.", + "id": "XPSTablesModelStructure", + "properties": { + "modelParameters": { + "description": "A list of models.", + "items": { + "$ref": "XPSTablesModelStructureModelParameters" + }, + "type": "array" + } + }, + "type": "object" + }, + "XPSTablesModelStructureModelParameters": { + "description": "Model hyper-parameters for a model.", + "id": "XPSTablesModelStructureModelParameters", + "properties": { + "hyperparameters": { + "items": { + "$ref": "XPSTablesModelStructureModelParametersParameter" + }, + "type": "array" + } + }, + "type": "object" + }, + "XPSTablesModelStructureModelParametersParameter": { + "id": "XPSTablesModelStructureModelParametersParameter", + "properties": { + "floatValue": { + "description": "Float type parameter value.", + "format": "double", + "type": "number" + }, + "intValue": { + "description": "Integer type parameter value.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "Parameter name.", + "type": "string" + }, + "stringValue": { + "description": "String type parameter value.", + "type": "string" + } + }, + "type": "object" + }, + "XPSTablesPreprocessResponse": { + "id": "XPSTablesPreprocessResponse", + "properties": { + "tablesDatasetMetadata": { + "$ref": "XPSTablesDatasetMetadata", + "description": "The table/column id, column_name and the DataTypes of the columns will be populated." + } + }, + "type": "object" + }, + "XPSTablesRegressionMetrics": { + "description": "Metrics for Tables regression problems.", + "id": "XPSTablesRegressionMetrics", + "properties": { + "meanAbsoluteError": { + "description": "Mean absolute error.", + "format": "double", + "type": "number" + }, + "meanAbsolutePercentageError": { + "description": "Mean absolute percentage error, only set if all of the target column's values are positive.", + "format": "double", + "type": "number" + }, + "rSquared": { + "description": "R squared.", + "format": "double", + "type": "number" + }, + "regressionMetricsEntries": { + "description": "A list of actual versus predicted points for the model being evaluated.", + "items": { + "$ref": "XPSRegressionMetricsEntry" + }, + "type": "array" + }, + "rootMeanSquaredError": { + "description": "Root mean squared error.", + "format": "double", + "type": "number" + }, + "rootMeanSquaredLogError": { + "description": "Root mean squared log error.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "XPSTablesTrainResponse": { + "id": "XPSTablesTrainResponse", + "properties": { + "modelStructure": { + "$ref": "XPSTablesModelStructure" + }, + "predictionSampleRows": { + "description": "Sample rows from the dataset this model was trained.", + "items": { + "$ref": "XPSRow" + }, + "type": "array" + }, + "tablesModelColumnInfo": { + "description": "Output only. Auxiliary information for each of the input_feature_column_specs, with respect to this particular model.", + "items": { + "$ref": "XPSTablesModelColumnInfo" + }, + "type": "array" + }, + "trainCostMilliNodeHours": { + "description": "The actual training cost of the model, expressed in milli node hours, i.e. 1,000 value in this field means 1 node hour. Guaranteed to not exceed the train budget.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "XPSTablesTrainingOperationMetadata": { + "id": "XPSTablesTrainingOperationMetadata", + "properties": { + "createModelStage": { + "description": "Current stage of creating model.", + "enum": [ + "CREATE_MODEL_STAGE_UNSPECIFIED", + "DATA_PREPROCESSING", + "TRAINING", + "EVALUATING", + "MODEL_POST_PROCESSING" + ], + "enumDescriptions": [ + "Unspecified stage.", + "Prepare the model training pipeline and run data processing.", + "Training model.", + "Run evaluation.", + "Finalizing model training pipeline." + ], + "type": "string" + }, + "optimizationObjective": { + "description": "The optimization objective for model.", + "type": "string" + }, + "topTrials": { + "description": "This field is for training. When the operation is terminated successfully, AutoML Backend post this field to operation metadata in spanner. If the metadata has no trials returned, the training operation is supposed to be a failure.", + "items": { + "$ref": "XPSTuningTrial" + }, + "type": "array" + }, + "trainBudgetMilliNodeHours": { + "description": "Creating model budget.", + "format": "int64", + "type": "string" + }, + "trainingObjectivePoints": { + "description": "This field records the training objective value with respect to time, giving insight into how the model architecture search is performing as training time elapses.", + "items": { + "$ref": "XPSTrainingObjectivePoint" + }, + "type": "array" + }, + "trainingStartTime": { + "description": "Timestamp when training process starts.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "XPSTextComponentModel": { + "description": "Component model. Next ID: 10", + "id": "XPSTextComponentModel", + "properties": { + "batchPredictionModelGcsUri": { + "description": "The Cloud Storage resource path to hold batch prediction model.", + "type": "string" + }, + "onlinePredictionModelGcsUri": { + "description": "The Cloud Storage resource path to hold online prediction model.", + "type": "string" + }, + "partition": { + "description": "The partition where the model is deployed. Populated by uCAIP BE as part of online PredictRequest.", + "enum": [ + "PARTITION_TYPE_UNSPECIFIED", + "PARTITION_ZERO", + "PARTITION_REDUCED_HOMING", + "PARTITION_JELLYFISH", + "PARTITION_CPU", + "PARTITION_CUSTOM_STORAGE_CPU" + ], + "enumDescriptions": [ + "", + "The default partition.", + "It has significantly lower replication than partition-0 and is located in the US only. It also has a larger model size limit and higher default RAM quota than partition-0. Customers with batch traffic, US-based traffic, or very large models should use this partition. Capacity in this partition is significantly cheaper than partition-0.", + "To be used by customers with Jellyfish-accelerated ops. See go/servomatic-jellyfish for details.", + "The partition used by regionalized servomatic cloud regions.", + "The partition used for loading models from custom storage." + ], + "type": "string" + }, + "servingArtifact": { + "$ref": "XPSModelArtifactItem", + "description": "The default model binary file used for serving (e.g. online predict, batch predict) via public Cloud Ai Platform API." + }, + "servoModelName": { + "description": "The name of servo model. Populated by uCAIP BE as part of online PredictRequest.", + "type": "string" + }, + "submodelName": { + "description": "The name of the trained NL submodel.", + "type": "string" + }, + "submodelType": { + "description": "The type of trained NL submodel", + "enum": [ + "TEXT_MODEL_TYPE_UNSPECIFIED", + "TEXT_MODEL_TYPE_DEFAULT", + "TEXT_MODEL_TYPE_META_ARCHITECT", + "TEXT_MODEL_TYPE_ATC", + "TEXT_MODEL_TYPE_CLARA2", + "TEXT_MODEL_TYPE_CHATBASE", + "TEXT_MODEL_TYPE_SAFT_SPAN_LABELING", + "TEXT_MODEL_TYPE_TEXT_EXTRACTION", + "TEXT_MODEL_TYPE_RELATIONSHIP_EXTRACTION", + "TEXT_MODEL_TYPE_COMPOSITE", + "TEXT_MODEL_TYPE_ALL_MODELS", + "TEXT_MODEL_TYPE_BERT", + "TEXT_MODEL_TYPE_ENC_PALM" + ], + "enumDescriptions": [ + "", + "", + "", + "", + "", + "", + "", + "Model type for entity extraction.", + "Model type for relationship extraction.", + "A composite model represents a set of component models that have to be used together for prediction. A composite model appears to be a single model to the model user. It may contain only one component model. Please refer to go/cnl-composite-models for more information.", + "Model type used to train default, MA, and ATC models in a single batch worker pipeline.", + "BERT pipeline needs a specific model type, since it uses a different TFX configuration compared with DEFAULT (despite sharing most of the code).", + "Model type for EncPaLM." + ], + "type": "string" + }, + "tfRuntimeVersion": { + "description": "## The fields below are only populated under uCAIP request scope. https://cloud.google.com/ml-engine/docs/runtime-version-list", + "type": "string" + }, + "versionNumber": { + "description": "The servomatic model version number. Populated by uCAIP BE as part of online PredictRequest.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "XPSTextExtractionEvaluationMetrics": { + "id": "XPSTextExtractionEvaluationMetrics", + "properties": { + "bestF1ConfidenceMetrics": { + "$ref": "XPSConfidenceMetricsEntry", + "deprecated": true, + "description": "Values are at the highest F1 score on the precision-recall curve. Only confidence_threshold, recall, precision, and f1_score will be set." + }, + "confidenceMetricsEntries": { + "description": "If the enclosing EvaluationMetrics.label is empty, confidence_metrics_entries is an evaluation of the entire model across all labels. If the enclosing EvaluationMetrics.label is set, confidence_metrics_entries applies to that label.", + "items": { + "$ref": "XPSConfidenceMetricsEntry" + }, + "type": "array" + }, + "confusionMatrix": { + "$ref": "XPSConfusionMatrix", + "description": "Confusion matrix of the model, at the default confidence threshold (0.0). Only set for whole-model evaluation, not for evaluation per label." + }, + "perLabelConfidenceMetrics": { + "additionalProperties": { + "$ref": "XPSConfidenceMetricsEntry" + }, + "deprecated": true, + "description": "Only recall, precision, and f1_score will be set.", + "type": "object" + } + }, + "type": "object" + }, + "XPSTextSentimentEvaluationMetrics": { + "description": "Model evaluation metrics for text sentiment problems.", + "id": "XPSTextSentimentEvaluationMetrics", + "properties": { + "confusionMatrix": { + "$ref": "XPSConfusionMatrix", + "description": "Output only. Confusion matrix of the evaluation. Only set for the overall model evaluation, not for evaluation of a single annotation spec." + }, + "f1Score": { + "description": "Output only. The harmonic mean of recall and precision.", + "format": "float", + "type": "number" + }, + "linearKappa": { + "description": "Output only. Linear weighted kappa. Only set for the overall model evaluation, not for evaluation of a single annotation spec.", + "format": "float", + "type": "number" + }, + "meanAbsoluteError": { + "description": "Output only. Mean absolute error. Only set for the overall model evaluation, not for evaluation of a single annotation spec.", + "format": "float", + "type": "number" + }, + "meanSquaredError": { + "description": "Output only. Mean squared error. Only set for the overall model evaluation, not for evaluation of a single annotation spec.", + "format": "float", + "type": "number" + }, + "precision": { + "description": "Output only. Precision.", + "format": "float", + "type": "number" + }, + "quadraticKappa": { + "description": "Output only. Quadratic weighted kappa. Only set for the overall model evaluation, not for evaluation of a single annotation spec.", + "format": "float", + "type": "number" + }, + "recall": { + "description": "Output only. Recall.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "XPSTextToSpeechTrainResponse": { + "description": "TextToSpeech train response", + "id": "XPSTextToSpeechTrainResponse", + "properties": {}, + "type": "object" + }, + "XPSTextTrainResponse": { + "id": "XPSTextTrainResponse", + "properties": { + "componentModel": { + "description": "Component submodels.", + "items": { + "$ref": "XPSTextComponentModel" + }, + "type": "array" + } + }, + "type": "object" + }, + "XPSTfJsFormat": { + "description": "A [TensorFlow.js](https://www.tensorflow.org/js) model that can be used in the browser and in Node.js using JavaScript.", + "id": "XPSTfJsFormat", + "properties": {}, + "type": "object" + }, + "XPSTfLiteFormat": { + "description": "LINT.IfChange A model format used for mobile and IoT devices. See https://www.tensorflow.org/lite.", + "id": "XPSTfLiteFormat", + "properties": {}, + "type": "object" + }, + "XPSTfSavedModelFormat": { + "description": "A tensorflow model format in SavedModel format.", + "id": "XPSTfSavedModelFormat", + "properties": {}, + "type": "object" + }, + "XPSTimestampStats": { + "description": "The data statistics of a series of TIMESTAMP values.", + "id": "XPSTimestampStats", + "properties": { + "commonStats": { + "$ref": "XPSCommonStats" + }, + "granularStats": { + "additionalProperties": { + "$ref": "XPSTimestampStatsGranularStats" + }, + "description": "The string key is the pre-defined granularity. Currently supported: hour_of_day, day_of_week, month_of_year. Granularities finer that the granularity of timestamp data are not populated (e.g. if timestamps are at day granularity, then hour_of_day is not populated).", + "type": "object" + }, + "medianTimestampNanos": { + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "XPSTimestampStatsGranularStats": { + "description": "Stats split by a defined in context granularity.", + "id": "XPSTimestampStatsGranularStats", + "properties": { + "buckets": { + "additionalProperties": { + "format": "int64", + "type": "string" + }, + "description": "A map from granularity key to example count for that key. E.g. for hour_of_day `13` means 1pm, or for month_of_year `5` means May).", + "type": "object" + } + }, + "type": "object" + }, + "XPSTrackMetricsEntry": { + "description": "Track matching model metrics for a single track match threshold and multiple label match confidence thresholds. Next tag: 6.", + "id": "XPSTrackMetricsEntry", + "properties": { + "confidenceMetricsEntries": { + "description": "Output only. Metrics for each label-match confidence_threshold from 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99. Precision-recall curve is derived from them.", + "items": { + "$ref": "XPSTrackMetricsEntryConfidenceMetricsEntry" + }, + "type": "array" + }, + "iouThreshold": { + "description": "Output only. The intersection-over-union threshold value between bounding boxes across frames used to compute this metric entry.", + "format": "float", + "type": "number" + }, + "meanBoundingBoxIou": { + "description": "Output only. The mean bounding box iou over all confidence thresholds.", + "format": "float", + "type": "number" + }, + "meanMismatchRate": { + "description": "Output only. The mean mismatch rate over all confidence thresholds.", + "format": "float", + "type": "number" + }, + "meanTrackingAveragePrecision": { + "description": "Output only. The mean average precision over all confidence thresholds.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "XPSTrackMetricsEntryConfidenceMetricsEntry": { + "description": "Metrics for a single confidence threshold. Next tag: 6.", + "id": "XPSTrackMetricsEntryConfidenceMetricsEntry", + "properties": { + "boundingBoxIou": { + "description": "Output only. Bounding box intersection-over-union precision. Measures how well the bounding boxes overlap between each other (e.g. complete overlap or just barely above iou_threshold).", + "format": "float", + "type": "number" + }, + "confidenceThreshold": { + "description": "Output only. The confidence threshold value used to compute the metrics.", + "format": "float", + "type": "number" + }, + "mismatchRate": { + "description": "Output only. Mismatch rate, which measures the tracking consistency, i.e. correctness of instance ID continuity.", + "format": "float", + "type": "number" + }, + "trackingPrecision": { + "description": "Output only. Tracking precision.", + "format": "float", + "type": "number" + }, + "trackingRecall": { + "description": "Output only. Tracking recall.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "XPSTrainResponse": { + "description": "Next ID: 18", + "id": "XPSTrainResponse", + "properties": { + "deployedModelSizeBytes": { + "description": "Estimated model size in bytes once deployed.", + "format": "int64", + "type": "string" + }, + "errorAnalysisConfigs": { + "description": "Optional vision model error analysis configuration. The field is set when model error analysis is enabled in the training request. The results of error analysis will be binded together with evaluation results (in the format of AnnotatedExample).", + "items": { + "$ref": "XPSVisionErrorAnalysisConfig" + }, + "type": "array" + }, + "evaluatedExampleSet": { + "$ref": "XPSExampleSet", + "description": "Examples used to evaluate the model (usually the test set), with the predicted annotations. The file_spec should point to recordio file(s) of AnnotatedExample. For each returned example, the example_id_token and annotations predicted by the model must be set. The example payload can and is recommended to be omitted." + }, + "evaluationMetricsSet": { + "$ref": "XPSEvaluationMetricsSet", + "description": "The trained model evaluation metrics. This can be optionally returned." + }, + "explanationConfigs": { + "deprecated": true, + "description": "VisionExplanationConfig for XAI on test set. Optional for when XAI is enable in training request.", + "items": { + "$ref": "XPSResponseExplanationSpec" + }, + "type": "array" + }, + "imageClassificationTrainResp": { + "$ref": "XPSImageClassificationTrainResponse" + }, + "imageObjectDetectionTrainResp": { + "$ref": "XPSImageObjectDetectionModelSpec" + }, + "imageSegmentationTrainResp": { + "$ref": "XPSImageSegmentationTrainResponse" + }, + "modelToken": { + "description": "Token that represents the trained model. This is considered immutable and is persisted in AutoML. xPS can put their own proto in the byte string, to e.g. point to the model checkpoints. The token is passed to other xPS APIs to refer to the model.", + "format": "byte", + "type": "string" + }, + "speechTrainResp": { + "$ref": "XPSSpeechModelSpec" + }, + "tablesTrainResp": { + "$ref": "XPSTablesTrainResponse" + }, + "textToSpeechTrainResp": { + "$ref": "XPSTextToSpeechTrainResponse" + }, + "textTrainResp": { + "$ref": "XPSTextTrainResponse", + "description": "Will only be needed for uCAIP from Beta." + }, + "translationTrainResp": { + "$ref": "XPSTranslationTrainResponse" + }, + "videoActionRecognitionTrainResp": { + "$ref": "XPSVideoActionRecognitionTrainResponse" + }, + "videoClassificationTrainResp": { + "$ref": "XPSVideoClassificationTrainResponse" + }, + "videoObjectTrackingTrainResp": { + "$ref": "XPSVideoObjectTrackingTrainResponse" + } + }, + "type": "object" + }, + "XPSTrainingObjectivePoint": { + "id": "XPSTrainingObjectivePoint", + "properties": { + "createTime": { + "description": "The time at which this point was recorded.", + "format": "google-datetime", + "type": "string" + }, + "value": { + "description": "The objective value when this point was recorded.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "XPSTranslationEvaluationMetrics": { + "description": "Evaluation metrics for the dataset.", + "id": "XPSTranslationEvaluationMetrics", + "properties": { + "baseBleuScore": { + "description": "BLEU score for base model.", + "format": "double", + "type": "number" + }, + "bleuScore": { + "description": "BLEU score.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "XPSTranslationPreprocessResponse": { + "description": "Translation preprocess response.", + "id": "XPSTranslationPreprocessResponse", + "properties": { + "parsedExampleCount": { + "description": "Total example count parsed.", + "format": "int64", + "type": "string" + }, + "validExampleCount": { + "description": "Total valid example count.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "XPSTranslationTrainResponse": { + "description": "Train response for translation.", + "id": "XPSTranslationTrainResponse", + "properties": { + "modelType": { + "description": "Type of the model.", + "enum": [ + "MODEL_TYPE_UNSPECIFIED", + "LEGACY", + "CURRENT" + ], + "enumDescriptions": [ + "Default", + "Legacy model. Will be deprecated.", + "Current model." + ], + "type": "string" + } + }, + "type": "object" + }, + "XPSTuningTrial": { + "description": "Metrics for a tuning job generated, will get forwarded to Stackdriver as model tuning logs. Setting this as a standalone message out of CreateModelMetadata to avoid confusion as we expose this message only to users.", + "id": "XPSTuningTrial", + "properties": { + "modelStructure": { + "$ref": "XPSTablesModelStructure", + "description": "Model parameters for the trial." + }, + "trainingObjectivePoint": { + "$ref": "XPSTrainingObjectivePoint", + "description": "The optimization objective evaluation of the eval split data." + } + }, + "type": "object" + }, + "XPSVideoActionMetricsEntry": { + "description": "The Evaluation metrics entry given a specific precision_window_length.", + "id": "XPSVideoActionMetricsEntry", + "properties": { + "confidenceMetricsEntries": { + "description": "Metrics for each label-match confidence_threshold from 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99.", + "items": { + "$ref": "XPSVideoActionMetricsEntryConfidenceMetricsEntry" + }, + "type": "array" + }, + "meanAveragePrecision": { + "description": "The mean average precision.", + "format": "float", + "type": "number" + }, + "precisionWindowLength": { + "description": "This VideoActionMetricsEntry is calculated based on this prediction window length. If the predicted action's timestamp is inside the time window whose center is the ground truth action's timestamp with this specific length, the prediction result is treated as a true positive.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, + "XPSVideoActionMetricsEntryConfidenceMetricsEntry": { + "description": "Metrics for a single confidence threshold.", + "id": "XPSVideoActionMetricsEntryConfidenceMetricsEntry", + "properties": { + "confidenceThreshold": { + "description": "Output only. The confidence threshold value used to compute the metrics.", + "format": "float", + "type": "number" + }, + "f1Score": { + "description": "Output only. The harmonic mean of recall and precision.", + "format": "float", + "type": "number" + }, + "precision": { + "description": "Output only. Precision for the given confidence threshold.", + "format": "float", + "type": "number" + }, + "recall": { + "description": "Output only. Recall for the given confidence threshold.", + "format": "float", + "type": "number" + } + }, + "type": "object" + }, + "XPSVideoActionRecognitionEvaluationMetrics": { + "description": "Model evaluation metrics for video action recognition.", + "id": "XPSVideoActionRecognitionEvaluationMetrics", + "properties": { + "evaluatedActionCount": { + "description": "Output only. The number of ground truth actions used to create this evaluation.", + "format": "int32", + "type": "integer" + }, + "videoActionMetricsEntries": { + "description": "Output only. The metric entries for precision window lengths: 1s,2s,3s,4s, 5s.", + "items": { + "$ref": "XPSVideoActionMetricsEntry" + }, + "type": "array" + } + }, + "type": "object" + }, + "XPSVideoActionRecognitionTrainResponse": { + "id": "XPSVideoActionRecognitionTrainResponse", + "properties": { + "modelArtifactSpec": { + "$ref": "XPSVideoModelArtifactSpec", + "description": "## The fields below are only populated under uCAIP request scope." + }, + "trainCostNodeSeconds": { + "description": "The actual train cost of creating this model, expressed in node seconds, i.e. 3,600 value in this field means 1 node hour.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "XPSVideoBatchPredictOperationMetadata": { + "id": "XPSVideoBatchPredictOperationMetadata", + "properties": { + "outputExamples": { + "description": "All the partial batch prediction results that are completed at the moment. Output examples are sorted by completion time. The order will not be changed. Each output example should be the path of a single RecordIO file of AnnotatedExamples.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "XPSVideoClassificationTrainResponse": { + "id": "XPSVideoClassificationTrainResponse", + "properties": { + "modelArtifactSpec": { + "$ref": "XPSVideoModelArtifactSpec", + "description": "## The fields below are only populated under uCAIP request scope." + }, + "trainCostNodeSeconds": { + "description": "The actual train cost of creating this model, expressed in node seconds, i.e. 3,600 value in this field means 1 node hour.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "XPSVideoExportModelSpec": { + "description": "Information of downloadable models that are pre-generated as part of training flow and will be persisted in AutoMl backend. Upon receiving ExportModel request from user, AutoMl backend can serve the pre-generated models to user if exists (by copying the files from internal path to user provided location), otherwise, AutoMl backend will call xPS ExportModel API to generate the model on the fly with the requesting format.", + "id": "XPSVideoExportModelSpec", + "properties": { + "exportModelOutputConfig": { + "description": "Contains the model format and internal location of the model files to be exported/downloaded. Use the GCS bucket name which is provided via TrainRequest.gcs_bucket_name to store the model files.", + "items": { + "$ref": "XPSExportModelOutputConfig" + }, + "type": "array" + } + }, + "type": "object" + }, + "XPSVideoModelArtifactSpec": { + "id": "XPSVideoModelArtifactSpec", + "properties": { + "exportArtifact": { + "description": "The model binary files in different formats for model export.", + "items": { + "$ref": "XPSModelArtifactItem" + }, + "type": "array" + }, + "servingArtifact": { + "$ref": "XPSModelArtifactItem", + "description": "The default model binary file used for serving (e.g. batch predict) via public Cloud AI Platform API." + } + }, + "type": "object" + }, + "XPSVideoObjectTrackingEvaluationMetrics": { + "description": "Model evaluation metrics for ObjectTracking problems. Next tag: 10.", + "id": "XPSVideoObjectTrackingEvaluationMetrics", + "properties": { + "boundingBoxMeanAveragePrecision": { + "description": "Output only. The single metric for bounding boxes evaluation: the mean_average_precision averaged over all bounding_box_metrics_entries.", + "format": "float", + "type": "number" + }, + "boundingBoxMetricsEntries": { + "description": "Output only. The bounding boxes match metrics for each Intersection-over-union threshold 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99.", + "items": { + "$ref": "XPSBoundingBoxMetricsEntry" + }, + "type": "array" + }, + "evaluatedBoundingboxCount": { + "description": "The number of bounding boxes used for model evaluation.", + "format": "int32", + "type": "integer" + }, + "evaluatedFrameCount": { + "description": "The number of video frames used for model evaluation.", + "format": "int32", + "type": "integer" + }, + "evaluatedTrackCount": { + "description": "The number of tracks used for model evaluation.", + "format": "int32", + "type": "integer" + }, + "trackMeanAveragePrecision": { + "description": "Output only. The single metric for tracks accuracy evaluation: the mean_average_precision averaged over all track_metrics_entries.", + "format": "float", + "type": "number" + }, + "trackMeanBoundingBoxIou": { + "description": "Output only. The single metric for tracks bounding box iou evaluation: the mean_bounding_box_iou averaged over all track_metrics_entries.", + "format": "float", + "type": "number" + }, + "trackMeanMismatchRate": { + "description": "Output only. The single metric for tracking consistency evaluation: the mean_mismatch_rate averaged over all track_metrics_entries.", + "format": "float", + "type": "number" + }, + "trackMetricsEntries": { + "description": "Output only. The tracks match metrics for each Intersection-over-union threshold 0.05,0.10,...,0.95,0.96,0.97,0.98,0.99.", + "items": { + "$ref": "XPSTrackMetricsEntry" + }, + "type": "array" + } + }, + "type": "object" + }, + "XPSVideoObjectTrackingTrainResponse": { + "id": "XPSVideoObjectTrackingTrainResponse", + "properties": { + "exportModelSpec": { + "$ref": "XPSVideoExportModelSpec", + "description": "Populated for AutoML request only." + }, + "modelArtifactSpec": { + "$ref": "XPSVideoModelArtifactSpec", + "description": "## The fields below are only populated under uCAIP request scope." + }, + "trainCostNodeSeconds": { + "description": "The actual train cost of creating this model, expressed in node seconds, i.e. 3,600 value in this field means 1 node hour.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "XPSVideoTrainingOperationMetadata": { + "id": "XPSVideoTrainingOperationMetadata", + "properties": { + "trainCostMilliNodeHour": { + "description": "This is an estimation of the node hours necessary for training a model, expressed in milli node hours (i.e. 1,000 value in this field means 1 node hour). A node hour represents the time a virtual machine spends running your training job. The cost of one node running for one hour is a node hour.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "XPSVisionErrorAnalysisConfig": { + "description": "The vision model error analysis configuration. Next tag: 3", + "id": "XPSVisionErrorAnalysisConfig", + "properties": { + "exampleCount": { + "description": "The number of query examples in error analysis.", + "format": "int32", + "type": "integer" + }, + "queryType": { + "description": "The query type used in retrieval. The enum values are frozen in the foreseeable future.", + "enum": [ + "QUERY_TYPE_UNSPECIFIED", + "QUERY_TYPE_ALL_SIMILAR", + "QUERY_TYPE_SAME_CLASS_SIMILAR", + "QUERY_TYPE_SAME_CLASS_DISSIMILAR" + ], + "enumDescriptions": [ + "Unspecified query type for model error analysis.", + "Query similar samples across all classes in the dataset.", + "Query similar samples from the same class of the input sample.", + "Query dissimilar samples from the same class of the input sample." + ], + "type": "string" + } + }, + "type": "object" + }, + "XPSVisionTrainingOperationMetadata": { + "deprecated": true, + "id": "XPSVisionTrainingOperationMetadata", + "properties": { + "explanationUsage": { + "$ref": "InfraUsage", + "description": "Aggregated infra usage within certain time period, for billing report purpose if XAI is enable in training request." + } + }, + "type": "object" + }, + "XPSVisualization": { + "deprecated": true, + "description": "Visualization configurations for image explanation.", + "id": "XPSVisualization", + "properties": { + "clipPercentLowerbound": { + "description": "Excludes attributions below the specified percentile, from the highlighted areas. Defaults to 62.", + "format": "float", + "type": "number" + }, + "clipPercentUpperbound": { + "description": "Excludes attributions above the specified percentile from the highlighted areas. Using the clip_percent_upperbound and clip_percent_lowerbound together can be useful for filtering out noise and making it easier to see areas of strong attribution. Defaults to 99.9.", + "format": "float", + "type": "number" + }, + "colorMap": { + "description": "The color scheme used for the highlighted areas. Defaults to PINK_GREEN for Integrated Gradients attribution, which shows positive attributions in green and negative in pink. Defaults to VIRIDIS for XRAI attribution, which highlights the most influential regions in yellow and the least influential in blue.", + "enum": [ + "COLOR_MAP_UNSPECIFIED", + "PINK_GREEN", + "VIRIDIS", + "RED", + "GREEN", + "RED_GREEN", + "PINK_WHITE_GREEN" + ], + "enumDescriptions": [ + "Should not be used.", + "Positive: green. Negative: pink.", + "Viridis color map: A perceptually uniform color mapping which is easier to see by those with colorblindness and progresses from yellow to green to blue. Positive: yellow. Negative: blue.", + "Positive: red. Negative: red.", + "Positive: green. Negative: green.", + "Positive: green. Negative: red.", + "PiYG palette." + ], + "type": "string" + }, + "overlayType": { + "description": "How the original image is displayed in the visualization. Adjusting the overlay can help increase visual clarity if the original image makes it difficult to view the visualization. Defaults to NONE.", + "enum": [ + "OVERLAY_TYPE_UNSPECIFIED", + "NONE", + "ORIGINAL", + "GRAYSCALE", + "MASK_BLACK" + ], + "enumDescriptions": [ + "Default value. This is the same as NONE.", + "No overlay.", + "The attributions are shown on top of the original image.", + "The attributions are shown on top of grayscaled version of the original image.", + "The attributions are used as a mask to reveal predictive parts of the image and hide the un-predictive parts." + ], + "type": "string" + }, + "polarity": { + "description": "Whether to only highlight pixels with positive contributions, negative or both. Defaults to POSITIVE.", + "enum": [ + "POLARITY_UNSPECIFIED", + "POSITIVE", + "NEGATIVE", + "BOTH" + ], + "enumDescriptions": [ + "Default value. This is the same as POSITIVE.", + "Highlights the pixels/outlines that were most influential to the model's prediction.", + "Setting polarity to negative highlights areas that does not lead to the models's current prediction.", + "Shows both positive and negative attributions." + ], + "type": "string" + }, + "type": { + "description": "Type of the image visualization. Only applicable to Integrated Gradients attribution. OUTLINES shows regions of attribution, while PIXELS shows per-pixel attribution. Defaults to OUTLINES.", + "enum": [ + "TYPE_UNSPECIFIED", + "PIXELS", + "OUTLINES" + ], + "enumDescriptions": [ + "Should not be used.", + "Shows which pixel contributed to the image prediction.", + "Shows which region contributed to the image prediction by outlining the region." + ], + "type": "string" + } + }, + "type": "object" + }, + "XPSXpsOperationMetadata": { + "id": "XPSXpsOperationMetadata", + "properties": { + "exampleCount": { + "description": "Optional. XPS server can opt to provide example count of the long running operation (e.g. training, data importing, batch prediction).", + "format": "int64", + "type": "string" + }, + "reportingMetrics": { + "$ref": "XPSReportingMetrics", + "description": "Metrics for the operation. By the time the operation is terminated (whether succeeded or failed) as returned from XPS, AutoML BE assumes the metrics are finalized. AutoML BE transparently posts the metrics to Chemist if it's not empty, regardless of the response content or error type. If user is supposed to be charged in case of cancellation/error, this field should be set. In the case where the type of LRO doesn't require any billing, this field should be left unset." + }, + "tablesTrainingOperationMetadata": { + "$ref": "XPSTablesTrainingOperationMetadata" + }, + "videoBatchPredictOperationMetadata": { + "$ref": "XPSVideoBatchPredictOperationMetadata" + }, + "videoTrainingOperationMetadata": { + "$ref": "XPSVideoTrainingOperationMetadata" + }, + "visionTrainingOperationMetadata": { + "$ref": "XPSVisionTrainingOperationMetadata" + } + }, + "type": "object" + }, + "XPSXraiAttribution": { + "deprecated": true, + "description": "An explanation method that redistributes Integrated Gradients attributions to segmented regions, taking advantage of the model's fully differentiable structure. Refer to this paper for more details: https://arxiv.org/abs/1906.02825 Only supports image Models (modality is IMAGE).", + "id": "XPSXraiAttribution", + "properties": { + "stepCount": { + "description": "The number of steps for approximating the path integral. A good value to start is 50 and gradually increase until the sum to diff property is met within the desired error range. Valid range of its value is [1, 100], inclusively.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" } } } diff --git a/discovery/googleapis/libraryagent__v1.json b/discovery/googleapis/libraryagent__v1.json index 58d3000d5..f20c7796a 100644 --- a/discovery/googleapis/libraryagent__v1.json +++ b/discovery/googleapis/libraryagent__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240226", "rootUrl": "https://libraryagent.googleapis.com/", "servicePath": "", "title": "Library Agent API", diff --git a/discovery/googleapis/licensing__v1.json b/discovery/googleapis/licensing__v1.json index 0861a6461..63cacc3bf 100644 --- a/discovery/googleapis/licensing__v1.json +++ b/discovery/googleapis/licensing__v1.json @@ -24,7 +24,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231118", + "revision": "20240226", "rootUrl": "https://licensing.googleapis.com/", "servicePath": "", "title": "Enterprise License Manager API", diff --git a/discovery/googleapis/localservices__v1.json b/discovery/googleapis/localservices__v1.json index a3085d327..56630edcf 100644 --- a/discovery/googleapis/localservices__v1.json +++ b/discovery/googleapis/localservices__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240226", "rootUrl": "https://localservices.googleapis.com/", "servicePath": "", "title": "Local Services API", @@ -430,6 +430,11 @@ "description": "Location of the associated account's home city.", "type": "string" }, + "googleAdsLeadId": { + "description": "Unique identifier of a Detailed Lead Report.", + "format": "int64", + "type": "string" + }, "leadCategory": { "description": "Lead category (e.g. hvac, plumber)", "type": "string" @@ -440,7 +445,7 @@ "type": "string" }, "leadId": { - "description": "Unique identifier of a Detailed Lead Report.", + "description": "Deprecated in favor of google_ads_lead_id. Unique identifier of a Detailed Lead Report.", "format": "int64", "type": "string" }, diff --git a/discovery/googleapis/logging__v2.json b/discovery/googleapis/logging__v2.json index 7ec4f8cb6..0ae30623b 100644 --- a/discovery/googleapis/logging__v2.json +++ b/discovery/googleapis/logging__v2.json @@ -44,7 +44,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231110", + "revision": "20240207", "rootUrl": "https://logging.googleapis.com/", "servicePath": "", "title": "Cloud Logging API", @@ -131,7 +131,7 @@ "billingAccounts": { "methods": { "getCmekSettings": { - "description": "Gets the Logging CMEK settings for the given resource.Note: CMEK for the Log Router can be configured for Google Cloud projects, folders, organizations and billing accounts. Once configured for an organization, it applies to all projects and folders in the Google Cloud organization.See Enabling CMEK for Log Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information.", + "description": "Gets the Logging CMEK settings for the given resource.Note: CMEK for the Log Router can be configured for Google Cloud projects, folders, organizations, and billing accounts. Once configured for an organization, it applies to all projects and folders in the Google Cloud organization.See Enabling CMEK for Log Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information.", "flatPath": "v2/billingAccounts/{billingAccountsId}/cmekSettings", "httpMethod": "GET", "id": "logging.billingAccounts.getCmekSettings", @@ -140,7 +140,7 @@ ], "parameters": { "name": { - "description": "Required. The resource for which to retrieve CMEK settings. \"projects/[PROJECT_ID]/cmekSettings\" \"organizations/[ORGANIZATION_ID]/cmekSettings\" \"billingAccounts/[BILLING_ACCOUNT_ID]/cmekSettings\" \"folders/[FOLDER_ID]/cmekSettings\" For example:\"organizations/12345/cmekSettings\"Note: CMEK for the Log Router can be configured for Google Cloud projects, folders, organizations and billing accounts. Once configured for an organization, it applies to all projects and folders in the Google Cloud organization.", + "description": "Required. The resource for which to retrieve CMEK settings. \"projects/[PROJECT_ID]/cmekSettings\" \"organizations/[ORGANIZATION_ID]/cmekSettings\" \"billingAccounts/[BILLING_ACCOUNT_ID]/cmekSettings\" \"folders/[FOLDER_ID]/cmekSettings\" For example:\"organizations/12345/cmekSettings\"Note: CMEK for the Log Router can be configured for Google Cloud projects, folders, organizations, and billing accounts. Once configured for an organization, it applies to all projects and folders in the Google Cloud organization.", "location": "path", "pattern": "^billingAccounts/[^/]+$", "required": true, @@ -159,7 +159,7 @@ ] }, "getSettings": { - "description": "Gets the Log Router settings for the given resource.Note: Settings for the Log Router can be get for Google Cloud projects, folders, organizations and billing accounts. Currently it can only be configured for organizations. Once configured for an organization, it applies to all projects and folders in the Google Cloud organization.See Enabling CMEK for Log Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information.", + "description": "Gets the settings for the given resource.Note: Settings can be retrieved for Google Cloud projects, folders, organizations, and billing accounts.See View default resource settings for Logging (https://cloud.google.com/logging/docs/default-settings#view-org-settings) for more information.", "flatPath": "v2/billingAccounts/{billingAccountsId}/settings", "httpMethod": "GET", "id": "logging.billingAccounts.getSettings", @@ -168,7 +168,7 @@ ], "parameters": { "name": { - "description": "Required. The resource for which to retrieve settings. \"projects/[PROJECT_ID]/settings\" \"organizations/[ORGANIZATION_ID]/settings\" \"billingAccounts/[BILLING_ACCOUNT_ID]/settings\" \"folders/[FOLDER_ID]/settings\" For example:\"organizations/12345/settings\"Note: Settings for the Log Router can be get for Google Cloud projects, folders, organizations and billing accounts. Currently it can only be configured for organizations. Once configured for an organization, it applies to all projects and folders in the Google Cloud organization.", + "description": "Required. The resource for which to retrieve settings. \"projects/[PROJECT_ID]/settings\" \"organizations/[ORGANIZATION_ID]/settings\" \"billingAccounts/[BILLING_ACCOUNT_ID]/settings\" \"folders/[FOLDER_ID]/settings\" For example:\"organizations/12345/settings\"Note: Settings can be retrieved for Google Cloud projects, folders, organizations, and billing accounts.", "location": "path", "pattern": "^billingAccounts/[^/]+$", "required": true, @@ -950,7 +950,7 @@ ] }, "patch": { - "description": "Updates a view on a log bucket. This method replaces the following fields in the existing view with values from the new view: filter. If an UNAVAILABLE error is returned, this indicates that system is not in a state where it can update the view. If this occurs, please try again in a few minutes.", + "description": "Updates a view on a log bucket. This method replaces the value of the filter field from the existing view with the corresponding value from the new view. If an UNAVAILABLE error is returned, this indicates that system is not in a state where it can update the view. If this occurs, please try again in a few minutes.", "flatPath": "v2/billingAccounts/{billingAccountsId}/locations/{locationsId}/buckets/{bucketsId}/views/{viewsId}", "httpMethod": "PATCH", "id": "logging.billingAccounts.locations.buckets.views.patch", @@ -1206,7 +1206,7 @@ "type": "string" }, "savedQueryId": { - "description": "Optional. The ID to use for the saved query, which will become the final component of the saved query's resource name.If the saved_query_id is not provided, the system will generate an alphanumeric ID.The saved_query_id is limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods. First character has to be alphanumeric.", + "description": "Optional. The ID to use for the saved query, which will become the final component of the saved query's resource name.If the saved_query_id is not provided, the system will generate an alphanumeric ID.The saved_query_id is limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, periods.First character has to be alphanumeric.", "location": "query", "type": "string" } @@ -1502,7 +1502,7 @@ ] }, "patch": { - "description": "Updates a sink. This method replaces the following fields in the existing sink with values from the new sink: destination, and filter.The updated sink might also have a new writer_identity; see the unique_writer_identity field.", + "description": "Updates a sink. This method replaces the values of the destination and filter fields of the existing sink with the corresponding values from the new sink.The updated sink might also have a new writer_identity; see the unique_writer_identity field.", "flatPath": "v2/billingAccounts/{billingAccountsId}/sinks/{sinksId}", "httpMethod": "PATCH", "id": "logging.billingAccounts.sinks.patch", @@ -1547,7 +1547,7 @@ ] }, "update": { - "description": "Updates a sink. This method replaces the following fields in the existing sink with values from the new sink: destination, and filter.The updated sink might also have a new writer_identity; see the unique_writer_identity field.", + "description": "Updates a sink. This method replaces the values of the destination and filter fields of the existing sink with the corresponding values from the new sink.The updated sink might also have a new writer_identity; see the unique_writer_identity field.", "flatPath": "v2/billingAccounts/{billingAccountsId}/sinks/{sinksId}", "httpMethod": "PUT", "id": "logging.billingAccounts.sinks.update", @@ -1844,7 +1844,7 @@ "folders": { "methods": { "getCmekSettings": { - "description": "Gets the Logging CMEK settings for the given resource.Note: CMEK for the Log Router can be configured for Google Cloud projects, folders, organizations and billing accounts. Once configured for an organization, it applies to all projects and folders in the Google Cloud organization.See Enabling CMEK for Log Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information.", + "description": "Gets the Logging CMEK settings for the given resource.Note: CMEK for the Log Router can be configured for Google Cloud projects, folders, organizations, and billing accounts. Once configured for an organization, it applies to all projects and folders in the Google Cloud organization.See Enabling CMEK for Log Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information.", "flatPath": "v2/folders/{foldersId}/cmekSettings", "httpMethod": "GET", "id": "logging.folders.getCmekSettings", @@ -1853,7 +1853,7 @@ ], "parameters": { "name": { - "description": "Required. The resource for which to retrieve CMEK settings. \"projects/[PROJECT_ID]/cmekSettings\" \"organizations/[ORGANIZATION_ID]/cmekSettings\" \"billingAccounts/[BILLING_ACCOUNT_ID]/cmekSettings\" \"folders/[FOLDER_ID]/cmekSettings\" For example:\"organizations/12345/cmekSettings\"Note: CMEK for the Log Router can be configured for Google Cloud projects, folders, organizations and billing accounts. Once configured for an organization, it applies to all projects and folders in the Google Cloud organization.", + "description": "Required. The resource for which to retrieve CMEK settings. \"projects/[PROJECT_ID]/cmekSettings\" \"organizations/[ORGANIZATION_ID]/cmekSettings\" \"billingAccounts/[BILLING_ACCOUNT_ID]/cmekSettings\" \"folders/[FOLDER_ID]/cmekSettings\" For example:\"organizations/12345/cmekSettings\"Note: CMEK for the Log Router can be configured for Google Cloud projects, folders, organizations, and billing accounts. Once configured for an organization, it applies to all projects and folders in the Google Cloud organization.", "location": "path", "pattern": "^folders/[^/]+$", "required": true, @@ -1872,7 +1872,7 @@ ] }, "getSettings": { - "description": "Gets the Log Router settings for the given resource.Note: Settings for the Log Router can be get for Google Cloud projects, folders, organizations and billing accounts. Currently it can only be configured for organizations. Once configured for an organization, it applies to all projects and folders in the Google Cloud organization.See Enabling CMEK for Log Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information.", + "description": "Gets the settings for the given resource.Note: Settings can be retrieved for Google Cloud projects, folders, organizations, and billing accounts.See View default resource settings for Logging (https://cloud.google.com/logging/docs/default-settings#view-org-settings) for more information.", "flatPath": "v2/folders/{foldersId}/settings", "httpMethod": "GET", "id": "logging.folders.getSettings", @@ -1881,7 +1881,7 @@ ], "parameters": { "name": { - "description": "Required. The resource for which to retrieve settings. \"projects/[PROJECT_ID]/settings\" \"organizations/[ORGANIZATION_ID]/settings\" \"billingAccounts/[BILLING_ACCOUNT_ID]/settings\" \"folders/[FOLDER_ID]/settings\" For example:\"organizations/12345/settings\"Note: Settings for the Log Router can be get for Google Cloud projects, folders, organizations and billing accounts. Currently it can only be configured for organizations. Once configured for an organization, it applies to all projects and folders in the Google Cloud organization.", + "description": "Required. The resource for which to retrieve settings. \"projects/[PROJECT_ID]/settings\" \"organizations/[ORGANIZATION_ID]/settings\" \"billingAccounts/[BILLING_ACCOUNT_ID]/settings\" \"folders/[FOLDER_ID]/settings\" For example:\"organizations/12345/settings\"Note: Settings can be retrieved for Google Cloud projects, folders, organizations, and billing accounts.", "location": "path", "pattern": "^folders/[^/]+$", "required": true, @@ -1900,7 +1900,7 @@ ] }, "updateSettings": { - "description": "Updates the Log Router settings for the given resource.Note: Settings for the Log Router can currently only be configured for Google Cloud organizations. Once configured, it applies to all projects and folders in the Google Cloud organization.UpdateSettings will fail if 1) kms_key_name is invalid, or 2) the associated service account does not have the required roles/cloudkms.cryptoKeyEncrypterDecrypter role assigned for the key, or 3) access to the key is disabled. 4) location_id is not supported by Logging. 5) location_id violate OrgPolicy.See Enabling CMEK for Log Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information.", + "description": "Updates the settings for the given resource. This method applies to all feature configurations for organization and folders.UpdateSettings fails when any of the following are true: The value of storage_location either isn't supported by Logging or violates the location OrgPolicy. The default_sink_config field is set, but it has an unspecified filter write mode. The value of kms_key_name is invalid. The associated service account doesn't have the required roles/cloudkms.cryptoKeyEncrypterDecrypter role assigned for the key. Access to the key is disabled.See Configure default settings for organizations and folders (https://cloud.google.com/logging/docs/default-settings) for more information.", "flatPath": "v2/folders/{foldersId}/settings", "httpMethod": "PATCH", "id": "logging.folders.updateSettings", @@ -1909,7 +1909,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name for the settings to update. \"organizations/[ORGANIZATION_ID]/settings\" For example:\"organizations/12345/settings\"Note: Settings for the Log Router can currently only be configured for Google Cloud organizations. Once configured, it applies to all projects and folders in the Google Cloud organization.", + "description": "Required. The resource name for the settings to update. \"organizations/[ORGANIZATION_ID]/settings\" For example:\"organizations/12345/settings\"", "location": "path", "pattern": "^folders/[^/]+$", "required": true, @@ -2698,7 +2698,7 @@ ] }, "patch": { - "description": "Updates a view on a log bucket. This method replaces the following fields in the existing view with values from the new view: filter. If an UNAVAILABLE error is returned, this indicates that system is not in a state where it can update the view. If this occurs, please try again in a few minutes.", + "description": "Updates a view on a log bucket. This method replaces the value of the filter field from the existing view with the corresponding value from the new view. If an UNAVAILABLE error is returned, this indicates that system is not in a state where it can update the view. If this occurs, please try again in a few minutes.", "flatPath": "v2/folders/{foldersId}/locations/{locationsId}/buckets/{bucketsId}/views/{viewsId}", "httpMethod": "PATCH", "id": "logging.folders.locations.buckets.views.patch", @@ -2954,7 +2954,7 @@ "type": "string" }, "savedQueryId": { - "description": "Optional. The ID to use for the saved query, which will become the final component of the saved query's resource name.If the saved_query_id is not provided, the system will generate an alphanumeric ID.The saved_query_id is limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods. First character has to be alphanumeric.", + "description": "Optional. The ID to use for the saved query, which will become the final component of the saved query's resource name.If the saved_query_id is not provided, the system will generate an alphanumeric ID.The saved_query_id is limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, periods.First character has to be alphanumeric.", "location": "query", "type": "string" } @@ -3250,7 +3250,7 @@ ] }, "patch": { - "description": "Updates a sink. This method replaces the following fields in the existing sink with values from the new sink: destination, and filter.The updated sink might also have a new writer_identity; see the unique_writer_identity field.", + "description": "Updates a sink. This method replaces the values of the destination and filter fields of the existing sink with the corresponding values from the new sink.The updated sink might also have a new writer_identity; see the unique_writer_identity field.", "flatPath": "v2/folders/{foldersId}/sinks/{sinksId}", "httpMethod": "PATCH", "id": "logging.folders.sinks.patch", @@ -3295,7 +3295,7 @@ ] }, "update": { - "description": "Updates a sink. This method replaces the following fields in the existing sink with values from the new sink: destination, and filter.The updated sink might also have a new writer_identity; see the unique_writer_identity field.", + "description": "Updates a sink. This method replaces the values of the destination and filter fields of the existing sink with the corresponding values from the new sink.The updated sink might also have a new writer_identity; see the unique_writer_identity field.", "flatPath": "v2/folders/{foldersId}/sinks/{sinksId}", "httpMethod": "PUT", "id": "logging.folders.sinks.update", @@ -3944,7 +3944,7 @@ ] }, "patch": { - "description": "Updates a view on a log bucket. This method replaces the following fields in the existing view with values from the new view: filter. If an UNAVAILABLE error is returned, this indicates that system is not in a state where it can update the view. If this occurs, please try again in a few minutes.", + "description": "Updates a view on a log bucket. This method replaces the value of the filter field from the existing view with the corresponding value from the new view. If an UNAVAILABLE error is returned, this indicates that system is not in a state where it can update the view. If this occurs, please try again in a few minutes.", "flatPath": "v2/{v2Id}/{v2Id1}/locations/{locationsId}/buckets/{bucketsId}/views/{viewsId}", "httpMethod": "PATCH", "id": "logging.locations.buckets.views.patch", @@ -4201,7 +4201,7 @@ "organizations": { "methods": { "getCmekSettings": { - "description": "Gets the Logging CMEK settings for the given resource.Note: CMEK for the Log Router can be configured for Google Cloud projects, folders, organizations and billing accounts. Once configured for an organization, it applies to all projects and folders in the Google Cloud organization.See Enabling CMEK for Log Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information.", + "description": "Gets the Logging CMEK settings for the given resource.Note: CMEK for the Log Router can be configured for Google Cloud projects, folders, organizations, and billing accounts. Once configured for an organization, it applies to all projects and folders in the Google Cloud organization.See Enabling CMEK for Log Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information.", "flatPath": "v2/organizations/{organizationsId}/cmekSettings", "httpMethod": "GET", "id": "logging.organizations.getCmekSettings", @@ -4210,7 +4210,7 @@ ], "parameters": { "name": { - "description": "Required. The resource for which to retrieve CMEK settings. \"projects/[PROJECT_ID]/cmekSettings\" \"organizations/[ORGANIZATION_ID]/cmekSettings\" \"billingAccounts/[BILLING_ACCOUNT_ID]/cmekSettings\" \"folders/[FOLDER_ID]/cmekSettings\" For example:\"organizations/12345/cmekSettings\"Note: CMEK for the Log Router can be configured for Google Cloud projects, folders, organizations and billing accounts. Once configured for an organization, it applies to all projects and folders in the Google Cloud organization.", + "description": "Required. The resource for which to retrieve CMEK settings. \"projects/[PROJECT_ID]/cmekSettings\" \"organizations/[ORGANIZATION_ID]/cmekSettings\" \"billingAccounts/[BILLING_ACCOUNT_ID]/cmekSettings\" \"folders/[FOLDER_ID]/cmekSettings\" For example:\"organizations/12345/cmekSettings\"Note: CMEK for the Log Router can be configured for Google Cloud projects, folders, organizations, and billing accounts. Once configured for an organization, it applies to all projects and folders in the Google Cloud organization.", "location": "path", "pattern": "^organizations/[^/]+$", "required": true, @@ -4229,7 +4229,7 @@ ] }, "getSettings": { - "description": "Gets the Log Router settings for the given resource.Note: Settings for the Log Router can be get for Google Cloud projects, folders, organizations and billing accounts. Currently it can only be configured for organizations. Once configured for an organization, it applies to all projects and folders in the Google Cloud organization.See Enabling CMEK for Log Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information.", + "description": "Gets the settings for the given resource.Note: Settings can be retrieved for Google Cloud projects, folders, organizations, and billing accounts.See View default resource settings for Logging (https://cloud.google.com/logging/docs/default-settings#view-org-settings) for more information.", "flatPath": "v2/organizations/{organizationsId}/settings", "httpMethod": "GET", "id": "logging.organizations.getSettings", @@ -4238,7 +4238,7 @@ ], "parameters": { "name": { - "description": "Required. The resource for which to retrieve settings. \"projects/[PROJECT_ID]/settings\" \"organizations/[ORGANIZATION_ID]/settings\" \"billingAccounts/[BILLING_ACCOUNT_ID]/settings\" \"folders/[FOLDER_ID]/settings\" For example:\"organizations/12345/settings\"Note: Settings for the Log Router can be get for Google Cloud projects, folders, organizations and billing accounts. Currently it can only be configured for organizations. Once configured for an organization, it applies to all projects and folders in the Google Cloud organization.", + "description": "Required. The resource for which to retrieve settings. \"projects/[PROJECT_ID]/settings\" \"organizations/[ORGANIZATION_ID]/settings\" \"billingAccounts/[BILLING_ACCOUNT_ID]/settings\" \"folders/[FOLDER_ID]/settings\" For example:\"organizations/12345/settings\"Note: Settings can be retrieved for Google Cloud projects, folders, organizations, and billing accounts.", "location": "path", "pattern": "^organizations/[^/]+$", "required": true, @@ -4257,7 +4257,7 @@ ] }, "updateCmekSettings": { - "description": "Updates the Log Router CMEK settings for the given resource.Note: CMEK for the Log Router can currently only be configured for Google Cloud organizations. Once configured, it applies to all projects and folders in the Google Cloud organization.UpdateCmekSettings will fail if 1) kms_key_name is invalid, or 2) the associated service account does not have the required roles/cloudkms.cryptoKeyEncrypterDecrypter role assigned for the key, or 3) access to the key is disabled.See Enabling CMEK for Log Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information.", + "description": "Updates the Log Router CMEK settings for the given resource.Note: CMEK for the Log Router can currently only be configured for Google Cloud organizations. Once configured, it applies to all projects and folders in the Google Cloud organization.UpdateCmekSettings fails when any of the following are true: The value of kms_key_name is invalid. The associated service account doesn't have the required roles/cloudkms.cryptoKeyEncrypterDecrypter role assigned for the key. Access to the key is disabled.See Enabling CMEK for Log Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information.", "flatPath": "v2/organizations/{organizationsId}/cmekSettings", "httpMethod": "PATCH", "id": "logging.organizations.updateCmekSettings", @@ -4292,7 +4292,7 @@ ] }, "updateSettings": { - "description": "Updates the Log Router settings for the given resource.Note: Settings for the Log Router can currently only be configured for Google Cloud organizations. Once configured, it applies to all projects and folders in the Google Cloud organization.UpdateSettings will fail if 1) kms_key_name is invalid, or 2) the associated service account does not have the required roles/cloudkms.cryptoKeyEncrypterDecrypter role assigned for the key, or 3) access to the key is disabled. 4) location_id is not supported by Logging. 5) location_id violate OrgPolicy.See Enabling CMEK for Log Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information.", + "description": "Updates the settings for the given resource. This method applies to all feature configurations for organization and folders.UpdateSettings fails when any of the following are true: The value of storage_location either isn't supported by Logging or violates the location OrgPolicy. The default_sink_config field is set, but it has an unspecified filter write mode. The value of kms_key_name is invalid. The associated service account doesn't have the required roles/cloudkms.cryptoKeyEncrypterDecrypter role assigned for the key. Access to the key is disabled.See Configure default settings for organizations and folders (https://cloud.google.com/logging/docs/default-settings) for more information.", "flatPath": "v2/organizations/{organizationsId}/settings", "httpMethod": "PATCH", "id": "logging.organizations.updateSettings", @@ -4301,7 +4301,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name for the settings to update. \"organizations/[ORGANIZATION_ID]/settings\" For example:\"organizations/12345/settings\"Note: Settings for the Log Router can currently only be configured for Google Cloud organizations. Once configured, it applies to all projects and folders in the Google Cloud organization.", + "description": "Required. The resource name for the settings to update. \"organizations/[ORGANIZATION_ID]/settings\" For example:\"organizations/12345/settings\"", "location": "path", "pattern": "^organizations/[^/]+$", "required": true, @@ -5090,7 +5090,7 @@ ] }, "patch": { - "description": "Updates a view on a log bucket. This method replaces the following fields in the existing view with values from the new view: filter. If an UNAVAILABLE error is returned, this indicates that system is not in a state where it can update the view. If this occurs, please try again in a few minutes.", + "description": "Updates a view on a log bucket. This method replaces the value of the filter field from the existing view with the corresponding value from the new view. If an UNAVAILABLE error is returned, this indicates that system is not in a state where it can update the view. If this occurs, please try again in a few minutes.", "flatPath": "v2/organizations/{organizationsId}/locations/{locationsId}/buckets/{bucketsId}/views/{viewsId}", "httpMethod": "PATCH", "id": "logging.organizations.locations.buckets.views.patch", @@ -5346,7 +5346,7 @@ "type": "string" }, "savedQueryId": { - "description": "Optional. The ID to use for the saved query, which will become the final component of the saved query's resource name.If the saved_query_id is not provided, the system will generate an alphanumeric ID.The saved_query_id is limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods. First character has to be alphanumeric.", + "description": "Optional. The ID to use for the saved query, which will become the final component of the saved query's resource name.If the saved_query_id is not provided, the system will generate an alphanumeric ID.The saved_query_id is limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, periods.First character has to be alphanumeric.", "location": "query", "type": "string" } @@ -5642,7 +5642,7 @@ ] }, "patch": { - "description": "Updates a sink. This method replaces the following fields in the existing sink with values from the new sink: destination, and filter.The updated sink might also have a new writer_identity; see the unique_writer_identity field.", + "description": "Updates a sink. This method replaces the values of the destination and filter fields of the existing sink with the corresponding values from the new sink.The updated sink might also have a new writer_identity; see the unique_writer_identity field.", "flatPath": "v2/organizations/{organizationsId}/sinks/{sinksId}", "httpMethod": "PATCH", "id": "logging.organizations.sinks.patch", @@ -5687,7 +5687,7 @@ ] }, "update": { - "description": "Updates a sink. This method replaces the following fields in the existing sink with values from the new sink: destination, and filter.The updated sink might also have a new writer_identity; see the unique_writer_identity field.", + "description": "Updates a sink. This method replaces the values of the destination and filter fields of the existing sink with the corresponding values from the new sink.The updated sink might also have a new writer_identity; see the unique_writer_identity field.", "flatPath": "v2/organizations/{organizationsId}/sinks/{sinksId}", "httpMethod": "PUT", "id": "logging.organizations.sinks.update", @@ -5738,7 +5738,7 @@ "projects": { "methods": { "getCmekSettings": { - "description": "Gets the Logging CMEK settings for the given resource.Note: CMEK for the Log Router can be configured for Google Cloud projects, folders, organizations and billing accounts. Once configured for an organization, it applies to all projects and folders in the Google Cloud organization.See Enabling CMEK for Log Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information.", + "description": "Gets the Logging CMEK settings for the given resource.Note: CMEK for the Log Router can be configured for Google Cloud projects, folders, organizations, and billing accounts. Once configured for an organization, it applies to all projects and folders in the Google Cloud organization.See Enabling CMEK for Log Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information.", "flatPath": "v2/projects/{projectsId}/cmekSettings", "httpMethod": "GET", "id": "logging.projects.getCmekSettings", @@ -5747,7 +5747,7 @@ ], "parameters": { "name": { - "description": "Required. The resource for which to retrieve CMEK settings. \"projects/[PROJECT_ID]/cmekSettings\" \"organizations/[ORGANIZATION_ID]/cmekSettings\" \"billingAccounts/[BILLING_ACCOUNT_ID]/cmekSettings\" \"folders/[FOLDER_ID]/cmekSettings\" For example:\"organizations/12345/cmekSettings\"Note: CMEK for the Log Router can be configured for Google Cloud projects, folders, organizations and billing accounts. Once configured for an organization, it applies to all projects and folders in the Google Cloud organization.", + "description": "Required. The resource for which to retrieve CMEK settings. \"projects/[PROJECT_ID]/cmekSettings\" \"organizations/[ORGANIZATION_ID]/cmekSettings\" \"billingAccounts/[BILLING_ACCOUNT_ID]/cmekSettings\" \"folders/[FOLDER_ID]/cmekSettings\" For example:\"organizations/12345/cmekSettings\"Note: CMEK for the Log Router can be configured for Google Cloud projects, folders, organizations, and billing accounts. Once configured for an organization, it applies to all projects and folders in the Google Cloud organization.", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -5766,7 +5766,7 @@ ] }, "getSettings": { - "description": "Gets the Log Router settings for the given resource.Note: Settings for the Log Router can be get for Google Cloud projects, folders, organizations and billing accounts. Currently it can only be configured for organizations. Once configured for an organization, it applies to all projects and folders in the Google Cloud organization.See Enabling CMEK for Log Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information.", + "description": "Gets the settings for the given resource.Note: Settings can be retrieved for Google Cloud projects, folders, organizations, and billing accounts.See View default resource settings for Logging (https://cloud.google.com/logging/docs/default-settings#view-org-settings) for more information.", "flatPath": "v2/projects/{projectsId}/settings", "httpMethod": "GET", "id": "logging.projects.getSettings", @@ -5775,7 +5775,7 @@ ], "parameters": { "name": { - "description": "Required. The resource for which to retrieve settings. \"projects/[PROJECT_ID]/settings\" \"organizations/[ORGANIZATION_ID]/settings\" \"billingAccounts/[BILLING_ACCOUNT_ID]/settings\" \"folders/[FOLDER_ID]/settings\" For example:\"organizations/12345/settings\"Note: Settings for the Log Router can be get for Google Cloud projects, folders, organizations and billing accounts. Currently it can only be configured for organizations. Once configured for an organization, it applies to all projects and folders in the Google Cloud organization.", + "description": "Required. The resource for which to retrieve settings. \"projects/[PROJECT_ID]/settings\" \"organizations/[ORGANIZATION_ID]/settings\" \"billingAccounts/[BILLING_ACCOUNT_ID]/settings\" \"folders/[FOLDER_ID]/settings\" For example:\"organizations/12345/settings\"Note: Settings can be retrieved for Google Cloud projects, folders, organizations, and billing accounts.", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -6557,7 +6557,7 @@ ] }, "patch": { - "description": "Updates a view on a log bucket. This method replaces the following fields in the existing view with values from the new view: filter. If an UNAVAILABLE error is returned, this indicates that system is not in a state where it can update the view. If this occurs, please try again in a few minutes.", + "description": "Updates a view on a log bucket. This method replaces the value of the filter field from the existing view with the corresponding value from the new view. If an UNAVAILABLE error is returned, this indicates that system is not in a state where it can update the view. If this occurs, please try again in a few minutes.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/buckets/{bucketsId}/views/{viewsId}", "httpMethod": "PATCH", "id": "logging.projects.locations.buckets.views.patch", @@ -6813,7 +6813,7 @@ "type": "string" }, "savedQueryId": { - "description": "Optional. The ID to use for the saved query, which will become the final component of the saved query's resource name.If the saved_query_id is not provided, the system will generate an alphanumeric ID.The saved_query_id is limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods. First character has to be alphanumeric.", + "description": "Optional. The ID to use for the saved query, which will become the final component of the saved query's resource name.If the saved_query_id is not provided, the system will generate an alphanumeric ID.The saved_query_id is limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, periods.First character has to be alphanumeric.", "location": "query", "type": "string" } @@ -7267,7 +7267,7 @@ ] }, "patch": { - "description": "Updates a sink. This method replaces the following fields in the existing sink with values from the new sink: destination, and filter.The updated sink might also have a new writer_identity; see the unique_writer_identity field.", + "description": "Updates a sink. This method replaces the values of the destination and filter fields of the existing sink with the corresponding values from the new sink.The updated sink might also have a new writer_identity; see the unique_writer_identity field.", "flatPath": "v2/projects/{projectsId}/sinks/{sinksId}", "httpMethod": "PATCH", "id": "logging.projects.sinks.patch", @@ -7312,7 +7312,7 @@ ] }, "update": { - "description": "Updates a sink. This method replaces the following fields in the existing sink with values from the new sink: destination, and filter.The updated sink might also have a new writer_identity; see the unique_writer_identity field.", + "description": "Updates a sink. This method replaces the values of the destination and filter fields of the existing sink with the corresponding values from the new sink.The updated sink might also have a new writer_identity; see the unique_writer_identity field.", "flatPath": "v2/projects/{projectsId}/sinks/{sinksId}", "httpMethod": "PUT", "id": "logging.projects.sinks.update", @@ -7495,7 +7495,7 @@ ] }, "update": { - "description": "Updates a sink. This method replaces the following fields in the existing sink with values from the new sink: destination, and filter.The updated sink might also have a new writer_identity; see the unique_writer_identity field.", + "description": "Updates a sink. This method replaces the values of the destination and filter fields of the existing sink with the corresponding values from the new sink.The updated sink might also have a new writer_identity; see the unique_writer_identity field.", "flatPath": "v2/{v2Id}/{v2Id1}/sinks/{sinksId}", "httpMethod": "PUT", "id": "logging.sinks.update", @@ -7544,7 +7544,7 @@ "v2": { "methods": { "getCmekSettings": { - "description": "Gets the Logging CMEK settings for the given resource.Note: CMEK for the Log Router can be configured for Google Cloud projects, folders, organizations and billing accounts. Once configured for an organization, it applies to all projects and folders in the Google Cloud organization.See Enabling CMEK for Log Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information.", + "description": "Gets the Logging CMEK settings for the given resource.Note: CMEK for the Log Router can be configured for Google Cloud projects, folders, organizations, and billing accounts. Once configured for an organization, it applies to all projects and folders in the Google Cloud organization.See Enabling CMEK for Log Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information.", "flatPath": "v2/{v2Id}/{v2Id1}/cmekSettings", "httpMethod": "GET", "id": "logging.getCmekSettings", @@ -7553,7 +7553,7 @@ ], "parameters": { "name": { - "description": "Required. The resource for which to retrieve CMEK settings. \"projects/[PROJECT_ID]/cmekSettings\" \"organizations/[ORGANIZATION_ID]/cmekSettings\" \"billingAccounts/[BILLING_ACCOUNT_ID]/cmekSettings\" \"folders/[FOLDER_ID]/cmekSettings\" For example:\"organizations/12345/cmekSettings\"Note: CMEK for the Log Router can be configured for Google Cloud projects, folders, organizations and billing accounts. Once configured for an organization, it applies to all projects and folders in the Google Cloud organization.", + "description": "Required. The resource for which to retrieve CMEK settings. \"projects/[PROJECT_ID]/cmekSettings\" \"organizations/[ORGANIZATION_ID]/cmekSettings\" \"billingAccounts/[BILLING_ACCOUNT_ID]/cmekSettings\" \"folders/[FOLDER_ID]/cmekSettings\" For example:\"organizations/12345/cmekSettings\"Note: CMEK for the Log Router can be configured for Google Cloud projects, folders, organizations, and billing accounts. Once configured for an organization, it applies to all projects and folders in the Google Cloud organization.", "location": "path", "pattern": "^[^/]+/[^/]+$", "required": true, @@ -7572,7 +7572,7 @@ ] }, "getSettings": { - "description": "Gets the Log Router settings for the given resource.Note: Settings for the Log Router can be get for Google Cloud projects, folders, organizations and billing accounts. Currently it can only be configured for organizations. Once configured for an organization, it applies to all projects and folders in the Google Cloud organization.See Enabling CMEK for Log Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information.", + "description": "Gets the settings for the given resource.Note: Settings can be retrieved for Google Cloud projects, folders, organizations, and billing accounts.See View default resource settings for Logging (https://cloud.google.com/logging/docs/default-settings#view-org-settings) for more information.", "flatPath": "v2/{v2Id}/{v2Id1}/settings", "httpMethod": "GET", "id": "logging.getSettings", @@ -7581,7 +7581,7 @@ ], "parameters": { "name": { - "description": "Required. The resource for which to retrieve settings. \"projects/[PROJECT_ID]/settings\" \"organizations/[ORGANIZATION_ID]/settings\" \"billingAccounts/[BILLING_ACCOUNT_ID]/settings\" \"folders/[FOLDER_ID]/settings\" For example:\"organizations/12345/settings\"Note: Settings for the Log Router can be get for Google Cloud projects, folders, organizations and billing accounts. Currently it can only be configured for organizations. Once configured for an organization, it applies to all projects and folders in the Google Cloud organization.", + "description": "Required. The resource for which to retrieve settings. \"projects/[PROJECT_ID]/settings\" \"organizations/[ORGANIZATION_ID]/settings\" \"billingAccounts/[BILLING_ACCOUNT_ID]/settings\" \"folders/[FOLDER_ID]/settings\" For example:\"organizations/12345/settings\"Note: Settings can be retrieved for Google Cloud projects, folders, organizations, and billing accounts.", "location": "path", "pattern": "^[^/]+/[^/]+$", "required": true, @@ -7600,7 +7600,7 @@ ] }, "updateCmekSettings": { - "description": "Updates the Log Router CMEK settings for the given resource.Note: CMEK for the Log Router can currently only be configured for Google Cloud organizations. Once configured, it applies to all projects and folders in the Google Cloud organization.UpdateCmekSettings will fail if 1) kms_key_name is invalid, or 2) the associated service account does not have the required roles/cloudkms.cryptoKeyEncrypterDecrypter role assigned for the key, or 3) access to the key is disabled.See Enabling CMEK for Log Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information.", + "description": "Updates the Log Router CMEK settings for the given resource.Note: CMEK for the Log Router can currently only be configured for Google Cloud organizations. Once configured, it applies to all projects and folders in the Google Cloud organization.UpdateCmekSettings fails when any of the following are true: The value of kms_key_name is invalid. The associated service account doesn't have the required roles/cloudkms.cryptoKeyEncrypterDecrypter role assigned for the key. Access to the key is disabled.See Enabling CMEK for Log Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information.", "flatPath": "v2/{v2Id}/{v2Id1}/cmekSettings", "httpMethod": "PATCH", "id": "logging.updateCmekSettings", @@ -7635,7 +7635,7 @@ ] }, "updateSettings": { - "description": "Updates the Log Router settings for the given resource.Note: Settings for the Log Router can currently only be configured for Google Cloud organizations. Once configured, it applies to all projects and folders in the Google Cloud organization.UpdateSettings will fail if 1) kms_key_name is invalid, or 2) the associated service account does not have the required roles/cloudkms.cryptoKeyEncrypterDecrypter role assigned for the key, or 3) access to the key is disabled. 4) location_id is not supported by Logging. 5) location_id violate OrgPolicy.See Enabling CMEK for Log Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information.", + "description": "Updates the settings for the given resource. This method applies to all feature configurations for organization and folders.UpdateSettings fails when any of the following are true: The value of storage_location either isn't supported by Logging or violates the location OrgPolicy. The default_sink_config field is set, but it has an unspecified filter write mode. The value of kms_key_name is invalid. The associated service account doesn't have the required roles/cloudkms.cryptoKeyEncrypterDecrypter role assigned for the key. Access to the key is disabled.See Configure default settings for organizations and folders (https://cloud.google.com/logging/docs/default-settings) for more information.", "flatPath": "v2/{v2Id}/{v2Id1}/settings", "httpMethod": "PATCH", "id": "logging.updateSettings", @@ -7644,7 +7644,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name for the settings to update. \"organizations/[ORGANIZATION_ID]/settings\" For example:\"organizations/12345/settings\"Note: Settings for the Log Router can currently only be configured for Google Cloud organizations. Once configured, it applies to all projects and folders in the Google Cloud organization.", + "description": "Required. The resource name for the settings to update. \"organizations/[ORGANIZATION_ID]/settings\" For example:\"organizations/12345/settings\"", "location": "path", "pattern": "^[^/]+/[^/]+$", "required": true, @@ -7720,7 +7720,7 @@ "type": "string" }, "state": { - "description": "State of an operation.", + "description": "Output only. State of an operation.", "enum": [ "OPERATION_STATE_UNSPECIFIED", "OPERATION_STATE_SCHEDULED", @@ -7728,7 +7728,8 @@ "OPERATION_STATE_RUNNING", "OPERATION_STATE_SUCCEEDED", "OPERATION_STATE_FAILED", - "OPERATION_STATE_CANCELLED" + "OPERATION_STATE_CANCELLED", + "OPERATION_STATE_PENDING" ], "enumDescriptions": [ "Should not be used.", @@ -7737,8 +7738,10 @@ "The operation is running.", "The operation was completed successfully.", "The operation failed.", - "The operation was cancelled by the user." + "The operation was cancelled by the user.", + "The operation is waiting for quota." ], + "readOnly": true, "type": "string" }, "updateBucketRequest": { @@ -7778,11 +7781,12 @@ "id": "CmekSettings", "properties": { "kmsKeyName": { - "description": "The resource name for the configured Cloud KMS key.KMS key name format: \"projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]\" For example:\"projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key\"To enable CMEK for the Log Router, set this field to a valid kms_key_name for which the associated service account has the needed cloudkms.cryptoKeyEncrypterDecrypter roles assigned for the key.The Cloud KMS key used by the Log Router can be updated by changing the kms_key_name to a new valid key name or disabled by setting the key name to an empty string. Encryption operations that are in progress will be completed with the key that was in use when they started. Decryption operations will be completed using the key that was used at the time of encryption unless access to that key has been revoked.To disable CMEK for the Log Router, set this field to an empty string.See Enabling CMEK for Log Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information.", + "description": "Optional. The resource name for the configured Cloud KMS key.KMS key name format: \"projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]\" For example:\"projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key\"To enable CMEK for the Log Router, set this field to a valid kms_key_name for which the associated service account has the needed cloudkms.cryptoKeyEncrypterDecrypter roles assigned for the key.The Cloud KMS key used by the Log Router can be updated by changing the kms_key_name to a new valid key name or disabled by setting the key name to an empty string. Encryption operations that are in progress will be completed with the key that was in use when they started. Decryption operations will be completed using the key that was used at the time of encryption unless access to that key has been revoked.To disable CMEK for the Log Router, set this field to an empty string.See Enabling CMEK for Log Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information.", "type": "string" }, "kmsKeyVersionName": { - "description": "The CryptoKeyVersion resource name for the configured Cloud KMS key.KMS key name format: \"projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]/cryptoKeyVersions/[VERSION]\" For example:\"projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key/cryptoKeyVersions/1\"This is a read-only field used to convey the specific configured CryptoKeyVersion of kms_key that has been configured. It will be populated in cases where the CMEK settings are bound to a single key version.If this field is populated, the kms_key is tied to a specific CryptoKeyVersion.", + "description": "Output only. The CryptoKeyVersion resource name for the configured Cloud KMS key.KMS key name format: \"projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]/cryptoKeyVersions/[VERSION]\" For example:\"projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key/cryptoKeyVersions/1\"This is a read-only field used to convey the specific configured CryptoKeyVersion of kms_key that has been configured. It will be populated in cases where the CMEK settings are bound to a single key version.If this field is populated, the kms_key is tied to a specific CryptoKeyVersion.", + "readOnly": true, "type": "string" }, "name": { @@ -7806,6 +7810,10 @@ "description": "Identifies whether the user has requested cancellation of the operation.", "type": "boolean" }, + "destination": { + "description": "Destination to which to copy log entries.For example, a Cloud Storage bucket:\"storage.googleapis.com/my-cloud-storage-bucket\"", + "type": "string" + }, "endTime": { "description": "The end time of an operation.", "format": "google-datetime", @@ -7820,13 +7828,17 @@ "$ref": "CopyLogEntriesRequest", "description": "CopyLogEntries RPC request." }, + "source": { + "description": "Source from which to copy log entries.For example, a log bucket:\"projects/my-project/locations/global/buckets/my-source-bucket\"", + "type": "string" + }, "startTime": { "description": "The create time of an operation.", "format": "google-datetime", "type": "string" }, "state": { - "description": "State of an operation.", + "description": "Output only. State of an operation.", "enum": [ "OPERATION_STATE_UNSPECIFIED", "OPERATION_STATE_SCHEDULED", @@ -7834,7 +7846,8 @@ "OPERATION_STATE_RUNNING", "OPERATION_STATE_SUCCEEDED", "OPERATION_STATE_FAILED", - "OPERATION_STATE_CANCELLED" + "OPERATION_STATE_CANCELLED", + "OPERATION_STATE_PENDING" ], "enumDescriptions": [ "Should not be used.", @@ -7843,8 +7856,14 @@ "The operation is running.", "The operation was completed successfully.", "The operation failed.", - "The operation was cancelled by the user." + "The operation was cancelled by the user.", + "The operation is waiting for quota." ], + "readOnly": true, + "type": "string" + }, + "verb": { + "description": "Name of the verb executed by the operation.For example,\"copy\"", "type": "string" }, "writerIdentity": { @@ -7935,7 +7954,7 @@ "type": "array" }, "filter": { - "description": "Optional. An advanced logs filter (https://cloud.google.com/logging/docs/view/advanced-queries). The only exported log entries are those that are in the resource owning the sink and that match the filter.For example:logName=\"projects/[PROJECT_ID]/logs/[LOG_ID]\" AND severity>=ERRORCannot be empty or unset if mode == OVERWRITE. In order to match all logs, use the following line as the value of filter and do not use exclusions:logName:*", + "description": "Optional. An advanced logs filter (https://cloud.google.com/logging/docs/view/advanced-queries). The only exported log entries are those that are in the resource owning the sink and that match the filter.For example:logName=\"projects/[PROJECT_ID]/logs/[LOG_ID]\" AND severity>=ERRORTo match all logs, don't add exclusions and use the following line as the value of filter:logName:*Cannot be empty or unset when the value of mode is OVERWRITE.", "type": "string" }, "mode": { @@ -8169,7 +8188,7 @@ "properties": { "bigqueryDataset": { "$ref": "BigQueryDataset", - "description": "The information of a BigQuery Dataset. When a link is created, a BigQuery dataset is created along with it, in the same project as the LogBucket it's linked to. This dataset will also have BigQuery Views corresponding to the LogViews in the bucket." + "description": "Optional. The information of a BigQuery Dataset. When a link is created, a BigQuery dataset is created along with it, in the same project as the LogBucket it's linked to. This dataset will also have BigQuery Views corresponding to the LogViews in the bucket." }, "createTime": { "description": "Output only. The creation timestamp of the link.", @@ -8178,7 +8197,7 @@ "type": "string" }, "description": { - "description": "Describes this link.The maximum length of the description is 8000 characters.", + "description": "Optional. Describes this link.The maximum length of the description is 8000 characters.", "type": "string" }, "lifecycleState": { @@ -8203,7 +8222,8 @@ "type": "string" }, "name": { - "description": "The resource name of the link. The name can have up to 100 characters. A valid link id (at the end of the link name) must only have alphanumeric characters and underscores within it. \"projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/links/[LINK_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/links/[LINK_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/links/[LINK_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/links/[LINK_ID]\" For example:`projects/my-project/locations/global/buckets/my-bucket/links/my_link", + "description": "Output only. The resource name of the link. The name can have up to 100 characters. A valid link id (at the end of the link name) must only have alphanumeric characters and underscores within it. \"projects/[PROJECT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/links/[LINK_ID]\" \"organizations/[ORGANIZATION_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/links/[LINK_ID]\" \"billingAccounts/[BILLING_ACCOUNT_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/links/[LINK_ID]\" \"folders/[FOLDER_ID]/locations/[LOCATION_ID]/buckets/[BUCKET_ID]/links/[LINK_ID]\" For example:`projects/my-project/locations/global/buckets/my-bucket/links/my_link", + "readOnly": true, "type": "string" } }, @@ -8232,7 +8252,7 @@ "type": "string" }, "state": { - "description": "State of an operation.", + "description": "Output only. State of an operation.", "enum": [ "OPERATION_STATE_UNSPECIFIED", "OPERATION_STATE_SCHEDULED", @@ -8240,7 +8260,8 @@ "OPERATION_STATE_RUNNING", "OPERATION_STATE_SUCCEEDED", "OPERATION_STATE_FAILED", - "OPERATION_STATE_CANCELLED" + "OPERATION_STATE_CANCELLED", + "OPERATION_STATE_PENDING" ], "enumDescriptions": [ "Should not be used.", @@ -8249,8 +8270,10 @@ "The operation is running.", "The operation was completed successfully.", "The operation failed.", - "The operation was cancelled by the user." + "The operation was cancelled by the user.", + "The operation is waiting for quota." ], + "readOnly": true, "type": "string" } }, @@ -8593,12 +8616,12 @@ "id": "LogBucket", "properties": { "analyticsEnabled": { - "description": "Whether log analytics is enabled for this bucket.Once enabled, log analytics features cannot be disabled.", + "description": "Optional. Whether log analytics is enabled for this bucket.Once enabled, log analytics features cannot be disabled.", "type": "boolean" }, "cmekSettings": { "$ref": "CmekSettings", - "description": "The CMEK settings of the log bucket. If present, new log entries written to this log bucket are encrypted using the CMEK key provided in this configuration. If a log bucket has CMEK settings, the CMEK settings cannot be disabled later by updating the log bucket. Changing the KMS key is allowed." + "description": "Optional. The CMEK settings of the log bucket. If present, new log entries written to this log bucket are encrypted using the CMEK key provided in this configuration. If a log bucket has CMEK settings, the CMEK settings cannot be disabled later by updating the log bucket. Changing the KMS key is allowed." }, "createTime": { "description": "Output only. The creation timestamp of the bucket. This is not set for any of the default buckets.", @@ -8607,11 +8630,11 @@ "type": "string" }, "description": { - "description": "Describes this bucket.", + "description": "Optional. Describes this bucket.", "type": "string" }, "indexConfigs": { - "description": "A list of indexed fields and related configuration data.", + "description": "Optional. A list of indexed fields and related configuration data.", "items": { "$ref": "IndexConfig" }, @@ -8639,7 +8662,7 @@ "type": "string" }, "locked": { - "description": "Whether the bucket is locked.The retention period on a locked bucket cannot be changed. Locked buckets may only be deleted if they are empty.", + "description": "Optional. Whether the bucket is locked.The retention period on a locked bucket cannot be changed. Locked buckets may only be deleted if they are empty.", "type": "boolean" }, "name": { @@ -8648,14 +8671,14 @@ "type": "string" }, "restrictedFields": { - "description": "Log entry field paths that are denied access in this bucket.The following fields and their children are eligible: textPayload, jsonPayload, protoPayload, httpRequest, labels, sourceLocation.Restricting a repeated field will restrict all values. Adding a parent will block all child fields. (e.g. foo.bar will block foo.bar.baz)", + "description": "Optional. Log entry field paths that are denied access in this bucket.The following fields and their children are eligible: textPayload, jsonPayload, protoPayload, httpRequest, labels, sourceLocation.Restricting a repeated field will restrict all values. Adding a parent will block all child fields. (e.g. foo.bar will block foo.bar.baz)", "items": { "type": "string" }, "type": "array" }, "retentionDays": { - "description": "Logs will be retained by default for this amount of time, after which they will automatically be deleted. The minimum retention period is 1 day. If this value is set to zero at bucket creation time, the default time of 30 days will be used.", + "description": "Optional. Logs will be retained by default for this amount of time, after which they will automatically be deleted. The minimum retention period is 1 day. If this value is set to zero at bucket creation time, the default time of 30 days will be used.", "format": "int32", "type": "integer" }, @@ -8841,7 +8864,7 @@ "id": "LogErrorGroup", "properties": { "id": { - "description": "The id is a unique identifier for a particular error group; it is the last part of the error group resource name: /projects//errors/. Example: COShysOX0r_51QE The id is derived from key parts of the error-log content and is treated as Service Data. For information about how Service Data is handled, see Google Cloud Privacy Notice (https://cloud.google.com/terms/cloud-privacy-notice).", + "description": "The id is a unique identifier for a particular error group; it is the last part of the error group resource name: /project/[PROJECT_ID]/errors/[ERROR_GROUP_ID]. Example: COShysOX0r_51QE. The id is derived from key parts of the error-log content and is treated as Service Data. For information about how Service Data is handled, see Google Cloud Privacy Notice (https://cloud.google.com/terms/cloud-privacy-notice).", "type": "string" } }, @@ -8870,7 +8893,8 @@ "type": "string" }, "name": { - "description": "Required. A client-assigned identifier, such as \"load-balancer-exclusion\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. First character has to be alphanumeric.", + "description": "Output only. A client-assigned identifier, such as \"load-balancer-exclusion\". Identifiers are limited to 100 characters and can include only letters, digits, underscores, hyphens, and periods. First character has to be alphanumeric.", + "readOnly": true, "type": "string" }, "updateTime": { @@ -9000,7 +9024,7 @@ "type": "object" }, "LogSink": { - "description": "Describes a sink used to export log entries to one of the following destinations in any project: a Cloud Storage bucket, a BigQuery dataset, a Pub/Sub topic or a Cloud Logging log bucket. A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.", + "description": "Describes a sink used to export log entries to one of the following destinations: a Cloud Logging log bucket, a Cloud Storage bucket, a BigQuery dataset, a Pub/Sub topic, a Cloud project.A logs filter controls which log entries are exported. The sink must be created within a project, organization, billing account, or folder.", "id": "LogSink", "properties": { "bigqueryOptions": { @@ -9041,7 +9065,8 @@ "type": "boolean" }, "name": { - "description": "Required. The client-assigned sink identifier, unique within the project.For example: \"my-syslog-errors-to-pubsub\". Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, and periods. First character has to be alphanumeric.", + "description": "Output only. The client-assigned sink identifier, unique within the project.For example: \"my-syslog-errors-to-pubsub\".Sink identifiers are limited to 100 characters and can include only the following characters: upper and lower-case alphanumeric characters, underscores, hyphens, periods.First character has to be alphanumeric.", + "readOnly": true, "type": "string" }, "outputVersionFormat": { @@ -9105,15 +9130,16 @@ "type": "string" }, "description": { - "description": "Describes this view.", + "description": "Optional. Describes this view.", "type": "string" }, "filter": { - "description": "Filter that restricts which log entries in a bucket are visible in this view.Filters are restricted to be a logical AND of ==/!= of any of the following: originating project/folder/organization/billing account. resource type log idFor example:SOURCE(\"projects/myproject\") AND resource.type = \"gce_instance\" AND LOG_ID(\"stdout\")", + "description": "Optional. Filter that restricts which log entries in a bucket are visible in this view.Filters must be logical conjunctions that use the AND operator, and they can use any of the following qualifiers: SOURCE(), which specifies a project, folder, organization, or billing account of origin. resource.type, which specifies the resource type. LOG_ID(), which identifies the log.They can also use the negations of these qualifiers with the NOT operator.For example:SOURCE(\"projects/myproject\") AND resource.type = \"gce_instance\" AND NOT LOG_ID(\"stdout\")", "type": "string" }, "name": { - "description": "The resource name of the view.For example:projects/my-project/locations/global/buckets/my-bucket/views/my-view", + "description": "Output only. The resource name of the view.For example:projects/my-project/locations/global/buckets/my-bucket/views/my-view", + "readOnly": true, "type": "string" }, "updateTime": { @@ -9130,7 +9156,7 @@ "id": "LoggingQuery", "properties": { "filter": { - "description": "An advanced query using the Logging Query Language (https://cloud.google.com/logging/docs/view/logging-query-language). The maximum length of the filter is 20000 characters.", + "description": "Required. An advanced query using the Logging Query Language (https://cloud.google.com/logging/docs/view/logging-query-language). The maximum length of the filter is 20000 characters.", "type": "string" }, "summaryFieldEnd": { @@ -9144,7 +9170,7 @@ "type": "integer" }, "summaryFields": { - "description": "The set of summary fields to display for this saved query.", + "description": "Optional. The set of summary fields to display for this saved query.", "items": { "$ref": "SummaryField" }, @@ -9368,7 +9394,7 @@ "type": "string" }, "type": { - "description": "Required. The monitored resource type. For example, the type \"cloudsql_database\" represents databases in Google Cloud SQL. For a list of types, see Monitoring resource types (https://cloud.google.com/monitoring/api/resources) and Logging resource types (https://cloud.google.com/logging/docs/api/v2/resource-list).", + "description": "Required. The monitored resource type. For example, the type \"cloudsql_database\" represents databases in Google Cloud SQL. For a list of types, see Monitored resource types (https://cloud.google.com/monitoring/api/resources) and Logging resource types (https://cloud.google.com/logging/docs/api/v2/resource-list).", "type": "string" } }, @@ -9447,8 +9473,9 @@ "id": "RecentQuery", "properties": { "lastRunTime": { - "description": "The timestamp when this query was last run.", + "description": "Output only. The timestamp when this query was last run.", "format": "google-datetime", + "readOnly": true, "type": "string" }, "loggingQuery": { @@ -9636,11 +9663,11 @@ "type": "string" }, "description": { - "description": "A human readable description of the saved query.", + "description": "Optional. A human readable description of the saved query.", "type": "string" }, "displayName": { - "description": "The user specified title for the SavedQuery.", + "description": "Optional. The user specified title for the SavedQuery.", "type": "string" }, "loggingQuery": { @@ -9666,9 +9693,23 @@ "type": "object" }, "Settings": { - "description": "Describes the settings associated with a project, folder, organization, billing account, or flexible resource.", + "description": "Describes the settings associated with a project, folder, organization, or billing account.", "id": "Settings", "properties": { + "analyticsMode": { + "description": "Optional. The default analytics mode of an org or folder which is inherited by all newly created child project buckets.", + "enum": [ + "ANALYTICS_MODE_UNSPECIFIED", + "ANALYTICS_ENABLED", + "ANALYTICS_DISABLED" + ], + "enumDescriptions": [ + "No default analytics mode defined at this resource level, it will inherit from the closest ancester which has a defined analytics mode. If there is no specified analytics mode across the resource hierarchy, analytics will be disabled by default.", + "By default, analytics will be enabled for all new project-level buckets unless explicitly specified otherwise at bucket creation time.", + "By default, analytics will be disabled for new project-level buckets unless explicitly specified otherwise at bucket creation time." + ], + "type": "string" + }, "defaultSinkConfig": { "$ref": "DefaultSinkConfig", "description": "Optional. Overrides the built-in configuration for _Default sink." @@ -9678,11 +9719,11 @@ "type": "boolean" }, "kmsKeyName": { - "description": "Optional. The resource name for the configured Cloud KMS key.KMS key name format: \"projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]\" For example:\"projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key\"To enable CMEK for the Log Router, set this field to a valid kms_key_name for which the associated service account has the required roles/cloudkms.cryptoKeyEncrypterDecrypter role assigned for the key.The Cloud KMS key used by the Log Router can be updated by changing the kms_key_name to a new valid key name. Encryption operations that are in progress will be completed with the key that was in use when they started. Decryption operations will be completed using the key that was used at the time of encryption unless access to that key has been revoked.To disable CMEK for the Log Router, set this field to an empty string.See Enabling CMEK for Log Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information.", + "description": "Optional. The resource name for the configured Cloud KMS key.KMS key name format: \"projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]\" For example:\"projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key\"To enable CMEK, set this field to a valid kms_key_name for which the associated service account has the required roles/cloudkms.cryptoKeyEncrypterDecrypter role assigned for the key.The Cloud KMS key used by the Log Router can be updated by changing the kms_key_name to a new valid key name.To disable CMEK for the Log Router, set this field to an empty string.See Enabling CMEK for Log Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information.", "type": "string" }, "kmsServiceAccountId": { - "description": "Output only. The service account that will be used by the Log Router to access your Cloud KMS key.Before enabling CMEK for Log Router, you must first assign the role roles/cloudkms.cryptoKeyEncrypterDecrypter to the service account that the Log Router will use to access your Cloud KMS key. Use GetSettings to obtain the service account ID.See Enabling CMEK for Log Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information.", + "description": "Output only. The service account that will be used by the Log Router to access your Cloud KMS key.Before enabling CMEK, you must first assign the role roles/cloudkms.cryptoKeyEncrypterDecrypter to the service account that will be used to access your Cloud KMS key. Use GetSettings to obtain the service account ID.See Enabling CMEK for Log Router (https://cloud.google.com/logging/docs/routing/managed-encryption) for more information.", "readOnly": true, "type": "string" }, @@ -9697,7 +9738,7 @@ "type": "string" }, "storageLocation": { - "description": "Optional. The storage location that Cloud Logging will use to create new resources when a location is needed but not explicitly provided. The use cases includes: The location of _Default and _Required log bucket for newly created projects and folders.Example value: europe-west1.Note: this setting does not affect the location of resources where a location is explicitly provided when created, such as custom log buckets.", + "description": "Optional. The storage location for the _Default and _Required log buckets of newly created projects and folders, unless the storage location is explicitly provided.Example value: europe-west1.Note: this setting does not affect the location of resources where a location is explicitly provided when created, such as custom log buckets.", "type": "string" } }, @@ -9770,7 +9811,7 @@ "id": "SummaryField", "properties": { "field": { - "description": "The field from the LogEntry to include in the summary line, for example resource.type or jsonPayload.name.", + "description": "Optional. The field from the LogEntry to include in the summary line, for example resource.type or jsonPayload.name.", "type": "string" } }, diff --git a/discovery/googleapis/looker__v1.json b/discovery/googleapis/looker__v1.json index 57d8f435c..0276f9c83 100644 --- a/discovery/googleapis/looker__v1.json +++ b/discovery/googleapis/looker__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231025", + "revision": "20240220", "rootUrl": "https://looker.googleapis.com/", "servicePath": "", "title": "Looker (Google Cloud core) API", @@ -807,14 +807,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -1160,6 +1160,14 @@ "description": "Whether private IP is enabled on the Looker instance.", "type": "boolean" }, + "pscConfig": { + "$ref": "PscConfig", + "description": "Optional. PSC configuration. Used when `enable_private_ip` and `psc_enabled` are both true." + }, + "pscEnabled": { + "description": "Optional. Whether to use Private Service Connect (PSC) for private IP connectivity. If true, VPC peering (PSA) will not be used.", + "type": "boolean" + }, "publicIpEnabled": { "description": "Whether public IP is enabled on the Looker instance.", "type": "boolean" @@ -1473,12 +1481,74 @@ }, "type": "object" }, + "PscConfig": { + "description": "Information for Private Service Connect (PSC) setup for a Looker instance.", + "id": "PscConfig", + "properties": { + "allowedVpcs": { + "description": "Optional. List of VPCs that are allowed ingress into looker. Format: projects/{project}/global/networks/{network}", + "items": { + "type": "string" + }, + "type": "array" + }, + "lookerServiceAttachmentUri": { + "description": "Output only. URI of the Looker service attachment.", + "readOnly": true, + "type": "string" + }, + "serviceAttachments": { + "description": "Optional. List of egress service attachment configurations.", + "items": { + "$ref": "ServiceAttachment" + }, + "type": "array" + } + }, + "type": "object" + }, "RestartInstanceRequest": { "description": "Request options for restarting an instance.", "id": "RestartInstanceRequest", "properties": {}, "type": "object" }, + "ServiceAttachment": { + "description": "Service attachment configuration.", + "id": "ServiceAttachment", + "properties": { + "connectionStatus": { + "description": "Output only. Connection status.", + "enum": [ + "UNKNOWN", + "ACCEPTED", + "PENDING", + "REJECTED", + "NEEDS_ATTENTION", + "CLOSED" + ], + "enumDescriptions": [ + "Connection status is unspecified.", + "Connection is established and functioning normally.", + "Connection is not established (Looker tenant project hasn't been allowlisted).", + "Connection is not established (Looker tenant project is explicitly in reject list).", + "Issue with target service attachment, e.g. NAT subnet is exhausted.", + "Target service attachment does not exist. This status is a terminal state." + ], + "readOnly": true, + "type": "string" + }, + "localFqdn": { + "description": "Required. Fully qualified domain name that will be used in the private DNS record created for the service attachment.", + "type": "string" + }, + "targetServiceAttachmentUri": { + "description": "Required. URI of the service attachment to connect to. Format: projects/{project}/regions/{region}/serviceAttachments/{service_attachment}", + "type": "string" + } + }, + "type": "object" + }, "SetIamPolicyRequest": { "description": "Request message for `SetIamPolicy` method.", "id": "SetIamPolicyRequest", diff --git a/discovery/googleapis/managedidentities__v1.json b/discovery/googleapis/managedidentities__v1.json index 91b243518..de78a200f 100644 --- a/discovery/googleapis/managedidentities__v1.json +++ b/discovery/googleapis/managedidentities__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231010", + "revision": "20240112", "rootUrl": "https://managedidentities.googleapis.com/", "servicePath": "", "title": "Managed Service for Microsoft Active Directory API", @@ -1610,7 +1610,7 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, @@ -2108,7 +2108,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. The MaintenancePolicies that have been attached to the instance. The key must be of the type name of the oneof policy name defined in MaintenancePolicy, and the referenced policy must define the same policy type. For details, please refer to go/cloud-saas-mw-ug. Should not be set if maintenance_settings.maintenance_policies is set.", + "description": "Optional. The MaintenancePolicies that have been attached to the instance. The key must be of the type name of the oneof policy name defined in MaintenancePolicy, and the referenced policy must define the same policy type. For details, please refer to go/mr-user-guide. Should not be set if maintenance_settings.maintenance_policies is set.", "type": "object" }, "maintenanceSchedules": { @@ -2249,7 +2249,7 @@ "additionalProperties": { "$ref": "MaintenancePolicy" }, - "description": "Optional. The MaintenancePolicies that have been attached to the instance. The key must be of the type name of the oneof policy name defined in MaintenancePolicy, and the embedded policy must define the same policy type. For details, please refer to go/cloud-saas-mw-ug. Should not be set if maintenance_policy_names is set. If only the name is needed, then only populate MaintenancePolicy.name.", + "description": "Optional. The MaintenancePolicies that have been attached to the instance. The key must be of the type name of the oneof policy name defined in MaintenancePolicy, and the embedded policy must define the same policy type. For details, please refer to go/mr-user-guide. Should not be set if maintenance_policy_names is set. If only the name is needed, then only populate MaintenancePolicy.name.", "type": "object" } }, diff --git a/discovery/googleapis/manufacturers__v1.json b/discovery/googleapis/manufacturers__v1.json index f2f0eef4d..918642426 100644 --- a/discovery/googleapis/manufacturers__v1.json +++ b/discovery/googleapis/manufacturers__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231113", + "revision": "20240205", "rootUrl": "https://manufacturers.googleapis.com/", "servicePath": "", "title": "Manufacturer Center API", diff --git a/discovery/googleapis/memcache__v1.json b/discovery/googleapis/memcache__v1.json index 9a9a9df31..a299b3ae3 100644 --- a/discovery/googleapis/memcache__v1.json +++ b/discovery/googleapis/memcache__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231012", + "revision": "20240208", "rootUrl": "https://memcache.googleapis.com/", "servicePath": "", "title": "Cloud Memorystore for Memcached API", @@ -820,7 +820,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. The MaintenancePolicies that have been attached to the instance. The key must be of the type name of the oneof policy name defined in MaintenancePolicy, and the referenced policy must define the same policy type. For details, please refer to go/cloud-saas-mw-ug. Should not be set if maintenance_settings.maintenance_policies is set.", + "description": "Optional. The MaintenancePolicies that have been attached to the instance. The key must be of the type name of the oneof policy name defined in MaintenancePolicy, and the referenced policy must define the same policy type. For details, please refer to go/mr-user-guide. Should not be set if maintenance_settings.maintenance_policies is set.", "type": "object" }, "maintenanceSchedules": { @@ -961,7 +961,7 @@ "additionalProperties": { "$ref": "MaintenancePolicy" }, - "description": "Optional. The MaintenancePolicies that have been attached to the instance. The key must be of the type name of the oneof policy name defined in MaintenancePolicy, and the embedded policy must define the same policy type. For details, please refer to go/cloud-saas-mw-ug. Should not be set if maintenance_policy_names is set. If only the name is needed, then only populate MaintenancePolicy.name.", + "description": "Optional. The MaintenancePolicies that have been attached to the instance. The key must be of the type name of the oneof policy name defined in MaintenancePolicy, and the embedded policy must define the same policy type. For details, please refer to go/mr-user-guide. Should not be set if maintenance_policy_names is set. If only the name is needed, then only populate MaintenancePolicy.name.", "type": "object" } }, diff --git a/discovery/googleapis/metastore__v1.json b/discovery/googleapis/metastore__v1.json index d4def01b2..c79446884 100644 --- a/discovery/googleapis/metastore__v1.json +++ b/discovery/googleapis/metastore__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231102", + "revision": "20240218", "rootUrl": "https://metastore.googleapis.com/", "servicePath": "", "title": "Dataproc Metastore API", @@ -603,6 +603,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "alterTableProperties": { + "description": "Alter metadata table properties.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/services/{servicesId}:alterTableProperties", + "httpMethod": "POST", + "id": "metastore.projects.locations.services.alterTableProperties", + "parameterOrder": [ + "service" + ], + "parameters": { + "service": { + "description": "Required. The relative resource name of the Dataproc Metastore service that's being used to mutate metadata table properties, in the following format:projects/{project_id}/locations/{location_id}/services/{service_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+service}:alterTableProperties", + "request": { + "$ref": "AlterTablePropertiesRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "create": { "description": "Creates a metastore service in a project and location.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/services", @@ -1335,6 +1363,40 @@ ] } } + }, + "migrationExecutions": { + "methods": { + "delete": { + "description": "Deletes a single migration execution.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/services/{servicesId}/migrationExecutions/{migrationExecutionsId}", + "httpMethod": "DELETE", + "id": "metastore.projects.locations.services.migrationExecutions.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The relative resource name of the migrationExecution to delete, in the following form:projects/{project_number}/locations/{location_id}/services/{service_id}/migrationExecutions/{migration_execution_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/services/[^/]+/migrationExecutions/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. A request ID. Specify a unique request ID to allow the server to ignore the request if it has completed. The server will ignore subsequent requests that provide a duplicate request ID for at least 60 minutes after the first request.For example, if an initial request times out, followed by another request with the same request ID, the server ignores the second request to prevent the creation of duplicate commitments.The request ID must be a valid UUID (https://en.wikipedia.org/wiki/Universally_unique_identifier#Format) A zero UUID (00000000-0000-0000-0000-000000000000) is not supported.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } } } } @@ -1365,6 +1427,29 @@ "properties": {}, "type": "object" }, + "AlterTablePropertiesRequest": { + "description": "Request message for DataprocMetastore.AlterTableProperties.", + "id": "AlterTablePropertiesRequest", + "properties": { + "properties": { + "additionalProperties": { + "type": "string" + }, + "description": "A map that describes the desired values to mutate. If update_mask is empty, the properties will not update. Otherwise, the properties only alters the value whose associated paths exist in the update mask", + "type": "object" + }, + "tableName": { + "description": "Required. The name of the table containing the properties you're altering in the following format.databases/{database_id}/tables/{table_id}", + "type": "string" + }, + "updateMask": { + "description": "A field mask that specifies the metadata table properties that are overwritten by the update. Fields specified in the update_mask are relative to the resource (not to the full request). A field is overwritten if it is in the mask.For example, given the target properties: properties { a: 1 b: 2 } And an update properties: properties { a: 2 b: 3 c: 4 } then if the field mask is:paths: \"properties.b\", \"properties.c\"then the result will be: properties { a: 1 b: 3 c: 4 } ", + "format": "google-fieldmask", + "type": "string" + } + }, + "type": "object" + }, "AuditConfig": { "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs.If there are AuditConfigs for both allServices and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted.Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:jose@example.com\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:aliya@example.com\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts jose@example.com from DATA_READ logging, and aliya@example.com from DATA_WRITE logging.", "id": "AuditConfig", @@ -1531,14 +1616,14 @@ "description": "The condition that is associated with this binding.If the condition evaluates to true, then this binding applies to the current request.If the condition evaluates to false, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding.To learn which resources support conditions in their IAM policies, see the IAM documentation (https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. members can have the following values: allUsers: A special identifier that represents anyone who is on the internet; with or without a Google account. allAuthenticatedUsers: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. user:{emailid}: An email address that represents a specific Google account. For example, alice@example.com . serviceAccount:{emailid}: An email address that represents a Google service account. For example, my-other-app@appspot.gserviceaccount.com. serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]: An identifier for a Kubernetes service account (https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, my-project.svc.id.goog[my-namespace/my-kubernetes-sa]. group:{emailid}: An email address that represents a Google group. For example, admins@example.com. domain:{domain}: The G Suite domain (primary) that represents all the users of that domain. For example, google.com or example.com. deleted:user:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a user that has been recently deleted. For example, alice@example.com?uid=123456789012345678901. If the user is recovered, this value reverts to user:{emailid} and the recovered user retains the role in the binding. deleted:serviceAccount:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. If the service account is undeleted, this value reverts to serviceAccount:{emailid} and the undeleted service account retains the role in the binding. deleted:group:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, admins@example.com?uid=123456789012345678901. If the group is recovered, this value reverts to group:{emailid} and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. members can have the following values: allUsers: A special identifier that represents anyone who is on the internet; with or without a Google account. allAuthenticatedUsers: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. user:{emailid}: An email address that represents a specific Google account. For example, alice@example.com . serviceAccount:{emailid}: An email address that represents a Google service account. For example, my-other-app@appspot.gserviceaccount.com. serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]: An identifier for a Kubernetes service account (https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, my-project.svc.id.goog[my-namespace/my-kubernetes-sa]. group:{emailid}: An email address that represents a Google group. For example, admins@example.com. domain:{domain}: The G Suite domain (primary) that represents all the users of that domain. For example, google.com or example.com. principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}: A single identity in a workforce identity pool. principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}: All workforce identities in a group. principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}: All workforce identities with a specific attribute value. principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*: All identities in a workforce identity pool. principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}: A single identity in a workload identity pool. principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}: A workload identity pool group. principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}: All identities in a workload identity pool with a certain attribute. principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*: All identities in a workload identity pool. deleted:user:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a user that has been recently deleted. For example, alice@example.com?uid=123456789012345678901. If the user is recovered, this value reverts to user:{emailid} and the recovered user retains the role in the binding. deleted:serviceAccount:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901. If the service account is undeleted, this value reverts to serviceAccount:{emailid} and the undeleted service account retains the role in the binding. deleted:group:{emailid}?uid={uniqueid}: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, admins@example.com?uid=123456789012345678901. If the group is recovered, this value reverts to group:{emailid} and the recovered group retains the role in the binding. deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}: Deleted single identity in a workforce identity pool. For example, deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of members, or principals. For example, roles/viewer, roles/editor, or roles/owner.", + "description": "Role that is assigned to the list of members, or principals. For example, roles/viewer, roles/editor, or roles/owner.For an overview of the IAM roles and permissions, see the IAM documentation (https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see here (https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -2428,10 +2513,6 @@ "readOnly": true, "type": "string" }, - "backupLocation": { - "description": "Optional. A Cloud Storage URI specifying where the backup artifacts are stored, in the format gs:///.", - "type": "string" - }, "details": { "description": "Output only. The restore details containing the revision of the service to be restored to, in format of JSON.", "readOnly": true, @@ -2491,7 +2572,7 @@ "id": "RestoreServiceRequest", "properties": { "backup": { - "description": "Required. The relative resource name of the metastore service backup to restore from, in the following form:projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}.", + "description": "Optional. The relative resource name of the metastore service backup to restore from, in the following form:projects/{project_id}/locations/{location_id}/services/{service_id}/backups/{backup_id}. Mutually exclusive with backup_location, and exactly one of the two must be set.", "type": "string" }, "requestId": { diff --git a/discovery/googleapis/migrationcenter__v1.json b/discovery/googleapis/migrationcenter__v1.json index c29f21515..fd1b193d1 100644 --- a/discovery/googleapis/migrationcenter__v1.json +++ b/discovery/googleapis/migrationcenter__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231101", + "revision": "20240211", "rootUrl": "https://migrationcenter.googleapis.com/", "servicePath": "", "title": "Migration Center API", @@ -2597,6 +2597,22 @@ "machinePreferences": { "$ref": "MachinePreferences", "description": "Preferences concerning the machine types to consider on Compute Engine." + }, + "persistentDiskType": { + "description": "Persistent disk type to use. If unspecified (default), all types are considered, based on available usage data.", + "enum": [ + "PERSISTENT_DISK_TYPE_UNSPECIFIED", + "PERSISTENT_DISK_TYPE_STANDARD", + "PERSISTENT_DISK_TYPE_BALANCED", + "PERSISTENT_DISK_TYPE_SSD" + ], + "enumDescriptions": [ + "Unspecified (default value). Selecting this value allows the system to use any disk type according to reported usage. This a good value to start with.", + "Standard HDD Persistent Disk.", + "Balanced Persistent Disk.", + "SSD Persistent Disk." + ], + "type": "string" } }, "type": "object" @@ -3255,6 +3271,13 @@ "format": "google-datetime", "type": "string" }, + "licenses": { + "description": "License strings associated with the installed application.", + "items": { + "type": "string" + }, + "type": "array" + }, "path": { "description": "Source path.", "type": "string" @@ -4796,7 +4819,7 @@ }, "storageBytesHistogram": { "$ref": "ReportSummaryHistogramChartData", - "description": "Histogram showing a distribution of memory sizes." + "description": "Histogram showing a distribution of storage sizes." }, "storageUtilizationChart": { "$ref": "ReportSummaryUtilizationChartData", diff --git a/discovery/googleapis/ml__v1.json b/discovery/googleapis/ml__v1.json index 8b319746d..b67084bef 100644 --- a/discovery/googleapis/ml__v1.json +++ b/discovery/googleapis/ml__v1.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231103", + "revision": "20240127", "rootUrl": "https://ml.googleapis.com/", "servicePath": "", "title": "AI Platform Training & Prediction API", @@ -3711,14 +3711,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, diff --git a/discovery/googleapis/monitoring__v3.json b/discovery/googleapis/monitoring__v3.json index 1cbd789e9..01c5f2b87 100644 --- a/discovery/googleapis/monitoring__v3.json +++ b/discovery/googleapis/monitoring__v3.json @@ -34,7 +34,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231116", + "revision": "20240211", "rootUrl": "https://monitoring.googleapis.com/", "servicePath": "", "title": "Cloud Monitoring API", @@ -2883,7 +2883,7 @@ "type": "array" }, "severity": { - "description": "Optional. The severity of an alert policy indicates how important alerts generated by that policy are. The severity level, if specified, will be displayed on the Incident detail page and in notifications.", + "description": "Optional. The severity of an alert policy indicates how important incidents generated by that policy are. The severity level will be displayed on the Incident detail page and in notifications.", "enum": [ "SEVERITY_UNSPECIFIED", "CRITICAL", @@ -4665,7 +4665,7 @@ "type": "string" }, "evaluationMissingData": { - "description": "A condition control that determines how metric-threshold conditions are evaluated when data stops arriving.", + "description": "A condition control that determines how metric-threshold conditions are evaluated when data stops arriving. To use this control, the value of the duration field must be greater than or equal to 60 seconds.", "enum": [ "EVALUATION_MISSING_DATA_UNSPECIFIED", "EVALUATION_MISSING_DATA_INACTIVE", @@ -4766,7 +4766,7 @@ "type": "string" }, "type": { - "description": "Required. The monitored resource type. For example, the type \"cloudsql_database\" represents databases in Google Cloud SQL. For a list of types, see Monitoring resource types (https://cloud.google.com/monitoring/api/resources) and Logging resource types (https://cloud.google.com/logging/docs/api/v2/resource-list).", + "description": "Required. The monitored resource type. For example, the type \"cloudsql_database\" represents databases in Google Cloud SQL. For a list of types, see Monitored resource types (https://cloud.google.com/monitoring/api/resources) and Logging resource types (https://cloud.google.com/logging/docs/api/v2/resource-list).", "type": "string" } }, diff --git a/discovery/googleapis/mybusinessaccountmanagement__v1.json b/discovery/googleapis/mybusinessaccountmanagement__v1.json index be73b3ad7..b2bde6dcc 100644 --- a/discovery/googleapis/mybusinessaccountmanagement__v1.json +++ b/discovery/googleapis/mybusinessaccountmanagement__v1.json @@ -16,7 +16,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240227", "rootUrl": "https://mybusinessaccountmanagement.googleapis.com/", "servicePath": "", "title": "My Business Account Management API", diff --git a/discovery/googleapis/mybusinessbusinessinformation__v1.json b/discovery/googleapis/mybusinessbusinessinformation__v1.json index 9a923b935..32994ef9b 100644 --- a/discovery/googleapis/mybusinessbusinessinformation__v1.json +++ b/discovery/googleapis/mybusinessbusinessinformation__v1.json @@ -16,7 +16,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240227", "rootUrl": "https://mybusinessbusinessinformation.googleapis.com/", "servicePath": "", "title": "My Business Business Information API", diff --git a/discovery/googleapis/mybusinesslodging__v1.json b/discovery/googleapis/mybusinesslodging__v1.json index d0117c5f8..30752714e 100644 --- a/discovery/googleapis/mybusinesslodging__v1.json +++ b/discovery/googleapis/mybusinesslodging__v1.json @@ -16,7 +16,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240227", "rootUrl": "https://mybusinesslodging.googleapis.com/", "servicePath": "", "title": "My Business Lodging API", diff --git a/discovery/googleapis/mybusinessnotifications__v1.json b/discovery/googleapis/mybusinessnotifications__v1.json index ce1bcc39f..f3bbd6b3c 100644 --- a/discovery/googleapis/mybusinessnotifications__v1.json +++ b/discovery/googleapis/mybusinessnotifications__v1.json @@ -16,7 +16,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240227", "rootUrl": "https://mybusinessnotifications.googleapis.com/", "servicePath": "", "title": "My Business Notifications API", diff --git a/discovery/googleapis/mybusinessplaceactions__v1.json b/discovery/googleapis/mybusinessplaceactions__v1.json index 5c8a6a2fe..e38899509 100644 --- a/discovery/googleapis/mybusinessplaceactions__v1.json +++ b/discovery/googleapis/mybusinessplaceactions__v1.json @@ -16,7 +16,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240227", "rootUrl": "https://mybusinessplaceactions.googleapis.com/", "servicePath": "", "title": "My Business Place Actions API", diff --git a/discovery/googleapis/mybusinessqanda__v1.json b/discovery/googleapis/mybusinessqanda__v1.json index 24ef4ddeb..f89070c36 100644 --- a/discovery/googleapis/mybusinessqanda__v1.json +++ b/discovery/googleapis/mybusinessqanda__v1.json @@ -16,7 +16,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240227", "rootUrl": "https://mybusinessqanda.googleapis.com/", "servicePath": "", "title": "My Business Q&A API", diff --git a/discovery/googleapis/mybusinessverifications__v1.json b/discovery/googleapis/mybusinessverifications__v1.json index 42f55df5c..02966543b 100644 --- a/discovery/googleapis/mybusinessverifications__v1.json +++ b/discovery/googleapis/mybusinessverifications__v1.json @@ -16,7 +16,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240227", "rootUrl": "https://mybusinessverifications.googleapis.com/", "servicePath": "", "title": "My Business Verifications API", diff --git a/discovery/googleapis/networkconnectivity__v1.json b/discovery/googleapis/networkconnectivity__v1.json index 958f4b4a2..1dc5831ce 100644 --- a/discovery/googleapis/networkconnectivity__v1.json +++ b/discovery/googleapis/networkconnectivity__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231030", + "revision": "20240221", "rootUrl": "https://networkconnectivity.googleapis.com/", "servicePath": "", "title": "Network Connectivity API", @@ -765,7 +765,7 @@ ] }, "list": { - "description": "Lists route tables in a given project.", + "description": "Lists route tables in a given hub.", "flatPath": "v1/projects/{projectsId}/locations/global/hubs/{hubsId}/routeTables", "httpMethod": "GET", "id": "networkconnectivity.projects.locations.global.hubs.routeTables.list", @@ -840,7 +840,7 @@ ] }, "list": { - "description": "Lists routes in a given project.", + "description": "Lists routes in a given route table.", "flatPath": "v1/projects/{projectsId}/locations/global/hubs/{hubsId}/routeTables/{routeTablesId}/routes", "httpMethod": "GET", "id": "networkconnectivity.projects.locations.global.hubs.routeTables.routes.list", @@ -2718,14 +2718,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -2821,6 +2821,11 @@ "description": "The PSC connection id of the PSC forwarding rule connected to the service attachments in this service connection map.", "type": "string" }, + "selectedSubnetwork": { + "description": "Output only. The URI of the selected subnetwork selected to allocate IP address for this connection.", + "readOnly": true, + "type": "string" + }, "serviceAttachmentUri": { "description": "The URI of a service attachment which is the target of the PSC connection.", "type": "string" @@ -4001,6 +4006,11 @@ "description": "The PSC connection id of the PSC forwarding rule.", "type": "string" }, + "selectedSubnetwork": { + "description": "Output only. The URI of the subnetwork selected to allocate IP address for this connection.", + "readOnly": true, + "type": "string" + }, "state": { "description": "State of the PSC Connection", "enum": [ diff --git a/discovery/googleapis/networkmanagement__v1.json b/discovery/googleapis/networkmanagement__v1.json index 4de065aed..962b6e46c 100644 --- a/discovery/googleapis/networkmanagement__v1.json +++ b/discovery/googleapis/networkmanagement__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231025", + "revision": "20240207", "rootUrl": "https://networkmanagement.googleapis.com/", "servicePath": "", "title": "Network Management API", @@ -624,7 +624,8 @@ "RESOURCE_CONFIG_NOT_FOUND", "GOOGLE_MANAGED_SERVICE_AMBIGUOUS_PSC_ENDPOINT", "SOURCE_PSC_CLOUD_SQL_UNSUPPORTED", - "SOURCE_FORWARDING_RULE_UNSUPPORTED" + "SOURCE_FORWARDING_RULE_UNSUPPORTED", + "NON_ROUTABLE_IP_ADDRESS" ], "enumDescriptions": [ "Cause is unspecified.", @@ -648,7 +649,8 @@ "Aborted because expected resource configuration was missing.", "Aborted because a PSC endpoint selection for the Google-managed service is ambiguous (several PSC endpoints satisfy test input).", "Aborted because tests with a PSC-based Cloud SQL instance as a source are not supported.", - "Aborted because tests with a forwarding rule as a source are not supported." + "Aborted because tests with a forwarding rule as a source are not supported.", + "Aborted because one of the endpoints is a non-routable IP address (loopback, link-local, etc)." ], "type": "string" }, @@ -757,14 +759,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -964,7 +966,12 @@ "PSC_PUBLISHED_SERVICE", "PSC_GOOGLE_API", "PSC_VPC_SC", - "SERVERLESS_NEG" + "SERVERLESS_NEG", + "STORAGE_BUCKET", + "PRIVATE_NETWORK", + "CLOUD_FUNCTION", + "APP_ENGINE_VERSION", + "CLOUD_RUN_REVISION" ], "enumDescriptions": [ "Target not specified.", @@ -976,7 +983,12 @@ "Target is a published service that uses [Private Service Connect](https://cloud.google.com/vpc/docs/configure-private-service-connect-services).", "Target is all Google APIs that use [Private Service Connect](https://cloud.google.com/vpc/docs/configure-private-service-connect-apis).", "Target is a VPC-SC that uses [Private Service Connect](https://cloud.google.com/vpc/docs/configure-private-service-connect-apis).", - "Target is a serverless network endpoint group." + "Target is a serverless network endpoint group.", + "Target is a Cloud Storage bucket.", + "Target is a private network. Used only for return traces.", + "Target is a Cloud Function. Used only for return traces.", + "Target is a App Engine service version. Used only for return traces.", + "Target is a Cloud Run revision. Used only for return traces." ], "type": "string" } @@ -997,12 +1009,22 @@ "NO_ROUTE", "ROUTE_BLACKHOLE", "ROUTE_WRONG_NETWORK", + "ROUTE_NEXT_HOP_IP_ADDRESS_NOT_RESOLVED", + "ROUTE_NEXT_HOP_RESOURCE_NOT_FOUND", + "ROUTE_NEXT_HOP_INSTANCE_WRONG_NETWORK", + "ROUTE_NEXT_HOP_INSTANCE_NON_PRIMARY_IP", + "ROUTE_NEXT_HOP_FORWARDING_RULE_IP_MISMATCH", + "ROUTE_NEXT_HOP_VPN_TUNNEL_NOT_ESTABLISHED", + "ROUTE_NEXT_HOP_FORWARDING_RULE_TYPE_INVALID", + "NO_ROUTE_FROM_INTERNET_TO_PRIVATE_IPV6_ADDRESS", + "VPN_TUNNEL_LOCAL_SELECTOR_MISMATCH", + "VPN_TUNNEL_REMOTE_SELECTOR_MISMATCH", "PRIVATE_TRAFFIC_TO_INTERNET", "PRIVATE_GOOGLE_ACCESS_DISALLOWED", + "PRIVATE_GOOGLE_ACCESS_VIA_VPN_TUNNEL_UNSUPPORTED", "NO_EXTERNAL_ADDRESS", "UNKNOWN_INTERNAL_ADDRESS", "FORWARDING_RULE_MISMATCH", - "FORWARDING_RULE_REGION_MISMATCH", "FORWARDING_RULE_NO_INSTANCES", "FIREWALL_BLOCKING_LOAD_BALANCER_BACKEND_HEALTH_CHECK", "INSTANCE_NOT_RUNNING", @@ -1026,25 +1048,42 @@ "CLOUD_FUNCTION_NOT_ACTIVE", "VPC_CONNECTOR_NOT_SET", "VPC_CONNECTOR_NOT_RUNNING", + "FORWARDING_RULE_REGION_MISMATCH", "PSC_CONNECTION_NOT_ACCEPTED", + "PSC_ENDPOINT_ACCESSED_FROM_PEERED_NETWORK", + "PSC_NEG_PRODUCER_ENDPOINT_NO_GLOBAL_ACCESS", + "PSC_NEG_PRODUCER_FORWARDING_RULE_MULTIPLE_PORTS", + "HYBRID_NEG_NON_DYNAMIC_ROUTE_MATCHED", + "HYBRID_NEG_NON_LOCAL_DYNAMIC_ROUTE_MATCHED", "CLOUD_RUN_REVISION_NOT_READY", "DROPPED_INSIDE_PSC_SERVICE_PRODUCER", - "LOAD_BALANCER_HAS_NO_PROXY_SUBNET" + "LOAD_BALANCER_HAS_NO_PROXY_SUBNET", + "CLOUD_NAT_NO_ADDRESSES" ], "enumDescriptions": [ "Cause is unspecified.", "Destination external address cannot be resolved to a known target. If the address is used in a Google Cloud project, provide the project ID as test input.", "A Compute Engine instance can only send or receive a packet with a foreign IP address if ip_forward is enabled.", "Dropped due to a firewall rule, unless allowed due to connection tracking.", - "Dropped due to no routes.", + "Dropped due to no matching routes.", "Dropped due to invalid route. Route's next hop is a blackhole.", - "Packet is sent to a wrong (unintended) network. Example: you trace a packet from VM1:Network1 to VM2:Network2, however, the route configured in Network1 sends the packet destined for VM2's IP addresss to Network3.", + "Packet is sent to a wrong (unintended) network. Example: you trace a packet from VM1:Network1 to VM2:Network2, however, the route configured in Network1 sends the packet destined for VM2's IP address to Network3.", + "Route's next hop IP address cannot be resolved to a GCP resource.", + "Route's next hop resource is not found.", + "Route's next hop instance doesn't hace a NIC in the route's network.", + "Route's next hop IP address is not a primary IP address of the next hop instance.", + "Route's next hop forwarding rule doesn't match next hop IP address.", + "Route's next hop VPN tunnel is down (does not have valid IKE SAs).", + "Route's next hop forwarding rule type is invalid (it's not a forwarding rule of the internal passthrough load balancer).", + "Packet is sent from the Internet to the private IPv6 address.", + "The packet does not match a policy-based VPN tunnel local selector.", + "The packet does not match a policy-based VPN tunnel remote selector.", "Packet with internal destination address sent to the internet gateway.", - "Instance with only an internal IP address tries to access Google API and services, but private Google access is not enabled.", + "Instance with only an internal IP address tries to access Google API and services, but private Google access is not enabled in the subnet.", + "Source endpoint tries to access Google API and services through the VPN tunnel to another network, but Private Google Access needs to be enabled in the source endpoint network.", "Instance with only an internal IP address tries to access external hosts, but Cloud NAT is not enabled in the subnet, unless special configurations on a VM allow this connection.", "Destination internal address cannot be resolved to a known target. If this is a shared VPC scenario, verify if the service project ID is provided as test input. Otherwise, verify if the IP address is being used in the project.", "Forwarding rule's protocol and ports do not match the packet header.", - "Packet could be dropped because it was sent from a different region to a regional forwarding without global access.", "Forwarding rule does not have backends configured.", "Firewalls block the health check probes to the backends and cause the backends to be unavailable for traffic from the load balancer. For more details, see [Health check firewall rules](https://cloud.google.com/load-balancing/docs/health-checks#firewall_rules).", "Packet is sent from or to a Compute Engine instance that is not in a running state.", @@ -1068,16 +1107,35 @@ "Packet could be dropped because the Cloud Function is not in an active status.", "Packet could be dropped because no VPC connector is set.", "Packet could be dropped because the VPC connector is not in a running state.", + "Packet could be dropped because it was sent from a different region to a regional forwarding without global access.", "The Private Service Connect endpoint is in a project that is not approved to connect to the service.", + "The packet is sent to the Private Service Connect endpoint over the peering, but [it's not supported](https://cloud.google.com/vpc/docs/configure-private-service-connect-services#on-premises).", + "The packet is sent to the Private Service Connect backend (network endpoint group), but the producer PSC forwarding rule does not have global access enabled.", + "The packet is sent to the Private Service Connect backend (network endpoint group), but the producer PSC forwarding rule has multiple ports specified.", + "The packet sent from the hybrid NEG proxy matches a non-dynamic route, but such a configuration is not supported.", + "The packet sent from the hybrid NEG proxy matches a dynamic route with a next hop in a different region, but such a configuration is not supported.", "Packet sent from a Cloud Run revision that is not ready.", "Packet was dropped inside Private Service Connect service producer.", - "Packet sent to a load balancer, which requires a proxy-only subnet and the subnet is not found." + "Packet sent to a load balancer, which requires a proxy-only subnet and the subnet is not found.", + "Packet sent to Cloud Nat without active NAT IPs." ], "type": "string" }, + "destinationIp": { + "description": "Destination IP address of the dropped packet (if relevant).", + "type": "string" + }, + "region": { + "description": "Region of the dropped packet (if relevant).", + "type": "string" + }, "resourceUri": { "description": "URI of the resource that caused the drop.", "type": "string" + }, + "sourceIp": { + "description": "Source IP address of the dropped packet (if relevant).", + "type": "string" } }, "type": "object" @@ -1151,7 +1209,7 @@ "type": "string" }, "ipAddress": { - "description": "The IP address of the endpoint, which can be an external or internal IP. An IPv6 address is only allowed when the test's destination is a [global load balancer VIP](https://cloud.google.com/load-balancing/docs/load-balancing-overview).", + "description": "The IP address of the endpoint, which can be an external or internal IP.", "type": "string" }, "loadBalancerId": { @@ -1289,7 +1347,7 @@ "id": "FirewallInfo", "properties": { "action": { - "description": "Possible values: ALLOW, DENY", + "description": "Possible values: ALLOW, DENY, APPLY_SECURITY_PROFILE_GROUP", "type": "string" }, "direction": { @@ -1309,7 +1367,9 @@ "IMPLIED_VPC_FIREWALL_RULE", "SERVERLESS_VPC_ACCESS_MANAGED_FIREWALL_RULE", "NETWORK_FIREWALL_POLICY_RULE", - "NETWORK_REGIONAL_FIREWALL_POLICY_RULE" + "NETWORK_REGIONAL_FIREWALL_POLICY_RULE", + "UNSUPPORTED_FIREWALL_POLICY_RULE", + "TRACKING_STATE" ], "enumDescriptions": [ "Unspecified type.", @@ -1318,7 +1378,9 @@ "Implied VPC firewall rule. For details, see [Implied rules](https://cloud.google.com/vpc/docs/firewalls#default_firewall_rules).", "Implicit firewall rules that are managed by serverless VPC access to allow ingress access. They are not visible in the Google Cloud console. For details, see [VPC connector's implicit rules](https://cloud.google.com/functions/docs/networking/connecting-vpc#restrict-access).", "Global network firewall policy rule. For details, see [Network firewall policies](https://cloud.google.com/vpc/docs/network-firewall-policies).", - "Regional network firewall policy rule. For details, see [Regional network firewall policies](https://cloud.google.com/firewall/docs/regional-firewall-policies)." + "Regional network firewall policy rule. For details, see [Regional network firewall policies](https://cloud.google.com/firewall/docs/regional-firewall-policies).", + "Firewall policy rule containing attributes not yet supported in Connectivity tests. Firewall analysis is skipped if such a rule can potentially be matched. Please see the [list of unsupported configurations](https://cloud.google.com/network-intelligence-center/docs/connectivity-tests/concepts/overview#unsupported-configs).", + "Tracking state for response traffic created when request traffic goes through allow firewall rule. For details, see [firewall rules specifications](https://cloud.google.com/firewall/docs/firewalls#specifications)" ], "type": "string" }, @@ -1375,7 +1437,20 @@ "IMPORTED_CUSTOM_ROUTE_NEXT_HOP", "CLOUD_SQL_INSTANCE", "ANOTHER_PROJECT", - "NCC_HUB" + "NCC_HUB", + "ROUTER_APPLIANCE" + ], + "enumDeprecated": [ + false, + false, + false, + false, + true, + false, + true, + false, + false, + false ], "enumDescriptions": [ "Target not specified.", @@ -1386,7 +1461,8 @@ "Forwarded to the next hop of a custom route imported from a peering VPC.", "Forwarded to a Cloud SQL instance.", "Forwarded to a VPC network in another project.", - "Forwarded to an NCC Hub." + "Forwarded to an NCC Hub.", + "Forwarded to a router appliance." ], "type": "string" } @@ -1461,13 +1537,19 @@ "GOOGLE_SERVICE_TYPE_UNSPECIFIED", "IAP", "GFE_PROXY_OR_HEALTH_CHECK_PROBER", - "CLOUD_DNS" + "CLOUD_DNS", + "GOOGLE_API", + "GOOGLE_API_PSC", + "GOOGLE_API_VPC_SC" ], "enumDescriptions": [ - "Unspecified Google Service. Includes most of Google APIs and services.", + "Unspecified Google Service.", "Identity aware proxy. https://cloud.google.com/iap/docs/using-tcp-forwarding", "One of two services sharing IP ranges: * Load Balancer proxy * Centralized Health Check prober https://cloud.google.com/load-balancing/docs/firewall-rules", - "Connectivity from Cloud DNS to forwarding targets or alternate name servers that use private routing. https://cloud.google.com/dns/docs/zones/forwarding-zones#firewall-rules https://cloud.google.com/dns/docs/policies#firewall-rules" + "Connectivity from Cloud DNS to forwarding targets or alternate name servers that use private routing. https://cloud.google.com/dns/docs/zones/forwarding-zones#firewall-rules https://cloud.google.com/dns/docs/policies#firewall-rules", + "private.googleapis.com and restricted.googleapis.com", + "Google API via Private Service Connect. https://cloud.google.com/vpc/docs/configure-private-service-connect-apis", + "Google API via VPC Service Controls. https://cloud.google.com/vpc/docs/configure-private-service-connect-apis" ], "type": "string" }, @@ -1656,6 +1738,68 @@ }, "type": "object" }, + "LoadBalancerBackendInfo": { + "description": "For display only. Metadata associated with the load balancer backend.", + "id": "LoadBalancerBackendInfo", + "properties": { + "backendBucketUri": { + "description": "URI of the backend bucket this backend targets (if applicable).", + "type": "string" + }, + "backendServiceUri": { + "description": "URI of the backend service this backend belongs to (if applicable).", + "type": "string" + }, + "healthCheckFirewallsConfigState": { + "description": "Output only. Health check firewalls configuration state for the backend. This is a result of the static firewall analysis (verifying that health check traffic from required IP ranges to the backend is allowed or not). The backend might still be unhealthy even if these firewalls are configured. Please refer to the documentation for more information: https://cloud.google.com/load-balancing/docs/firewall-rules", + "enum": [ + "HEALTH_CHECK_FIREWALLS_CONFIG_STATE_UNSPECIFIED", + "FIREWALLS_CONFIGURED", + "FIREWALLS_PARTIALLY_CONFIGURED", + "FIREWALLS_NOT_CONFIGURED", + "FIREWALLS_UNSUPPORTED" + ], + "enumDescriptions": [ + "Configuration state unspecified. It usually means that the backend has no health check attached, or there was an unexpected configuration error preventing Connectivity tests from verifying health check configuration.", + "Firewall rules (policies) allowing health check traffic from all required IP ranges to the backend are configured.", + "Firewall rules (policies) allow health check traffic only from a part of required IP ranges.", + "Firewall rules (policies) deny health check traffic from all required IP ranges to the backend.", + "The network contains firewall rules of unsupported types, so Connectivity tests were not able to verify health check configuration status. Please refer to the documentation for the list of unsupported configurations: https://cloud.google.com/network-intelligence-center/docs/connectivity-tests/concepts/overview#unsupported-configs" + ], + "readOnly": true, + "type": "string" + }, + "healthCheckUri": { + "description": "URI of the health check attached to this backend (if applicable).", + "type": "string" + }, + "instanceGroupUri": { + "description": "URI of the instance group this backend belongs to (if applicable).", + "type": "string" + }, + "instanceUri": { + "description": "URI of the backend instance (if applicable). Populated for instance group backends, and zonal NEG backends.", + "type": "string" + }, + "name": { + "description": "Display name of the backend. For example, it might be an instance name for the instance group backends, or an IP address and port for zonal network endpoint group backends.", + "type": "string" + }, + "networkEndpointGroupUri": { + "description": "URI of the network endpoint group this backend belongs to (if applicable).", + "type": "string" + }, + "pscGoogleApiTarget": { + "description": "PSC Google API target this PSC NEG backend targets (if applicable).", + "type": "string" + }, + "pscServiceAttachmentUri": { + "description": "URI of the PSC service attachment this PSC NEG backend targets (if applicable).", + "type": "string" + } + }, + "type": "object" + }, "LoadBalancerInfo": { "description": "For display only. Metadata associated with a load balancer.", "id": "LoadBalancerInfo", @@ -1688,7 +1832,8 @@ "type": "array" }, "healthCheckUri": { - "description": "URI of the health check for the load balancer.", + "deprecated": true, + "description": "URI of the health check for the load balancer. Deprecated and no longer populated as different load balancer backends might have different health checks.", "type": "string" }, "loadBalancerType": { @@ -1748,6 +1893,83 @@ }, "type": "object" }, + "NatInfo": { + "description": "For display only. Metadata associated with NAT.", + "id": "NatInfo", + "properties": { + "natGatewayName": { + "description": "The name of Cloud NAT Gateway. Only valid when type is CLOUD_NAT.", + "type": "string" + }, + "networkUri": { + "description": "URI of the network where NAT translation takes place.", + "type": "string" + }, + "newDestinationIp": { + "description": "Destination IP address after NAT translation.", + "type": "string" + }, + "newDestinationPort": { + "description": "Destination port after NAT translation. Only valid when protocol is TCP or UDP.", + "format": "int32", + "type": "integer" + }, + "newSourceIp": { + "description": "Source IP address after NAT translation.", + "type": "string" + }, + "newSourcePort": { + "description": "Source port after NAT translation. Only valid when protocol is TCP or UDP.", + "format": "int32", + "type": "integer" + }, + "oldDestinationIp": { + "description": "Destination IP address before NAT translation.", + "type": "string" + }, + "oldDestinationPort": { + "description": "Destination port before NAT translation. Only valid when protocol is TCP or UDP.", + "format": "int32", + "type": "integer" + }, + "oldSourceIp": { + "description": "Source IP address before NAT translation.", + "type": "string" + }, + "oldSourcePort": { + "description": "Source port before NAT translation. Only valid when protocol is TCP or UDP.", + "format": "int32", + "type": "integer" + }, + "protocol": { + "description": "IP protocol in string format, for example: \"TCP\", \"UDP\", \"ICMP\".", + "type": "string" + }, + "routerUri": { + "description": "Uri of the Cloud Router. Only valid when type is CLOUD_NAT.", + "type": "string" + }, + "type": { + "description": "Type of NAT.", + "enum": [ + "TYPE_UNSPECIFIED", + "INTERNAL_TO_EXTERNAL", + "EXTERNAL_TO_INTERNAL", + "CLOUD_NAT", + "PRIVATE_SERVICE_CONNECT" + ], + "enumDescriptions": [ + "Type is unspecified.", + "From Compute Engine instance's internal address to external address.", + "From Compute Engine instance's external address to internal address.", + "Cloud NAT Gateway.", + "Private service connect NAT." + ], + "type": "string" + } + }, + "type": "object" + }, "NetworkInfo": { "description": "For display only. Metadata associated with a Compute Engine network.", "id": "NetworkInfo", @@ -1940,6 +2162,61 @@ }, "type": "object" }, + "ProxyConnectionInfo": { + "description": "For display only. Metadata associated with ProxyConnection.", + "id": "ProxyConnectionInfo", + "properties": { + "networkUri": { + "description": "URI of the network where connection is proxied.", + "type": "string" + }, + "newDestinationIp": { + "description": "Destination IP address of a new connection.", + "type": "string" + }, + "newDestinationPort": { + "description": "Destination port of a new connection. Only valid when protocol is TCP or UDP.", + "format": "int32", + "type": "integer" + }, + "newSourceIp": { + "description": "Source IP address of a new connection.", + "type": "string" + }, + "newSourcePort": { + "description": "Source port of a new connection. Only valid when protocol is TCP or UDP.", + "format": "int32", + "type": "integer" + }, + "oldDestinationIp": { + "description": "Destination IP address of an original connection", + "type": "string" + }, + "oldDestinationPort": { + "description": "Destination port of an original connection. Only valid when protocol is TCP or UDP.", + "format": "int32", + "type": "integer" + }, + "oldSourceIp": { + "description": "Source IP address of an original connection.", + "type": "string" + }, + "oldSourcePort": { + "description": "Source port of an original connection. Only valid when protocol is TCP or UDP.", + "format": "int32", + "type": "integer" + }, + "protocol": { + "description": "IP protocol in string format, for example: \"TCP\", \"UDP\", \"ICMP\".", + "type": "string" + }, + "subnetUri": { + "description": "Uri of proxy subnet.", + "type": "string" + } + }, + "type": "object" + }, "ReachabilityDetails": { "description": "Results of the configuration analysis from the last run of the test.", "id": "ReachabilityDetails", @@ -1961,7 +2238,7 @@ "No result was specified.", "Possible scenarios are: * The configuration analysis determined that a packet originating from the source is expected to reach the destination. * The analysis didn't complete because the user lacks permission for some of the resources in the trace. However, at the time the user's permission became insufficient, the trace had been successful so far.", "A packet originating from the source is expected to be dropped before reaching the destination.", - "The source and destination endpoints do not uniquely identify the test location in the network, and the reachability result contains multiple traces. For some traces, a packet could be delivered, and for others, it would not be.", + "The source and destination endpoints do not uniquely identify the test location in the network, and the reachability result contains multiple traces. For some traces, a packet could be delivered, and for others, it would not be. This result is also assigned to configuration analysis of return path if on its own it should be REACHABLE, but configuration analysis of forward path is AMBIGUOUS.", "The configuration analysis did not complete. Possible reasons are: * A permissions error occurred--for example, the user might not have read permission for all of the resources named in the test. * An internal error occurred. * The analyzer received an invalid or unsupported argument or was unable to identify a known endpoint." ], "type": "string" @@ -2244,7 +2521,16 @@ }, "loadBalancer": { "$ref": "LoadBalancerInfo", - "description": "Display information of the load balancers." + "deprecated": true, + "description": "Display information of the load balancers. Deprecated in favor of the `load_balancer_backend_info` field, not used in new tests." + }, + "loadBalancerBackendInfo": { + "$ref": "LoadBalancerBackendInfo", + "description": "Display information of a specific load balancer backend." + }, + "nat": { + "$ref": "NatInfo", + "description": "Display information of a NAT." }, "network": { "$ref": "NetworkInfo", @@ -2254,6 +2540,10 @@ "description": "Project ID that contains the configuration this step is validating.", "type": "string" }, + "proxyConnection": { + "$ref": "ProxyConnectionInfo", + "description": "Display information of a ProxyConnection." + }, "route": { "$ref": "RouteInfo", "description": "Display information of a Compute Engine route." @@ -2271,10 +2561,13 @@ "START_FROM_CLOUD_FUNCTION", "START_FROM_APP_ENGINE_VERSION", "START_FROM_CLOUD_RUN_REVISION", + "START_FROM_STORAGE_BUCKET", + "START_FROM_PSC_PUBLISHED_SERVICE", "APPLY_INGRESS_FIREWALL_RULE", "APPLY_EGRESS_FIREWALL_RULE", "APPLY_ROUTE", "APPLY_FORWARDING_RULE", + "ANALYZE_LOAD_BALANCER_BACKEND", "SPOOFING_APPROVED", "ARRIVE_AT_INSTANCE", "ARRIVE_AT_INTERNAL_LOAD_BALANCER", @@ -2290,21 +2583,57 @@ "ABORT", "VIEWER_PERMISSION_MISSING" ], + "enumDeprecated": [ + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false, + true, + true, + false, + false, + false, + false, + false, + false, + false, + false, + false, + false + ], "enumDescriptions": [ "Unspecified state.", "Initial state: packet originating from a Compute Engine instance. An InstanceInfo is populated with starting instance information.", "Initial state: packet originating from the internet. The endpoint information is populated.", - "Initial state: packet originating from a Google service. Some Google services, such as health check probers or Identity Aware Proxy use special routes, outside VPC routing configuration to reach Compute Engine Instances.", + "Initial state: packet originating from a Google service. The google_service information is populated.", "Initial state: packet originating from a VPC or on-premises network with internal source IP. If the source is a VPC network visible to the user, a NetworkInfo is populated with details of the network.", "Initial state: packet originating from a Google Kubernetes Engine cluster master. A GKEMasterInfo is populated with starting instance information.", "Initial state: packet originating from a Cloud SQL instance. A CloudSQLInstanceInfo is populated with starting instance information.", "Initial state: packet originating from a Cloud Function. A CloudFunctionInfo is populated with starting function information.", "Initial state: packet originating from an App Engine service version. An AppEngineVersionInfo is populated with starting version information.", "Initial state: packet originating from a Cloud Run revision. A CloudRunRevisionInfo is populated with starting revision information.", + "Initial state: packet originating from a Storage Bucket. Used only for return traces. The storage_bucket information is populated.", + "Initial state: packet originating from a published service that uses Private Service Connect. Used only for return traces.", "Config checking state: verify ingress firewall rule.", "Config checking state: verify egress firewall rule.", "Config checking state: verify route.", "Config checking state: match forwarding rule.", + "Config checking state: verify load balancer backend configuration.", "Config checking state: packet sent or received under foreign IP address and allowed.", "Forwarding state: arriving at a Compute Engine instance.", "Forwarding state: arriving at a Compute Engine internal load balancer.", @@ -2322,6 +2651,10 @@ ], "type": "string" }, + "storageBucket": { + "$ref": "StorageBucketInfo", + "description": "Display information of a Storage Bucket. Used only for return traces." + }, "vpcConnector": { "$ref": "VpcConnectorInfo", "description": "Display information of a VPC connector." @@ -2337,6 +2670,17 @@ }, "type": "object" }, + "StorageBucketInfo": { + "description": "For display only. Metadata associated with Storage Bucket.", + "id": "StorageBucketInfo", + "properties": { + "bucket": { + "description": "Cloud Storage Bucket name.", + "type": "string" + } + }, + "type": "object" + }, "TestIamPermissionsRequest": { "description": "Request message for `TestIamPermissions` method.", "id": "TestIamPermissionsRequest", @@ -2373,6 +2717,11 @@ "$ref": "EndpointInfo", "description": "Derived from the source and destination endpoints definition specified by user request, and validated by the data plane model. If there are multiple traces starting from different source locations, then the endpoint_info may be different between traces." }, + "forwardTraceId": { + "description": "ID of trace. For forward traces, this ID is unique for each trace. For return traces, it matches ID of associated forward trace. A single forward trace can be associated with none, one or more than one return trace.", + "format": "int32", + "type": "integer" + }, "steps": { "description": "A trace of a test contains multiple steps from the initial state to the final state (delivered, dropped, forwarded, or aborted). The steps are ordered by the processing sequence within the simulated network state machine. It is critical to preserve the order of the steps and avoid reordering or sorting them.", "items": { diff --git a/discovery/googleapis/networksecurity__v1.json b/discovery/googleapis/networksecurity__v1.json index 431e79906..0f67ecb02 100644 --- a/discovery/googleapis/networksecurity__v1.json +++ b/discovery/googleapis/networksecurity__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231025", + "revision": "20240217", "rootUrl": "https://networksecurity.googleapis.com/", "servicePath": "", "title": "Network Security API", @@ -2936,14 +2936,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -3069,6 +3069,10 @@ "description": "Rule priority of the FirewallPolicy that is using the Address Group.", "format": "int32", "type": "integer" + }, + "securityPolicy": { + "description": "Cloud Armor SecurityPolicy that is using the Address Group.", + "type": "string" } }, "type": "object" diff --git a/discovery/googleapis/networkservices__v1.json b/discovery/googleapis/networkservices__v1.json index b227a12bd..2be422fb4 100644 --- a/discovery/googleapis/networkservices__v1.json +++ b/discovery/googleapis/networkservices__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231025", + "revision": "20240216", "rootUrl": "https://networkservices.googleapis.com/", "servicePath": "", "title": "Network Services API", @@ -1256,6 +1256,370 @@ } } }, + "lbRouteExtensions": { + "methods": { + "create": { + "description": "Creates a new `LbRouteExtension` resource in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lbRouteExtensions", + "httpMethod": "POST", + "id": "networkservices.projects.locations.lbRouteExtensions.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "lbRouteExtensionId": { + "description": "Required. User-provided ID of the `LbRouteExtension` resource to be created.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource of the `LbRouteExtension` resource. Must be in the format `projects/{project}/locations/{location}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server can ignore the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/lbRouteExtensions", + "request": { + "$ref": "LbRouteExtension" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes the specified `LbRouteExtension` resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lbRouteExtensions/{lbRouteExtensionsId}", + "httpMethod": "DELETE", + "id": "networkservices.projects.locations.lbRouteExtensions.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the `LbRouteExtension` resource to delete. Must be in the format `projects/{project}/locations/{location}/lbRouteExtensions/{lb_route_extension}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/lbRouteExtensions/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server can ignore the request if it has already been completed. The server guarantees that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of the specified `LbRouteExtension` resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lbRouteExtensions/{lbRouteExtensionsId}", + "httpMethod": "GET", + "id": "networkservices.projects.locations.lbRouteExtensions.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the `LbRouteExtension` resource to get. Must be in the format `projects/{project}/locations/{location}/lbRouteExtensions/{lb_route_extension}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/lbRouteExtensions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "LbRouteExtension" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists `LbRouteExtension` resources in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lbRouteExtensions", + "httpMethod": "GET", + "id": "networkservices.projects.locations.lbRouteExtensions.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Filtering results.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. Hint for how to order the results.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Requested page size. The server might return fewer items than requested. If unspecified, the server picks an appropriate default.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A token identifying a page of results that the server returns.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The project and location from which the `LbRouteExtension` resources are listed, specified in the following format: `projects/{project}/locations/{location}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/lbRouteExtensions", + "response": { + "$ref": "ListLbRouteExtensionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of the specified `LbRouteExtension` resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lbRouteExtensions/{lbRouteExtensionsId}", + "httpMethod": "PATCH", + "id": "networkservices.projects.locations.lbRouteExtensions.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Identifier. Name of the `LbRouteExtension` resource in the following format: `projects/{project}/locations/{location}/lbRouteExtensions/{lb_route_extension}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/lbRouteExtensions/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server can ignore the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "Required. Used to specify the fields to be overwritten in the `LbRouteExtension` resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field is overwritten if it is in the mask. If the user does not specify a mask, then all fields are overwritten.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "LbRouteExtension" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "lbTrafficExtensions": { + "methods": { + "create": { + "description": "Creates a new `LbTrafficExtension` resource in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lbTrafficExtensions", + "httpMethod": "POST", + "id": "networkservices.projects.locations.lbTrafficExtensions.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "lbTrafficExtensionId": { + "description": "Required. User-provided ID of the `LbTrafficExtension` resource to be created.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource of the `LbTrafficExtension` resource. Must be in the format `projects/{project}/locations/{location}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server can ignore the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/lbTrafficExtensions", + "request": { + "$ref": "LbTrafficExtension" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes the specified `LbTrafficExtension` resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lbTrafficExtensions/{lbTrafficExtensionsId}", + "httpMethod": "DELETE", + "id": "networkservices.projects.locations.lbTrafficExtensions.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the `LbTrafficExtension` resource to delete. Must be in the format `projects/{project}/locations/{location}/lbTrafficExtensions/{lb_traffic_extension}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/lbTrafficExtensions/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server can ignore the request if it has already been completed. The server guarantees that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of the specified `LbTrafficExtension` resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lbTrafficExtensions/{lbTrafficExtensionsId}", + "httpMethod": "GET", + "id": "networkservices.projects.locations.lbTrafficExtensions.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the `LbTrafficExtension` resource to get. Must be in the format `projects/{project}/locations/{location}/lbTrafficExtensions/{lb_traffic_extension}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/lbTrafficExtensions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "LbTrafficExtension" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists `LbTrafficExtension` resources in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lbTrafficExtensions", + "httpMethod": "GET", + "id": "networkservices.projects.locations.lbTrafficExtensions.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Filtering results.", + "location": "query", + "type": "string" + }, + "orderBy": { + "description": "Optional. Hint for how to order the results.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Requested page size. The server might return fewer items than requested. If unspecified, the server picks an appropriate default.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A token identifying a page of results that the server returns.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The project and location from which the `LbTrafficExtension` resources are listed, specified in the following format: `projects/{project}/locations/{location}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/lbTrafficExtensions", + "response": { + "$ref": "ListLbTrafficExtensionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of the specified `LbTrafficExtension` resource.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/lbTrafficExtensions/{lbTrafficExtensionsId}", + "httpMethod": "PATCH", + "id": "networkservices.projects.locations.lbTrafficExtensions.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Identifier. Name of the `LbTrafficExtension` resource in the following format: `projects/{project}/locations/{location}/lbTrafficExtensions/{lb_traffic_extension}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/lbTrafficExtensions/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server can ignore the request if it has already been completed. The server guarantees that for at least 60 minutes since the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, ignores the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "Required. Used to specify the fields to be overwritten in the `LbTrafficExtension` resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field is overwritten if it is in the mask. If the user does not specify a mask, then all fields are overwritten.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "LbTrafficExtension" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "meshes": { "methods": { "create": { @@ -1508,114 +1872,324 @@ "httpMethod": "POST", "id": "networkservices.projects.locations.operations.cancel", "parameterOrder": [ - "name" + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource to be cancelled.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:cancel", + "request": { + "$ref": "CancelOperationRequest" + }, + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", + "httpMethod": "DELETE", + "id": "networkservices.projects.locations.operations.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource to be deleted.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", + "httpMethod": "GET", + "id": "networkservices.projects.locations.operations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations", + "httpMethod": "GET", + "id": "networkservices.projects.locations.operations.list", + "parameterOrder": [ + "name" + ], + "parameters": { + "filter": { + "description": "The standard list filter.", + "location": "query", + "type": "string" + }, + "name": { + "description": "The name of the operation's parent resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "The standard list page size.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The standard list page token.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}/operations", + "response": { + "$ref": "ListOperationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "serviceBindings": { + "methods": { + "create": { + "description": "Creates a new ServiceBinding in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceBindings", + "httpMethod": "POST", + "id": "networkservices.projects.locations.serviceBindings.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource of the ServiceBinding. Must be in the format `projects/*/locations/global`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "serviceBindingId": { + "description": "Required. Short name of the ServiceBinding resource to be created.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/serviceBindings", + "request": { + "$ref": "ServiceBinding" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a single ServiceBinding.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceBindings/{serviceBindingsId}", + "httpMethod": "DELETE", + "id": "networkservices.projects.locations.serviceBindings.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the ServiceBinding to delete. Must be in the format `projects/*/locations/global/serviceBindings/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/serviceBindings/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a single ServiceBinding.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceBindings/{serviceBindingsId}", + "httpMethod": "GET", + "id": "networkservices.projects.locations.serviceBindings.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. A name of the ServiceBinding to get. Must be in the format `projects/*/locations/global/serviceBindings/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/serviceBindings/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "ServiceBinding" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getIamPolicy": { + "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceBindings/{serviceBindingsId}:getIamPolicy", + "httpMethod": "GET", + "id": "networkservices.projects.locations.serviceBindings.getIamPolicy", + "parameterOrder": [ + "resource" ], "parameters": { - "name": { - "description": "The name of the operation resource to be cancelled.", + "options.requestedPolicyVersion": { + "description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", + "format": "int32", + "location": "query", + "type": "integer" + }, + "resource": { + "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", + "pattern": "^projects/[^/]+/locations/[^/]+/serviceBindings/[^/]+$", "required": true, "type": "string" } }, - "path": "v1/{+name}:cancel", - "request": { - "$ref": "CancelOperationRequest" - }, + "path": "v1/{+resource}:getIamPolicy", "response": { - "$ref": "Empty" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] }, - "delete": { - "description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", - "httpMethod": "DELETE", - "id": "networkservices.projects.locations.operations.delete", + "list": { + "description": "Lists ServiceBinding in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceBindings", + "httpMethod": "GET", + "id": "networkservices.projects.locations.serviceBindings.list", "parameterOrder": [ - "name" + "parent" ], "parameters": { - "name": { - "description": "The name of the operation resource to be deleted.", + "pageSize": { + "description": "Maximum number of ServiceBindings to return per call.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `ListServiceBindingsResponse` Indicates that this is a continuation of a prior `ListRouters` call, and that the system should return the next page of data.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The project and location from which the ServiceBindings should be listed, specified in the format `projects/*/locations/global`.", "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", + "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, "type": "string" } }, - "path": "v1/{+name}", + "path": "v1/{+parent}/serviceBindings", "response": { - "$ref": "Empty" + "$ref": "ListServiceBindingsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] }, - "get": { - "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", - "httpMethod": "GET", - "id": "networkservices.projects.locations.operations.get", + "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}/locations/{locationsId}/serviceBindings/{serviceBindingsId}:setIamPolicy", + "httpMethod": "POST", + "id": "networkservices.projects.locations.serviceBindings.setIamPolicy", "parameterOrder": [ - "name" + "resource" ], "parameters": { - "name": { - "description": "The name of the operation resource.", + "resource": { + "description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", + "pattern": "^projects/[^/]+/locations/[^/]+/serviceBindings/[^/]+$", "required": true, "type": "string" } }, - "path": "v1/{+name}", + "path": "v1/{+resource}:setIamPolicy", + "request": { + "$ref": "SetIamPolicyRequest" + }, "response": { - "$ref": "Operation" + "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] }, - "list": { - "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations", - "httpMethod": "GET", - "id": "networkservices.projects.locations.operations.list", + "testIamPermissions": { + "description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceBindings/{serviceBindingsId}:testIamPermissions", + "httpMethod": "POST", + "id": "networkservices.projects.locations.serviceBindings.testIamPermissions", "parameterOrder": [ - "name" + "resource" ], "parameters": { - "filter": { - "description": "The standard list filter.", - "location": "query", - "type": "string" - }, - "name": { - "description": "The name of the operation's parent resource.", + "resource": { + "description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+$", + "pattern": "^projects/[^/]+/locations/[^/]+/serviceBindings/[^/]+$", "required": true, "type": "string" - }, - "pageSize": { - "description": "The standard list page size.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "The standard list page token.", - "location": "query", - "type": "string" } }, - "path": "v1/{+name}/operations", + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, "response": { - "$ref": "ListOperationsResponse" + "$ref": "TestIamPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" @@ -1623,33 +2197,33 @@ } } }, - "serviceBindings": { + "serviceLbPolicies": { "methods": { "create": { - "description": "Creates a new ServiceBinding in a given project and location.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceBindings", + "description": "Creates a new ServiceLbPolicy in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceLbPolicies", "httpMethod": "POST", - "id": "networkservices.projects.locations.serviceBindings.create", + "id": "networkservices.projects.locations.serviceLbPolicies.create", "parameterOrder": [ "parent" ], "parameters": { "parent": { - "description": "Required. The parent resource of the ServiceBinding. Must be in the format `projects/*/locations/global`.", + "description": "Required. The parent resource of the ServiceLbPolicy. Must be in the format `projects/{project}/locations/{location}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, "type": "string" }, - "serviceBindingId": { - "description": "Required. Short name of the ServiceBinding resource to be created.", + "serviceLbPolicyId": { + "description": "Required. Short name of the ServiceLbPolicy resource to be created. E.g. for resource name `projects/{project}/locations/{location}/serviceLbPolicies/{service_lb_policy_name}`. the id is value of {service_lb_policy_name}", "location": "query", "type": "string" } }, - "path": "v1/{+parent}/serviceBindings", + "path": "v1/{+parent}/serviceLbPolicies", "request": { - "$ref": "ServiceBinding" + "$ref": "ServiceLbPolicy" }, "response": { "$ref": "Operation" @@ -1659,18 +2233,18 @@ ] }, "delete": { - "description": "Deletes a single ServiceBinding.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceBindings/{serviceBindingsId}", + "description": "Deletes a single ServiceLbPolicy.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceLbPolicies/{serviceLbPoliciesId}", "httpMethod": "DELETE", - "id": "networkservices.projects.locations.serviceBindings.delete", + "id": "networkservices.projects.locations.serviceLbPolicies.delete", "parameterOrder": [ "name" ], "parameters": { "name": { - "description": "Required. A name of the ServiceBinding to delete. Must be in the format `projects/*/locations/global/serviceBindings/*`.", + "description": "Required. A name of the ServiceLbPolicy to delete. Must be in the format `projects/{project}/locations/{location}/serviceLbPolicies/*`.", "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/serviceBindings/[^/]+$", + "pattern": "^projects/[^/]+/locations/[^/]+/serviceLbPolicies/[^/]+$", "required": true, "type": "string" } @@ -1684,25 +2258,25 @@ ] }, "get": { - "description": "Gets details of a single ServiceBinding.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceBindings/{serviceBindingsId}", + "description": "Gets details of a single ServiceLbPolicy.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceLbPolicies/{serviceLbPoliciesId}", "httpMethod": "GET", - "id": "networkservices.projects.locations.serviceBindings.get", + "id": "networkservices.projects.locations.serviceLbPolicies.get", "parameterOrder": [ "name" ], "parameters": { "name": { - "description": "Required. A name of the ServiceBinding to get. Must be in the format `projects/*/locations/global/serviceBindings/*`.", + "description": "Required. A name of the ServiceLbPolicy to get. Must be in the format `projects/{project}/locations/{location}/serviceLbPolicies/*`.", "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/serviceBindings/[^/]+$", + "pattern": "^projects/[^/]+/locations/[^/]+/serviceLbPolicies/[^/]+$", "required": true, "type": "string" } }, "path": "v1/{+name}", "response": { - "$ref": "ServiceBinding" + "$ref": "ServiceLbPolicy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" @@ -1710,9 +2284,9 @@ }, "getIamPolicy": { "description": "Gets the access control policy for a resource. Returns an empty policy if the resource exists and does not have a policy set.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceBindings/{serviceBindingsId}:getIamPolicy", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceLbPolicies/{serviceLbPoliciesId}:getIamPolicy", "httpMethod": "GET", - "id": "networkservices.projects.locations.serviceBindings.getIamPolicy", + "id": "networkservices.projects.locations.serviceLbPolicies.getIamPolicy", "parameterOrder": [ "resource" ], @@ -1726,7 +2300,7 @@ "resource": { "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/serviceBindings/[^/]+$", + "pattern": "^projects/[^/]+/locations/[^/]+/serviceLbPolicies/[^/]+$", "required": true, "type": "string" } @@ -1740,36 +2314,70 @@ ] }, "list": { - "description": "Lists ServiceBinding in a given project and location.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceBindings", + "description": "Lists ServiceLbPolicies in a given project and location.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceLbPolicies", "httpMethod": "GET", - "id": "networkservices.projects.locations.serviceBindings.list", + "id": "networkservices.projects.locations.serviceLbPolicies.list", "parameterOrder": [ "parent" ], "parameters": { "pageSize": { - "description": "Maximum number of ServiceBindings to return per call.", + "description": "Maximum number of ServiceLbPolicies to return per call.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "The value returned by the last `ListServiceBindingsResponse` Indicates that this is a continuation of a prior `ListRouters` call, and that the system should return the next page of data.", + "description": "The value returned by the last `ListServiceLbPoliciesResponse` Indicates that this is a continuation of a prior `ListRouters` call, and that the system should return the next page of data.", "location": "query", "type": "string" }, "parent": { - "description": "Required. The project and location from which the ServiceBindings should be listed, specified in the format `projects/*/locations/global`.", + "description": "Required. The project and location from which the ServiceLbPolicies should be listed, specified in the format `projects/{project}/locations/{location}`.", "location": "path", "pattern": "^projects/[^/]+/locations/[^/]+$", "required": true, "type": "string" } }, - "path": "v1/{+parent}/serviceBindings", + "path": "v1/{+parent}/serviceLbPolicies", "response": { - "$ref": "ListServiceBindingsResponse" + "$ref": "ListServiceLbPoliciesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the parameters of a single ServiceLbPolicy.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceLbPolicies/{serviceLbPoliciesId}", + "httpMethod": "PATCH", + "id": "networkservices.projects.locations.serviceLbPolicies.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the ServiceLbPolicy resource. It matches pattern `projects/{project}/locations/{location}/serviceLbPolicies/{service_lb_policy_name}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/serviceLbPolicies/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. Field mask is used to specify the fields to be overwritten in the ServiceLbPolicy resource by the update. The fields specified in the update_mask are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "ServiceLbPolicy" + }, + "response": { + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" @@ -1777,9 +2385,9 @@ }, "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}/locations/{locationsId}/serviceBindings/{serviceBindingsId}:setIamPolicy", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceLbPolicies/{serviceLbPoliciesId}:setIamPolicy", "httpMethod": "POST", - "id": "networkservices.projects.locations.serviceBindings.setIamPolicy", + "id": "networkservices.projects.locations.serviceLbPolicies.setIamPolicy", "parameterOrder": [ "resource" ], @@ -1787,7 +2395,7 @@ "resource": { "description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/serviceBindings/[^/]+$", + "pattern": "^projects/[^/]+/locations/[^/]+/serviceLbPolicies/[^/]+$", "required": true, "type": "string" } @@ -1805,9 +2413,9 @@ }, "testIamPermissions": { "description": "Returns permissions that a caller has on the specified resource. If the resource does not exist, this will return an empty set of permissions, not a `NOT_FOUND` error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceBindings/{serviceBindingsId}:testIamPermissions", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/serviceLbPolicies/{serviceLbPoliciesId}:testIamPermissions", "httpMethod": "POST", - "id": "networkservices.projects.locations.serviceBindings.testIamPermissions", + "id": "networkservices.projects.locations.serviceLbPolicies.testIamPermissions", "parameterOrder": [ "resource" ], @@ -1815,7 +2423,7 @@ "resource": { "description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/serviceBindings/[^/]+$", + "pattern": "^projects/[^/]+/locations/[^/]+/serviceLbPolicies/[^/]+$", "required": true, "type": "string" } @@ -2210,14 +2818,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -2251,7 +2859,7 @@ "id": "EndpointMatcherMetadataLabelMatcher", "properties": { "metadataLabelMatchCriteria": { - "description": "Specifies how matching should be done. Supported values are: MATCH_ANY: At least one of the Labels specified in the matcher should match the metadata presented by xDS client. MATCH_ALL: The metadata presented by the xDS client should contain all of the labels specified here. The selection is determined based on the best match. For example, suppose there are three EndpointPolicy resources P1, P2 and P3 and if P1 has a the matcher as MATCH_ANY , P2 has MATCH_ALL , and P3 has MATCH_ALL . If a client with label connects, the config from P1 will be selected. If a client with label connects, the config from P2 will be selected. If a client with label connects, the config from P3 will be selected. If there is more than one best match, (for example, if a config P4 with selector exists and if a client with label connects), an error will be thrown.", + "description": "Specifies how matching should be done. Supported values are: MATCH_ANY: At least one of the Labels specified in the matcher should match the metadata presented by xDS client. MATCH_ALL: The metadata presented by the xDS client should contain all of the labels specified here. The selection is determined based on the best match. For example, suppose there are three EndpointPolicy resources P1, P2 and P3 and if P1 has a the matcher as MATCH_ANY , P2 has MATCH_ALL , and P3 has MATCH_ALL . If a client with label connects, the config from P1 will be selected. If a client with label connects, the config from P2 will be selected. If a client with label connects, the config from P3 will be selected. If there is more than one best match, (for example, if a config P4 with selector exists and if a client with label connects), pick up the one with older creation time.", "enum": [ "METADATA_LABEL_MATCH_CRITERIA_UNSPECIFIED", "MATCH_ANY", @@ -2348,40 +2956,129 @@ ], "type": "string" }, - "updateTime": { - "description": "Output only. The timestamp when the resource was updated.", - "format": "google-datetime", - "readOnly": true, + "updateTime": { + "description": "Output only. The timestamp when the resource was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "Expr": { + "description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.", + "id": "Expr", + "properties": { + "description": { + "description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.", + "type": "string" + }, + "expression": { + "description": "Textual representation of an expression in Common Expression Language syntax.", + "type": "string" + }, + "location": { + "description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", + "type": "string" + }, + "title": { + "description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", + "type": "string" + } + }, + "type": "object" + }, + "ExtensionChain": { + "description": "A single extension chain wrapper that contains the match conditions and extensions to execute.", + "id": "ExtensionChain", + "properties": { + "extensions": { + "description": "Required. A set of extensions to execute for the matching request. At least one extension is required. Up to 3 extensions can be defined for each extension chain for `LbTrafficExtension` resource. `LbRouteExtension` chains are limited to 1 extension per extension chain.", + "items": { + "$ref": "ExtensionChainExtension" + }, + "type": "array" + }, + "matchCondition": { + "$ref": "ExtensionChainMatchCondition", + "description": "Required. Conditions under which this chain is invoked for a request." + }, + "name": { + "description": "Required. The name for this extension chain. The name is logged as part of the HTTP request logs. The name must conform with RFC-1034, is restricted to lower-cased letters, numbers and hyphens, and can have a maximum length of 63 characters. Additionally, the first character must be a letter and the last a letter or a number.", + "type": "string" + } + }, + "type": "object" + }, + "ExtensionChainExtension": { + "description": "A single extension in the chain to execute for the matching request.", + "id": "ExtensionChainExtension", + "properties": { + "authority": { + "description": "Optional. The `:authority` header in the gRPC request sent from Envoy to the extension service.", + "type": "string" + }, + "failOpen": { + "description": "Optional. Determines how the proxy behaves if the call to the extension fails or times out. When set to `TRUE`, request or response processing continues without error. Any subsequent extensions in the extension chain are also executed. When set to `FALSE`: * If response headers have not been delivered to the downstream client, a generic 500 error is returned to the client. The error response can be tailored by configuring a custom error response in the load balancer. * If response headers have been delivered, then the HTTP stream to the downstream client is reset. Default is `FALSE`.", + "type": "boolean" + }, + "forwardHeaders": { + "description": "Optional. List of the HTTP headers to forward to the extension (from the client or backend). If omitted, all headers are sent. Each element is a string indicating the header name.", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Required. The name for this extension. The name is logged as part of the HTTP request logs. The name must conform with RFC-1034, is restricted to lower-cased letters, numbers and hyphens, and can have a maximum length of 63 characters. Additionally, the first character must be a letter and the last a letter or a number.", + "type": "string" + }, + "service": { + "description": "Required. The reference to the service that runs the extension. Currently only Callout extensions are supported here. To configure a Callout extension, `service` must be a fully-qualified reference to a [backend service](https://cloud.google.com/compute/docs/reference/rest/v1/backendServices) in the format: `https://www.googleapis.com/compute/v1/projects/{project}/regions/{region}/backendServices/{backendService}` or `https://www.googleapis.com/compute/v1/projects/{project}/global/backendServices/{backendService}`.", + "type": "string" + }, + "supportedEvents": { + "description": "Optional. A set of events during request or response processing for which this extension is called. This field is required for the `LbTrafficExtension` resource. It's not relevant for the `LbRouteExtension` resource.", + "items": { + "enum": [ + "EVENT_TYPE_UNSPECIFIED", + "REQUEST_HEADERS", + "REQUEST_BODY", + "RESPONSE_HEADERS", + "RESPONSE_BODY" + ], + "enumDescriptions": [ + "Unspecified value. Do not use.", + "If included in `supported_events`, the extension is called when the HTTP request headers arrive.", + "If included in `supported_events`, the extension is called when the HTTP request body arrives.", + "If included in `supported_events`, the extension is called when the HTTP response headers arrive.", + "If included in `supported_events`, the extension is called when the HTTP response body arrives." + ], + "type": "string" + }, + "type": "array" + }, + "timeout": { + "description": "Required. Specifies the timeout for each individual message on the stream. The timeout must be between 10-1000 milliseconds.", + "format": "google-duration", "type": "string" } }, "type": "object" }, - "Expr": { - "description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.", - "id": "Expr", + "ExtensionChainMatchCondition": { + "description": "Conditions under which this chain is invoked for a request.", + "id": "ExtensionChainMatchCondition", "properties": { - "description": { - "description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.", - "type": "string" - }, - "expression": { - "description": "Textual representation of an expression in Common Expression Language syntax.", - "type": "string" - }, - "location": { - "description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.", - "type": "string" - }, - "title": { - "description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.", + "celExpression": { + "description": "Required. A Common Expression Language (CEL) expression that is used to match requests for which the extension chain is executed. For more information, see [CEL matcher language reference](https://cloud.google.com/service-extensions/docs/cel-matcher-language-reference).", "type": "string" } }, "type": "object" }, "Gateway": { - "description": "Gateway represents the configuration for a proxy, typically a load balancer. It captures the ip:port over which the services are exposed by the proxy, along with any policy configurations. Routes have reference to to Gateways to dictate how requests should be routed by this Gateway.", + "description": "Gateway represents the configuration for a proxy, typically a load balancer. It captures the ip:port over which the services are exposed by the proxy, along with any policy configurations. Routes have reference to to Gateways to dictate how requests should be routed by this Gateway. Next id: 32", "id": "Gateway", "properties": { "addresses": { @@ -2408,10 +3105,38 @@ "description": "Optional. A free-text description of the resource. Max length 1024 characters.", "type": "string" }, + "envoyHeaders": { + "description": "Optional. Determines if envoy will insert internal debug headers into upstream requests. Other Envoy headers may still be injected. By default, envoy will not insert any debug headers.", + "enum": [ + "ENVOY_HEADERS_UNSPECIFIED", + "NONE", + "DEBUG_HEADERS" + ], + "enumDescriptions": [ + "Defaults to NONE.", + "Suppress envoy debug headers.", + "Envoy will insert default internal debug headers into upstream requests: x-envoy-attempt-count x-envoy-is-timeout-retry x-envoy-expected-rq-timeout-ms x-envoy-original-path x-envoy-upstream-stream-duration-ms" + ], + "type": "string" + }, "gatewaySecurityPolicy": { "description": "Optional. A fully-qualified GatewaySecurityPolicy URL reference. Defines how a server should apply security policy to inbound (VM to Proxy) initiated connections. For example: `projects/*/locations/*/gatewaySecurityPolicies/swg-policy`. This policy is specific to gateways of type 'SECURE_WEB_GATEWAY'.", "type": "string" }, + "ipVersion": { + "description": "Optional. The IP Version that will be used by this gateway. Valid options are IPV4 or IPV6. Default is IPV4.", + "enum": [ + "IP_VERSION_UNSPECIFIED", + "IPV4", + "IPV6" + ], + "enumDescriptions": [ + "The type when IP version is not specified. Defaults to IPV4.", + "The type for IP version 4.", + "The type for IP version 6." + ], + "type": "string" + }, "labels": { "additionalProperties": { "type": "string" @@ -2703,6 +3428,11 @@ "$ref": "GrpcRouteFaultInjectionPolicy", "description": "Optional. The specification for fault injection introduced into traffic to test the resiliency of clients to destination service failure. As part of fault injection, when clients send requests to a destination, delays can be introduced on a percentage of requests before sending those requests to the destination service. Similarly requests from clients can be aborted by for a percentage of requests. timeout and retry_policy will be ignored by clients that are configured with a fault_injection_policy" }, + "idleTimeout": { + "description": "Optional. Specifies the idle timeout for the selected route. The idle timeout is defined as the period in which there are no bytes sent or received on either the upstream or downstream connection. If not set, the default idle timeout is 1 hour. If set to 0s, the timeout will be disabled.", + "format": "google-duration", + "type": "string" + }, "retryPolicy": { "$ref": "GrpcRouteRetryPolicy", "description": "Optional. Specifies the retry policy associated with this route." @@ -2892,6 +3622,14 @@ "description": "Specifications of a destination to which the request should be routed to.", "id": "HttpRouteDestination", "properties": { + "requestHeaderModifier": { + "$ref": "HttpRouteHeaderModifier", + "description": "Optional. The specification for modifying the headers of a matching request prior to delivery of the request to the destination. If HeaderModifiers are set on both the Destination and the RouteAction, they will be merged. Conflicts between the two will not be resolved on the configuration." + }, + "responseHeaderModifier": { + "$ref": "HttpRouteHeaderModifier", + "description": "Optional. The specification for modifying the headers of a response prior to sending the response back to the client. If HeaderModifiers are set on both the Destination and the RouteAction, they will be merged. Conflicts between the two will not be resolved on the configuration." + }, "serviceName": { "description": "The URL of a BackendService to route traffic to.", "type": "string" @@ -3037,6 +3775,27 @@ }, "type": "object" }, + "HttpRouteHttpDirectResponse": { + "description": "Static HTTP response object to be returned.", + "id": "HttpRouteHttpDirectResponse", + "properties": { + "bytesBody": { + "description": "Optional. Response body as bytes. Maximum body size is 4096B.", + "format": "byte", + "type": "string" + }, + "status": { + "description": "Required. Status to return as part of HTTP Response. Must be a positive integer.", + "format": "int32", + "type": "integer" + }, + "stringBody": { + "description": "Optional. Response body as a string. Maximum body length is 1024 characters.", + "type": "string" + } + }, + "type": "object" + }, "HttpRouteQueryParameterMatch": { "description": "Specifications to match a query parameter in the request.", "id": "HttpRouteQueryParameterMatch", @@ -3119,6 +3878,11 @@ "destination": { "$ref": "HttpRouteDestination", "description": "The destination the requests will be mirrored to. The weight of the destination will be ignored." + }, + "mirrorPercent": { + "description": "Optional. The percentage of requests to get mirrored to the desired destination.", + "format": "float", + "type": "number" } }, "type": "object" @@ -3162,10 +3926,19 @@ }, "type": "array" }, + "directResponse": { + "$ref": "HttpRouteHttpDirectResponse", + "description": "Optional. Static HTTP Response object to be returned regardless of the request." + }, "faultInjectionPolicy": { "$ref": "HttpRouteFaultInjectionPolicy", "description": "The specification for fault injection introduced into traffic to test the resiliency of clients to backend service failure. As part of fault injection, when clients send requests to a backend service, delays can be introduced on a percentage of requests before sending those requests to the backend service. Similarly requests from clients can be aborted for a percentage of requests. timeout and retry_policy will be ignored by clients that are configured with a fault_injection_policy" }, + "idleTimeout": { + "description": "Optional. Specifies the idle timeout for the selected route. The idle timeout is defined as the period in which there are no bytes sent or received on either the upstream or downstream connection. If not set, the default idle timeout is 1 hour. If set to 0s, the timeout will be disabled.", + "format": "google-duration", + "type": "string" + }, "redirect": { "$ref": "HttpRouteRedirect", "description": "If set, the request is directed as configured by this field." @@ -3284,6 +4057,130 @@ }, "type": "object" }, + "LbRouteExtension": { + "description": "`LbRouteExtension` is a resource that lets you control where traffic is routed to for a given request.", + "id": "LbRouteExtension", + "properties": { + "createTime": { + "description": "Output only. The timestamp when the resource was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. A human-readable description of the resource.", + "type": "string" + }, + "extensionChains": { + "description": "Required. A set of ordered extension chains that contain the match conditions and extensions to execute. Match conditions for each extension chain are evaluated in sequence for a given request. The first extension chain that has a condition that matches the request is executed. Any subsequent extension chains do not execute. Limited to 5 extension chains per resource.", + "items": { + "$ref": "ExtensionChain" + }, + "type": "array" + }, + "forwardingRules": { + "description": "Required. A list of references to the forwarding rules to which this service extension is attached to. At least one forwarding rule is required. There can be only one `LbRouteExtension` resource per forwarding rule.", + "items": { + "type": "string" + }, + "type": "array" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Set of labels associated with the `LbRouteExtension` resource. The format must comply with [the following requirements](/compute/docs/labeling-resources#requirements).", + "type": "object" + }, + "loadBalancingScheme": { + "description": "Required. All backend services and forwarding rules referenced by this extension must share the same load balancing scheme. Supported values: `INTERNAL_MANAGED`, `EXTERNAL_MANAGED`. For more information, refer to [Choosing a load balancer](https://cloud.google.com/load-balancing/docs/backend-service).", + "enum": [ + "LOAD_BALANCING_SCHEME_UNSPECIFIED", + "INTERNAL_MANAGED", + "EXTERNAL_MANAGED" + ], + "enumDescriptions": [ + "Default value. Do not use.", + "Signifies that this is used for Internal HTTP(S) Load Balancing.", + "Signifies that this is used for External Managed HTTP(S) Load Balancing." + ], + "type": "string" + }, + "name": { + "description": "Required. Identifier. Name of the `LbRouteExtension` resource in the following format: `projects/{project}/locations/{location}/lbRouteExtensions/{lb_route_extension}`.", + "type": "string" + }, + "updateTime": { + "description": "Output only. The timestamp when the resource was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "LbTrafficExtension": { + "description": "`LbTrafficExtension` is a resource that lets the extension service modify the headers and payloads of both requests and responses without impacting the choice of backend services or any other security policies associated with the backend service.", + "id": "LbTrafficExtension", + "properties": { + "createTime": { + "description": "Output only. The timestamp when the resource was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. A human-readable description of the resource.", + "type": "string" + }, + "extensionChains": { + "description": "Required. A set of ordered extension chains that contain the match conditions and extensions to execute. Match conditions for each extension chain are evaluated in sequence for a given request. The first extension chain that has a condition that matches the request is executed. Any subsequent extension chains do not execute. Limited to 5 extension chains per resource.", + "items": { + "$ref": "ExtensionChain" + }, + "type": "array" + }, + "forwardingRules": { + "description": "Required. A list of references to the forwarding rules to which this service extension is attached to. At least one forwarding rule is required. There can be only one `LBTrafficExtension` resource per forwarding rule.", + "items": { + "type": "string" + }, + "type": "array" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Set of labels associated with the `LbTrafficExtension` resource. The format must comply with [the following requirements](/compute/docs/labeling-resources#requirements).", + "type": "object" + }, + "loadBalancingScheme": { + "description": "Required. All backend services and forwarding rules referenced by this extension must share the same load balancing scheme. Supported values: `INTERNAL_MANAGED`, `EXTERNAL_MANAGED`. For more information, refer to [Choosing a load balancer](https://cloud.google.com/load-balancing/docs/backend-service).", + "enum": [ + "LOAD_BALANCING_SCHEME_UNSPECIFIED", + "INTERNAL_MANAGED", + "EXTERNAL_MANAGED" + ], + "enumDescriptions": [ + "Default value. Do not use.", + "Signifies that this is used for Internal HTTP(S) Load Balancing.", + "Signifies that this is used for External Managed HTTP(S) Load Balancing." + ], + "type": "string" + }, + "name": { + "description": "Required. Identifier. Name of the `LbTrafficExtension` resource in the following format: `projects/{project}/locations/{location}/lbTrafficExtensions/{lb_traffic_extension}`.", + "type": "string" + }, + "updateTime": { + "description": "Output only. The timestamp when the resource was updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "ListEndpointPoliciesResponse": { "description": "Response returned by the ListEndpointPolicies method.", "id": "ListEndpointPoliciesResponse", @@ -3363,6 +4260,56 @@ }, "type": "object" }, + "ListLbRouteExtensionsResponse": { + "description": "Message for response to listing `LbRouteExtension` resources.", + "id": "ListLbRouteExtensionsResponse", + "properties": { + "lbRouteExtensions": { + "description": "The list of `LbRouteExtension` resources.", + "items": { + "$ref": "LbRouteExtension" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token identifying a page of results that the server returns.", + "type": "string" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListLbTrafficExtensionsResponse": { + "description": "Message for response to listing `LbTrafficExtension` resources.", + "id": "ListLbTrafficExtensionsResponse", + "properties": { + "lbTrafficExtensions": { + "description": "The list of `LbTrafficExtension` resources.", + "items": { + "$ref": "LbTrafficExtension" + }, + "type": "array" + }, + "nextPageToken": { + "description": "A token identifying a page of results that the server returns.", + "type": "string" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ListLocationsResponse": { "description": "The response message for Locations.ListLocations.", "id": "ListLocationsResponse", @@ -3435,6 +4382,24 @@ }, "type": "object" }, + "ListServiceLbPoliciesResponse": { + "description": "Response returned by the ListServiceLbPolicies method.", + "id": "ListServiceLbPoliciesResponse", + "properties": { + "nextPageToken": { + "description": "If there might be more results than those appearing in this response, then `next_page_token` is included. To get the next set of results, call this method again using the value of `next_page_token` as `page_token`.", + "type": "string" + }, + "serviceLbPolicies": { + "description": "List of ServiceLbPolicy resources.", + "items": { + "$ref": "ServiceLbPolicy" + }, + "type": "array" + } + }, + "type": "object" + }, "ListTcpRoutesResponse": { "description": "Response returned by the ListTcpRoutes method.", "id": "ListTcpRoutesResponse", @@ -3519,6 +4484,20 @@ "description": "Optional. A free-text description of the resource. Max length 1024 characters.", "type": "string" }, + "envoyHeaders": { + "description": "Optional. Determines if envoy will insert internal debug headers into upstream requests. Other Envoy headers may still be injected. By default, envoy will not insert any debug headers.", + "enum": [ + "ENVOY_HEADERS_UNSPECIFIED", + "NONE", + "DEBUG_HEADERS" + ], + "enumDescriptions": [ + "Defaults to NONE.", + "Suppress envoy debug headers.", + "Envoy will insert default internal debug headers into upstream requests: x-envoy-attempt-count x-envoy-is-timeout-retry x-envoy-expected-rq-timeout-ms x-envoy-original-path x-envoy-upstream-stream-duration-ms" + ], + "type": "string" + }, "interceptionPort": { "description": "Optional. If set to a valid TCP port (1-65535), instructs the SIDECAR proxy to listen on the specified port of localhost (127.0.0.1) address. The SIDECAR proxy will expect all traffic to be redirected to this port regardless of its actual ip:port destination. If unset, a port '15001' is used as the interception port. This is applicable only for sidecar proxy deployments.", "format": "int32", @@ -3702,6 +4681,89 @@ }, "type": "object" }, + "ServiceLbPolicy": { + "description": "ServiceLbPolicy holds global load balancing and traffic distribution configuration that can be applied to a BackendService.", + "id": "ServiceLbPolicy", + "properties": { + "autoCapacityDrain": { + "$ref": "ServiceLbPolicyAutoCapacityDrain", + "description": "Optional. Configuration to automatically move traffic away for unhealthy IG/NEG for the associated Backend Service." + }, + "createTime": { + "description": "Output only. The timestamp when this resource was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Optional. A free-text description of the resource. Max length 1024 characters.", + "type": "string" + }, + "failoverConfig": { + "$ref": "ServiceLbPolicyFailoverConfig", + "description": "Optional. Configuration related to health based failover." + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Set of label tags associated with the ServiceLbPolicy resource.", + "type": "object" + }, + "loadBalancingAlgorithm": { + "description": "Optional. The type of load balancing algorithm to be used. The default behavior is WATERFALL_BY_REGION.", + "enum": [ + "LOAD_BALANCING_ALGORITHM_UNSPECIFIED", + "SPRAY_TO_WORLD", + "SPRAY_TO_REGION", + "WATERFALL_BY_REGION", + "WATERFALL_BY_ZONE" + ], + "enumDescriptions": [ + "The type of the loadbalancing algorithm is unspecified.", + "Balance traffic across all backends across the world proportionally based on capacity.", + "Direct traffic to the nearest region with endpoints and capacity before spilling over to other regions and spread the traffic from each client to all the MIGs/NEGs in a region.", + "Direct traffic to the nearest region with endpoints and capacity before spilling over to other regions. All MIGs/NEGs within a region are evenly loaded but each client might not spread the traffic to all the MIGs/NEGs in the region.", + "Attempt to keep traffic in a single zone closest to the client, before spilling over to other zones." + ], + "type": "string" + }, + "name": { + "description": "Required. Name of the ServiceLbPolicy resource. It matches pattern `projects/{project}/locations/{location}/serviceLbPolicies/{service_lb_policy_name}`.", + "type": "string" + }, + "updateTime": { + "description": "Output only. The timestamp when this resource was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "ServiceLbPolicyAutoCapacityDrain": { + "description": "Option to specify if an unhealthy IG/NEG should be considered for global load balancing and traffic routing.", + "id": "ServiceLbPolicyAutoCapacityDrain", + "properties": { + "enable": { + "description": "Optional. If set to 'True', an unhealthy IG/NEG will be set as drained. - An IG/NEG is considered unhealthy if less than 25% of the instances/endpoints in the IG/NEG are healthy. - This option will never result in draining more than 50% of the configured IGs/NEGs for the Backend Service.", + "type": "boolean" + } + }, + "type": "object" + }, + "ServiceLbPolicyFailoverConfig": { + "description": "Option to specify health based failover behavior. This is not related to Network load balancer FailoverPolicy.", + "id": "ServiceLbPolicyFailoverConfig", + "properties": { + "failoverHealthThreshold": { + "description": "Optional. The percentage threshold that a load balancer will begin to send traffic to failover backends. If the percentage of endpoints in a MIG/NEG is smaller than this value, traffic would be sent to failover backends if possible. This field should be set to a value between 1 and 99. The default value is 50 for Global external HTTP(S) load balancer (classic) and Proxyless service mesh, and 70 for others.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "SetIamPolicyRequest": { "description": "Request message for `SetIamPolicy` method.", "id": "SetIamPolicyRequest", @@ -3816,6 +4878,11 @@ }, "type": "array" }, + "idleTimeout": { + "description": "Optional. Specifies the idle timeout for the selected route. The idle timeout is defined as the period in which there are no bytes sent or received on either the upstream or downstream connection. If not set, the default idle timeout is 30 seconds. If set to 0s, the timeout will be disabled.", + "format": "google-duration", + "type": "string" + }, "originalDestination": { "description": "Optional. If true, Router will use the destination IP and port of the original connection as the destination of the request. Default is false. Only one of route destinations or original destination can be set.", "type": "boolean" @@ -3970,6 +5037,11 @@ "$ref": "TlsRouteRouteDestination" }, "type": "array" + }, + "idleTimeout": { + "description": "Optional. Specifies the idle timeout for the selected route. The idle timeout is defined as the period in which there are no bytes sent or received on either the upstream or downstream connection. If not set, the default idle timeout is 1 hour. If set to 0s, the timeout will be disabled.", + "format": "google-duration", + "type": "string" } }, "type": "object" diff --git a/discovery/googleapis/notebooks__v1.json b/discovery/googleapis/notebooks__v1.json index 846229f57..56953838f 100644 --- a/discovery/googleapis/notebooks__v1.json +++ b/discovery/googleapis/notebooks__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231024", + "revision": "20231227", "rootUrl": "https://notebooks.googleapis.com/", "servicePath": "", "title": "Notebooks API", @@ -2068,7 +2068,7 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, diff --git a/discovery/googleapis/notebooks__v2.json b/discovery/googleapis/notebooks__v2.json index 729ba87ea..9b418a535 100644 --- a/discovery/googleapis/notebooks__v2.json +++ b/discovery/googleapis/notebooks__v2.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231024", + "revision": "20231227", "rootUrl": "https://notebooks.googleapis.com/", "servicePath": "", "title": "Notebooks API", @@ -526,6 +526,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "resizeDisk": { + "description": "Resize a notebook instance disk to a higher capacity.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:resizeDisk", + "httpMethod": "POST", + "id": "notebooks.projects.locations.instances.resizeDisk", + "parameterOrder": [ + "notebookInstance" + ], + "parameters": { + "notebookInstance": { + "description": "Required. Format: `projects/{project_id}/locations/{location}/instances/{instance_id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/instances/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+notebookInstance}:resizeDisk", + "request": { + "$ref": "ResizeDiskRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "rollback": { "description": "Rollbacks a notebook instance to the previous version.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/instances/{instancesId}:rollback", @@ -904,7 +932,7 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, @@ -1428,6 +1456,11 @@ "readOnly": true, "type": "string" }, + "thirdPartyProxyUrl": { + "description": "Output only. The workforce pools proxy endpoint that is used to access the Jupyter notebook.", + "readOnly": true, + "type": "string" + }, "updateTime": { "description": "Output only. Instance update time.", "format": "google-datetime", @@ -1690,6 +1723,21 @@ "properties": {}, "type": "object" }, + "ResizeDiskRequest": { + "description": "Request for resizing the notebook instance disks", + "id": "ResizeDiskRequest", + "properties": { + "bootDisk": { + "$ref": "BootDisk", + "description": "Required. The boot disk to be resized. Only disk_size_gb will be used." + }, + "dataDisk": { + "$ref": "DataDisk", + "description": "Required. The data disk to be resized. Only disk_size_gb will be used." + } + }, + "type": "object" + }, "RollbackInstanceRequest": { "description": "Request for rollbacking a notebook instance", "id": "RollbackInstanceRequest", diff --git a/discovery/googleapis/ondemandscanning__v1.json b/discovery/googleapis/ondemandscanning__v1.json index d38126f77..007ee20a5 100644 --- a/discovery/googleapis/ondemandscanning__v1.json +++ b/discovery/googleapis/ondemandscanning__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231113", + "revision": "20240226", "rootUrl": "https://ondemandscanning.googleapis.com/", "servicePath": "", "title": "On-Demand Scanning API", @@ -1914,7 +1914,11 @@ "GO", "GO_STDLIB", "PYPI", - "NPM" + "NPM", + "NUGET", + "RUBYGEMS", + "RUST", + "COMPOSER" ], "enumDescriptions": [ "", @@ -1923,7 +1927,11 @@ "Go third-party packages.", "Go toolchain + standard library packages.", "Python packages.", - "NPM packages." + "NPM packages.", + "Nuget (C#/.NET) packages.", + "Ruby packges (from RubyGems package manager).", + "Rust packages from Cargo (Github ecosystem is `RUST`).", + "PHP packages from Composer package manager." ], "type": "string" }, diff --git a/discovery/googleapis/orgpolicy__v2.json b/discovery/googleapis/orgpolicy__v2.json index a5c0b258a..d494ed16b 100644 --- a/discovery/googleapis/orgpolicy__v2.json +++ b/discovery/googleapis/orgpolicy__v2.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231113", + "revision": "20240211", "rootUrl": "https://orgpolicy.googleapis.com/", "servicePath": "", "title": "Organization Policy API", @@ -190,6 +190,11 @@ "name" ], "parameters": { + "etag": { + "description": "Optional. The current etag of policy. If an etag is provided and does not match the current etag of the policy, deletion will be blocked and an ABORTED error will be returned.", + "location": "query", + "type": "string" + }, "name": { "description": "Required. Name of the policy to delete. See the policy entry for naming rules.", "location": "path", @@ -557,6 +562,11 @@ "name" ], "parameters": { + "etag": { + "description": "Optional. The current etag of policy. If an etag is provided and does not match the current etag of the policy, deletion will be blocked and an ABORTED error will be returned.", + "location": "query", + "type": "string" + }, "name": { "description": "Required. Name of the policy to delete. See the policy entry for naming rules.", "location": "path", @@ -778,6 +788,11 @@ "name" ], "parameters": { + "etag": { + "description": "Optional. The current etag of policy. If an etag is provided and does not match the current etag of the policy, deletion will be blocked and an ABORTED error will be returned.", + "location": "query", + "type": "string" + }, "name": { "description": "Required. Name of the policy to delete. See the policy entry for naming rules.", "location": "path", @@ -1137,6 +1152,10 @@ "$ref": "GoogleCloudOrgpolicyV2PolicySpec", "description": "Dry-run policy. Audit-only policy, can be used to monitor how the policy would have impacted the existing and future resources if it's enforced." }, + "etag": { + "description": "Optional. An opaque tag indicating the current state of the policy, used for concurrency control. This 'etag' is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.", + "type": "string" + }, "name": { "description": "Immutable. The resource name of the policy. Must be one of the following forms, where `constraint_name` is the name of the constraint which this policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, `projects/123/policies/compute.disableSerialPortAccess`. Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number.", "type": "string" @@ -1153,7 +1172,7 @@ "id": "GoogleCloudOrgpolicyV2PolicySpec", "properties": { "etag": { - "description": "An opaque tag indicating the current version of the policy, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the policy` is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current policy to use when executing a read-modify-write loop. When the policy is returned from a `GetEffectivePolicy` request, the `etag` will be unset.", + "description": "An opaque tag indicating the current version of the policySpec, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the policy is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current policySpec to use when executing a read-modify-write loop. When the policy is returned from a `GetEffectivePolicy` request, the `etag` will be unset.", "type": "string" }, "inheritFromParent": { diff --git a/discovery/googleapis/osconfig__v1.json b/discovery/googleapis/osconfig__v1.json index 1c5415aeb..ba73f6673 100644 --- a/discovery/googleapis/osconfig__v1.json +++ b/discovery/googleapis/osconfig__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231124", + "revision": "20240225", "rootUrl": "https://osconfig.googleapis.com/", "servicePath": "", "title": "OS Config API", @@ -3603,7 +3603,7 @@ "type": "string" }, "dayOffset": { - "description": "Optional. Represents the number of days before or after the given week day of month that the patch deployment is scheduled for. For example if `week_ordinal` and `day_of_week` values point to the second day of the month and this `day_offset` value is set to `3`, the patch deployment takes place three days after the second Tuesday of the month. If this value is negative, for example -5, the patches are deployed five days before before the second Tuesday of the month. Allowed values are in range [-30, 30].", + "description": "Optional. Represents the number of days before or after the given week day of month that the patch deployment is scheduled for. For example if `week_ordinal` and `day_of_week` values point to the second Tuesday of the month and the `day_offset` value is set to `3`, patch deployment takes place three days after the second Tuesday of the month. If this value is negative, for example -5, patches are deployed five days before the second Tuesday of the month. Allowed values are in range [-30, 30].", "format": "int32", "type": "integer" }, diff --git a/discovery/googleapis/oslogin__v1.json b/discovery/googleapis/oslogin__v1.json index 8bc9dedcd..daa4697d3 100644 --- a/discovery/googleapis/oslogin__v1.json +++ b/discovery/googleapis/oslogin__v1.json @@ -34,7 +34,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231103", + "revision": "20240216", "rootUrl": "https://oslogin.googleapis.com/", "servicePath": "", "title": "Cloud OS Login API", @@ -178,6 +178,12 @@ "description": "The project ID of the Google Cloud Platform project.", "location": "query", "type": "string" + }, + "regions": { + "description": "Optional. The regions to which to assert that the key was written. If unspecified, defaults to all regions. Regions are listed at https://cloud.google.com/about/locations#region.", + "location": "query", + "repeated": true, + "type": "string" } }, "path": "v1/{+parent}:importSshPublicKey", diff --git a/discovery/googleapis/pagespeedonline__v5.json b/discovery/googleapis/pagespeedonline__v5.json index 340b78a41..9f8f3d9e6 100644 --- a/discovery/googleapis/pagespeedonline__v5.json +++ b/discovery/googleapis/pagespeedonline__v5.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240226", "rootUrl": "https://pagespeedonline.googleapis.com/", "servicePath": "", "title": "PageSpeed Insights API", diff --git a/discovery/googleapis/paymentsresellersubscription__v1.json b/discovery/googleapis/paymentsresellersubscription__v1.json index f93ec20f6..cd484193f 100644 --- a/discovery/googleapis/paymentsresellersubscription__v1.json +++ b/discovery/googleapis/paymentsresellersubscription__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240226", "rootUrl": "https://paymentsresellersubscription.googleapis.com/", "servicePath": "", "title": "Payments Reseller Subscription API", @@ -123,7 +123,7 @@ ], "parameters": { "filter": { - "description": "Optional. Specifies the filters for the product results. The syntax is defined in https://google.aip.dev/160 with the following caveats: - Only the following features are supported: - Logical operator `AND` - Comparison operator `=` (no wildcards `*`) - Traversal operator `.` - Has operator `:` (no wildcards `*`) - Only the following fields are supported: - `regionCodes` - `youtubePayload.partnerEligibilityId` - `youtubePayload.postalCode` - Unless explicitly mentioned above, other features are not supported. Example: `regionCodes:US AND youtubePayload.postalCode=94043 AND youtubePayload.partnerEligibilityId=eligibility-id`", + "description": "Optional. Specifies the filters for the product results. The syntax is defined in https://google.aip.dev/160 with the following caveats: 1. Only the following features are supported: - Logical operator `AND` - Comparison operator `=` (no wildcards `*`) - Traversal operator `.` - Has operator `:` (no wildcards `*`) 2. Only the following fields are supported: - `regionCodes` - `youtubePayload.partnerEligibilityId` - `youtubePayload.postalCode` 3. Unless explicitly mentioned above, other features are not supported. Example: `regionCodes:US AND youtubePayload.postalCode=94043 AND youtubePayload.partnerEligibilityId=eligibility-id`", "location": "query", "type": "string" }, @@ -196,7 +196,7 @@ ], "parameters": { "filter": { - "description": "Optional. Specifies the filters for the promotion results. The syntax is defined in https://google.aip.dev/160 with the following caveats: - Only the following features are supported: - Logical operator `AND` - Comparison operator `=` (no wildcards `*`) - Traversal operator `.` - Has operator `:` (no wildcards `*`) - Only the following fields are supported: - `applicableProducts` - `regionCodes` - `youtubePayload.partnerEligibilityId` - `youtubePayload.postalCode` - Unless explicitly mentioned above, other features are not supported. Example: `applicableProducts:partners/partner1/products/product1 AND regionCodes:US AND youtubePayload.postalCode=94043 AND youtubePayload.partnerEligibilityId=eligibility-id`", + "description": "Optional. Specifies the filters for the promotion results. The syntax is defined in https://google.aip.dev/160 with the following caveats: 1. Only the following features are supported: - Logical operator `AND` - Comparison operator `=` (no wildcards `*`) - Traversal operator `.` - Has operator `:` (no wildcards `*`) 2. Only the following fields are supported: - `applicableProducts` - `regionCodes` - `youtubePayload.partnerEligibilityId` - `youtubePayload.postalCode` 3. Unless explicitly mentioned above, other features are not supported. Example: `applicableProducts:partners/partner1/products/product1 AND regionCodes:US AND youtubePayload.postalCode=94043 AND youtubePayload.partnerEligibilityId=eligibility-id`", "location": "query", "type": "string" }, @@ -457,6 +457,7 @@ "type": "object" }, "GoogleCloudPaymentsResellerSubscriptionV1CancelSubscriptionRequest": { + "description": "Request to cancel a subscription.", "id": "GoogleCloudPaymentsResellerSubscriptionV1CancelSubscriptionRequest", "properties": { "cancelImmediately": { @@ -484,11 +485,11 @@ "Buyer's remorse.", "Accidential purchase.", "Payment is past due.", - "User account closed.", + "Used for notification only, do not use in Cancel API. User account closed.", "Used for notification only, do not use in Cancel API. Cancellation due to upgrade or downgrade.", "Cancellation due to user delinquency", - "Cancellation due to an unrecoverable system error.", - "Cancellation by a system.", + "Used for notification only, do not use in Cancel API. Cancellation due to an unrecoverable system error.", + "Used for notification only, do not use in Cancel API. The subscription is cancelled by Google automatically since it is no longer valid.", "Other reason." ], "type": "string" @@ -497,6 +498,7 @@ "type": "object" }, "GoogleCloudPaymentsResellerSubscriptionV1CancelSubscriptionResponse": { + "description": "Response that contains the cancelled subscription resource.", "id": "GoogleCloudPaymentsResellerSubscriptionV1CancelSubscriptionResponse", "properties": { "subscription": { @@ -568,6 +570,7 @@ "type": "object" }, "GoogleCloudPaymentsResellerSubscriptionV1EntitleSubscriptionResponse": { + "description": "Response that contains the entitled subscription resource.", "id": "GoogleCloudPaymentsResellerSubscriptionV1EntitleSubscriptionResponse", "properties": { "subscription": { @@ -593,6 +596,7 @@ "type": "object" }, "GoogleCloudPaymentsResellerSubscriptionV1ExtendSubscriptionResponse": { + "description": "Response that contains the timestamps after the extension.", "id": "GoogleCloudPaymentsResellerSubscriptionV1ExtendSubscriptionResponse", "properties": { "cycleEndTime": { @@ -620,7 +624,7 @@ "properties": { "duration": { "$ref": "GoogleCloudPaymentsResellerSubscriptionV1Duration", - "description": "Specifies the period of access the subscription should grant." + "description": "Required. Specifies the period of access the subscription should grant." }, "partnerUserToken": { "description": "Required. Identifier of the end-user in partner’s system.", @@ -630,10 +634,11 @@ "type": "object" }, "GoogleCloudPaymentsResellerSubscriptionV1FindEligiblePromotionsRequest": { + "description": "Request to find eligible promotions for the current user.", "id": "GoogleCloudPaymentsResellerSubscriptionV1FindEligiblePromotionsRequest", "properties": { "filter": { - "description": "Optional. Specifies the filters for the promotion results. The syntax is defined in https://google.aip.dev/160 with the following caveats: - Only the following features are supported: - Logical operator `AND` - Comparison operator `=` (no wildcards `*`) - Traversal operator `.` - Has operator `:` (no wildcards `*`) - Only the following fields are supported: - `applicableProducts` - `regionCodes` - `youtubePayload.partnerEligibilityId` - `youtubePayload.postalCode` - Unless explicitly mentioned above, other features are not supported. Example: `applicableProducts:partners/partner1/products/product1 AND regionCodes:US AND youtubePayload.postalCode=94043 AND youtubePayload.partnerEligibilityId=eligibility-id`", + "description": "Optional. Specifies the filters for the promotion results. The syntax is defined in https://google.aip.dev/160 with the following caveats: 1. Only the following features are supported: - Logical operator `AND` - Comparison operator `=` (no wildcards `*`) - Traversal operator `.` - Has operator `:` (no wildcards `*`) 2. Only the following fields are supported: - `applicableProducts` - `regionCodes` - `youtubePayload.partnerEligibilityId` - `youtubePayload.postalCode` 3. Unless explicitly mentioned above, other features are not supported. Example: `applicableProducts:partners/partner1/products/product1 AND regionCodes:US AND youtubePayload.postalCode=94043 AND youtubePayload.partnerEligibilityId=eligibility-id`", "type": "string" }, "pageSize": { @@ -733,6 +738,7 @@ "type": "object" }, "GoogleCloudPaymentsResellerSubscriptionV1ListProductsResponse": { + "description": "Response that contains the products.", "id": "GoogleCloudPaymentsResellerSubscriptionV1ListProductsResponse", "properties": { "nextPageToken": { @@ -750,6 +756,7 @@ "type": "object" }, "GoogleCloudPaymentsResellerSubscriptionV1ListPromotionsResponse": { + "description": "Response that contains the promotions.", "id": "GoogleCloudPaymentsResellerSubscriptionV1ListPromotionsResponse", "properties": { "nextPageToken": { @@ -795,8 +802,7 @@ "description": "Optional. Details for a subscription line item with finite billing cycles. If unset, the line item will be charged indefinitely." }, "name": { - "description": "Output only. Response only. Resource name of the product. It will have the format of \"partners/{partner_id}/products/{product_id}\"", - "readOnly": true, + "description": "Identifier. Response only. Resource name of the product. It will have the format of \"partners/{partner_id}/products/{product_id}\"", "type": "string" }, "priceConfigs": { @@ -916,8 +922,7 @@ "description": "Optional. Specifies the introductory pricing details when the promotion_type is PROMOTION_TYPE_INTRODUCTORY_PRICING." }, "name": { - "description": "Output only. Response only. Resource name of the subscription promotion. It will have the format of \"partners/{partner_id}/promotion/{promotion_id}\"", - "readOnly": true, + "description": "Identifier. Response only. Resource name of the subscription promotion. It will have the format of \"partners/{partner_id}/promotion/{promotion_id}\"", "type": "string" }, "promotionType": { @@ -964,10 +969,11 @@ "id": "GoogleCloudPaymentsResellerSubscriptionV1PromotionIntroductoryPricingDetails", "properties": { "introductoryPricingSpecs": { - "description": "Specifies the introductory pricing periods.", + "description": "Output only. Specifies the introductory pricing periods.", "items": { "$ref": "GoogleCloudPaymentsResellerSubscriptionV1PromotionIntroductoryPricingDetailsIntroductoryPricingSpec" }, + "readOnly": true, "type": "array" } }, @@ -1020,7 +1026,7 @@ "type": "object" }, "GoogleCloudPaymentsResellerSubscriptionV1Subscription": { - "description": "A Subscription resource managed by 3P Partners.", + "description": "A subscription serves as a central billing entity between an external partner and Google. The underlying Google services rely on the subscription state to grant or revoke the user's service entitlement. It's important to note that the subscription state may not always perfectly align with the user's service entitlement. For example, some Google services may continue providing access to the user until the current billing cycle ends, even if the subscription has been immediately canceled. However, other services may not do the same. To fully understand the specific details, please consult the relevant contract or product policy.", "id": "GoogleCloudPaymentsResellerSubscriptionV1Subscription", "properties": { "cancellationDetails": { @@ -1059,7 +1065,7 @@ "type": "array" }, "name": { - "description": "Optional. Resource name of the subscription. It will have the format of \"partners/{partner_id}/subscriptions/{subscription_id}\". This is available for authorizeAddon, but otherwise is response only.", + "description": "Identifier. Resource name of the subscription. It will have the format of \"partners/{partner_id}/subscriptions/{subscription_id}\". This is available for authorizeAddon, but otherwise is response only.", "type": "string" }, "partnerUserToken": { @@ -1158,7 +1164,7 @@ "id": "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionCancellationDetails", "properties": { "reason": { - "description": "The reason of the cancellation.", + "description": "Output only. The reason of the cancellation.", "enum": [ "CANCELLATION_REASON_UNSPECIFIED", "CANCELLATION_REASON_FRAUD", @@ -1178,13 +1184,14 @@ "Buyer's remorse.", "Accidential purchase.", "Payment is past due.", - "User account closed.", + "Used for notification only, do not use in Cancel API. User account closed.", "Used for notification only, do not use in Cancel API. Cancellation due to upgrade or downgrade.", "Cancellation due to user delinquency", - "Cancellation due to an unrecoverable system error.", - "Cancellation by a system.", + "Used for notification only, do not use in Cancel API. Cancellation due to an unrecoverable system error.", + "Used for notification only, do not use in Cancel API. The subscription is cancelled by Google automatically since it is no longer valid.", "Other reason." ], + "readOnly": true, "type": "string" } }, @@ -1312,7 +1319,8 @@ "properties": { "servicePeriod": { "$ref": "GoogleCloudPaymentsResellerSubscriptionV1ServicePeriod", - "description": "The service period of the ONE_TIME line item." + "description": "Output only. The service period of the ONE_TIME line item.", + "readOnly": true } }, "type": "object" @@ -1411,6 +1419,22 @@ "type": "string" }, "type": "array" + }, + "partnerPlanType": { + "description": "Optional. Specifies the plan type offered to the end user by the partner.", + "enum": [ + "PARTNER_PLAN_TYPE_UNSPECIFIED", + "PARTNER_PLAN_TYPE_STANDALONE", + "PARTNER_PLAN_TYPE_HARD_BUNDLE", + "PARTNER_PLAN_TYPE_SOFT_BUNDLE" + ], + "enumDescriptions": [ + "Unspecified. Should not use, reserved as an invalid value.", + "This item is offered as a standalone product to the user.", + "This item is bundled with another partner offering, the item is provisioned at purchase time.", + "This item is bundled with another partner offering, the item is provisioned after puchase, when the user opts in this Google service." + ], + "type": "string" } }, "type": "object" @@ -1463,10 +1487,11 @@ "id": "SubscriptionLineItemBundleDetails", "properties": { "bundleElementDetails": { - "description": "The details for each element in the hard bundle.", + "description": "Output only. The details for each element in the hard bundle.", "items": { "$ref": "GoogleCloudPaymentsResellerSubscriptionV1SubscriptionLineItemBundleDetailsBundleElementDetails" }, + "readOnly": true, "type": "array" } }, diff --git a/discovery/googleapis/people__v1.json b/discovery/googleapis/people__v1.json index e5d6a4cd9..5192fb8bc 100644 --- a/discovery/googleapis/people__v1.json +++ b/discovery/googleapis/people__v1.json @@ -58,7 +58,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240226", "rootUrl": "https://people.googleapis.com/", "servicePath": "", "title": "People API", diff --git a/discovery/googleapis/photoslibrary__v1.json b/discovery/googleapis/photoslibrary__v1.json index 5562d23c4..ef9578b82 100644 --- a/discovery/googleapis/photoslibrary__v1.json +++ b/discovery/googleapis/photoslibrary__v1.json @@ -40,7 +40,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231128", + "revision": "20240223", "rootUrl": "https://photoslibrary.googleapis.com/", "servicePath": "", "title": "Photos Library API", diff --git a/discovery/googleapis/places__v1.json b/discovery/googleapis/places__v1.json index 0a79d4589..aadbc02f6 100644 --- a/discovery/googleapis/places__v1.json +++ b/discovery/googleapis/places__v1.json @@ -8,6 +8,9 @@ "https://www.googleapis.com/auth/maps-platform.places": { "description": "Private Service: https://www.googleapis.com/auth/maps-platform.places" }, + "https://www.googleapis.com/auth/maps-platform.places.autocomplete": { + "description": "Private Service: https://www.googleapis.com/auth/maps-platform.places.autocomplete" + }, "https://www.googleapis.com/auth/maps-platform.places.details": { "description": "Private Service: https://www.googleapis.com/auth/maps-platform.places.details" }, @@ -37,7 +40,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240226", "rootUrl": "https://places.googleapis.com/", "servicePath": "", "title": "Places API (New)", @@ -123,8 +126,28 @@ "resources": { "places": { "methods": { + "autocomplete": { + "description": "Returns predictions for the given input.", + "flatPath": "v1/places:autocomplete", + "httpMethod": "POST", + "id": "places.places.autocomplete", + "parameterOrder": [], + "parameters": {}, + "path": "v1/places:autocomplete", + "request": { + "$ref": "GoogleMapsPlacesV1AutocompletePlacesRequest" + }, + "response": { + "$ref": "GoogleMapsPlacesV1AutocompletePlacesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/maps-platform.places", + "https://www.googleapis.com/auth/maps-platform.places.autocomplete" + ] + }, "get": { - "description": "Get place details with a place id (in a name) string.", + "description": "Get the details of a place based on its resource name, which is a string in the `places/{place_id}` format.", "flatPath": "v1/places/{placesId}", "httpMethod": "GET", "id": "places.places.get", @@ -138,7 +161,7 @@ "type": "string" }, "name": { - "description": "Required. A place ID returned in a Place (with \"places/\" prefix), or equivalently the name in the same Place. Format: places/*place_id*.", + "description": "Required. The resource name of a place, in the `places/{place_id}` format.", "location": "path", "pattern": "^places/[^/]+$", "required": true, @@ -148,6 +171,11 @@ "description": "Optional. The Unicode country/region code (CLDR) of the location where the request is coming from. This parameter is used to display the place details, like region-specific place name, if available. The parameter can affect results based on applicable law. For more information, see https://www.unicode.org/cldr/charts/latest/supplemental/territory_language_information.html. Note that 3-digit region codes are not currently supported.", "location": "query", "type": "string" + }, + "sessionToken": { + "description": "Optional. A string which identifies an Autocomplete session for billing purposes. Must be a URL and filename safe base64 string with at most 36 ASCII characters in length. Otherwise an INVALID_ARGUMENT error is returned. The session begins when the user starts typing a query, and concludes when they select a place and a call to Place Details or Address Validation is made. Each session can have multiple queries, followed by one Place Details or Address Validation request. The credentials used for each request within a session must belong to the same Google Cloud Console project. Once a session has concluded, the token is no longer valid; your app must generate a fresh token for each session. If the `session_token` parameter is omitted, or if you reuse a session token, the session is charged as if no session token was provided (each request is billed separately). We recommend the following guidelines: * Use session tokens for all Place Autocomplete calls. * Generate a fresh token for each session. Using a version 4 UUID is recommended. * Ensure that the credentials used for all Place Autocomplete, Place Details, and Address Validation requests within a session belong to the same Cloud Console project. * Be sure to pass a unique session token for each new session. Using the same token for more than one session will result in each request being billed individually.", + "location": "query", + "type": "string" } }, "path": "v1/{+name}", @@ -226,7 +254,7 @@ "type": "integer" }, "name": { - "description": "Required. The resource name of a photo media in the format: `\"places/place_id/photos/photo_reference/media\"`. The resource name of a photo as returned in a Place object's `photos.name` field comes with the format `\"places/place_id/photos/photo_reference\"`. You need to append `\"/media\"` at the end of the photo resource to get the photo media resource name.", + "description": "Required. The resource name of a photo media in the format: `places/{place_id}/photos/{photo_reference}/media`. The resource name of a photo as returned in a Place object's `photos.name` field comes with the format `places/{place_id}/photos/{photo_reference}`. You need to append `/media` at the end of the photo resource to get the photo media resource name.", "location": "path", "pattern": "^places/[^/]+/photos/[^/]+/media$", "required": true, @@ -287,6 +315,223 @@ }, "type": "object" }, + "GoogleMapsPlacesV1AutocompletePlacesRequest": { + "description": "Request proto for AutocompletePlaces.", + "id": "GoogleMapsPlacesV1AutocompletePlacesRequest", + "properties": { + "includeQueryPredictions": { + "description": "Optional. If true, the response will include both Place and query predictions. Otherwise the response will only return Place predictions.", + "type": "boolean" + }, + "includedPrimaryTypes": { + "description": "Optional. Included primary Place type (for example, \"restaurant\" or \"gas_station\") from https://developers.google.com/maps/documentation/places/web-service/place-types. A Place is only returned if its primary type is included in this list. Up to 5 values can be specified. If no types are specified, all Place types are returned.", + "items": { + "type": "string" + }, + "type": "array" + }, + "includedRegionCodes": { + "description": "Optional. Only include results in the specified regions, specified as up to 15 CLDR two-character region codes. An empty set will not restrict the results. If both `location_restriction` and `included_region_codes` are set, the results will be located in the area of intersection.", + "items": { + "type": "string" + }, + "type": "array" + }, + "input": { + "description": "Required. The text string on which to search.", + "type": "string" + }, + "inputOffset": { + "description": "Optional. A zero-based Unicode character offset of `input` indicating the cursor position in `input`. The cursor position may influence what predictions are returned. If empty, defaults to the length of `input`.", + "format": "int32", + "type": "integer" + }, + "languageCode": { + "description": "Optional. The language in which to return results. Defaults to en-US. The results may be in mixed languages if the language used in `input` is different from `language_code` or if the returned Place does not have a translation from the local language to `language_code`.", + "type": "string" + }, + "locationBias": { + "$ref": "GoogleMapsPlacesV1AutocompletePlacesRequestLocationBias", + "description": "Optional. Bias results to a specified location. At most one of `location_bias` or `location_restriction` should be set. If neither are set, the results will be biased by IP address, meaning the IP address will be mapped to an imprecise location and used as a biasing signal." + }, + "locationRestriction": { + "$ref": "GoogleMapsPlacesV1AutocompletePlacesRequestLocationRestriction", + "description": "Optional. Restrict results to a specified location. At most one of `location_bias` or `location_restriction` should be set. If neither are set, the results will be biased by IP address, meaning the IP address will be mapped to an imprecise location and used as a biasing signal." + }, + "origin": { + "$ref": "GoogleTypeLatLng", + "description": "Optional. The origin point from which to calculate geodesic distance to the destination (returned as `distance_meters`). If this value is omitted, geodesic distance will not be returned." + }, + "regionCode": { + "description": "Optional. The region code, specified as a CLDR two-character region code. This affects address formatting, result ranking, and may influence what results are returned. This does not restrict results to the specified region. To restrict results to a region, use `region_code_restriction`.", + "type": "string" + }, + "sessionToken": { + "description": "Optional. A string which identifies an Autocomplete session for billing purposes. Must be a URL and filename safe base64 string with at most 36 ASCII characters in length. Otherwise an INVALID_ARGUMENT error is returned. The session begins when the user starts typing a query, and concludes when they select a place and a call to Place Details or Address Validation is made. Each session can have multiple queries, followed by one Place Details or Address Validation request. The credentials used for each request within a session must belong to the same Google Cloud Console project. Once a session has concluded, the token is no longer valid; your app must generate a fresh token for each session. If the `session_token` parameter is omitted, or if you reuse a session token, the session is charged as if no session token was provided (each request is billed separately). We recommend the following guidelines: * Use session tokens for all Place Autocomplete calls. * Generate a fresh token for each session. Using a version 4 UUID is recommended. * Ensure that the credentials used for all Place Autocomplete, Place Details, and Address Validation requests within a session belong to the same Cloud Console project. * Be sure to pass a unique session token for each new session. Using the same token for more than one session will result in each request being billed individually.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleMapsPlacesV1AutocompletePlacesRequestLocationBias": { + "description": "The region to search. The results may be biased around the specified region.", + "id": "GoogleMapsPlacesV1AutocompletePlacesRequestLocationBias", + "properties": { + "circle": { + "$ref": "GoogleMapsPlacesV1Circle", + "description": "A circle defined by a center point and radius." + }, + "rectangle": { + "$ref": "GoogleGeoTypeViewport", + "description": "A viewport defined by a northeast and a southwest corner." + } + }, + "type": "object" + }, + "GoogleMapsPlacesV1AutocompletePlacesRequestLocationRestriction": { + "description": "The region to search. The results will be restricted to the specified region.", + "id": "GoogleMapsPlacesV1AutocompletePlacesRequestLocationRestriction", + "properties": { + "circle": { + "$ref": "GoogleMapsPlacesV1Circle", + "description": "A circle defined by a center point and radius." + }, + "rectangle": { + "$ref": "GoogleGeoTypeViewport", + "description": "A viewport defined by a northeast and a southwest corner." + } + }, + "type": "object" + }, + "GoogleMapsPlacesV1AutocompletePlacesResponse": { + "description": "Response proto for AutocompletePlaces.", + "id": "GoogleMapsPlacesV1AutocompletePlacesResponse", + "properties": { + "suggestions": { + "description": "Contains a list of suggestions, ordered in descending order of relevance.", + "items": { + "$ref": "GoogleMapsPlacesV1AutocompletePlacesResponseSuggestion" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleMapsPlacesV1AutocompletePlacesResponseSuggestion": { + "description": "An Autocomplete suggestion result.", + "id": "GoogleMapsPlacesV1AutocompletePlacesResponseSuggestion", + "properties": { + "placePrediction": { + "$ref": "GoogleMapsPlacesV1AutocompletePlacesResponseSuggestionPlacePrediction", + "description": "A prediction for a Place." + }, + "queryPrediction": { + "$ref": "GoogleMapsPlacesV1AutocompletePlacesResponseSuggestionQueryPrediction", + "description": "A prediction for a query." + } + }, + "type": "object" + }, + "GoogleMapsPlacesV1AutocompletePlacesResponseSuggestionFormattableText": { + "description": "Text representing a Place or query prediction. The text may be used as is or formatted.", + "id": "GoogleMapsPlacesV1AutocompletePlacesResponseSuggestionFormattableText", + "properties": { + "matches": { + "description": "A list of string ranges identifying where the input request matched in `text`. The ranges can be used to format specific parts of `text`. The substrings may not be exact matches of `input` if the matching was determined by criteria other than string matching (for example, spell corrections or transliterations). These values are Unicode character offsets of `text`. The ranges are guaranteed to be ordered in increasing offset values.", + "items": { + "$ref": "GoogleMapsPlacesV1AutocompletePlacesResponseSuggestionStringRange" + }, + "type": "array" + }, + "text": { + "description": "Text that may be used as is or formatted with `matches`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleMapsPlacesV1AutocompletePlacesResponseSuggestionPlacePrediction": { + "description": "Prediction results for a Place Autocomplete prediction.", + "id": "GoogleMapsPlacesV1AutocompletePlacesResponseSuggestionPlacePrediction", + "properties": { + "distanceMeters": { + "description": "The length of the geodesic in meters from `origin` if `origin` is specified. Certain predictions such as routes may not populate this field.", + "format": "int32", + "type": "integer" + }, + "place": { + "description": "The resource name of the suggested Place. This name can be used in other APIs that accept Place names.", + "type": "string" + }, + "placeId": { + "description": "The unique identifier of the suggested Place. This identifier can be used in other APIs that accept Place IDs.", + "type": "string" + }, + "structuredFormat": { + "$ref": "GoogleMapsPlacesV1AutocompletePlacesResponseSuggestionStructuredFormat", + "description": "A breakdown of the Place prediction into main text containing the name of the Place and secondary text containing additional disambiguating features (such as a city or region). `structured_format` is recommended for developers who wish to show two separate, but related, UI elements. Developers who wish to show a single UI element may want to use `text` instead. They are two different ways to represent a Place prediction. Users should not try to parse `structured_format` into `text` or vice versa." + }, + "text": { + "$ref": "GoogleMapsPlacesV1AutocompletePlacesResponseSuggestionFormattableText", + "description": "Contains the human-readable name for the returned result. For establishment results, this is usually the business name and address. `text` is recommended for developers who wish to show a single UI element. Developers who wish to show two separate, but related, UI elements may want to use `structured_format` instead. They are two different ways to represent a Place prediction. Users should not try to parse `structured_format` into `text` or vice versa. This text may be different from the `display_name` returned by GetPlace. May be in mixed languages if the request `input` and `language_code` are in different languages or if the Place does not have a translation from the local language to `language_code`." + }, + "types": { + "description": "List of types that apply to this Place from Table A or Table B in https://developers.google.com/maps/documentation/places/web-service/place-types. A type is a categorization of a Place. Places with shared types will share similar characteristics.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleMapsPlacesV1AutocompletePlacesResponseSuggestionQueryPrediction": { + "description": "Prediction results for a Query Autocomplete prediction.", + "id": "GoogleMapsPlacesV1AutocompletePlacesResponseSuggestionQueryPrediction", + "properties": { + "structuredFormat": { + "$ref": "GoogleMapsPlacesV1AutocompletePlacesResponseSuggestionStructuredFormat", + "description": "A breakdown of the query prediction into main text containing the query and secondary text containing additional disambiguating features (such as a city or region). `structured_format` is recommended for developers who wish to show two separate, but related, UI elements. Developers who wish to show a single UI element may want to use `text` instead. They are two different ways to represent a query prediction. Users should not try to parse `structured_format` into `text` or vice versa." + }, + "text": { + "$ref": "GoogleMapsPlacesV1AutocompletePlacesResponseSuggestionFormattableText", + "description": "The predicted text. This text does not represent a Place, but rather a text query that could be used in a search endpoint (for example, TextSearch). `text` is recommended for developers who wish to show a single UI element. Developers who wish to show two separate, but related, UI elements may want to use `structured_format` instead. They are two different ways to represent a query prediction. Users should not try to parse `structured_format` into `text` or vice versa. May be in mixed languages if the request `input` and `language_code` are in different languages or if part of the query does not have a translation from the local language to `language_code`." + } + }, + "type": "object" + }, + "GoogleMapsPlacesV1AutocompletePlacesResponseSuggestionStringRange": { + "description": "Identifies a substring within a given text.", + "id": "GoogleMapsPlacesV1AutocompletePlacesResponseSuggestionStringRange", + "properties": { + "endOffset": { + "description": "Zero-based offset of the last Unicode character (exclusive).", + "format": "int32", + "type": "integer" + }, + "startOffset": { + "description": "Zero-based offset of the first Unicode character of the string (inclusive).", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleMapsPlacesV1AutocompletePlacesResponseSuggestionStructuredFormat": { + "description": "Contains a breakdown of a Place or query prediction into main text and secondary text. For Place predictions, the main text contains the specific name of the Place. For query predictions, the main text contains the query. The secondary text contains additional disambiguating features (such as a city or region) to further identify the Place or refine the query.", + "id": "GoogleMapsPlacesV1AutocompletePlacesResponseSuggestionStructuredFormat", + "properties": { + "mainText": { + "$ref": "GoogleMapsPlacesV1AutocompletePlacesResponseSuggestionFormattableText", + "description": "Represents the name of the Place or query." + }, + "secondaryText": { + "$ref": "GoogleMapsPlacesV1AutocompletePlacesResponseSuggestionFormattableText", + "description": "Represents additional disambiguating features (such as a city or region) to further identify the Place or refine the query." + } + }, + "type": "object" + }, "GoogleMapsPlacesV1Circle": { "description": "Circle with a LatLng as center and radius.", "id": "GoogleMapsPlacesV1Circle", @@ -475,7 +720,7 @@ "type": "integer" }, "name": { - "description": "Identifier. A reference representing this place photo which may be used to look up this place photo again (a.k.a. the API \"resource\" name: places/{place_id}/photos/{photo}).", + "description": "Identifier. A reference representing this place photo which may be used to look up this place photo again (also called the API \"resource\" name: `places/{place_id}/photos/{photo}`).", "type": "string" }, "widthPx": { @@ -491,7 +736,7 @@ "id": "GoogleMapsPlacesV1PhotoMedia", "properties": { "name": { - "description": "The resource name of a photo media in the format: `places/place_id/photos/photo_reference/media`.", + "description": "The resource name of a photo media in the format: `places/{place_id}/photos/{photo_reference}/media`.", "type": "string" }, "photoUri": { @@ -635,7 +880,7 @@ "type": "boolean" }, "name": { - "description": "An ID representing this place which may be used to look up this place again (a.k.a. the API \"resource\" name: places/place_id).", + "description": "This Place's resource name, in `places/{place_id}` format. Can be used to look up the Place.", "type": "string" }, "nationalPhoneNumber": { @@ -655,7 +900,7 @@ "description": "Payment options the place accepts. If a payment option data is not available, the payment option field will be unset." }, "photos": { - "description": "Information (including references) about photos of this place.", + "description": "Information (including references) about photos of this place. A maximum of 10 photos can be returned.", "items": { "$ref": "GoogleMapsPlacesV1Photo" }, @@ -718,7 +963,7 @@ "type": "boolean" }, "reviews": { - "description": "List of reviews about this place, sorted by relevance.", + "description": "List of reviews about this place, sorted by relevance. A maximum of 5 reviews can be returned.", "items": { "$ref": "GoogleMapsPlacesV1Review" }, @@ -1092,7 +1337,7 @@ "description": "This review's author." }, "name": { - "description": "A reference representing this place review which may be used to look up this place review again (also called the API \"resource\" name: places/place_id/reviews/review).", + "description": "A reference representing this place review which may be used to look up this place review again (also called the API \"resource\" name: `places/{place_id}/reviews/{review}`).", "type": "string" }, "originalText": { @@ -1125,28 +1370,28 @@ "id": "GoogleMapsPlacesV1SearchNearbyRequest", "properties": { "excludedPrimaryTypes": { - "description": "Excluded primary Place type (e.g. \"restaurant\" or \"gas_station\") from https://developers.google.com/maps/documentation/places/web-service/place-types. If there are any conflicting primary types, i.e. a type appears in both included_primary_types and excluded_primary_types, an INVALID_ARGUMENT error is returned. If a Place type is specified with multiple type restrictions, only places that satisfy all of the restrictions are returned. For example, if we have {included_types = [\"restaurant\"], excluded_primary_types = [\"restaurant\"]}, the returned places provide \"restaurant\" related services but do not operate primarily as \"restaurants\".", + "description": "Excluded primary Place type (e.g. \"restaurant\" or \"gas_station\") from https://developers.google.com/maps/documentation/places/web-service/place-types. Up to 50 types from [Table A](https://developers.google.com/maps/documentation/places/web-service/place-types#table-a) may be specified. If there are any conflicting primary types, i.e. a type appears in both included_primary_types and excluded_primary_types, an INVALID_ARGUMENT error is returned. If a Place type is specified with multiple type restrictions, only places that satisfy all of the restrictions are returned. For example, if we have {included_types = [\"restaurant\"], excluded_primary_types = [\"restaurant\"]}, the returned places provide \"restaurant\" related services but do not operate primarily as \"restaurants\".", "items": { "type": "string" }, "type": "array" }, "excludedTypes": { - "description": "Excluded Place type (eg, \"restaurant\" or \"gas_station\") from https://developers.google.com/maps/documentation/places/web-service/place-types. If the client provides both included_types (e.g. restaurant) and excluded_types (e.g. cafe), then the response should include places that are restaurant but not cafe. The response includes places that match at least one of the included_types and none of the excluded_types. If there are any conflicting types, i.e. a type appears in both included_types and excluded_types, an INVALID_ARGUMENT error is returned. If a Place type is specified with multiple type restrictions, only places that satisfy all of the restrictions are returned. For example, if we have {included_types = [\"restaurant\"], excluded_primary_types = [\"restaurant\"]}, the returned places provide \"restaurant\" related services but do not operate primarily as \"restaurants\".", + "description": "Excluded Place type (eg, \"restaurant\" or \"gas_station\") from https://developers.google.com/maps/documentation/places/web-service/place-types. Up to 50 types from [Table A](https://developers.google.com/maps/documentation/places/web-service/place-types#table-a) may be specified. If the client provides both included_types (e.g. restaurant) and excluded_types (e.g. cafe), then the response should include places that are restaurant but not cafe. The response includes places that match at least one of the included_types and none of the excluded_types. If there are any conflicting types, i.e. a type appears in both included_types and excluded_types, an INVALID_ARGUMENT error is returned. If a Place type is specified with multiple type restrictions, only places that satisfy all of the restrictions are returned. For example, if we have {included_types = [\"restaurant\"], excluded_primary_types = [\"restaurant\"]}, the returned places provide \"restaurant\" related services but do not operate primarily as \"restaurants\".", "items": { "type": "string" }, "type": "array" }, "includedPrimaryTypes": { - "description": "Included primary Place type (e.g. \"restaurant\" or \"gas_station\") from https://developers.google.com/maps/documentation/places/web-service/place-types. A place can only have a single primary type from the supported types table associated with it. If there are any conflicting primary types, i.e. a type appears in both included_primary_types and excluded_primary_types, an INVALID_ARGUMENT error is returned. If a Place type is specified with multiple type restrictions, only places that satisfy all of the restrictions are returned. For example, if we have {included_types = [\"restaurant\"], excluded_primary_types = [\"restaurant\"]}, the returned places provide \"restaurant\" related services but do not operate primarily as \"restaurants\".", + "description": "Included primary Place type (e.g. \"restaurant\" or \"gas_station\") from https://developers.google.com/maps/documentation/places/web-service/place-types. A place can only have a single primary type from the supported types table associated with it. Up to 50 types from [Table A](https://developers.google.com/maps/documentation/places/web-service/place-types#table-a) may be specified. If there are any conflicting primary types, i.e. a type appears in both included_primary_types and excluded_primary_types, an INVALID_ARGUMENT error is returned. If a Place type is specified with multiple type restrictions, only places that satisfy all of the restrictions are returned. For example, if we have {included_types = [\"restaurant\"], excluded_primary_types = [\"restaurant\"]}, the returned places provide \"restaurant\" related services but do not operate primarily as \"restaurants\".", "items": { "type": "string" }, "type": "array" }, "includedTypes": { - "description": "Included Place type (eg, \"restaurant\" or \"gas_station\") from https://developers.google.com/maps/documentation/places/web-service/place-types. If there are any conflicting types, i.e. a type appears in both included_types and excluded_types, an INVALID_ARGUMENT error is returned. If a Place type is specified with multiple type restrictions, only places that satisfy all of the restrictions are returned. For example, if we have {included_types = [\"restaurant\"], excluded_primary_types = [\"restaurant\"]}, the returned places provide \"restaurant\" related services but do not operate primarily as \"restaurants\".", + "description": "Included Place type (eg, \"restaurant\" or \"gas_station\") from https://developers.google.com/maps/documentation/places/web-service/place-types. Up to 50 types from [Table A](https://developers.google.com/maps/documentation/places/web-service/place-types#table-a) may be specified. If there are any conflicting types, i.e. a type appears in both included_types and excluded_types, an INVALID_ARGUMENT error is returned. If a Place type is specified with multiple type restrictions, only places that satisfy all of the restrictions are returned. For example, if we have {included_types = [\"restaurant\"], excluded_primary_types = [\"restaurant\"]}, the returned places provide \"restaurant\" related services but do not operate primarily as \"restaurants\".", "items": { "type": "string" }, @@ -1307,7 +1552,7 @@ }, "rectangle": { "$ref": "GoogleGeoTypeViewport", - "description": "A rectangle box defined by northeast and southwest corner. `rectangle.high()` must be the northeast point of the rectangle viewport. `rectangle.low()` must be the southwest point of the rectangle viewport." + "description": "A rectangle box defined by northeast and southwest corner. `rectangle.high()` must be the northeast point of the rectangle viewport. `rectangle.low()` must be the southwest point of the rectangle viewport. `rectangle.low().latitude()` cannot be greater than `rectangle.high().latitude()`. This will result in an empty latitude range. A rectangle viewport cannot be wider than 180 degrees." } }, "type": "object" @@ -1318,7 +1563,7 @@ "properties": { "rectangle": { "$ref": "GoogleGeoTypeViewport", - "description": "A rectangle box defined by northeast and southwest corner. `rectangle.high()` must be the northeast point of the rectangle viewport. `rectangle.low()` must be the southwest point of the rectangle viewport." + "description": "A rectangle box defined by northeast and southwest corner. `rectangle.high()` must be the northeast point of the rectangle viewport. `rectangle.low()` must be the southwest point of the rectangle viewport. `rectangle.low().latitude()` cannot be greater than `rectangle.high().latitude()`. This will result in an empty latitude range. A rectangle viewport cannot be wider than 180 degrees." } }, "type": "object" diff --git a/discovery/googleapis/playcustomapp__v1.json b/discovery/googleapis/playcustomapp__v1.json index b8bb2c155..766e9e81d 100644 --- a/discovery/googleapis/playcustomapp__v1.json +++ b/discovery/googleapis/playcustomapp__v1.json @@ -24,7 +24,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240227", "rootUrl": "https://playcustomapp.googleapis.com/", "servicePath": "", "title": "Google Play Custom App Publishing API", diff --git a/discovery/googleapis/playintegrity__v1.json b/discovery/googleapis/playintegrity__v1.json index 3bb507c5e..3b0acf13d 100644 --- a/discovery/googleapis/playintegrity__v1.json +++ b/discovery/googleapis/playintegrity__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240227", "rootUrl": "https://playintegrity.googleapis.com/", "servicePath": "", "title": "Google Play Integrity API", @@ -317,28 +317,22 @@ "MEETS_BASIC_INTEGRITY", "MEETS_DEVICE_INTEGRITY", "MEETS_STRONG_INTEGRITY", - "MEETS_VIRTUAL_INTEGRITY", - "MEETS_WEAK_INTEGRITY" - ], - "enumDeprecated": [ - false, - false, - false, - false, - false, - true + "MEETS_VIRTUAL_INTEGRITY" ], "enumDescriptions": [ "Play does not have sufficient information to evaluate device integrity", "App is running on a device that passes basic system integrity checks, but may not meet Android platform compatibility requirements and may not be approved to run Google Play services.", "App is running on GMS Android device with Google Play services.", "App is running on GMS Android device with Google Play services and has a strong guarantee of system integrity such as a hardware-backed keystore.", - "App is running on an Android emulator with Google Play services which meets core Android compatibility requirements.", - "Deprecated: this enum value will be removed. App is running on a device that passes only weak integrity checks (is a physical device)." + "App is running on an Android emulator with Google Play services which meets core Android compatibility requirements." ], "type": "string" }, "type": "array" + }, + "recentDeviceActivity": { + "$ref": "RecentDeviceActivity", + "description": "Details about the device activity of the device the app is running on." } }, "type": "object" @@ -376,6 +370,33 @@ }, "type": "object" }, + "RecentDeviceActivity": { + "description": "Recent device activity can help developers identify devices that have exhibited hyperactive attestation activity, which could be a sign of an attack or token farming.", + "id": "RecentDeviceActivity", + "properties": { + "deviceActivityLevel": { + "description": "Required. Indicates the activity level of the device.", + "enum": [ + "DEVICE_ACTIVITY_LEVEL_UNSPECIFIED", + "UNEVALUATED", + "LEVEL_1", + "LEVEL_2", + "LEVEL_3", + "LEVEL_4" + ], + "enumDescriptions": [ + "Device activity level has not been set.", + "Device activity level has not been evaluated.", + "Indicates the amount of used tokens. See the documentation for details.", + "Indicates the amount of used tokens. See the documentation for details.", + "Indicates the amount of used tokens. See the documentation for details.", + "Indicates the amount of used tokens. See the documentation for details." + ], + "type": "string" + } + }, + "type": "object" + }, "RequestDetails": { "description": "Contains the integrity request information.", "id": "RequestDetails", diff --git a/discovery/googleapis/policyanalyzer__v1.json b/discovery/googleapis/policyanalyzer__v1.json index 777fe7126..da90f0208 100644 --- a/discovery/googleapis/policyanalyzer__v1.json +++ b/discovery/googleapis/policyanalyzer__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231112", + "revision": "20240225", "rootUrl": "https://policyanalyzer.googleapis.com/", "servicePath": "", "title": "Policy Analyzer API", diff --git a/discovery/googleapis/policysimulator__v1.json b/discovery/googleapis/policysimulator__v1.json index 76c4ada19..a510bb084 100644 --- a/discovery/googleapis/policysimulator__v1.json +++ b/discovery/googleapis/policysimulator__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231112", + "revision": "20240218", "rootUrl": "https://policysimulator.googleapis.com/", "servicePath": "", "title": "Policy Simulator API", @@ -360,6 +360,146 @@ "resources": { "locations": { "resources": { + "orgPolicyViolationsPreviews": { + "methods": { + "create": { + "description": "CreateOrgPolicyViolationsPreview creates an OrgPolicyViolationsPreview for the proposed changes in the provided OrgPolicyViolationsPreview.OrgPolicyOverlay. The changes to OrgPolicy are specified by this `OrgPolicyOverlay`. The resources to scan are inferred from these specified changes.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/orgPolicyViolationsPreviews", + "httpMethod": "POST", + "id": "policysimulator.organizations.locations.orgPolicyViolationsPreviews.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "orgPolicyViolationsPreviewId": { + "description": "Optional. An optional user-specified ID for the OrgPolicyViolationsPreview. If not provided, a random ID will be generated.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The organization under which this OrgPolicyViolationsPreview will be created. Example: `organizations/my-example-org/locations/global`", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/orgPolicyViolationsPreviews", + "request": { + "$ref": "GoogleCloudPolicysimulatorV1OrgPolicyViolationsPreview" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "GetOrgPolicyViolationsPreview gets the specified OrgPolicyViolationsPreview. Each OrgPolicyViolationsPreview is available for at least 7 days.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/orgPolicyViolationsPreviews/{orgPolicyViolationsPreviewsId}", + "httpMethod": "GET", + "id": "policysimulator.organizations.locations.orgPolicyViolationsPreviews.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the OrgPolicyViolationsPreview to get.", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/orgPolicyViolationsPreviews/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudPolicysimulatorV1OrgPolicyViolationsPreview" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "ListOrgPolicyViolationsPreviews lists each OrgPolicyViolationsPreview in an organization. Each OrgPolicyViolationsPreview is available for at least 7 days.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/orgPolicyViolationsPreviews", + "httpMethod": "GET", + "id": "policysimulator.organizations.locations.orgPolicyViolationsPreviews.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of items to return. The service may return fewer than this value. If unspecified, at most 5 items will be returned. The maximum value is 10; values above 10 will be coerced to 10.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token, received from a previous call. Provide this to retrieve the subsequent page. When paginating, all other parameters must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent the violations are scoped to. Format: `organizations/{organization}/locations/{location}` Example: `organizations/my-example-org/locations/global`", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/orgPolicyViolationsPreviews", + "response": { + "$ref": "GoogleCloudPolicysimulatorV1ListOrgPolicyViolationsPreviewsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "orgPolicyViolations": { + "methods": { + "list": { + "description": "ListOrgPolicyViolations lists the OrgPolicyViolations that are present in an OrgPolicyViolationsPreview.", + "flatPath": "v1/organizations/{organizationsId}/locations/{locationsId}/orgPolicyViolationsPreviews/{orgPolicyViolationsPreviewsId}/orgPolicyViolations", + "httpMethod": "GET", + "id": "policysimulator.organizations.locations.orgPolicyViolationsPreviews.orgPolicyViolations.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of items to return. The service may return fewer than this value. If unspecified, at most 50 items will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token, received from a previous call. Provide this to retrieve the subsequent page. When paginating, all other parameters must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The OrgPolicyViolationsPreview to get OrgPolicyViolations from. Format: organizations/{organization}/locations/{location}/orgPolicyViolationsPreviews/{orgPolicyViolationsPreview}", + "location": "path", + "pattern": "^organizations/[^/]+/locations/[^/]+/orgPolicyViolationsPreviews/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/orgPolicyViolations", + "response": { + "$ref": "GoogleCloudPolicysimulatorV1ListOrgPolicyViolationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, "replays": { "methods": { "create": { @@ -809,6 +949,10 @@ "$ref": "GoogleCloudOrgpolicyV2PolicySpec", "description": "Dry-run policy. Audit-only policy, can be used to monitor how the policy would have impacted the existing and future resources if it's enforced." }, + "etag": { + "description": "Optional. An opaque tag indicating the current state of the policy, used for concurrency control. This 'etag' is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.", + "type": "string" + }, "name": { "description": "Immutable. The resource name of the policy. Must be one of the following forms, where `constraint_name` is the name of the constraint which this policy configures: * `projects/{project_number}/policies/{constraint_name}` * `folders/{folder_id}/policies/{constraint_name}` * `organizations/{organization_id}/policies/{constraint_name}` For example, `projects/123/policies/compute.disableSerialPortAccess`. Note: `projects/{project_id}/policies/{constraint_name}` is also an acceptable name for API requests, but responses will return the name using the equivalent project number.", "type": "string" @@ -825,7 +969,7 @@ "id": "GoogleCloudOrgpolicyV2PolicySpec", "properties": { "etag": { - "description": "An opaque tag indicating the current version of the policy, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the policy` is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current policy to use when executing a read-modify-write loop. When the policy is returned from a `GetEffectivePolicy` request, the `etag` will be unset.", + "description": "An opaque tag indicating the current version of the policySpec, used for concurrency control. This field is ignored if used in a `CreatePolicy` request. When the policy is returned from either a `GetPolicy` or a `ListPolicies` request, this `etag` indicates the version of the current policySpec to use when executing a read-modify-write loop. When the policy is returned from a `GetEffectivePolicy` request, the `etag` will be unset.", "type": "string" }, "inheritFromParent": { @@ -1172,6 +1316,42 @@ }, "type": "object" }, + "GoogleCloudPolicysimulatorV1ListOrgPolicyViolationsPreviewsResponse": { + "description": "ListOrgPolicyViolationsPreviewsResponse is the response message for OrgPolicyViolationsPreviewService.ListOrgPolicyViolationsPreviews.", + "id": "GoogleCloudPolicysimulatorV1ListOrgPolicyViolationsPreviewsResponse", + "properties": { + "nextPageToken": { + "description": "A token that you can use to retrieve the next page of results. If this field is omitted, there are no subsequent pages.", + "type": "string" + }, + "orgPolicyViolationsPreviews": { + "description": "The list of OrgPolicyViolationsPreview", + "items": { + "$ref": "GoogleCloudPolicysimulatorV1OrgPolicyViolationsPreview" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudPolicysimulatorV1ListOrgPolicyViolationsResponse": { + "description": "ListOrgPolicyViolationsResponse is the response message for OrgPolicyViolationsPreviewService.ListOrgPolicyViolations", + "id": "GoogleCloudPolicysimulatorV1ListOrgPolicyViolationsResponse", + "properties": { + "nextPageToken": { + "description": "A token that you can use to retrieve the next page of results. If this field is omitted, there are no subsequent pages.", + "type": "string" + }, + "orgPolicyViolations": { + "description": "The list of OrgPolicyViolations", + "items": { + "$ref": "GoogleCloudPolicysimulatorV1OrgPolicyViolation" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudPolicysimulatorV1ListReplayResultsResponse": { "description": "Response message for Simulator.ListReplayResults.", "id": "GoogleCloudPolicysimulatorV1ListReplayResultsResponse", @@ -1190,6 +1370,177 @@ }, "type": "object" }, + "GoogleCloudPolicysimulatorV1OrgPolicyOverlay": { + "description": "The proposed changes to OrgPolicy.", + "id": "GoogleCloudPolicysimulatorV1OrgPolicyOverlay", + "properties": { + "customConstraints": { + "description": "Optional. The OrgPolicy CustomConstraint changes to preview violations for. Any existing CustomConstraints with the same name will be overridden in the simulation. That is, violations will be determined as if all custom constraints in the overlay were instantiated. Only a single custom_constraint is supported in the overlay at a time. For evaluating multiple constraints, multiple `GenerateOrgPolicyViolationsPreview` requests are made, where each request evaluates a single constraint.", + "items": { + "$ref": "GoogleCloudPolicysimulatorV1OrgPolicyOverlayCustomConstraintOverlay" + }, + "type": "array" + }, + "policies": { + "description": "Optional. The OrgPolicy changes to preview violations for. Any existing OrgPolicies with the same name will be overridden in the simulation. That is, violations will be determined as if all policies in the overlay were created or updated.", + "items": { + "$ref": "GoogleCloudPolicysimulatorV1OrgPolicyOverlayPolicyOverlay" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudPolicysimulatorV1OrgPolicyOverlayCustomConstraintOverlay": { + "description": "A change to an OrgPolicy custom constraint.", + "id": "GoogleCloudPolicysimulatorV1OrgPolicyOverlayCustomConstraintOverlay", + "properties": { + "customConstraint": { + "$ref": "GoogleCloudOrgpolicyV2CustomConstraint", + "description": "Optional. The new or updated custom constraint." + }, + "customConstraintParent": { + "description": "Optional. Resource the constraint is attached to. Example: \"organization/987654\"", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudPolicysimulatorV1OrgPolicyOverlayPolicyOverlay": { + "description": "A change to an OrgPolicy.", + "id": "GoogleCloudPolicysimulatorV1OrgPolicyOverlayPolicyOverlay", + "properties": { + "policy": { + "$ref": "GoogleCloudOrgpolicyV2Policy", + "description": "Optional. The new or updated OrgPolicy." + }, + "policyParent": { + "description": "Optional. The parent of the policy we are attaching to. Example: \"projects/123456\"", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudPolicysimulatorV1OrgPolicyViolation": { + "description": "OrgPolicyViolation is a resource representing a single resource violating a single OrgPolicy constraint.", + "id": "GoogleCloudPolicysimulatorV1OrgPolicyViolation", + "properties": { + "customConstraint": { + "$ref": "GoogleCloudOrgpolicyV2CustomConstraint", + "description": "The custom constraint being violated." + }, + "error": { + "$ref": "GoogleRpcStatus", + "description": "Any error encountered during the evaluation." + }, + "name": { + "description": "The name of the `OrgPolicyViolation`. Example: organizations/my-example-org/locations/global/orgPolicyViolationsPreviews/506a5f7f/orgPolicyViolations/38ce`", + "type": "string" + }, + "resource": { + "$ref": "GoogleCloudPolicysimulatorV1ResourceContext", + "description": "The resource violating the constraint." + } + }, + "type": "object" + }, + "GoogleCloudPolicysimulatorV1OrgPolicyViolationsPreview": { + "description": "OrgPolicyViolationsPreview is a resource providing a preview of the violations that will exist if an OrgPolicy change is made. The list of violations are modeled as child resources and retrieved via a ListOrgPolicyViolations API call. There are potentially more OrgPolicyViolations than could fit in an embedded field. Thus, the use of a child resource instead of a field.", + "id": "GoogleCloudPolicysimulatorV1OrgPolicyViolationsPreview", + "properties": { + "createTime": { + "description": "Output only. Time when this `OrgPolicyViolationsPreview` was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "customConstraints": { + "description": "Output only. The names of the constraints against which all `OrgPolicyViolations` were evaluated. If `OrgPolicyOverlay` only contains `PolicyOverlay` then it contains the name of the configured custom constraint, applicable to the specified policies. Otherwise it contains the name of the constraint specified in `CustomConstraintOverlay`. Format: `organizations/{organization_id}/customConstraints/{custom_constraint_id}` Example: `organizations/123/customConstraints/custom.createOnlyE2TypeVms`", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "name": { + "description": "Output only. The resource name of the `OrgPolicyViolationsPreview`. It has the following format: `organizations/{organization}/locations/{location}/orgPolicyViolationsPreviews/{orgPolicyViolationsPreview}` Example: `organizations/my-example-org/locations/global/orgPolicyViolationsPreviews/506a5f7f`", + "readOnly": true, + "type": "string" + }, + "overlay": { + "$ref": "GoogleCloudPolicysimulatorV1OrgPolicyOverlay", + "description": "Required. The proposed changes we are previewing violations for." + }, + "resourceCounts": { + "$ref": "GoogleCloudPolicysimulatorV1OrgPolicyViolationsPreviewResourceCounts", + "description": "Output only. A summary of the state of all resources scanned for compliance with the changed OrgPolicy.", + "readOnly": true + }, + "state": { + "description": "Output only. The state of the `OrgPolicyViolationsPreview`.", + "enum": [ + "PREVIEW_STATE_UNSPECIFIED", + "PREVIEW_PENDING", + "PREVIEW_RUNNING", + "PREVIEW_SUCCEEDED", + "PREVIEW_FAILED" + ], + "enumDescriptions": [ + "The state is unspecified.", + "The OrgPolicyViolationsPreview has not been created yet.", + "The OrgPolicyViolationsPreview is currently being created.", + "The OrgPolicyViolationsPreview creation finished successfully.", + "The OrgPolicyViolationsPreview creation failed with an error." + ], + "readOnly": true, + "type": "string" + }, + "violationsCount": { + "description": "Output only. The number of OrgPolicyViolations in this `OrgPolicyViolationsPreview`. This count may differ from `resource_summary.noncompliant_count` because each OrgPolicyViolation is specific to a resource **and** constraint. If there are multiple constraints being evaluated (i.e. multiple policies in the overlay), a single resource may violate multiple constraints.", + "format": "int32", + "readOnly": true, + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudPolicysimulatorV1OrgPolicyViolationsPreviewResourceCounts": { + "description": "A summary of the state of all resources scanned for compliance with the changed OrgPolicy.", + "id": "GoogleCloudPolicysimulatorV1OrgPolicyViolationsPreviewResourceCounts", + "properties": { + "compliant": { + "description": "Output only. Number of scanned resources with zero violations.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "errors": { + "description": "Output only. Number of resources that returned an error when scanned.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "noncompliant": { + "description": "Output only. Number of scanned resources with at least one violation.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "scanned": { + "description": "Output only. Number of resources checked for compliance. Must equal: unenforced + noncompliant + compliant + error", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "unenforced": { + "description": "Output only. Number of resources where the constraint was not enforced, i.e. the Policy set `enforced: false` for that resource.", + "format": "int32", + "readOnly": true, + "type": "integer" + } + }, + "type": "object" + }, "GoogleCloudPolicysimulatorV1Replay": { "description": "A resource describing a `Replay`, or simulation.", "id": "GoogleCloudPolicysimulatorV1Replay", @@ -1345,6 +1696,79 @@ }, "type": "object" }, + "GoogleCloudPolicysimulatorV1ResourceContext": { + "description": "ResourceContext provides the context we know about a resource. It is similar in concept to google.cloud.asset.v1.Resource, but focuses on the information specifically used by Simulator.", + "id": "GoogleCloudPolicysimulatorV1ResourceContext", + "properties": { + "ancestors": { + "description": "The ancestry path of the resource in Google Cloud [resource hierarchy](https://cloud.google.com/resource-manager/docs/cloud-platform-resource-hierarchy), represented as a list of relative resource names. An ancestry path starts with the closest ancestor in the hierarchy and ends at root. If the resource is a project, folder, or organization, the ancestry path starts from the resource itself. Example: `[\"projects/123456789\", \"folders/5432\", \"organizations/1234\"]`", + "items": { + "type": "string" + }, + "type": "array" + }, + "assetType": { + "description": "The asset type of the resource as defined by CAIS. Example: `compute.googleapis.com/Firewall` See [Supported asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) for more information.", + "type": "string" + }, + "resource": { + "description": "The full name of the resource. Example: `//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1` See [Resource names](https://cloud.google.com/apis/design/resource_names#full_resource_name) for more information.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudPolicysimulatorV1alphaCreateOrgPolicyViolationsPreviewOperationMetadata": { + "description": "CreateOrgPolicyViolationsPreviewOperationMetadata is metadata about an OrgPolicyViolationsPreview generations operation.", + "id": "GoogleCloudPolicysimulatorV1alphaCreateOrgPolicyViolationsPreviewOperationMetadata", + "properties": { + "requestTime": { + "description": "Time when the request was received.", + "format": "google-datetime", + "type": "string" + }, + "resourcesFound": { + "description": "Total number of resources that need scanning. Should equal resource_scanned + resources_pending", + "format": "int32", + "type": "integer" + }, + "resourcesPending": { + "description": "Number of resources still to scan.", + "format": "int32", + "type": "integer" + }, + "resourcesScanned": { + "description": "Number of resources already scanned.", + "format": "int32", + "type": "integer" + }, + "startTime": { + "description": "Time when the request started processing, i.e., when the state was set to RUNNING.", + "format": "google-datetime", + "type": "string" + }, + "state": { + "description": "Output only. The current state of the operation.", + "enum": [ + "PREVIEW_STATE_UNSPECIFIED", + "PREVIEW_PENDING", + "PREVIEW_RUNNING", + "PREVIEW_SUCCEEDED", + "PREVIEW_FAILED" + ], + "enumDescriptions": [ + "The state is unspecified.", + "The OrgPolicyViolationsPreview has not been created yet.", + "The OrgPolicyViolationsPreview is currently being created.", + "The OrgPolicyViolationsPreview creation finished successfully.", + "The OrgPolicyViolationsPreview creation failed with an error." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudPolicysimulatorV1alphaGenerateOrgPolicyViolationsPreviewOperationMetadata": { "description": "GenerateOrgPolicyViolationsPreviewOperationMetadata is metadata about an OrgPolicyViolationsPreview generations operation.", "id": "GoogleCloudPolicysimulatorV1alphaGenerateOrgPolicyViolationsPreviewOperationMetadata", @@ -1400,14 +1824,14 @@ "id": "GoogleCloudPolicysimulatorV1alphaOrgPolicyOverlay", "properties": { "customConstraints": { - "description": "The OrgPolicy CustomConstraint changes to preview violations for. Any existing CustomConstraints with the same name will be overridden in the simulation. That is, violations will be determined as if all custom constraints in the overlay were instantiated. Only a single custom_constraint is supported in the overlay at a time. For evaluating multiple constraints, multiple `GenerateOrgPolicyViolationsPreview` requests are made, where each request evaluates a single constraint.", + "description": "Optional. The OrgPolicy CustomConstraint changes to preview violations for. Any existing CustomConstraints with the same name will be overridden in the simulation. That is, violations will be determined as if all custom constraints in the overlay were instantiated. Only a single custom_constraint is supported in the overlay at a time. For evaluating multiple constraints, multiple `GenerateOrgPolicyViolationsPreview` requests are made, where each request evaluates a single constraint.", "items": { "$ref": "GoogleCloudPolicysimulatorV1alphaOrgPolicyOverlayCustomConstraintOverlay" }, "type": "array" }, "policies": { - "description": "The OrgPolicy changes to preview violations for. Any existing OrgPolicies with the same name will be overridden in the simulation. That is, violations will be determined as if all policies in the overlay were created or updated.", + "description": "Optional. The OrgPolicy changes to preview violations for. Any existing OrgPolicies with the same name will be overridden in the simulation. That is, violations will be determined as if all policies in the overlay were created or updated.", "items": { "$ref": "GoogleCloudPolicysimulatorV1alphaOrgPolicyOverlayPolicyOverlay" }, @@ -1422,10 +1846,10 @@ "properties": { "customConstraint": { "$ref": "GoogleCloudOrgpolicyV2CustomConstraint", - "description": "The new or updated custom constraint." + "description": "Optional. The new or updated custom constraint." }, "customConstraintParent": { - "description": "Resource the constraint is attached to. Example: \"organization/987654\"", + "description": "Optional. Resource the constraint is attached to. Example: \"organization/987654\"", "type": "string" } }, @@ -1437,10 +1861,10 @@ "properties": { "policy": { "$ref": "GoogleCloudOrgpolicyV2Policy", - "description": "The new or updated OrgPolicy." + "description": "Optional. The new or updated OrgPolicy." }, "policyParent": { - "description": "The parent of the policy we are attaching to. Example: \"projects/123456\"", + "description": "Optional. The parent of the policy we are attaching to. Example: \"projects/123456\"", "type": "string" } }, @@ -1511,29 +1935,85 @@ "id": "GoogleCloudPolicysimulatorV1alphaOrgPolicyViolationsPreviewResourceCounts", "properties": { "compliant": { - "description": "Number of scanned resources with zero violations.", + "description": "Output only. Number of scanned resources with zero violations.", "format": "int32", + "readOnly": true, "type": "integer" }, "errors": { - "description": "Number of resources that returned an error when scanned.", + "description": "Output only. Number of resources that returned an error when scanned.", "format": "int32", + "readOnly": true, "type": "integer" }, "noncompliant": { - "description": "Number of scanned resources with at least one violation.", + "description": "Output only. Number of scanned resources with at least one violation.", "format": "int32", + "readOnly": true, "type": "integer" }, "scanned": { - "description": "Number of resources checked for compliance. Must equal: unenforced + noncompliant + compliant + error", + "description": "Output only. Number of resources checked for compliance. Must equal: unenforced + noncompliant + compliant + error", "format": "int32", + "readOnly": true, "type": "integer" }, "unenforced": { - "description": "Number of resources where the constraint was not enforced, i.e. the Policy set `enforced: false` for that resource.", + "description": "Output only. Number of resources where the constraint was not enforced, i.e. the Policy set `enforced: false` for that resource.", + "format": "int32", + "readOnly": true, + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudPolicysimulatorV1betaCreateOrgPolicyViolationsPreviewOperationMetadata": { + "description": "CreateOrgPolicyViolationsPreviewOperationMetadata is metadata about an OrgPolicyViolationsPreview generations operation.", + "id": "GoogleCloudPolicysimulatorV1betaCreateOrgPolicyViolationsPreviewOperationMetadata", + "properties": { + "requestTime": { + "description": "Time when the request was received.", + "format": "google-datetime", + "type": "string" + }, + "resourcesFound": { + "description": "Total number of resources that need scanning. Should equal resource_scanned + resources_pending", + "format": "int32", + "type": "integer" + }, + "resourcesPending": { + "description": "Number of resources still to scan.", + "format": "int32", + "type": "integer" + }, + "resourcesScanned": { + "description": "Number of resources already scanned.", "format": "int32", "type": "integer" + }, + "startTime": { + "description": "Time when the request started processing, i.e., when the state was set to RUNNING.", + "format": "google-datetime", + "type": "string" + }, + "state": { + "description": "Output only. The current state of the operation.", + "enum": [ + "PREVIEW_STATE_UNSPECIFIED", + "PREVIEW_PENDING", + "PREVIEW_RUNNING", + "PREVIEW_SUCCEEDED", + "PREVIEW_FAILED" + ], + "enumDescriptions": [ + "The state is unspecified.", + "The OrgPolicyViolationsPreview has not been created yet.", + "The OrgPolicyViolationsPreview is currently being created.", + "The OrgPolicyViolationsPreview creation finished successfully.", + "The OrgPolicyViolationsPreview creation failed with an error." + ], + "readOnly": true, + "type": "string" } }, "type": "object" @@ -1593,14 +2073,14 @@ "id": "GoogleCloudPolicysimulatorV1betaOrgPolicyOverlay", "properties": { "customConstraints": { - "description": "The OrgPolicy CustomConstraint changes to preview violations for. Any existing CustomConstraints with the same name will be overridden in the simulation. That is, violations will be determined as if all custom constraints in the overlay were instantiated. Only a single custom_constraint is supported in the overlay at a time. For evaluating multiple constraints, multiple `GenerateOrgPolicyViolationsPreview` requests are made, where each request evaluates a single constraint.", + "description": "Optional. The OrgPolicy CustomConstraint changes to preview violations for. Any existing CustomConstraints with the same name will be overridden in the simulation. That is, violations will be determined as if all custom constraints in the overlay were instantiated. Only a single custom_constraint is supported in the overlay at a time. For evaluating multiple constraints, multiple `GenerateOrgPolicyViolationsPreview` requests are made, where each request evaluates a single constraint.", "items": { "$ref": "GoogleCloudPolicysimulatorV1betaOrgPolicyOverlayCustomConstraintOverlay" }, "type": "array" }, "policies": { - "description": "The OrgPolicy changes to preview violations for. Any existing OrgPolicies with the same name will be overridden in the simulation. That is, violations will be determined as if all policies in the overlay were created or updated.", + "description": "Optional. The OrgPolicy changes to preview violations for. Any existing OrgPolicies with the same name will be overridden in the simulation. That is, violations will be determined as if all policies in the overlay were created or updated.", "items": { "$ref": "GoogleCloudPolicysimulatorV1betaOrgPolicyOverlayPolicyOverlay" }, @@ -1615,10 +2095,10 @@ "properties": { "customConstraint": { "$ref": "GoogleCloudOrgpolicyV2CustomConstraint", - "description": "The new or updated custom constraint." + "description": "Optional. The new or updated custom constraint." }, "customConstraintParent": { - "description": "Resource the constraint is attached to. Example: \"organization/987654\"", + "description": "Optional. Resource the constraint is attached to. Example: \"organization/987654\"", "type": "string" } }, @@ -1630,10 +2110,10 @@ "properties": { "policy": { "$ref": "GoogleCloudOrgpolicyV2Policy", - "description": "The new or updated OrgPolicy." + "description": "Optional. The new or updated OrgPolicy." }, "policyParent": { - "description": "The parent of the policy we are attaching to. Example: \"projects/123456\"", + "description": "Optional. The parent of the policy we are attaching to. Example: \"projects/123456\"", "type": "string" } }, @@ -1704,28 +2184,33 @@ "id": "GoogleCloudPolicysimulatorV1betaOrgPolicyViolationsPreviewResourceCounts", "properties": { "compliant": { - "description": "Number of scanned resources with zero violations.", + "description": "Output only. Number of scanned resources with zero violations.", "format": "int32", + "readOnly": true, "type": "integer" }, "errors": { - "description": "Number of resources that returned an error when scanned.", + "description": "Output only. Number of resources that returned an error when scanned.", "format": "int32", + "readOnly": true, "type": "integer" }, "noncompliant": { - "description": "Number of scanned resources with at least one violation.", + "description": "Output only. Number of scanned resources with at least one violation.", "format": "int32", + "readOnly": true, "type": "integer" }, "scanned": { - "description": "Number of resources checked for compliance. Must equal: unenforced + noncompliant + compliant + error", + "description": "Output only. Number of resources checked for compliance. Must equal: unenforced + noncompliant + compliant + error", "format": "int32", + "readOnly": true, "type": "integer" }, "unenforced": { - "description": "Number of resources where the constraint was not enforced, i.e. the Policy set `enforced: false` for that resource.", + "description": "Output only. Number of resources where the constraint was not enforced, i.e. the Policy set `enforced: false` for that resource.", "format": "int32", + "readOnly": true, "type": "integer" } }, @@ -1788,14 +2273,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, diff --git a/discovery/googleapis/policytroubleshooter__v1.json b/discovery/googleapis/policytroubleshooter__v1.json index 9a6708e84..8566bab11 100644 --- a/discovery/googleapis/policytroubleshooter__v1.json +++ b/discovery/googleapis/policytroubleshooter__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231112", + "revision": "20240225", "rootUrl": "https://policytroubleshooter.googleapis.com/", "servicePath": "", "title": "Policy Troubleshooter API", @@ -436,14 +436,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, diff --git a/discovery/googleapis/privateca__v1.json b/discovery/googleapis/privateca__v1.json index f4b3931b3..aad7f1500 100644 --- a/discovery/googleapis/privateca__v1.json +++ b/discovery/googleapis/privateca__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231101", + "revision": "20240221", "rootUrl": "https://privateca.googleapis.com/", "servicePath": "", "title": "Certificate Authority API", @@ -257,7 +257,7 @@ ] }, "fetchCaCerts": { - "description": "FetchCaCerts returns the current trust anchor for the CaPool. This will include CA certificate chains for all ACTIVE CertificateAuthority resources in the CaPool.", + "description": "FetchCaCerts returns the current trust anchor for the CaPool. This will include CA certificate chains for all Certificate Authorities in the ENABLED, DISABLED, or STAGED states.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/caPools/{caPoolsId}:fetchCaCerts", "httpMethod": "POST", "id": "privateca.projects.locations.caPools.fetchCaCerts", @@ -1719,14 +1719,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -2045,6 +2045,10 @@ "$ref": "SubjectConfig", "description": "Required. Specifies some of the values in a certificate that are related to the subject." }, + "subjectKeyId": { + "$ref": "CertificateConfigKeyId", + "description": "Optional. When specified this provides a custom SKI to be used in the certificate. This should only be used to maintain a SKI of an existing CA originally created outside CAS, which was not generated using method (1) described in RFC 5280 section 4.2.1.2." + }, "x509Config": { "$ref": "X509Parameters", "description": "Required. Describes how some of the technical X.509 fields in a certificate should be populated." @@ -2052,6 +2056,17 @@ }, "type": "object" }, + "CertificateConfigKeyId": { + "description": "A KeyId identifies a specific public key, usually by hashing the public key.", + "id": "CertificateConfigKeyId", + "properties": { + "keyId": { + "description": "Optional. The value of this KeyId encoded in lowercase hexadecimal. This is most likely the 160 bit SHA-1 hash of the public key.", + "type": "string" + } + }, + "type": "object" + }, "CertificateDescription": { "description": "A CertificateDescription describes an X.509 certificate or CSR that has been issued, as an alternative to using ASN.1 / X.509.", "id": "CertificateDescription", @@ -2418,7 +2433,7 @@ "id": "FetchCaCertsResponse", "properties": { "caCerts": { - "description": "The PEM encoded CA certificate chains of all ACTIVE CertificateAuthority resources in this CaPool.", + "description": "The PEM encoded CA certificate chains of all Certificate Authorities in this CaPool in the ENABLED, DISABLED, or STAGED states.", "items": { "$ref": "CertChain" }, diff --git a/discovery/googleapis/publicca__v1.json b/discovery/googleapis/publicca__v1.json index 5128d3ff5..85615d6a7 100644 --- a/discovery/googleapis/publicca__v1.json +++ b/discovery/googleapis/publicca__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231116", + "revision": "20240226", "rootUrl": "https://publicca.googleapis.com/", "servicePath": "", "title": "Public Certificate Authority API", diff --git a/discovery/googleapis/pubsub__v1.json b/discovery/googleapis/pubsub__v1.json index 69ee1e9ad..0e6ad581b 100644 --- a/discovery/googleapis/pubsub__v1.json +++ b/discovery/googleapis/pubsub__v1.json @@ -35,7 +35,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231107", + "revision": "20240220", "rootUrl": "https://pubsub.googleapis.com/", "servicePath": "", "title": "Cloud Pub/Sub API", @@ -720,7 +720,7 @@ ] }, "patch": { - "description": "Updates an existing snapshot. Snapshots are used in [Seek](https://cloud.google.com/pubsub/docs/replay-overview) operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state captured by a snapshot.", + "description": "Updates an existing snapshot by updating the fields specified in the update mask. Snapshots are used in [Seek](https://cloud.google.com/pubsub/docs/replay-overview) operations, which allow you to manage message acknowledgments in bulk. That is, you can set the acknowledgment state of messages in an existing subscription to the state captured by a snapshot.", "flatPath": "v1/projects/{projectsId}/snapshots/{snapshotsId}", "httpMethod": "PATCH", "id": "pubsub.projects.snapshots.patch", @@ -1074,7 +1074,7 @@ ] }, "patch": { - "description": "Updates an existing subscription. Note that certain properties of a subscription, such as its topic, are not modifiable.", + "description": "Updates an existing subscription by updating the fields specified in the update mask. Note that certain properties of a subscription, such as its topic, are not modifiable.", "flatPath": "v1/projects/{projectsId}/subscriptions/{subscriptionsId}", "httpMethod": "PATCH", "id": "pubsub.projects.subscriptions.patch", @@ -1373,7 +1373,7 @@ ] }, "patch": { - "description": "Updates an existing topic. Note that certain properties of a topic are not modifiable.", + "description": "Updates an existing topic by updating the fields specified in the update mask. Note that certain properties of a topic are not modifiable.", "flatPath": "v1/projects/{projectsId}/topics/{topicsId}", "httpMethod": "PATCH", "id": "pubsub.projects.topics.patch", @@ -1603,6 +1603,50 @@ }, "type": "object" }, + "AwsKinesis": { + "description": "Ingestion settings for Amazon Kinesis Data Streams.", + "id": "AwsKinesis", + "properties": { + "awsRoleArn": { + "description": "Required. AWS role ARN to be used for Federated Identity authentication with Kinesis. Check the Pub/Sub docs for how to set up this role and the required permissions that need to be attached to it.", + "type": "string" + }, + "consumerArn": { + "description": "Required. The Kinesis consumer ARN to used for ingestion in Enhanced Fan-Out mode. The consumer must be already created and ready to be used.", + "type": "string" + }, + "gcpServiceAccount": { + "description": "Required. The GCP service account to be used for Federated Identity authentication with Kinesis (via a `AssumeRoleWithWebIdentity` call for the provided role). The `aws_role_arn` must be set up with `accounts.google.com:sub` equals to this service account number.", + "type": "string" + }, + "state": { + "description": "Output only. An output-only field that indicates the state of the Kinesis ingestion source.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "KINESIS_PERMISSION_DENIED", + "PUBLISH_PERMISSION_DENIED", + "STREAM_NOT_FOUND", + "CONSUMER_NOT_FOUND" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "Ingestion is active.", + "Permission denied encountered while consuming data from Kinesis. This can happen if: - The provided `aws_role_arn` does not exist or does not have the appropriate permissions attached. - The provided `aws_role_arn` is not set up properly for Identity Federation using `gcp_service_account`. - The Pub/Sub SA is not granted the `iam.serviceAccounts.getOpenIdToken` permission on `gcp_service_account`.", + "Permission denied encountered while publishing to the topic. This can happen if the Pub/Sub SA has not been granted the [appropriate publish permissions](https://cloud.google.com/pubsub/docs/access-control#pubsub.publisher)", + "The Kinesis stream does not exist.", + "The Kinesis consumer does not exist." + ], + "readOnly": true, + "type": "string" + }, + "streamArn": { + "description": "Required. The Kinesis stream ARN to ingest data from.", + "type": "string" + } + }, + "type": "object" + }, "BigQueryConfig": { "description": "Configuration for a BigQuery subscription.", "id": "BigQueryConfig", @@ -1611,6 +1655,10 @@ "description": "Optional. When true and use_topic_schema is true, any fields that are a part of the topic schema that are not part of the BigQuery table schema are dropped when writing to BigQuery. Otherwise, the schemas must be kept in sync and any messages with extra fields are not written and remain in the subscription's backlog.", "type": "boolean" }, + "serviceAccountEmail": { + "description": "Optional. The service account to use to write to BigQuery. The subscription creator or updater that specifies this field must have `iam.serviceAccounts.actAs` permission on the service account. If not specified, the Pub/Sub [service agent](https://cloud.google.com/iam/docs/service-agents), service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com, is used.", + "type": "string" + }, "state": { "description": "Output only. An output-only field that indicates whether or not the subscription can receive messages.", "enum": [ @@ -1636,8 +1684,12 @@ "description": "Optional. The name of the table to which to write data, of the form {projectId}.{datasetId}.{tableId}", "type": "string" }, + "useTableSchema": { + "description": "Optional. When true, use the BigQuery table's schema as the columns to write to in BigQuery. `use_table_schema` and `use_topic_schema` cannot be enabled at the same time.", + "type": "boolean" + }, "useTopicSchema": { - "description": "Optional. When true, use the topic's schema as the columns to write to in BigQuery, if it exists.", + "description": "Optional. When true, use the topic's schema as the columns to write to in BigQuery, if it exists. `use_topic_schema` and `use_table_schema` cannot be enabled at the same time.", "type": "boolean" }, "writeMetadata": { @@ -1656,14 +1708,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -1699,6 +1751,10 @@ "format": "google-duration", "type": "string" }, + "serviceAccountEmail": { + "description": "Optional. The service account to use to write to Cloud Storage. The subscription creator or updater that specifies this field must have `iam.serviceAccounts.actAs` permission on the service account. If not specified, the Pub/Sub [service agent](https://cloud.google.com/iam/docs/service-agents), service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com, is used.", + "type": "string" + }, "state": { "description": "Output only. An output-only field that indicates whether or not the subscription can receive messages.", "enum": [ @@ -1817,6 +1873,17 @@ }, "type": "object" }, + "IngestionDataSourceSettings": { + "description": "Settings for an ingestion data source on a topic.", + "id": "IngestionDataSourceSettings", + "properties": { + "awsKinesis": { + "$ref": "AwsKinesis", + "description": "Optional. Amazon Kinesis Data Streams." + } + }, + "type": "object" + }, "ListSchemaRevisionsResponse": { "description": "Response for the `ListSchemaRevisions` method.", "id": "ListSchemaRevisionsResponse", @@ -1966,7 +2033,7 @@ "id": "ModifyAckDeadlineRequest", "properties": { "ackDeadlineSeconds": { - "description": "Required. The new ack deadline with respect to the time this request was sent to the Pub/Sub system. For example, if the value is 10, the new ack deadline will expire 10 seconds after the `ModifyAckDeadline` call was made. Specifying zero might immediately make the message available for delivery to another subscriber client. This typically results in an increase in the rate of message redeliveries (that is, duplicates). The minimum deadline you can specify is 0 seconds. The maximum deadline you can specify is 600 seconds (10 minutes).", + "description": "Required. The new ack deadline with respect to the time this request was sent to the Pub/Sub system. For example, if the value is 10, the new ack deadline will expire 10 seconds after the `ModifyAckDeadline` call was made. Specifying zero might immediately make the message available for delivery to another subscriber client. This typically results in an increase in the rate of message redeliveries (that is, duplicates). The minimum deadline you can specify is 0 seconds. The maximum deadline you can specify in a single request is 600 seconds (10 minutes).", "format": "int32", "type": "integer" }, @@ -2086,7 +2153,7 @@ "type": "string" }, "messageId": { - "description": "Optional. ID of this message, assigned by the server when the message is published. Guaranteed to be unique within the topic. This value may be read by a subscriber that receives a `PubsubMessage` via a `Pull` call or a push delivery. It must not be populated by the publisher in a `Publish` call.", + "description": "ID of this message, assigned by the server when the message is published. Guaranteed to be unique within the topic. This value may be read by a subscriber that receives a `PubsubMessage` via a `Pull` call or a push delivery. It must not be populated by the publisher in a `Publish` call.", "type": "string" }, "orderingKey": { @@ -2094,7 +2161,7 @@ "type": "string" }, "publishTime": { - "description": "Optional. The time at which the message was published, populated by the server when it receives the `Publish` call. It must not be populated by the publisher in a `Publish` call.", + "description": "The time at which the message was published, populated by the server when it receives the `Publish` call. It must not be populated by the publisher in a `Publish` call.", "format": "google-datetime", "type": "string" } @@ -2484,6 +2551,10 @@ "description": "A topic resource.", "id": "Topic", "properties": { + "ingestionDataSourceSettings": { + "$ref": "IngestionDataSourceSettings", + "description": "Optional. Settings for managed ingestion from a data source into this topic." + }, "kmsKeyName": { "description": "Optional. The resource name of the Cloud KMS CryptoKey to be used to protect access to messages published on this topic. The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`.", "type": "string" @@ -2515,6 +2586,21 @@ "schemaSettings": { "$ref": "SchemaSettings", "description": "Optional. Settings for validating messages published against a schema." + }, + "state": { + "description": "Output only. An output-only field indicating the state of the topic.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "INGESTION_RESOURCE_ERROR" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "The topic does not have any persistent errors.", + "Ingestion from the data source has encountered a permanent error. See the more detailed error state in the corresponding ingestion source configuration." + ], + "readOnly": true, + "type": "string" } }, "type": "object" diff --git a/discovery/googleapis/pubsublite__v1.json b/discovery/googleapis/pubsublite__v1.json index 5e69d95ee..5dfee9b12 100644 --- a/discovery/googleapis/pubsublite__v1.json +++ b/discovery/googleapis/pubsublite__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231111", + "revision": "20240217", "rootUrl": "https://pubsublite.googleapis.com/", "servicePath": "", "title": "Pub/Sub Lite API", diff --git a/discovery/googleapis/rapidmigrationassessment__v1.json b/discovery/googleapis/rapidmigrationassessment__v1.json index b230c74fd..b047bce4d 100644 --- a/discovery/googleapis/rapidmigrationassessment__v1.json +++ b/discovery/googleapis/rapidmigrationassessment__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231026", + "revision": "20240217", "rootUrl": "https://rapidmigrationassessment.googleapis.com/", "servicePath": "", "title": "Rapid Migration Assessment API", diff --git a/discovery/googleapis/readerrevenuesubscriptionlinking__v1.json b/discovery/googleapis/readerrevenuesubscriptionlinking__v1.json index 0a5de9c1d..e617f272f 100644 --- a/discovery/googleapis/readerrevenuesubscriptionlinking__v1.json +++ b/discovery/googleapis/readerrevenuesubscriptionlinking__v1.json @@ -16,7 +16,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231128", + "revision": "20240227", "rootUrl": "https://readerrevenuesubscriptionlinking.googleapis.com/", "servicePath": "", "title": "Reader Revenue Subscription Linking API", diff --git a/discovery/googleapis/realtimebidding__v1.json b/discovery/googleapis/realtimebidding__v1.json index 23803155c..3a1c48e7f 100644 --- a/discovery/googleapis/realtimebidding__v1.json +++ b/discovery/googleapis/realtimebidding__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231128", + "revision": "20240228", "rootUrl": "https://realtimebidding.googleapis.com/", "servicePath": "", "title": "Real-time Bidding API", diff --git a/discovery/googleapis/recaptchaenterprise__v1.json b/discovery/googleapis/recaptchaenterprise__v1.json index e40d73632..14fca42c5 100644 --- a/discovery/googleapis/recaptchaenterprise__v1.json +++ b/discovery/googleapis/recaptchaenterprise__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231112", + "revision": "20240225", "rootUrl": "https://recaptchaenterprise.googleapis.com/", "servicePath": "", "title": "reCAPTCHA Enterprise API", @@ -320,6 +320,34 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] + }, + "reorder": { + "description": "Reorders all firewall policies.", + "flatPath": "v1/projects/{projectsId}/firewallpolicies:reorder", + "httpMethod": "POST", + "id": "recaptchaenterprise.projects.firewallpolicies.reorder", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The name of the project to list the policies for, in the format `projects/{project}`.", + "location": "path", + "pattern": "^projects/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/firewallpolicies:reorder", + "request": { + "$ref": "GoogleCloudRecaptchaenterpriseV1ReorderFirewallPoliciesRequest" + }, + "response": { + "$ref": "GoogleCloudRecaptchaenterpriseV1ReorderFirewallPoliciesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] } } }, @@ -746,7 +774,7 @@ }, "username": { "deprecated": true, - "description": "Username of the account that is being verified. Deprecated. Customers should now provide the hashed account ID field in Event.", + "description": "Username of the account that is being verified. Deprecated. Customers should now provide the `account_id` field in `event.user_info`.", "type": "string" } }, @@ -1072,6 +1100,10 @@ "$ref": "GoogleCloudRecaptchaenterpriseV1FirewallActionBlockAction", "description": "This action will deny access to a given page. The user will get an HTTP error code." }, + "includeRecaptchaScript": { + "$ref": "GoogleCloudRecaptchaenterpriseV1FirewallActionIncludeRecaptchaScriptAction", + "description": "This action will inject reCAPTCHA JavaScript code into the HTML page returned by the site backend." + }, "redirect": { "$ref": "GoogleCloudRecaptchaenterpriseV1FirewallActionRedirectAction", "description": "This action will redirect the request to a ReCaptcha interstitial to attach a token." @@ -1099,6 +1131,12 @@ "properties": {}, "type": "object" }, + "GoogleCloudRecaptchaenterpriseV1FirewallActionIncludeRecaptchaScriptAction": { + "description": "An include reCAPTCHA script action involves injecting reCAPTCHA JavaScript code into the HTML returned by the site backend. This reCAPTCHA script is tasked with collecting user signals on the requested web page, issuing tokens as a cookie within the site domain, and enabling their utilization in subsequent page requests.", + "id": "GoogleCloudRecaptchaenterpriseV1FirewallActionIncludeRecaptchaScriptAction", + "properties": {}, + "type": "object" + }, "GoogleCloudRecaptchaenterpriseV1FirewallActionRedirectAction": { "description": "A redirect action returns a 307 (temporary redirect) response, pointing the user to a ReCaptcha interstitial page to attach a token.", "id": "GoogleCloudRecaptchaenterpriseV1FirewallActionRedirectAction", @@ -1539,8 +1577,13 @@ "description": "A membership in a group of related accounts.", "id": "GoogleCloudRecaptchaenterpriseV1RelatedAccountGroupMembership", "properties": { + "accountId": { + "description": "The unique stable account identifier of the member. The identifier corresponds to an `account_id` provided in a previous `CreateAssessment` or `AnnotateAssessment` call.", + "type": "string" + }, "hashedAccountId": { - "description": "The unique stable hashed user identifier of the member. The identifier corresponds to a `hashed_account_id` provided in a previous `CreateAssessment` or `AnnotateAssessment` call.", + "deprecated": true, + "description": "Deprecated: use `account_id` instead. The unique stable hashed account identifier of the member. The identifier corresponds to a `hashed_account_id` provided in a previous `CreateAssessment` or `AnnotateAssessment` call.", "format": "byte", "type": "string" }, @@ -1551,6 +1594,26 @@ }, "type": "object" }, + "GoogleCloudRecaptchaenterpriseV1ReorderFirewallPoliciesRequest": { + "description": "The reorder firewall policies request message.", + "id": "GoogleCloudRecaptchaenterpriseV1ReorderFirewallPoliciesRequest", + "properties": { + "names": { + "description": "Required. A list containing all policy names, in the new order. Each name is in the format `projects/{project}/firewallpolicies/{firewallpolicy}`.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudRecaptchaenterpriseV1ReorderFirewallPoliciesResponse": { + "description": "The reorder firewall policies response message.", + "id": "GoogleCloudRecaptchaenterpriseV1ReorderFirewallPoliciesResponse", + "properties": {}, + "type": "object" + }, "GoogleCloudRecaptchaenterpriseV1RetrieveLegacySecretKeyResponse": { "description": "Secret key is used only in legacy reCAPTCHA. It must be used in a 3rd party integration with legacy reCAPTCHA.", "id": "GoogleCloudRecaptchaenterpriseV1RetrieveLegacySecretKeyResponse", @@ -1648,8 +1711,13 @@ "description": "The request message to search related account group memberships.", "id": "GoogleCloudRecaptchaenterpriseV1SearchRelatedAccountGroupMembershipsRequest", "properties": { + "accountId": { + "description": "Optional. The unique stable account identifier used to search connections. The identifier should correspond to an `account_id` provided in a previous `CreateAssessment` or `AnnotateAssessment` call. Either hashed_account_id or account_id must be set, but not both.", + "type": "string" + }, "hashedAccountId": { - "description": "Optional. The unique stable hashed user identifier used to search connections. The identifier should correspond to a `hashed_account_id` provided in a previous `CreateAssessment` or `AnnotateAssessment` call.", + "deprecated": true, + "description": "Optional. Deprecated: use `account_id` instead. The unique stable hashed account identifier used to search connections. The identifier should correspond to a `hashed_account_id` provided in a previous `CreateAssessment` or `AnnotateAssessment` call. Either hashed_account_id or account_id must be set, but not both.", "format": "byte", "type": "string" }, @@ -2087,12 +2155,14 @@ "enum": [ "WAF_SERVICE_UNSPECIFIED", "CA", - "FASTLY" + "FASTLY", + "CLOUDFLARE" ], "enumDescriptions": [ "Undefined WAF", "Cloud Armor", - "Fastly" + "Fastly", + "Cloudflare" ], "type": "string" } diff --git a/discovery/googleapis/recommender__v1.json b/discovery/googleapis/recommender__v1.json index cba55aa98..74fef9649 100644 --- a/discovery/googleapis/recommender__v1.json +++ b/discovery/googleapis/recommender__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231112", + "revision": "20240211", "rootUrl": "https://recommender.googleapis.com/", "servicePath": "", "title": "Recommender API", @@ -1699,6 +1699,10 @@ "$ref": "GoogleTypeMoney", "description": "An approximate projection on amount saved or amount incurred. Negative cost units indicate cost savings and positive cost units indicate increase. See google.type.Money documentation for positive/negative units. A user's permissions may affect whether the cost is computed using list prices or custom contract prices." }, + "costInLocalCurrency": { + "$ref": "GoogleTypeMoney", + "description": "The approximate cost savings in the billing account's local currency." + }, "duration": { "description": "Duration for which this cost applies.", "format": "google-duration", @@ -1739,7 +1743,7 @@ }, "reliabilityProjection": { "$ref": "GoogleCloudRecommenderV1ReliabilityProjection", - "description": "Use with CategoryType.RELAIBILITY" + "description": "Use with CategoryType.RELIABILITY" }, "securityProjection": { "$ref": "GoogleCloudRecommenderV1SecurityProjection", @@ -2202,6 +2206,13 @@ "$ref": "GoogleCloudRecommenderV1RecommendationStateInfo", "description": "Information for state. Contains state and metadata." }, + "targetResources": { + "description": "Fully qualified resource names that this recommendation is targeting.", + "items": { + "type": "string" + }, + "type": "array" + }, "xorGroupId": { "description": "Corresponds to a mutually exclusive group ID within a recommender. A non-empty ID indicates that the recommendation belongs to a mutually exclusive group. This means that only one recommendation within the group is suggested to be applied.", "type": "string" diff --git a/discovery/googleapis/redis__v1.json b/discovery/googleapis/redis__v1.json index 3678e18c9..b4c3914d1 100644 --- a/discovery/googleapis/redis__v1.json +++ b/discovery/googleapis/redis__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231102", + "revision": "20240220", "rootUrl": "https://redis.googleapis.com/", "servicePath": "", "title": "Google Cloud Memorystore for Redis API", @@ -288,12 +288,12 @@ "name": { "description": "Required. Redis cluster certificate authority resource name using the form: `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}/certificateAuthority` where `location_id` refers to a GCP region.", "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+$", + "pattern": "^projects/[^/]+/locations/[^/]+/clusters/[^/]+/certificateAuthority$", "required": true, "type": "string" } }, - "path": "v1/{+name}/certificateAuthority", + "path": "v1/{+name}", "response": { "$ref": "CertificateAuthority" }, @@ -915,7 +915,7 @@ "type": "integer" }, "sizeGb": { - "description": "Output only. Redis memory size in GB for the entire cluster.", + "description": "Output only. Redis memory size in GB for the entire cluster rounded up to the next integer.", "format": "int32", "readOnly": true, "type": "integer" @@ -1279,7 +1279,7 @@ "type": "object" }, "redisVersion": { - "description": "Optional. The version of Redis software. If not provided, latest supported version will be used. Currently, the supported values are: * `REDIS_3_2` for Redis 3.2 compatibility * `REDIS_4_0` for Redis 4.0 compatibility (default) * `REDIS_5_0` for Redis 5.0 compatibility * `REDIS_6_X` for Redis 6.x compatibility", + "description": "Optional. The version of Redis software. If not provided, latest supported version will be used. Currently, the supported values are: * `REDIS_3_2` for Redis 3.2 compatibility * `REDIS_4_0` for Redis 4.0 compatibility (default) * `REDIS_5_0` for Redis 5.0 compatibility * `REDIS_6_X` for Redis 6.x compatibility * `REDIS_7_0` for Redis 7.0 compatibility", "type": "string" }, "replicaCount": { @@ -1291,8 +1291,13 @@ "description": "Optional. For DIRECT_PEERING mode, the CIDR range of internal addresses that are reserved for this instance. Range must be unique and non-overlapping with existing subnets in an authorized network. For PRIVATE_SERVICE_ACCESS mode, the name of one allocated IP address ranges associated with this private service access connection. If not provided, the service will choose an unused /29 block, for example, 10.0.0.0/29 or 192.168.0.0/29. For READ_REPLICAS_ENABLED the default block size is /28.", "type": "string" }, + "satisfiesPzi": { + "description": "Optional. Output only. Reserved for future use.", + "readOnly": true, + "type": "boolean" + }, "satisfiesPzs": { - "description": "Optional. Output only. Reserved for future use. Zone Separation compliance state of the instance. Field name and documentation is obfuscated according to go/zs-resource-status.", + "description": "Optional. Output only. Reserved for future use.", "readOnly": true, "type": "boolean" }, diff --git a/discovery/googleapis/reseller__v1.json b/discovery/googleapis/reseller__v1.json index 566c75b65..d5054849f 100644 --- a/discovery/googleapis/reseller__v1.json +++ b/discovery/googleapis/reseller__v1.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231106", + "revision": "20240225", "rootUrl": "https://reseller.googleapis.com/", "servicePath": "", "title": "Google Workspace Reseller API", diff --git a/discovery/googleapis/resourcesettings__v1.json b/discovery/googleapis/resourcesettings__v1.json index d241f361e..ff1772fcc 100644 --- a/discovery/googleapis/resourcesettings__v1.json +++ b/discovery/googleapis/resourcesettings__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231115", + "revision": "20240227", "rootUrl": "https://resourcesettings.googleapis.com/", "servicePath": "", "title": "Resource Settings API", diff --git a/discovery/googleapis/retail__v2.json b/discovery/googleapis/retail__v2.json index df0adf3ec..d4564f6db 100644 --- a/discovery/googleapis/retail__v2.json +++ b/discovery/googleapis/retail__v2.json @@ -12,7 +12,7 @@ "baseUrl": "https://retail.googleapis.com/", "batchPath": "batch", "canonicalName": "Cloud Retail", - "description": "Cloud Retail service enables customers to build end-to-end personalized recommendation systems without requiring a high level of expertise in machine learning, recommendation system, or Google Cloud.", + "description": "Vertex AI Search for Retail API is made up of Retail Search, Browse and Recommendations. These discovery AI solutions help you implement personalized search, browse and recommendations, based on machine learning models, across your websites and mobile applications.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/recommendations", "icons": { @@ -25,10 +25,10 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231109", + "revision": "20240222", "rootUrl": "https://retail.googleapis.com/", "servicePath": "", - "title": "Retail API", + "title": "Vertex AI Search for Retail API", "version": "v2", "version_module": true, "parameters": { @@ -177,6 +177,34 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "exportAnalyticsMetrics": { + "description": "Exports analytics metrics. `Operation.response` is of type `ExportAnalyticsMetricsResponse`. `Operation.metadata` is of type `ExportMetadata`.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}:exportAnalyticsMetrics", + "httpMethod": "POST", + "id": "retail.projects.locations.catalogs.exportAnalyticsMetrics", + "parameterOrder": [ + "catalog" + ], + "parameters": { + "catalog": { + "description": "Required. Full resource name of the parent catalog. Expected format: `projects/*/locations/*/catalogs/*`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/catalogs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+catalog}:exportAnalyticsMetrics", + "request": { + "$ref": "GoogleCloudRetailV2ExportAnalyticsMetricsRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "getAttributesConfig": { "description": "Gets an AttributesConfig.", "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/catalogs/{catalogsId}/attributesConfig", @@ -2369,6 +2397,21 @@ }, "type": "object" }, + "GoogleCloudRetailV2BigQueryOutputResult": { + "description": "A BigQuery output result.", + "id": "GoogleCloudRetailV2BigQueryOutputResult", + "properties": { + "datasetId": { + "description": "The ID of a BigQuery Dataset.", + "type": "string" + }, + "tableId": { + "description": "The ID of a BigQuery Table.", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2BigQuerySource": { "description": "BigQuery source import data from.", "id": "GoogleCloudRetailV2BigQuerySource", @@ -2542,12 +2585,20 @@ }, "type": "array" }, + "mergedFacet": { + "$ref": "GoogleCloudRetailV2CatalogAttributeFacetConfigMergedFacet", + "description": "Use this field only if you want to merge a facet key into another facet key." + }, "mergedFacetValues": { "description": "Each instance replaces a list of facet values by a merged facet value. If a facet value is not in any list, then it will stay the same. To avoid conflicts, only paths of length 1 are accepted. In other words, if \"dark_blue\" merged into \"BLUE\", then the latter can't merge into \"blues\" because this would create a path of length 2. The maximum number of instances of MergedFacetValue per CatalogAttribute is 100. This feature is available only for textual custom attributes.", "items": { "$ref": "GoogleCloudRetailV2CatalogAttributeFacetConfigMergedFacetValue" }, "type": "array" + }, + "rerankConfig": { + "$ref": "GoogleCloudRetailV2CatalogAttributeFacetConfigRerankConfig", + "description": "Set this field only if you want to rerank based on facet values engaged by the user for the current key. This option is only possible for custom facetable textual keys." } }, "type": "object" @@ -2576,6 +2627,25 @@ }, "type": "object" }, + "GoogleCloudRetailV2CatalogAttributeFacetConfigMergedFacet": { + "description": "The current facet key (i.e. attribute config) maps into the merged_facet_key. A facet key can have at most one child. The current facet key and the merged facet key need both to be textual custom attributes or both numerical custom attributes (same type).", + "id": "GoogleCloudRetailV2CatalogAttributeFacetConfigMergedFacet", + "properties": { + "mergedFacetKey": { + "description": "The merged facet key should be a valid facet key that is different than the facet key of the current catalog attribute. We refer this is merged facet key as the child of the current catalog attribute. This merged facet key can't be a parent of another facet key (i.e. no directed path of length 2). This merged facet key needs to be either a textual custom attribute or a numerical custom attribute.", + "type": "string" + }, + "mergedFacetValues": { + "deprecated": true, + "description": "Each instance is a list of facet values that map into the same (possibly different) merged facet value. For the current attribute config, each facet value should map to at most one merged facet value.", + "items": { + "$ref": "GoogleCloudRetailV2CatalogAttributeFacetConfigMergedFacetValue" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2CatalogAttributeFacetConfigMergedFacetValue": { "description": "Replaces a set of textual facet values by the same (possibly different) merged facet value. Each facet value should appear at most once as a value per CatalogAttribute. This feature is available only for textual custom attributes.", "id": "GoogleCloudRetailV2CatalogAttributeFacetConfigMergedFacetValue", @@ -2594,6 +2664,24 @@ }, "type": "object" }, + "GoogleCloudRetailV2CatalogAttributeFacetConfigRerankConfig": { + "description": "Options to rerank based on facet values engaged by the user for the current key. That key needs to be a custom textual key and facetable. To use this control, you also need to pass all the facet keys engaged by the user in the request using the field [SearchRequest.FacetSpec]. In particular, if you don't pass the facet keys engaged that you want to rerank on, this control won't be effective. Moreover, to obtain better results, the facet values that you want to rerank on should be close to English (ideally made of words, underscores, and spaces).", + "id": "GoogleCloudRetailV2CatalogAttributeFacetConfigRerankConfig", + "properties": { + "facetValues": { + "description": "If empty, rerank on all facet values for the current key. Otherwise, will rerank on the facet values from this list only.", + "items": { + "type": "string" + }, + "type": "array" + }, + "rerankFacet": { + "description": "If set to true, then we also rerank the dynamic facets based on the facet values engaged by the user for the current attribute key during serving.", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleCloudRetailV2ColorInfo": { "description": "The color information of a Product.", "id": "GoogleCloudRetailV2ColorInfo", @@ -2955,6 +3043,71 @@ }, "type": "object" }, + "GoogleCloudRetailV2ExportAnalyticsMetricsRequest": { + "description": "Request message for the `ExportAnalyticsMetrics` method.", + "id": "GoogleCloudRetailV2ExportAnalyticsMetricsRequest", + "properties": { + "filter": { + "description": "A filtering expression to specify restrictions on returned metrics. The expression is a sequence of terms. Each term applies a restriction to the returned metrics. Use this expression to restrict results to a specific time range. Currently we expect only one types of fields: * `timestamp`: This can be specified twice, once with a less than operator and once with a greater than operator. The `timestamp` restriction should result in one, contiguous, valid, `timestamp` range. Some examples of valid filters expressions: * Example 1: `timestamp > \"2012-04-23T18:25:43.511Z\" timestamp < \"2012-04-23T18:30:43.511Z\"` * Example 2: `timestamp > \"2012-04-23T18:25:43.511Z\"`", + "type": "string" + }, + "outputConfig": { + "$ref": "GoogleCloudRetailV2OutputConfig", + "description": "Required. The output location of the data." + } + }, + "type": "object" + }, + "GoogleCloudRetailV2ExportAnalyticsMetricsResponse": { + "description": "Response of the ExportAnalyticsMetricsRequest. If the long running operation was successful, then this message is returned by the google.longrunning.Operations.response field if the operation was successful.", + "id": "GoogleCloudRetailV2ExportAnalyticsMetricsResponse", + "properties": { + "errorSamples": { + "description": "A sample of errors encountered while processing the request.", + "items": { + "$ref": "GoogleRpcStatus" + }, + "type": "array" + }, + "errorsConfig": { + "$ref": "GoogleCloudRetailV2ExportErrorsConfig", + "description": "This field is never set." + }, + "outputResult": { + "$ref": "GoogleCloudRetailV2OutputResult", + "description": "Output result indicating where the data were exported to." + } + }, + "type": "object" + }, + "GoogleCloudRetailV2ExportErrorsConfig": { + "description": "Configuration of destination for Export related errors.", + "id": "GoogleCloudRetailV2ExportErrorsConfig", + "properties": { + "gcsPrefix": { + "description": "Google Cloud Storage path for import errors. This must be an empty, existing Cloud Storage bucket. Export errors will be written to a file in this bucket, one per line, as a JSON-encoded `google.rpc.Status` message.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2ExportMetadata": { + "description": "Metadata related to the progress of the Export operation. This is returned by the google.longrunning.Operation.metadata field.", + "id": "GoogleCloudRetailV2ExportMetadata", + "properties": { + "createTime": { + "description": "Operation create time.", + "format": "google-datetime", + "type": "string" + }, + "updateTime": { + "description": "Operation last update time. If the operation is done, this is also the finish time.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2FulfillmentInfo": { "description": "Fulfillment information, such as the store IDs for in-store pickup or region IDs for different shipping methods.", "id": "GoogleCloudRetailV2FulfillmentInfo", @@ -2973,6 +3126,17 @@ }, "type": "object" }, + "GoogleCloudRetailV2GcsOutputResult": { + "description": "A Gcs output result.", + "id": "GoogleCloudRetailV2GcsOutputResult", + "properties": { + "outputUri": { + "description": "The uri of Gcs output", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRetailV2GcsSource": { "description": "Google Cloud Storage location for input content.", "id": "GoogleCloudRetailV2GcsSource", @@ -3144,7 +3308,7 @@ "type": "string" }, "updateMask": { - "description": "Indicates which fields in the provided imported `products` to update. If not set, all fields are updated.", + "description": "Indicates which fields in the provided imported `products` to update. If not set, all fields are updated. If provided, only the existing product fields are updated. Missing products will not be created.", "format": "google-fieldmask", "type": "string" } @@ -3532,6 +3696,72 @@ }, "type": "object" }, + "GoogleCloudRetailV2OutputConfig": { + "description": "The output configuration setting.", + "id": "GoogleCloudRetailV2OutputConfig", + "properties": { + "bigqueryDestination": { + "$ref": "GoogleCloudRetailV2OutputConfigBigQueryDestination", + "description": "The BigQuery location where the output is to be written to." + }, + "gcsDestination": { + "$ref": "GoogleCloudRetailV2OutputConfigGcsDestination", + "description": "The Google Cloud Storage location where the output is to be written to." + } + }, + "type": "object" + }, + "GoogleCloudRetailV2OutputConfigBigQueryDestination": { + "description": "The BigQuery output destination configuration.", + "id": "GoogleCloudRetailV2OutputConfigBigQueryDestination", + "properties": { + "datasetId": { + "description": "Required. The ID of a BigQuery Dataset.", + "type": "string" + }, + "tableIdPrefix": { + "description": "Required. The prefix of exported BigQuery tables.", + "type": "string" + }, + "tableType": { + "description": "Required. Describes the table type. The following values are supported: * `table`: A BigQuery native table. * `view`: A virtual table defined by a SQL query.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2OutputConfigGcsDestination": { + "description": "The Google Cloud Storage output destination configuration.", + "id": "GoogleCloudRetailV2OutputConfigGcsDestination", + "properties": { + "outputUriPrefix": { + "description": "Required. The output uri prefix for saving output data to json files. Some mapping examples are as follows: output_uri_prefix sample output(assuming the object is foo.json) ======================== ============================================= gs://bucket/ gs://bucket/foo.json gs://bucket/folder/ gs://bucket/folder/foo.json gs://bucket/folder/item_ gs://bucket/folder/item_foo.json", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudRetailV2OutputResult": { + "description": "Output result that stores the information about where the exported data is stored.", + "id": "GoogleCloudRetailV2OutputResult", + "properties": { + "bigqueryResult": { + "description": "The BigQuery location where the result is stored.", + "items": { + "$ref": "GoogleCloudRetailV2BigQueryOutputResult" + }, + "type": "array" + }, + "gcsResult": { + "description": "The Google Cloud Storage location where the result is stored.", + "items": { + "$ref": "GoogleCloudRetailV2GcsOutputResult" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleCloudRetailV2PauseModelRequest": { "description": "Request for pausing training of a model.", "id": "GoogleCloudRetailV2PauseModelRequest", @@ -3735,7 +3965,7 @@ "type": "array" }, "categories": { - "description": "Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, replace it with other character(s). For example, if a shoes product belongs to both [\"Shoes & Accessories\" -> \"Shoes\"] and [\"Sports & Fitness\" -> \"Athletic Clothing\" -> \"Shoes\"], it could be represented as: \"categories\": [ \"Shoes & Accessories > Shoes\", \"Sports & Fitness > Athletic Clothing > Shoes\" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436", + "description": "Product categories. This field is repeated for supporting one product belonging to several parallel categories. Strongly recommended using the full path for better search / recommendation quality. To represent full path of category, use '>' sign to separate different hierarchies. If '>' is part of the category name, replace it with other character(s). For example, if a shoes product belongs to both [\"Shoes & Accessories\" -> \"Shoes\"] and [\"Sports & Fitness\" -> \"Athletic Clothing\" -> \"Shoes\"], it could be represented as: \"categories\": [ \"Shoes & Accessories > Shoes\", \"Sports & Fitness > Athletic Clothing > Shoes\" ] Must be set for Type.PRIMARY Product otherwise an INVALID_ARGUMENT error is returned. At most 250 values are allowed per Product unless overridden via pantheon UI. Empty values are not allowed. Each value must be a UTF-8 encoded string with a length limit of 5,000 characters. Otherwise, an INVALID_ARGUMENT error is returned. Corresponding properties: Google Merchant Center property google_product_category. Schema.org property [Product.category] (https://schema.org/category). [mc_google_product_category]: https://support.google.com/merchants/answer/6324436", "items": { "type": "string" }, @@ -3764,7 +3994,7 @@ "type": "string" }, "expireTime": { - "description": "The timestamp when this product becomes unavailable for SearchService.Search. Note that this is only applicable to Type.PRIMARY and Type.COLLECTION, and ignored for Type.VARIANT. In general, we suggest the users to delete the stale products explicitly, instead of using this field to determine staleness. If it is set, the Product is not available for SearchService.Search after expire_time. However, the product can still be retrieved by ProductService.GetProduct and ProductService.ListProducts. expire_time must be later than available_time and publish_time, otherwise an INVALID_ARGUMENT error is thrown. Corresponding properties: Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499).", + "description": "Note that this field is applied in the following ways: * If the Product is already expired when it is uploaded, this product is not indexed for search. * If the Product is not expired when it is uploaded, only the Type.PRIMARY's and Type.COLLECTION's expireTime is respected, and Type.VARIANT's expireTime is not used. In general, we suggest the users to delete the stale products explicitly, instead of using this field to determine staleness. expire_time must be later than available_time and publish_time, otherwise an INVALID_ARGUMENT error is thrown. Corresponding properties: Google Merchant Center property [expiration_date](https://support.google.com/merchants/answer/6324499).", "format": "google-datetime", "type": "string" }, @@ -5505,6 +5735,28 @@ }, "type": "object" }, + "GoogleCloudRetailV2alphaExportAnalyticsMetricsResponse": { + "description": "Response of the ExportAnalyticsMetricsRequest. If the long running operation was successful, then this message is returned by the google.longrunning.Operations.response field if the operation was successful.", + "id": "GoogleCloudRetailV2alphaExportAnalyticsMetricsResponse", + "properties": { + "errorSamples": { + "description": "A sample of errors encountered while processing the request.", + "items": { + "$ref": "GoogleRpcStatus" + }, + "type": "array" + }, + "errorsConfig": { + "$ref": "GoogleCloudRetailV2alphaExportErrorsConfig", + "description": "This field is never set." + }, + "outputResult": { + "$ref": "GoogleCloudRetailV2alphaOutputResult", + "description": "Output result indicating where the data were exported to." + } + }, + "type": "object" + }, "GoogleCloudRetailV2alphaExportErrorsConfig": { "description": "Configuration of destination for Export related errors.", "id": "GoogleCloudRetailV2alphaExportErrorsConfig", @@ -6286,6 +6538,28 @@ }, "type": "object" }, + "GoogleCloudRetailV2betaExportAnalyticsMetricsResponse": { + "description": "Response of the ExportAnalyticsMetricsRequest. If the long running operation was successful, then this message is returned by the google.longrunning.Operations.response field if the operation was successful.", + "id": "GoogleCloudRetailV2betaExportAnalyticsMetricsResponse", + "properties": { + "errorSamples": { + "description": "A sample of errors encountered while processing the request.", + "items": { + "$ref": "GoogleRpcStatus" + }, + "type": "array" + }, + "errorsConfig": { + "$ref": "GoogleCloudRetailV2betaExportErrorsConfig", + "description": "This field is never set." + }, + "outputResult": { + "$ref": "GoogleCloudRetailV2betaOutputResult", + "description": "Output result indicating where the data were exported to." + } + }, + "type": "object" + }, "GoogleCloudRetailV2betaExportErrorsConfig": { "description": "Configuration of destination for Export related errors.", "id": "GoogleCloudRetailV2betaExportErrorsConfig", diff --git a/discovery/googleapis/run__v1.json b/discovery/googleapis/run__v1.json index c7b553d08..fc849e031 100644 --- a/discovery/googleapis/run__v1.json +++ b/discovery/googleapis/run__v1.json @@ -15,6 +15,208 @@ "description": "Deploy and manage user provided container images that scale automatically based on incoming requests. The Cloud Run Admin API v1 follows the Knative Serving API specification, while v2 is aligned with Google Cloud AIP-based API standards, as described in https://google.aip.dev/.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/run/", + "endpoints": [ + { + "description": "Locational Endpoint", + "endpointUrl": "https://africa-south1-run.googleapis.com/", + "location": "africa-south1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://asia-east1-run.googleapis.com/", + "location": "asia-east1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://asia-east2-run.googleapis.com/", + "location": "asia-east2" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://asia-northeast1-run.googleapis.com/", + "location": "asia-northeast1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://asia-northeast2-run.googleapis.com/", + "location": "asia-northeast2" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://asia-northeast3-run.googleapis.com/", + "location": "asia-northeast3" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://asia-south1-run.googleapis.com/", + "location": "asia-south1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://asia-south2-run.googleapis.com/", + "location": "asia-south2" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://asia-southeast1-run.googleapis.com/", + "location": "asia-southeast1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://asia-southeast2-run.googleapis.com/", + "location": "asia-southeast2" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://australia-southeast1-run.googleapis.com/", + "location": "australia-southeast1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://australia-southeast2-run.googleapis.com/", + "location": "australia-southeast2" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://europe-central2-run.googleapis.com/", + "location": "europe-central2" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://europe-north1-run.googleapis.com/", + "location": "europe-north1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://europe-southwest1-run.googleapis.com/", + "location": "europe-southwest1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://europe-west1-run.googleapis.com/", + "location": "europe-west1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://europe-west10-run.googleapis.com/", + "location": "europe-west10" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://europe-west12-run.googleapis.com/", + "location": "europe-west12" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://europe-west2-run.googleapis.com/", + "location": "europe-west2" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://europe-west3-run.googleapis.com/", + "location": "europe-west3" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://europe-west4-run.googleapis.com/", + "location": "europe-west4" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://europe-west6-run.googleapis.com/", + "location": "europe-west6" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://europe-west8-run.googleapis.com/", + "location": "europe-west8" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://europe-west9-run.googleapis.com/", + "location": "europe-west9" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://me-central1-run.googleapis.com/", + "location": "me-central1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://me-central2-run.googleapis.com/", + "location": "me-central2" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://me-west1-run.googleapis.com/", + "location": "me-west1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://northamerica-northeast1-run.googleapis.com/", + "location": "northamerica-northeast1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://northamerica-northeast2-run.googleapis.com/", + "location": "northamerica-northeast2" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://southamerica-east1-run.googleapis.com/", + "location": "southamerica-east1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://southamerica-west1-run.googleapis.com/", + "location": "southamerica-west1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://us-central1-run.googleapis.com/", + "location": "us-central1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://us-east1-run.googleapis.com/", + "location": "us-east1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://us-east4-run.googleapis.com/", + "location": "us-east4" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://us-east5-run.googleapis.com/", + "location": "us-east5" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://us-south1-run.googleapis.com/", + "location": "us-south1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://us-west1-run.googleapis.com/", + "location": "us-west1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://us-west2-run.googleapis.com/", + "location": "us-west2" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://us-west3-run.googleapis.com/", + "location": "us-west3" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://us-west4-run.googleapis.com/", + "location": "us-west4" + } + ], "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", "x32": "http://www.google.com/images/icons/product/search-32.gif" @@ -25,7 +227,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231112", + "revision": "20240225", "rootUrl": "https://run.googleapis.com/", "servicePath": "", "title": "Cloud Run Admin API", @@ -1775,6 +1977,129 @@ } } }, + "operations": { + "methods": { + "delete": { + "description": "Deletes a long-running operation. This method indicates that the client is no longer interested in the operation result. It does not cancel the operation. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", + "httpMethod": "DELETE", + "id": "run.projects.locations.operations.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource to be deleted.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}", + "httpMethod": "GET", + "id": "run.projects.locations.operations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/operations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists operations that match the specified filter in the request. If the server doesn't support this method, it returns `UNIMPLEMENTED`.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations", + "httpMethod": "GET", + "id": "run.projects.locations.operations.list", + "parameterOrder": [ + "name" + ], + "parameters": { + "filter": { + "description": "Optional. A filter for matching the completed or in-progress operations. The supported formats of *filter* are: To query for only completed operations: done:true To query for only ongoing operations: done:false Must be empty to query for all of the latest operations for the given parent project.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. To query for all of the operations for a project.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "The maximum number of records that should be returned. Requested page size cannot exceed 100. If not set or set to less than or equal to 0, the default page size is 100. .", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Token identifying which result to start with, which is returned by a previous list call.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}/operations", + "response": { + "$ref": "GoogleLongrunningListOperationsResponse" + }, + "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": "v1/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": "v1/{+name}:wait", + "request": { + "$ref": "GoogleLongrunningWaitOperationRequest" + }, + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "revisions": { "methods": { "delete": { @@ -2377,19 +2702,41 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, "type": "object" }, + "CSIVolumeSource": { + "description": "Storage volume source using the Container Storage Interface.", + "id": "CSIVolumeSource", + "properties": { + "driver": { + "description": "name of the CSI driver for the requested storage system. Cloud Run supports the following drivers: * gcsfuse.run.googleapis.com : Mount a Cloud Storage Bucket as a volume.", + "type": "string" + }, + "readOnly": { + "description": "If true, mount the volume as read only. Defaults to false.", + "type": "boolean" + }, + "volumeAttributes": { + "additionalProperties": { + "type": "string" + }, + "description": "stores driver specific attributes. For Google Cloud Storage volumes, the following attributes are supported: * bucketName: the name of the Cloud Storage bucket to mount. The Cloud Run Service identity must have access to this bucket.", + "type": "object" + } + }, + "type": "object" + }, "CancelExecutionRequest": { "description": "Request message for cancelling an execution.", "id": "CancelExecutionRequest", @@ -2764,6 +3111,12 @@ }, "type": "object" }, + "Empty": { + "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": "Empty", + "properties": {}, + "type": "object" + }, "EmptyDirVolumeSource": { "description": "In memory (tmpfs) ephemeral storage. It is ephemeral in the sense that when the sandbox is taken down, the data is destroyed with it (it does not persist across sandbox runs).", "id": "EmptyDirVolumeSource", @@ -3060,6 +3413,71 @@ }, "type": "object" }, + "GoogleLongrunningListOperationsResponse": { + "description": "The response message for Operations.ListOperations.", + "id": "GoogleLongrunningListOperationsResponse", + "properties": { + "nextPageToken": { + "description": "The standard List next-page token.", + "type": "string" + }, + "operations": { + "description": "A list of operations that matches the specified filter in the request.", + "items": { + "$ref": "GoogleLongrunningOperation" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleLongrunningOperation": { + "description": "This resource represents a long-running operation that is the result of a network API call.", + "id": "GoogleLongrunningOperation", + "properties": { + "done": { + "description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", + "type": "boolean" + }, + "error": { + "$ref": "GoogleRpcStatus", + "description": "The error result of the operation in case of failure or cancellation." + }, + "metadata": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", + "type": "object" + }, + "name": { + "description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", + "type": "string" + }, + "response": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", + "type": "object" + } + }, + "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" + }, "GoogleRpcStatus": { "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": "GoogleRpcStatus", @@ -3584,6 +4002,25 @@ }, "type": "object" }, + "NFSVolumeSource": { + "description": "Represents a persistent volume that will be mounted using NFS. This volume will be shared between all instances of the Service and data will not be deleted when the instance is shut down.", + "id": "NFSVolumeSource", + "properties": { + "path": { + "description": "Path that is exported by the NFS server.", + "type": "string" + }, + "readOnly": { + "description": "If true, mount the NFS volume as read only. Defaults to false.", + "type": "boolean" + }, + "server": { + "description": "Hostname or IP address of the NFS server.", + "type": "string" + } + }, + "type": "object" + }, "ObjectMeta": { "description": "google.cloud.run.meta.v1.ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.", "id": "ObjectMeta", @@ -3592,7 +4029,7 @@ "additionalProperties": { "type": "string" }, - "description": "Unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. In Cloud Run, annotations with 'run.googleapis.com/' and 'autoscaling.knative.dev' are restricted, and the accepted annotations will be different depending on the resource type. * `autoscaling.knative.dev/maxScale`: Revision. * `autoscaling.knative.dev/minScale`: Revision. * `run.googleapis.com/binary-authorization-breakglass`: Service, Job, * `run.googleapis.com/binary-authorization`: Service, Job, Execution. * `run.googleapis.com/client-name`: All resources. * `run.googleapis.com/cloudsql-instances`: Revision, Execution. * `run.googleapis.com/container-dependencies`: Revision. * `run.googleapis.com/cpu-throttling`: Revision. * `run.googleapis.com/custom-audiences`: Service. * `run.googleapis.com/description`: Service. * `run.googleapis.com/disable-default-url`: Service. * `run.googleapis.com/encryption-key-shutdown-hours`: Revision * `run.googleapis.com/encryption-key`: Revision, Execution. * `run.googleapis.com/execution-environment`: Revision, Execution. * `run.googleapis.com/gc-traffic-tags`: Service. * `run.googleapis.com/ingress`: Service. * `run.googleapis.com/launch-stage`: Service, Job. * `run.googleapis.com/minScale`: Service (ALPHA) * `run.googleapis.com/network-interfaces`: Revision, Execution. * `run.googleapis.com/post-key-revocation-action-type`: Revision. * `run.googleapis.com/secrets`: Revision, Execution. * `run.googleapis.com/secure-session-agent`: Revision. * `run.googleapis.com/sessionAffinity`: Revision. * `run.googleapis.com/startup-cpu-boost`: Revision. * `run.googleapis.com/vpc-access-connector`: Revision, Execution. * `run.googleapis.com/vpc-access-egress`: Revision, Execution.", + "description": "Unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. In Cloud Run, annotations with 'run.googleapis.com/' and 'autoscaling.knative.dev' are restricted, and the accepted annotations will be different depending on the resource type. * `autoscaling.knative.dev/maxScale`: Revision. * `autoscaling.knative.dev/minScale`: Revision. * `run.googleapis.com/binary-authorization-breakglass`: Service, Job, * `run.googleapis.com/binary-authorization`: Service, Job, Execution. * `run.googleapis.com/client-name`: All resources. * `run.googleapis.com/cloudsql-instances`: Revision, Execution. * `run.googleapis.com/container-dependencies`: Revision . * `run.googleapis.com/cpu-throttling`: Revision. * `run.googleapis.com/custom-audiences`: Service. * `run.googleapis.com/default-url-disabled`: Service. * `run.googleapis.com/description`: Service. * `run.googleapis.com/encryption-key-shutdown-hours`: Revision * `run.googleapis.com/encryption-key`: Revision, Execution. * `run.googleapis.com/execution-environment`: Revision, Execution. * `run.googleapis.com/gc-traffic-tags`: Service. * `run.googleapis.com/ingress`: Service. * `run.googleapis.com/launch-stage`: Service, Job. * `run.googleapis.com/minScale`: Service (ALPHA) * `run.googleapis.com/network-interfaces`: Revision, Execution. * `run.googleapis.com/post-key-revocation-action-type`: Revision. * `run.googleapis.com/secrets`: Revision, Execution. * `run.googleapis.com/secure-session-agent`: Revision. * `run.googleapis.com/sessionAffinity`: Revision. * `run.googleapis.com/startup-cpu-boost`: Revision. * `run.googleapis.com/vpc-access-connector`: Revision, Execution. * `run.googleapis.com/vpc-access-egress`: Revision, Execution.", "type": "object" }, "clusterName": { @@ -3890,7 +4327,7 @@ "type": "integer" }, "containers": { - "description": "Containers holds the single container that defines the unit of execution for this Revision. In the context of a Revision, we disallow a number of fields on this Container, including: name and lifecycle. In Cloud Run, only a single container may be provided.", + "description": "Required. Containers holds the single container that defines the unit of execution for this Revision. In the context of a Revision, we disallow a number of fields on this Container, including: name and lifecycle. In Cloud Run, only a single container may be provided.", "items": { "$ref": "Container" }, @@ -4160,7 +4597,7 @@ }, "metadata": { "$ref": "ObjectMeta", - "description": "Metadata associated with this Service, including name, namespace, labels, and annotations. In Cloud Run, annotations with 'run.googleapis.com/' and 'autoscaling.knative.dev' are restricted, and the accepted annotations will be different depending on the resource type. The following Cloud Run-specific annotations are accepted in Service.metadata.annotations. * `run.googleapis.com/binary-authorization-breakglass` * `run.googleapis.com/binary-authorization` * `run.googleapis.com/client-name` * `run.googleapis.com/custom-audiences` * `run.googleapis.com/description` * `run.googleapis.com/disable-default-url` * `run.googleapis.com/gc-traffic-tags` * `run.googleapis.com/ingress` * `run.googleapis.com/ingress` sets the ingress settings for the Service. See [the ingress settings documentation](/run/docs/securing/ingress) for details on configuring ingress settings. * `run.googleapis.com/ingress-status` is output-only and contains the currently active ingress settings for the Service. `run.googleapis.com/ingress-status` may differ from `run.googleapis.com/ingress` while the system is processing a change to `run.googleapis.com/ingress` or if the system failed to process a change to `run.googleapis.com/ingress`. When the system has processed all changes successfully `run.googleapis.com/ingress-status` and `run.googleapis.com/ingress` are equal." + "description": "Metadata associated with this Service, including name, namespace, labels, and annotations. In Cloud Run, annotations with 'run.googleapis.com/' and 'autoscaling.knative.dev' are restricted, and the accepted annotations will be different depending on the resource type. The following Cloud Run-specific annotations are accepted in Service.metadata.annotations. * `run.googleapis.com/binary-authorization-breakglass` * `run.googleapis.com/binary-authorization` * `run.googleapis.com/client-name` * `run.googleapis.com/custom-audiences` * `run.googleapis.com/default-url-disabled`: Service. * `run.googleapis.com/description` * `run.googleapis.com/gc-traffic-tags` * `run.googleapis.com/ingress` * `run.googleapis.com/ingress` sets the ingress settings for the Service. See [the ingress settings documentation](/run/docs/securing/ingress) for details on configuring ingress settings. * `run.googleapis.com/ingress-status` is output-only and contains the currently active ingress settings for the Service. `run.googleapis.com/ingress-status` may differ from `run.googleapis.com/ingress` while the system is processing a change to `run.googleapis.com/ingress` or if the system failed to process a change to `run.googleapis.com/ingress`. When the system has processed all changes successfully `run.googleapis.com/ingress-status` and `run.googleapis.com/ingress` are equal." }, "spec": { "$ref": "ServiceSpec", @@ -4400,7 +4837,7 @@ "id": "TaskSpec", "properties": { "containers": { - "description": "Optional. List of containers belonging to the task. We disallow a number of fields on this Container. Only a single container may be provided.", + "description": "Optional. List of containers belonging to the task. We disallow a number of fields on this Container.", "items": { "$ref": "Container" }, @@ -4558,6 +4995,10 @@ "$ref": "ConfigMapVolumeSource", "description": "Not supported in Cloud Run." }, + "csi": { + "$ref": "CSIVolumeSource", + "description": "Volume specified by the Container Storage Interface driver" + }, "emptyDir": { "$ref": "EmptyDirVolumeSource", "description": "Ephemeral storage used as a shared volume." @@ -4566,6 +5007,9 @@ "description": "Volume's name. In Cloud Run Fully Managed, the name 'cloudsql' is reserved.", "type": "string" }, + "nfs": { + "$ref": "NFSVolumeSource" + }, "secret": { "$ref": "SecretVolumeSource", "description": "The secret's value will be presented as the content of a file whose name is defined in the item path. If no items are defined, the name of the file is the secretName." diff --git a/discovery/googleapis/run__v2.json b/discovery/googleapis/run__v2.json index 1dd0f6bb6..296d8f11f 100644 --- a/discovery/googleapis/run__v2.json +++ b/discovery/googleapis/run__v2.json @@ -15,6 +15,208 @@ "description": "Deploy and manage user provided container images that scale automatically based on incoming requests. The Cloud Run Admin API v1 follows the Knative Serving API specification, while v2 is aligned with Google Cloud AIP-based API standards, as described in https://google.aip.dev/.", "discoveryVersion": "v1", "documentationLink": "https://cloud.google.com/run/", + "endpoints": [ + { + "description": "Locational Endpoint", + "endpointUrl": "https://africa-south1-run.googleapis.com/", + "location": "africa-south1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://asia-east1-run.googleapis.com/", + "location": "asia-east1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://asia-east2-run.googleapis.com/", + "location": "asia-east2" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://asia-northeast1-run.googleapis.com/", + "location": "asia-northeast1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://asia-northeast2-run.googleapis.com/", + "location": "asia-northeast2" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://asia-northeast3-run.googleapis.com/", + "location": "asia-northeast3" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://asia-south1-run.googleapis.com/", + "location": "asia-south1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://asia-south2-run.googleapis.com/", + "location": "asia-south2" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://asia-southeast1-run.googleapis.com/", + "location": "asia-southeast1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://asia-southeast2-run.googleapis.com/", + "location": "asia-southeast2" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://australia-southeast1-run.googleapis.com/", + "location": "australia-southeast1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://australia-southeast2-run.googleapis.com/", + "location": "australia-southeast2" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://europe-central2-run.googleapis.com/", + "location": "europe-central2" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://europe-north1-run.googleapis.com/", + "location": "europe-north1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://europe-southwest1-run.googleapis.com/", + "location": "europe-southwest1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://europe-west1-run.googleapis.com/", + "location": "europe-west1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://europe-west10-run.googleapis.com/", + "location": "europe-west10" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://europe-west12-run.googleapis.com/", + "location": "europe-west12" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://europe-west2-run.googleapis.com/", + "location": "europe-west2" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://europe-west3-run.googleapis.com/", + "location": "europe-west3" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://europe-west4-run.googleapis.com/", + "location": "europe-west4" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://europe-west6-run.googleapis.com/", + "location": "europe-west6" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://europe-west8-run.googleapis.com/", + "location": "europe-west8" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://europe-west9-run.googleapis.com/", + "location": "europe-west9" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://me-central1-run.googleapis.com/", + "location": "me-central1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://me-central2-run.googleapis.com/", + "location": "me-central2" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://me-west1-run.googleapis.com/", + "location": "me-west1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://northamerica-northeast1-run.googleapis.com/", + "location": "northamerica-northeast1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://northamerica-northeast2-run.googleapis.com/", + "location": "northamerica-northeast2" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://southamerica-east1-run.googleapis.com/", + "location": "southamerica-east1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://southamerica-west1-run.googleapis.com/", + "location": "southamerica-west1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://us-central1-run.googleapis.com/", + "location": "us-central1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://us-east1-run.googleapis.com/", + "location": "us-east1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://us-east4-run.googleapis.com/", + "location": "us-east4" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://us-east5-run.googleapis.com/", + "location": "us-east5" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://us-south1-run.googleapis.com/", + "location": "us-south1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://us-west1-run.googleapis.com/", + "location": "us-west1" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://us-west2-run.googleapis.com/", + "location": "us-west2" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://us-west3-run.googleapis.com/", + "location": "us-west3" + }, + { + "description": "Locational Endpoint", + "endpointUrl": "https://us-west4-run.googleapis.com/", + "location": "us-west4" + } + ], "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", "x32": "http://www.google.com/images/icons/product/search-32.gif" @@ -25,7 +227,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231112", + "revision": "20240225", "rootUrl": "https://run.googleapis.com/", "servicePath": "", "title": "Cloud Run Admin API", @@ -1722,6 +1924,21 @@ }, "type": "object" }, + "GoogleCloudRunV2GCSVolumeSource": { + "description": "Represents a GCS Bucket mounted as a volume.", + "id": "GoogleCloudRunV2GCSVolumeSource", + "properties": { + "bucket": { + "description": "GCS Bucket name", + "type": "string" + }, + "readOnly": { + "description": "If true, mount the GCS bucket as read-only", + "type": "boolean" + } + }, + "type": "object" + }, "GoogleCloudRunV2GRPCAction": { "description": "GRPCAction describes an action involving a GRPC port.", "id": "GoogleCloudRunV2GRPCAction", @@ -2021,6 +2238,25 @@ }, "type": "object" }, + "GoogleCloudRunV2NFSVolumeSource": { + "description": "Represents an NFS mount.", + "id": "GoogleCloudRunV2NFSVolumeSource", + "properties": { + "path": { + "description": "Path that is exported by the NFS server.", + "type": "string" + }, + "readOnly": { + "description": "If true, mount the NFS volume as read only", + "type": "boolean" + }, + "server": { + "description": "Hostname or IP address of the NFS server", + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudRunV2NetworkInterface": { "description": "Direct VPC egress settings.", "id": "GoogleCloudRunV2NetworkInterface", @@ -2111,14 +2347,14 @@ "id": "GoogleCloudRunV2ResourceRequirements", "properties": { "cpuIdle": { - "description": "Determines whether CPU should be throttled or not outside of requests.", + "description": "Determines whether CPU is only allocated during requests (true by default). However, if ResourceRequirements is set, the caller must explicitly set this field to true to preserve the default behavior.", "type": "boolean" }, "limits": { "additionalProperties": { "type": "string" }, - "description": "Only ´memory´ and 'cpu' are supported. Notes: * The only supported values for CPU are '1', '2', '4', and '8'. Setting 4 CPU requires at least 2Gi of memory. For more information, go to https://cloud.google.com/run/docs/configuring/cpu. * For supported 'memory' values and syntax, go to https://cloud.google.com/run/docs/configuring/memory-limits", + "description": "Only `memory` and `cpu` keys in the map are supported. Notes: * The only supported values for CPU are '1', '2', '4', and '8'. Setting 4 CPU requires at least 2Gi of memory. For more information, go to https://cloud.google.com/run/docs/configuring/cpu. * For supported 'memory' values and syntax, go to https://cloud.google.com/run/docs/configuring/memory-limits", "type": "object" }, "startupCpuBoost": { @@ -2401,6 +2637,10 @@ ], "type": "string" }, + "healthCheckDisabled": { + "description": "Optional. Disables health checking containers during deployment.", + "type": "boolean" + }, "labels": { "additionalProperties": { "type": "string" @@ -2426,7 +2666,7 @@ "type": "string" }, "sessionAffinity": { - "description": "Enable session affinity.", + "description": "Optional. Enable session affinity.", "type": "boolean" }, "timeout": { @@ -2513,7 +2753,7 @@ "additionalProperties": { "type": "string" }, - "description": "Unstructured key value map that may be set by external tools to store and arbitrary metadata. They are not queryable and should be preserved when modifying objects. Cloud Run API v2 does not support annotations with `run.googleapis.com`, `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` namespaces, and they will be rejected in new resources. All system annotations in v1 now have a corresponding field in v2 Service. This field follows Kubernetes annotations' namespacing, limits, and rules.", + "description": "Optional. Unstructured key value map that may be set by external tools to store and arbitrary metadata. They are not queryable and should be preserved when modifying objects. Cloud Run API v2 does not support annotations with `run.googleapis.com`, `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` namespaces, and they will be rejected in new resources. All system annotations in v1 now have a corresponding field in v2 Service. This field follows Kubernetes annotations' namespacing, limits, and rules.", "type": "object" }, "binaryAuthorization": { @@ -2554,6 +2794,10 @@ }, "type": "array" }, + "defaultUriDisabled": { + "description": "Optional. Disables public resolution of the default URI of this service.", + "type": "boolean" + }, "deleteTime": { "description": "Output only. The deletion time.", "format": "google-datetime", @@ -2601,7 +2845,7 @@ "additionalProperties": { "type": "string" }, - "description": "Unstructured key value map that can be used to organize and categorize objects. User-provided labels are shared with Google's billing system, so they can be used to filter, or break down billing charges by team, component, environment, state, etc. For more information, visit https://cloud.google.com/resource-manager/docs/creating-managing-labels or https://cloud.google.com/run/docs/configuring/labels. Cloud Run API v2 does not support labels with `run.googleapis.com`, `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` namespaces, and they will be rejected. All system labels in v1 now have a corresponding field in v2 Service.", + "description": "Optional. Unstructured key value map that can be used to organize and categorize objects. User-provided labels are shared with Google's billing system, so they can be used to filter, or break down billing charges by team, component, environment, state, etc. For more information, visit https://cloud.google.com/resource-manager/docs/creating-managing-labels or https://cloud.google.com/run/docs/configuring/labels. Cloud Run API v2 does not support labels with `run.googleapis.com`, `cloud.googleapis.com`, `serving.knative.dev`, or `autoscaling.knative.dev` namespaces, and they will be rejected. All system labels in v1 now have a corresponding field in v2 Service.", "type": "object" }, "lastModifier": { @@ -3107,10 +3351,18 @@ "$ref": "GoogleCloudRunV2EmptyDirVolumeSource", "description": "Ephemeral storage used as a shared volume." }, + "gcs": { + "$ref": "GoogleCloudRunV2GCSVolumeSource", + "description": "Persistent storage backed by a Google Cloud Storage bucket." + }, "name": { "description": "Required. Volume's name.", "type": "string" }, + "nfs": { + "$ref": "GoogleCloudRunV2NFSVolumeSource", + "description": "For NFS Voumes, contains the path to the nfs Volume" + }, "secret": { "$ref": "GoogleCloudRunV2SecretVolumeSource", "description": "Secret represents a secret that should populate this volume." @@ -3222,14 +3474,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, diff --git a/discovery/googleapis/runtimeconfig__v1.json b/discovery/googleapis/runtimeconfig__v1.json index 50d32d07f..0c45578d3 100644 --- a/discovery/googleapis/runtimeconfig__v1.json +++ b/discovery/googleapis/runtimeconfig__v1.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20231229", "rootUrl": "https://runtimeconfig.googleapis.com/", "servicePath": "", "title": "Cloud Runtime Configuration API", diff --git a/discovery/googleapis/safebrowsing__v4.json b/discovery/googleapis/safebrowsing__v4.json index 4377ba8b1..2c3f3fbc9 100644 --- a/discovery/googleapis/safebrowsing__v4.json +++ b/discovery/googleapis/safebrowsing__v4.json @@ -16,7 +16,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231112", + "revision": "20240211", "rootUrl": "https://safebrowsing.googleapis.com/", "servicePath": "", "title": "Safe Browsing API", diff --git a/discovery/googleapis/safebrowsing__v5.json b/discovery/googleapis/safebrowsing__v5.json index d6892069c..e8b3d8779 100644 --- a/discovery/googleapis/safebrowsing__v5.json +++ b/discovery/googleapis/safebrowsing__v5.json @@ -16,7 +16,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231112", + "revision": "20240211", "rootUrl": "https://safebrowsing.googleapis.com/", "servicePath": "", "title": "Safe Browsing API", @@ -103,14 +103,14 @@ "hashes": { "methods": { "search": { - "description": "Search for full hashes matching the specified prefixes. This is a custom method as described by guidance at https://google.aip.dev/136", + "description": "Search for full hashes matching the specified prefixes. This is a custom method as defined by https://google.aip.dev/136 (the custom method refers to this method having a custom name within Google's general API development nomenclature; it does not refer to using a custom HTTP method).", "flatPath": "v5/hashes:search", "httpMethod": "GET", "id": "safebrowsing.hashes.search", "parameterOrder": [], "parameters": { "hashPrefixes": { - "description": "Required. The hash prefixes to be looked up.", + "description": "Required. The hash prefixes to be looked up. Clients MUST NOT send more than 1000 hash prefixes. However, following the URL processing procedure, clients SHOULD NOT need to send more than 30 hash prefixes. Currently each hash prefix is required to be exactly 4 bytes long. This MAY be relaxed in the future.", "format": "byte", "location": "query", "repeated": true, @@ -146,7 +146,7 @@ "type": "object" }, "GoogleSecuritySafebrowsingV5FullHashFullHashDetail": { - "description": "Details about a matching full hash. An important note about forward compatibility: new threat types and threat attributes may be added by the server at any time; those additions are considered minor version changes. It is Google's policy not to expose minor version numbers in APIs (see https://cloud.google.com/apis/design/versioning), so clients MUST be prepared to receive FullHashDetail messages containing ThreatType enum values or ThreatAttribute enum values that are considered invalid by the client. Therefore, it is the client's responsibility to check for the validity of all ThreatType and ThreatAttribute enum values; if any value is considered invalid, the client MUST disregard the entire FullHashDetail message.", + "description": "Details about a matching full hash. An important note about forward compatibility: new threat types and threat attributes may be added by the server at any time; those additions are considered minor version changes. It is Google's policy not to expose minor version numbers in APIs (see https://cloud.google.com/apis/design/versioning for the versioning policy), so clients MUST be prepared to receive `FullHashDetail` messages containing `ThreatType` enum values or `ThreatAttribute` enum values that are considered invalid by the client. Therefore, it is the client's responsibility to check for the validity of all `ThreatType` and `ThreatAttribute` enum values; if any value is considered invalid, the client MUST disregard the entire `FullHashDetail` message.", "id": "GoogleSecuritySafebrowsingV5FullHashFullHashDetail", "properties": { "attributes": { @@ -158,7 +158,7 @@ "FRAME_ONLY" ], "enumDescriptions": [ - "Unknown.", + "Unknown attribute. If this is returned by the server, the client shall disregard the enclosing `FullHashDetail` altogether.", "Indicates that the threat_type should not be used for enforcement.", "Indicates that the threat_type should only be used for enforcement on frames." ], @@ -176,7 +176,7 @@ "POTENTIALLY_HARMFUL_APPLICATION" ], "enumDescriptions": [ - "Unknown.", + "Unknown threat type. If this is returned by the server, the client shall disregard the enclosing `FullHashDetail` altogether.", "Malware threat type.", "Social engineering threat type.", "Unwanted software threat type.", @@ -188,11 +188,11 @@ "type": "object" }, "GoogleSecuritySafebrowsingV5SearchHashesResponse": { - "description": "The response returned after searching threat hashes. Note that if nothing is found, the server will return an OK status (HTTP status code 200) with the `full_hashes` field empty, rather than returning a NOT_FOUND status (HTTP status code 404).", + "description": "The response returned after searching threat hashes. If nothing is found, the server will return an OK status (HTTP status code 200) with the `full_hashes` field empty, rather than returning a NOT_FOUND status (HTTP status code 404). **What's new in V5**: There is a separation between FullHash and FullHashDetail. In the case when a hash represents a site having multiple threats (e.g. both MALWARE and SOCIAL_ENGINEERING), the full hash does not need to be sent twice as in V4. Furthermore, the cache duration has been simplified into a single `cache_duration` field.", "id": "GoogleSecuritySafebrowsingV5SearchHashesResponse", "properties": { "cacheDuration": { - "description": "The client-side cache duration. The client shall add this duration to the current time to determine the expiration time. The expiration time then applies to every hash prefix queried by the client in the request, regardless of how many full hashes are returned in the response. Even if the server returns no full hashes for a particular hash prefix, this fact should also be cached by the client. Important: the client must not assume that the server will return the same cache duration for all responses. The server may choose different cache durations for different responses depending on the situation.", + "description": "The client-side cache duration. The client MUST add this duration to the current time to determine the expiration time. The expiration time then applies to every hash prefix queried by the client in the request, regardless of how many full hashes are returned in the response. Even if the server returns no full hashes for a particular hash prefix, this fact MUST also be cached by the client. Important: the client MUST NOT assume that the server will return the same cache duration for all responses. The server MAY choose different cache durations for different responses depending on the situation.", "format": "google-duration", "type": "string" }, diff --git a/discovery/googleapis/script__v1.json b/discovery/googleapis/script__v1.json index dea82392b..c76fabe13 100644 --- a/discovery/googleapis/script__v1.json +++ b/discovery/googleapis/script__v1.json @@ -76,7 +76,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231119", + "revision": "20240218", "rootUrl": "https://script.googleapis.com/", "servicePath": "", "title": "Apps Script API", diff --git a/discovery/googleapis/searchconsole__v1.json b/discovery/googleapis/searchconsole__v1.json index acc6a2de4..3bf95b7c7 100644 --- a/discovery/googleapis/searchconsole__v1.json +++ b/discovery/googleapis/searchconsole__v1.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240227", "rootUrl": "https://searchconsole.googleapis.com/", "servicePath": "", "title": "Google Search Console API", diff --git a/discovery/googleapis/secretmanager__v1.json b/discovery/googleapis/secretmanager__v1.json index e5564c99e..bbfd0616d 100644 --- a/discovery/googleapis/secretmanager__v1.json +++ b/discovery/googleapis/secretmanager__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231027", + "revision": "20240220", "rootUrl": "https://secretmanager.googleapis.com/", "servicePath": "", "title": "Secret Manager API", @@ -179,6 +179,471 @@ "https://www.googleapis.com/auth/cloud-platform" ] } + }, + "resources": { + "secrets": { + "methods": { + "addVersion": { + "description": "Creates a new SecretVersion containing secret data and attaches it to an existing Secret.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/secrets/{secretsId}:addVersion", + "httpMethod": "POST", + "id": "secretmanager.projects.locations.secrets.addVersion", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The resource name of the Secret to associate with the SecretVersion in the format `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/secrets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}:addVersion", + "request": { + "$ref": "AddSecretVersionRequest" + }, + "response": { + "$ref": "SecretVersion" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "create": { + "description": "Creates a new Secret containing no SecretVersions.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/secrets", + "httpMethod": "POST", + "id": "secretmanager.projects.locations.secrets.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The resource name of the project to associate with the Secret, in the format `projects/*` or `projects/*/locations/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "secretId": { + "description": "Required. This must be unique within the project. A secret ID is a string with a maximum length of 255 characters and can contain uppercase and lowercase letters, numerals, and the hyphen (`-`) and underscore (`_`) characters.", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+parent}/secrets", + "request": { + "$ref": "Secret" + }, + "response": { + "$ref": "Secret" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a Secret.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/secrets/{secretsId}", + "httpMethod": "DELETE", + "id": "secretmanager.projects.locations.secrets.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "etag": { + "description": "Optional. Etag of the Secret. The request succeeds if it matches the etag of the currently stored secret object. If the etag is omitted, the request succeeds.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. The resource name of the Secret to delete in the format `projects/*/secrets/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/secrets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets metadata for a given Secret.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/secrets/{secretsId}", + "httpMethod": "GET", + "id": "secretmanager.projects.locations.secrets.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the Secret, in the format `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/secrets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Secret" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "getIamPolicy": { + "description": "Gets the access control policy for a secret. Returns empty policy if the secret exists and does not have a policy set.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/secrets/{secretsId}:getIamPolicy", + "httpMethod": "GET", + "id": "secretmanager.projects.locations.secrets.getIamPolicy", + "parameterOrder": [ + "resource" + ], + "parameters": { + "options.requestedPolicyVersion": { + "description": "Optional. The maximum policy version that will be used to format the policy. Valid values are 0, 1, and 3. Requests specifying an invalid value will be rejected. Requests for policies with any conditional role bindings must specify version 3. Policies with no conditional role bindings may specify any valid value or leave the field unset. The policy in the response might use the policy version that you specified, or it might use a lower policy version. For example, if you specify version 3, but the policy has no conditional role bindings, the response uses version 1. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies).", + "format": "int32", + "location": "query", + "type": "integer" + }, + "resource": { + "description": "REQUIRED: The resource for which the policy is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/secrets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:getIamPolicy", + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists Secrets.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/secrets", + "httpMethod": "GET", + "id": "secretmanager.projects.locations.secrets.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Filter string, adhering to the rules in [List-operation filtering](https://cloud.google.com/secret-manager/docs/filtering). List only secrets matching the filter. If filter is empty, all secrets are listed.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of results to be returned in a single page. If set to 0, the server decides the number of results to return. If the number is greater than 25000, it is capped at 25000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Pagination token, returned earlier via ListSecretsResponse.next_page_token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the project associated with the Secrets, in the format `projects/*` or `projects/*/locations/*`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/secrets", + "response": { + "$ref": "ListSecretsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates metadata of an existing Secret.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/secrets/{secretsId}", + "httpMethod": "PATCH", + "id": "secretmanager.projects.locations.secrets.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. The resource name of the Secret in the format `projects/*/secrets/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/secrets/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. Specifies the fields to be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "Secret" + }, + "response": { + "$ref": "Secret" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "setIamPolicy": { + "description": "Sets the access control policy on the specified secret. Replaces any existing policy. Permissions on SecretVersions are enforced according to the policy set on the associated Secret.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/secrets/{secretsId}:setIamPolicy", + "httpMethod": "POST", + "id": "secretmanager.projects.locations.secrets.setIamPolicy", + "parameterOrder": [ + "resource" + ], + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy is being specified. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/secrets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:setIamPolicy", + "request": { + "$ref": "SetIamPolicyRequest" + }, + "response": { + "$ref": "Policy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "testIamPermissions": { + "description": "Returns permissions that a caller has for the specified secret. If the secret does not exist, this call returns an empty set of permissions, not a NOT_FOUND error. Note: This operation is designed to be used for building permission-aware UIs and command-line tools, not for authorization checking. This operation may \"fail open\" without warning.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/secrets/{secretsId}:testIamPermissions", + "httpMethod": "POST", + "id": "secretmanager.projects.locations.secrets.testIamPermissions", + "parameterOrder": [ + "resource" + ], + "parameters": { + "resource": { + "description": "REQUIRED: The resource for which the policy detail is being requested. See [Resource names](https://cloud.google.com/apis/design/resource_names) for the appropriate value for this field.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/secrets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+resource}:testIamPermissions", + "request": { + "$ref": "TestIamPermissionsRequest" + }, + "response": { + "$ref": "TestIamPermissionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "versions": { + "methods": { + "access": { + "description": "Accesses a SecretVersion. This call returns the secret data. `projects/*/secrets/*/versions/latest` is an alias to the most recently created SecretVersion.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/secrets/{secretsId}/versions/{versionsId}:access", + "httpMethod": "GET", + "id": "secretmanager.projects.locations.secrets.versions.access", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the SecretVersion in the format `projects/*/secrets/*/versions/*` or `projects/*/locations/*/secrets/*/versions/*`. `projects/*/secrets/*/versions/latest` or `projects/*/locations/*/secrets/*/versions/latest` is an alias to the most recently created SecretVersion.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/secrets/[^/]+/versions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:access", + "response": { + "$ref": "AccessSecretVersionResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "destroy": { + "description": "Destroys a SecretVersion. Sets the state of the SecretVersion to DESTROYED and irrevocably destroys the secret data.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/secrets/{secretsId}/versions/{versionsId}:destroy", + "httpMethod": "POST", + "id": "secretmanager.projects.locations.secrets.versions.destroy", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the SecretVersion to destroy in the format `projects/*/secrets/*/versions/*` or `projects/*/locations/*/secrets/*/versions/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/secrets/[^/]+/versions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:destroy", + "request": { + "$ref": "DestroySecretVersionRequest" + }, + "response": { + "$ref": "SecretVersion" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "disable": { + "description": "Disables a SecretVersion. Sets the state of the SecretVersion to DISABLED.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/secrets/{secretsId}/versions/{versionsId}:disable", + "httpMethod": "POST", + "id": "secretmanager.projects.locations.secrets.versions.disable", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the SecretVersion to disable in the format `projects/*/secrets/*/versions/*` or `projects/*/locations/*/secrets/*/versions/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/secrets/[^/]+/versions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:disable", + "request": { + "$ref": "DisableSecretVersionRequest" + }, + "response": { + "$ref": "SecretVersion" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "enable": { + "description": "Enables a SecretVersion. Sets the state of the SecretVersion to ENABLED.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/secrets/{secretsId}/versions/{versionsId}:enable", + "httpMethod": "POST", + "id": "secretmanager.projects.locations.secrets.versions.enable", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the SecretVersion to enable in the format `projects/*/secrets/*/versions/*` or `projects/*/locations/*/secrets/*/versions/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/secrets/[^/]+/versions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:enable", + "request": { + "$ref": "EnableSecretVersionRequest" + }, + "response": { + "$ref": "SecretVersion" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets metadata for a SecretVersion. `projects/*/secrets/*/versions/latest` is an alias to the most recently created SecretVersion.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/secrets/{secretsId}/versions/{versionsId}", + "httpMethod": "GET", + "id": "secretmanager.projects.locations.secrets.versions.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the SecretVersion in the format `projects/*/secrets/*/versions/*` or `projects/*/locations/*/secrets/*/versions/*`. `projects/*/secrets/*/versions/latest` or `projects/*/locations/*/secrets/*/versions/latest` is an alias to the most recently created SecretVersion.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/secrets/[^/]+/versions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "SecretVersion" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists SecretVersions. This call does not return secret data.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/secrets/{secretsId}/versions", + "httpMethod": "GET", + "id": "secretmanager.projects.locations.secrets.versions.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Filter string, adhering to the rules in [List-operation filtering](https://cloud.google.com/secret-manager/docs/filtering). List only secret versions matching the filter. If filter is empty, all secret versions are listed.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of results to be returned in a single page. If set to 0, the server decides the number of results to return. If the number is greater than 25000, it is capped at 25000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. Pagination token, returned earlier via ListSecretVersionsResponse.next_page_token][].", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the Secret associated with the SecretVersions to list, in the format `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/secrets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/versions", + "response": { + "$ref": "ListSecretVersionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + } } }, "secrets": { @@ -193,7 +658,7 @@ ], "parameters": { "parent": { - "description": "Required. The resource name of the Secret to associate with the SecretVersion in the format `projects/*/secrets/*`.", + "description": "Required. The resource name of the Secret to associate with the SecretVersion in the format `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`.", "location": "path", "pattern": "^projects/[^/]+/secrets/[^/]+$", "required": true, @@ -221,7 +686,7 @@ ], "parameters": { "parent": { - "description": "Required. The resource name of the project to associate with the Secret, in the format `projects/*`.", + "description": "Required. The resource name of the project to associate with the Secret, in the format `projects/*` or `projects/*/locations/*`.", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -284,7 +749,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the Secret, in the format `projects/*/secrets/*`.", + "description": "Required. The resource name of the Secret, in the format `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`.", "location": "path", "pattern": "^projects/[^/]+/secrets/[^/]+$", "required": true, @@ -356,7 +821,7 @@ "type": "string" }, "parent": { - "description": "Required. The resource name of the project associated with the Secrets, in the format `projects/*`.", + "description": "Required. The resource name of the project associated with the Secrets, in the format `projects/*` or `projects/*/locations/*`", "location": "path", "pattern": "^projects/[^/]+$", "required": true, @@ -475,7 +940,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the SecretVersion in the format `projects/*/secrets/*/versions/*`. `projects/*/secrets/*/versions/latest` is an alias to the most recently created SecretVersion.", + "description": "Required. The resource name of the SecretVersion in the format `projects/*/secrets/*/versions/*` or `projects/*/locations/*/secrets/*/versions/*`. `projects/*/secrets/*/versions/latest` or `projects/*/locations/*/secrets/*/versions/latest` is an alias to the most recently created SecretVersion.", "location": "path", "pattern": "^projects/[^/]+/secrets/[^/]+/versions/[^/]+$", "required": true, @@ -500,7 +965,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the SecretVersion to destroy in the format `projects/*/secrets/*/versions/*`.", + "description": "Required. The resource name of the SecretVersion to destroy in the format `projects/*/secrets/*/versions/*` or `projects/*/locations/*/secrets/*/versions/*`.", "location": "path", "pattern": "^projects/[^/]+/secrets/[^/]+/versions/[^/]+$", "required": true, @@ -528,7 +993,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the SecretVersion to disable in the format `projects/*/secrets/*/versions/*`.", + "description": "Required. The resource name of the SecretVersion to disable in the format `projects/*/secrets/*/versions/*` or `projects/*/locations/*/secrets/*/versions/*`.", "location": "path", "pattern": "^projects/[^/]+/secrets/[^/]+/versions/[^/]+$", "required": true, @@ -556,7 +1021,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the SecretVersion to enable in the format `projects/*/secrets/*/versions/*`.", + "description": "Required. The resource name of the SecretVersion to enable in the format `projects/*/secrets/*/versions/*` or `projects/*/locations/*/secrets/*/versions/*`.", "location": "path", "pattern": "^projects/[^/]+/secrets/[^/]+/versions/[^/]+$", "required": true, @@ -584,7 +1049,7 @@ ], "parameters": { "name": { - "description": "Required. The resource name of the SecretVersion in the format `projects/*/secrets/*/versions/*`. `projects/*/secrets/*/versions/latest` is an alias to the most recently created SecretVersion.", + "description": "Required. The resource name of the SecretVersion in the format `projects/*/secrets/*/versions/*` or `projects/*/locations/*/secrets/*/versions/*`. `projects/*/secrets/*/versions/latest` or `projects/*/locations/*/secrets/*/versions/latest` is an alias to the most recently created SecretVersion.", "location": "path", "pattern": "^projects/[^/]+/secrets/[^/]+/versions/[^/]+$", "required": true, @@ -625,7 +1090,7 @@ "type": "string" }, "parent": { - "description": "Required. The resource name of the Secret associated with the SecretVersions to list, in the format `projects/*/secrets/*`.", + "description": "Required. The resource name of the Secret associated with the SecretVersions to list, in the format `projects/*/secrets/*` or `projects/*/locations/*/secrets/*`.", "location": "path", "pattern": "^projects/[^/]+/secrets/[^/]+$", "required": true, @@ -653,7 +1118,7 @@ "id": "AccessSecretVersionResponse", "properties": { "name": { - "description": "The resource name of the SecretVersion in the format `projects/*/secrets/*/versions/*`.", + "description": "The resource name of the SecretVersion in the format `projects/*/secrets/*/versions/*` or `projects/*/locations/*/secrets/*/versions/*`.", "type": "string" }, "payload": { @@ -754,14 +1219,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -1099,7 +1564,7 @@ }, "replication": { "$ref": "Replication", - "description": "Required. Immutable. The replication policy of the secret data attached to the Secret. The replication policy cannot be changed after the Secret has been created." + "description": "Optional. Immutable. The replication policy of the secret data attached to the Secret. The replication policy cannot be changed after the Secret has been created." }, "rotation": { "$ref": "Rotation", @@ -1122,7 +1587,7 @@ "format": "int64", "type": "string" }, - "description": "Optional. Mapping from version alias to version name. A version alias is a string with a maximum length of 63 characters and can contain uppercase and lowercase letters, numerals, and the hyphen (`-`) and underscore ('_') characters. An alias string must start with a letter and cannot be the string 'latest' or 'NEW'. No more than 50 aliases can be assigned to a given secret. Version-Alias pairs will be viewable via GetSecret and modifiable via UpdateSecret. At launch Access by Allias will only be supported on GetSecretVersion and AccessSecretVersion.", + "description": "Optional. Mapping from version alias to version name. A version alias is a string with a maximum length of 63 characters and can contain uppercase and lowercase letters, numerals, and the hyphen (`-`) and underscore ('_') characters. An alias string must start with a letter and cannot be the string 'latest' or 'NEW'. No more than 50 aliases can be assigned to a given secret. Version-Alias pairs will be viewable via GetSecret and modifiable via UpdateSecret. Access by alias is only be supported on GetSecretVersion and AccessSecretVersion.", "type": "object" } }, diff --git a/discovery/googleapis/securitycenter__v1.json b/discovery/googleapis/securitycenter__v1.json index f901a9e82..2a0b5f109 100644 --- a/discovery/googleapis/securitycenter__v1.json +++ b/discovery/googleapis/securitycenter__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231102", + "revision": "20240226", "rootUrl": "https://securitycenter.googleapis.com/", "servicePath": "", "title": "Security Command Center API", @@ -406,6 +406,293 @@ } } }, + "eventThreatDetectionSettings": { + "methods": { + "validateCustomModule": { + "description": "Validates the given Event Threat Detection custom module.", + "flatPath": "v1/folders/{foldersId}/eventThreatDetectionSettings:validateCustomModule", + "httpMethod": "POST", + "id": "securitycenter.folders.eventThreatDetectionSettings.validateCustomModule", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Resource name of the parent to validate the Custom Module under. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings\". * \"folders/{folder}/eventThreatDetectionSettings\". * \"projects/{project}/eventThreatDetectionSettings\".", + "location": "path", + "pattern": "^folders/[^/]+/eventThreatDetectionSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}:validateCustomModule", + "request": { + "$ref": "ValidateEventThreatDetectionCustomModuleRequest" + }, + "response": { + "$ref": "ValidateEventThreatDetectionCustomModuleResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "customModules": { + "methods": { + "create": { + "description": "Creates a resident Event Threat Detection custom module at the scope of the given Resource Manager parent, and also creates inherited custom modules for all descendants of the given parent. These modules are enabled by default.", + "flatPath": "v1/folders/{foldersId}/eventThreatDetectionSettings/customModules", + "httpMethod": "POST", + "id": "securitycenter.folders.eventThreatDetectionSettings.customModules.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The new custom module's parent. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings\". * \"folders/{folder}/eventThreatDetectionSettings\". * \"projects/{project}/eventThreatDetectionSettings\".", + "location": "path", + "pattern": "^folders/[^/]+/eventThreatDetectionSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/customModules", + "request": { + "$ref": "EventThreatDetectionCustomModule" + }, + "response": { + "$ref": "EventThreatDetectionCustomModule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes the specified Event Threat Detection custom module and all of its descendants in the Resource Manager hierarchy. This method is only supported for resident custom modules.", + "flatPath": "v1/folders/{foldersId}/eventThreatDetectionSettings/customModules/{customModulesId}", + "httpMethod": "DELETE", + "id": "securitycenter.folders.eventThreatDetectionSettings.customModules.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the custom module to delete. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings/customModules/{module}\". * \"folders/{folder}/eventThreatDetectionSettings/customModules/{module}\". * \"projects/{project}/eventThreatDetectionSettings/customModules/{module}\".", + "location": "path", + "pattern": "^folders/[^/]+/eventThreatDetectionSettings/customModules/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets an Event Threat Detection custom module.", + "flatPath": "v1/folders/{foldersId}/eventThreatDetectionSettings/customModules/{customModulesId}", + "httpMethod": "GET", + "id": "securitycenter.folders.eventThreatDetectionSettings.customModules.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the custom module to get. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings/customModules/{module}\". * \"folders/{folder}/eventThreatDetectionSettings/customModules/{module}\". * \"projects/{project}/eventThreatDetectionSettings/customModules/{module}\".", + "location": "path", + "pattern": "^folders/[^/]+/eventThreatDetectionSettings/customModules/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "EventThreatDetectionCustomModule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all Event Threat Detection custom modules for the given Resource Manager parent. This includes resident modules defined at the scope of the parent along with modules inherited from ancestors.", + "flatPath": "v1/folders/{foldersId}/eventThreatDetectionSettings/customModules", + "httpMethod": "GET", + "id": "securitycenter.folders.eventThreatDetectionSettings.customModules.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of modules to return. The service may return fewer than this value. If unspecified, at most 10 configs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListEventThreatDetectionCustomModules` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListEventThreatDetectionCustomModules` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of the parent to list custom modules under. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings\". * \"folders/{folder}/eventThreatDetectionSettings\". * \"projects/{project}/eventThreatDetectionSettings\".", + "location": "path", + "pattern": "^folders/[^/]+/eventThreatDetectionSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/customModules", + "response": { + "$ref": "ListEventThreatDetectionCustomModulesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "listDescendant": { + "description": "Lists all resident Event Threat Detection custom modules under the given Resource Manager parent and its descendants.", + "flatPath": "v1/folders/{foldersId}/eventThreatDetectionSettings/customModules:listDescendant", + "httpMethod": "GET", + "id": "securitycenter.folders.eventThreatDetectionSettings.customModules.listDescendant", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of modules to return. The service may return fewer than this value. If unspecified, at most 10 configs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListDescendantEventThreatDetectionCustomModules` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListDescendantEventThreatDetectionCustomModules` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of the parent to list custom modules under. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings\". * \"folders/{folder}/eventThreatDetectionSettings\". * \"projects/{project}/eventThreatDetectionSettings\".", + "location": "path", + "pattern": "^folders/[^/]+/eventThreatDetectionSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/customModules:listDescendant", + "response": { + "$ref": "ListDescendantEventThreatDetectionCustomModulesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the Event Threat Detection custom module with the given name based on the given update mask. Updating the enablement state is supported for both resident and inherited modules (though resident modules cannot have an enablement state of \"inherited\"). Updating the display name or configuration of a module is supported for resident modules only. The type of a module cannot be changed.", + "flatPath": "v1/folders/{foldersId}/eventThreatDetectionSettings/customModules/{customModulesId}", + "httpMethod": "PATCH", + "id": "securitycenter.folders.eventThreatDetectionSettings.customModules.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Immutable. The resource name of the Event Threat Detection custom module. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings/customModules/{module}\". * \"folders/{folder}/eventThreatDetectionSettings/customModules/{module}\". * \"projects/{project}/eventThreatDetectionSettings/customModules/{module}\".", + "location": "path", + "pattern": "^folders/[^/]+/eventThreatDetectionSettings/customModules/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The list of fields to be updated. If empty all mutable fields will be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "EventThreatDetectionCustomModule" + }, + "response": { + "$ref": "EventThreatDetectionCustomModule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "effectiveCustomModules": { + "methods": { + "get": { + "description": "Gets an effective Event Threat Detection custom module at the given level.", + "flatPath": "v1/folders/{foldersId}/eventThreatDetectionSettings/effectiveCustomModules/{effectiveCustomModulesId}", + "httpMethod": "GET", + "id": "securitycenter.folders.eventThreatDetectionSettings.effectiveCustomModules.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the effective Event Threat Detection custom module. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings/effectiveCustomModules/{module}\". * \"folders/{folder}/eventThreatDetectionSettings/effectiveCustomModules/{module}\". * \"projects/{project}/eventThreatDetectionSettings/effectiveCustomModules/{module}\".", + "location": "path", + "pattern": "^folders/[^/]+/eventThreatDetectionSettings/effectiveCustomModules/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "EffectiveEventThreatDetectionCustomModule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all effective Event Threat Detection custom modules for the given parent. This includes resident modules defined at the scope of the parent along with modules inherited from its ancestors.", + "flatPath": "v1/folders/{foldersId}/eventThreatDetectionSettings/effectiveCustomModules", + "httpMethod": "GET", + "id": "securitycenter.folders.eventThreatDetectionSettings.effectiveCustomModules.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of modules to return. The service may return fewer than this value. If unspecified, at most 10 configs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListEffectiveEventThreatDetectionCustomModules` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListEffectiveEventThreatDetectionCustomModules` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of the parent to list custom modules for. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings\". * \"folders/{folder}/eventThreatDetectionSettings\". * \"projects/{project}/eventThreatDetectionSettings\".", + "location": "path", + "pattern": "^folders/[^/]+/eventThreatDetectionSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/effectiveCustomModules", + "response": { + "$ref": "ListEffectiveEventThreatDetectionCustomModulesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, "findings": { "methods": { "bulkMute": { @@ -1015,7 +1302,7 @@ "type": "string" }, "updateMask": { - "description": "The list of fields to update.", + "description": "The list of fields to be updated. The only fields that can be updated are `enablement_state` and `custom_config`. If empty or set to the wildcard value `*`, both `enablement_state` and `custom_config` are updated.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -1042,7 +1329,7 @@ ], "parameters": { "parent": { - "description": "Required. The relative resource name of the organization, project, or folder. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name An example is: \"organizations/{organization_id}\".", + "description": "Required. The relative resource name of the organization, project, or folder. For more information about relative resource names, see [Relative Resource Name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) Example: `organizations/{organization_id}`", "location": "path", "pattern": "^folders/[^/]+/securityHealthAnalyticsSettings$", "required": true, @@ -1838,7 +2125,7 @@ ], "parameters": { "parent": { - "description": "Required. Resource name of the parent to validate the Custom Module under. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings\".", + "description": "Required. Resource name of the parent to validate the Custom Module under. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings\". * \"folders/{folder}/eventThreatDetectionSettings\". * \"projects/{project}/eventThreatDetectionSettings\".", "location": "path", "pattern": "^organizations/[^/]+/eventThreatDetectionSettings$", "required": true, @@ -1861,7 +2148,7 @@ "customModules": { "methods": { "create": { - "description": "Creates an Event Threat Detection custom module.", + "description": "Creates a resident Event Threat Detection custom module at the scope of the given Resource Manager parent, and also creates inherited custom modules for all descendants of the given parent. These modules are enabled by default.", "flatPath": "v1/organizations/{organizationsId}/eventThreatDetectionSettings/customModules", "httpMethod": "POST", "id": "securitycenter.organizations.eventThreatDetectionSettings.customModules.create", @@ -1870,7 +2157,7 @@ ], "parameters": { "parent": { - "description": "Required. The new custom module's parent. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings\".", + "description": "Required. The new custom module's parent. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings\". * \"folders/{folder}/eventThreatDetectionSettings\". * \"projects/{project}/eventThreatDetectionSettings\".", "location": "path", "pattern": "^organizations/[^/]+/eventThreatDetectionSettings$", "required": true, @@ -1889,7 +2176,7 @@ ] }, "delete": { - "description": "Deletes an Event Threat Detection custom module.", + "description": "Deletes the specified Event Threat Detection custom module and all of its descendants in the Resource Manager hierarchy. This method is only supported for resident custom modules.", "flatPath": "v1/organizations/{organizationsId}/eventThreatDetectionSettings/customModules/{customModulesId}", "httpMethod": "DELETE", "id": "securitycenter.organizations.eventThreatDetectionSettings.customModules.delete", @@ -1898,7 +2185,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the custom module to delete. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings/customModules/{module}\".", + "description": "Required. Name of the custom module to delete. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings/customModules/{module}\". * \"folders/{folder}/eventThreatDetectionSettings/customModules/{module}\". * \"projects/{project}/eventThreatDetectionSettings/customModules/{module}\".", "location": "path", "pattern": "^organizations/[^/]+/eventThreatDetectionSettings/customModules/[^/]+$", "required": true, @@ -1923,7 +2210,7 @@ ], "parameters": { "name": { - "description": "Required. Name of the custom module to get. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings/customModules/{module}\".", + "description": "Required. Name of the custom module to get. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings/customModules/{module}\". * \"folders/{folder}/eventThreatDetectionSettings/customModules/{module}\". * \"projects/{project}/eventThreatDetectionSettings/customModules/{module}\".", "location": "path", "pattern": "^organizations/[^/]+/eventThreatDetectionSettings/customModules/[^/]+$", "required": true, @@ -1939,7 +2226,7 @@ ] }, "list": { - "description": "Lists Event Threat Detection custom modules.", + "description": "Lists all Event Threat Detection custom modules for the given Resource Manager parent. This includes resident modules defined at the scope of the parent along with modules inherited from ancestors.", "flatPath": "v1/organizations/{organizationsId}/eventThreatDetectionSettings/customModules", "httpMethod": "GET", "id": "securitycenter.organizations.eventThreatDetectionSettings.customModules.list", @@ -1959,7 +2246,7 @@ "type": "string" }, "parent": { - "description": "Required. Name of the parent to list custom modules under. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings\".", + "description": "Required. Name of the parent to list custom modules under. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings\". * \"folders/{folder}/eventThreatDetectionSettings\". * \"projects/{project}/eventThreatDetectionSettings\".", "location": "path", "pattern": "^organizations/[^/]+/eventThreatDetectionSettings$", "required": true, @@ -1974,23 +2261,59 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, - "patch": { - "description": "Updates an Event Threat Detection custom module.", - "flatPath": "v1/organizations/{organizationsId}/eventThreatDetectionSettings/customModules/{customModulesId}", - "httpMethod": "PATCH", - "id": "securitycenter.organizations.eventThreatDetectionSettings.customModules.patch", + "listDescendant": { + "description": "Lists all resident Event Threat Detection custom modules under the given Resource Manager parent and its descendants.", + "flatPath": "v1/organizations/{organizationsId}/eventThreatDetectionSettings/customModules:listDescendant", + "httpMethod": "GET", + "id": "securitycenter.organizations.eventThreatDetectionSettings.customModules.listDescendant", "parameterOrder": [ - "name" + "parent" ], "parameters": { - "name": { - "description": "Immutable. The resource name of the Event Threat Detection custom module. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings/customModules/{module}\". * \"folders/{folder}/eventThreatDetectionSettings/customModules/{module}\". * \"projects/{project}/eventThreatDetectionSettings/customModules/{module}\".", - "location": "path", - "pattern": "^organizations/[^/]+/eventThreatDetectionSettings/customModules/[^/]+$", - "required": true, - "type": "string" - }, - "updateMask": { + "pageSize": { + "description": "The maximum number of modules to return. The service may return fewer than this value. If unspecified, at most 10 configs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListDescendantEventThreatDetectionCustomModules` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListDescendantEventThreatDetectionCustomModules` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of the parent to list custom modules under. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings\". * \"folders/{folder}/eventThreatDetectionSettings\". * \"projects/{project}/eventThreatDetectionSettings\".", + "location": "path", + "pattern": "^organizations/[^/]+/eventThreatDetectionSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/customModules:listDescendant", + "response": { + "$ref": "ListDescendantEventThreatDetectionCustomModulesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates the Event Threat Detection custom module with the given name based on the given update mask. Updating the enablement state is supported for both resident and inherited modules (though resident modules cannot have an enablement state of \"inherited\"). Updating the display name or configuration of a module is supported for resident modules only. The type of a module cannot be changed.", + "flatPath": "v1/organizations/{organizationsId}/eventThreatDetectionSettings/customModules/{customModulesId}", + "httpMethod": "PATCH", + "id": "securitycenter.organizations.eventThreatDetectionSettings.customModules.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Immutable. The resource name of the Event Threat Detection custom module. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings/customModules/{module}\". * \"folders/{folder}/eventThreatDetectionSettings/customModules/{module}\". * \"projects/{project}/eventThreatDetectionSettings/customModules/{module}\".", + "location": "path", + "pattern": "^organizations/[^/]+/eventThreatDetectionSettings/customModules/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { "description": "The list of fields to be updated. If empty all mutable fields will be updated.", "format": "google-fieldmask", "location": "query", @@ -2009,6 +2332,71 @@ ] } } + }, + "effectiveCustomModules": { + "methods": { + "get": { + "description": "Gets an effective Event Threat Detection custom module at the given level.", + "flatPath": "v1/organizations/{organizationsId}/eventThreatDetectionSettings/effectiveCustomModules/{effectiveCustomModulesId}", + "httpMethod": "GET", + "id": "securitycenter.organizations.eventThreatDetectionSettings.effectiveCustomModules.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the effective Event Threat Detection custom module. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings/effectiveCustomModules/{module}\". * \"folders/{folder}/eventThreatDetectionSettings/effectiveCustomModules/{module}\". * \"projects/{project}/eventThreatDetectionSettings/effectiveCustomModules/{module}\".", + "location": "path", + "pattern": "^organizations/[^/]+/eventThreatDetectionSettings/effectiveCustomModules/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "EffectiveEventThreatDetectionCustomModule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all effective Event Threat Detection custom modules for the given parent. This includes resident modules defined at the scope of the parent along with modules inherited from its ancestors.", + "flatPath": "v1/organizations/{organizationsId}/eventThreatDetectionSettings/effectiveCustomModules", + "httpMethod": "GET", + "id": "securitycenter.organizations.eventThreatDetectionSettings.effectiveCustomModules.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of modules to return. The service may return fewer than this value. If unspecified, at most 10 configs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListEffectiveEventThreatDetectionCustomModules` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListEffectiveEventThreatDetectionCustomModules` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of the parent to list custom modules for. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings\". * \"folders/{folder}/eventThreatDetectionSettings\". * \"projects/{project}/eventThreatDetectionSettings\".", + "location": "path", + "pattern": "^organizations/[^/]+/eventThreatDetectionSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/effectiveCustomModules", + "response": { + "$ref": "ListEffectiveEventThreatDetectionCustomModulesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } } } }, @@ -2893,7 +3281,7 @@ "type": "string" }, "updateMask": { - "description": "The list of fields to update.", + "description": "The list of fields to be updated. The only fields that can be updated are `enablement_state` and `custom_config`. If empty or set to the wildcard value `*`, both `enablement_state` and `custom_config` are updated.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -2920,7 +3308,7 @@ ], "parameters": { "parent": { - "description": "Required. The relative resource name of the organization, project, or folder. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name An example is: \"organizations/{organization_id}\".", + "description": "Required. The relative resource name of the organization, project, or folder. For more information about relative resource names, see [Relative Resource Name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) Example: `organizations/{organization_id}`", "location": "path", "pattern": "^organizations/[^/]+/securityHealthAnalyticsSettings$", "required": true, @@ -3099,6 +3487,11 @@ "location": "query", "type": "string" }, + "orderBy": { + "description": "Optional. The fields by which to order the valued resources response. Supported fields: * `exposed_score` * `resource_value` * `resource_type` * `resource` * `display_name` Values should be a comma separated list of fields. For example: `exposed_score,resource_value`. The default sorting order is descending. To specify ascending or descending order for a field, append a \" ASC\" or a \" DESC\" suffix, respectively; for example: `exposed_score DESC`.", + "location": "query", + "type": "string" + }, "pageSize": { "description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", "format": "int32", @@ -3177,6 +3570,31 @@ }, "valuedResources": { "methods": { + "get": { + "description": "Get the valued resource by name", + "flatPath": "v1/organizations/{organizationsId}/simulations/{simulationsId}/valuedResources/{valuedResourcesId}", + "httpMethod": "GET", + "id": "securitycenter.organizations.simulations.valuedResources.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of this valued resource Valid format: \"organizations/{organization}/simulations/{simulation}/valuedResources/{valued_resource}\"", + "location": "path", + "pattern": "^organizations/[^/]+/simulations/[^/]+/valuedResources/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "ValuedResource" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "list": { "description": "Lists the valued resources for a set of simulation results and filter.", "flatPath": "v1/organizations/{organizationsId}/simulations/{simulationsId}/valuedResources", @@ -3191,6 +3609,11 @@ "location": "query", "type": "string" }, + "orderBy": { + "description": "Optional. The fields by which to order the valued resources response. Supported fields: * `exposed_score` * `resource_value` * `resource_type` * `resource` * `display_name` Values should be a comma separated list of fields. For example: `exposed_score,resource_value`. The default sorting order is descending. To specify ascending or descending order for a field, append a \" ASC\" or a \" DESC\" suffix, respectively; for example: `exposed_score DESC`.", + "location": "query", + "type": "string" + }, "pageSize": { "description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", "format": "int32", @@ -4080,55 +4503,81 @@ } } }, - "findings": { + "eventThreatDetectionSettings": { "methods": { - "bulkMute": { - "description": "Kicks off an LRO to bulk mute findings for a parent based on a filter. The parent can be either an organization, folder or project. The findings matched by the filter will be muted after the LRO is done.", - "flatPath": "v1/projects/{projectsId}/findings:bulkMute", + "validateCustomModule": { + "description": "Validates the given Event Threat Detection custom module.", + "flatPath": "v1/projects/{projectsId}/eventThreatDetectionSettings:validateCustomModule", "httpMethod": "POST", - "id": "securitycenter.projects.findings.bulkMute", + "id": "securitycenter.projects.eventThreatDetectionSettings.validateCustomModule", "parameterOrder": [ "parent" ], "parameters": { "parent": { - "description": "Required. The parent, at which bulk action needs to be applied. Its format is \"organizations/[organization_id]\", \"folders/[folder_id]\", \"projects/[project_id]\".", + "description": "Required. Resource name of the parent to validate the Custom Module under. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings\". * \"folders/{folder}/eventThreatDetectionSettings\". * \"projects/{project}/eventThreatDetectionSettings\".", "location": "path", - "pattern": "^projects/[^/]+$", + "pattern": "^projects/[^/]+/eventThreatDetectionSettings$", "required": true, "type": "string" } }, - "path": "v1/{+parent}/findings:bulkMute", + "path": "v1/{+parent}:validateCustomModule", "request": { - "$ref": "BulkMuteFindingsRequest" + "$ref": "ValidateEventThreatDetectionCustomModuleRequest" }, "response": { - "$ref": "Operation" + "$ref": "ValidateEventThreatDetectionCustomModuleResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] } - } - }, - "locations": { + }, "resources": { - "muteConfigs": { + "customModules": { "methods": { + "create": { + "description": "Creates a resident Event Threat Detection custom module at the scope of the given Resource Manager parent, and also creates inherited custom modules for all descendants of the given parent. These modules are enabled by default.", + "flatPath": "v1/projects/{projectsId}/eventThreatDetectionSettings/customModules", + "httpMethod": "POST", + "id": "securitycenter.projects.eventThreatDetectionSettings.customModules.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The new custom module's parent. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings\". * \"folders/{folder}/eventThreatDetectionSettings\". * \"projects/{project}/eventThreatDetectionSettings\".", + "location": "path", + "pattern": "^projects/[^/]+/eventThreatDetectionSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/customModules", + "request": { + "$ref": "EventThreatDetectionCustomModule" + }, + "response": { + "$ref": "EventThreatDetectionCustomModule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "delete": { - "description": "Deletes an existing mute config.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/muteConfigs/{muteConfigsId}", + "description": "Deletes the specified Event Threat Detection custom module and all of its descendants in the Resource Manager hierarchy. This method is only supported for resident custom modules.", + "flatPath": "v1/projects/{projectsId}/eventThreatDetectionSettings/customModules/{customModulesId}", "httpMethod": "DELETE", - "id": "securitycenter.projects.locations.muteConfigs.delete", + "id": "securitycenter.projects.eventThreatDetectionSettings.customModules.delete", "parameterOrder": [ "name" ], "parameters": { "name": { - "description": "Required. Name of the mute config to delete. Its format is organizations/{organization}/muteConfigs/{config_id}, folders/{folder}/muteConfigs/{config_id}, projects/{project}/muteConfigs/{config_id}, organizations/{organization}/locations/global/muteConfigs/{config_id}, folders/{folder}/locations/global/muteConfigs/{config_id}, or projects/{project}/locations/global/muteConfigs/{config_id}.", + "description": "Required. Name of the custom module to delete. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings/customModules/{module}\". * \"folders/{folder}/eventThreatDetectionSettings/customModules/{module}\". * \"projects/{project}/eventThreatDetectionSettings/customModules/{module}\".", "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/muteConfigs/[^/]+$", + "pattern": "^projects/[^/]+/eventThreatDetectionSettings/customModules/[^/]+$", "required": true, "type": "string" } @@ -4142,43 +4591,115 @@ ] }, "get": { - "description": "Gets a mute config.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/muteConfigs/{muteConfigsId}", + "description": "Gets an Event Threat Detection custom module.", + "flatPath": "v1/projects/{projectsId}/eventThreatDetectionSettings/customModules/{customModulesId}", "httpMethod": "GET", - "id": "securitycenter.projects.locations.muteConfigs.get", + "id": "securitycenter.projects.eventThreatDetectionSettings.customModules.get", "parameterOrder": [ "name" ], "parameters": { "name": { - "description": "Required. Name of the mute config to retrieve. Its format is organizations/{organization}/muteConfigs/{config_id}, folders/{folder}/muteConfigs/{config_id}, projects/{project}/muteConfigs/{config_id}, organizations/{organization}/locations/global/muteConfigs/{config_id}, folders/{folder}/locations/global/muteConfigs/{config_id}, or projects/{project}/locations/global/muteConfigs/{config_id}.", + "description": "Required. Name of the custom module to get. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings/customModules/{module}\". * \"folders/{folder}/eventThreatDetectionSettings/customModules/{module}\". * \"projects/{project}/eventThreatDetectionSettings/customModules/{module}\".", "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/muteConfigs/[^/]+$", + "pattern": "^projects/[^/]+/eventThreatDetectionSettings/customModules/[^/]+$", "required": true, "type": "string" } }, "path": "v1/{+name}", "response": { - "$ref": "GoogleCloudSecuritycenterV1MuteConfig" + "$ref": "EventThreatDetectionCustomModule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all Event Threat Detection custom modules for the given Resource Manager parent. This includes resident modules defined at the scope of the parent along with modules inherited from ancestors.", + "flatPath": "v1/projects/{projectsId}/eventThreatDetectionSettings/customModules", + "httpMethod": "GET", + "id": "securitycenter.projects.eventThreatDetectionSettings.customModules.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of modules to return. The service may return fewer than this value. If unspecified, at most 10 configs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListEventThreatDetectionCustomModules` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListEventThreatDetectionCustomModules` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of the parent to list custom modules under. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings\". * \"folders/{folder}/eventThreatDetectionSettings\". * \"projects/{project}/eventThreatDetectionSettings\".", + "location": "path", + "pattern": "^projects/[^/]+/eventThreatDetectionSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/customModules", + "response": { + "$ref": "ListEventThreatDetectionCustomModulesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "listDescendant": { + "description": "Lists all resident Event Threat Detection custom modules under the given Resource Manager parent and its descendants.", + "flatPath": "v1/projects/{projectsId}/eventThreatDetectionSettings/customModules:listDescendant", + "httpMethod": "GET", + "id": "securitycenter.projects.eventThreatDetectionSettings.customModules.listDescendant", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of modules to return. The service may return fewer than this value. If unspecified, at most 10 configs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListDescendantEventThreatDetectionCustomModules` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListDescendantEventThreatDetectionCustomModules` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of the parent to list custom modules under. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings\". * \"folders/{folder}/eventThreatDetectionSettings\". * \"projects/{project}/eventThreatDetectionSettings\".", + "location": "path", + "pattern": "^projects/[^/]+/eventThreatDetectionSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/customModules:listDescendant", + "response": { + "$ref": "ListDescendantEventThreatDetectionCustomModulesResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] }, "patch": { - "description": "Updates a mute config.", - "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/muteConfigs/{muteConfigsId}", + "description": "Updates the Event Threat Detection custom module with the given name based on the given update mask. Updating the enablement state is supported for both resident and inherited modules (though resident modules cannot have an enablement state of \"inherited\"). Updating the display name or configuration of a module is supported for resident modules only. The type of a module cannot be changed.", + "flatPath": "v1/projects/{projectsId}/eventThreatDetectionSettings/customModules/{customModulesId}", "httpMethod": "PATCH", - "id": "securitycenter.projects.locations.muteConfigs.patch", + "id": "securitycenter.projects.eventThreatDetectionSettings.customModules.patch", "parameterOrder": [ "name" ], "parameters": { "name": { - "description": "This field will be ignored if provided on config creation. Format \"organizations/{organization}/muteConfigs/{mute_config}\" \"folders/{folder}/muteConfigs/{mute_config}\" \"projects/{project}/muteConfigs/{mute_config}\" \"organizations/{organization}/locations/global/muteConfigs/{mute_config}\" \"folders/{folder}/locations/global/muteConfigs/{mute_config}\" \"projects/{project}/locations/global/muteConfigs/{mute_config}\"", + "description": "Immutable. The resource name of the Event Threat Detection custom module. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings/customModules/{module}\". * \"folders/{folder}/eventThreatDetectionSettings/customModules/{module}\". * \"projects/{project}/eventThreatDetectionSettings/customModules/{module}\".", "location": "path", - "pattern": "^projects/[^/]+/locations/[^/]+/muteConfigs/[^/]+$", + "pattern": "^projects/[^/]+/eventThreatDetectionSettings/customModules/[^/]+$", "required": true, "type": "string" }, @@ -4191,25 +4712,214 @@ }, "path": "v1/{+name}", "request": { - "$ref": "GoogleCloudSecuritycenterV1MuteConfig" + "$ref": "EventThreatDetectionCustomModule" }, "response": { - "$ref": "GoogleCloudSecuritycenterV1MuteConfig" + "$ref": "EventThreatDetectionCustomModule" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] } } - } - } - }, - "muteConfigs": { - "methods": { - "create": { - "description": "Creates a mute config.", - "flatPath": "v1/projects/{projectsId}/muteConfigs", - "httpMethod": "POST", + }, + "effectiveCustomModules": { + "methods": { + "get": { + "description": "Gets an effective Event Threat Detection custom module at the given level.", + "flatPath": "v1/projects/{projectsId}/eventThreatDetectionSettings/effectiveCustomModules/{effectiveCustomModulesId}", + "httpMethod": "GET", + "id": "securitycenter.projects.eventThreatDetectionSettings.effectiveCustomModules.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the effective Event Threat Detection custom module. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings/effectiveCustomModules/{module}\". * \"folders/{folder}/eventThreatDetectionSettings/effectiveCustomModules/{module}\". * \"projects/{project}/eventThreatDetectionSettings/effectiveCustomModules/{module}\".", + "location": "path", + "pattern": "^projects/[^/]+/eventThreatDetectionSettings/effectiveCustomModules/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "EffectiveEventThreatDetectionCustomModule" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists all effective Event Threat Detection custom modules for the given parent. This includes resident modules defined at the scope of the parent along with modules inherited from its ancestors.", + "flatPath": "v1/projects/{projectsId}/eventThreatDetectionSettings/effectiveCustomModules", + "httpMethod": "GET", + "id": "securitycenter.projects.eventThreatDetectionSettings.effectiveCustomModules.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "The maximum number of modules to return. The service may return fewer than this value. If unspecified, at most 10 configs will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A page token, received from a previous `ListEffectiveEventThreatDetectionCustomModules` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListEffectiveEventThreatDetectionCustomModules` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Name of the parent to list custom modules for. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings\". * \"folders/{folder}/eventThreatDetectionSettings\". * \"projects/{project}/eventThreatDetectionSettings\".", + "location": "path", + "pattern": "^projects/[^/]+/eventThreatDetectionSettings$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/effectiveCustomModules", + "response": { + "$ref": "ListEffectiveEventThreatDetectionCustomModulesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, + "findings": { + "methods": { + "bulkMute": { + "description": "Kicks off an LRO to bulk mute findings for a parent based on a filter. The parent can be either an organization, folder or project. The findings matched by the filter will be muted after the LRO is done.", + "flatPath": "v1/projects/{projectsId}/findings:bulkMute", + "httpMethod": "POST", + "id": "securitycenter.projects.findings.bulkMute", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent, at which bulk action needs to be applied. Its format is \"organizations/[organization_id]\", \"folders/[folder_id]\", \"projects/[project_id]\".", + "location": "path", + "pattern": "^projects/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/findings:bulkMute", + "request": { + "$ref": "BulkMuteFindingsRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, + "locations": { + "resources": { + "muteConfigs": { + "methods": { + "delete": { + "description": "Deletes an existing mute config.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/muteConfigs/{muteConfigsId}", + "httpMethod": "DELETE", + "id": "securitycenter.projects.locations.muteConfigs.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the mute config to delete. Its format is organizations/{organization}/muteConfigs/{config_id}, folders/{folder}/muteConfigs/{config_id}, projects/{project}/muteConfigs/{config_id}, organizations/{organization}/locations/global/muteConfigs/{config_id}, folders/{folder}/locations/global/muteConfigs/{config_id}, or projects/{project}/locations/global/muteConfigs/{config_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/muteConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets a mute config.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/muteConfigs/{muteConfigsId}", + "httpMethod": "GET", + "id": "securitycenter.projects.locations.muteConfigs.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the mute config to retrieve. Its format is organizations/{organization}/muteConfigs/{config_id}, folders/{folder}/muteConfigs/{config_id}, projects/{project}/muteConfigs/{config_id}, organizations/{organization}/locations/global/muteConfigs/{config_id}, folders/{folder}/locations/global/muteConfigs/{config_id}, or projects/{project}/locations/global/muteConfigs/{config_id}.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/muteConfigs/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "GoogleCloudSecuritycenterV1MuteConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Updates a mute config.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/muteConfigs/{muteConfigsId}", + "httpMethod": "PATCH", + "id": "securitycenter.projects.locations.muteConfigs.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "This field will be ignored if provided on config creation. Format \"organizations/{organization}/muteConfigs/{mute_config}\" \"folders/{folder}/muteConfigs/{mute_config}\" \"projects/{project}/muteConfigs/{mute_config}\" \"organizations/{organization}/locations/global/muteConfigs/{mute_config}\" \"folders/{folder}/locations/global/muteConfigs/{mute_config}\" \"projects/{project}/locations/global/muteConfigs/{mute_config}\"", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/muteConfigs/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "The list of fields to be updated. If empty all mutable fields will be updated.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "GoogleCloudSecuritycenterV1MuteConfig" + }, + "response": { + "$ref": "GoogleCloudSecuritycenterV1MuteConfig" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + } + } + }, + "muteConfigs": { + "methods": { + "create": { + "description": "Creates a mute config.", + "flatPath": "v1/projects/{projectsId}/muteConfigs", + "httpMethod": "POST", "id": "securitycenter.projects.muteConfigs.create", "parameterOrder": [ "parent" @@ -4689,7 +5399,7 @@ "type": "string" }, "updateMask": { - "description": "The list of fields to update.", + "description": "The list of fields to be updated. The only fields that can be updated are `enablement_state` and `custom_config`. If empty or set to the wildcard value `*`, both `enablement_state` and `custom_config` are updated.", "format": "google-fieldmask", "location": "query", "type": "string" @@ -4716,7 +5426,7 @@ ], "parameters": { "parent": { - "description": "Required. The relative resource name of the organization, project, or folder. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name An example is: \"organizations/{organization_id}\".", + "description": "Required. The relative resource name of the organization, project, or folder. For more information about relative resource names, see [Relative Resource Name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) Example: `organizations/{organization_id}`", "location": "path", "pattern": "^projects/[^/]+/securityHealthAnalyticsSettings$", "required": true, @@ -5204,6 +5914,21 @@ }, "type": "object" }, + "Application": { + "description": "Represents an application associated with a finding.", + "id": "Application", + "properties": { + "baseUri": { + "description": "The base URI that identifies the network location of the application in which the vulnerability was detected. For example, `http://example.com`.", + "type": "string" + }, + "fullUri": { + "description": "The full URI with payload that can be used to reproduce the vulnerability. For example, `http://example.com?p=aMmYgI6H`.", + "type": "string" + } + }, + "type": "object" + }, "Asset": { "description": "Security Command Center representation of a Google Cloud resource. The Asset is a Security Command Center resource that captures information about a single Google Cloud resource. All modifications to an Asset are only within the context of Security Command Center and don't affect the referenced Google Cloud resource.", "id": "Asset", @@ -5288,7 +6013,7 @@ "id": "AttackExposure", "properties": { "attackExposureResult": { - "description": "The resource name of the attack path simulation result that contains the details regarding this attack exposure score. Example: organizations/123/attackExposureResults/456", + "description": "The resource name of the attack path simulation result that contains the details regarding this attack exposure score. Example: organizations/123/simulations/456/attackExposureResults/789", "type": "string" }, "exposedHighValueResourcesCount": { @@ -5502,6 +6227,63 @@ }, "type": "object" }, + "BackupDisasterRecovery": { + "description": "Information related to Google Cloud Backup and DR Service findings.", + "id": "BackupDisasterRecovery", + "properties": { + "appliance": { + "description": "The name of the Backup and DR appliance that captures, moves, and manages the lifecycle of backup data. For example, `backup-server-57137`.", + "type": "string" + }, + "applications": { + "description": "The names of Backup and DR applications. An application is a VM, database, or file system on a managed host monitored by a backup and recovery appliance. For example, `centos7-01-vol00`, `centos7-01-vol01`, `centos7-01-vol02`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "backupCreateTime": { + "description": "The timestamp at which the Backup and DR backup was created.", + "format": "google-datetime", + "type": "string" + }, + "backupTemplate": { + "description": "The name of a Backup and DR template which comprises one or more backup policies. See the [Backup and DR documentation](https://cloud.google.com/backup-disaster-recovery/docs/concepts/backup-plan#temp) for more information. For example, `snap-ov`.", + "type": "string" + }, + "backupType": { + "description": "The backup type of the Backup and DR image. For example, `Snapshot`, `Remote Snapshot`, `OnVault`.", + "type": "string" + }, + "host": { + "description": "The name of a Backup and DR host, which is managed by the backup and recovery appliance and known to the management console. The host can be of type Generic (for example, Compute Engine, SQL Server, Oracle DB, SMB file system, etc.), vCenter, or an ESX server. See the [Backup and DR documentation on hosts](https://cloud.google.com/backup-disaster-recovery/docs/configuration/manage-hosts-and-their-applications) for more information. For example, `centos7-01`.", + "type": "string" + }, + "policies": { + "description": "The names of Backup and DR policies that are associated with a template and that define when to run a backup, how frequently to run a backup, and how long to retain the backup image. For example, `onvaults`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "policyOptions": { + "description": "The names of Backup and DR advanced policy options of a policy applying to an application. See the [Backup and DR documentation on policy options](https://cloud.google.com/backup-disaster-recovery/docs/create-plan/policy-settings). For example, `skipofflineappsincongrp, nounmap`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "profile": { + "description": "The name of the Backup and DR resource profile that specifies the storage media for backups of application and VM data. See the [Backup and DR documentation on profiles](https://cloud.google.com/backup-disaster-recovery/docs/concepts/backup-plan#profile). For example, `GCP`.", + "type": "string" + }, + "storagePool": { + "description": "The name of the Backup and DR storage pool that the backup and recovery appliance is storing data in. The storage pool could be of type Cloud, Primary, Snapshot, or OnVault. See the [Backup and DR documentation on storage pools](https://cloud.google.com/backup-disaster-recovery/docs/concepts/storage-pools). For example, `DiskPoolOne`.", + "type": "string" + } + }, + "type": "object" + }, "BatchCreateResourceValueConfigsRequest": { "description": "Request message to create multiple resource value configs", "id": "BatchCreateResourceValueConfigsRequest", @@ -5539,14 +6321,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -5663,6 +6445,47 @@ }, "type": "object" }, + "ComplianceSnapshot": { + "description": "Result containing the properties and count of a ComplianceSnapshot request.", + "id": "ComplianceSnapshot", + "properties": { + "category": { + "description": "The category of Findings matching.", + "type": "string" + }, + "complianceStandard": { + "description": "The compliance standard (ie CIS).", + "type": "string" + }, + "complianceVersion": { + "description": "The compliance version (ie 1.3) in CIS 1.3.", + "type": "string" + }, + "count": { + "description": "Total count of findings for the given properties.", + "format": "int64", + "type": "string" + }, + "leafContainerResource": { + "description": "The leaf container resource name that is closest to the snapshot.", + "type": "string" + }, + "name": { + "description": "The compliance snapshot name. Format: //sources//complianceSnapshots/", + "type": "string" + }, + "projectDisplayName": { + "description": "The CRM resource display name that is closest to the snapshot the Findings belong to.", + "type": "string" + }, + "snapshotTime": { + "description": "The snapshot time of the snapshot.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "Connection": { "description": "Contains information about the IP connection associated with the finding.", "id": "Connection", @@ -5816,16 +6639,58 @@ "type": "object" }, "Cve": { - "description": "CVE stands for Common Vulnerabilities and Exposures. More information: https://cve.mitre.org", + "description": "CVE stands for Common Vulnerabilities and Exposures. Information from the [CVE record](https://www.cve.org/ResourcesSupport/Glossary) that describes this vulnerability.", "id": "Cve", "properties": { "cvssv3": { "$ref": "Cvssv3", "description": "Describe Common Vulnerability Scoring System specified at https://www.first.org/cvss/v3.1/specification-document" }, - "id": { - "description": "The unique identifier for the vulnerability. e.g. CVE-2021-34527", - "type": "string" + "exploitationActivity": { + "description": "The exploitation activity of the vulnerability in the wild.", + "enum": [ + "EXPLOITATION_ACTIVITY_UNSPECIFIED", + "WIDE", + "CONFIRMED", + "AVAILABLE", + "ANTICIPATED", + "NO_KNOWN" + ], + "enumDescriptions": [ + "Invalid or empty value.", + "Exploitation has been reported or confirmed to widely occur.", + "Limited reported or confirmed exploitation activities.", + "Exploit is publicly available.", + "No known exploitation activity, but has a high potential for exploitation.", + "No known exploitation activity." + ], + "type": "string" + }, + "id": { + "description": "The unique identifier for the vulnerability. e.g. CVE-2021-34527", + "type": "string" + }, + "impact": { + "description": "The potential impact of the vulnerability if it was to be exploited.", + "enum": [ + "RISK_RATING_UNSPECIFIED", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "enumDescriptions": [ + "Invalid or empty value.", + "Exploitation would have little to no security impact.", + "Exploitation would enable attackers to perform activities, or could allow attackers to have a direct impact, but would require additional steps.", + "Exploitation would enable attackers to have a notable direct impact without needing to overcome any major mitigating factors.", + "Exploitation would fundamentally undermine the security of affected systems, enable actors to perform significant attacks with minimal effort, with little to no mitigating factors to overcome." + ], + "type": "string" + }, + "observedInTheWild": { + "description": "Whether or not the vulnerability has been observed in the wild.", + "type": "boolean" }, "references": { "description": "Additional information about the CVE. e.g. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-34527", @@ -5837,6 +6702,10 @@ "upstreamFixAvailable": { "description": "Whether upstream fix is available for the CVE.", "type": "boolean" + }, + "zeroDay": { + "description": "Whether or not the vulnerability was zero day when the finding was published.", + "type": "boolean" } }, "type": "object" @@ -6027,6 +6896,72 @@ }, "type": "object" }, + "DiskPath": { + "description": "Path of the file in terms of underlying disk/partition identifiers.", + "id": "DiskPath", + "properties": { + "partitionUuid": { + "description": "UUID of the partition (format https://wiki.archlinux.org/title/persistent_block_device_naming#by-uuid)", + "type": "string" + }, + "relativePath": { + "description": "Relative path of the file in the partition as a JSON encoded string. Example: /home/user1/executable_file.sh", + "type": "string" + } + }, + "type": "object" + }, + "EffectiveEventThreatDetectionCustomModule": { + "description": "An EffectiveEventThreatDetectionCustomModule is the representation of an Event Threat Detection custom module at a specified level of the resource hierarchy: organization, folder, or project. If a custom module is inherited from a parent organization or folder, the value of the `enablement_state` property in EffectiveEventThreatDetectionCustomModule is set to the value that is effective in the parent, instead of `INHERITED`. For example, if the module is enabled in a parent organization or folder, the effective `enablement_state` for the module in all child folders or projects is also `enabled`. EffectiveEventThreatDetectionCustomModule is read-only.", + "id": "EffectiveEventThreatDetectionCustomModule", + "properties": { + "config": { + "additionalProperties": { + "description": "Properties of the object.", + "type": "any" + }, + "description": "Output only. Config for the effective module.", + "readOnly": true, + "type": "object" + }, + "description": { + "description": "Output only. The description for the module.", + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "Output only. The human readable name to be displayed for the module.", + "readOnly": true, + "type": "string" + }, + "enablementState": { + "description": "Output only. The effective state of enablement for the module at the given level of the hierarchy.", + "enum": [ + "ENABLEMENT_STATE_UNSPECIFIED", + "ENABLED", + "DISABLED" + ], + "enumDescriptions": [ + "Unspecified enablement state.", + "The module is enabled at the given level.", + "The module is disabled at the given level." + ], + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. The resource name of the effective ETD custom module. Its format is: * \"organizations/{organization}/eventThreatDetectionSettings/effectiveCustomModules/{module}\". * \"folders/{folder}/eventThreatDetectionSettings/effectiveCustomModules/{module}\". * \"projects/{project}/eventThreatDetectionSettings/effectiveCustomModules/{module}\".", + "readOnly": true, + "type": "string" + }, + "type": { + "description": "Output only. Type for the module. e.g. CONFIGURABLE_BAD_IP.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "Empty": { "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": "Empty", @@ -6049,9 +6984,14 @@ "type": "object" }, "EventThreatDetectionCustomModule": { - "description": "Represents an instance of an Event Threat Detection custom module, including its full module name, display name, enablement state, and last updated time. You can create a custom module at the organization level only.", + "description": "Represents an instance of an Event Threat Detection custom module, including its full module name, display name, enablement state, and last updated time. You can create a custom module at the organization, folder, or project level. Custom modules that you create at the organization or folder level are inherited by child folders and projects.", "id": "EventThreatDetectionCustomModule", "properties": { + "ancestorModule": { + "description": "Output only. The closest ancestor module that this module inherits the enablement state from. The format is the same as the EventThreatDetectionCustomModule resource name.", + "readOnly": true, + "type": "string" + }, "config": { "additionalProperties": { "description": "Properties of the object.", @@ -6073,12 +7013,14 @@ "enum": [ "ENABLEMENT_STATE_UNSPECIFIED", "ENABLED", - "DISABLED" + "DISABLED", + "INHERITED" ], "enumDescriptions": [ "Unspecified enablement state.", "The module is enabled at the given level.", - "The module is disabled at the given level." + "The module is disabled at the given level.", + "When the enablement state is inherited." ], "type": "string" }, @@ -6179,6 +7121,10 @@ "description": "Prefix of the file contents as a JSON-encoded string.", "type": "string" }, + "diskPath": { + "$ref": "DiskPath", + "description": "Path of the file in terms of underlying disk/partition identifiers." + }, "hashedSize": { "description": "The length in bytes of the file prefix that was hashed. If hashed_size == size, any hashes reported represent the entire file.", "format": "int64", @@ -6212,10 +7158,18 @@ "$ref": "Access", "description": "Access details associated with the finding, such as more information on the caller, which method was accessed, and from where." }, + "application": { + "$ref": "Application", + "description": "Represents an application associated with the finding." + }, "attackExposure": { "$ref": "AttackExposure", "description": "The results of an attack path simulation relevant to this finding." }, + "backupDisasterRecovery": { + "$ref": "BackupDisasterRecovery", + "description": "Fields related to Backup and DR findings." + }, "canonicalName": { "description": "The canonical name of the finding. It's either \"organizations/{organization_id}/sources/{source_id}/findings/{finding_id}\", \"folders/{folder_id}/sources/{source_id}/findings/{finding_id}\" or \"projects/{project_number}/sources/{source_id}/findings/{finding_id}\", depending on the closest CRM ancestor of the resource associated with the finding.", "type": "string" @@ -6714,6 +7668,29 @@ }, "type": "array" }, + "caseCloseTime": { + "description": "The time when the case was closed, as reported by the external system.", + "format": "google-datetime", + "type": "string" + }, + "caseCreateTime": { + "description": "The time when the case was created, as reported by the external system.", + "format": "google-datetime", + "type": "string" + }, + "casePriority": { + "description": "The priority of the finding's corresponding case in the external system.", + "type": "string" + }, + "caseSla": { + "description": "The SLA of the finding's corresponding case in the external system.", + "format": "google-datetime", + "type": "string" + }, + "caseUri": { + "description": "The link to the finding's corresponding case in the external system.", + "type": "string" + }, "externalSystemUpdateTime": { "description": "The time when the case was last updated, as reported by the external system.", "format": "google-datetime", @@ -6730,6 +7707,10 @@ "status": { "description": "The most recent status of the finding's corresponding case, as reported by the external system.", "type": "string" + }, + "ticketInfo": { + "$ref": "TicketInfo", + "description": "Information about the ticket, if any, that is being used to track the resolution of the issue that is identified by this finding." } }, "type": "object" @@ -6917,6 +7898,10 @@ "description": "Project or folder to scope this config to. For example, \"project/456\" would apply this config only to resources in \"project/456\" scope will be checked with \"AND\" of other resources.", "type": "string" }, + "sensitiveDataProtectionMapping": { + "$ref": "GoogleCloudSecuritycenterV1SensitiveDataProtectionMapping", + "description": "A mapping of the sensitivity on Sensitive Data Protection finding to resource values. This mapping can only be used in combination with a resource_type that is related to BigQuery, e.g. \"bigquery.googleapis.com/Dataset\"." + }, "tagValues": { "description": "Required. Tag values combined with AND to check against. Values in the form \"tagValues/123\" E.g. [ \"tagValues/123\", \"tagValues/456\", \"tagValues/789\" ] https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing", "items": { @@ -7012,6 +7997,49 @@ }, "type": "object" }, + "GoogleCloudSecuritycenterV1SensitiveDataProtectionMapping": { + "description": "Resource value mapping for Sensitive Data Protection findings. If any of these mappings have a resource value that is not unspecified, the resource_value field will be ignored when reading this configuration.", + "id": "GoogleCloudSecuritycenterV1SensitiveDataProtectionMapping", + "properties": { + "highSensitivityMapping": { + "description": "Resource value mapping for high-sensitivity Sensitive Data Protection findings", + "enum": [ + "RESOURCE_VALUE_UNSPECIFIED", + "HIGH", + "MEDIUM", + "LOW", + "NONE" + ], + "enumDescriptions": [ + "Unspecific value", + "High resource value", + "Medium resource value", + "Low resource value", + "No resource value, e.g. ignore these resources" + ], + "type": "string" + }, + "mediumSensitivityMapping": { + "description": "Resource value mapping for medium-sensitivity Sensitive Data Protection findings", + "enum": [ + "RESOURCE_VALUE_UNSPECIFIED", + "HIGH", + "MEDIUM", + "LOW", + "NONE" + ], + "enumDescriptions": [ + "Unspecific value", + "High resource value", + "Medium resource value", + "Low resource value", + "No resource value, e.g. ignore these resources" + ], + "type": "string" + } + }, + "type": "object" + }, "GoogleCloudSecuritycenterV1beta1RunAssetDiscoveryResponse": { "description": "Response of asset discovery run", "id": "GoogleCloudSecuritycenterV1beta1RunAssetDiscoveryResponse", @@ -7244,119 +8272,2564 @@ }, "type": "object" }, - "GroupAssetsRequest": { - "description": "Request message for grouping by assets.", - "id": "GroupAssetsRequest", + "GoogleCloudSecuritycenterV2Access": { + "description": "Represents an access event.", + "id": "GoogleCloudSecuritycenterV2Access", "properties": { - "compareDuration": { - "description": "When compare_duration is set, the GroupResult's \"state_change\" property is updated to indicate whether the asset was added, removed, or remained present during the compare_duration period of time that precedes the read_time. This is the time between (read_time - compare_duration) and read_time. The state change value is derived based on the presence of the asset at the two points in time. Intermediate state changes between the two times don't affect the result. For example, the results aren't affected if the asset is removed and re-created again. Possible \"state_change\" values when compare_duration is specified: * \"ADDED\": indicates that the asset was not present at the start of compare_duration, but present at reference_time. * \"REMOVED\": indicates that the asset was present at the start of compare_duration, but not present at reference_time. * \"ACTIVE\": indicates that the asset was present at both the start and the end of the time period defined by compare_duration and reference_time. If compare_duration is not specified, then the only possible state_change is \"UNUSED\", which will be the state_change set for all assets present at read_time. If this field is set then `state_change` must be a specified field in `group_by`.", - "format": "google-duration", + "callerIp": { + "description": "Caller's IP address, such as \"1.1.1.1\".", "type": "string" }, - "filter": { - "description": "Expression that defines the filter to apply across assets. The expression is a list of zero or more restrictions combined via logical operators `AND` and `OR`. Parentheses are supported, and `OR` has higher precedence than `AND`. Restrictions have the form ` ` and may have a `-` character in front of them to indicate negation. The fields map to those defined in the Asset resource. Examples include: * name * security_center_properties.resource_name * resource_properties.a_property * security_marks.marks.marka The supported operators are: * `=` for all value types. * `>`, `<`, `>=`, `<=` for integer values. * `:`, meaning substring matching, for strings. The supported value types are: * string literals in quotes. * integer literals without quotes. * boolean literals `true` and `false` without quotes. The following field and operator combinations are supported: * name: `=` * update_time: `=`, `>`, `<`, `>=`, `<=` Usage: This should be milliseconds since epoch or an RFC3339 string. Examples: `update_time = \"2019-06-10T16:07:18-07:00\"` `update_time = 1560208038000` * create_time: `=`, `>`, `<`, `>=`, `<=` Usage: This should be milliseconds since epoch or an RFC3339 string. Examples: `create_time = \"2019-06-10T16:07:18-07:00\"` `create_time = 1560208038000` * iam_policy.policy_blob: `=`, `:` * resource_properties: `=`, `:`, `>`, `<`, `>=`, `<=` * security_marks.marks: `=`, `:` * security_center_properties.resource_name: `=`, `:` * security_center_properties.resource_display_name: `=`, `:` * security_center_properties.resource_type: `=`, `:` * security_center_properties.resource_parent: `=`, `:` * security_center_properties.resource_parent_display_name: `=`, `:` * security_center_properties.resource_project: `=`, `:` * security_center_properties.resource_project_display_name: `=`, `:` * security_center_properties.resource_owners: `=`, `:` For example, `resource_properties.size = 100` is a valid filter string. Use a partial match on the empty string to filter based on a property existing: `resource_properties.my_property : \"\"` Use a negated partial match on the empty string to filter based on a property not existing: `-resource_properties.my_property : \"\"`", - "type": "string" + "callerIpGeo": { + "$ref": "GoogleCloudSecuritycenterV2Geolocation", + "description": "The caller IP's geolocation, which identifies where the call came from." }, - "groupBy": { - "description": "Required. Expression that defines what assets fields to use for grouping. The string value should follow SQL syntax: comma separated list of fields. For example: \"security_center_properties.resource_project,security_center_properties.project\". The following fields are supported when compare_duration is not set: * security_center_properties.resource_project * security_center_properties.resource_project_display_name * security_center_properties.resource_type * security_center_properties.resource_parent * security_center_properties.resource_parent_display_name The following fields are supported when compare_duration is set: * security_center_properties.resource_type * security_center_properties.resource_project_display_name * security_center_properties.resource_parent_display_name", + "methodName": { + "description": "The method that the service account called, e.g. \"SetIamPolicy\".", "type": "string" }, - "pageSize": { - "description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", - "format": "int32", - "type": "integer" - }, - "pageToken": { - "description": "The value returned by the last `GroupAssetsResponse`; indicates that this is a continuation of a prior `GroupAssets` call, and that the system should return the next page of data.", + "principalEmail": { + "description": "Associated email, such as \"foo@google.com\". The email address of the authenticated user or a service account acting on behalf of a third party principal making the request. For third party identity callers, the `principal_subject` field is populated instead of this field. For privacy reasons, the principal email address is sometimes redacted. For more information, see [Caller identities in audit logs](https://cloud.google.com/logging/docs/audit#user-id).", "type": "string" }, - "readTime": { - "description": "Time used as a reference point when filtering assets. The filter is limited to assets existing at the supplied time and their values are those at that specific time. Absence of this field will default to the API's version of NOW.", - "format": "google-datetime", + "principalSubject": { + "description": "A string that represents the principal_subject that is associated with the identity. Unlike `principal_email`, `principal_subject` supports principals that aren't associated with email addresses, such as third party principals. For most identities, the format is `principal://iam.googleapis.com/{identity pool name}/subject/{subject}`. Some GKE identities, such as GKE_WORKLOAD, FREEFORM, and GKE_HUB_WORKLOAD, still use the legacy format `serviceAccount:{identity pool name}[{subject}]`.", "type": "string" - } - }, - "type": "object" - }, - "GroupAssetsResponse": { - "description": "Response message for grouping by assets.", - "id": "GroupAssetsResponse", - "properties": { - "groupByResults": { - "description": "Group results. There exists an element for each existing unique combination of property/values. The element contains a count for the number of times those specific property/values appear.", + }, + "serviceAccountDelegationInfo": { + "description": "The identity delegation history of an authenticated service account that made the request. The `serviceAccountDelegationInfo[]` object contains information about the real authorities that try to access Google Cloud resources by delegating on a service account. When multiple authorities are present, they are guaranteed to be sorted based on the original ordering of the identity delegation events.", "items": { - "$ref": "GroupResult" + "$ref": "GoogleCloudSecuritycenterV2ServiceAccountDelegationInfo" }, "type": "array" }, - "nextPageToken": { - "description": "Token to retrieve the next page of results, or empty if there are no more results.", + "serviceAccountKeyName": { + "description": "The name of the service account key that was used to create or exchange credentials when authenticating the service account that made the request. This is a scheme-less URI full resource name. For example: \"//iam.googleapis.com/projects/{PROJECT_ID}/serviceAccounts/{ACCOUNT}/keys/{key}\". ", "type": "string" }, - "readTime": { - "description": "Time used for executing the groupBy request.", - "format": "google-datetime", + "serviceName": { + "description": "This is the API service that the service account made a call to, e.g. \"iam.googleapis.com\"", "type": "string" }, - "totalSize": { - "description": "The total number of results matching the query.", - "format": "int32", - "type": "integer" + "userAgent": { + "description": "The caller's user agent string associated with the finding.", + "type": "string" + }, + "userAgentFamily": { + "description": "Type of user agent associated with the finding. For example, an operating system shell or an embedded or standalone application.", + "type": "string" + }, + "userName": { + "description": "A string that represents a username. The username provided depends on the type of the finding and is likely not an IAM principal. For example, this can be a system username if the finding is related to a virtual machine, or it can be an application login username.", + "type": "string" } }, "type": "object" }, - "GroupFindingsRequest": { - "description": "Request message for grouping by findings.", - "id": "GroupFindingsRequest", + "GoogleCloudSecuritycenterV2AccessReview": { + "description": "Conveys information about a Kubernetes access review (such as one returned by a [`kubectl auth can-i`](https://kubernetes.io/docs/reference/access-authn-authz/authorization/#checking-api-access) command) that was involved in a finding.", + "id": "GoogleCloudSecuritycenterV2AccessReview", "properties": { - "compareDuration": { - "description": "When compare_duration is set, the GroupResult's \"state_change\" attribute is updated to indicate whether the finding had its state changed, the finding's state remained unchanged, or if the finding was added during the compare_duration period of time that precedes the read_time. This is the time between (read_time - compare_duration) and read_time. The state_change value is derived based on the presence and state of the finding at the two points in time. Intermediate state changes between the two times don't affect the result. For example, the results aren't affected if the finding is made inactive and then active again. Possible \"state_change\" values when compare_duration is specified: * \"CHANGED\": indicates that the finding was present and matched the given filter at the start of compare_duration, but changed its state at read_time. * \"UNCHANGED\": indicates that the finding was present and matched the given filter at the start of compare_duration and did not change state at read_time. * \"ADDED\": indicates that the finding did not match the given filter or was not present at the start of compare_duration, but was present at read_time. * \"REMOVED\": indicates that the finding was present and matched the filter at the start of compare_duration, but did not match the filter at read_time. If compare_duration is not specified, then the only possible state_change is \"UNUSED\", which will be the state_change set for all findings present at read_time. If this field is set then `state_change` must be a specified field in `group_by`.", - "format": "google-duration", + "group": { + "description": "The API group of the resource. \"*\" means all.", "type": "string" }, - "filter": { - "description": "Expression that defines the filter to apply across findings. The expression is a list of one or more restrictions combined via logical operators `AND` and `OR`. Parentheses are supported, and `OR` has higher precedence than `AND`. Restrictions have the form ` ` and may have a `-` character in front of them to indicate negation. Examples include: * name * source_properties.a_property * security_marks.marks.marka The supported operators are: * `=` for all value types. * `>`, `<`, `>=`, `<=` for integer values. * `:`, meaning substring matching, for strings. The supported value types are: * string literals in quotes. * integer literals without quotes. * boolean literals `true` and `false` without quotes. The following field and operator combinations are supported: * name: `=` * parent: `=`, `:` * resource_name: `=`, `:` * state: `=`, `:` * category: `=`, `:` * external_uri: `=`, `:` * event_time: `=`, `>`, `<`, `>=`, `<=` Usage: This should be milliseconds since epoch or an RFC3339 string. Examples: `event_time = \"2019-06-10T16:07:18-07:00\"` `event_time = 1560208038000` * severity: `=`, `:` * workflow_state: `=`, `:` * security_marks.marks: `=`, `:` * source_properties: `=`, `:`, `>`, `<`, `>=`, `<=` For example, `source_properties.size = 100` is a valid filter string. Use a partial match on the empty string to filter based on a property existing: `source_properties.my_property : \"\"` Use a negated partial match on the empty string to filter based on a property not existing: `-source_properties.my_property : \"\"` * resource: * resource.name: `=`, `:` * resource.parent_name: `=`, `:` * resource.parent_display_name: `=`, `:` * resource.project_name: `=`, `:` * resource.project_display_name: `=`, `:` * resource.type: `=`, `:`", + "name": { + "description": "The name of the resource being requested. Empty means all.", "type": "string" }, - "groupBy": { - "description": "Required. Expression that defines what assets fields to use for grouping (including `state_change`). The string value should follow SQL syntax: comma separated list of fields. For example: \"parent,resource_name\". The following fields are supported: * resource_name * category * state * parent * severity The following fields are supported when compare_duration is set: * state_change", + "ns": { + "description": "Namespace of the action being requested. Currently, there is no distinction between no namespace and all namespaces. Both are represented by \"\" (empty).", "type": "string" }, - "pageSize": { - "description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", - "format": "int32", - "type": "integer" + "resource": { + "description": "The optional resource type requested. \"*\" means all.", + "type": "string" }, - "pageToken": { - "description": "The value returned by the last `GroupFindingsResponse`; indicates that this is a continuation of a prior `GroupFindings` call, and that the system should return the next page of data.", + "subresource": { + "description": "The optional subresource type.", "type": "string" }, - "readTime": { - "description": "Time used as a reference point when filtering findings. The filter is limited to findings existing at the supplied time and their values are those at that specific time. Absence of this field will default to the API's version of NOW.", - "format": "google-datetime", + "verb": { + "description": "A Kubernetes resource API verb, like get, list, watch, create, update, delete, proxy. \"*\" means all.", + "type": "string" + }, + "version": { + "description": "The API version of the resource. \"*\" means all.", "type": "string" } }, "type": "object" }, - "GroupFindingsResponse": { - "description": "Response message for group by findings.", - "id": "GroupFindingsResponse", + "GoogleCloudSecuritycenterV2Application": { + "description": "Represents an application associated with a finding.", + "id": "GoogleCloudSecuritycenterV2Application", "properties": { - "groupByResults": { - "description": "Group results. There exists an element for each existing unique combination of property/values. The element contains a count for the number of times those specific property/values appear.", - "items": { - "$ref": "GroupResult" - }, - "type": "array" - }, - "nextPageToken": { - "description": "Token to retrieve the next page of results, or empty if there are no more results.", + "baseUri": { + "description": "The base URI that identifies the network location of the application in which the vulnerability was detected. For example, `http://example.com`.", "type": "string" }, - "readTime": { - "description": "Time used for executing the groupBy request.", + "fullUri": { + "description": "The full URI with payload that could be used to reproduce the vulnerability. For example, `http://example.com?p=aMmYgI6H`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2AttackExposure": { + "description": "An attack exposure contains the results of an attack path simulation run.", + "id": "GoogleCloudSecuritycenterV2AttackExposure", + "properties": { + "attackExposureResult": { + "description": "The resource name of the attack path simulation result that contains the details regarding this attack exposure score. Example: organizations/123/simulations/456/attackExposureResults/789", + "type": "string" + }, + "exposedHighValueResourcesCount": { + "description": "The number of high value resources that are exposed as a result of this finding.", + "format": "int32", + "type": "integer" + }, + "exposedLowValueResourcesCount": { + "description": "The number of high value resources that are exposed as a result of this finding.", + "format": "int32", + "type": "integer" + }, + "exposedMediumValueResourcesCount": { + "description": "The number of medium value resources that are exposed as a result of this finding.", + "format": "int32", + "type": "integer" + }, + "latestCalculationTime": { + "description": "The most recent time the attack exposure was updated on this finding.", + "format": "google-datetime", + "type": "string" + }, + "score": { + "description": "A number between 0 (inclusive) and infinity that represents how important this finding is to remediate. The higher the score, the more important it is to remediate.", + "format": "double", + "type": "number" + }, + "state": { + "description": "Output only. What state this AttackExposure is in. This captures whether or not an attack exposure has been calculated or not.", + "enum": [ + "STATE_UNSPECIFIED", + "CALCULATED", + "NOT_CALCULATED" + ], + "enumDescriptions": [ + "The state is not specified.", + "The attack exposure has been calculated.", + "The attack exposure has not been calculated." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2BackupDisasterRecovery": { + "description": "Information related to Google Cloud Backup and DR Service findings.", + "id": "GoogleCloudSecuritycenterV2BackupDisasterRecovery", + "properties": { + "appliance": { + "description": "The name of the Backup and DR appliance that captures, moves, and manages the lifecycle of backup data. For example, `backup-server-57137`.", + "type": "string" + }, + "applications": { + "description": "The names of Backup and DR applications. An application is a VM, database, or file system on a managed host monitored by a backup and recovery appliance. For example, `centos7-01-vol00`, `centos7-01-vol01`, `centos7-01-vol02`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "backupCreateTime": { + "description": "The timestamp at which the Backup and DR backup was created.", + "format": "google-datetime", + "type": "string" + }, + "backupTemplate": { + "description": "The name of a Backup and DR template which comprises one or more backup policies. See the [Backup and DR documentation](https://cloud.google.com/backup-disaster-recovery/docs/concepts/backup-plan#temp) for more information. For example, `snap-ov`.", + "type": "string" + }, + "backupType": { + "description": "The backup type of the Backup and DR image. For example, `Snapshot`, `Remote Snapshot`, `OnVault`.", + "type": "string" + }, + "host": { + "description": "The name of a Backup and DR host, which is managed by the backup and recovery appliance and known to the management console. The host can be of type Generic (for example, Compute Engine, SQL Server, Oracle DB, SMB file system, etc.), vCenter, or an ESX server. See the [Backup and DR documentation on hosts](https://cloud.google.com/backup-disaster-recovery/docs/configuration/manage-hosts-and-their-applications) for more information. For example, `centos7-01`.", + "type": "string" + }, + "policies": { + "description": "The names of Backup and DR policies that are associated with a template and that define when to run a backup, how frequently to run a backup, and how long to retain the backup image. For example, `onvaults`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "policyOptions": { + "description": "The names of Backup and DR advanced policy options of a policy applying to an application. See the [Backup and DR documentation on policy options](https://cloud.google.com/backup-disaster-recovery/docs/create-plan/policy-settings). For example, `skipofflineappsincongrp, nounmap`.", + "items": { + "type": "string" + }, + "type": "array" + }, + "profile": { + "description": "The name of the Backup and DR resource profile that specifies the storage media for backups of application and VM data. See the [Backup and DR documentation on profiles](https://cloud.google.com/backup-disaster-recovery/docs/concepts/backup-plan#profile). For example, `GCP`.", + "type": "string" + }, + "storagePool": { + "description": "The name of the Backup and DR storage pool that the backup and recovery appliance is storing data in. The storage pool could be of type Cloud, Primary, Snapshot, or OnVault. See the [Backup and DR documentation on storage pools](https://cloud.google.com/backup-disaster-recovery/docs/concepts/storage-pools). For example, `DiskPoolOne`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2BigQueryExport": { + "description": "Configures how to deliver Findings to BigQuery Instance.", + "id": "GoogleCloudSecuritycenterV2BigQueryExport", + "properties": { + "createTime": { + "description": "Output only. The time at which the BigQuery export was created. This field is set by the server and will be ignored if provided on export on creation.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "dataset": { + "description": "The dataset to write findings' updates to. Its format is \"projects/[project_id]/datasets/[bigquery_dataset_id]\". BigQuery Dataset unique ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores (_).", + "type": "string" + }, + "description": { + "description": "The description of the export (max of 1024 characters).", + "type": "string" + }, + "filter": { + "description": "Expression that defines the filter to apply across create/update events of findings. The expression is a list of zero or more restrictions combined via logical operators `AND` and `OR`. Parentheses are supported, and `OR` has higher precedence than `AND`. Restrictions have the form ` ` and may have a `-` character in front of them to indicate negation. The fields map to those defined in the corresponding resource. The supported operators are: * `=` for all value types. * `>`, `<`, `>=`, `<=` for integer values. * `:`, meaning substring matching, for strings. The supported value types are: * string literals in quotes. * integer literals without quotes. * boolean literals `true` and `false` without quotes.", + "type": "string" + }, + "mostRecentEditor": { + "description": "Output only. Email address of the user who last edited the BigQuery export. This field is set by the server and will be ignored if provided on export creation or update.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "The relative resource name of this export. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name. The following list shows some examples: + `organizations/{organization_id}/locations/{location_id}/bigQueryExports/{export_id}` + `folders/{folder_id}/locations/{location_id}/bigQueryExports/{export_id}` + `projects/{project_id}/locations/{location_id}/bigQueryExports/{export_id}` This field is provided in responses, and is ignored when provided in create requests.", + "type": "string" + }, + "principal": { + "description": "Output only. The service account that needs permission to create table and upload data to the BigQuery dataset.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The most recent time at which the BigQuery export was updated. This field is set by the server and will be ignored if provided on export creation or update.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2Binding": { + "description": "Represents a Kubernetes RoleBinding or ClusterRoleBinding.", + "id": "GoogleCloudSecuritycenterV2Binding", + "properties": { + "name": { + "description": "Name for the binding.", + "type": "string" + }, + "ns": { + "description": "Namespace for the binding.", + "type": "string" + }, + "role": { + "$ref": "GoogleCloudSecuritycenterV2Role", + "description": "The Role or ClusterRole referenced by the binding." + }, + "subjects": { + "description": "Represents one or more subjects that are bound to the role. Not always available for PATCH requests.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2Subject" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2BulkMuteFindingsResponse": { + "description": "The response to a BulkMute request. Contains the LRO information.", + "id": "GoogleCloudSecuritycenterV2BulkMuteFindingsResponse", + "properties": {}, + "type": "object" + }, + "GoogleCloudSecuritycenterV2CloudDlpDataProfile": { + "description": "The [data profile](https://cloud.google.com/dlp/docs/data-profiles) associated with the finding.", + "id": "GoogleCloudSecuritycenterV2CloudDlpDataProfile", + "properties": { + "dataProfile": { + "description": "Name of the data profile, for example, `projects/123/locations/europe/tableProfiles/8383929`.", + "type": "string" + }, + "parentType": { + "description": "The resource hierarchy level at which the data profile was generated.", + "enum": [ + "PARENT_TYPE_UNSPECIFIED", + "ORGANIZATION", + "PROJECT" + ], + "enumDescriptions": [ + "Unspecified parent type.", + "Organization-level configurations.", + "Project-level configurations." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2CloudDlpInspection": { + "description": "Details about the Cloud Data Loss Prevention (Cloud DLP) [inspection job](https://cloud.google.com/dlp/docs/concepts-job-triggers) that produced the finding.", + "id": "GoogleCloudSecuritycenterV2CloudDlpInspection", + "properties": { + "fullScan": { + "description": "Whether Cloud DLP scanned the complete resource or a sampled subset.", + "type": "boolean" + }, + "infoType": { + "description": "The type of information (or *[infoType](https://cloud.google.com/dlp/docs/infotypes-reference)*) found, for example, `EMAIL_ADDRESS` or `STREET_ADDRESS`.", + "type": "string" + }, + "infoTypeCount": { + "description": "The number of times Cloud DLP found this infoType within this job and resource.", + "format": "int64", + "type": "string" + }, + "inspectJob": { + "description": "Name of the inspection job, for example, `projects/123/locations/europe/dlpJobs/i-8383929`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2CloudLoggingEntry": { + "description": "Metadata taken from a [Cloud Logging LogEntry](https://cloud.google.com/logging/docs/reference/v2/rest/v2/LogEntry)", + "id": "GoogleCloudSecuritycenterV2CloudLoggingEntry", + "properties": { + "insertId": { + "description": "A unique identifier for the log entry.", + "type": "string" + }, + "logId": { + "description": "The type of the log (part of `log_name`. `log_name` is the resource name of the log to which this log entry belongs). For example: `cloudresourcemanager.googleapis.com/activity` Note that this field is not URL-encoded, unlike in `LogEntry`.", + "type": "string" + }, + "resourceContainer": { + "description": "The organization, folder, or project of the monitored resource that produced this log entry.", + "type": "string" + }, + "timestamp": { + "description": "The time the event described by the log entry occurred.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2Compliance": { + "description": "Contains compliance information about a security standard indicating unmet recommendations.", + "id": "GoogleCloudSecuritycenterV2Compliance", + "properties": { + "ids": { + "description": "Policies within the standard or benchmark, for example, A.12.4.1", + "items": { + "type": "string" + }, + "type": "array" + }, + "standard": { + "description": "Industry-wide compliance standards or benchmarks, such as CIS, PCI, and OWASP.", + "type": "string" + }, + "version": { + "description": "Version of the standard or benchmark, for example, 1.1", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2Connection": { + "description": "Contains information about the IP connection associated with the finding.", + "id": "GoogleCloudSecuritycenterV2Connection", + "properties": { + "destinationIp": { + "description": "Destination IP address. Not present for sockets that are listening and not connected.", + "type": "string" + }, + "destinationPort": { + "description": "Destination port. Not present for sockets that are listening and not connected.", + "format": "int32", + "type": "integer" + }, + "protocol": { + "description": "IANA Internet Protocol Number such as TCP(6) and UDP(17).", + "enum": [ + "PROTOCOL_UNSPECIFIED", + "ICMP", + "TCP", + "UDP", + "GRE", + "ESP" + ], + "enumDescriptions": [ + "Unspecified protocol (not HOPOPT).", + "Internet Control Message Protocol.", + "Transmission Control Protocol.", + "User Datagram Protocol.", + "Generic Routing Encapsulation.", + "Encap Security Payload." + ], + "type": "string" + }, + "sourceIp": { + "description": "Source IP address.", + "type": "string" + }, + "sourcePort": { + "description": "Source port.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2Contact": { + "description": "The email address of a contact.", + "id": "GoogleCloudSecuritycenterV2Contact", + "properties": { + "email": { + "description": "An email address. For example, \"`person123@company.com`\".", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2ContactDetails": { + "description": "Details about specific contacts", + "id": "GoogleCloudSecuritycenterV2ContactDetails", + "properties": { + "contacts": { + "description": "A list of contacts", + "items": { + "$ref": "GoogleCloudSecuritycenterV2Contact" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2Container": { + "description": "Container associated with the finding.", + "id": "GoogleCloudSecuritycenterV2Container", + "properties": { + "createTime": { + "description": "The time that the container was created.", + "format": "google-datetime", + "type": "string" + }, + "imageId": { + "description": "Optional container image ID, if provided by the container runtime. Uniquely identifies the container image launched using a container image digest.", + "type": "string" + }, + "labels": { + "description": "Container labels, as provided by the container runtime.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2Label" + }, + "type": "array" + }, + "name": { + "description": "Name of the container.", + "type": "string" + }, + "uri": { + "description": "Container image URI provided when configuring a pod or container. This string can identify a container image version using mutable tags.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2Cve": { + "description": "CVE stands for Common Vulnerabilities and Exposures. Information from the [CVE record](https://www.cve.org/ResourcesSupport/Glossary) that describes this vulnerability.", + "id": "GoogleCloudSecuritycenterV2Cve", + "properties": { + "cvssv3": { + "$ref": "GoogleCloudSecuritycenterV2Cvssv3", + "description": "Describe Common Vulnerability Scoring System specified at https://www.first.org/cvss/v3.1/specification-document" + }, + "exploitationActivity": { + "description": "The exploitation activity of the vulnerability in the wild.", + "enum": [ + "EXPLOITATION_ACTIVITY_UNSPECIFIED", + "WIDE", + "CONFIRMED", + "AVAILABLE", + "ANTICIPATED", + "NO_KNOWN" + ], + "enumDescriptions": [ + "Invalid or empty value.", + "Exploitation has been reported or confirmed to widely occur.", + "Limited reported or confirmed exploitation activities.", + "Exploit is publicly available.", + "No known exploitation activity, but has a high potential for exploitation.", + "No known exploitation activity." + ], + "type": "string" + }, + "id": { + "description": "The unique identifier for the vulnerability. e.g. CVE-2021-34527", + "type": "string" + }, + "impact": { + "description": "The potential impact of the vulnerability if it was to be exploited.", + "enum": [ + "RISK_RATING_UNSPECIFIED", + "LOW", + "MEDIUM", + "HIGH", + "CRITICAL" + ], + "enumDescriptions": [ + "Invalid or empty value.", + "Exploitation would have little to no security impact.", + "Exploitation would enable attackers to perform activities, or could allow attackers to have a direct impact, but would require additional steps.", + "Exploitation would enable attackers to have a notable direct impact without needing to overcome any major mitigating factors.", + "Exploitation would fundamentally undermine the security of affected systems, enable actors to perform significant attacks with minimal effort, with little to no mitigating factors to overcome." + ], + "type": "string" + }, + "observedInTheWild": { + "description": "Whether or not the vulnerability has been observed in the wild.", + "type": "boolean" + }, + "references": { + "description": "Additional information about the CVE. e.g. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-34527", + "items": { + "$ref": "GoogleCloudSecuritycenterV2Reference" + }, + "type": "array" + }, + "upstreamFixAvailable": { + "description": "Whether upstream fix is available for the CVE.", + "type": "boolean" + }, + "zeroDay": { + "description": "Whether or not the vulnerability was zero day when the finding was published.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2Cvssv3": { + "description": "Common Vulnerability Scoring System version 3.", + "id": "GoogleCloudSecuritycenterV2Cvssv3", + "properties": { + "attackComplexity": { + "description": "This metric describes the conditions beyond the attacker's control that must exist in order to exploit the vulnerability.", + "enum": [ + "ATTACK_COMPLEXITY_UNSPECIFIED", + "ATTACK_COMPLEXITY_LOW", + "ATTACK_COMPLEXITY_HIGH" + ], + "enumDescriptions": [ + "Invalid value.", + "Specialized access conditions or extenuating circumstances do not exist. An attacker can expect repeatable success when attacking the vulnerable component.", + "A successful attack depends on conditions beyond the attacker's control. That is, a successful attack cannot be accomplished at will, but requires the attacker to invest in some measurable amount of effort in preparation or execution against the vulnerable component before a successful attack can be expected." + ], + "type": "string" + }, + "attackVector": { + "description": "Base Metrics Represents the intrinsic characteristics of a vulnerability that are constant over time and across user environments. This metric reflects the context by which vulnerability exploitation is possible.", + "enum": [ + "ATTACK_VECTOR_UNSPECIFIED", + "ATTACK_VECTOR_NETWORK", + "ATTACK_VECTOR_ADJACENT", + "ATTACK_VECTOR_LOCAL", + "ATTACK_VECTOR_PHYSICAL" + ], + "enumDescriptions": [ + "Invalid value.", + "The vulnerable component is bound to the network stack and the set of possible attackers extends beyond the other options listed below, up to and including the entire Internet.", + "The vulnerable component is bound to the network stack, but the attack is limited at the protocol level to a logically adjacent topology.", + "The vulnerable component is not bound to the network stack and the attacker's path is via read/write/execute capabilities.", + "The attack requires the attacker to physically touch or manipulate the vulnerable component." + ], + "type": "string" + }, + "availabilityImpact": { + "description": "This metric measures the impact to the availability of the impacted component resulting from a successfully exploited vulnerability.", + "enum": [ + "IMPACT_UNSPECIFIED", + "IMPACT_HIGH", + "IMPACT_LOW", + "IMPACT_NONE" + ], + "enumDescriptions": [ + "Invalid value.", + "High impact.", + "Low impact.", + "No impact." + ], + "type": "string" + }, + "baseScore": { + "description": "The base score is a function of the base metric scores.", + "format": "double", + "type": "number" + }, + "confidentialityImpact": { + "description": "This metric measures the impact to the confidentiality of the information resources managed by a software component due to a successfully exploited vulnerability.", + "enum": [ + "IMPACT_UNSPECIFIED", + "IMPACT_HIGH", + "IMPACT_LOW", + "IMPACT_NONE" + ], + "enumDescriptions": [ + "Invalid value.", + "High impact.", + "Low impact.", + "No impact." + ], + "type": "string" + }, + "integrityImpact": { + "description": "This metric measures the impact to integrity of a successfully exploited vulnerability.", + "enum": [ + "IMPACT_UNSPECIFIED", + "IMPACT_HIGH", + "IMPACT_LOW", + "IMPACT_NONE" + ], + "enumDescriptions": [ + "Invalid value.", + "High impact.", + "Low impact.", + "No impact." + ], + "type": "string" + }, + "privilegesRequired": { + "description": "This metric describes the level of privileges an attacker must possess before successfully exploiting the vulnerability.", + "enum": [ + "PRIVILEGES_REQUIRED_UNSPECIFIED", + "PRIVILEGES_REQUIRED_NONE", + "PRIVILEGES_REQUIRED_LOW", + "PRIVILEGES_REQUIRED_HIGH" + ], + "enumDescriptions": [ + "Invalid value.", + "The attacker is unauthorized prior to attack, and therefore does not require any access to settings or files of the vulnerable system to carry out an attack.", + "The attacker requires privileges that provide basic user capabilities that could normally affect only settings and files owned by a user. Alternatively, an attacker with Low privileges has the ability to access only non-sensitive resources.", + "The attacker requires privileges that provide significant (e.g., administrative) control over the vulnerable component allowing access to component-wide settings and files." + ], + "type": "string" + }, + "scope": { + "description": "The Scope metric captures whether a vulnerability in one vulnerable component impacts resources in components beyond its security scope.", + "enum": [ + "SCOPE_UNSPECIFIED", + "SCOPE_UNCHANGED", + "SCOPE_CHANGED" + ], + "enumDescriptions": [ + "Invalid value.", + "An exploited vulnerability can only affect resources managed by the same security authority.", + "An exploited vulnerability can affect resources beyond the security scope managed by the security authority of the vulnerable component." + ], + "type": "string" + }, + "userInteraction": { + "description": "This metric captures the requirement for a human user, other than the attacker, to participate in the successful compromise of the vulnerable component.", + "enum": [ + "USER_INTERACTION_UNSPECIFIED", + "USER_INTERACTION_NONE", + "USER_INTERACTION_REQUIRED" + ], + "enumDescriptions": [ + "Invalid value.", + "The vulnerable system can be exploited without interaction from any user.", + "Successful exploitation of this vulnerability requires a user to take some action before the vulnerability can be exploited." + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2Database": { + "description": "Represents database access information, such as queries. A database may be a sub-resource of an instance (as in the case of Cloud SQL instances or Cloud Spanner instances), or the database instance itself. Some database resources might not have the [full resource name](https://google.aip.dev/122#full-resource-names) populated because these resource types, such as Cloud SQL databases, are not yet supported by Cloud Asset Inventory. In these cases only the display name is provided.", + "id": "GoogleCloudSecuritycenterV2Database", + "properties": { + "displayName": { + "description": "The human-readable name of the database that the user connected to.", + "type": "string" + }, + "grantees": { + "description": "The target usernames, roles, or groups of an SQL privilege grant, which is not an IAM policy change.", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "Some database resources may not have the [full resource name](https://google.aip.dev/122#full-resource-names) populated because these resource types are not yet supported by Cloud Asset Inventory (e.g. Cloud SQL databases). In these cases only the display name will be provided. The [full resource name](https://google.aip.dev/122#full-resource-names) of the database that the user connected to, if it is supported by Cloud Asset Inventory.", + "type": "string" + }, + "query": { + "description": "The SQL statement that is associated with the database access.", + "type": "string" + }, + "userName": { + "description": "The username used to connect to the database. The username might not be an IAM principal and does not have a set format.", + "type": "string" + }, + "version": { + "description": "The version of the database, for example, POSTGRES_14. See [the complete list](https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1/SqlDatabaseVersion).", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2Detection": { + "description": "Memory hash detection contributing to the binary family match.", + "id": "GoogleCloudSecuritycenterV2Detection", + "properties": { + "binary": { + "description": "The name of the binary associated with the memory hash signature detection.", + "type": "string" + }, + "percentPagesMatched": { + "description": "The percentage of memory page hashes in the signature that were matched.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2DiskPath": { + "description": "Path of the file in terms of underlying disk/partition identifiers.", + "id": "GoogleCloudSecuritycenterV2DiskPath", + "properties": { + "partitionUuid": { + "description": "UUID of the partition (format https://wiki.archlinux.org/title/persistent_block_device_naming#by-uuid)", + "type": "string" + }, + "relativePath": { + "description": "Relative path of the file in the partition as a JSON encoded string. Example: /home/user1/executable_file.sh", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2EnvironmentVariable": { + "description": "A name-value pair representing an environment variable used in an operating system process.", + "id": "GoogleCloudSecuritycenterV2EnvironmentVariable", + "properties": { + "name": { + "description": "Environment variable name as a JSON encoded string.", + "type": "string" + }, + "val": { + "description": "Environment variable value as a JSON encoded string.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2ExfilResource": { + "description": "Resource where data was exfiltrated from or exfiltrated to.", + "id": "GoogleCloudSecuritycenterV2ExfilResource", + "properties": { + "components": { + "description": "Subcomponents of the asset that was exfiltrated, like URIs used during exfiltration, table names, databases, and filenames. For example, multiple tables might have been exfiltrated from the same Cloud SQL instance, or multiple files might have been exfiltrated from the same Cloud Storage bucket.", + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "description": "The resource's [full resource name](https://cloud.google.com/apis/design/resource_names#full_resource_name).", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2Exfiltration": { + "description": "Exfiltration represents a data exfiltration attempt from one or more sources to one or more targets. The `sources` attribute lists the sources of the exfiltrated data. The `targets` attribute lists the destinations the data was copied to.", + "id": "GoogleCloudSecuritycenterV2Exfiltration", + "properties": { + "sources": { + "description": "If there are multiple sources, then the data is considered \"joined\" between them. For instance, BigQuery can join multiple tables, and each table would be considered a source.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2ExfilResource" + }, + "type": "array" + }, + "targets": { + "description": "If there are multiple targets, each target would get a complete copy of the \"joined\" source data.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2ExfilResource" + }, + "type": "array" + }, + "totalExfiltratedBytes": { + "description": "Total exfiltrated bytes processed for the entire job.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2ExternalSystem": { + "description": "Representation of third party SIEM/SOAR fields within SCC.", + "id": "GoogleCloudSecuritycenterV2ExternalSystem", + "properties": { + "assignees": { + "description": "References primary/secondary etc assignees in the external system.", + "items": { + "type": "string" + }, + "type": "array" + }, + "caseCloseTime": { + "description": "The time when the case was closed, as reported by the external system.", + "format": "google-datetime", + "type": "string" + }, + "caseCreateTime": { + "description": "The time when the case was created, as reported by the external system.", + "format": "google-datetime", + "type": "string" + }, + "casePriority": { + "description": "The priority of the finding's corresponding case in the external system.", + "type": "string" + }, + "caseSla": { + "description": "The SLA of the finding's corresponding case in the external system.", + "format": "google-datetime", + "type": "string" + }, + "caseUri": { + "description": "The link to the finding's corresponding case in the external system.", + "type": "string" + }, + "externalSystemUpdateTime": { + "description": "The time when the case was last updated, as reported by the external system.", + "format": "google-datetime", + "type": "string" + }, + "externalUid": { + "description": "The identifier that's used to track the finding's corresponding case in the external system.", + "type": "string" + }, + "name": { + "description": "Full resource name of the external system. The following list shows some examples: + `organizations/1234/sources/5678/findings/123456/externalSystems/jira` + `organizations/1234/sources/5678/locations/us/findings/123456/externalSystems/jira` + `folders/1234/sources/5678/findings/123456/externalSystems/jira` + `folders/1234/sources/5678/locations/us/findings/123456/externalSystems/jira` + `projects/1234/sources/5678/findings/123456/externalSystems/jira` + `projects/1234/sources/5678/locations/us/findings/123456/externalSystems/jira`", + "type": "string" + }, + "status": { + "description": "The most recent status of the finding's corresponding case, as reported by the external system.", + "type": "string" + }, + "ticketInfo": { + "$ref": "GoogleCloudSecuritycenterV2TicketInfo", + "description": "Information about the ticket, if any, that is being used to track the resolution of the issue that is identified by this finding." + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2File": { + "description": "File information about the related binary/library used by an executable, or the script used by a script interpreter", + "id": "GoogleCloudSecuritycenterV2File", + "properties": { + "contents": { + "description": "Prefix of the file contents as a JSON-encoded string.", + "type": "string" + }, + "diskPath": { + "$ref": "GoogleCloudSecuritycenterV2DiskPath", + "description": "Path of the file in terms of underlying disk/partition identifiers." + }, + "hashedSize": { + "description": "The length in bytes of the file prefix that was hashed. If hashed_size == size, any hashes reported represent the entire file.", + "format": "int64", + "type": "string" + }, + "partiallyHashed": { + "description": "True when the hash covers only a prefix of the file.", + "type": "boolean" + }, + "path": { + "description": "Absolute path of the file as a JSON encoded string.", + "type": "string" + }, + "sha256": { + "description": "SHA256 hash of the first hashed_size bytes of the file encoded as a hex string. If hashed_size == size, sha256 represents the SHA256 hash of the entire file.", + "type": "string" + }, + "size": { + "description": "Size of the file in bytes.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2Finding": { + "description": "Security Command Center finding. A finding is a record of assessment data like security, risk, health, or privacy, that is ingested into Security Command Center for presentation, notification, analysis, policy testing, and enforcement. For example, a cross-site scripting (XSS) vulnerability in an App Engine application is a finding.", + "id": "GoogleCloudSecuritycenterV2Finding", + "properties": { + "access": { + "$ref": "GoogleCloudSecuritycenterV2Access", + "description": "Access details associated with the finding, such as more information on the caller, which method was accessed, and from where." + }, + "application": { + "$ref": "GoogleCloudSecuritycenterV2Application", + "description": "Represents an application associated with the finding." + }, + "attackExposure": { + "$ref": "GoogleCloudSecuritycenterV2AttackExposure", + "description": "The results of an attack path simulation relevant to this finding." + }, + "backupDisasterRecovery": { + "$ref": "GoogleCloudSecuritycenterV2BackupDisasterRecovery", + "description": "Fields related to Backup and DR findings." + }, + "canonicalName": { + "description": "Output only. The canonical name of the finding. The following list shows some examples: + `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}` + `organizations/{organization_id}/sources/{source_id}/locations/{location_id}/findings/{finding_id}` + `folders/{folder_id}/sources/{source_id}/findings/{finding_id}` + `folders/{folder_id}/sources/{source_id}/locations/{location_id}/findings/{finding_id}` + `projects/{project_id}/sources/{source_id}/findings/{finding_id}` + `projects/{project_id}/sources/{source_id}/locations/{location_id}/findings/{finding_id}` The prefix is the closest CRM ancestor of the resource associated with the finding.", + "readOnly": true, + "type": "string" + }, + "category": { + "description": "Immutable. The additional taxonomy group within findings from a given source. Example: \"XSS_FLASH_INJECTION\"", + "type": "string" + }, + "cloudDlpDataProfile": { + "$ref": "GoogleCloudSecuritycenterV2CloudDlpDataProfile", + "description": "Cloud DLP data profile that is associated with the finding." + }, + "cloudDlpInspection": { + "$ref": "GoogleCloudSecuritycenterV2CloudDlpInspection", + "description": "Cloud Data Loss Prevention (Cloud DLP) inspection results that are associated with the finding." + }, + "compliances": { + "description": "Contains compliance information for security standards associated to the finding.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2Compliance" + }, + "type": "array" + }, + "connections": { + "description": "Contains information about the IP connection associated with the finding.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2Connection" + }, + "type": "array" + }, + "contacts": { + "additionalProperties": { + "$ref": "GoogleCloudSecuritycenterV2ContactDetails" + }, + "description": "Output only. Map containing the points of contact for the given finding. The key represents the type of contact, while the value contains a list of all the contacts that pertain. Please refer to: https://cloud.google.com/resource-manager/docs/managing-notification-contacts#notification-categories { \"security\": { \"contacts\": [ { \"email\": \"person1@company.com\" }, { \"email\": \"person2@company.com\" } ] } }", + "readOnly": true, + "type": "object" + }, + "containers": { + "description": "Containers associated with the finding. This field provides information for both Kubernetes and non-Kubernetes containers.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2Container" + }, + "type": "array" + }, + "createTime": { + "description": "Output only. The time at which the finding was created in Security Command Center.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "database": { + "$ref": "GoogleCloudSecuritycenterV2Database", + "description": "Database associated with the finding." + }, + "description": { + "description": "Contains more details about the finding.", + "type": "string" + }, + "eventTime": { + "description": "The time the finding was first detected. If an existing finding is updated, then this is the time the update occurred. For example, if the finding represents an open firewall, this property captures the time the detector believes the firewall became open. The accuracy is determined by the detector. If the finding is later resolved, then this time reflects when the finding was resolved. This must not be set to a value greater than the current timestamp.", + "format": "google-datetime", + "type": "string" + }, + "exfiltration": { + "$ref": "GoogleCloudSecuritycenterV2Exfiltration", + "description": "Represents exfiltrations associated with the finding." + }, + "externalSystems": { + "additionalProperties": { + "$ref": "GoogleCloudSecuritycenterV2ExternalSystem" + }, + "description": "Output only. Third party SIEM/SOAR fields within SCC, contains external system information and external system finding fields.", + "readOnly": true, + "type": "object" + }, + "externalUri": { + "description": "The URI that, if available, points to a web page outside of Security Command Center where additional information about the finding can be found. This field is guaranteed to be either empty or a well formed URL.", + "type": "string" + }, + "files": { + "description": "File associated with the finding.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2File" + }, + "type": "array" + }, + "findingClass": { + "description": "The class of the finding.", + "enum": [ + "FINDING_CLASS_UNSPECIFIED", + "THREAT", + "VULNERABILITY", + "MISCONFIGURATION", + "OBSERVATION", + "SCC_ERROR", + "POSTURE_VIOLATION" + ], + "enumDescriptions": [ + "Unspecified finding class.", + "Describes unwanted or malicious activity.", + "Describes a potential weakness in software that increases risk to Confidentiality & Integrity & Availability.", + "Describes a potential weakness in cloud resource/asset configuration that increases risk.", + "Describes a security observation that is for informational purposes.", + "Describes an error that prevents some SCC functionality.", + "Describes a potential security risk due to a change in the security posture." + ], + "type": "string" + }, + "iamBindings": { + "description": "Represents IAM bindings associated with the finding.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2IamBinding" + }, + "type": "array" + }, + "indicator": { + "$ref": "GoogleCloudSecuritycenterV2Indicator", + "description": "Represents what's commonly known as an *indicator of compromise* (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. For more information, see [Indicator of compromise](https://en.wikipedia.org/wiki/Indicator_of_compromise)." + }, + "kernelRootkit": { + "$ref": "GoogleCloudSecuritycenterV2KernelRootkit", + "description": "Signature of the kernel rootkit." + }, + "kubernetes": { + "$ref": "GoogleCloudSecuritycenterV2Kubernetes", + "description": "Kubernetes resources associated with the finding." + }, + "loadBalancers": { + "description": "The load balancers associated with the finding.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2LoadBalancer" + }, + "type": "array" + }, + "logEntries": { + "description": "Log entries that are relevant to the finding.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2LogEntry" + }, + "type": "array" + }, + "mitreAttack": { + "$ref": "GoogleCloudSecuritycenterV2MitreAttack", + "description": "MITRE ATT&CK tactics and techniques related to this finding. See: https://attack.mitre.org" + }, + "moduleName": { + "description": "Unique identifier of the module which generated the finding. Example: folders/598186756061/securityHealthAnalyticsSettings/customModules/56799441161885", + "type": "string" + }, + "mute": { + "description": "Indicates the mute state of a finding (either muted, unmuted or undefined). Unlike other attributes of a finding, a finding provider shouldn't set the value of mute.", + "enum": [ + "MUTE_UNSPECIFIED", + "MUTED", + "UNMUTED", + "UNDEFINED" + ], + "enumDescriptions": [ + "Unspecified.", + "Finding has been muted.", + "Finding has been unmuted.", + "Finding has never been muted/unmuted." + ], + "type": "string" + }, + "muteInitiator": { + "description": "Records additional information about the mute operation, for example, the [mute configuration](https://cloud.google.com/security-command-center/docs/how-to-mute-findings) that muted the finding and the user who muted the finding.", + "type": "string" + }, + "muteUpdateTime": { + "description": "Output only. The most recent time this finding was muted or unmuted.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "The [relative resource name](https://cloud.google.com/apis/design/resource_names#relative_resource_name) of the finding. The following list shows some examples: + `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}` + `organizations/{organization_id}/sources/{source_id}/locations/{location_id}/findings/{finding_id}` + `folders/{folder_id}/sources/{source_id}/findings/{finding_id}` + `folders/{folder_id}/sources/{source_id}/locations/{location_id}/findings/{finding_id}` + `projects/{project_id}/sources/{source_id}/findings/{finding_id}` + `projects/{project_id}/sources/{source_id}/locations/{location_id}/findings/{finding_id}`", + "type": "string" + }, + "nextSteps": { + "description": "Steps to address the finding.", + "type": "string" + }, + "orgPolicies": { + "description": "Contains information about the org policies associated with the finding.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2OrgPolicy" + }, + "type": "array" + }, + "parent": { + "description": "The relative resource name of the source and location the finding belongs to. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name This field is immutable after creation time. The following list shows some examples: + `organizations/{organization_id}/sources/{source_id}` + `folders/{folders_id}/sources/{source_id}` + `projects/{projects_id}/sources/{source_id}` + `organizations/{organization_id}/sources/{source_id}/locations/{location_id}` + `folders/{folders_id}/sources/{source_id}/locations/{location_id}` + `projects/{projects_id}/sources/{source_id}/locations/{location_id}`", + "type": "string" + }, + "parentDisplayName": { + "description": "Output only. The human readable display name of the finding source such as \"Event Threat Detection\" or \"Security Health Analytics\".", + "readOnly": true, + "type": "string" + }, + "processes": { + "description": "Represents operating system processes associated with the Finding.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2Process" + }, + "type": "array" + }, + "resourceName": { + "description": "Immutable. For findings on Google Cloud resources, the full resource name of the Google Cloud resource this finding is for. See: https://cloud.google.com/apis/design/resource_names#full_resource_name When the finding is for a non-Google Cloud resource, the resourceName can be a customer or partner defined string.", + "type": "string" + }, + "securityMarks": { + "$ref": "GoogleCloudSecuritycenterV2SecurityMarks", + "description": "Output only. User specified security marks. These marks are entirely managed by the user and come from the SecurityMarks resource that belongs to the finding.", + "readOnly": true + }, + "securityPosture": { + "$ref": "GoogleCloudSecuritycenterV2SecurityPosture", + "description": "The security posture associated with the finding." + }, + "severity": { + "description": "The severity of the finding. This field is managed by the source that writes the finding.", + "enum": [ + "SEVERITY_UNSPECIFIED", + "CRITICAL", + "HIGH", + "MEDIUM", + "LOW" + ], + "enumDescriptions": [ + "This value is used for findings when a source doesn't write a severity value.", + "Vulnerability: A critical vulnerability is easily discoverable by an external actor, exploitable, and results in the direct ability to execute arbitrary code, exfiltrate data, and otherwise gain additional access and privileges to cloud resources and workloads. Examples include publicly accessible unprotected user data and public SSH access with weak or no passwords. Threat: Indicates a threat that is able to access, modify, or delete data or execute unauthorized code within existing resources.", + "Vulnerability: A high risk vulnerability can be easily discovered and exploited in combination with other vulnerabilities in order to gain direct access and the ability to execute arbitrary code, exfiltrate data, and otherwise gain additional access and privileges to cloud resources and workloads. An example is a database with weak or no passwords that is only accessible internally. This database could easily be compromised by an actor that had access to the internal network. Threat: Indicates a threat that is able to create new computational resources in an environment but not able to access data or execute code in existing resources.", + "Vulnerability: A medium risk vulnerability could be used by an actor to gain access to resources or privileges that enable them to eventually (through multiple steps or a complex exploit) gain access and the ability to execute arbitrary code or exfiltrate data. An example is a service account with access to more projects than it should have. If an actor gains access to the service account, they could potentially use that access to manipulate a project the service account was not intended to. Threat: Indicates a threat that is able to cause operational impact but may not access data or execute unauthorized code.", + "Vulnerability: A low risk vulnerability hampers a security organization's ability to detect vulnerabilities or active threats in their deployment, or prevents the root cause investigation of security issues. An example is monitoring and logs being disabled for resource configurations and access. Threat: Indicates a threat that has obtained minimal access to an environment but is not able to access data, execute code, or create resources." + ], + "type": "string" + }, + "sourceProperties": { + "additionalProperties": { + "type": "any" + }, + "description": "Source specific properties. These properties are managed by the source that writes the finding. The key names in the source_properties map must be between 1 and 255 characters, and must start with a letter and contain alphanumeric characters or underscores only.", + "type": "object" + }, + "state": { + "description": "Output only. The state of the finding.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "INACTIVE" + ], + "enumDescriptions": [ + "Unspecified state.", + "The finding requires attention and has not been addressed yet.", + "The finding has been fixed, triaged as a non-issue or otherwise addressed and is no longer active." + ], + "readOnly": true, + "type": "string" + }, + "vulnerability": { + "$ref": "GoogleCloudSecuritycenterV2Vulnerability", + "description": "Represents vulnerability-specific fields like CVE and CVSS scores. CVE stands for Common Vulnerabilities and Exposures (https://cve.mitre.org/about/)" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2Geolocation": { + "description": "Represents a geographical location for a given access.", + "id": "GoogleCloudSecuritycenterV2Geolocation", + "properties": { + "regionCode": { + "description": "A CLDR.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2IamBinding": { + "description": "Represents a particular IAM binding, which captures a member's role addition, removal, or state.", + "id": "GoogleCloudSecuritycenterV2IamBinding", + "properties": { + "action": { + "description": "The action that was performed on a Binding.", + "enum": [ + "ACTION_UNSPECIFIED", + "ADD", + "REMOVE" + ], + "enumDescriptions": [ + "Unspecified.", + "Addition of a Binding.", + "Removal of a Binding." + ], + "type": "string" + }, + "member": { + "description": "A single identity requesting access for a Cloud Platform resource, for example, \"foo@google.com\".", + "type": "string" + }, + "role": { + "description": "Role that is assigned to \"members\". For example, \"roles/viewer\", \"roles/editor\", or \"roles/owner\".", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2Indicator": { + "description": "Represents what's commonly known as an _indicator of compromise_ (IoC) in computer forensics. This is an artifact observed on a network or in an operating system that, with high confidence, indicates a computer intrusion. For more information, see [Indicator of compromise](https://en.wikipedia.org/wiki/Indicator_of_compromise).", + "id": "GoogleCloudSecuritycenterV2Indicator", + "properties": { + "domains": { + "description": "List of domains associated to the Finding.", + "items": { + "type": "string" + }, + "type": "array" + }, + "ipAddresses": { + "description": "The list of IP addresses that are associated with the finding.", + "items": { + "type": "string" + }, + "type": "array" + }, + "signatures": { + "description": "The list of matched signatures indicating that the given process is present in the environment.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2ProcessSignature" + }, + "type": "array" + }, + "uris": { + "description": "The list of URIs associated to the Findings.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2KernelRootkit": { + "description": "Kernel mode rootkit signatures.", + "id": "GoogleCloudSecuritycenterV2KernelRootkit", + "properties": { + "name": { + "description": "Rootkit name, when available.", + "type": "string" + }, + "unexpectedCodeModification": { + "description": "True if unexpected modifications of kernel code memory are present.", + "type": "boolean" + }, + "unexpectedFtraceHandler": { + "description": "True if `ftrace` points are present with callbacks pointing to regions that are not in the expected kernel or module code range.", + "type": "boolean" + }, + "unexpectedInterruptHandler": { + "description": "True if interrupt handlers that are are not in the expected kernel or module code regions are present.", + "type": "boolean" + }, + "unexpectedKernelCodePages": { + "description": "True if kernel code pages that are not in the expected kernel or module code regions are present.", + "type": "boolean" + }, + "unexpectedKprobeHandler": { + "description": "True if `kprobe` points are present with callbacks pointing to regions that are not in the expected kernel or module code range.", + "type": "boolean" + }, + "unexpectedProcessesInRunqueue": { + "description": "True if unexpected processes in the scheduler run queue are present. Such processes are in the run queue, but not in the process task list.", + "type": "boolean" + }, + "unexpectedReadOnlyDataModification": { + "description": "True if unexpected modifications of kernel read-only data memory are present.", + "type": "boolean" + }, + "unexpectedSystemCallHandler": { + "description": "True if system call handlers that are are not in the expected kernel or module code regions are present.", + "type": "boolean" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2Kubernetes": { + "description": "Kubernetes-related attributes.", + "id": "GoogleCloudSecuritycenterV2Kubernetes", + "properties": { + "accessReviews": { + "description": "Provides information on any Kubernetes access reviews (privilege checks) relevant to the finding.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2AccessReview" + }, + "type": "array" + }, + "bindings": { + "description": "Provides Kubernetes role binding information for findings that involve [RoleBindings or ClusterRoleBindings](https://cloud.google.com/kubernetes-engine/docs/how-to/role-based-access-control).", + "items": { + "$ref": "GoogleCloudSecuritycenterV2Binding" + }, + "type": "array" + }, + "nodePools": { + "description": "GKE [node pools](https://cloud.google.com/kubernetes-engine/docs/concepts/node-pools) associated with the finding. This field contains node pool information for each node, when it is available.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2NodePool" + }, + "type": "array" + }, + "nodes": { + "description": "Provides Kubernetes [node](https://cloud.google.com/kubernetes-engine/docs/concepts/cluster-architecture#nodes) information.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2Node" + }, + "type": "array" + }, + "objects": { + "description": "Kubernetes objects related to the finding.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2Object" + }, + "type": "array" + }, + "pods": { + "description": "Kubernetes [Pods](https://cloud.google.com/kubernetes-engine/docs/concepts/pod) associated with the finding. This field contains Pod records for each container that is owned by a Pod.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2Pod" + }, + "type": "array" + }, + "roles": { + "description": "Provides Kubernetes role information for findings that involve [Roles or ClusterRoles](https://cloud.google.com/kubernetes-engine/docs/how-to/role-based-access-control).", + "items": { + "$ref": "GoogleCloudSecuritycenterV2Role" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2Label": { + "description": "Represents a generic name-value label. A label has separate name and value fields to support filtering with the `contains()` function. For more information, see [Filtering on array-type fields](https://cloud.google.com/security-command-center/docs/how-to-api-list-findings#array-contains-filtering).", + "id": "GoogleCloudSecuritycenterV2Label", + "properties": { + "name": { + "description": "Name of the label.", + "type": "string" + }, + "value": { + "description": "Value that corresponds to the label's name.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2LoadBalancer": { + "description": "Contains information related to the load balancer associated with the finding.", + "id": "GoogleCloudSecuritycenterV2LoadBalancer", + "properties": { + "name": { + "description": "The name of the load balancer associated with the finding.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2LogEntry": { + "description": "An individual entry in a log.", + "id": "GoogleCloudSecuritycenterV2LogEntry", + "properties": { + "cloudLoggingEntry": { + "$ref": "GoogleCloudSecuritycenterV2CloudLoggingEntry", + "description": "An individual entry in a log stored in Cloud Logging." + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2MemoryHashSignature": { + "description": "A signature corresponding to memory page hashes.", + "id": "GoogleCloudSecuritycenterV2MemoryHashSignature", + "properties": { + "binaryFamily": { + "description": "The binary family.", + "type": "string" + }, + "detections": { + "description": "The list of memory hash detections contributing to the binary family match.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2Detection" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2MitreAttack": { + "description": "MITRE ATT&CK tactics and techniques related to this finding. See: https://attack.mitre.org", + "id": "GoogleCloudSecuritycenterV2MitreAttack", + "properties": { + "additionalTactics": { + "description": "Additional MITRE ATT&CK tactics related to this finding, if any.", + "items": { + "enum": [ + "TACTIC_UNSPECIFIED", + "RECONNAISSANCE", + "RESOURCE_DEVELOPMENT", + "INITIAL_ACCESS", + "EXECUTION", + "PERSISTENCE", + "PRIVILEGE_ESCALATION", + "DEFENSE_EVASION", + "CREDENTIAL_ACCESS", + "DISCOVERY", + "LATERAL_MOVEMENT", + "COLLECTION", + "COMMAND_AND_CONTROL", + "EXFILTRATION", + "IMPACT" + ], + "enumDescriptions": [ + "Unspecified value.", + "TA0043", + "TA0042", + "TA0001", + "TA0002", + "TA0003", + "TA0004", + "TA0005", + "TA0006", + "TA0007", + "TA0008", + "TA0009", + "TA0011", + "TA0010", + "TA0040" + ], + "type": "string" + }, + "type": "array" + }, + "additionalTechniques": { + "description": "Additional MITRE ATT&CK techniques related to this finding, if any, along with any of their respective parent techniques.", + "items": { + "enum": [ + "TECHNIQUE_UNSPECIFIED", + "MASQUERADING", + "MATCH_LEGITIMATE_NAME_OR_LOCATION", + "BOOT_OR_LOGON_INITIALIZATION_SCRIPTS", + "STARTUP_ITEMS", + "NETWORK_SERVICE_DISCOVERY", + "PROCESS_DISCOVERY", + "COMMAND_AND_SCRIPTING_INTERPRETER", + "UNIX_SHELL", + "PERMISSION_GROUPS_DISCOVERY", + "CLOUD_GROUPS", + "APPLICATION_LAYER_PROTOCOL", + "DNS", + "SOFTWARE_DEPLOYMENT_TOOLS", + "VALID_ACCOUNTS", + "DEFAULT_ACCOUNTS", + "LOCAL_ACCOUNTS", + "CLOUD_ACCOUNTS", + "PROXY", + "EXTERNAL_PROXY", + "MULTI_HOP_PROXY", + "ACCOUNT_MANIPULATION", + "ADDITIONAL_CLOUD_CREDENTIALS", + "SSH_AUTHORIZED_KEYS", + "ADDITIONAL_CONTAINER_CLUSTER_ROLES", + "INGRESS_TOOL_TRANSFER", + "NATIVE_API", + "BRUTE_FORCE", + "SHARED_MODULES", + "ACCESS_TOKEN_MANIPULATION", + "TOKEN_IMPERSONATION_OR_THEFT", + "EXPLOIT_PUBLIC_FACING_APPLICATION", + "DOMAIN_POLICY_MODIFICATION", + "DATA_DESTRUCTION", + "SERVICE_STOP", + "INHIBIT_SYSTEM_RECOVERY", + "RESOURCE_HIJACKING", + "NETWORK_DENIAL_OF_SERVICE", + "CLOUD_SERVICE_DISCOVERY", + "STEAL_APPLICATION_ACCESS_TOKEN", + "ACCOUNT_ACCESS_REMOVAL", + "STEAL_WEB_SESSION_COOKIE", + "CREATE_OR_MODIFY_SYSTEM_PROCESS", + "ABUSE_ELEVATION_CONTROL_MECHANISM", + "UNSECURED_CREDENTIALS", + "MODIFY_AUTHENTICATION_PROCESS", + "IMPAIR_DEFENSES", + "DISABLE_OR_MODIFY_TOOLS", + "EXFILTRATION_OVER_WEB_SERVICE", + "EXFILTRATION_TO_CLOUD_STORAGE", + "DYNAMIC_RESOLUTION", + "LATERAL_TOOL_TRANSFER", + "MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE", + "CREATE_SNAPSHOT", + "CLOUD_INFRASTRUCTURE_DISCOVERY", + "OBTAIN_CAPABILITIES", + "ACTIVE_SCANNING", + "SCANNING_IP_BLOCKS", + "CONTAINER_AND_RESOURCE_DISCOVERY" + ], + "enumDescriptions": [ + "Unspecified value.", + "T1036", + "T1036.005", + "T1037", + "T1037.005", + "T1046", + "T1057", + "T1059", + "T1059.004", + "T1069", + "T1069.003", + "T1071", + "T1071.004", + "T1072", + "T1078", + "T1078.001", + "T1078.003", + "T1078.004", + "T1090", + "T1090.002", + "T1090.003", + "T1098", + "T1098.001", + "T1098.004", + "T1098.006", + "T1105", + "T1106", + "T1110", + "T1129", + "T1134", + "T1134.001", + "T1190", + "T1484", + "T1485", + "T1489", + "T1490", + "T1496", + "T1498", + "T1526", + "T1528", + "T1531", + "T1539", + "T1543", + "T1548", + "T1552", + "T1556", + "T1562", + "T1562.001", + "T1567", + "T1567.002", + "T1568", + "T1570", + "T1578", + "T1578.001", + "T1580", + "T1588", + "T1595", + "T1595.001", + "T1613" + ], + "type": "string" + }, + "type": "array" + }, + "primaryTactic": { + "description": "The MITRE ATT&CK tactic most closely represented by this finding, if any.", + "enum": [ + "TACTIC_UNSPECIFIED", + "RECONNAISSANCE", + "RESOURCE_DEVELOPMENT", + "INITIAL_ACCESS", + "EXECUTION", + "PERSISTENCE", + "PRIVILEGE_ESCALATION", + "DEFENSE_EVASION", + "CREDENTIAL_ACCESS", + "DISCOVERY", + "LATERAL_MOVEMENT", + "COLLECTION", + "COMMAND_AND_CONTROL", + "EXFILTRATION", + "IMPACT" + ], + "enumDescriptions": [ + "Unspecified value.", + "TA0043", + "TA0042", + "TA0001", + "TA0002", + "TA0003", + "TA0004", + "TA0005", + "TA0006", + "TA0007", + "TA0008", + "TA0009", + "TA0011", + "TA0010", + "TA0040" + ], + "type": "string" + }, + "primaryTechniques": { + "description": "The MITRE ATT&CK technique most closely represented by this finding, if any. primary_techniques is a repeated field because there are multiple levels of MITRE ATT&CK techniques. If the technique most closely represented by this finding is a sub-technique (e.g. `SCANNING_IP_BLOCKS`), both the sub-technique and its parent technique(s) will be listed (e.g. `SCANNING_IP_BLOCKS`, `ACTIVE_SCANNING`).", + "items": { + "enum": [ + "TECHNIQUE_UNSPECIFIED", + "MASQUERADING", + "MATCH_LEGITIMATE_NAME_OR_LOCATION", + "BOOT_OR_LOGON_INITIALIZATION_SCRIPTS", + "STARTUP_ITEMS", + "NETWORK_SERVICE_DISCOVERY", + "PROCESS_DISCOVERY", + "COMMAND_AND_SCRIPTING_INTERPRETER", + "UNIX_SHELL", + "PERMISSION_GROUPS_DISCOVERY", + "CLOUD_GROUPS", + "APPLICATION_LAYER_PROTOCOL", + "DNS", + "SOFTWARE_DEPLOYMENT_TOOLS", + "VALID_ACCOUNTS", + "DEFAULT_ACCOUNTS", + "LOCAL_ACCOUNTS", + "CLOUD_ACCOUNTS", + "PROXY", + "EXTERNAL_PROXY", + "MULTI_HOP_PROXY", + "ACCOUNT_MANIPULATION", + "ADDITIONAL_CLOUD_CREDENTIALS", + "SSH_AUTHORIZED_KEYS", + "ADDITIONAL_CONTAINER_CLUSTER_ROLES", + "INGRESS_TOOL_TRANSFER", + "NATIVE_API", + "BRUTE_FORCE", + "SHARED_MODULES", + "ACCESS_TOKEN_MANIPULATION", + "TOKEN_IMPERSONATION_OR_THEFT", + "EXPLOIT_PUBLIC_FACING_APPLICATION", + "DOMAIN_POLICY_MODIFICATION", + "DATA_DESTRUCTION", + "SERVICE_STOP", + "INHIBIT_SYSTEM_RECOVERY", + "RESOURCE_HIJACKING", + "NETWORK_DENIAL_OF_SERVICE", + "CLOUD_SERVICE_DISCOVERY", + "STEAL_APPLICATION_ACCESS_TOKEN", + "ACCOUNT_ACCESS_REMOVAL", + "STEAL_WEB_SESSION_COOKIE", + "CREATE_OR_MODIFY_SYSTEM_PROCESS", + "ABUSE_ELEVATION_CONTROL_MECHANISM", + "UNSECURED_CREDENTIALS", + "MODIFY_AUTHENTICATION_PROCESS", + "IMPAIR_DEFENSES", + "DISABLE_OR_MODIFY_TOOLS", + "EXFILTRATION_OVER_WEB_SERVICE", + "EXFILTRATION_TO_CLOUD_STORAGE", + "DYNAMIC_RESOLUTION", + "LATERAL_TOOL_TRANSFER", + "MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE", + "CREATE_SNAPSHOT", + "CLOUD_INFRASTRUCTURE_DISCOVERY", + "OBTAIN_CAPABILITIES", + "ACTIVE_SCANNING", + "SCANNING_IP_BLOCKS", + "CONTAINER_AND_RESOURCE_DISCOVERY" + ], + "enumDescriptions": [ + "Unspecified value.", + "T1036", + "T1036.005", + "T1037", + "T1037.005", + "T1046", + "T1057", + "T1059", + "T1059.004", + "T1069", + "T1069.003", + "T1071", + "T1071.004", + "T1072", + "T1078", + "T1078.001", + "T1078.003", + "T1078.004", + "T1090", + "T1090.002", + "T1090.003", + "T1098", + "T1098.001", + "T1098.004", + "T1098.006", + "T1105", + "T1106", + "T1110", + "T1129", + "T1134", + "T1134.001", + "T1190", + "T1484", + "T1485", + "T1489", + "T1490", + "T1496", + "T1498", + "T1526", + "T1528", + "T1531", + "T1539", + "T1543", + "T1548", + "T1552", + "T1556", + "T1562", + "T1562.001", + "T1567", + "T1567.002", + "T1568", + "T1570", + "T1578", + "T1578.001", + "T1580", + "T1588", + "T1595", + "T1595.001", + "T1613" + ], + "type": "string" + }, + "type": "array" + }, + "version": { + "description": "The MITRE ATT&CK version referenced by the above fields. E.g. \"8\".", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2MuteConfig": { + "description": "A mute config is a Cloud SCC resource that contains the configuration to mute create/update events of findings.", + "id": "GoogleCloudSecuritycenterV2MuteConfig", + "properties": { + "createTime": { + "description": "Output only. The time at which the mute config was created. This field is set by the server and will be ignored if provided on config creation.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "A description of the mute config.", + "type": "string" + }, + "filter": { + "description": "Required. An expression that defines the filter to apply across create/update events of findings. While creating a filter string, be mindful of the scope in which the mute configuration is being created. E.g., If a filter contains project = X but is created under the project = Y scope, it might not match any findings. The following field and operator combinations are supported: * severity: `=`, `:` * category: `=`, `:` * resource.name: `=`, `:` * resource.project_name: `=`, `:` * resource.project_display_name: `=`, `:` * resource.folders.resource_folder: `=`, `:` * resource.parent_name: `=`, `:` * resource.parent_display_name: `=`, `:` * resource.type: `=`, `:` * finding_class: `=`, `:` * indicator.ip_addresses: `=`, `:` * indicator.domains: `=`, `:`", + "type": "string" + }, + "mostRecentEditor": { + "description": "Output only. Email address of the user who last edited the mute config. This field is set by the server and will be ignored if provided on config creation or update.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "This field will be ignored if provided on config creation. The following list shows some examples of the format: + `organizations/{organization}/muteConfigs/{mute_config}` + `organizations/{organization}locations/{location}//muteConfigs/{mute_config}` + `folders/{folder}/muteConfigs/{mute_config}` + `folders/{folder}/locations/{location}/muteConfigs/{mute_config}` + `projects/{project}/muteConfigs/{mute_config}` + `projects/{project}/locations/{location}/muteConfigs/{mute_config}`", + "type": "string" + }, + "type": { + "description": "Required. The type of the mute config, which determines what type of mute state the config affects. Immutable after creation.", + "enum": [ + "MUTE_CONFIG_TYPE_UNSPECIFIED", + "STATIC" + ], + "enumDescriptions": [ + "Unused.", + "A static mute config, which sets the static mute state of future matching findings to muted. Once the static mute state has been set, finding or config modifications will not affect the state." + ], + "type": "string" + }, + "updateTime": { + "description": "Output only. The most recent time at which the mute config was updated. This field is set by the server and will be ignored if provided on config creation or update.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2Node": { + "description": "Kubernetes nodes associated with the finding.", + "id": "GoogleCloudSecuritycenterV2Node", + "properties": { + "name": { + "description": "[Full resource name](https://google.aip.dev/122#full-resource-names) of the Compute Engine VM running the cluster node.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2NodePool": { + "description": "Provides GKE node pool information.", + "id": "GoogleCloudSecuritycenterV2NodePool", + "properties": { + "name": { + "description": "Kubernetes node pool name.", + "type": "string" + }, + "nodes": { + "description": "Nodes associated with the finding.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2Node" + }, + "type": "array" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2NotificationMessage": { + "description": "Cloud SCC's Notification", + "id": "GoogleCloudSecuritycenterV2NotificationMessage", + "properties": { + "finding": { + "$ref": "GoogleCloudSecuritycenterV2Finding", + "description": "If it's a Finding based notification config, this field will be populated." + }, + "notificationConfigName": { + "description": "Name of the notification config that generated current notification.", + "type": "string" + }, + "resource": { + "$ref": "GoogleCloudSecuritycenterV2Resource", + "description": "The Cloud resource tied to this notification's Finding." + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2Object": { + "description": "Kubernetes object related to the finding, uniquely identified by GKNN. Used if the object Kind is not one of Pod, Node, NodePool, Binding, or AccessReview.", + "id": "GoogleCloudSecuritycenterV2Object", + "properties": { + "containers": { + "description": "Pod containers associated with this finding, if any.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2Container" + }, + "type": "array" + }, + "group": { + "description": "Kubernetes object group, such as \"policy.k8s.io/v1\".", + "type": "string" + }, + "kind": { + "description": "Kubernetes object kind, such as \"Namespace\".", + "type": "string" + }, + "name": { + "description": "Kubernetes object name. For details see https://kubernetes.io/docs/concepts/overview/working-with-objects/names/.", + "type": "string" + }, + "ns": { + "description": "Kubernetes object namespace. Must be a valid DNS label. Named \"ns\" to avoid collision with C++ namespace keyword. For details see https://kubernetes.io/docs/tasks/administer-cluster/namespaces/.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2OrgPolicy": { + "description": "Contains information about the org policies associated with the finding.", + "id": "GoogleCloudSecuritycenterV2OrgPolicy", + "properties": { + "name": { + "description": "The resource name of the org policy. Example: \"organizations/{organization_id}/policies/{constraint_name}\"", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2Package": { + "description": "Package is a generic definition of a package.", + "id": "GoogleCloudSecuritycenterV2Package", + "properties": { + "cpeUri": { + "description": "The CPE URI where the vulnerability was detected.", + "type": "string" + }, + "packageName": { + "description": "The name of the package where the vulnerability was detected.", + "type": "string" + }, + "packageType": { + "description": "Type of package, for example, os, maven, or go.", + "type": "string" + }, + "packageVersion": { + "description": "The version of the package.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2Pod": { + "description": "A Kubernetes Pod.", + "id": "GoogleCloudSecuritycenterV2Pod", + "properties": { + "containers": { + "description": "Pod containers associated with this finding, if any.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2Container" + }, + "type": "array" + }, + "labels": { + "description": "Pod labels. For Kubernetes containers, these are applied to the container.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2Label" + }, + "type": "array" + }, + "name": { + "description": "Kubernetes Pod name.", + "type": "string" + }, + "ns": { + "description": "Kubernetes Pod namespace.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2PolicyDriftDetails": { + "description": "The policy field that violates the deployed posture and its expected and detected values.", + "id": "GoogleCloudSecuritycenterV2PolicyDriftDetails", + "properties": { + "detectedValue": { + "description": "The detected value that violates the deployed posture, for example, `false` or `allowed_values={\"projects/22831892\"}`.", + "type": "string" + }, + "expectedValue": { + "description": "The value of this field that was configured in a posture, for example, `true` or `allowed_values={\"projects/29831892\"}`.", + "type": "string" + }, + "field": { + "description": "The name of the updated field, for example constraint.implementation.policy_rules[0].enforce", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2Process": { + "description": "Represents an operating system process.", + "id": "GoogleCloudSecuritycenterV2Process", + "properties": { + "args": { + "description": "Process arguments as JSON encoded strings.", + "items": { + "type": "string" + }, + "type": "array" + }, + "argumentsTruncated": { + "description": "True if `args` is incomplete.", + "type": "boolean" + }, + "binary": { + "$ref": "GoogleCloudSecuritycenterV2File", + "description": "File information for the process executable." + }, + "envVariables": { + "description": "Process environment variables.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2EnvironmentVariable" + }, + "type": "array" + }, + "envVariablesTruncated": { + "description": "True if `env_variables` is incomplete.", + "type": "boolean" + }, + "libraries": { + "description": "File information for libraries loaded by the process.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2File" + }, + "type": "array" + }, + "name": { + "description": "The process name, as displayed in utilities like `top` and `ps`. This name can be accessed through `/proc/[pid]/comm` and changed with `prctl(PR_SET_NAME)`.", + "type": "string" + }, + "parentPid": { + "description": "The parent process ID.", + "format": "int64", + "type": "string" + }, + "pid": { + "description": "The process ID.", + "format": "int64", + "type": "string" + }, + "script": { + "$ref": "GoogleCloudSecuritycenterV2File", + "description": "When the process represents the invocation of a script, `binary` provides information about the interpreter, while `script` provides information about the script file provided to the interpreter." + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2ProcessSignature": { + "description": "Indicates what signature matched this process.", + "id": "GoogleCloudSecuritycenterV2ProcessSignature", + "properties": { + "memoryHashSignature": { + "$ref": "GoogleCloudSecuritycenterV2MemoryHashSignature", + "description": "Signature indicating that a binary family was matched." + }, + "signatureType": { + "description": "Describes the type of resource associated with the signature.", + "enum": [ + "SIGNATURE_TYPE_UNSPECIFIED", + "SIGNATURE_TYPE_PROCESS", + "SIGNATURE_TYPE_FILE" + ], + "enumDescriptions": [ + "The default signature type.", + "Used for signatures concerning processes.", + "Used for signatures concerning disks." + ], + "type": "string" + }, + "yaraRuleSignature": { + "$ref": "GoogleCloudSecuritycenterV2YaraRuleSignature", + "description": "Signature indicating that a YARA rule was matched." + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2Reference": { + "description": "Additional Links", + "id": "GoogleCloudSecuritycenterV2Reference", + "properties": { + "source": { + "description": "Source of the reference e.g. NVD", + "type": "string" + }, + "uri": { + "description": "Uri for the mentioned source e.g. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-34527.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2Resource": { + "description": "Information related to the Google Cloud resource.", + "id": "GoogleCloudSecuritycenterV2Resource", + "properties": { + "displayName": { + "description": "The human readable name of the resource.", + "type": "string" + }, + "name": { + "description": "The full resource name of the resource. See: https://cloud.google.com/apis/design/resource_names#full_resource_name", + "type": "string" + }, + "type": { + "description": "The full resource type of the resource.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2ResourceValueConfig": { + "description": "A resource value config (RVC) is a mapping configuration of user's resources to resource values. Used in Attack path simulations.", + "id": "GoogleCloudSecuritycenterV2ResourceValueConfig", + "properties": { + "createTime": { + "description": "Output only. Timestamp this resource value config was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "description": { + "description": "Description of the resource value config.", + "type": "string" + }, + "name": { + "description": "Name for the resource value config", + "type": "string" + }, + "resourceLabelsSelector": { + "additionalProperties": { + "type": "string" + }, + "description": "List of resource labels to search for, evaluated with AND. E.g. \"resource_labels_selector\": {\"key\": \"value\", \"env\": \"prod\"} will match resources with labels \"key\": \"value\" AND \"env\": \"prod\" https://cloud.google.com/resource-manager/docs/creating-managing-labels", + "type": "object" + }, + "resourceType": { + "description": "Apply resource_value only to resources that match resource_type. resource_type will be checked with \"AND\" of other resources. E.g. \"storage.googleapis.com/Bucket\" with resource_value \"HIGH\" will apply \"HIGH\" value only to \"storage.googleapis.com/Bucket\" resources.", + "type": "string" + }, + "resourceValue": { + "description": "Resource value level this expression represents Only required when there is no SDP mapping in the request", + "enum": [ + "RESOURCE_VALUE_UNSPECIFIED", + "HIGH", + "MEDIUM", + "LOW", + "NONE" + ], + "enumDescriptions": [ + "Unspecific value", + "High resource value", + "Medium resource value", + "Low resource value", + "No resource value, e.g. ignore these resources" + ], + "type": "string" + }, + "scope": { + "description": "Project or folder to scope this config to. For example, \"project/456\" would apply this config only to resources in \"project/456\" scope will be checked with \"AND\" of other resources.", + "type": "string" + }, + "sensitiveDataProtectionMapping": { + "$ref": "GoogleCloudSecuritycenterV2SensitiveDataProtectionMapping", + "description": "A mapping of the sensitivity on Sensitive Data Protection finding to resource values. This mapping can only be used in combination with a resource_type that is related to BigQuery, e.g. \"bigquery.googleapis.com/Dataset\"." + }, + "tagValues": { + "description": "Required. Tag values combined with AND to check against. Values in the form \"tagValues/123\" E.g. [ \"tagValues/123\", \"tagValues/456\", \"tagValues/789\" ] https://cloud.google.com/resource-manager/docs/tags/tags-creating-and-managing", + "items": { + "type": "string" + }, + "type": "array" + }, + "updateTime": { + "description": "Output only. Timestamp this resource value config was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2Role": { + "description": "Kubernetes Role or ClusterRole.", + "id": "GoogleCloudSecuritycenterV2Role", + "properties": { + "kind": { + "description": "Role type.", + "enum": [ + "KIND_UNSPECIFIED", + "ROLE", + "CLUSTER_ROLE" + ], + "enumDescriptions": [ + "Role type is not specified.", + "Kubernetes Role.", + "Kubernetes ClusterRole." + ], + "type": "string" + }, + "name": { + "description": "Role name.", + "type": "string" + }, + "ns": { + "description": "Role namespace.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2SecurityBulletin": { + "description": "SecurityBulletin are notifications of vulnerabilities of Google products.", + "id": "GoogleCloudSecuritycenterV2SecurityBulletin", + "properties": { + "bulletinId": { + "description": "ID of the bulletin corresponding to the vulnerability.", + "type": "string" + }, + "submissionTime": { + "description": "Submission time of this Security Bulletin.", + "format": "google-datetime", + "type": "string" + }, + "suggestedUpgradeVersion": { + "description": "This represents a version that the cluster receiving this notification should be upgraded to, based on its current version. For example, 1.15.0", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2SecurityMarks": { + "description": "User specified security marks that are attached to the parent Security Command Center resource. Security marks are scoped within a Security Command Center organization -- they can be modified and viewed by all users who have proper permissions on the organization.", + "id": "GoogleCloudSecuritycenterV2SecurityMarks", + "properties": { + "canonicalName": { + "description": "The canonical name of the marks. The following list shows some examples: + `organizations/{organization_id}/assets/{asset_id}/securityMarks\" + `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks\" + `organizations/{organization_id}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks\" + `folders/{folder_id}/assets/{asset_id}/securityMarks\" + `folders/{folder_id}/sources/{source_id}/findings/{finding_id}/securityMarks\" + `folders/{folder_id}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks\" + `projects/{project_number}/assets/{asset_id}/securityMarks\" + `projects/{project_number}/sources/{source_id}/findings/{finding_id}/securityMarks\" + `projects/{project_number}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks\"", + "type": "string" + }, + "marks": { + "additionalProperties": { + "type": "string" + }, + "description": "Mutable user specified security marks belonging to the parent resource. Constraints are as follows: * Keys and values are treated as case insensitive * Keys must be between 1 - 256 characters (inclusive) * Keys must be letters, numbers, underscores, or dashes * Values have leading and trailing whitespace trimmed, remaining characters must be between 1 - 4096 characters (inclusive)", + "type": "object" + }, + "name": { + "description": "The relative resource name of the SecurityMarks. See: https://cloud.google.com/apis/design/resource_names#relative_resource_name The following list shows some examples: + `organizations/{organization_id}/assets/{asset_id}/securityMarks` + `organizations/{organization_id}/sources/{source_id}/findings/{finding_id}/securityMarks` + `organizations/{organization_id}/sources/{source_id}/locations/{location}/findings/{finding_id}/securityMarks`", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2SecurityPosture": { + "description": "Represents a posture that is deployed on Google Cloud by the Security Command Center Posture Management service. A posture contains one or more policy sets. A policy set is a group of policies that enforce a set of security rules on Google Cloud.", + "id": "GoogleCloudSecuritycenterV2SecurityPosture", + "properties": { + "changedPolicy": { + "description": "The name of the updated policy, for example, `projects/{project_id}/policies/{constraint_name}`.", + "type": "string" + }, + "name": { + "description": "Name of the posture, for example, `CIS-Posture`.", + "type": "string" + }, + "policy": { + "description": "The ID of the updated policy, for example, `compute-policy-1`.", + "type": "string" + }, + "policyDriftDetails": { + "description": "The details about a change in an updated policy that violates the deployed posture.", + "items": { + "$ref": "GoogleCloudSecuritycenterV2PolicyDriftDetails" + }, + "type": "array" + }, + "policySet": { + "description": "The name of the updated policy set, for example, `cis-policyset`.", + "type": "string" + }, + "postureDeployment": { + "description": "The name of the posture deployment, for example, `organizations/{org_id}/posturedeployments/{posture_deployment_id}`.", + "type": "string" + }, + "postureDeploymentResource": { + "description": "The project, folder, or organization on which the posture is deployed, for example, `projects/{project_number}`.", + "type": "string" + }, + "revisionId": { + "description": "The version of the posture, for example, `c7cfa2a8`.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2SensitiveDataProtectionMapping": { + "description": "Resource value mapping for Sensitive Data Protection findings If any of these mappings have a resource value that is not unspecified, the resource_value field will be ignored when reading this configuration.", + "id": "GoogleCloudSecuritycenterV2SensitiveDataProtectionMapping", + "properties": { + "highSensitivityMapping": { + "description": "Resource value mapping for high-sensitivity Sensitive Data Protection findings", + "enum": [ + "RESOURCE_VALUE_UNSPECIFIED", + "HIGH", + "MEDIUM", + "LOW", + "NONE" + ], + "enumDescriptions": [ + "Unspecific value", + "High resource value", + "Medium resource value", + "Low resource value", + "No resource value, e.g. ignore these resources" + ], + "type": "string" + }, + "mediumSensitivityMapping": { + "description": "Resource value mapping for medium-sensitivity Sensitive Data Protection findings", + "enum": [ + "RESOURCE_VALUE_UNSPECIFIED", + "HIGH", + "MEDIUM", + "LOW", + "NONE" + ], + "enumDescriptions": [ + "Unspecific value", + "High resource value", + "Medium resource value", + "Low resource value", + "No resource value, e.g. ignore these resources" + ], + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2ServiceAccountDelegationInfo": { + "description": "Identity delegation history of an authenticated service account.", + "id": "GoogleCloudSecuritycenterV2ServiceAccountDelegationInfo", + "properties": { + "principalEmail": { + "description": "The email address of a Google account.", + "type": "string" + }, + "principalSubject": { + "description": "A string representing the principal_subject associated with the identity. As compared to `principal_email`, supports principals that aren't associated with email addresses, such as third party principals. For most identities, the format will be `principal://iam.googleapis.com/{identity pool name}/subjects/{subject}` except for some GKE identities (GKE_WORKLOAD, FREEFORM, GKE_HUB_WORKLOAD) that are still in the legacy format `serviceAccount:{identity pool name}[{subject}]`", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2Subject": { + "description": "Represents a Kubernetes subject.", + "id": "GoogleCloudSecuritycenterV2Subject", + "properties": { + "kind": { + "description": "Authentication type for the subject.", + "enum": [ + "AUTH_TYPE_UNSPECIFIED", + "USER", + "SERVICEACCOUNT", + "GROUP" + ], + "enumDescriptions": [ + "Authentication is not specified.", + "User with valid certificate.", + "Users managed by Kubernetes API with credentials stored as secrets.", + "Collection of users." + ], + "type": "string" + }, + "name": { + "description": "Name for the subject.", + "type": "string" + }, + "ns": { + "description": "Namespace for the subject.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2TicketInfo": { + "description": "Information about the ticket, if any, that is being used to track the resolution of the issue that is identified by this finding.", + "id": "GoogleCloudSecuritycenterV2TicketInfo", + "properties": { + "assignee": { + "description": "The assignee of the ticket in the ticket system.", + "type": "string" + }, + "description": { + "description": "The description of the ticket in the ticket system.", + "type": "string" + }, + "id": { + "description": "The identifier of the ticket in the ticket system.", + "type": "string" + }, + "status": { + "description": "The latest status of the ticket, as reported by the ticket system.", + "type": "string" + }, + "updateTime": { + "description": "The time when the ticket was last updated, as reported by the ticket system.", + "format": "google-datetime", + "type": "string" + }, + "uri": { + "description": "The link to the ticket in the ticket system.", + "type": "string" + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2Vulnerability": { + "description": "Refers to common vulnerability fields e.g. cve, cvss, cwe etc.", + "id": "GoogleCloudSecuritycenterV2Vulnerability", + "properties": { + "cve": { + "$ref": "GoogleCloudSecuritycenterV2Cve", + "description": "CVE stands for Common Vulnerabilities and Exposures (https://cve.mitre.org/about/)" + }, + "fixedPackage": { + "$ref": "GoogleCloudSecuritycenterV2Package", + "description": "The fixed package is relevant to the finding." + }, + "offendingPackage": { + "$ref": "GoogleCloudSecuritycenterV2Package", + "description": "The offending package is relevant to the finding." + }, + "securityBulletin": { + "$ref": "GoogleCloudSecuritycenterV2SecurityBulletin", + "description": "The security bulletin is relevant to this finding." + } + }, + "type": "object" + }, + "GoogleCloudSecuritycenterV2YaraRuleSignature": { + "description": "A signature corresponding to a YARA rule.", + "id": "GoogleCloudSecuritycenterV2YaraRuleSignature", + "properties": { + "yaraRule": { + "description": "The name of the YARA rule.", + "type": "string" + } + }, + "type": "object" + }, + "GroupAssetsRequest": { + "description": "Request message for grouping by assets.", + "id": "GroupAssetsRequest", + "properties": { + "compareDuration": { + "description": "When compare_duration is set, the GroupResult's \"state_change\" property is updated to indicate whether the asset was added, removed, or remained present during the compare_duration period of time that precedes the read_time. This is the time between (read_time - compare_duration) and read_time. The state change value is derived based on the presence of the asset at the two points in time. Intermediate state changes between the two times don't affect the result. For example, the results aren't affected if the asset is removed and re-created again. Possible \"state_change\" values when compare_duration is specified: * \"ADDED\": indicates that the asset was not present at the start of compare_duration, but present at reference_time. * \"REMOVED\": indicates that the asset was present at the start of compare_duration, but not present at reference_time. * \"ACTIVE\": indicates that the asset was present at both the start and the end of the time period defined by compare_duration and reference_time. If compare_duration is not specified, then the only possible state_change is \"UNUSED\", which will be the state_change set for all assets present at read_time. If this field is set then `state_change` must be a specified field in `group_by`.", + "format": "google-duration", + "type": "string" + }, + "filter": { + "description": "Expression that defines the filter to apply across assets. The expression is a list of zero or more restrictions combined via logical operators `AND` and `OR`. Parentheses are supported, and `OR` has higher precedence than `AND`. Restrictions have the form ` ` and may have a `-` character in front of them to indicate negation. The fields map to those defined in the Asset resource. Examples include: * name * security_center_properties.resource_name * resource_properties.a_property * security_marks.marks.marka The supported operators are: * `=` for all value types. * `>`, `<`, `>=`, `<=` for integer values. * `:`, meaning substring matching, for strings. The supported value types are: * string literals in quotes. * integer literals without quotes. * boolean literals `true` and `false` without quotes. The following field and operator combinations are supported: * name: `=` * update_time: `=`, `>`, `<`, `>=`, `<=` Usage: This should be milliseconds since epoch or an RFC3339 string. Examples: `update_time = \"2019-06-10T16:07:18-07:00\"` `update_time = 1560208038000` * create_time: `=`, `>`, `<`, `>=`, `<=` Usage: This should be milliseconds since epoch or an RFC3339 string. Examples: `create_time = \"2019-06-10T16:07:18-07:00\"` `create_time = 1560208038000` * iam_policy.policy_blob: `=`, `:` * resource_properties: `=`, `:`, `>`, `<`, `>=`, `<=` * security_marks.marks: `=`, `:` * security_center_properties.resource_name: `=`, `:` * security_center_properties.resource_display_name: `=`, `:` * security_center_properties.resource_type: `=`, `:` * security_center_properties.resource_parent: `=`, `:` * security_center_properties.resource_parent_display_name: `=`, `:` * security_center_properties.resource_project: `=`, `:` * security_center_properties.resource_project_display_name: `=`, `:` * security_center_properties.resource_owners: `=`, `:` For example, `resource_properties.size = 100` is a valid filter string. Use a partial match on the empty string to filter based on a property existing: `resource_properties.my_property : \"\"` Use a negated partial match on the empty string to filter based on a property not existing: `-resource_properties.my_property : \"\"`", + "type": "string" + }, + "groupBy": { + "description": "Required. Expression that defines what assets fields to use for grouping. The string value should follow SQL syntax: comma separated list of fields. For example: \"security_center_properties.resource_project,security_center_properties.project\". The following fields are supported when compare_duration is not set: * security_center_properties.resource_project * security_center_properties.resource_project_display_name * security_center_properties.resource_type * security_center_properties.resource_parent * security_center_properties.resource_parent_display_name The following fields are supported when compare_duration is set: * security_center_properties.resource_type * security_center_properties.resource_project_display_name * security_center_properties.resource_parent_display_name", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", + "format": "int32", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `GroupAssetsResponse`; indicates that this is a continuation of a prior `GroupAssets` call, and that the system should return the next page of data.", + "type": "string" + }, + "readTime": { + "description": "Time used as a reference point when filtering assets. The filter is limited to assets existing at the supplied time and their values are those at that specific time. Absence of this field will default to the API's version of NOW.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "GroupAssetsResponse": { + "description": "Response message for grouping by assets.", + "id": "GroupAssetsResponse", + "properties": { + "groupByResults": { + "description": "Group results. There exists an element for each existing unique combination of property/values. The element contains a count for the number of times those specific property/values appear.", + "items": { + "$ref": "GroupResult" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Token to retrieve the next page of results, or empty if there are no more results.", + "type": "string" + }, + "readTime": { + "description": "Time used for executing the groupBy request.", + "format": "google-datetime", + "type": "string" + }, + "totalSize": { + "description": "The total number of results matching the query.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "GroupFindingsRequest": { + "description": "Request message for grouping by findings.", + "id": "GroupFindingsRequest", + "properties": { + "compareDuration": { + "description": "When compare_duration is set, the GroupResult's \"state_change\" attribute is updated to indicate whether the finding had its state changed, the finding's state remained unchanged, or if the finding was added during the compare_duration period of time that precedes the read_time. This is the time between (read_time - compare_duration) and read_time. The state_change value is derived based on the presence and state of the finding at the two points in time. Intermediate state changes between the two times don't affect the result. For example, the results aren't affected if the finding is made inactive and then active again. Possible \"state_change\" values when compare_duration is specified: * \"CHANGED\": indicates that the finding was present and matched the given filter at the start of compare_duration, but changed its state at read_time. * \"UNCHANGED\": indicates that the finding was present and matched the given filter at the start of compare_duration and did not change state at read_time. * \"ADDED\": indicates that the finding did not match the given filter or was not present at the start of compare_duration, but was present at read_time. * \"REMOVED\": indicates that the finding was present and matched the filter at the start of compare_duration, but did not match the filter at read_time. If compare_duration is not specified, then the only possible state_change is \"UNUSED\", which will be the state_change set for all findings present at read_time. If this field is set then `state_change` must be a specified field in `group_by`.", + "format": "google-duration", + "type": "string" + }, + "filter": { + "description": "Expression that defines the filter to apply across findings. The expression is a list of one or more restrictions combined via logical operators `AND` and `OR`. Parentheses are supported, and `OR` has higher precedence than `AND`. Restrictions have the form ` ` and may have a `-` character in front of them to indicate negation. Examples include: * name * source_properties.a_property * security_marks.marks.marka The supported operators are: * `=` for all value types. * `>`, `<`, `>=`, `<=` for integer values. * `:`, meaning substring matching, for strings. The supported value types are: * string literals in quotes. * integer literals without quotes. * boolean literals `true` and `false` without quotes. The following field and operator combinations are supported: * name: `=` * parent: `=`, `:` * resource_name: `=`, `:` * state: `=`, `:` * category: `=`, `:` * external_uri: `=`, `:` * event_time: `=`, `>`, `<`, `>=`, `<=` Usage: This should be milliseconds since epoch or an RFC3339 string. Examples: `event_time = \"2019-06-10T16:07:18-07:00\"` `event_time = 1560208038000` * severity: `=`, `:` * workflow_state: `=`, `:` * security_marks.marks: `=`, `:` * source_properties: `=`, `:`, `>`, `<`, `>=`, `<=` For example, `source_properties.size = 100` is a valid filter string. Use a partial match on the empty string to filter based on a property existing: `source_properties.my_property : \"\"` Use a negated partial match on the empty string to filter based on a property not existing: `-source_properties.my_property : \"\"` * resource: * resource.name: `=`, `:` * resource.parent_name: `=`, `:` * resource.parent_display_name: `=`, `:` * resource.project_name: `=`, `:` * resource.project_display_name: `=`, `:` * resource.type: `=`, `:`", + "type": "string" + }, + "groupBy": { + "description": "Required. Expression that defines what assets fields to use for grouping (including `state_change`). The string value should follow SQL syntax: comma separated list of fields. For example: \"parent,resource_name\". The following fields are supported: * resource_name * category * state * parent * severity The following fields are supported when compare_duration is set: * state_change", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of results to return in a single response. Default is 10, minimum is 1, maximum is 1000.", + "format": "int32", + "type": "integer" + }, + "pageToken": { + "description": "The value returned by the last `GroupFindingsResponse`; indicates that this is a continuation of a prior `GroupFindings` call, and that the system should return the next page of data.", + "type": "string" + }, + "readTime": { + "description": "Time used as a reference point when filtering findings. The filter is limited to findings existing at the supplied time and their values are those at that specific time. Absence of this field will default to the API's version of NOW.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "GroupFindingsResponse": { + "description": "Response message for group by findings.", + "id": "GroupFindingsResponse", + "properties": { + "groupByResults": { + "description": "Group results. There exists an element for each existing unique combination of property/values. The element contains a count for the number of times those specific property/values appear.", + "items": { + "$ref": "GroupResult" + }, + "type": "array" + }, + "nextPageToken": { + "description": "Token to retrieve the next page of results, or empty if there are no more results.", + "type": "string" + }, + "readTime": { + "description": "Time used for executing the groupBy request.", "format": "google-datetime", "type": "string" }, @@ -7667,6 +11140,24 @@ }, "type": "object" }, + "ListDescendantEventThreatDetectionCustomModulesResponse": { + "description": "Response for listing current and descendant resident Event Threat Detection custom modules.", + "id": "ListDescendantEventThreatDetectionCustomModulesResponse", + "properties": { + "eventThreatDetectionCustomModules": { + "description": "Custom modules belonging to the requested parent.", + "items": { + "$ref": "EventThreatDetectionCustomModule" + }, + "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" + }, "ListDescendantSecurityHealthAnalyticsCustomModulesResponse": { "description": "Response message for listing descendant Security Health Analytics custom modules.", "id": "ListDescendantSecurityHealthAnalyticsCustomModulesResponse", @@ -7685,6 +11176,24 @@ }, "type": "object" }, + "ListEffectiveEventThreatDetectionCustomModulesResponse": { + "description": "Response for listing EffectiveEventThreatDetectionCustomModules.", + "id": "ListEffectiveEventThreatDetectionCustomModulesResponse", + "properties": { + "effectiveEventThreatDetectionCustomModules": { + "description": "Effective custom modules belonging to the requested parent.", + "items": { + "$ref": "EffectiveEventThreatDetectionCustomModule" + }, + "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" + }, "ListEffectiveSecurityHealthAnalyticsCustomModulesResponse": { "description": "Response message for listing effective Security Health Analytics custom modules.", "id": "ListEffectiveSecurityHealthAnalyticsCustomModulesResponse", @@ -8004,81 +11513,125 @@ "items": { "enum": [ "TECHNIQUE_UNSPECIFIED", - "ACTIVE_SCANNING", - "SCANNING_IP_BLOCKS", - "INGRESS_TOOL_TRANSFER", - "NATIVE_API", - "SHARED_MODULES", + "MASQUERADING", + "MATCH_LEGITIMATE_NAME_OR_LOCATION", + "BOOT_OR_LOGON_INITIALIZATION_SCRIPTS", + "STARTUP_ITEMS", + "NETWORK_SERVICE_DISCOVERY", + "PROCESS_DISCOVERY", "COMMAND_AND_SCRIPTING_INTERPRETER", "UNIX_SHELL", - "RESOURCE_HIJACKING", - "PROXY", - "EXTERNAL_PROXY", - "MULTI_HOP_PROXY", - "DYNAMIC_RESOLUTION", - "UNSECURED_CREDENTIALS", - "VALID_ACCOUNTS", - "LOCAL_ACCOUNTS", - "CLOUD_ACCOUNTS", - "NETWORK_DENIAL_OF_SERVICE", "PERMISSION_GROUPS_DISCOVERY", "CLOUD_GROUPS", - "EXFILTRATION_OVER_WEB_SERVICE", - "EXFILTRATION_TO_CLOUD_STORAGE", + "APPLICATION_LAYER_PROTOCOL", + "DNS", + "SOFTWARE_DEPLOYMENT_TOOLS", + "VALID_ACCOUNTS", + "DEFAULT_ACCOUNTS", + "LOCAL_ACCOUNTS", + "CLOUD_ACCOUNTS", + "PROXY", + "EXTERNAL_PROXY", + "MULTI_HOP_PROXY", "ACCOUNT_MANIPULATION", + "ADDITIONAL_CLOUD_CREDENTIALS", "SSH_AUTHORIZED_KEYS", - "CREATE_OR_MODIFY_SYSTEM_PROCESS", - "STEAL_WEB_SESSION_COOKIE", - "MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE", + "ADDITIONAL_CONTAINER_CLUSTER_ROLES", + "INGRESS_TOOL_TRANSFER", + "NATIVE_API", + "BRUTE_FORCE", + "SHARED_MODULES", + "ACCESS_TOKEN_MANIPULATION", + "TOKEN_IMPERSONATION_OR_THEFT", "EXPLOIT_PUBLIC_FACING_APPLICATION", - "MODIFY_AUTHENTICATION_PROCESS", - "DATA_DESTRUCTION", "DOMAIN_POLICY_MODIFICATION", - "IMPAIR_DEFENSES", - "NETWORK_SERVICE_DISCOVERY", - "ACCESS_TOKEN_MANIPULATION", + "DATA_DESTRUCTION", + "SERVICE_STOP", + "INHIBIT_SYSTEM_RECOVERY", + "RESOURCE_HIJACKING", + "NETWORK_DENIAL_OF_SERVICE", + "CLOUD_SERVICE_DISCOVERY", + "STEAL_APPLICATION_ACCESS_TOKEN", + "ACCOUNT_ACCESS_REMOVAL", + "STEAL_WEB_SESSION_COOKIE", + "CREATE_OR_MODIFY_SYSTEM_PROCESS", "ABUSE_ELEVATION_CONTROL_MECHANISM", - "DEFAULT_ACCOUNTS", - "INHIBIT_SYSTEM_RECOVERY" + "UNSECURED_CREDENTIALS", + "MODIFY_AUTHENTICATION_PROCESS", + "IMPAIR_DEFENSES", + "DISABLE_OR_MODIFY_TOOLS", + "EXFILTRATION_OVER_WEB_SERVICE", + "EXFILTRATION_TO_CLOUD_STORAGE", + "DYNAMIC_RESOLUTION", + "LATERAL_TOOL_TRANSFER", + "MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE", + "CREATE_SNAPSHOT", + "CLOUD_INFRASTRUCTURE_DISCOVERY", + "OBTAIN_CAPABILITIES", + "ACTIVE_SCANNING", + "SCANNING_IP_BLOCKS", + "CONTAINER_AND_RESOURCE_DISCOVERY" ], "enumDescriptions": [ "Unspecified value.", - "T1595", - "T1595.001", - "T1105", - "T1106", - "T1129", + "T1036", + "T1036.005", + "T1037", + "T1037.005", + "T1046", + "T1057", "T1059", "T1059.004", - "T1496", - "T1090", - "T1090.002", - "T1090.003", - "T1568", - "T1552", + "T1069", + "T1069.003", + "T1071", + "T1071.004", + "T1072", "T1078", + "T1078.001", "T1078.003", "T1078.004", - "T1498", - "T1069", - "T1069.003", - "T1567", - "T1567.002", + "T1090", + "T1090.002", + "T1090.003", "T1098", + "T1098.001", "T1098.004", - "T1543", - "T1539", - "T1578", + "T1098.006", + "T1105", + "T1106", + "T1110", + "T1129", + "T1134", + "T1134.001", "T1190", - "T1556", - "T1485", "T1484", - "T1562", - "T1046", - "T1134", + "T1485", + "T1489", + "T1490", + "T1496", + "T1498", + "T1526", + "T1528", + "T1531", + "T1539", + "T1543", "T1548", - "T1078.001", - "T1490" + "T1552", + "T1556", + "T1562", + "T1562.001", + "T1567", + "T1567.002", + "T1568", + "T1570", + "T1578", + "T1578.001", + "T1580", + "T1588", + "T1595", + "T1595.001", + "T1613" ], "type": "string" }, @@ -8127,81 +11680,125 @@ "items": { "enum": [ "TECHNIQUE_UNSPECIFIED", - "ACTIVE_SCANNING", - "SCANNING_IP_BLOCKS", - "INGRESS_TOOL_TRANSFER", - "NATIVE_API", - "SHARED_MODULES", + "MASQUERADING", + "MATCH_LEGITIMATE_NAME_OR_LOCATION", + "BOOT_OR_LOGON_INITIALIZATION_SCRIPTS", + "STARTUP_ITEMS", + "NETWORK_SERVICE_DISCOVERY", + "PROCESS_DISCOVERY", "COMMAND_AND_SCRIPTING_INTERPRETER", "UNIX_SHELL", - "RESOURCE_HIJACKING", - "PROXY", - "EXTERNAL_PROXY", - "MULTI_HOP_PROXY", - "DYNAMIC_RESOLUTION", - "UNSECURED_CREDENTIALS", + "PERMISSION_GROUPS_DISCOVERY", + "CLOUD_GROUPS", + "APPLICATION_LAYER_PROTOCOL", + "DNS", + "SOFTWARE_DEPLOYMENT_TOOLS", "VALID_ACCOUNTS", + "DEFAULT_ACCOUNTS", "LOCAL_ACCOUNTS", "CLOUD_ACCOUNTS", - "NETWORK_DENIAL_OF_SERVICE", - "PERMISSION_GROUPS_DISCOVERY", - "CLOUD_GROUPS", - "EXFILTRATION_OVER_WEB_SERVICE", - "EXFILTRATION_TO_CLOUD_STORAGE", + "PROXY", + "EXTERNAL_PROXY", + "MULTI_HOP_PROXY", "ACCOUNT_MANIPULATION", + "ADDITIONAL_CLOUD_CREDENTIALS", "SSH_AUTHORIZED_KEYS", - "CREATE_OR_MODIFY_SYSTEM_PROCESS", - "STEAL_WEB_SESSION_COOKIE", - "MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE", + "ADDITIONAL_CONTAINER_CLUSTER_ROLES", + "INGRESS_TOOL_TRANSFER", + "NATIVE_API", + "BRUTE_FORCE", + "SHARED_MODULES", + "ACCESS_TOKEN_MANIPULATION", + "TOKEN_IMPERSONATION_OR_THEFT", "EXPLOIT_PUBLIC_FACING_APPLICATION", - "MODIFY_AUTHENTICATION_PROCESS", - "DATA_DESTRUCTION", "DOMAIN_POLICY_MODIFICATION", - "IMPAIR_DEFENSES", - "NETWORK_SERVICE_DISCOVERY", - "ACCESS_TOKEN_MANIPULATION", + "DATA_DESTRUCTION", + "SERVICE_STOP", + "INHIBIT_SYSTEM_RECOVERY", + "RESOURCE_HIJACKING", + "NETWORK_DENIAL_OF_SERVICE", + "CLOUD_SERVICE_DISCOVERY", + "STEAL_APPLICATION_ACCESS_TOKEN", + "ACCOUNT_ACCESS_REMOVAL", + "STEAL_WEB_SESSION_COOKIE", + "CREATE_OR_MODIFY_SYSTEM_PROCESS", "ABUSE_ELEVATION_CONTROL_MECHANISM", - "DEFAULT_ACCOUNTS", - "INHIBIT_SYSTEM_RECOVERY" + "UNSECURED_CREDENTIALS", + "MODIFY_AUTHENTICATION_PROCESS", + "IMPAIR_DEFENSES", + "DISABLE_OR_MODIFY_TOOLS", + "EXFILTRATION_OVER_WEB_SERVICE", + "EXFILTRATION_TO_CLOUD_STORAGE", + "DYNAMIC_RESOLUTION", + "LATERAL_TOOL_TRANSFER", + "MODIFY_CLOUD_COMPUTE_INFRASTRUCTURE", + "CREATE_SNAPSHOT", + "CLOUD_INFRASTRUCTURE_DISCOVERY", + "OBTAIN_CAPABILITIES", + "ACTIVE_SCANNING", + "SCANNING_IP_BLOCKS", + "CONTAINER_AND_RESOURCE_DISCOVERY" ], "enumDescriptions": [ "Unspecified value.", - "T1595", - "T1595.001", - "T1105", - "T1106", - "T1129", + "T1036", + "T1036.005", + "T1037", + "T1037.005", + "T1046", + "T1057", "T1059", "T1059.004", - "T1496", - "T1090", - "T1090.002", - "T1090.003", - "T1568", - "T1552", + "T1069", + "T1069.003", + "T1071", + "T1071.004", + "T1072", "T1078", + "T1078.001", "T1078.003", "T1078.004", - "T1498", - "T1069", - "T1069.003", - "T1567", - "T1567.002", + "T1090", + "T1090.002", + "T1090.003", "T1098", + "T1098.001", "T1098.004", - "T1543", - "T1539", - "T1578", + "T1098.006", + "T1105", + "T1106", + "T1110", + "T1129", + "T1134", + "T1134.001", "T1190", - "T1556", - "T1485", "T1484", - "T1562", - "T1046", - "T1134", + "T1485", + "T1489", + "T1490", + "T1496", + "T1498", + "T1526", + "T1528", + "T1531", + "T1539", + "T1543", "T1548", - "T1078.001", - "T1490" + "T1552", + "T1556", + "T1562", + "T1562.001", + "T1567", + "T1567.002", + "T1568", + "T1570", + "T1578", + "T1578.001", + "T1580", + "T1588", + "T1595", + "T1595.001", + "T1613" ], "type": "string" }, @@ -8287,7 +11884,7 @@ "type": "string" }, "kind": { - "description": "Kubernetes object kind, such as “Namespace”.", + "description": "Kubernetes object kind, such as \"Namespace\".", "type": "string" }, "name": { @@ -8366,6 +11963,29 @@ }, "type": "object" }, + "Package": { + "description": "Package is a generic definition of a package.", + "id": "Package", + "properties": { + "cpeUri": { + "description": "The CPE URI where the vulnerability was detected.", + "type": "string" + }, + "packageName": { + "description": "The name of the package where the vulnerability was detected.", + "type": "string" + }, + "packageType": { + "description": "Type of package, for example, os, maven, or go.", + "type": "string" + }, + "packageVersion": { + "description": "The version of the package.", + "type": "string" + } + }, + "type": "object" + }, "PathNodeAssociatedFinding": { "description": "A finding that is associated with this node in the attack path.", "id": "PathNodeAssociatedFinding", @@ -8445,6 +12065,25 @@ }, "type": "object" }, + "PolicyDriftDetails": { + "description": "The policy field that violates the deployed posture and its expected and detected values.", + "id": "PolicyDriftDetails", + "properties": { + "detectedValue": { + "description": "The detected value that violates the deployed posture, for example, `false` or `allowed_values={\"projects/22831892\"}`.", + "type": "string" + }, + "expectedValue": { + "description": "The value of this field that was configured in a posture, for example, `true` or `allowed_values={\"projects/29831892\"}`.", + "type": "string" + }, + "field": { + "description": "The name of the updated field, for example constraint.implementation.policy_rules[0].enforce", + "type": "string" + } + }, + "type": "object" + }, "Position": { "description": "A position in the uploaded text version of a module.", "id": "Position", @@ -8526,6 +12165,20 @@ "$ref": "MemoryHashSignature", "description": "Signature indicating that a binary family was matched." }, + "signatureType": { + "description": "Describes the type of resource associated with the signature.", + "enum": [ + "SIGNATURE_TYPE_UNSPECIFIED", + "SIGNATURE_TYPE_PROCESS", + "SIGNATURE_TYPE_FILE" + ], + "enumDescriptions": [ + "The default signature type.", + "Used for signatures concerning processes.", + "Used for signatures concerning disks." + ], + "type": "string" + }, "yaraRuleSignature": { "$ref": "YaraRuleSignature", "description": "Signature indicating that a YARA rule was matched." @@ -8636,6 +12289,26 @@ "properties": {}, "type": "object" }, + "SecurityBulletin": { + "description": "SecurityBulletin are notifications of vulnerabilities of Google products.", + "id": "SecurityBulletin", + "properties": { + "bulletinId": { + "description": "ID of the bulletin corresponding to the vulnerability.", + "type": "string" + }, + "submissionTime": { + "description": "Submission time of this Security Bulletin.", + "format": "google-datetime", + "type": "string" + }, + "suggestedUpgradeVersion": { + "description": "This represents a version that the cluster receiving this notification should be upgraded to, based on its current version. For example, 1.15.0", + "type": "string" + } + }, + "type": "object" + }, "SecurityCenterProperties": { "description": "Security Command Center managed properties. These properties are managed by Security Command Center and cannot be modified by the user.", "id": "SecurityCenterProperties", @@ -8712,19 +12385,34 @@ "id": "SecurityPosture", "properties": { "changedPolicy": { - "description": "The name of the policy that has been updated, for example, `projects/{project_id}/policies/{constraint_name}`.", + "description": "The name of the updated policy, for example, `projects/{project_id}/policies/{constraint_name}`.", "type": "string" }, "name": { - "description": "Name of the posture, for example, `organizations/{org_id}/locations/{location}/postures/{posture_name}`.", + "description": "Name of the posture, for example, `CIS-Posture`.", + "type": "string" + }, + "policy": { + "description": "The ID of the updated policy, for example, `compute-policy-1`.", + "type": "string" + }, + "policyDriftDetails": { + "description": "The details about a change in an updated policy that violates the deployed posture.", + "items": { + "$ref": "PolicyDriftDetails" + }, + "type": "array" + }, + "policySet": { + "description": "The name of the updated policyset, for example, `cis-policyset`.", "type": "string" }, "postureDeployment": { - "description": "The name of the posture deployment, for example, `projects/{project_id}/posturedeployments/{posture_deployment_id}`.", + "description": "The name of the posture deployment, for example, `organizations/{org_id}/posturedeployments/{posture_deployment_id}`.", "type": "string" }, "postureDeploymentResource": { - "description": "The project, folder, or organization on which the posture is deployed, for example, `projects/{project_id}`.", + "description": "The project, folder, or organization on which the posture is deployed, for example, `projects/{project_number}`.", "type": "string" }, "revisionId": { @@ -8820,7 +12508,7 @@ "properties": { "customConfig": { "$ref": "GoogleCloudSecuritycenterV1CustomConfig", - "description": "Required. The user specified custom configuration to test." + "description": "Required. The custom configuration that you need to test." }, "resource": { "$ref": "SimulatedResource", @@ -8830,7 +12518,7 @@ "type": "object" }, "SimulateSecurityHealthAnalyticsCustomModuleResponse": { - "description": "Response message for simulating a SecurityHealthAnalyticsCustomModule against a given resource.", + "description": "Response message for simulating a `SecurityHealthAnalyticsCustomModule` against a given resource.", "id": "SimulateSecurityHealthAnalyticsCustomModuleResponse", "properties": { "result": { @@ -8841,7 +12529,7 @@ "type": "object" }, "SimulatedResource": { - "description": "Manually constructed resource. If the custom module only evaluates against the resource data, the iam_policy_data field can be omitted, and vice versa.", + "description": "Manually constructed resource name. If the custom module evaluates against only the resource data, you can omit the `iam_policy_data` field. If it evaluates only the `iam_policy_data` field, you can omit the resource data.", "id": "SimulatedResource", "properties": { "iamPolicyData": { @@ -8853,11 +12541,11 @@ "description": "Properties of the object.", "type": "any" }, - "description": "Optional. A representation of the GCP resource. Should match the GCP resource JSON format.", + "description": "Optional. A representation of the Google Cloud resource. Should match the Google Cloud resource JSON format.", "type": "object" }, "resourceType": { - "description": "Required. The type of the resource, e.g. `compute.googleapis.com/Disk`.", + "description": "Required. The type of the resource, for example, `compute.googleapis.com/Disk`.", "type": "string" } }, @@ -9026,6 +12714,38 @@ }, "type": "object" }, + "TicketInfo": { + "description": "Information about the ticket, if any, that is being used to track the resolution of the issue that is identified by this finding.", + "id": "TicketInfo", + "properties": { + "assignee": { + "description": "The assignee of the ticket in the ticket system.", + "type": "string" + }, + "description": { + "description": "The description of the ticket in the ticket system.", + "type": "string" + }, + "id": { + "description": "The identifier of the ticket in the ticket system.", + "type": "string" + }, + "status": { + "description": "The latest status of the ticket, as reported by the ticket system.", + "type": "string" + }, + "updateTime": { + "description": "The time when the ticket was last updated, as reported by the ticket system.", + "format": "google-datetime", + "type": "string" + }, + "uri": { + "description": "The link to the ticket in the ticket system.", + "type": "string" + } + }, + "type": "object" + }, "ValidateEventThreatDetectionCustomModuleRequest": { "description": "Request to validate an Event Threat Detection custom module.", "id": "ValidateEventThreatDetectionCustomModuleRequest", @@ -9110,6 +12830,18 @@ "cve": { "$ref": "Cve", "description": "CVE stands for Common Vulnerabilities and Exposures (https://cve.mitre.org/about/)" + }, + "fixedPackage": { + "$ref": "Package", + "description": "The fixed package is relevant to the finding." + }, + "offendingPackage": { + "$ref": "Package", + "description": "The offending package is relevant to the finding." + }, + "securityBulletin": { + "$ref": "SecurityBulletin", + "description": "The security bulletin is relevant to this finding." } }, "type": "object" diff --git a/discovery/googleapis/serviceconsumermanagement__v1.json b/discovery/googleapis/serviceconsumermanagement__v1.json index 3dfd6e13a..b3f22aa0e 100644 --- a/discovery/googleapis/serviceconsumermanagement__v1.json +++ b/discovery/googleapis/serviceconsumermanagement__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231114", + "revision": "20240220", "rootUrl": "https://serviceconsumermanagement.googleapis.com/", "servicePath": "", "title": "Service Consumer Management API", @@ -1819,6 +1819,13 @@ "description": "Describes the generator configuration for a method.", "id": "MethodSettings", "properties": { + "autoPopulatedFields": { + "description": "List of top-level fields of the request message, that should be automatically populated by the client libraries based on their (google.api.field_info).format. Currently supported format: UUID4. Example of a YAML configuration: publishing: method_settings: - selector: google.example.v1.ExampleService.CreateExample auto_populated_fields: - request_id", + "items": { + "type": "string" + }, + "type": "array" + }, "longRunning": { "$ref": "LongRunning", "description": "Describes settings to use for long-running operations when generating API methods for RPCs. Complements RPCs that use the annotations in google/longrunning/operations.proto. Example of a YAML configuration:: publishing: method_settings: - selector: google.cloud.speech.v2.Speech.BatchRecognize long_running: initial_poll_delay: seconds: 60 # 1 minute poll_delay_multiplier: 1.5 max_poll_delay: seconds: 360 # 6 minutes total_poll_timeout: seconds: 54000 # 90 minutes" @@ -2061,7 +2068,7 @@ "type": "string" }, "type": { - "description": "Required. The monitored resource type. For example, the type `\"cloudsql_database\"` represents databases in Google Cloud SQL. For a list of types, see [Monitoring resource types](https://cloud.google.com/monitoring/api/resources) and [Logging resource types](https://cloud.google.com/logging/docs/api/v2/resource-list).", + "description": "Required. The monitored resource type. For example, the type `\"cloudsql_database\"` represents databases in Google Cloud SQL. For a list of types, see [Monitored resource types](https://cloud.google.com/monitoring/api/resources) and [Logging resource types](https://cloud.google.com/logging/docs/api/v2/resource-list).", "type": "string" } }, @@ -2305,6 +2312,10 @@ "protoReferenceDocumentationUri": { "description": "Optional link to proto reference documentation. Example: https://cloud.google.com/pubsub/lite/docs/reference/rpc", "type": "string" + }, + "restReferenceDocumentationUri": { + "description": "Optional link to REST reference documentation. Example: https://cloud.google.com/pubsub/lite/docs/reference/rest", + "type": "string" } }, "type": "object" diff --git a/discovery/googleapis/servicecontrol__v1.json b/discovery/googleapis/servicecontrol__v1.json index 9c1358dc3..ca57a9fa9 100644 --- a/discovery/googleapis/servicecontrol__v1.json +++ b/discovery/googleapis/servicecontrol__v1.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231110", + "revision": "20240211", "rootUrl": "https://servicecontrol.googleapis.com/", "servicePath": "", "title": "Service Control API", diff --git a/discovery/googleapis/servicecontrol__v2.json b/discovery/googleapis/servicecontrol__v2.json index 75b205ee2..a3ae52289 100644 --- a/discovery/googleapis/servicecontrol__v2.json +++ b/discovery/googleapis/servicecontrol__v2.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231110", + "revision": "20240211", "rootUrl": "https://servicecontrol.googleapis.com/", "servicePath": "", "title": "Service Control API", diff --git a/discovery/googleapis/servicedirectory__v1.json b/discovery/googleapis/servicedirectory__v1.json index 6f46cff3b..d15b36e10 100644 --- a/discovery/googleapis/servicedirectory__v1.json +++ b/discovery/googleapis/servicedirectory__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231112", + "revision": "20240220", "rootUrl": "https://servicedirectory.googleapis.com/", "servicePath": "", "title": "Service Directory API", @@ -897,14 +897,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, diff --git a/discovery/googleapis/servicemanagement__v1.json b/discovery/googleapis/servicemanagement__v1.json index 4ca9c6937..72225be7e 100644 --- a/discovery/googleapis/servicemanagement__v1.json +++ b/discovery/googleapis/servicemanagement__v1.json @@ -34,7 +34,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231103", + "revision": "20240219", "rootUrl": "https://servicemanagement.googleapis.com/", "servicePath": "", "title": "Service Management API", @@ -1161,14 +1161,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -2417,6 +2417,13 @@ "description": "Describes the generator configuration for a method.", "id": "MethodSettings", "properties": { + "autoPopulatedFields": { + "description": "List of top-level fields of the request message, that should be automatically populated by the client libraries based on their (google.api.field_info).format. Currently supported format: UUID4. Example of a YAML configuration: publishing: method_settings: - selector: google.example.v1.ExampleService.CreateExample auto_populated_fields: - request_id", + "items": { + "type": "string" + }, + "type": "array" + }, "longRunning": { "$ref": "LongRunning", "description": "Describes settings to use for long-running operations when generating API methods for RPCs. Complements RPCs that use the annotations in google/longrunning/operations.proto. Example of a YAML configuration:: publishing: method_settings: - selector: google.cloud.speech.v2.Speech.BatchRecognize long_running: initial_poll_delay: seconds: 60 # 1 minute poll_delay_multiplier: 1.5 max_poll_delay: seconds: 360 # 6 minutes total_poll_timeout: seconds: 54000 # 90 minutes" @@ -2659,7 +2666,7 @@ "type": "string" }, "type": { - "description": "Required. The monitored resource type. For example, the type `\"cloudsql_database\"` represents databases in Google Cloud SQL. For a list of types, see [Monitoring resource types](https://cloud.google.com/monitoring/api/resources) and [Logging resource types](https://cloud.google.com/logging/docs/api/v2/resource-list).", + "description": "Required. The monitored resource type. For example, the type `\"cloudsql_database\"` represents databases in Google Cloud SQL. For a list of types, see [Monitored resource types](https://cloud.google.com/monitoring/api/resources) and [Logging resource types](https://cloud.google.com/logging/docs/api/v2/resource-list).", "type": "string" } }, @@ -2962,6 +2969,10 @@ "protoReferenceDocumentationUri": { "description": "Optional link to proto reference documentation. Example: https://cloud.google.com/pubsub/lite/docs/reference/rpc", "type": "string" + }, + "restReferenceDocumentationUri": { + "description": "Optional link to REST reference documentation. Example: https://cloud.google.com/pubsub/lite/docs/reference/rest", + "type": "string" } }, "type": "object" diff --git a/discovery/googleapis/servicenetworking__v1.json b/discovery/googleapis/servicenetworking__v1.json index 3609cd91b..b8be850fb 100644 --- a/discovery/googleapis/servicenetworking__v1.json +++ b/discovery/googleapis/servicenetworking__v1.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231119", + "revision": "20240226", "rootUrl": "https://servicenetworking.googleapis.com/", "servicePath": "", "title": "Service Networking API", @@ -3032,7 +3032,7 @@ "type": "string" }, "type": { - "description": "Required. The monitored resource type. For example, the type `\"cloudsql_database\"` represents databases in Google Cloud SQL. For a list of types, see [Monitoring resource types](https://cloud.google.com/monitoring/api/resources) and [Logging resource types](https://cloud.google.com/logging/docs/api/v2/resource-list).", + "description": "Required. The monitored resource type. For example, the type `\"cloudsql_database\"` represents databases in Google Cloud SQL. For a list of types, see [Monitored resource types](https://cloud.google.com/monitoring/api/resources) and [Logging resource types](https://cloud.google.com/logging/docs/api/v2/resource-list).", "type": "string" } }, @@ -3300,6 +3300,10 @@ "protoReferenceDocumentationUri": { "description": "Optional link to proto reference documentation. Example: https://cloud.google.com/pubsub/lite/docs/reference/rpc", "type": "string" + }, + "restReferenceDocumentationUri": { + "description": "Optional link to REST reference documentation. Example: https://cloud.google.com/pubsub/lite/docs/reference/rest", + "type": "string" } }, "type": "object" diff --git a/discovery/googleapis/serviceusage__v1.json b/discovery/googleapis/serviceusage__v1.json index 4b4b5cdbd..18ae85a49 100644 --- a/discovery/googleapis/serviceusage__v1.json +++ b/discovery/googleapis/serviceusage__v1.json @@ -31,7 +31,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231114", + "revision": "20240220", "rootUrl": "https://serviceusage.googleapis.com/", "servicePath": "", "title": "Service Usage API", @@ -1939,20 +1939,6 @@ "description": "The consumer policy rule that defines enabled services, groups, and categories.", "id": "GoogleApiServiceusageV2alphaEnableRule", "properties": { - "categories": { - "description": "The names of the categories that are enabled. Example: `categories/googleServices`.", - "items": { - "type": "string" - }, - "type": "array" - }, - "groups": { - "description": "The names of the service groups that are enabled. Example: `services/container.googleapis.com/groups/dependencies`.", - "items": { - "type": "string" - }, - "type": "array" - }, "services": { "description": "The names of the services that are enabled. Example: `services/storage.googleapis.com`.", "items": { @@ -2369,6 +2355,13 @@ "description": "Describes the generator configuration for a method.", "id": "MethodSettings", "properties": { + "autoPopulatedFields": { + "description": "List of top-level fields of the request message, that should be automatically populated by the client libraries based on their (google.api.field_info).format. Currently supported format: UUID4. Example of a YAML configuration: publishing: method_settings: - selector: google.example.v1.ExampleService.CreateExample auto_populated_fields: - request_id", + "items": { + "type": "string" + }, + "type": "array" + }, "longRunning": { "$ref": "LongRunning", "description": "Describes settings to use for long-running operations when generating API methods for RPCs. Complements RPCs that use the annotations in google/longrunning/operations.proto. Example of a YAML configuration:: publishing: method_settings: - selector: google.cloud.speech.v2.Speech.BatchRecognize long_running: initial_poll_delay: seconds: 60 # 1 minute poll_delay_multiplier: 1.5 max_poll_delay: seconds: 360 # 6 minutes total_poll_timeout: seconds: 54000 # 90 minutes" @@ -2611,7 +2604,7 @@ "type": "string" }, "type": { - "description": "Required. The monitored resource type. For example, the type `\"cloudsql_database\"` represents databases in Google Cloud SQL. For a list of types, see [Monitoring resource types](https://cloud.google.com/monitoring/api/resources) and [Logging resource types](https://cloud.google.com/logging/docs/api/v2/resource-list).", + "description": "Required. The monitored resource type. For example, the type `\"cloudsql_database\"` represents databases in Google Cloud SQL. For a list of types, see [Monitored resource types](https://cloud.google.com/monitoring/api/resources) and [Logging resource types](https://cloud.google.com/logging/docs/api/v2/resource-list).", "type": "string" } }, @@ -2851,6 +2844,10 @@ "protoReferenceDocumentationUri": { "description": "Optional link to proto reference documentation. Example: https://cloud.google.com/pubsub/lite/docs/reference/rpc", "type": "string" + }, + "restReferenceDocumentationUri": { + "description": "Optional link to REST reference documentation. Example: https://cloud.google.com/pubsub/lite/docs/reference/rest", + "type": "string" } }, "type": "object" diff --git a/discovery/googleapis/sheets__v4.json b/discovery/googleapis/sheets__v4.json index e8a0b140c..b7b866d0d 100644 --- a/discovery/googleapis/sheets__v4.json +++ b/discovery/googleapis/sheets__v4.json @@ -37,7 +37,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231114", + "revision": "20240220", "rootUrl": "https://sheets.googleapis.com/", "servicePath": "", "title": "Google Sheets API", diff --git a/discovery/googleapis/slides__v1.json b/discovery/googleapis/slides__v1.json index 109a1f486..83cdacd8f 100644 --- a/discovery/googleapis/slides__v1.json +++ b/discovery/googleapis/slides__v1.json @@ -43,7 +43,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231114", + "revision": "20240220", "rootUrl": "https://slides.googleapis.com/", "servicePath": "", "title": "Google Slides API", diff --git a/discovery/googleapis/smartdevicemanagement__v1.json b/discovery/googleapis/smartdevicemanagement__v1.json index ed6a40b3b..155d6b2a5 100644 --- a/discovery/googleapis/smartdevicemanagement__v1.json +++ b/discovery/googleapis/smartdevicemanagement__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231119", + "revision": "20240218", "rootUrl": "https://smartdevicemanagement.googleapis.com/", "servicePath": "", "title": "Smart Device Management API", diff --git a/discovery/googleapis/sourcerepo__v1.json b/discovery/googleapis/sourcerepo__v1.json index 260f1c54d..750c642e9 100644 --- a/discovery/googleapis/sourcerepo__v1.json +++ b/discovery/googleapis/sourcerepo__v1.json @@ -34,7 +34,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231105", + "revision": "20240212", "rootUrl": "https://sourcerepo.googleapis.com/", "servicePath": "", "title": "Cloud Source Repositories API", @@ -512,14 +512,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, diff --git a/discovery/googleapis/spanner__v1.json b/discovery/googleapis/spanner__v1.json index 71008d4e3..fedaf7e94 100644 --- a/discovery/googleapis/spanner__v1.json +++ b/discovery/googleapis/spanner__v1.json @@ -38,7 +38,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231114", + "revision": "20240207", "rootUrl": "https://spanner.googleapis.com/", "servicePath": "", "title": "Cloud Spanner API", @@ -2786,7 +2786,7 @@ "type": "integer" }, "storageUtilizationPercent": { - "description": "Required. The target storage utilization percentage that the autoscaler should be trying to achieve for the instance. This number is on a scale from 0 (no utilization) to 100 (full utilization). The valid range is [10, 100] inclusive.", + "description": "Required. The target storage utilization percentage that the autoscaler should be trying to achieve for the instance. This number is on a scale from 0 (no utilization) to 100 (full utilization). The valid range is [10, 99] inclusive.", "format": "int32", "type": "integer" } @@ -3008,14 +3008,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -3045,6 +3045,11 @@ "description": "The request for Commit.", "id": "CommitRequest", "properties": { + "maxCommitDelay": { + "description": "Optional. The amount of latency this request is willing to incur in order to improve throughput. If this field is not set, Spanner assumes requests are relatively latency sensitive and automatically determines an appropriate delay time. You can specify a batching delay value between 0 and 500 ms.", + "format": "google-duration", + "type": "string" + }, "mutations": { "description": "The mutations to be executed when this transaction commits. All mutations are applied atomically, in the order they appear in this list.", "items": { @@ -3282,7 +3287,7 @@ "type": "array" }, "protoDescriptors": { - "description": "Optional. Proto descriptors used by CREATE/ALTER PROTO BUNDLE statements in 'extra_statements' above. Contains a protobuf-serialized [google.protobuf.FileDescriptorSet](https://github.com/protocolbuffers/protobuf/blob/main/src/google/protobuf/descriptor.proto). To generate it, [install](https://grpc.io/docs/protoc-installation/) and run `protoc` with --include_imports and --descriptor_set_out. For example, to generate for moon/shot/app.proto, run \"\"\" $protoc --proto_path=/app_path --proto_path=/lib_path \\ --include_imports \\ --descriptor_set_out=descriptors.data \\ moon/shot/app.proto \"\"\" For more details, see protobuffer [self description](https://developers.google.com/protocol-buffers/docs/techniques#self-description).", + "description": "Optional. Proto descriptors used by CREATE/ALTER PROTO BUNDLE statements in 'extra_statements' above. Contains a protobuf-serialized [google.protobuf.FileDescriptorSet](https://github.com/protocolbuffers/protobuf/blob/main/src/google/protobuf/descriptor.proto). To generate it, [install](https://grpc.io/docs/protoc-installation/) and run `protoc` with --include_imports and --descriptor_set_out. For example, to generate for moon/shot/app.proto, run ``` $protoc --proto_path=/app_path --proto_path=/lib_path \\ --include_imports \\ --descriptor_set_out=descriptors.data \\ moon/shot/app.proto ``` For more details, see protobuffer [self description](https://developers.google.com/protocol-buffers/docs/techniques#self-description).", "format": "byte", "type": "string" } @@ -3342,6 +3347,20 @@ "format": "google-datetime", "type": "string" }, + "expectedFulfillmentPeriod": { + "description": "The expected fulfillment period of this create operation.", + "enum": [ + "FULFILLMENT_PERIOD_UNSPECIFIED", + "FULFILLMENT_PERIOD_NORMAL", + "FULFILLMENT_PERIOD_EXTENDED" + ], + "enumDescriptions": [ + "Not specified.", + "Normal fulfillment period. The operation is expected to complete within minutes.", + "Extended fulfillment period. It can take up to an hour for the operation to complete." + ], + "type": "string" + }, "instance": { "$ref": "Instance", "description": "The instance being created." @@ -3582,7 +3601,7 @@ "properties": { "excludeReplicas": { "$ref": "ExcludeReplicas", - "description": "Exclude_replicas indicates that should be excluded from serving requests. Spanner will not route requests to the replicas in this list." + "description": "Exclude_replicas indicates that specified replicas should be excluded from serving requests. Spanner will not route requests to the replicas in this list." }, "includeReplicas": { "$ref": "IncludeReplicas", @@ -4147,6 +4166,12 @@ ], "readOnly": true, "type": "string" + }, + "storageLimitPerProcessingUnit": { + "description": "Output only. The storage limit in bytes per processing unit.", + "format": "int64", + "readOnly": true, + "type": "string" } }, "type": "object" @@ -4831,7 +4856,7 @@ "description": "Additional options that affect how many partitions are created." }, "sql": { - "description": "Required. The query request to generate partitions for. The request will fail if the query is not root partitionable. For a query to be root partitionable, it needs to satisfy a few conditions. For example, the first operator in the query execution plan must be a distributed union operator. For more information about other conditions, see [Read data in parallel](https://cloud.google.com/spanner/docs/reads#read_data_in_parallel). The query request must not contain DML commands, such as INSERT, UPDATE, or DELETE. Use ExecuteStreamingSql with a PartitionedDml transaction for large, partition-friendly DML operations.", + "description": "Required. The query request to generate partitions for. The request will fail if the query is not root partitionable. For a query to be root partitionable, it needs to satisfy a few conditions. For example, if the query execution plan contains a distributed union operator, then it must be the first operator in the plan. For more information about other conditions, see [Read data in parallel](https://cloud.google.com/spanner/docs/reads#read_data_in_parallel). The query request must not contain DML commands, such as INSERT, UPDATE, or DELETE. Use ExecuteStreamingSql with a PartitionedDml transaction for large, partition-friendly DML operations.", "type": "string" }, "transaction": { @@ -5178,7 +5203,7 @@ "type": "boolean" }, "location": { - "description": "The location of the serving resources, e.g. \"us-central1\".", + "description": "The location of the serving resources, e.g., \"us-central1\".", "type": "string" }, "type": { @@ -5201,7 +5226,7 @@ "type": "object" }, "ReplicaSelection": { - "description": "The directed read replica selector. Callers must provide one or more of the following fields for replica selection: * `location` - The location must be one of the regions within the multi-region configuration of your database. * `type` - The type of the replica. Some examples of using replica_selectors are: * `location:us-east1` --> The \"us-east1\" replica(s) of any available type will be used to process the request. * `type:READ_ONLY` --> The \"READ_ONLY\" type replica(s) in nearest . available location will be used to process the request. * `location:us-east1 type:READ_ONLY` --> The \"READ_ONLY\" type replica(s) in location \"us-east1\" will be used to process the request.", + "description": "The directed read replica selector. Callers must provide one or more of the following fields for replica selection: * `location` - The location must be one of the regions within the multi-region configuration of your database. * `type` - The type of the replica. Some examples of using replica_selectors are: * `location:us-east1` --> The \"us-east1\" replica(s) of any available type will be used to process the request. * `type:READ_ONLY` --> The \"READ_ONLY\" type replica(s) in nearest available location will be used to process the request. * `location:us-east1 type:READ_ONLY` --> The \"READ_ONLY\" type replica(s) in location \"us-east1\" will be used to process the request.", "id": "ReplicaSelection", "properties": { "location": { @@ -5736,6 +5761,7 @@ "BOOL", "INT64", "FLOAT64", + "FLOAT32", "TIMESTAMP", "DATE", "STRING", @@ -5752,6 +5778,7 @@ "Encoded as JSON `true` or `false`.", "Encoded as `string`, in decimal format.", "Encoded as `number`, or the strings `\"NaN\"`, `\"Infinity\"`, or `\"-Infinity\"`.", + "Encoded as `number`, or the strings `\"NaN\"`, `\"Infinity\"`, or `\"-Infinity\"`.", "Encoded as `string` in RFC 3339 timestamp format. The time zone must be present, and must be `\"Z\"`. If the schema has the column option `allow_commit_timestamp=true`, the placeholder string `\"spanner.commit_timestamp()\"` can be used to instruct the system to insert the commit timestamp associated with the transaction commit.", "Encoded as `string` in RFC 3339 date format.", "Encoded as `string`.", @@ -5844,7 +5871,7 @@ "type": "string" }, "protoDescriptors": { - "description": "Optional. Proto descriptors used by CREATE/ALTER PROTO BUNDLE statements. Contains a protobuf-serialized [google.protobuf.FileDescriptorSet](https://github.com/protocolbuffers/protobuf/blob/main/src/google/protobuf/descriptor.proto). To generate it, [install](https://grpc.io/docs/protoc-installation/) and run `protoc` with --include_imports and --descriptor_set_out. For example, to generate for moon/shot/app.proto, run \"\"\" $protoc --proto_path=/app_path --proto_path=/lib_path \\ --include_imports \\ --descriptor_set_out=descriptors.data \\ moon/shot/app.proto \"\"\" For more details, see protobuffer [self description](https://developers.google.com/protocol-buffers/docs/techniques#self-description).", + "description": "Optional. Proto descriptors used by CREATE/ALTER PROTO BUNDLE statements. Contains a protobuf-serialized [google.protobuf.FileDescriptorSet](https://github.com/protocolbuffers/protobuf/blob/main/src/google/protobuf/descriptor.proto). To generate it, [install](https://grpc.io/docs/protoc-installation/) and run `protoc` with --include_imports and --descriptor_set_out. For example, to generate for moon/shot/app.proto, run ``` $protoc --proto_path=/app_path --proto_path=/lib_path \\ --include_imports \\ --descriptor_set_out=descriptors.data \\ moon/shot/app.proto ``` For more details, see protobuffer [self description](https://developers.google.com/protocol-buffers/docs/techniques#self-description).", "format": "byte", "type": "string" }, @@ -5948,6 +5975,20 @@ "format": "google-datetime", "type": "string" }, + "expectedFulfillmentPeriod": { + "description": "The expected fulfillment period of this update operation.", + "enum": [ + "FULFILLMENT_PERIOD_UNSPECIFIED", + "FULFILLMENT_PERIOD_NORMAL", + "FULFILLMENT_PERIOD_EXTENDED" + ], + "enumDescriptions": [ + "Not specified.", + "Normal fulfillment period. The operation is expected to complete within minutes.", + "Extended fulfillment period. It can take up to an hour for the operation to complete." + ], + "type": "string" + }, "instance": { "$ref": "Instance", "description": "The desired end state of the update." diff --git a/discovery/googleapis/speech__v1.json b/discovery/googleapis/speech__v1.json index 4a60815c4..1a347edd0 100644 --- a/discovery/googleapis/speech__v1.json +++ b/discovery/googleapis/speech__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231115", + "revision": "20240221", "rootUrl": "https://speech.googleapis.com/", "servicePath": "", "title": "Cloud Speech-to-Text API", @@ -1248,6 +1248,10 @@ "description": "When available, billed audio seconds for the corresponding request.", "format": "google-duration", "type": "string" + }, + "usingLegacyModels": { + "description": "Whether request used legacy asr models (was not automatically migrated to use conformer models).", + "type": "boolean" } }, "type": "object" diff --git a/discovery/googleapis/storage__v1.json b/discovery/googleapis/storage__v1.json index 32682e644..fff12ed8e 100644 --- a/discovery/googleapis/storage__v1.json +++ b/discovery/googleapis/storage__v1.json @@ -26,7 +26,14 @@ "description": "Stores and retrieves potentially large, immutable data objects.", "discoveryVersion": "v1", "documentationLink": "https://developers.google.com/storage/docs/json_api/", - "etag": "\"3137393439343432333830313931353738333737\"", + "endpoints": [ + { + "description": "Regional Endpoint", + "endpointUrl": "https://storage.me-central2.rep.googleapis.com/", + "location": "me-central2" + } + ], + "etag": "\"36373132303531333632393034313635363131\"", "icons": { "x16": "https://www.google.com/images/icons/product/cloud_storage-16.png", "x32": "https://www.google.com/images/icons/product/cloud_storage-32.png" @@ -40,7 +47,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231111", + "revision": "20240224", "rootUrl": "https://storage.googleapis.com/", "servicePath": "storage/v1/", "title": "Cloud Storage JSON API", @@ -96,7 +103,7 @@ } }, "resources": { - "anywhereCache": { + "anywhereCaches": { "methods": { "disable": { "description": "Disables an Anywhere Cache instance.", @@ -114,7 +121,7 @@ "type": "string" }, "bucket": { - "description": "Name of the partent bucket", + "description": "Name of the parent bucket.", "location": "path", "required": true, "type": "string" @@ -146,7 +153,7 @@ "type": "string" }, "bucket": { - "description": "Name of the partent bucket", + "description": "Name of the parent bucket.", "location": "path", "required": true, "type": "string" @@ -173,7 +180,7 @@ ], "parameters": { "bucket": { - "description": "Name of the partent bucket", + "description": "Name of the parent bucket.", "location": "path", "required": true, "type": "string" @@ -201,13 +208,13 @@ ], "parameters": { "bucket": { - "description": "Name of the partent bucket", + "description": "Name of the parent bucket.", "location": "path", "required": true, "type": "string" }, "pageSize": { - "description": "Maximum number of items return in a single page of responses. Maximum 1000.", + "description": "Maximum number of items to return in a single page of responses. Maximum 1000.", "format": "int32", "location": "query", "minimum": "0", @@ -219,7 +226,7 @@ "type": "string" } }, - "path": "b/{bucket}/anywhereCache", + "path": "b/{bucket}/anywhereCaches", "response": { "$ref": "AnywhereCaches" }, @@ -247,7 +254,7 @@ "type": "string" }, "bucket": { - "description": "Name of the partent bucket", + "description": "Name of the parent bucket.", "location": "path", "required": true, "type": "string" @@ -279,7 +286,7 @@ "type": "string" }, "bucket": { - "description": "Name of the partent bucket", + "description": "Name of the parent bucket.", "location": "path", "required": true, "type": "string" @@ -311,7 +318,7 @@ "type": "string" }, "bucket": { - "description": "Name of the partent bucket", + "description": "Name of the parent bucket.", "location": "path", "required": true, "type": "string" @@ -1384,6 +1391,240 @@ } } }, + "folders": { + "methods": { + "delete": { + "description": "Permanently deletes a folder. Only applicable to buckets with hierarchical namespace enabled.", + "httpMethod": "DELETE", + "id": "storage.folders.delete", + "parameterOrder": [ + "bucket", + "folder" + ], + "parameters": { + "bucket": { + "description": "Name of the bucket in which the folder resides.", + "location": "path", + "required": true, + "type": "string" + }, + "folder": { + "description": "Name of a folder.", + "location": "path", + "required": true, + "type": "string" + }, + "ifMetagenerationMatch": { + "description": "If set, only deletes the folder if its metageneration matches this value.", + "format": "int64", + "location": "query", + "type": "string" + }, + "ifMetagenerationNotMatch": { + "description": "If set, only deletes the folder if its metageneration does not match this value.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "b/{bucket}/folders/{folder}", + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "get": { + "description": "Returns metadata for the specified folder. Only applicable to buckets with hierarchical namespace enabled.", + "httpMethod": "GET", + "id": "storage.folders.get", + "parameterOrder": [ + "bucket", + "folder" + ], + "parameters": { + "bucket": { + "description": "Name of the bucket in which the folder resides.", + "location": "path", + "required": true, + "type": "string" + }, + "folder": { + "description": "Name of a folder.", + "location": "path", + "required": true, + "type": "string" + }, + "ifMetagenerationMatch": { + "description": "Makes the return of the folder metadata conditional on whether the folder's current metageneration matches the given value.", + "format": "int64", + "location": "query", + "type": "string" + }, + "ifMetagenerationNotMatch": { + "description": "Makes the return of the folder metadata conditional on whether the folder's current metageneration does not match the given value.", + "format": "int64", + "location": "query", + "type": "string" + } + }, + "path": "b/{bucket}/folders/{folder}", + "response": { + "$ref": "Folder" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "insert": { + "description": "Creates a new folder. Only applicable to buckets with hierarchical namespace enabled.", + "httpMethod": "POST", + "id": "storage.folders.insert", + "parameterOrder": [ + "bucket" + ], + "parameters": { + "bucket": { + "description": "Name of the bucket in which the folder resides.", + "location": "path", + "required": true, + "type": "string" + }, + "recursive": { + "description": "If true, any parent folder which doesn’t exist will be created automatically.", + "location": "query", + "type": "boolean" + } + }, + "path": "b/{bucket}/folders", + "request": { + "$ref": "Folder" + }, + "response": { + "$ref": "Folder" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "list": { + "description": "Retrieves a list of folders matching the criteria. Only applicable to buckets with hierarchical namespace enabled.", + "httpMethod": "GET", + "id": "storage.folders.list", + "parameterOrder": [ + "bucket" + ], + "parameters": { + "bucket": { + "description": "Name of the bucket in which to look for folders.", + "location": "path", + "required": true, + "type": "string" + }, + "delimiter": { + "description": "Returns results in a directory-like mode. The only supported value is '/'. If set, items will only contain folders that either exactly match the prefix, or are one level below the prefix.", + "location": "query", + "type": "string" + }, + "endOffset": { + "description": "Filter results to folders whose names are lexicographically before endOffset. If startOffset is also set, the folders listed will have names between startOffset (inclusive) and endOffset (exclusive).", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Maximum number of items to return in a single page of responses.", + "format": "int32", + "location": "query", + "minimum": "0", + "type": "integer" + }, + "pageToken": { + "description": "A previously-returned page token representing part of the larger set of results to view.", + "location": "query", + "type": "string" + }, + "prefix": { + "description": "Filter results to folders whose paths begin with this prefix. If set, the value must either be an empty string or end with a '/'.", + "location": "query", + "type": "string" + }, + "startOffset": { + "description": "Filter results to folders whose names are lexicographically equal to or after startOffset. If endOffset is also set, the folders listed will have names between startOffset (inclusive) and endOffset (exclusive).", + "location": "query", + "type": "string" + } + }, + "path": "b/{bucket}/folders", + "response": { + "$ref": "Folders" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-platform.read-only", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_only", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + }, + "rename": { + "description": "Renames a source folder to a destination folder. Only applicable to buckets with hierarchical namespace enabled.", + "httpMethod": "POST", + "id": "storage.folders.rename", + "parameterOrder": [ + "bucket", + "sourceFolder", + "destinationFolder" + ], + "parameters": { + "bucket": { + "description": "Name of the bucket in which the folders are in.", + "location": "path", + "required": true, + "type": "string" + }, + "destinationFolder": { + "description": "Name of the destination folder.", + "location": "path", + "required": true, + "type": "string" + }, + "ifSourceMetagenerationMatch": { + "description": "Makes the operation conditional on whether the source object's current metageneration matches the given value.", + "format": "int64", + "location": "query", + "type": "string" + }, + "ifSourceMetagenerationNotMatch": { + "description": "Makes the operation conditional on whether the source object's current metageneration does not match the given value.", + "format": "int64", + "location": "query", + "type": "string" + }, + "sourceFolder": { + "description": "Name of the source folder.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "b/{bucket}/folders/{sourceFolder}/renameTo/folders/{destinationFolder}", + "response": { + "$ref": "GoogleLongrunningOperation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/devstorage.full_control", + "https://www.googleapis.com/auth/devstorage.read_write" + ] + } + } + }, "managedFolders": { "methods": { "delete": { @@ -1562,7 +1803,7 @@ "type": "string" }, "pageSize": { - "description": "Maximum number of items return in a single page of responses.", + "description": "Maximum number of items to return in a single page of responses.", "format": "int32", "location": "query", "minimum": "0", @@ -3855,6 +4096,10 @@ "description": "The modification time of the cache instance metadata in RFC 3339 format.", "format": "date-time", "type": "string" + }, + "zone": { + "description": "The zone in which the cache instance is running. For example, us-central1-a.", + "type": "string" } }, "type": "object" @@ -4005,6 +4250,16 @@ "description": "HTTP 1.1 Entity tag for the bucket.", "type": "string" }, + "hierarchicalNamespace": { + "description": "The bucket's hierarchical namespace configuration.", + "properties": { + "enabled": { + "description": "When set to true, hierarchical namespace is enabled for this bucket.", + "type": "boolean" + } + }, + "type": "object" + }, "iamConfiguration": { "description": "The bucket's IAM configuration.", "properties": { @@ -4592,6 +4847,82 @@ }, "type": "object" }, + "Folder": { + "description": "A folder. Only available in buckets with hierarchical namespace enabled.", + "id": "Folder", + "properties": { + "bucket": { + "description": "The name of the bucket containing this folder.", + "type": "string" + }, + "createTime": { + "description": "The creation time of the folder in RFC 3339 format.", + "format": "date-time", + "type": "string" + }, + "id": { + "description": "The ID of the folder, including the bucket name, folder name.", + "type": "string" + }, + "kind": { + "default": "storage#folder", + "description": "The kind of item this is. For folders, this is always storage#folder.", + "type": "string" + }, + "metageneration": { + "description": "The version of the metadata for this folder. Used for preconditions and for detecting changes in metadata.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "The name of the folder. Required if not specified by URL parameter.", + "type": "string" + }, + "pendingRenameInfo": { + "description": "Only present if the folder is part of an ongoing rename folder operation. Contains information which can be used to query the operation status.", + "properties": { + "operationId": { + "description": "The ID of the rename folder operation.", + "type": "string" + } + }, + "type": "object" + }, + "selfLink": { + "description": "The link to this folder.", + "type": "string" + }, + "updateTime": { + "description": "The modification time of the folder metadata in RFC 3339 format.", + "format": "date-time", + "type": "string" + } + }, + "type": "object" + }, + "Folders": { + "description": "A list of folders.", + "id": "Folders", + "properties": { + "items": { + "description": "The list of items.", + "items": { + "$ref": "Folder" + }, + "type": "array" + }, + "kind": { + "default": "storage#folders", + "description": "The kind of item this is. For lists of folders, this is always storage#folders.", + "type": "string" + }, + "nextPageToken": { + "description": "The continuation token, used to page through large result sets. Provide this value in a subsequent request to return the next page of results.", + "type": "string" + } + }, + "type": "object" + }, "GoogleLongrunningListOperationsResponse": { "description": "The response message for storage.buckets.operations.list.", "id": "GoogleLongrunningListOperationsResponse", diff --git a/discovery/googleapis/storagetransfer__v1.json b/discovery/googleapis/storagetransfer__v1.json index 1768d9e2e..c640bc738 100644 --- a/discovery/googleapis/storagetransfer__v1.json +++ b/discovery/googleapis/storagetransfer__v1.json @@ -24,7 +24,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231109", + "revision": "20240217", "rootUrl": "https://storagetransfer.googleapis.com/", "servicePath": "", "title": "Storage Transfer API", @@ -732,7 +732,7 @@ "type": "string" }, "credentialsSecret": { - "description": "Optional. The Resource name of a secret in Secret Manager. The Azure SAS token must be stored in Secret Manager in JSON format: { \"sas_token\" : \"SAS_TOKEN\" } GoogleServiceAccount must be granted `roles/secretmanager.secretAccessor` for the resource. See [Configure access to a source: Microsoft Azure Blob Storage] (https://cloud.google.com/storage-transfer/docs/source-microsoft-azure#secret_manager) for more information. If `credentials_secret` is specified, do not specify azure_credentials. This feature is in [preview](https://cloud.google.com/terms/service-terms#1). Format: `projects/{project_number}/secrets/{secret_name}`", + "description": "Optional. The Resource name of a secret in Secret Manager. AWS credentials must be stored in Secret Manager in JSON format: { \"access_key_id\": \"ACCESS_KEY_ID\", \"secret_access_key\": \"SECRET_ACCESS_KEY\" } GoogleServiceAccount must be granted `roles/secretmanager.secretAccessor` for the resource. See [Configure access to a source: Amazon S3] (https://cloud.google.com/storage-transfer/docs/source-amazon-s3#secret_manager) for more information. If `credentials_secret` is specified, do not specify role_arn or aws_access_key. This feature is in [preview](https://cloud.google.com/terms/service-terms#1). Format: `projects/{project_number}/secrets/{secret_name}`", "type": "string" }, "path": { @@ -796,6 +796,21 @@ }, "type": "object" }, + "BatchTaskSpec": { + "id": "BatchTaskSpec", + "properties": { + "deleteObjectTaskSpec": { + "$ref": "DeleteObjectTaskSpec" + }, + "listTaskSpec": { + "$ref": "ListTaskSpec" + }, + "metadataTaskSpec": { + "$ref": "MetadataTaskSpec" + } + }, + "type": "object" + }, "CancelOperationRequest": { "description": "The request message for Operations.CancelOperation.", "id": "CancelOperationRequest", @@ -824,6 +839,26 @@ }, "type": "object" }, + "DeleteObjectTaskSpec": { + "id": "DeleteObjectTaskSpec", + "properties": { + "generation": { + "format": "int64", + "type": "string" + }, + "hardDeleteVersionedObject": { + "type": "boolean" + }, + "name": { + "type": "string" + }, + "size": { + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "Empty": { "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": "Empty", @@ -938,6 +973,10 @@ "description": "Required. Cloud Storage bucket name. Must meet [Bucket Name Requirements](/storage/docs/naming#requirements).", "type": "string" }, + "managedFolderTransferEnabled": { + "description": "Transfer managed folders is in public preview. This option is only applicable to the Cloud Storage source bucket. If set to true: - The source managed folder will be transferred to the destination bucket - The destination managed folder will always be overwritten, other OVERWRITE options will not be supported", + "type": "boolean" + }, "path": { "description": "Root path to transfer objects. Must be an empty string or full path name that ends with a '/'. This field is treated as an object prefix. As such, it should generally not begin with a '/'. The root path value must meet [Object Name Requirements](/storage/docs/naming#objectnames).", "type": "string" @@ -960,6 +999,17 @@ }, "type": "object" }, + "HdfsData": { + "description": "An HdfsData resource specifies a path within an HDFS entity (e.g. a cluster). All cluster-specific settings, such as namenodes and ports, are configured on the transfer agents servicing requests, so HdfsData only contains the root path to the data in our transfer.", + "id": "HdfsData", + "properties": { + "path": { + "description": "Root path to transfer files.", + "type": "string" + } + }, + "type": "object" + }, "HttpData": { "description": "An HttpData resource specifies a list of objects on the web to be transferred over HTTP. The information of the objects to be transferred is contained in a file referenced by a URL. The first line in the file must be `\"TsvHttpData-1.0\"`, which specifies the format of the file. Subsequent lines specify the information of the list of objects, one object per list entry. Each entry has the following tab-delimited fields: * **HTTP URL** — The location of the object. * **Length** — The size of the object in bytes. * **MD5** — The base64-encoded MD5 hash of the object. For an example of a valid TSV file, see [Transferring data from URLs](https://cloud.google.com/storage-transfer/docs/create-url-list). When transferring data based on a URL list, keep the following in mind: * When an object located at `http(s)://hostname:port/` is transferred to a data sink, the name of the object at the data sink is `/`. * If the specified size of an object does not match the actual size of the object fetched, the object is not transferred. * If the specified MD5 does not match the MD5 computed from the transferred bytes, the object transfer fails. * Ensure that each URL you specify is publicly accessible. For example, in Cloud Storage you can [share an object publicly] (/storage/docs/cloud-console#_sharingdata) and get a link to it. * Storage Transfer Service obeys `robots.txt` rules and requires the source HTTP server to support `Range` requests and to return a `Content-Length` header in each response. * ObjectConditions have no effect when filtering objects to transfer.", "id": "HttpData", @@ -1007,6 +1057,18 @@ }, "type": "object" }, + "ListTaskSpec": { + "id": "ListTaskSpec", + "properties": { + "manifest": { + "$ref": "Manifest" + }, + "objectPrefixes": { + "$ref": "ObjectPrefixes" + } + }, + "type": "object" + }, "ListTransferJobsResponse": { "description": "Response from ListTransferJobs.", "id": "ListTransferJobsResponse", @@ -1072,6 +1134,18 @@ }, "type": "object" }, + "Manifest": { + "id": "Manifest", + "properties": { + "manifestLocation": { + "type": "string" + }, + "root": { + "type": "string" + } + }, + "type": "object" + }, "MetadataOptions": { "description": "Specifies the metadata options for running a transfer.", "id": "MetadataOptions", @@ -1183,7 +1257,7 @@ "type": "string" }, "timeCreated": { - "description": "Specifies how each object's `timeCreated` metadata is preserved for transfers between Google Cloud Storage buckets. If unspecified, the default behavior is the same as TIME_CREATED_SKIP.", + "description": "Specifies how each object's `timeCreated` metadata is preserved for transfers. If unspecified, the default behavior is the same as TIME_CREATED_SKIP.", "enum": [ "TIME_CREATED_UNSPECIFIED", "TIME_CREATED_SKIP", @@ -1192,7 +1266,7 @@ "enumDescriptions": [ "TimeCreated behavior is unspecified.", "Do not preserve the `timeCreated` metadata from the source object.", - "Preserves the source object's `timeCreated` metadata in the `customTime` field in the destination object. Note that any value stored in the source object's `customTime` field will not be propagated to the destination object." + "Preserves the source object's `timeCreated` or `lastModified` metadata in the `customTime` field in the destination object. Note that any value stored in the source object's `customTime` field will not be propagated to the destination object." ], "type": "string" }, @@ -1213,6 +1287,26 @@ }, "type": "object" }, + "MetadataTaskSpec": { + "id": "MetadataTaskSpec", + "properties": { + "bucketName": { + "type": "string" + }, + "generation": { + "format": "int64", + "type": "string" + }, + "key": { + "type": "string" + }, + "size": { + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "NotificationConfig": { "description": "Specification to configure notifications published to Pub/Sub. Notifications are published to the customer-provided topic using the following `PubsubMessage.attributes`: * `\"eventType\"`: one of the EventType values * `\"payloadFormat\"`: one of the PayloadFormat values * `\"projectId\"`: the project_id of the `TransferOperation` * `\"transferJobName\"`: the transfer_job_name of the `TransferOperation` * `\"transferOperationName\"`: the name of the `TransferOperation` The `PubsubMessage.data` contains a TransferOperation resource formatted according to the specified `PayloadFormat`.", "id": "NotificationConfig", @@ -1298,6 +1392,30 @@ }, "type": "object" }, + "ObjectPrefix": { + "id": "ObjectPrefix", + "properties": { + "bucketName": { + "type": "string" + }, + "objectPrefix": { + "type": "string" + } + }, + "type": "object" + }, + "ObjectPrefixes": { + "id": "ObjectPrefixes", + "properties": { + "objectPrefixes": { + "items": { + "$ref": "ObjectPrefix" + }, + "type": "array" + } + }, + "type": "object" + }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", @@ -1855,6 +1973,10 @@ "$ref": "GcsData", "description": "For transfers between file systems, specifies a Cloud Storage bucket to be used as an intermediate location through which to transfer data. See [Transfer data between file systems](https://cloud.google.com/storage-transfer/docs/file-to-file) for more information." }, + "hdfsDataSource": { + "$ref": "HdfsData", + "description": "An HDFS cluster data source." + }, "httpDataSource": { "$ref": "HttpData", "description": "An HTTP URL data source." diff --git a/discovery/googleapis/streetviewpublish__v1.json b/discovery/googleapis/streetviewpublish__v1.json index 41ad4af7e..11fa80833 100644 --- a/discovery/googleapis/streetviewpublish__v1.json +++ b/discovery/googleapis/streetviewpublish__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240226", "rootUrl": "https://streetviewpublish.googleapis.com/", "servicePath": "", "title": "Street View Publish API", @@ -1062,7 +1062,9 @@ "UNSUPPORTED_CAMERA", "NOT_OUTDOORS", "INSUFFICIENT_VIDEO_FRAMES", - "INSUFFICIENT_MOVEMENT" + "INSUFFICIENT_MOVEMENT", + "MAST_DOWN", + "CAMERA_COVERED" ], "enumDescriptions": [ "The failure reason is unspecified, this is the default value.", @@ -1087,7 +1089,9 @@ "The camera is not supported.", "Some frames were indoors, which is unsupported.", "Not enough video frames.", - "Not enough moving data." + "Not enough moving data.", + "Mast is down.", + "Camera is covered." ], "readOnly": true, "type": "string" diff --git a/discovery/googleapis/sts__v1.json b/discovery/googleapis/sts__v1.json index e45fec5c7..816c08f0d 100644 --- a/discovery/googleapis/sts__v1.json +++ b/discovery/googleapis/sts__v1.json @@ -16,7 +16,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231112", + "revision": "20240220", "rootUrl": "https://sts.googleapis.com/", "servicePath": "", "title": "Security Token Service API", @@ -160,14 +160,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, diff --git a/discovery/googleapis/tagmanager__v1.json b/discovery/googleapis/tagmanager__v1.json index c3e8b0cbc..880e6592d 100644 --- a/discovery/googleapis/tagmanager__v1.json +++ b/discovery/googleapis/tagmanager__v1.json @@ -43,7 +43,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231108", + "revision": "20240226", "rootUrl": "https://tagmanager.googleapis.com/", "servicePath": "", "title": "Tag Manager API", diff --git a/discovery/googleapis/tagmanager__v2.json b/discovery/googleapis/tagmanager__v2.json index ef6dc33b0..bf108902a 100644 --- a/discovery/googleapis/tagmanager__v2.json +++ b/discovery/googleapis/tagmanager__v2.json @@ -43,7 +43,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231108", + "revision": "20240226", "rootUrl": "https://tagmanager.googleapis.com/", "servicePath": "", "title": "Tag Manager API", diff --git a/discovery/googleapis/tasks__v1.json b/discovery/googleapis/tasks__v1.json index b0b009f35..ca42f27ee 100644 --- a/discovery/googleapis/tasks__v1.json +++ b/discovery/googleapis/tasks__v1.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231121", + "revision": "20240227", "rootUrl": "https://tasks.googleapis.com/", "servicePath": "", "title": "Google Tasks API", @@ -411,7 +411,7 @@ "type": "string" }, "maxResults": { - "description": "Maximum number of task lists returned on one page. Optional. The default is 20 (max allowed: 100).", + "description": "Maximum number of tasks returned on one page. Optional. The default is 20 (max allowed: 100).", "format": "int32", "location": "query", "type": "integer" diff --git a/discovery/googleapis/testing__v1.json b/discovery/googleapis/testing__v1.json index 1a2bc5621..64491cc33 100644 --- a/discovery/googleapis/testing__v1.json +++ b/discovery/googleapis/testing__v1.json @@ -27,7 +27,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231113", + "revision": "20240223", "rootUrl": "https://testing.googleapis.com/", "servicePath": "", "title": "Cloud Testing API", @@ -118,7 +118,13 @@ "httpMethod": "POST", "id": "testing.applicationDetailService.getApkDetails", "parameterOrder": [], - "parameters": {}, + "parameters": { + "bundleLocation.gcsPath": { + "description": "A path to a file in Google Cloud Storage. Example: gs://build-app-1414623860166/app%40debug-unaligned.apk These paths are expected to be url encoded (percent encoding)", + "location": "query", + "type": "string" + } + }, "path": "v1/applicationDetailService/getApkDetails", "request": { "$ref": "FileReference" @@ -898,7 +904,7 @@ "type": "object" }, "ApkDetail": { - "description": "Android application details based on application manifest and apk archive contents.", + "description": "Android application details based on application manifest and archive contents.", "id": "ApkDetail", "properties": { "apkManifest": { @@ -1329,12 +1335,12 @@ "type": "object" }, "GetApkDetailsResponse": { - "description": "Response containing the details of the specified Android application APK.", + "description": "Response containing the details of the specified Android application.", "id": "GetApkDetailsResponse", "properties": { "apkDetail": { "$ref": "ApkDetail", - "description": "Details of the Android APK." + "description": "Details of the Android App." } }, "type": "object" @@ -1764,6 +1770,23 @@ }, "type": "object" }, + "MatrixErrorDetail": { + "description": "Describes a single error or issue with a matrix.", + "id": "MatrixErrorDetail", + "properties": { + "message": { + "description": "Output only. A human-readable message about how the error in the TestMatrix. Expands on the `reason` field with additional details and possible options to fix the issue.", + "readOnly": true, + "type": "string" + }, + "reason": { + "description": "Output only. The reason for the error. This is a constant value in UPPER_SNAKE_CASE that identifies the cause of the error.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "Metadata": { "description": "A tag within a manifest. https://developer.android.com/guide/topics/manifest/meta-data-element.html", "id": "Metadata", @@ -1879,6 +1902,12 @@ "description": "Output only. Identifies supported clients for DirectAccess for this Android version.", "readOnly": true }, + "interactiveDeviceAvailabilityEstimate": { + "description": "Output only. The estimated wait time for a single interactive device session using Direct Access.", + "format": "google-duration", + "readOnly": true, + "type": "string" + }, "versionId": { "description": "An Android version.", "type": "string" @@ -2311,6 +2340,14 @@ "$ref": "EnvironmentMatrix", "description": "Required. The devices the tests are being executed on." }, + "extendedInvalidMatrixDetails": { + "description": "Output only. Details about why a matrix was deemed invalid. If multiple checks can be safely performed, they will be reported but no assumptions should be made about the length of this list.", + "items": { + "$ref": "MatrixErrorDetail" + }, + "readOnly": true, + "type": "array" + }, "failFast": { "description": "If true, only a single attempt at most will be made to run each execution/shard in the matrix. Flaky test attempts are not affected. Normally, 2 or more attempts are made if a potential infrastructure issue is detected. This feature is for latency sensitive workloads. The incidence of execution failures may be significantly greater for fail-fast matrices and support is more limited because of that expectation.", "type": "boolean" diff --git a/discovery/googleapis/texttospeech__v1.json b/discovery/googleapis/texttospeech__v1.json index 23f32814a..aa3ad7f02 100644 --- a/discovery/googleapis/texttospeech__v1.json +++ b/discovery/googleapis/texttospeech__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231113", + "revision": "20240221", "rootUrl": "https://texttospeech.googleapis.com/", "servicePath": "", "title": "Cloud Text-to-Speech API", @@ -419,6 +419,12 @@ "description": "Metadata for response returned by the `SynthesizeLongAudio` method.", "id": "GoogleCloudTexttospeechV1SynthesizeLongAudioMetadata", "properties": { + "lastUpdateTime": { + "deprecated": true, + "description": "Deprecated. Do not use.", + "format": "google-datetime", + "type": "string" + }, "progressPercentage": { "description": "The progress of the most recent processing update in percentage, ie. 70.0%.", "format": "double", @@ -545,6 +551,12 @@ "description": "Metadata for response returned by the `SynthesizeLongAudio` method.", "id": "SynthesizeLongAudioMetadata", "properties": { + "lastUpdateTime": { + "deprecated": true, + "description": "Deprecated. Do not use.", + "format": "google-datetime", + "type": "string" + }, "progressPercentage": { "description": "The progress of the most recent processing update in percentage, ie. 70.0%.", "format": "double", diff --git a/discovery/googleapis/tpu__v1.json b/discovery/googleapis/tpu__v1.json index caecaff39..7f48edba2 100644 --- a/discovery/googleapis/tpu__v1.json +++ b/discovery/googleapis/tpu__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231102", + "revision": "20240215", "rootUrl": "https://tpu.googleapis.com/", "servicePath": "", "title": "Cloud TPU API", diff --git a/discovery/googleapis/tpu__v2.json b/discovery/googleapis/tpu__v2.json index 36dbd2b3b..f0b66ccb4 100644 --- a/discovery/googleapis/tpu__v2.json +++ b/discovery/googleapis/tpu__v2.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231102", + "revision": "20240215", "rootUrl": "https://tpu.googleapis.com/", "servicePath": "", "title": "Cloud TPU API", @@ -645,6 +645,172 @@ } } }, + "queuedResources": { + "methods": { + "create": { + "description": "Creates a QueuedResource TPU instance.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/queuedResources", + "httpMethod": "POST", + "id": "tpu.projects.locations.queuedResources.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "queuedResourceId": { + "description": "Optional. The unqualified resource name. Should follow the `^[A-Za-z0-9_.~+%-]+$` regex format.", + "location": "query", + "type": "string" + }, + "requestId": { + "description": "Optional. Idempotent request UUID.", + "location": "query", + "type": "string" + } + }, + "path": "v2/{+parent}/queuedResources", + "request": { + "$ref": "QueuedResource" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "delete": { + "description": "Deletes a QueuedResource TPU instance.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/queuedResources/{queuedResourcesId}", + "httpMethod": "DELETE", + "id": "tpu.projects.locations.queuedResources.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "force": { + "description": "Optional. If set to true, all running nodes belonging to this queued resource will be deleted first and then the queued resource will be deleted. Otherwise (i.e. force=false), the queued resource will only be deleted if its nodes have already been deleted or the queued resource is in the ACCEPTED, FAILED, or SUSPENDED state.", + "location": "query", + "type": "boolean" + }, + "name": { + "description": "Required. The resource name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/queuedResources/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. Idempotent request UUID.", + "location": "query", + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Gets details of a queued resource.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/queuedResources/{queuedResourcesId}", + "httpMethod": "GET", + "id": "tpu.projects.locations.queuedResources.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/queuedResources/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}", + "response": { + "$ref": "QueuedResource" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists queued resources.", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/queuedResources", + "httpMethod": "GET", + "id": "tpu.projects.locations.queuedResources.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of items to return.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. The next_page_token value returned from a previous List request, if any.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource name.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+parent}/queuedResources", + "response": { + "$ref": "ListQueuedResourcesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "reset": { + "description": "Resets a QueuedResource TPU instance", + "flatPath": "v2/projects/{projectsId}/locations/{locationsId}/queuedResources/{queuedResourcesId}:reset", + "httpMethod": "POST", + "id": "tpu.projects.locations.queuedResources.reset", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the queued resource.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/queuedResources/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2/{+name}:reset", + "request": { + "$ref": "ResetQueuedResourceRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } + }, "runtimeVersions": { "methods": { "get": { @@ -775,6 +941,12 @@ }, "type": "object" }, + "AcceptedData": { + "description": "Further data for the accepted state.", + "id": "AcceptedData", + "properties": {}, + "type": "object" + }, "AccessConfig": { "description": "An access config attached to the TPU worker.", "id": "AccessConfig", @@ -787,6 +959,12 @@ }, "type": "object" }, + "ActiveData": { + "description": "Further data for the active state.", + "id": "ActiveData", + "properties": {}, + "type": "object" + }, "AttachedDisk": { "description": "A node-attached disk resource. Next ID: 8;", "id": "AttachedDisk", @@ -812,12 +990,36 @@ }, "type": "object" }, + "CreatingData": { + "description": "Further data for the creating state.", + "id": "CreatingData", + "properties": {}, + "type": "object" + }, + "DeletingData": { + "description": "Further data for the deleting state.", + "id": "DeletingData", + "properties": {}, + "type": "object" + }, "Empty": { "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": "Empty", "properties": {}, "type": "object" }, + "FailedData": { + "description": "Further data for the failed state.", + "id": "FailedData", + "properties": { + "error": { + "$ref": "Status", + "description": "Output only. The error that caused the queued resource to enter the FAILED state.", + "readOnly": true + } + }, + "type": "object" + }, "GenerateServiceIdentityRequest": { "description": "Request for GenerateServiceIdentity.", "id": "GenerateServiceIdentityRequest", @@ -867,6 +1069,18 @@ }, "type": "object" }, + "Guaranteed": { + "description": "Guaranteed tier definition.", + "id": "Guaranteed", + "properties": { + "minDuration": { + "description": "Optional. Defines the minimum duration of the guarantee. If specified, the requested resources will only be provisioned if they can be allocated for at least the given duration.", + "format": "google-duration", + "type": "string" + } + }, + "type": "object" + }, "GuestAttributes": { "description": "A guest attributes.", "id": "GuestAttributes", @@ -915,6 +1129,23 @@ }, "type": "object" }, + "Interval": { + "description": "Represents a time interval, encoded as a Timestamp start (inclusive) and a Timestamp end (exclusive). The start must be less than or equal to the end. When the start equals the end, the interval is empty (matches no time). When both start and end are unspecified, the interval matches any time.", + "id": "Interval", + "properties": { + "endTime": { + "description": "Optional. Exclusive end of the interval. If specified, a Timestamp matching this interval will have to be before the end.", + "format": "google-datetime", + "type": "string" + }, + "startTime": { + "description": "Optional. Inclusive start of the interval. If specified, a Timestamp matching this interval will have to be the same or after the start.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "ListAcceleratorTypesResponse": { "description": "Response for ListAcceleratorTypes.", "id": "ListAcceleratorTypesResponse", @@ -1001,6 +1232,31 @@ }, "type": "object" }, + "ListQueuedResourcesResponse": { + "description": "Response for ListQueuedResources.", + "id": "ListQueuedResourcesResponse", + "properties": { + "nextPageToken": { + "description": "The next page token or empty if none.", + "type": "string" + }, + "queuedResources": { + "description": "The listed queued resources.", + "items": { + "$ref": "QueuedResource" + }, + "type": "array" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, "ListRuntimeVersionsResponse": { "description": "Response for ListRuntimeVersions.", "id": "ListRuntimeVersionsResponse", @@ -1060,6 +1316,22 @@ }, "type": "object" }, + "MultisliceParams": { + "description": "Parameters to specify for multislice QueuedResource requests. This message must be populated in case of multislice requests instead of node_id.", + "id": "MultisliceParams", + "properties": { + "nodeCount": { + "description": "Required. Number of nodes with this spec. The system will attempt to provison \"node_count\" nodes as part of the request. This needs to be > 1.", + "format": "int32", + "type": "integer" + }, + "nodeIdPrefix": { + "description": "Optional. Prefix of node_ids in case of multislice request. Should follow the `^[A-Za-z0-9_.~+%-]+$` regex format. If node_count = 3 and node_id_prefix = \"np\", node ids of nodes created will be \"np-0\", \"np-1\", \"np-2\". If this field is not provided we use queued_resource_id as the node_id_prefix.", + "type": "string" + } + }, + "type": "object" + }, "NetworkConfig": { "description": "Network related configurations.", "id": "NetworkConfig", @@ -1076,6 +1348,11 @@ "description": "The name of the network for the TPU node. It must be a preexisting Google Compute Engine network. If none is provided, \"default\" will be used.", "type": "string" }, + "queueCount": { + "description": "Optional. Specifies networking queue count for TPU VM instance's network interface.", + "format": "int32", + "type": "integer" + }, "subnetwork": { "description": "The name of the subnetwork for the TPU node. It must be a preexisting Google Compute Engine subnetwork. If none is provided, \"default\" will be used.", "type": "string" @@ -1298,6 +1575,29 @@ }, "type": "object" }, + "NodeSpec": { + "description": "Details of the TPU node(s) being requested. Users can request either a single node or multiple nodes. NodeSpec provides the specification for node(s) to be created.", + "id": "NodeSpec", + "properties": { + "multisliceParams": { + "$ref": "MultisliceParams", + "description": "Optional. Fields to specify in case of multislice request." + }, + "node": { + "$ref": "Node", + "description": "Required. The node." + }, + "nodeId": { + "description": "Optional. The unqualified resource name. Should follow the `^[A-Za-z0-9_.~+%-]+$` regex format. This is only specified when requesting a single node. In case of multislice requests, multislice_params must be populated instead.", + "type": "string" + }, + "parent": { + "description": "Required. The parent resource name.", + "type": "string" + } + }, + "type": "object" + }, "Operation": { "description": "This resource represents a long-running operation that is the result of a network API call.", "id": "Operation", @@ -1370,6 +1670,183 @@ }, "type": "object" }, + "ProvisioningData": { + "description": "Further data for the provisioning state.", + "id": "ProvisioningData", + "properties": {}, + "type": "object" + }, + "QueuedResource": { + "description": "A QueuedResource represents a request for resources that will be placed in a queue and fulfilled when the necessary resources are available.", + "id": "QueuedResource", + "properties": { + "createTime": { + "description": "Output only. The time when the QueuedResource was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "guaranteed": { + "$ref": "Guaranteed", + "description": "Optional. The Guaranteed tier" + }, + "name": { + "description": "Output only. Immutable. The name of the QueuedResource.", + "readOnly": true, + "type": "string" + }, + "queueingPolicy": { + "$ref": "QueueingPolicy", + "description": "Optional. The queueing policy of the QueuedRequest." + }, + "reservationName": { + "description": "Optional. Name of the reservation in which the resource should be provisioned. Format: projects/{project}/locations/{zone}/reservations/{reservation}", + "type": "string" + }, + "spot": { + "$ref": "Spot", + "description": "Optional. The Spot tier." + }, + "state": { + "$ref": "QueuedResourceState", + "description": "Output only. State of the QueuedResource request.", + "readOnly": true + }, + "tpu": { + "$ref": "Tpu", + "description": "Optional. Defines a TPU resource." + } + }, + "type": "object" + }, + "QueuedResourceState": { + "description": "QueuedResourceState defines the details of the QueuedResource request.", + "id": "QueuedResourceState", + "properties": { + "acceptedData": { + "$ref": "AcceptedData", + "description": "Output only. Further data for the accepted state.", + "readOnly": true + }, + "activeData": { + "$ref": "ActiveData", + "description": "Output only. Further data for the active state.", + "readOnly": true + }, + "creatingData": { + "$ref": "CreatingData", + "description": "Output only. Further data for the creating state.", + "readOnly": true + }, + "deletingData": { + "$ref": "DeletingData", + "description": "Output only. Further data for the deleting state.", + "readOnly": true + }, + "failedData": { + "$ref": "FailedData", + "description": "Output only. Further data for the failed state.", + "readOnly": true + }, + "provisioningData": { + "$ref": "ProvisioningData", + "description": "Output only. Further data for the provisioning state.", + "readOnly": true + }, + "state": { + "description": "Output only. State of the QueuedResource request.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "ACCEPTED", + "PROVISIONING", + "FAILED", + "DELETING", + "ACTIVE", + "SUSPENDING", + "SUSPENDED", + "WAITING_FOR_RESOURCES" + ], + "enumDescriptions": [ + "State of the QueuedResource request is not known/set.", + "The QueuedResource request has been received. We're still working on determining if we will be able to honor this request.", + "The QueuedResource request has passed initial validation/admission control and has been persisted in the queue.", + "The QueuedResource request has been selected. The associated resources are currently being provisioned (or very soon will begin provisioning).", + "The request could not be completed. This may be due to some late-discovered problem with the request itself, or due to unavailability of resources within the constraints of the request (e.g., the 'valid until' start timing constraint expired).", + "The QueuedResource is being deleted.", + "The resources specified in the QueuedResource request have been provisioned and are ready for use by the end-user/consumer.", + "The resources specified in the QueuedResource request are being deleted. This may have been initiated by the user, or the Cloud TPU service. Inspect the state data for more details.", + "The resources specified in the QueuedResource request have been deleted.", + "The QueuedResource request has passed initial validation and has been persisted in the queue. It will remain in this state until there are sufficient free resources to begin provisioning your request. Wait times will vary significantly depending on demand levels. When demand is high, not all requests can be immediately provisioned. If you need more reliable obtainability of TPUs consider purchasing a reservation. To put a limit on how long you are willing to wait, use [timing constraints](https://cloud.google.com/tpu/docs/queued-resources#request_a_queued_resource_before_a_specified_time)." + ], + "readOnly": true, + "type": "string" + }, + "stateInitiator": { + "description": "Output only. The initiator of the QueuedResources's current state. Used to indicate whether the SUSPENDING/SUSPENDED state was initiated by the user or the service.", + "enum": [ + "STATE_INITIATOR_UNSPECIFIED", + "USER", + "SERVICE" + ], + "enumDescriptions": [ + "The state initiator is unspecified.", + "The current QueuedResource state was initiated by the user.", + "The current QueuedResource state was initiated by the service." + ], + "readOnly": true, + "type": "string" + }, + "suspendedData": { + "$ref": "SuspendedData", + "description": "Output only. Further data for the suspended state.", + "readOnly": true + }, + "suspendingData": { + "$ref": "SuspendingData", + "description": "Output only. Further data for the suspending state.", + "readOnly": true + } + }, + "type": "object" + }, + "QueueingPolicy": { + "description": "Defines the policy of the QueuedRequest.", + "id": "QueueingPolicy", + "properties": { + "validAfterDuration": { + "description": "Optional. A relative time after which resources may be created.", + "format": "google-duration", + "type": "string" + }, + "validAfterTime": { + "description": "Optional. An absolute time after which resources may be created.", + "format": "google-datetime", + "type": "string" + }, + "validInterval": { + "$ref": "Interval", + "description": "Optional. An absolute time interval within which resources may be created." + }, + "validUntilDuration": { + "description": "Optional. A relative time after which resources should not be created. If the request cannot be fulfilled by this time the request will be failed.", + "format": "google-duration", + "type": "string" + }, + "validUntilTime": { + "description": "Optional. An absolute time after which resources should not be created. If the request cannot be fulfilled by this time the request will be failed.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, + "ResetQueuedResourceRequest": { + "description": "Request for ResetQueuedResource.", + "id": "ResetQueuedResourceRequest", + "properties": {}, + "type": "object" + }, "RuntimeVersion": { "description": "A runtime version that a Node can be configured with.", "id": "RuntimeVersion", @@ -1396,6 +1873,10 @@ "reserved": { "description": "Whether the node is created under a reservation.", "type": "boolean" + }, + "spot": { + "description": "Optional. Defines whether the node is Spot VM.", + "type": "boolean" } }, "type": "object" @@ -1440,6 +1921,12 @@ }, "type": "object" }, + "Spot": { + "description": "Spot tier definition.", + "id": "Spot", + "properties": {}, + "type": "object" + }, "StartNodeRequest": { "description": "Request for StartNode.", "id": "StartNodeRequest", @@ -1479,6 +1966,18 @@ "properties": {}, "type": "object" }, + "SuspendedData": { + "description": "Further data for the suspended state.", + "id": "SuspendedData", + "properties": {}, + "type": "object" + }, + "SuspendingData": { + "description": "Further data for the suspending state.", + "id": "SuspendingData", + "properties": {}, + "type": "object" + }, "Symptom": { "description": "A Symptom instance.", "id": "Symptom", @@ -1520,6 +2019,20 @@ } }, "type": "object" + }, + "Tpu": { + "description": "Details of the TPU resource(s) being requested.", + "id": "Tpu", + "properties": { + "nodeSpec": { + "description": "Optional. The TPU node(s) being requested.", + "items": { + "$ref": "NodeSpec" + }, + "type": "array" + } + }, + "type": "object" } } } diff --git a/discovery/googleapis/trafficdirector__v2.json b/discovery/googleapis/trafficdirector__v2.json index c9bd3ec96..b0a8051ea 100644 --- a/discovery/googleapis/trafficdirector__v2.json +++ b/discovery/googleapis/trafficdirector__v2.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231108", + "revision": "20240214", "rootUrl": "https://trafficdirector.googleapis.com/", "servicePath": "", "title": "Traffic Director API", diff --git a/discovery/googleapis/trafficdirector__v3.json b/discovery/googleapis/trafficdirector__v3.json index 2bbeb8551..f3bcfd0b8 100644 --- a/discovery/googleapis/trafficdirector__v3.json +++ b/discovery/googleapis/trafficdirector__v3.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231108", + "revision": "20240214", "rootUrl": "https://trafficdirector.googleapis.com/", "servicePath": "", "title": "Traffic Director API", @@ -173,6 +173,10 @@ "description": "All xds configs for a particular client.", "id": "ClientConfig", "properties": { + "clientScope": { + "description": "For xDS clients, the scope in which the data is used. For example, gRPC indicates the data plane target or that the data is associated with gRPC server(s).", + "type": "string" + }, "genericXdsConfigs": { "description": "Represents generic xDS config and the exact config structure depends on the type URL (like Cluster if it is CDS)", "items": { diff --git a/discovery/googleapis/transcoder__v1.json b/discovery/googleapis/transcoder__v1.json index 3e97d15fa..83b062aed 100644 --- a/discovery/googleapis/transcoder__v1.json +++ b/discovery/googleapis/transcoder__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231101", + "revision": "20240207", "rootUrl": "https://transcoder.googleapis.com/", "servicePath": "", "title": "Transcoder API", @@ -904,10 +904,24 @@ "type": "string" }, "frameRate": { - "description": "Required. The target video frame rate in frames per second (FPS). Must be less than or equal to 120. Will default to the input frame rate if larger than the input frame rate. The API will generate an output FPS that is divisible by the input FPS, and smaller or equal to the target FPS. See [Calculating frame rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate) for more information.", + "description": "Required. The target video frame rate in frames per second (FPS). Must be less than or equal to 120.", "format": "double", "type": "number" }, + "frameRateConversionStrategy": { + "description": "Optional. Frame rate conversion strategy for desired frame rate. The default is `DOWNSAMPLE`.", + "enum": [ + "FRAME_RATE_CONVERSION_STRATEGY_UNSPECIFIED", + "DOWNSAMPLE", + "DROP_DUPLICATE" + ], + "enumDescriptions": [ + "Unspecified frame rate conversion strategy.", + "Selectively retain frames to reduce the output frame rate. Every _n_ th frame is kept, where `n = ceil(input frame rate / target frame rate)`. When _n_ = 1 (that is, the target frame rate is greater than the input frame rate), the output frame rate matches the input frame rate. When _n_ > 1, frames are dropped and the output frame rate is equal to `(input frame rate / n)`. For more information, see [Calculate frame rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate).", + "Drop or duplicate frames to match the specified frame rate." + ], + "type": "string" + }, "gopDuration": { "description": "Select the GOP size based on the specified duration. The default is `3s`. Note that `gopDuration` must be less than or equal to [`segmentDuration`](#SegmentSettings), and [`segmentDuration`](#SegmentSettings) must be divisible by `gopDuration`.", "format": "google-duration", @@ -923,6 +937,10 @@ "format": "int32", "type": "integer" }, + "hlg": { + "$ref": "H264ColorFormatHLG", + "description": "Optional. HLG color format setting for H264." + }, "pixelFormat": { "description": "Pixel format to use. The default is `yuv420p`. Supported pixel formats: - `yuv420p` pixel format - `yuv422p` pixel format - `yuv444p` pixel format - `yuv420p10` 10-bit HDR pixel format - `yuv422p10` 10-bit HDR pixel format - `yuv444p10` 10-bit HDR pixel format - `yuv420p12` 12-bit HDR pixel format - `yuv422p12` 12-bit HDR pixel format - `yuv444p12` 12-bit HDR pixel format", "type": "string" @@ -939,6 +957,10 @@ "description": "Specify the mode. The default is `vbr`. Supported rate control modes: - `vbr` - variable bitrate - `crf` - constant rate factor", "type": "string" }, + "sdr": { + "$ref": "H264ColorFormatSDR", + "description": "Optional. SDR color format setting for H264." + }, "tune": { "description": "Enforces the specified codec tune. The available options are [FFmpeg-compatible](https://trac.ffmpeg.org/wiki/Encode/H.264#Tune). Note that certain values for this field may cause the transcoder to override other fields you set in the `H264CodecSettings` message.", "type": "string" @@ -961,6 +983,18 @@ }, "type": "object" }, + "H264ColorFormatHLG": { + "description": "Convert the input video to a Hybrid Log Gamma (HLG) video.", + "id": "H264ColorFormatHLG", + "properties": {}, + "type": "object" + }, + "H264ColorFormatSDR": { + "description": "Convert the input video to a Standard Dynamic Range (SDR) video.", + "id": "H264ColorFormatSDR", + "properties": {}, + "type": "object" + }, "H265CodecSettings": { "description": "H265 codec settings.", "id": "H265CodecSettings", @@ -998,10 +1032,24 @@ "type": "boolean" }, "frameRate": { - "description": "Required. The target video frame rate in frames per second (FPS). Must be less than or equal to 120. Will default to the input frame rate if larger than the input frame rate. The API will generate an output FPS that is divisible by the input FPS, and smaller or equal to the target FPS. See [Calculating frame rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate) for more information.", + "description": "Required. The target video frame rate in frames per second (FPS). Must be less than or equal to 120.", "format": "double", "type": "number" }, + "frameRateConversionStrategy": { + "description": "Optional. Frame rate conversion strategy for desired frame rate. The default is `DOWNSAMPLE`.", + "enum": [ + "FRAME_RATE_CONVERSION_STRATEGY_UNSPECIFIED", + "DOWNSAMPLE", + "DROP_DUPLICATE" + ], + "enumDescriptions": [ + "Unspecified frame rate conversion strategy.", + "Selectively retain frames to reduce the output frame rate. Every _n_ th frame is kept, where `n = ceil(input frame rate / target frame rate)`. When _n_ = 1 (that is, the target frame rate is greater than the input frame rate), the output frame rate matches the input frame rate. When _n_ > 1, frames are dropped and the output frame rate is equal to `(input frame rate / n)`. For more information, see [Calculate frame rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate).", + "Drop or duplicate frames to match the specified frame rate." + ], + "type": "string" + }, "gopDuration": { "description": "Select the GOP size based on the specified duration. The default is `3s`. Note that `gopDuration` must be less than or equal to [`segmentDuration`](#SegmentSettings), and [`segmentDuration`](#SegmentSettings) must be divisible by `gopDuration`.", "format": "google-duration", @@ -1012,11 +1060,19 @@ "format": "int32", "type": "integer" }, + "hdr10": { + "$ref": "H265ColorFormatHDR10", + "description": "Optional. HDR10 color format setting for H265." + }, "heightPixels": { "description": "The height of the video in pixels. Must be an even integer. When not specified, the height is adjusted to match the specified width and input aspect ratio. If both are omitted, the input height is used. For portrait videos that contain horizontal ASR and rotation metadata, provide the height, in pixels, per the horizontal ASR. The API calculates the width per the horizontal ASR. The API detects any rotation metadata and swaps the requested height and width for the output.", "format": "int32", "type": "integer" }, + "hlg": { + "$ref": "H265ColorFormatHLG", + "description": "Optional. HLG color format setting for H265." + }, "pixelFormat": { "description": "Pixel format to use. The default is `yuv420p`. Supported pixel formats: - `yuv420p` pixel format - `yuv422p` pixel format - `yuv444p` pixel format - `yuv420p10` 10-bit HDR pixel format - `yuv422p10` 10-bit HDR pixel format - `yuv444p10` 10-bit HDR pixel format - `yuv420p12` 12-bit HDR pixel format - `yuv422p12` 12-bit HDR pixel format - `yuv444p12` 12-bit HDR pixel format", "type": "string" @@ -1033,6 +1089,10 @@ "description": "Specify the mode. The default is `vbr`. Supported rate control modes: - `vbr` - variable bitrate - `crf` - constant rate factor", "type": "string" }, + "sdr": { + "$ref": "H265ColorFormatSDR", + "description": "Optional. SDR color format setting for H265." + }, "tune": { "description": "Enforces the specified codec tune. The available options are [FFmpeg-compatible](https://trac.ffmpeg.org/wiki/Encode/H.265). Note that certain values for this field may cause the transcoder to override other fields you set in the `H265CodecSettings` message.", "type": "string" @@ -1055,6 +1115,24 @@ }, "type": "object" }, + "H265ColorFormatHDR10": { + "description": "Convert the input video to a High Dynamic Range 10 (HDR10) video.", + "id": "H265ColorFormatHDR10", + "properties": {}, + "type": "object" + }, + "H265ColorFormatHLG": { + "description": "Convert the input video to a Hybrid Log Gamma (HLG) video.", + "id": "H265ColorFormatHLG", + "properties": {}, + "type": "object" + }, + "H265ColorFormatSDR": { + "description": "Convert the input video to a Standard Dynamic Range (SDR) video.", + "id": "H265ColorFormatSDR", + "properties": {}, + "type": "object" + }, "Image": { "description": "Overlaid image.", "id": "Image", @@ -1768,10 +1846,24 @@ "type": "integer" }, "frameRate": { - "description": "Required. The target video frame rate in frames per second (FPS). Must be less than or equal to 120. Will default to the input frame rate if larger than the input frame rate. The API will generate an output FPS that is divisible by the input FPS, and smaller or equal to the target FPS. See [Calculating frame rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate) for more information.", + "description": "Required. The target video frame rate in frames per second (FPS). Must be less than or equal to 120.", "format": "double", "type": "number" }, + "frameRateConversionStrategy": { + "description": "Optional. Frame rate conversion strategy for desired frame rate. The default is `DOWNSAMPLE`.", + "enum": [ + "FRAME_RATE_CONVERSION_STRATEGY_UNSPECIFIED", + "DOWNSAMPLE", + "DROP_DUPLICATE" + ], + "enumDescriptions": [ + "Unspecified frame rate conversion strategy.", + "Selectively retain frames to reduce the output frame rate. Every _n_ th frame is kept, where `n = ceil(input frame rate / target frame rate)`. When _n_ = 1 (that is, the target frame rate is greater than the input frame rate), the output frame rate matches the input frame rate. When _n_ > 1, frames are dropped and the output frame rate is equal to `(input frame rate / n)`. For more information, see [Calculate frame rate](https://cloud.google.com/transcoder/docs/concepts/frame-rate).", + "Drop or duplicate frames to match the specified frame rate." + ], + "type": "string" + }, "gopDuration": { "description": "Select the GOP size based on the specified duration. The default is `3s`. Note that `gopDuration` must be less than or equal to [`segmentDuration`](#SegmentSettings), and [`segmentDuration`](#SegmentSettings) must be divisible by `gopDuration`.", "format": "google-duration", @@ -1787,6 +1879,10 @@ "format": "int32", "type": "integer" }, + "hlg": { + "$ref": "Vp9ColorFormatHLG", + "description": "Optional. HLG color format setting for VP9." + }, "pixelFormat": { "description": "Pixel format to use. The default is `yuv420p`. Supported pixel formats: - `yuv420p` pixel format - `yuv422p` pixel format - `yuv444p` pixel format - `yuv420p10` 10-bit HDR pixel format - `yuv422p10` 10-bit HDR pixel format - `yuv444p10` 10-bit HDR pixel format - `yuv420p12` 12-bit HDR pixel format - `yuv422p12` 12-bit HDR pixel format - `yuv444p12` 12-bit HDR pixel format", "type": "string" @@ -1799,6 +1895,10 @@ "description": "Specify the mode. The default is `vbr`. Supported rate control modes: - `vbr` - variable bitrate", "type": "string" }, + "sdr": { + "$ref": "Vp9ColorFormatSDR", + "description": "Optional. SDR color format setting for VP9." + }, "widthPixels": { "description": "The width of the video in pixels. Must be an even integer. When not specified, the width is adjusted to match the specified height and input aspect ratio. If both are omitted, the input width is used. For portrait videos that contain horizontal ASR and rotation metadata, provide the width, in pixels, per the horizontal ASR. The API calculates the height per the horizontal ASR. The API detects any rotation metadata and swaps the requested height and width for the output.", "format": "int32", @@ -1807,6 +1907,18 @@ }, "type": "object" }, + "Vp9ColorFormatHLG": { + "description": "Convert the input video to a Hybrid Log Gamma (HLG) video.", + "id": "Vp9ColorFormatHLG", + "properties": {}, + "type": "object" + }, + "Vp9ColorFormatSDR": { + "description": "Convert the input video to a Standard Dynamic Range (SDR) video.", + "id": "Vp9ColorFormatSDR", + "properties": {}, + "type": "object" + }, "Widevine": { "description": "Widevine configuration.", "id": "Widevine", diff --git a/discovery/googleapis/translate__v3.json b/discovery/googleapis/translate__v3.json index a0cccc9a1..0d4a4e349 100644 --- a/discovery/googleapis/translate__v3.json +++ b/discovery/googleapis/translate__v3.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231013", + "revision": "20240131", "rootUrl": "https://translation.googleapis.com/", "servicePath": "", "title": "Cloud Translation API", @@ -139,7 +139,8 @@ "$ref": "DetectLanguageResponse" }, "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" ] }, "getSupportedLanguages": { @@ -174,7 +175,8 @@ "$ref": "SupportedLanguages" }, "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" ] }, "romanizeText": { @@ -202,7 +204,8 @@ "$ref": "RomanizeTextResponse" }, "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" ] }, "translateText": { @@ -230,13 +233,43 @@ "$ref": "TranslateTextResponse" }, "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" ] } }, "resources": { "locations": { "methods": { + "adaptiveMtTranslate": { + "description": "Translate text using Adaptive MT.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}:adaptiveMtTranslate", + "httpMethod": "POST", + "id": "translate.projects.locations.adaptiveMtTranslate", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Location to make a regional call. Format: `projects/{project-number-or-id}/locations/{location-id}`.", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+parent}:adaptiveMtTranslate", + "request": { + "$ref": "AdaptiveMtTranslateRequest" + }, + "response": { + "$ref": "AdaptiveMtTranslateResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" + ] + }, "batchTranslateDocument": { "description": "Translates a large volume of document in asynchronous batch mode. This function provides real-time output as the inputs are being processed. If caller cancels a request, the partial results (for an input file, it's all or nothing) may still be available on the specified output location. This call returns immediately and you can use google.longrunning.Operation.name to poll the status of the call.", "flatPath": "v3/projects/{projectsId}/locations/{locationsId}:batchTranslateDocument", @@ -318,7 +351,8 @@ "$ref": "DetectLanguageResponse" }, "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" ] }, "get": { @@ -379,7 +413,8 @@ "$ref": "SupportedLanguages" }, "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" ] }, "list": { @@ -449,7 +484,8 @@ "$ref": "RomanizeTextResponse" }, "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" ] }, "translateDocument": { @@ -506,11 +542,345 @@ "$ref": "TranslateTextResponse" }, "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" ] } }, "resources": { + "adaptiveMtDatasets": { + "methods": { + "create": { + "description": "Creates an Adaptive MT dataset.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/adaptiveMtDatasets", + "httpMethod": "POST", + "id": "translate.projects.locations.adaptiveMtDatasets.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. Name of the parent project. In form of `projects/{project-number-or-id}/locations/{location-id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+parent}/adaptiveMtDatasets", + "request": { + "$ref": "AdaptiveMtDataset" + }, + "response": { + "$ref": "AdaptiveMtDataset" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" + ] + }, + "delete": { + "description": "Deletes an Adaptive MT dataset, including all its entries and associated metadata.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/adaptiveMtDatasets/{adaptiveMtDatasetsId}", + "httpMethod": "DELETE", + "id": "translate.projects.locations.adaptiveMtDatasets.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the dataset. In the form of `projects/{project-number-or-id}/locations/{location-id}/adaptiveMtDatasets/{adaptive-mt-dataset-id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/adaptiveMtDatasets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" + ] + }, + "get": { + "description": "Gets the Adaptive MT dataset.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/adaptiveMtDatasets/{adaptiveMtDatasetsId}", + "httpMethod": "GET", + "id": "translate.projects.locations.adaptiveMtDatasets.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the dataset. In the form of `projects/{project-number-or-id}/locations/{location-id}/adaptiveMtDatasets/{adaptive-mt-dataset-id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/adaptiveMtDatasets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+name}", + "response": { + "$ref": "AdaptiveMtDataset" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" + ] + }, + "importAdaptiveMtFile": { + "description": "Imports an AdaptiveMtFile and adds all of its sentences into the AdaptiveMtDataset.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/adaptiveMtDatasets/{adaptiveMtDatasetsId}:importAdaptiveMtFile", + "httpMethod": "POST", + "id": "translate.projects.locations.adaptiveMtDatasets.importAdaptiveMtFile", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The resource name of the file, in form of `projects/{project-number-or-id}/locations/{location_id}/adaptiveMtDatasets/{dataset}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/adaptiveMtDatasets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+parent}:importAdaptiveMtFile", + "request": { + "$ref": "ImportAdaptiveMtFileRequest" + }, + "response": { + "$ref": "ImportAdaptiveMtFileResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" + ] + }, + "list": { + "description": "Lists all Adaptive MT datasets for which the caller has read permission.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/adaptiveMtDatasets", + "httpMethod": "GET", + "id": "translate.projects.locations.adaptiveMtDatasets.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. An expression for filtering the results of the request. Filter is not supported yet.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Requested page size. The server may return fewer results than requested. If unspecified, the server picks an appropriate default.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A token identifying a page of results the server should return. Typically, this is the value of ListAdaptiveMtDatasetsResponse.next_page_token returned from the previous call to `ListAdaptiveMtDatasets` method. The first page is returned if `page_token`is empty or missing.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the project from which to list the Adaptive MT datasets. `projects/{project-number-or-id}/locations/{location-id}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+parent}/adaptiveMtDatasets", + "response": { + "$ref": "ListAdaptiveMtDatasetsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" + ] + } + }, + "resources": { + "adaptiveMtFiles": { + "methods": { + "delete": { + "description": "Deletes an AdaptiveMtFile along with its sentences.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/adaptiveMtDatasets/{adaptiveMtDatasetsId}/adaptiveMtFiles/{adaptiveMtFilesId}", + "httpMethod": "DELETE", + "id": "translate.projects.locations.adaptiveMtDatasets.adaptiveMtFiles.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the file to delete, in form of `projects/{project-number-or-id}/locations/{location_id}/adaptiveMtDatasets/{dataset}/adaptiveMtFiles/{file}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/adaptiveMtDatasets/[^/]+/adaptiveMtFiles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" + ] + }, + "get": { + "description": "Gets and AdaptiveMtFile", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/adaptiveMtDatasets/{adaptiveMtDatasetsId}/adaptiveMtFiles/{adaptiveMtFilesId}", + "httpMethod": "GET", + "id": "translate.projects.locations.adaptiveMtDatasets.adaptiveMtFiles.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the file, in form of `projects/{project-number-or-id}/locations/{location_id}/adaptiveMtDatasets/{dataset}/adaptiveMtFiles/{file}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/adaptiveMtDatasets/[^/]+/adaptiveMtFiles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+name}", + "response": { + "$ref": "AdaptiveMtFile" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" + ] + }, + "list": { + "description": "Lists all AdaptiveMtFiles associated to an AdaptiveMtDataset.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/adaptiveMtDatasets/{adaptiveMtDatasetsId}/adaptiveMtFiles", + "httpMethod": "GET", + "id": "translate.projects.locations.adaptiveMtDatasets.adaptiveMtFiles.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. ", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A token identifying a page of results the server should return. Typically, this is the value of ListAdaptiveMtFilesResponse.next_page_token returned from the previous call to `ListAdaptiveMtFiles` method. The first page is returned if `page_token`is empty or missing.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the project from which to list the Adaptive MT files. `projects/{project}/locations/{location}/adaptiveMtDatasets/{dataset}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/adaptiveMtDatasets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+parent}/adaptiveMtFiles", + "response": { + "$ref": "ListAdaptiveMtFilesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" + ] + } + }, + "resources": { + "adaptiveMtSentences": { + "methods": { + "list": { + "description": "Lists all AdaptiveMtSentences under a given file/dataset.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/adaptiveMtDatasets/{adaptiveMtDatasetsId}/adaptiveMtFiles/{adaptiveMtFilesId}/adaptiveMtSentences", + "httpMethod": "GET", + "id": "translate.projects.locations.adaptiveMtDatasets.adaptiveMtFiles.adaptiveMtSentences.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A token identifying a page of results the server should return. Typically, this is the value of ListAdaptiveMtSentencesRequest.next_page_token returned from the previous call to `ListTranslationMemories` method. The first page is returned if `page_token` is empty or missing.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the project from which to list the Adaptive MT files. The following format lists all sentences under a file. `projects/{project}/locations/{location}/adaptiveMtDatasets/{dataset}/adaptiveMtFiles/{file}` The following format lists all sentences within a dataset. `projects/{project}/locations/{location}/adaptiveMtDatasets/{dataset}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/adaptiveMtDatasets/[^/]+/adaptiveMtFiles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+parent}/adaptiveMtSentences", + "response": { + "$ref": "ListAdaptiveMtSentencesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" + ] + } + } + } + } + }, + "adaptiveMtSentences": { + "methods": { + "list": { + "description": "Lists all AdaptiveMtSentences under a given file/dataset.", + "flatPath": "v3/projects/{projectsId}/locations/{locationsId}/adaptiveMtDatasets/{adaptiveMtDatasetsId}/adaptiveMtSentences", + "httpMethod": "GET", + "id": "translate.projects.locations.adaptiveMtDatasets.adaptiveMtSentences.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A token identifying a page of results the server should return. Typically, this is the value of ListAdaptiveMtSentencesRequest.next_page_token returned from the previous call to `ListTranslationMemories` method. The first page is returned if `page_token` is empty or missing.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the project from which to list the Adaptive MT files. The following format lists all sentences under a file. `projects/{project}/locations/{location}/adaptiveMtDatasets/{dataset}/adaptiveMtFiles/{file}` The following format lists all sentences within a dataset. `projects/{project}/locations/{location}/adaptiveMtDatasets/{dataset}`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/adaptiveMtDatasets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v3/{+parent}/adaptiveMtSentences", + "response": { + "$ref": "ListAdaptiveMtSentencesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" + ] + } + } + } + } + }, "datasets": { "methods": { "create": { @@ -538,7 +908,8 @@ "$ref": "Operation" }, "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" ] }, "delete": { @@ -618,7 +989,8 @@ "$ref": "Dataset" }, "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" ] }, "importData": { @@ -683,7 +1055,8 @@ "$ref": "ListDatasetsResponse" }, "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" ] } }, @@ -788,7 +1161,8 @@ "$ref": "Operation" }, "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" ] }, "get": { @@ -813,7 +1187,8 @@ "$ref": "Glossary" }, "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" ] }, "list": { @@ -854,7 +1229,8 @@ "$ref": "ListGlossariesResponse" }, "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" ] }, "patch": { @@ -972,7 +1348,8 @@ "$ref": "GlossaryEntry" }, "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" ] }, "list": { @@ -1008,7 +1385,8 @@ "$ref": "ListGlossaryEntriesResponse" }, "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" ] }, "patch": { @@ -1165,7 +1543,8 @@ "$ref": "ListModelsResponse" }, "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/cloud-translation" ] } } @@ -1332,6 +1711,159 @@ } }, "schemas": { + "AdaptiveMtDataset": { + "description": "An Adaptive MT Dataset.", + "id": "AdaptiveMtDataset", + "properties": { + "createTime": { + "description": "Output only. Timestamp when this dataset was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "The name of the dataset to show in the interface. The name can be up to 32 characters long and can consist only of ASCII Latin letters A-Z and a-z, underscores (_), and ASCII digits 0-9.", + "type": "string" + }, + "exampleCount": { + "description": "The number of examples in the dataset.", + "format": "int32", + "type": "integer" + }, + "name": { + "description": "Required. The resource name of the dataset, in form of `projects/{project-number-or-id}/locations/{location_id}/adaptiveMtDatasets/{dataset_id}`", + "type": "string" + }, + "sourceLanguageCode": { + "description": "The BCP-47 language code of the source language.", + "type": "string" + }, + "targetLanguageCode": { + "description": "The BCP-47 language code of the target language.", + "type": "string" + }, + "updateTime": { + "description": "Output only. Timestamp when this dataset was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "AdaptiveMtFile": { + "description": "An AdaptiveMtFile.", + "id": "AdaptiveMtFile", + "properties": { + "createTime": { + "description": "Output only. Timestamp when this file was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "displayName": { + "description": "The file's display name.", + "type": "string" + }, + "entryCount": { + "description": "The number of entries that the file contains.", + "format": "int32", + "type": "integer" + }, + "name": { + "description": "Required. The resource name of the file, in form of `projects/{project-number-or-id}/locations/{location_id}/adaptiveMtDatasets/{dataset}/adaptiveMtFiles/{file}`", + "type": "string" + }, + "updateTime": { + "description": "Output only. Timestamp when this file was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "AdaptiveMtSentence": { + "description": "An AdaptiveMt sentence entry.", + "id": "AdaptiveMtSentence", + "properties": { + "createTime": { + "description": "Output only. Timestamp when this sentence was created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Required. The resource name of the file, in form of `projects/{project-number-or-id}/locations/{location_id}/adaptiveMtDatasets/{dataset}/adaptiveMtFiles/{file}/adaptiveMtSentences/{sentence}`", + "type": "string" + }, + "sourceSentence": { + "description": "Required. The source sentence.", + "type": "string" + }, + "targetSentence": { + "description": "Required. The target sentence.", + "type": "string" + }, + "updateTime": { + "description": "Output only. Timestamp when this sentence was last updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "AdaptiveMtTranslateRequest": { + "description": "The request for sending an AdaptiveMt translation query.", + "id": "AdaptiveMtTranslateRequest", + "properties": { + "content": { + "description": "Required. The content of the input in string format. For now only one sentence per request is supported.", + "items": { + "type": "string" + }, + "type": "array" + }, + "dataset": { + "description": "Required. The resource name for the dataset to use for adaptive MT. `projects/{project}/locations/{location-id}/adaptiveMtDatasets/{dataset}`", + "type": "string" + } + }, + "type": "object" + }, + "AdaptiveMtTranslateResponse": { + "description": "An AdaptiveMtTranslate response.", + "id": "AdaptiveMtTranslateResponse", + "properties": { + "languageCode": { + "description": "Output only. The translation's language code.", + "readOnly": true, + "type": "string" + }, + "translations": { + "description": "Output only. The translation.", + "items": { + "$ref": "AdaptiveMtTranslation" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "AdaptiveMtTranslation": { + "description": "An AdaptiveMt translation.", + "id": "AdaptiveMtTranslation", + "properties": { + "translatedText": { + "description": "Output only. The translated text.", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "BatchDocumentInputConfig": { "description": "Input configuration for BatchTranslateDocument request.", "id": "BatchDocumentInputConfig", @@ -1712,6 +2244,26 @@ }, "type": "object" }, + "FileInputSource": { + "description": "An inlined file.", + "id": "FileInputSource", + "properties": { + "content": { + "description": "Required. The file's byte contents.", + "format": "byte", + "type": "string" + }, + "displayName": { + "description": "Required. The file's display name.", + "type": "string" + }, + "mimeType": { + "description": "Required. The file's mime type.", + "type": "string" + } + }, + "type": "object" + }, "GcsDestination": { "description": "The Google Cloud Storage location for the output content.", "id": "GcsDestination", @@ -1879,6 +2431,33 @@ }, "type": "object" }, + "ImportAdaptiveMtFileRequest": { + "description": "The request for importing an AdaptiveMt file along with its sentences.", + "id": "ImportAdaptiveMtFileRequest", + "properties": { + "fileInputSource": { + "$ref": "FileInputSource", + "description": "Inline file source." + }, + "gcsInputSource": { + "$ref": "GcsInputSource", + "description": "Google Cloud Storage file source." + } + }, + "type": "object" + }, + "ImportAdaptiveMtFileResponse": { + "description": "The response for importing an AdaptiveMtFile", + "id": "ImportAdaptiveMtFileResponse", + "properties": { + "adaptiveMtFile": { + "$ref": "AdaptiveMtFile", + "description": "Output only. The Adaptive MT file that was imported.", + "readOnly": true + } + }, + "type": "object" + }, "ImportDataRequest": { "description": "Request message for ImportData.", "id": "ImportDataRequest", @@ -1949,6 +2528,63 @@ }, "type": "object" }, + "ListAdaptiveMtDatasetsResponse": { + "description": "A list of AdaptiveMtDatasets.", + "id": "ListAdaptiveMtDatasetsResponse", + "properties": { + "adaptiveMtDatasets": { + "description": "Output only. A list of Adaptive MT datasets.", + "items": { + "$ref": "AdaptiveMtDataset" + }, + "readOnly": true, + "type": "array" + }, + "nextPageToken": { + "description": "Optional. A token to retrieve a page of results. Pass this value in the [ListAdaptiveMtDatasetsRequest.page_token] field in the subsequent call to `ListAdaptiveMtDatasets` method to retrieve the next page of results.", + "type": "string" + } + }, + "type": "object" + }, + "ListAdaptiveMtFilesResponse": { + "description": "The response for listing all AdaptiveMt files under a given dataset.", + "id": "ListAdaptiveMtFilesResponse", + "properties": { + "adaptiveMtFiles": { + "description": "Output only. The Adaptive MT files.", + "items": { + "$ref": "AdaptiveMtFile" + }, + "readOnly": true, + "type": "array" + }, + "nextPageToken": { + "description": "Optional. A token to retrieve a page of results. Pass this value in the ListAdaptiveMtFilesRequest.page_token field in the subsequent call to `ListAdaptiveMtFiles` method to retrieve the next page of results.", + "type": "string" + } + }, + "type": "object" + }, + "ListAdaptiveMtSentencesResponse": { + "description": "List AdaptiveMt sentences response.", + "id": "ListAdaptiveMtSentencesResponse", + "properties": { + "adaptiveMtSentences": { + "description": "Output only. The list of AdaptiveMtSentences.", + "items": { + "$ref": "AdaptiveMtSentence" + }, + "readOnly": true, + "type": "array" + }, + "nextPageToken": { + "description": "Optional. ", + "type": "string" + } + }, + "type": "object" + }, "ListDatasetsResponse": { "description": "Response message for ListDatasets.", "id": "ListDatasetsResponse", diff --git a/discovery/googleapis/travelimpactmodel__v1.json b/discovery/googleapis/travelimpactmodel__v1.json index 22ee4f2a1..671515ac5 100644 --- a/discovery/googleapis/travelimpactmodel__v1.json +++ b/discovery/googleapis/travelimpactmodel__v1.json @@ -16,7 +16,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240227", "rootUrl": "https://travelimpactmodel.googleapis.com/", "servicePath": "", "title": "Travel Impact Model API", diff --git a/discovery/googleapis/vault__v1.json b/discovery/googleapis/vault__v1.json index 525b006e9..62efe12d7 100644 --- a/discovery/googleapis/vault__v1.json +++ b/discovery/googleapis/vault__v1.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231116", + "revision": "20240220", "rootUrl": "https://vault.googleapis.com/", "servicePath": "", "title": "Google Vault API", @@ -1328,6 +1328,83 @@ }, "type": "object" }, + "CalendarExportOptions": { + "description": "The options for Calendar exports.", + "id": "CalendarExportOptions", + "properties": { + "exportFormat": { + "description": "The file format for exported text messages.", + "enum": [ + "EXPORT_FORMAT_UNSPECIFIED", + "MBOX", + "PST", + "ICS" + ], + "enumDescriptions": [ + "No export format specified.", + "Export as MBOX. Only available for Gmail, Groups, Hangouts and Voice.", + "Export as PST. Only available for Gmail, Groups, Hangouts, Voice and Calendar.", + "Export as ICS. Only available for Calendar." + ], + "type": "string" + } + }, + "type": "object" + }, + "CalendarOptions": { + "description": "Additional options for Calendar search", + "id": "CalendarOptions", + "properties": { + "locationQuery": { + "description": "Matches only those events whose location contains all of the words in the given set. If the string contains quoted phrases, this method only matches those events whose location contain the exact phrase. Entries in the set are considered in \"and\". Word splitting example: [\"New Zealand\"] vs [\"New\",\"Zealand\"] \"New Zealand\": matched by both \"New and better Zealand\": only matched by the later", + "items": { + "type": "string" + }, + "type": "array" + }, + "minusWords": { + "description": "Matches only those events that do not contain any of the words in the given set in title, description, location, or attendees. Entries in the set are considered in \"or\".", + "items": { + "type": "string" + }, + "type": "array" + }, + "peopleQuery": { + "description": "Matches only those events whose attendees contain all of the words in the given set. Entries in the set are considered in \"and\".", + "items": { + "type": "string" + }, + "type": "array" + }, + "responseStatuses": { + "description": "Matches only events for which the custodian gave one of these responses. If the set is empty or contains ATTENDEE_RESPONSE_UNSPECIFIED there will be no filtering on responses.", + "items": { + "enum": [ + "ATTENDEE_RESPONSE_UNSPECIFIED", + "ATTENDEE_RESPONSE_NEEDS_ACTION", + "ATTENDEE_RESPONSE_ACCEPTED", + "ATTENDEE_RESPONSE_DECLINED", + "ATTENDEE_RESPONSE_TENTATIVE" + ], + "enumDescriptions": [ + "Attendee response unspecified. If this is set no filtering on responses will be done, all other attendee responses that are part of the query options are ignored.", + "The participant has been invited but has not responded yet.", + "The participant plans to attend.", + "The participant does not plan to attend.", + "The participant expects to possibly attend." + ], + "type": "string" + }, + "type": "array" + }, + "versionDate": { + "description": "Search the current version of the Calendar event, but export the contents of the last version saved before 12:00 AM UTC on the specified date. Enter the date in UTC.", + "format": "google-datetime", + "type": "string" + } + }, + "type": "object" + }, "CancelOperationRequest": { "description": "The request message for Operations.CancelOperation.", "id": "CancelOperationRequest", @@ -1569,6 +1646,11 @@ "description": "The export name. Don't use special characters (~!$'(),;@:/?) in the name, they can prevent you from downloading exports.", "type": "string" }, + "parentExportId": { + "description": "Output only. Identifies the parent export that spawned this child export. This is only set on child exports.", + "readOnly": true, + "type": "string" + }, "query": { "$ref": "Query", "description": "The query parameters used to create the export." @@ -1604,6 +1686,10 @@ "description": "Additional options for exports", "id": "ExportOptions", "properties": { + "calendarOptions": { + "$ref": "CalendarExportOptions", + "description": "Option available for Calendar export." + }, "driveOptions": { "$ref": "DriveExportOptions", "description": "Options for Drive exports." @@ -1712,12 +1798,14 @@ "enum": [ "EXPORT_FORMAT_UNSPECIFIED", "MBOX", - "PST" + "PST", + "ICS" ], "enumDescriptions": [ "No export format specified.", "Export as MBOX. Only available for Gmail, Groups, Hangouts and Voice.", - "Export as PST. Only available for Gmail, Groups, Hangouts, Voice and Calendar." + "Export as PST. Only available for Gmail, Groups, Hangouts, Voice and Calendar.", + "Export as ICS. Only available for Calendar." ], "type": "string" } @@ -1733,12 +1821,14 @@ "enum": [ "EXPORT_FORMAT_UNSPECIFIED", "MBOX", - "PST" + "PST", + "ICS" ], "enumDescriptions": [ "No export format specified.", "Export as MBOX. Only available for Gmail, Groups, Hangouts and Voice.", - "Export as PST. Only available for Gmail, Groups, Hangouts, Voice and Calendar." + "Export as PST. Only available for Gmail, Groups, Hangouts, Voice and Calendar.", + "Export as ICS. Only available for Calendar." ], "type": "string" } @@ -1928,7 +2018,8 @@ "MAIL", "GROUPS", "HANGOUTS_CHAT", - "VOICE" + "VOICE", + "CALENDAR" ], "enumDescriptions": [ "No service specified.", @@ -1936,7 +2027,8 @@ "For search, Gmail and classic Hangouts. For holds, Gmail only.", "Groups.", "For export, Google Chat only. For holds, Google Chat and classic Hangouts.", - "Google Voice." + "Google Voice.", + "Calendar." ], "type": "string" }, @@ -2115,15 +2207,21 @@ "enum": [ "EXPORT_FORMAT_UNSPECIFIED", "MBOX", - "PST" + "PST", + "ICS" ], "enumDescriptions": [ "No export format specified.", "Export as MBOX. Only available for Gmail, Groups, Hangouts and Voice.", - "Export as PST. Only available for Gmail, Groups, Hangouts, Voice and Calendar." + "Export as PST. Only available for Gmail, Groups, Hangouts, Voice and Calendar.", + "Export as ICS. Only available for Calendar." ], "type": "string" }, + "exportLinkedDriveFiles": { + "description": "Optional. To enable exporting linked Drive files, set to **true**.", + "type": "boolean" + }, "showConfidentialModeContent": { "description": "To export confidential mode content, set to **true**.", "type": "boolean" @@ -2283,6 +2381,10 @@ "$ref": "AccountInfo", "description": "Required when **SearchMethod** is **ACCOUNT**." }, + "calendarOptions": { + "$ref": "CalendarOptions", + "description": "Set Calendar search-specific options." + }, "corpus": { "description": "The Google Workspace service to search.", "enum": [ @@ -2291,7 +2393,8 @@ "MAIL", "GROUPS", "HANGOUTS_CHAT", - "VOICE" + "VOICE", + "CALENDAR" ], "enumDescriptions": [ "No service specified.", @@ -2299,7 +2402,8 @@ "For search, Gmail and classic Hangouts. For holds, Gmail only.", "Groups.", "For export, Google Chat only. For holds, Google Chat and classic Hangouts.", - "Google Voice." + "Google Voice.", + "Calendar." ], "type": "string" }, @@ -2631,12 +2735,14 @@ "enum": [ "EXPORT_FORMAT_UNSPECIFIED", "MBOX", - "PST" + "PST", + "ICS" ], "enumDescriptions": [ "No export format specified.", "Export as MBOX. Only available for Gmail, Groups, Hangouts and Voice.", - "Export as PST. Only available for Gmail, Groups, Hangouts, Voice and Calendar." + "Export as PST. Only available for Gmail, Groups, Hangouts, Voice and Calendar.", + "Export as ICS. Only available for Calendar." ], "type": "string" } diff --git a/discovery/googleapis/verifiedaccess__v1.json b/discovery/googleapis/verifiedaccess__v1.json index da49c7925..e56682fcf 100644 --- a/discovery/googleapis/verifiedaccess__v1.json +++ b/discovery/googleapis/verifiedaccess__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231107", + "revision": "20240220", "rootUrl": "https://verifiedaccess.googleapis.com/", "servicePath": "", "title": "Chrome Verified Access API", diff --git a/discovery/googleapis/verifiedaccess__v2.json b/discovery/googleapis/verifiedaccess__v2.json index 77eaf262b..5e86de44e 100644 --- a/discovery/googleapis/verifiedaccess__v2.json +++ b/discovery/googleapis/verifiedaccess__v2.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231107", + "revision": "20240220", "rootUrl": "https://verifiedaccess.googleapis.com/", "servicePath": "", "title": "Chrome Verified Access API", diff --git a/discovery/googleapis/versionhistory__v1.json b/discovery/googleapis/versionhistory__v1.json index 783ff0df4..15dd7b4f3 100644 --- a/discovery/googleapis/versionhistory__v1.json +++ b/discovery/googleapis/versionhistory__v1.json @@ -16,7 +16,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240226", "rootUrl": "https://versionhistory.googleapis.com/", "servicePath": "", "title": "versionhistory.googleapis.com API", @@ -290,7 +290,9 @@ "CANARY", "CANARY_ASAN", "ALL", - "EXTENDED" + "EXTENDED", + "LTS", + "LTC" ], "enumDescriptions": [ "", @@ -300,7 +302,9 @@ "", "", "", - "" + "", + "The Long-term support channel for ChromeOS.", + "The Long-term support candidate channel for ChromeOS." ], "type": "string" }, diff --git a/discovery/googleapis/videointelligence__v1.json b/discovery/googleapis/videointelligence__v1.json index 524cade11..134052053 100644 --- a/discovery/googleapis/videointelligence__v1.json +++ b/discovery/googleapis/videointelligence__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20230706", + "revision": "20240208", "rootUrl": "https://videointelligence.googleapis.com/", "servicePath": "", "title": "Cloud Video Intelligence API", @@ -4982,7 +4982,7 @@ "description": "Properties of the object. Contains field @type with type URL.", "type": "any" }, - "description": "The normal response of the operation in case of success. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", + "description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", "type": "object" } }, diff --git a/discovery/googleapis/vision__v1.json b/discovery/googleapis/vision__v1.json index adca7f2a8..9d67ddde6 100644 --- a/discovery/googleapis/vision__v1.json +++ b/discovery/googleapis/vision__v1.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231110", + "revision": "20240223", "rootUrl": "https://vision.googleapis.com/", "servicePath": "", "title": "Cloud Vision API", @@ -3345,7 +3345,7 @@ "type": "string" }, "violence": { - "description": "Likelihood that this image contains violent content.", + "description": "Likelihood that this image contains violent content. Violent content may include death, serious harm, or injury to individuals or groups of individuals.", "enum": [ "UNKNOWN", "VERY_UNLIKELY", @@ -4759,7 +4759,7 @@ "type": "string" }, "violence": { - "description": "Likelihood that this image contains violent content.", + "description": "Likelihood that this image contains violent content. Violent content may include death, serious harm, or injury to individuals or groups of individuals.", "enum": [ "UNKNOWN", "VERY_UNLIKELY", @@ -6251,7 +6251,7 @@ "type": "string" }, "violence": { - "description": "Likelihood that this image contains violent content.", + "description": "Likelihood that this image contains violent content. Violent content may include death, serious harm, or injury to individuals or groups of individuals.", "enum": [ "UNKNOWN", "VERY_UNLIKELY", @@ -7810,7 +7810,7 @@ "type": "string" }, "violence": { - "description": "Likelihood that this image contains violent content.", + "description": "Likelihood that this image contains violent content. Violent content may include death, serious harm, or injury to individuals or groups of individuals.", "enum": [ "UNKNOWN", "VERY_UNLIKELY", @@ -9087,7 +9087,7 @@ "type": "string" }, "violence": { - "description": "Likelihood that this image contains violent content.", + "description": "Likelihood that this image contains violent content. Violent content may include death, serious harm, or injury to individuals or groups of individuals.", "enum": [ "UNKNOWN", "VERY_UNLIKELY", @@ -9285,7 +9285,8 @@ "id": "WebDetectionParams", "properties": { "includeGeoResults": { - "description": "Whether to include results derived from the geo information in the image.", + "deprecated": true, + "description": "This field has no effect on results.", "type": "boolean" } }, diff --git a/discovery/googleapis/vmmigration__v1.json b/discovery/googleapis/vmmigration__v1.json index 67c103736..57fcc6f77 100644 --- a/discovery/googleapis/vmmigration__v1.json +++ b/discovery/googleapis/vmmigration__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231109", + "revision": "20240215", "rootUrl": "https://vmmigration.googleapis.com/", "servicePath": "", "title": "VM Migration API", @@ -1349,7 +1349,7 @@ ] }, "list": { - "description": "Lists CloneJobs of a given migrating VM.", + "description": "Lists the CloneJobs of a migrating VM. Only 25 most recent CloneJobs are listed.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/sources/{sourcesId}/migratingVms/{migratingVmsId}/cloneJobs", "httpMethod": "GET", "id": "vmmigration.projects.locations.sources.migratingVms.cloneJobs.list", @@ -1490,7 +1490,7 @@ ] }, "list": { - "description": "Lists CutoverJobs of a given migrating VM.", + "description": "Lists the CutoverJobs of a migrating VM. Only 25 most recent CutoverJobs are listed.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/sources/{sourcesId}/migratingVms/{migratingVmsId}/cutoverJobs", "httpMethod": "GET", "id": "vmmigration.projects.locations.sources.migratingVms.cutoverJobs.list", @@ -2480,7 +2480,7 @@ "type": "object" }, "AzureVmDetails": { - "description": "AwsVmDetails describes a VM in AWS.", + "description": "AzureVmDetails describes a VM in Azure.", "id": "AzureVmDetails", "properties": { "bootOption": { diff --git a/discovery/googleapis/vmwareengine__v1.json b/discovery/googleapis/vmwareengine__v1.json index 602d4cfdf..75bfd4c13 100644 --- a/discovery/googleapis/vmwareengine__v1.json +++ b/discovery/googleapis/vmwareengine__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231025", + "revision": "20240206", "rootUrl": "https://vmwareengine.googleapis.com/", "servicePath": "", "title": "VMware Engine API", @@ -138,6 +138,31 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "getDnsBindPermission": { + "description": "Gets all the principals having bind permission on the intranet VPC associated with the consumer project granted by the Grant API. DnsBindPermission is a global resource and location can only be global.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dnsBindPermission", + "httpMethod": "GET", + "id": "vmwareengine.projects.locations.getDnsBindPermission", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the resource which stores the users/service accounts having the permission to bind to the corresponding intranet VPC of the consumer project. DnsBindPermission is a global resource. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global/dnsBindPermission`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/dnsBindPermission$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "DnsBindPermission" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "list": { "description": "Lists information about the supported locations for this service.", "flatPath": "v1/projects/{projectsId}/locations", @@ -181,13 +206,13 @@ } }, "resources": { - "global": { + "dnsBindPermission": { "methods": { - "getDnsBindPermission": { - "description": "Gets all the principals having bind permission on the intranet VPC associated with the consumer project granted by the Grant API.", - "flatPath": "v1/projects/{projectsId}/locations/global/dnsBindPermission", - "httpMethod": "GET", - "id": "vmwareengine.projects.locations.global.getDnsBindPermission", + "grant": { + "description": "Grants the bind permission to the customer provided principal(user / service account) to bind their DNS zone with the intranet VPC associated with the project. DnsBindPermission is a global resource and location can only be global.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dnsBindPermission:grant", + "httpMethod": "POST", + "id": "vmwareengine.projects.locations.dnsBindPermission.grant", "parameterOrder": [ "name" ], @@ -195,308 +220,277 @@ "name": { "description": "Required. The name of the resource which stores the users/service accounts having the permission to bind to the corresponding intranet VPC of the consumer project. DnsBindPermission is a global resource. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global/dnsBindPermission`", "location": "path", - "pattern": "^projects/[^/]+/locations/global/dnsBindPermission$", + "pattern": "^projects/[^/]+/locations/[^/]+/dnsBindPermission$", "required": true, "type": "string" } }, - "path": "v1/{+name}", + "path": "v1/{+name}:grant", + "request": { + "$ref": "GrantDnsBindPermissionRequest" + }, "response": { - "$ref": "DnsBindPermission" + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "revoke": { + "description": "Revokes the bind permission from the customer provided principal(user / service account) on the intranet VPC associated with the consumer project. DnsBindPermission is a global resource and location can only be global.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/dnsBindPermission:revoke", + "httpMethod": "POST", + "id": "vmwareengine.projects.locations.dnsBindPermission.revoke", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the resource which stores the users/service accounts having the permission to bind to the corresponding intranet VPC of the consumer project. DnsBindPermission is a global resource. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global/dnsBindPermission`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/dnsBindPermission$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:revoke", + "request": { + "$ref": "RevokeDnsBindPermissionRequest" + }, + "response": { + "$ref": "Operation" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] } - }, - "resources": { - "dnsBindPermission": { - "methods": { - "grant": { - "description": "Grants the bind permission to the customer provided principal(user / service account) to bind their DNS zone with the intranet VPC associated with the project.", - "flatPath": "v1/projects/{projectsId}/locations/global/dnsBindPermission:grant", - "httpMethod": "POST", - "id": "vmwareengine.projects.locations.global.dnsBindPermission.grant", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the resource which stores the users/service accounts having the permission to bind to the corresponding intranet VPC of the consumer project. DnsBindPermission is a global resource. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global/dnsBindPermission`", - "location": "path", - "pattern": "^projects/[^/]+/locations/global/dnsBindPermission$", - "required": true, - "type": "string" - } - }, - "path": "v1/{+name}:grant", - "request": { - "$ref": "GrantDnsBindPermissionRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] + } + }, + "networkPeerings": { + "methods": { + "create": { + "description": "Creates a new network peering between the peer network and VMware Engine network provided in a `NetworkPeering` resource. NetworkPeering is a global resource and location can only be global.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/networkPeerings", + "httpMethod": "POST", + "id": "vmwareengine.projects.locations.networkPeerings.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "networkPeeringId": { + "description": "Required. The user-provided identifier of the new `NetworkPeering`. This identifier must be unique among `NetworkPeering` resources within the parent and becomes the final token in the name URI. The identifier must meet the following requirements: * Only contains 1-63 alphanumeric characters and hyphens * Begins with an alphabetical character * Ends with a non-hyphen character * Not formatted as a UUID * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034) (section 3.5)", + "location": "query", + "type": "string" }, - "revoke": { - "description": "Revokes the bind permission from the customer provided principal(user / service account) on the intranet VPC associated with the consumer project.", - "flatPath": "v1/projects/{projectsId}/locations/global/dnsBindPermission:revoke", - "httpMethod": "POST", - "id": "vmwareengine.projects.locations.global.dnsBindPermission.revoke", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The name of the resource which stores the users/service accounts having the permission to bind to the corresponding intranet VPC of the consumer project. DnsBindPermission is a global resource. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global/dnsBindPermission`", - "location": "path", - "pattern": "^projects/[^/]+/locations/global/dnsBindPermission$", - "required": true, - "type": "string" - } - }, - "path": "v1/{+name}:revoke", - "request": { - "$ref": "RevokeDnsBindPermissionRequest" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] + "parent": { + "description": "Required. The resource name of the location to create the new network peering in. This value is always `global`, because `NetworkPeering` is a global resource. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" } - } + }, + "path": "v1/{+parent}/networkPeerings", + "request": { + "$ref": "NetworkPeering" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] }, - "networkPeerings": { - "methods": { - "create": { - "description": "Creates a new network peering between the peer network and VMware Engine network provided in a `NetworkPeering` resource.", - "flatPath": "v1/projects/{projectsId}/locations/global/networkPeerings", - "httpMethod": "POST", - "id": "vmwareengine.projects.locations.global.networkPeerings.create", - "parameterOrder": [ - "parent" - ], - "parameters": { - "networkPeeringId": { - "description": "Required. The user-provided identifier of the new `NetworkPeering`. This identifier must be unique among `NetworkPeering` resources within the parent and becomes the final token in the name URI. The identifier must meet the following requirements: * Only contains 1-63 alphanumeric characters and hyphens * Begins with an alphabetical character * Ends with a non-hyphen character * Not formatted as a UUID * Complies with [RFC 1034](https://datatracker.ietf.org/doc/html/rfc1034) (section 3.5)", - "location": "query", - "type": "string" - }, - "parent": { - "description": "Required. The resource name of the location to create the new network peering in. This value is always `global`, because `NetworkPeering` is a global resource. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global`", - "location": "path", - "pattern": "^projects/[^/]+/locations/global$", - "required": true, - "type": "string" - }, - "requestId": { - "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - } - }, - "path": "v1/{+parent}/networkPeerings", - "request": { - "$ref": "NetworkPeering" - }, - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] + "delete": { + "description": "Deletes a `NetworkPeering` resource. When a network peering is deleted for a VMware Engine network, the peer network becomes inaccessible to that VMware Engine network. NetworkPeering is a global resource and location can only be global.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/networkPeerings/{networkPeeringsId}", + "httpMethod": "DELETE", + "id": "vmwareengine.projects.locations.networkPeerings.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the network peering to be deleted. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global/networkPeerings/my-peering`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/networkPeerings/[^/]+$", + "required": true, + "type": "string" }, - "delete": { - "description": "Deletes a `NetworkPeering` resource. When a network peering is deleted for a VMware Engine network, the peer network becomes inaccessible to that VMware Engine network.", - "flatPath": "v1/projects/{projectsId}/locations/global/networkPeerings/{networkPeeringsId}", - "httpMethod": "DELETE", - "id": "vmwareengine.projects.locations.global.networkPeerings.delete", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The resource name of the network peering to be deleted. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global/networkPeerings/my-peering`", - "location": "path", - "pattern": "^projects/[^/]+/locations/global/networkPeerings/[^/]+$", - "required": true, - "type": "string" - }, - "requestId": { - "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - } - }, - "path": "v1/{+name}", - "response": { - "$ref": "Operation" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] + "requestId": { + "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "get": { + "description": "Retrieves a `NetworkPeering` resource by its resource name. The resource contains details of the network peering, such as peered networks, import and export custom route configurations, and peering state. NetworkPeering is a global resource and location can only be global.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/networkPeerings/{networkPeeringsId}", + "httpMethod": "GET", + "id": "vmwareengine.projects.locations.networkPeerings.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The resource name of the network peering to retrieve. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global/networkPeerings/my-peering`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/networkPeerings/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "NetworkPeering" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "description": "Lists `NetworkPeering` resources in a given project. NetworkPeering is a global resource and location can only be global.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/networkPeerings", + "httpMethod": "GET", + "id": "vmwareengine.projects.locations.networkPeerings.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "A filter expression that matches resources returned in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be `=`, `!=`, `>`, or `<`. For example, if you are filtering a list of network peerings, you can exclude the ones named `example-peering` by specifying `name != \"example-peering\"`. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (name = \"example-peering\") (createTime > \"2021-04-12T08:15:10.40Z\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (name = \"example-peering-1\") AND (createTime > \"2021-04-12T08:15:10.40Z\") OR (name = \"example-peering-2\") ```", + "location": "query", + "type": "string" }, - "get": { - "description": "Retrieves a `NetworkPeering` resource by its resource name. The resource contains details of the network peering, such as peered networks, import and export custom route configurations, and peering state.", - "flatPath": "v1/projects/{projectsId}/locations/global/networkPeerings/{networkPeeringsId}", - "httpMethod": "GET", - "id": "vmwareengine.projects.locations.global.networkPeerings.get", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Required. The resource name of the network peering to retrieve. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global/networkPeerings/my-peering`", - "location": "path", - "pattern": "^projects/[^/]+/locations/global/networkPeerings/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/{+name}", - "response": { - "$ref": "NetworkPeering" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] + "orderBy": { + "description": "Sorts list results by a certain order. By default, returned results are ordered by `name` in ascending order. You can also sort results in descending order based on the `name` value using `orderBy=\"name desc\"`. Currently, only ordering by `name` is supported.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of network peerings to return in one page. The maximum value is coerced to 1000. The default value of this field is 500.", + "format": "int32", + "location": "query", + "type": "integer" }, + "pageToken": { + "description": "A page token, received from a previous `ListNetworkPeerings` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListNetworkPeerings` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The resource name of the location (global) to query for network peerings. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/networkPeerings", + "response": { + "$ref": "ListNetworkPeeringsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "patch": { + "description": "Modifies a `NetworkPeering` resource. Only the `description` field can be updated. Only fields specified in `updateMask` are applied. NetworkPeering is a global resource and location can only be global.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/networkPeerings/{networkPeeringsId}", + "httpMethod": "PATCH", + "id": "vmwareengine.projects.locations.networkPeerings.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Output only. The resource name of the network peering. NetworkPeering is a global resource and location can only be global. Resource names are scheme-less URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global/networkPeerings/my-peering`", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/networkPeerings/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + }, + "updateMask": { + "description": "Required. Field mask is used to specify the fields to be overwritten in the `NetworkPeering` resource by the update. The fields specified in the `update_mask` are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "NetworkPeering" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + }, + "resources": { + "peeringRoutes": { + "methods": { "list": { - "description": "Lists `NetworkPeering` resources in a given project.", - "flatPath": "v1/projects/{projectsId}/locations/global/networkPeerings", + "description": "Lists the network peering routes exchanged over a peering connection. NetworkPeering is a global resource and location can only be global.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/networkPeerings/{networkPeeringsId}/peeringRoutes", "httpMethod": "GET", - "id": "vmwareengine.projects.locations.global.networkPeerings.list", + "id": "vmwareengine.projects.locations.networkPeerings.peeringRoutes.list", "parameterOrder": [ "parent" ], "parameters": { "filter": { - "description": "A filter expression that matches resources returned in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be `=`, `!=`, `>`, or `<`. For example, if you are filtering a list of network peerings, you can exclude the ones named `example-peering` by specifying `name != \"example-peering\"`. To filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (name = \"example-peering\") (createTime > \"2021-04-12T08:15:10.40Z\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (name = \"example-peering-1\") AND (createTime > \"2021-04-12T08:15:10.40Z\") OR (name = \"example-peering-2\") ```", - "location": "query", - "type": "string" - }, - "orderBy": { - "description": "Sorts list results by a certain order. By default, returned results are ordered by `name` in ascending order. You can also sort results in descending order based on the `name` value using `orderBy=\"name desc\"`. Currently, only ordering by `name` is supported.", + "description": "A filter expression that matches resources returned in the response. Currently, only filtering on the `direction` field is supported. To return routes imported from the peer network, provide \"direction=INCOMING\". To return routes exported from the VMware Engine network, provide \"direction=OUTGOING\". Other filter expressions return an error.", "location": "query", "type": "string" }, "pageSize": { - "description": "The maximum number of network peerings to return in one page. The maximum value is coerced to 1000. The default value of this field is 500.", + "description": "The maximum number of peering routes to return in one page. The service may return fewer than this value. The maximum value is coerced to 1000. The default value of this field is 500.", "format": "int32", "location": "query", "type": "integer" }, "pageToken": { - "description": "A page token, received from a previous `ListNetworkPeerings` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListNetworkPeerings` must match the call that provided the page token.", + "description": "A page token, received from a previous `ListPeeringRoutes` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListPeeringRoutes` must match the call that provided the page token.", "location": "query", "type": "string" }, "parent": { - "description": "Required. The resource name of the location (global) to query for network peerings. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global`", + "description": "Required. The resource name of the network peering to retrieve peering routes from. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global/networkPeerings/my-peering`", "location": "path", - "pattern": "^projects/[^/]+/locations/global$", + "pattern": "^projects/[^/]+/locations/[^/]+/networkPeerings/[^/]+$", "required": true, "type": "string" } }, - "path": "v1/{+parent}/networkPeerings", - "response": { - "$ref": "ListNetworkPeeringsResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - }, - "patch": { - "description": "Modifies a `NetworkPeering` resource. Only the `description` field can be updated. Only fields specified in `updateMask` are applied.", - "flatPath": "v1/projects/{projectsId}/locations/global/networkPeerings/{networkPeeringsId}", - "httpMethod": "PATCH", - "id": "vmwareengine.projects.locations.global.networkPeerings.patch", - "parameterOrder": [ - "name" - ], - "parameters": { - "name": { - "description": "Output only. The resource name of the network peering. Resource names are scheme-less URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global/networkPeerings/my-peering`", - "location": "path", - "pattern": "^projects/[^/]+/locations/global/networkPeerings/[^/]+$", - "required": true, - "type": "string" - }, - "requestId": { - "description": "Optional. A request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server guarantees that a request doesn't result in creation of duplicate commitments for at least 60 minutes. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", - "location": "query", - "type": "string" - }, - "updateMask": { - "description": "Required. Field mask is used to specify the fields to be overwritten in the `NetworkPeering` resource by the update. The fields specified in the `update_mask` are relative to the resource, not the full request. A field will be overwritten if it is in the mask. If the user does not provide a mask then all fields will be overwritten.", - "format": "google-fieldmask", - "location": "query", - "type": "string" - } - }, - "path": "v1/{+name}", - "request": { - "$ref": "NetworkPeering" - }, + "path": "v1/{+parent}/peeringRoutes", "response": { - "$ref": "Operation" + "$ref": "ListPeeringRoutesResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] } - }, - "resources": { - "peeringRoutes": { - "methods": { - "list": { - "description": "Lists the network peering routes exchanged over a peering connection.", - "flatPath": "v1/projects/{projectsId}/locations/global/networkPeerings/{networkPeeringsId}/peeringRoutes", - "httpMethod": "GET", - "id": "vmwareengine.projects.locations.global.networkPeerings.peeringRoutes.list", - "parameterOrder": [ - "parent" - ], - "parameters": { - "filter": { - "description": "A filter expression that matches resources returned in the response. Currently, only filtering on the `direction` field is supported. To return routes imported from the peer network, provide \"direction=INCOMING\". To return routes exported from the VMware Engine network, provide \"direction=OUTGOING\". Other filter expressions return an error.", - "location": "query", - "type": "string" - }, - "pageSize": { - "description": "The maximum number of peering routes to return in one page. The service may return fewer than this value. The maximum value is coerced to 1000. The default value of this field is 500.", - "format": "int32", - "location": "query", - "type": "integer" - }, - "pageToken": { - "description": "A page token, received from a previous `ListPeeringRoutes` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListPeeringRoutes` must match the call that provided the page token.", - "location": "query", - "type": "string" - }, - "parent": { - "description": "Required. The resource name of the network peering to retrieve peering routes from. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global/networkPeerings/my-peering`", - "location": "path", - "pattern": "^projects/[^/]+/locations/global/networkPeerings/[^/]+$", - "required": true, - "type": "string" - } - }, - "path": "v1/{+parent}/peeringRoutes", - "response": { - "$ref": "ListPeeringRoutesResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform" - ] - } - } - } } } } @@ -3241,14 +3235,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -3340,7 +3334,7 @@ "id": "DnsBindPermission", "properties": { "name": { - "description": "Required. Output only. The name of the resource which stores the users/service accounts having the permission to bind to the corresponding intranet VPC of the consumer project. DnsBindPermission is a global resource. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global/dnsBindPermission`", + "description": "Required. Output only. The name of the resource which stores the users/service accounts having the permission to bind to the corresponding intranet VPC of the consumer project. DnsBindPermission is a global resource and location can only be global. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global/dnsBindPermission`", "readOnly": true, "type": "string" }, @@ -4416,7 +4410,7 @@ "type": "boolean" }, "name": { - "description": "Output only. The resource name of the network peering. Resource names are scheme-less URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global/networkPeerings/my-peering`", + "description": "Output only. The resource name of the network peering. NetworkPeering is a global resource and location can only be global. Resource names are scheme-less URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. For example: `projects/my-project/locations/global/networkPeerings/my-peering`", "readOnly": true, "type": "string" }, @@ -4672,6 +4666,29 @@ "readOnly": true, "type": "string" }, + "families": { + "description": "Output only. Families of the node type. For node types to be in the same cluster they must share at least one element in the `families`.", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "kind": { + "description": "Output only. The type of the resource.", + "enum": [ + "KIND_UNSPECIFIED", + "STANDARD", + "STORAGE_ONLY" + ], + "enumDescriptions": [ + "The default value. This value should never be used.", + "Standard HCI node.", + "Storage only Node." + ], + "readOnly": true, + "type": "string" + }, "memoryGb": { "description": "Output only. The amount of physical memory available, defined in GB.", "format": "int32", diff --git a/discovery/googleapis/vpcaccess__v1.json b/discovery/googleapis/vpcaccess__v1.json index 02cb41b50..184cb36d2 100644 --- a/discovery/googleapis/vpcaccess__v1.json +++ b/discovery/googleapis/vpcaccess__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231102", + "revision": "20240215", "rootUrl": "https://vpcaccess.googleapis.com/", "servicePath": "", "title": "Serverless VPC Access API", @@ -415,7 +415,7 @@ "type": "integer" }, "maxThroughput": { - "description": "Maximum throughput of the connector in Mbps. Default is 300, max is 1000. If both max-throughput and max-instances are provided, max-instances takes precedence over max-throughput.", + "description": "Maximum throughput of the connector in Mbps. Refers to the expected throughput when using an `e2-micro` machine type. Value must be a multiple of 100 from 300 through 1000. Must be higher than the value specified by --min-throughput. If both max-throughput and max-instances are provided, max-instances takes precedence over max-throughput. The use of `max-throughput` is discouraged in favor of `max-instances`.", "format": "int32", "type": "integer" }, @@ -425,7 +425,7 @@ "type": "integer" }, "minThroughput": { - "description": "Minimum throughput of the connector in Mbps. Default and min is 200. If both min-throughput and min-instances are provided, min-instances takes precedence over min-throughput.", + "description": "Minimum throughput of the connector in Mbps. Refers to the expected throughput when using an `e2-micro` machine type. Value must be a multiple of 100 from 200 through 900. Must be lower than the value specified by --max-throughput. If both min-throughput and min-instances are provided, min-instances takes precedence over min-throughput. The use of `min-throughput` is discouraged in favor of `min-instances`.", "format": "int32", "type": "integer" }, diff --git a/discovery/googleapis/walletobjects__v1.json b/discovery/googleapis/walletobjects__v1.json new file mode 100644 index 000000000..b11a83a35 --- /dev/null +++ b/discovery/googleapis/walletobjects__v1.json @@ -0,0 +1,9183 @@ +{ + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/wallet_object.issuer": { + "description": "Private Service: https://www.googleapis.com/auth/wallet_object.issuer" + } + } + } + }, + "basePath": "", + "baseUrl": "https://walletobjects.googleapis.com/", + "batchPath": "batch", + "canonicalName": "Walletobjects", + "description": "API for issuers to save and manage Google Wallet Objects.", + "discoveryVersion": "v1", + "documentationLink": "https://developers.google.com/pay/passes", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "id": "walletobjects:v1", + "kind": "discovery#restDescription", + "name": "walletobjects", + "ownerDomain": "google.com", + "ownerName": "Google", + "protocol": "rest", + "revision": "20240228", + "rootUrl": "https://walletobjects.googleapis.com/", + "servicePath": "", + "title": "Google Wallet API", + "version": "v1", + "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" + } + }, + "resources": { + "eventticketclass": { + "methods": { + "addmessage": { + "description": "Adds a message to the event ticket class referenced by the given class ID.", + "flatPath": "walletobjects/v1/eventTicketClass/{resourceId}/addMessage", + "httpMethod": "POST", + "id": "walletobjects.eventticketclass.addmessage", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/eventTicketClass/{resourceId}/addMessage", + "request": { + "$ref": "AddMessageRequest" + }, + "response": { + "$ref": "EventTicketClassAddMessageResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "get": { + "description": "Returns the event ticket class with the given class ID.", + "flatPath": "walletobjects/v1/eventTicketClass/{resourceId}", + "httpMethod": "GET", + "id": "walletobjects.eventticketclass.get", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/eventTicketClass/{resourceId}", + "response": { + "$ref": "EventTicketClass" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "insert": { + "description": "Inserts an event ticket class with the given ID and properties.", + "flatPath": "walletobjects/v1/eventTicketClass", + "httpMethod": "POST", + "id": "walletobjects.eventticketclass.insert", + "parameterOrder": [], + "parameters": {}, + "path": "walletobjects/v1/eventTicketClass", + "request": { + "$ref": "EventTicketClass" + }, + "response": { + "$ref": "EventTicketClass" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "list": { + "description": "Returns a list of all event ticket classes for a given issuer ID.", + "flatPath": "walletobjects/v1/eventTicketClass", + "httpMethod": "GET", + "id": "walletobjects.eventticketclass.list", + "parameterOrder": [], + "parameters": { + "issuerId": { + "description": "The ID of the issuer authorized to list classes.", + "format": "int64", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "Identifies the max number of results returned by a list. All results are returned if `maxResults` isn't defined.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "token": { + "description": "Used to get the next set of results if `maxResults` is specified, but more than `maxResults` classes are available in a list. For example, if you have a list of 200 classes and you call list with `maxResults` set to 20, list will return the first 20 classes and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 classes.", + "location": "query", + "type": "string" + } + }, + "path": "walletobjects/v1/eventTicketClass", + "response": { + "$ref": "EventTicketClassListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "patch": { + "description": "Updates the event ticket class referenced by the given class ID. This method supports patch semantics.", + "flatPath": "walletobjects/v1/eventTicketClass/{resourceId}", + "httpMethod": "PATCH", + "id": "walletobjects.eventticketclass.patch", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/eventTicketClass/{resourceId}", + "request": { + "$ref": "EventTicketClass" + }, + "response": { + "$ref": "EventTicketClass" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "update": { + "description": "Updates the event ticket class referenced by the given class ID.", + "flatPath": "walletobjects/v1/eventTicketClass/{resourceId}", + "httpMethod": "PUT", + "id": "walletobjects.eventticketclass.update", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/eventTicketClass/{resourceId}", + "request": { + "$ref": "EventTicketClass" + }, + "response": { + "$ref": "EventTicketClass" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + } + } + }, + "eventticketobject": { + "methods": { + "addmessage": { + "description": "Adds a message to the event ticket object referenced by the given object ID.", + "flatPath": "walletobjects/v1/eventTicketObject/{resourceId}/addMessage", + "httpMethod": "POST", + "id": "walletobjects.eventticketobject.addmessage", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/eventTicketObject/{resourceId}/addMessage", + "request": { + "$ref": "AddMessageRequest" + }, + "response": { + "$ref": "EventTicketObjectAddMessageResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "get": { + "description": "Returns the event ticket object with the given object ID.", + "flatPath": "walletobjects/v1/eventTicketObject/{resourceId}", + "httpMethod": "GET", + "id": "walletobjects.eventticketobject.get", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/eventTicketObject/{resourceId}", + "response": { + "$ref": "EventTicketObject" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "insert": { + "description": "Inserts an event ticket object with the given ID and properties.", + "flatPath": "walletobjects/v1/eventTicketObject", + "httpMethod": "POST", + "id": "walletobjects.eventticketobject.insert", + "parameterOrder": [], + "parameters": {}, + "path": "walletobjects/v1/eventTicketObject", + "request": { + "$ref": "EventTicketObject" + }, + "response": { + "$ref": "EventTicketObject" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "list": { + "description": "Returns a list of all event ticket objects for a given issuer ID.", + "flatPath": "walletobjects/v1/eventTicketObject", + "httpMethod": "GET", + "id": "walletobjects.eventticketobject.list", + "parameterOrder": [], + "parameters": { + "classId": { + "description": "The ID of the class whose objects will be listed.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "Identifies the max number of results returned by a list. All results are returned if `maxResults` isn't defined.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "token": { + "description": "Used to get the next set of results if `maxResults` is specified, but more than `maxResults` objects are available in a list. For example, if you have a list of 200 objects and you call list with `maxResults` set to 20, list will return the first 20 objects and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 objects.", + "location": "query", + "type": "string" + } + }, + "path": "walletobjects/v1/eventTicketObject", + "response": { + "$ref": "EventTicketObjectListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "modifylinkedofferobjects": { + "description": "Modifies linked offer objects for the event ticket object with the given ID.", + "flatPath": "walletobjects/v1/eventTicketObject/{resourceId}/modifyLinkedOfferObjects", + "httpMethod": "POST", + "id": "walletobjects.eventticketobject.modifylinkedofferobjects", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/eventTicketObject/{resourceId}/modifyLinkedOfferObjects", + "request": { + "$ref": "ModifyLinkedOfferObjectsRequest" + }, + "response": { + "$ref": "EventTicketObject" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "patch": { + "description": "Updates the event ticket object referenced by the given object ID. This method supports patch semantics.", + "flatPath": "walletobjects/v1/eventTicketObject/{resourceId}", + "httpMethod": "PATCH", + "id": "walletobjects.eventticketobject.patch", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/eventTicketObject/{resourceId}", + "request": { + "$ref": "EventTicketObject" + }, + "response": { + "$ref": "EventTicketObject" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "update": { + "description": "Updates the event ticket object referenced by the given object ID.", + "flatPath": "walletobjects/v1/eventTicketObject/{resourceId}", + "httpMethod": "PUT", + "id": "walletobjects.eventticketobject.update", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/eventTicketObject/{resourceId}", + "request": { + "$ref": "EventTicketObject" + }, + "response": { + "$ref": "EventTicketObject" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + } + } + }, + "flightclass": { + "methods": { + "addmessage": { + "description": "Adds a message to the flight class referenced by the given class ID.", + "flatPath": "walletobjects/v1/flightClass/{resourceId}/addMessage", + "httpMethod": "POST", + "id": "walletobjects.flightclass.addmessage", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/flightClass/{resourceId}/addMessage", + "request": { + "$ref": "AddMessageRequest" + }, + "response": { + "$ref": "FlightClassAddMessageResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "get": { + "description": "Returns the flight class with the given class ID.", + "flatPath": "walletobjects/v1/flightClass/{resourceId}", + "httpMethod": "GET", + "id": "walletobjects.flightclass.get", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/flightClass/{resourceId}", + "response": { + "$ref": "FlightClass" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "insert": { + "description": "Inserts an flight class with the given ID and properties.", + "flatPath": "walletobjects/v1/flightClass", + "httpMethod": "POST", + "id": "walletobjects.flightclass.insert", + "parameterOrder": [], + "parameters": {}, + "path": "walletobjects/v1/flightClass", + "request": { + "$ref": "FlightClass" + }, + "response": { + "$ref": "FlightClass" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "list": { + "description": "Returns a list of all flight classes for a given issuer ID.", + "flatPath": "walletobjects/v1/flightClass", + "httpMethod": "GET", + "id": "walletobjects.flightclass.list", + "parameterOrder": [], + "parameters": { + "issuerId": { + "description": "The ID of the issuer authorized to list classes.", + "format": "int64", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "Identifies the max number of results returned by a list. All results are returned if `maxResults` isn't defined.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "token": { + "description": "Used to get the next set of results if `maxResults` is specified, but more than `maxResults` classes are available in a list. For example, if you have a list of 200 classes and you call list with `maxResults` set to 20, list will return the first 20 classes and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 classes.", + "location": "query", + "type": "string" + } + }, + "path": "walletobjects/v1/flightClass", + "response": { + "$ref": "FlightClassListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "patch": { + "description": "Updates the flight class referenced by the given class ID. This method supports patch semantics.", + "flatPath": "walletobjects/v1/flightClass/{resourceId}", + "httpMethod": "PATCH", + "id": "walletobjects.flightclass.patch", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/flightClass/{resourceId}", + "request": { + "$ref": "FlightClass" + }, + "response": { + "$ref": "FlightClass" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "update": { + "description": "Updates the flight class referenced by the given class ID.", + "flatPath": "walletobjects/v1/flightClass/{resourceId}", + "httpMethod": "PUT", + "id": "walletobjects.flightclass.update", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/flightClass/{resourceId}", + "request": { + "$ref": "FlightClass" + }, + "response": { + "$ref": "FlightClass" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + } + } + }, + "flightobject": { + "methods": { + "addmessage": { + "description": "Adds a message to the flight object referenced by the given object ID.", + "flatPath": "walletobjects/v1/flightObject/{resourceId}/addMessage", + "httpMethod": "POST", + "id": "walletobjects.flightobject.addmessage", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/flightObject/{resourceId}/addMessage", + "request": { + "$ref": "AddMessageRequest" + }, + "response": { + "$ref": "FlightObjectAddMessageResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "get": { + "description": "Returns the flight object with the given object ID.", + "flatPath": "walletobjects/v1/flightObject/{resourceId}", + "httpMethod": "GET", + "id": "walletobjects.flightobject.get", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/flightObject/{resourceId}", + "response": { + "$ref": "FlightObject" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "insert": { + "description": "Inserts an flight object with the given ID and properties.", + "flatPath": "walletobjects/v1/flightObject", + "httpMethod": "POST", + "id": "walletobjects.flightobject.insert", + "parameterOrder": [], + "parameters": {}, + "path": "walletobjects/v1/flightObject", + "request": { + "$ref": "FlightObject" + }, + "response": { + "$ref": "FlightObject" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "list": { + "description": "Returns a list of all flight objects for a given issuer ID.", + "flatPath": "walletobjects/v1/flightObject", + "httpMethod": "GET", + "id": "walletobjects.flightobject.list", + "parameterOrder": [], + "parameters": { + "classId": { + "description": "The ID of the class whose objects will be listed.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "Identifies the max number of results returned by a list. All results are returned if `maxResults` isn't defined.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "token": { + "description": "Used to get the next set of results if `maxResults` is specified, but more than `maxResults` objects are available in a list. For example, if you have a list of 200 objects and you call list with `maxResults` set to 20, list will return the first 20 objects and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 objects.", + "location": "query", + "type": "string" + } + }, + "path": "walletobjects/v1/flightObject", + "response": { + "$ref": "FlightObjectListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "patch": { + "description": "Updates the flight object referenced by the given object ID. This method supports patch semantics.", + "flatPath": "walletobjects/v1/flightObject/{resourceId}", + "httpMethod": "PATCH", + "id": "walletobjects.flightobject.patch", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/flightObject/{resourceId}", + "request": { + "$ref": "FlightObject" + }, + "response": { + "$ref": "FlightObject" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "update": { + "description": "Updates the flight object referenced by the given object ID.", + "flatPath": "walletobjects/v1/flightObject/{resourceId}", + "httpMethod": "PUT", + "id": "walletobjects.flightobject.update", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/flightObject/{resourceId}", + "request": { + "$ref": "FlightObject" + }, + "response": { + "$ref": "FlightObject" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + } + } + }, + "genericclass": { + "methods": { + "addmessage": { + "description": "Adds a message to the generic class referenced by the given class ID.", + "flatPath": "walletobjects/v1/genericClass/{resourceId}/addMessage", + "httpMethod": "POST", + "id": "walletobjects.genericclass.addmessage", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/genericClass/{resourceId}/addMessage", + "request": { + "$ref": "AddMessageRequest" + }, + "response": { + "$ref": "GenericClassAddMessageResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "get": { + "description": "Returns the generic class with the given class ID.", + "flatPath": "walletobjects/v1/genericClass/{resourceId}", + "httpMethod": "GET", + "id": "walletobjects.genericclass.get", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/genericClass/{resourceId}", + "response": { + "$ref": "GenericClass" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "insert": { + "description": "Inserts a generic class with the given ID and properties.", + "flatPath": "walletobjects/v1/genericClass", + "httpMethod": "POST", + "id": "walletobjects.genericclass.insert", + "parameterOrder": [], + "parameters": {}, + "path": "walletobjects/v1/genericClass", + "request": { + "$ref": "GenericClass" + }, + "response": { + "$ref": "GenericClass" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "list": { + "description": "Returns a list of all generic classes for a given issuer ID.", + "flatPath": "walletobjects/v1/genericClass", + "httpMethod": "GET", + "id": "walletobjects.genericclass.list", + "parameterOrder": [], + "parameters": { + "issuerId": { + "description": "The ID of the issuer authorized to list classes.", + "format": "int64", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "Identifies the max number of results returned by a list. All results are returned if `maxResults` isn't defined.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "token": { + "description": "Used to get the next set of results if `maxResults` is specified, but more than `maxResults` classes are available in a list. For example, if you have a list of 200 classes and you call list with `maxResults` set to 20, list will return the first 20 classes and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 classes.", + "location": "query", + "type": "string" + } + }, + "path": "walletobjects/v1/genericClass", + "response": { + "$ref": "GenericClassListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "patch": { + "description": "Updates the generic class referenced by the given class ID. This method supports patch semantics.", + "flatPath": "walletobjects/v1/genericClass/{resourceId}", + "httpMethod": "PATCH", + "id": "walletobjects.genericclass.patch", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/genericClass/{resourceId}", + "request": { + "$ref": "GenericClass" + }, + "response": { + "$ref": "GenericClass" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "update": { + "description": "Updates the Generic class referenced by the given class ID.", + "flatPath": "walletobjects/v1/genericClass/{resourceId}", + "httpMethod": "PUT", + "id": "walletobjects.genericclass.update", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/genericClass/{resourceId}", + "request": { + "$ref": "GenericClass" + }, + "response": { + "$ref": "GenericClass" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + } + } + }, + "genericobject": { + "methods": { + "addmessage": { + "description": "Adds a message to the generic object referenced by the given object ID.", + "flatPath": "walletobjects/v1/genericObject/{resourceId}/addMessage", + "httpMethod": "POST", + "id": "walletobjects.genericobject.addmessage", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/genericObject/{resourceId}/addMessage", + "request": { + "$ref": "AddMessageRequest" + }, + "response": { + "$ref": "GenericObjectAddMessageResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "get": { + "description": "Returns the generic object with the given object ID.", + "flatPath": "walletobjects/v1/genericObject/{resourceId}", + "httpMethod": "GET", + "id": "walletobjects.genericobject.get", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/genericObject/{resourceId}", + "response": { + "$ref": "GenericObject" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "insert": { + "description": "Inserts a generic object with the given ID and properties.", + "flatPath": "walletobjects/v1/genericObject", + "httpMethod": "POST", + "id": "walletobjects.genericobject.insert", + "parameterOrder": [], + "parameters": {}, + "path": "walletobjects/v1/genericObject", + "request": { + "$ref": "GenericObject" + }, + "response": { + "$ref": "GenericObject" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "list": { + "description": "Returns a list of all generic objects for a given issuer ID.", + "flatPath": "walletobjects/v1/genericObject", + "httpMethod": "GET", + "id": "walletobjects.genericobject.list", + "parameterOrder": [], + "parameters": { + "classId": { + "description": "The ID of the class whose objects will be listed.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "Identifies the max number of results returned by a list. All results are returned if `maxResults` isn't defined.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "token": { + "description": "Used to get the next set of results if `maxResults` is specified, but more than `maxResults` objects are available in a list. For example, if you have a list of 200 objects and you call list with `maxResults` set to 20, list will return the first 20 objects and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 objects.", + "location": "query", + "type": "string" + } + }, + "path": "walletobjects/v1/genericObject", + "response": { + "$ref": "GenericObjectListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "patch": { + "description": "Updates the generic object referenced by the given object ID. This method supports patch semantics.", + "flatPath": "walletobjects/v1/genericObject/{resourceId}", + "httpMethod": "PATCH", + "id": "walletobjects.genericobject.patch", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/genericObject/{resourceId}", + "request": { + "$ref": "GenericObject" + }, + "response": { + "$ref": "GenericObject" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "update": { + "description": "Updates the generic object referenced by the given object ID.", + "flatPath": "walletobjects/v1/genericObject/{resourceId}", + "httpMethod": "PUT", + "id": "walletobjects.genericobject.update", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/genericObject/{resourceId}", + "request": { + "$ref": "GenericObject" + }, + "response": { + "$ref": "GenericObject" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + } + } + }, + "giftcardclass": { + "methods": { + "addmessage": { + "description": "Adds a message to the gift card class referenced by the given class ID.", + "flatPath": "walletobjects/v1/giftCardClass/{resourceId}/addMessage", + "httpMethod": "POST", + "id": "walletobjects.giftcardclass.addmessage", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/giftCardClass/{resourceId}/addMessage", + "request": { + "$ref": "AddMessageRequest" + }, + "response": { + "$ref": "GiftCardClassAddMessageResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "get": { + "description": "Returns the gift card class with the given class ID.", + "flatPath": "walletobjects/v1/giftCardClass/{resourceId}", + "httpMethod": "GET", + "id": "walletobjects.giftcardclass.get", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/giftCardClass/{resourceId}", + "response": { + "$ref": "GiftCardClass" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "insert": { + "description": "Inserts an gift card class with the given ID and properties.", + "flatPath": "walletobjects/v1/giftCardClass", + "httpMethod": "POST", + "id": "walletobjects.giftcardclass.insert", + "parameterOrder": [], + "parameters": {}, + "path": "walletobjects/v1/giftCardClass", + "request": { + "$ref": "GiftCardClass" + }, + "response": { + "$ref": "GiftCardClass" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "list": { + "description": "Returns a list of all gift card classes for a given issuer ID.", + "flatPath": "walletobjects/v1/giftCardClass", + "httpMethod": "GET", + "id": "walletobjects.giftcardclass.list", + "parameterOrder": [], + "parameters": { + "issuerId": { + "description": "The ID of the issuer authorized to list classes.", + "format": "int64", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "Identifies the max number of results returned by a list. All results are returned if `maxResults` isn't defined.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "token": { + "description": "Used to get the next set of results if `maxResults` is specified, but more than `maxResults` classes are available in a list. For example, if you have a list of 200 classes and you call list with `maxResults` set to 20, list will return the first 20 classes and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 classes.", + "location": "query", + "type": "string" + } + }, + "path": "walletobjects/v1/giftCardClass", + "response": { + "$ref": "GiftCardClassListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "patch": { + "description": "Updates the gift card class referenced by the given class ID. This method supports patch semantics.", + "flatPath": "walletobjects/v1/giftCardClass/{resourceId}", + "httpMethod": "PATCH", + "id": "walletobjects.giftcardclass.patch", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/giftCardClass/{resourceId}", + "request": { + "$ref": "GiftCardClass" + }, + "response": { + "$ref": "GiftCardClass" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "update": { + "description": "Updates the gift card class referenced by the given class ID.", + "flatPath": "walletobjects/v1/giftCardClass/{resourceId}", + "httpMethod": "PUT", + "id": "walletobjects.giftcardclass.update", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/giftCardClass/{resourceId}", + "request": { + "$ref": "GiftCardClass" + }, + "response": { + "$ref": "GiftCardClass" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + } + } + }, + "giftcardobject": { + "methods": { + "addmessage": { + "description": "Adds a message to the gift card object referenced by the given object ID.", + "flatPath": "walletobjects/v1/giftCardObject/{resourceId}/addMessage", + "httpMethod": "POST", + "id": "walletobjects.giftcardobject.addmessage", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/giftCardObject/{resourceId}/addMessage", + "request": { + "$ref": "AddMessageRequest" + }, + "response": { + "$ref": "GiftCardObjectAddMessageResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "get": { + "description": "Returns the gift card object with the given object ID.", + "flatPath": "walletobjects/v1/giftCardObject/{resourceId}", + "httpMethod": "GET", + "id": "walletobjects.giftcardobject.get", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/giftCardObject/{resourceId}", + "response": { + "$ref": "GiftCardObject" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "insert": { + "description": "Inserts an gift card object with the given ID and properties.", + "flatPath": "walletobjects/v1/giftCardObject", + "httpMethod": "POST", + "id": "walletobjects.giftcardobject.insert", + "parameterOrder": [], + "parameters": {}, + "path": "walletobjects/v1/giftCardObject", + "request": { + "$ref": "GiftCardObject" + }, + "response": { + "$ref": "GiftCardObject" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "list": { + "description": "Returns a list of all gift card objects for a given issuer ID.", + "flatPath": "walletobjects/v1/giftCardObject", + "httpMethod": "GET", + "id": "walletobjects.giftcardobject.list", + "parameterOrder": [], + "parameters": { + "classId": { + "description": "The ID of the class whose objects will be listed.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "Identifies the max number of results returned by a list. All results are returned if `maxResults` isn't defined.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "token": { + "description": "Used to get the next set of results if `maxResults` is specified, but more than `maxResults` objects are available in a list. For example, if you have a list of 200 objects and you call list with `maxResults` set to 20, list will return the first 20 objects and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 objects.", + "location": "query", + "type": "string" + } + }, + "path": "walletobjects/v1/giftCardObject", + "response": { + "$ref": "GiftCardObjectListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "patch": { + "description": "Updates the gift card object referenced by the given object ID. This method supports patch semantics.", + "flatPath": "walletobjects/v1/giftCardObject/{resourceId}", + "httpMethod": "PATCH", + "id": "walletobjects.giftcardobject.patch", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/giftCardObject/{resourceId}", + "request": { + "$ref": "GiftCardObject" + }, + "response": { + "$ref": "GiftCardObject" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "update": { + "description": "Updates the gift card object referenced by the given object ID.", + "flatPath": "walletobjects/v1/giftCardObject/{resourceId}", + "httpMethod": "PUT", + "id": "walletobjects.giftcardobject.update", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/giftCardObject/{resourceId}", + "request": { + "$ref": "GiftCardObject" + }, + "response": { + "$ref": "GiftCardObject" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + } + } + }, + "issuer": { + "methods": { + "get": { + "description": "Returns the issuer with the given issuer ID.", + "flatPath": "walletobjects/v1/issuer/{resourceId}", + "httpMethod": "GET", + "id": "walletobjects.issuer.get", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an issuer.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/issuer/{resourceId}", + "response": { + "$ref": "Issuer" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "insert": { + "description": "Inserts an issuer with the given ID and properties.", + "flatPath": "walletobjects/v1/issuer", + "httpMethod": "POST", + "id": "walletobjects.issuer.insert", + "parameterOrder": [], + "parameters": {}, + "path": "walletobjects/v1/issuer", + "request": { + "$ref": "Issuer" + }, + "response": { + "$ref": "Issuer" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "list": { + "description": "Returns a list of all issuers shared to the caller.", + "flatPath": "walletobjects/v1/issuer", + "httpMethod": "GET", + "id": "walletobjects.issuer.list", + "parameterOrder": [], + "parameters": {}, + "path": "walletobjects/v1/issuer", + "response": { + "$ref": "IssuerListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "patch": { + "description": "Updates the issuer referenced by the given issuer ID. This method supports patch semantics.", + "flatPath": "walletobjects/v1/issuer/{resourceId}", + "httpMethod": "PATCH", + "id": "walletobjects.issuer.patch", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an issuer.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/issuer/{resourceId}", + "request": { + "$ref": "Issuer" + }, + "response": { + "$ref": "Issuer" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "update": { + "description": "Updates the issuer referenced by the given issuer ID.", + "flatPath": "walletobjects/v1/issuer/{resourceId}", + "httpMethod": "PUT", + "id": "walletobjects.issuer.update", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an issuer.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/issuer/{resourceId}", + "request": { + "$ref": "Issuer" + }, + "response": { + "$ref": "Issuer" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + } + } + }, + "jwt": { + "methods": { + "insert": { + "description": "Inserts the resources in the JWT.", + "flatPath": "walletobjects/v1/jwt", + "httpMethod": "POST", + "id": "walletobjects.jwt.insert", + "parameterOrder": [], + "parameters": {}, + "path": "walletobjects/v1/jwt", + "request": { + "$ref": "JwtResource" + }, + "response": { + "$ref": "JwtInsertResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + } + } + }, + "loyaltyclass": { + "methods": { + "addmessage": { + "description": "Adds a message to the loyalty class referenced by the given class ID.", + "flatPath": "walletobjects/v1/loyaltyClass/{resourceId}/addMessage", + "httpMethod": "POST", + "id": "walletobjects.loyaltyclass.addmessage", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/loyaltyClass/{resourceId}/addMessage", + "request": { + "$ref": "AddMessageRequest" + }, + "response": { + "$ref": "LoyaltyClassAddMessageResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "get": { + "description": "Returns the loyalty class with the given class ID.", + "flatPath": "walletobjects/v1/loyaltyClass/{resourceId}", + "httpMethod": "GET", + "id": "walletobjects.loyaltyclass.get", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/loyaltyClass/{resourceId}", + "response": { + "$ref": "LoyaltyClass" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "insert": { + "description": "Inserts an loyalty class with the given ID and properties.", + "flatPath": "walletobjects/v1/loyaltyClass", + "httpMethod": "POST", + "id": "walletobjects.loyaltyclass.insert", + "parameterOrder": [], + "parameters": {}, + "path": "walletobjects/v1/loyaltyClass", + "request": { + "$ref": "LoyaltyClass" + }, + "response": { + "$ref": "LoyaltyClass" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "list": { + "description": "Returns a list of all loyalty classes for a given issuer ID.", + "flatPath": "walletobjects/v1/loyaltyClass", + "httpMethod": "GET", + "id": "walletobjects.loyaltyclass.list", + "parameterOrder": [], + "parameters": { + "issuerId": { + "description": "The ID of the issuer authorized to list classes.", + "format": "int64", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "Identifies the max number of results returned by a list. All results are returned if `maxResults` isn't defined.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "token": { + "description": "Used to get the next set of results if `maxResults` is specified, but more than `maxResults` classes are available in a list. For example, if you have a list of 200 classes and you call list with `maxResults` set to 20, list will return the first 20 classes and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 classes.", + "location": "query", + "type": "string" + } + }, + "path": "walletobjects/v1/loyaltyClass", + "response": { + "$ref": "LoyaltyClassListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "patch": { + "description": "Updates the loyalty class referenced by the given class ID. This method supports patch semantics.", + "flatPath": "walletobjects/v1/loyaltyClass/{resourceId}", + "httpMethod": "PATCH", + "id": "walletobjects.loyaltyclass.patch", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/loyaltyClass/{resourceId}", + "request": { + "$ref": "LoyaltyClass" + }, + "response": { + "$ref": "LoyaltyClass" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "update": { + "description": "Updates the loyalty class referenced by the given class ID.", + "flatPath": "walletobjects/v1/loyaltyClass/{resourceId}", + "httpMethod": "PUT", + "id": "walletobjects.loyaltyclass.update", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/loyaltyClass/{resourceId}", + "request": { + "$ref": "LoyaltyClass" + }, + "response": { + "$ref": "LoyaltyClass" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + } + } + }, + "loyaltyobject": { + "methods": { + "addmessage": { + "description": "Adds a message to the loyalty object referenced by the given object ID.", + "flatPath": "walletobjects/v1/loyaltyObject/{resourceId}/addMessage", + "httpMethod": "POST", + "id": "walletobjects.loyaltyobject.addmessage", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/loyaltyObject/{resourceId}/addMessage", + "request": { + "$ref": "AddMessageRequest" + }, + "response": { + "$ref": "LoyaltyObjectAddMessageResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "get": { + "description": "Returns the loyalty object with the given object ID.", + "flatPath": "walletobjects/v1/loyaltyObject/{resourceId}", + "httpMethod": "GET", + "id": "walletobjects.loyaltyobject.get", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/loyaltyObject/{resourceId}", + "response": { + "$ref": "LoyaltyObject" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "insert": { + "description": "Inserts an loyalty object with the given ID and properties.", + "flatPath": "walletobjects/v1/loyaltyObject", + "httpMethod": "POST", + "id": "walletobjects.loyaltyobject.insert", + "parameterOrder": [], + "parameters": {}, + "path": "walletobjects/v1/loyaltyObject", + "request": { + "$ref": "LoyaltyObject" + }, + "response": { + "$ref": "LoyaltyObject" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "list": { + "description": "Returns a list of all loyalty objects for a given issuer ID.", + "flatPath": "walletobjects/v1/loyaltyObject", + "httpMethod": "GET", + "id": "walletobjects.loyaltyobject.list", + "parameterOrder": [], + "parameters": { + "classId": { + "description": "The ID of the class whose objects will be listed.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "Identifies the max number of results returned by a list. All results are returned if `maxResults` isn't defined.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "token": { + "description": "Used to get the next set of results if `maxResults` is specified, but more than `maxResults` objects are available in a list. For example, if you have a list of 200 objects and you call list with `maxResults` set to 20, list will return the first 20 objects and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 objects.", + "location": "query", + "type": "string" + } + }, + "path": "walletobjects/v1/loyaltyObject", + "response": { + "$ref": "LoyaltyObjectListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "modifylinkedofferobjects": { + "description": "Modifies linked offer objects for the loyalty object with the given ID.", + "flatPath": "walletobjects/v1/loyaltyObject/{resourceId}/modifyLinkedOfferObjects", + "httpMethod": "POST", + "id": "walletobjects.loyaltyobject.modifylinkedofferobjects", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/loyaltyObject/{resourceId}/modifyLinkedOfferObjects", + "request": { + "$ref": "ModifyLinkedOfferObjectsRequest" + }, + "response": { + "$ref": "LoyaltyObject" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "patch": { + "description": "Updates the loyalty object referenced by the given object ID. This method supports patch semantics.", + "flatPath": "walletobjects/v1/loyaltyObject/{resourceId}", + "httpMethod": "PATCH", + "id": "walletobjects.loyaltyobject.patch", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/loyaltyObject/{resourceId}", + "request": { + "$ref": "LoyaltyObject" + }, + "response": { + "$ref": "LoyaltyObject" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "update": { + "description": "Updates the loyalty object referenced by the given object ID.", + "flatPath": "walletobjects/v1/loyaltyObject/{resourceId}", + "httpMethod": "PUT", + "id": "walletobjects.loyaltyobject.update", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/loyaltyObject/{resourceId}", + "request": { + "$ref": "LoyaltyObject" + }, + "response": { + "$ref": "LoyaltyObject" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + } + } + }, + "media": { + "methods": { + "download": { + "description": "Downloads rotating barcode values for the transit object referenced by the given object ID.", + "flatPath": "walletobjects/v1/transitObject/{resourceId}/downloadRotatingBarcodeValues", + "httpMethod": "GET", + "id": "walletobjects.media.download", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/transitObject/{resourceId}/downloadRotatingBarcodeValues", + "response": { + "$ref": "Media" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ], + "supportsMediaDownload": true, + "useMediaDownloadService": true + }, + "upload": { + "description": "Uploads rotating barcode values for the transit object referenced by the given object ID. Note the max upload size is specified in google3/production/config/cdd/apps-upload/customers/payments-consumer-passes/config.gcl and enforced by Scotty.", + "flatPath": "walletobjects/v1/transitObject/{resourceId}/uploadRotatingBarcodeValues", + "httpMethod": "POST", + "id": "walletobjects.media.upload", + "mediaUpload": { + "accept": [ + "*/*" + ], + "protocols": { + "simple": { + "multipart": true, + "path": "/upload/walletobjects/v1/transitObject/{resourceId}/uploadRotatingBarcodeValues" + } + } + }, + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/transitObject/{resourceId}/uploadRotatingBarcodeValues", + "request": { + "$ref": "TransitObjectUploadRotatingBarcodeValuesRequest" + }, + "response": { + "$ref": "TransitObjectUploadRotatingBarcodeValuesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ], + "supportsMediaUpload": true + } + } + }, + "offerclass": { + "methods": { + "addmessage": { + "description": "Adds a message to the offer class referenced by the given class ID.", + "flatPath": "walletobjects/v1/offerClass/{resourceId}/addMessage", + "httpMethod": "POST", + "id": "walletobjects.offerclass.addmessage", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/offerClass/{resourceId}/addMessage", + "request": { + "$ref": "AddMessageRequest" + }, + "response": { + "$ref": "OfferClassAddMessageResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "get": { + "description": "Returns the offer class with the given class ID.", + "flatPath": "walletobjects/v1/offerClass/{resourceId}", + "httpMethod": "GET", + "id": "walletobjects.offerclass.get", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/offerClass/{resourceId}", + "response": { + "$ref": "OfferClass" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "insert": { + "description": "Inserts an offer class with the given ID and properties.", + "flatPath": "walletobjects/v1/offerClass", + "httpMethod": "POST", + "id": "walletobjects.offerclass.insert", + "parameterOrder": [], + "parameters": {}, + "path": "walletobjects/v1/offerClass", + "request": { + "$ref": "OfferClass" + }, + "response": { + "$ref": "OfferClass" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "list": { + "description": "Returns a list of all offer classes for a given issuer ID.", + "flatPath": "walletobjects/v1/offerClass", + "httpMethod": "GET", + "id": "walletobjects.offerclass.list", + "parameterOrder": [], + "parameters": { + "issuerId": { + "description": "The ID of the issuer authorized to list classes.", + "format": "int64", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "Identifies the max number of results returned by a list. All results are returned if `maxResults` isn't defined.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "token": { + "description": "Used to get the next set of results if `maxResults` is specified, but more than `maxResults` classes are available in a list. For example, if you have a list of 200 classes and you call list with `maxResults` set to 20, list will return the first 20 classes and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 classes.", + "location": "query", + "type": "string" + } + }, + "path": "walletobjects/v1/offerClass", + "response": { + "$ref": "OfferClassListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "patch": { + "description": "Updates the offer class referenced by the given class ID. This method supports patch semantics.", + "flatPath": "walletobjects/v1/offerClass/{resourceId}", + "httpMethod": "PATCH", + "id": "walletobjects.offerclass.patch", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/offerClass/{resourceId}", + "request": { + "$ref": "OfferClass" + }, + "response": { + "$ref": "OfferClass" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "update": { + "description": "Updates the offer class referenced by the given class ID.", + "flatPath": "walletobjects/v1/offerClass/{resourceId}", + "httpMethod": "PUT", + "id": "walletobjects.offerclass.update", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/offerClass/{resourceId}", + "request": { + "$ref": "OfferClass" + }, + "response": { + "$ref": "OfferClass" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + } + } + }, + "offerobject": { + "methods": { + "addmessage": { + "description": "Adds a message to the offer object referenced by the given object ID.", + "flatPath": "walletobjects/v1/offerObject/{resourceId}/addMessage", + "httpMethod": "POST", + "id": "walletobjects.offerobject.addmessage", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/offerObject/{resourceId}/addMessage", + "request": { + "$ref": "AddMessageRequest" + }, + "response": { + "$ref": "OfferObjectAddMessageResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "get": { + "description": "Returns the offer object with the given object ID.", + "flatPath": "walletobjects/v1/offerObject/{resourceId}", + "httpMethod": "GET", + "id": "walletobjects.offerobject.get", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/offerObject/{resourceId}", + "response": { + "$ref": "OfferObject" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "insert": { + "description": "Inserts an offer object with the given ID and properties.", + "flatPath": "walletobjects/v1/offerObject", + "httpMethod": "POST", + "id": "walletobjects.offerobject.insert", + "parameterOrder": [], + "parameters": {}, + "path": "walletobjects/v1/offerObject", + "request": { + "$ref": "OfferObject" + }, + "response": { + "$ref": "OfferObject" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "list": { + "description": "Returns a list of all offer objects for a given issuer ID.", + "flatPath": "walletobjects/v1/offerObject", + "httpMethod": "GET", + "id": "walletobjects.offerobject.list", + "parameterOrder": [], + "parameters": { + "classId": { + "description": "The ID of the class whose objects will be listed.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "Identifies the max number of results returned by a list. All results are returned if `maxResults` isn't defined.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "token": { + "description": "Used to get the next set of results if `maxResults` is specified, but more than `maxResults` objects are available in a list. For example, if you have a list of 200 objects and you call list with `maxResults` set to 20, list will return the first 20 objects and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 objects.", + "location": "query", + "type": "string" + } + }, + "path": "walletobjects/v1/offerObject", + "response": { + "$ref": "OfferObjectListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "patch": { + "description": "Updates the offer object referenced by the given object ID. This method supports patch semantics.", + "flatPath": "walletobjects/v1/offerObject/{resourceId}", + "httpMethod": "PATCH", + "id": "walletobjects.offerobject.patch", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/offerObject/{resourceId}", + "request": { + "$ref": "OfferObject" + }, + "response": { + "$ref": "OfferObject" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "update": { + "description": "Updates the offer object referenced by the given object ID.", + "flatPath": "walletobjects/v1/offerObject/{resourceId}", + "httpMethod": "PUT", + "id": "walletobjects.offerobject.update", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/offerObject/{resourceId}", + "request": { + "$ref": "OfferObject" + }, + "response": { + "$ref": "OfferObject" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + } + } + }, + "permissions": { + "methods": { + "get": { + "description": "Returns the permissions for the given issuer id.", + "flatPath": "walletobjects/v1/permissions/{resourceId}", + "httpMethod": "GET", + "id": "walletobjects.permissions.get", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an issuer. This ID must be unique across all issuers.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/permissions/{resourceId}", + "response": { + "$ref": "Permissions" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "update": { + "description": "Updates the permissions for the given issuer.", + "flatPath": "walletobjects/v1/permissions/{resourceId}", + "httpMethod": "PUT", + "id": "walletobjects.permissions.update", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an issuer. This ID must be unique across all issuers.", + "format": "int64", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/permissions/{resourceId}", + "request": { + "$ref": "Permissions" + }, + "response": { + "$ref": "Permissions" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + } + } + }, + "smarttap": { + "methods": { + "insert": { + "description": "Inserts the smart tap.", + "flatPath": "walletobjects/v1/smartTap", + "httpMethod": "POST", + "id": "walletobjects.smarttap.insert", + "parameterOrder": [], + "parameters": {}, + "path": "walletobjects/v1/smartTap", + "request": { + "$ref": "SmartTap" + }, + "response": { + "$ref": "SmartTap" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + } + } + }, + "transitclass": { + "methods": { + "addmessage": { + "description": "Adds a message to the transit class referenced by the given class ID.", + "flatPath": "walletobjects/v1/transitClass/{resourceId}/addMessage", + "httpMethod": "POST", + "id": "walletobjects.transitclass.addmessage", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/transitClass/{resourceId}/addMessage", + "request": { + "$ref": "AddMessageRequest" + }, + "response": { + "$ref": "TransitClassAddMessageResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "get": { + "description": "Returns the transit class with the given class ID.", + "flatPath": "walletobjects/v1/transitClass/{resourceId}", + "httpMethod": "GET", + "id": "walletobjects.transitclass.get", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/transitClass/{resourceId}", + "response": { + "$ref": "TransitClass" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "insert": { + "description": "Inserts a transit class with the given ID and properties.", + "flatPath": "walletobjects/v1/transitClass", + "httpMethod": "POST", + "id": "walletobjects.transitclass.insert", + "parameterOrder": [], + "parameters": {}, + "path": "walletobjects/v1/transitClass", + "request": { + "$ref": "TransitClass" + }, + "response": { + "$ref": "TransitClass" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "list": { + "description": "Returns a list of all transit classes for a given issuer ID.", + "flatPath": "walletobjects/v1/transitClass", + "httpMethod": "GET", + "id": "walletobjects.transitclass.list", + "parameterOrder": [], + "parameters": { + "issuerId": { + "description": "The ID of the issuer authorized to list classes.", + "format": "int64", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "Identifies the max number of results returned by a list. All results are returned if `maxResults` isn't defined.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "token": { + "description": "Used to get the next set of results if `maxResults` is specified, but more than `maxResults` classes are available in a list. For example, if you have a list of 200 classes and you call list with `maxResults` set to 20, list will return the first 20 classes and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 classes.", + "location": "query", + "type": "string" + } + }, + "path": "walletobjects/v1/transitClass", + "response": { + "$ref": "TransitClassListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "patch": { + "description": "Updates the transit class referenced by the given class ID. This method supports patch semantics.", + "flatPath": "walletobjects/v1/transitClass/{resourceId}", + "httpMethod": "PATCH", + "id": "walletobjects.transitclass.patch", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/transitClass/{resourceId}", + "request": { + "$ref": "TransitClass" + }, + "response": { + "$ref": "TransitClass" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "update": { + "description": "Updates the transit class referenced by the given class ID.", + "flatPath": "walletobjects/v1/transitClass/{resourceId}", + "httpMethod": "PUT", + "id": "walletobjects.transitclass.update", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/transitClass/{resourceId}", + "request": { + "$ref": "TransitClass" + }, + "response": { + "$ref": "TransitClass" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + } + } + }, + "transitobject": { + "methods": { + "addmessage": { + "description": "Adds a message to the transit object referenced by the given object ID.", + "flatPath": "walletobjects/v1/transitObject/{resourceId}/addMessage", + "httpMethod": "POST", + "id": "walletobjects.transitobject.addmessage", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/transitObject/{resourceId}/addMessage", + "request": { + "$ref": "AddMessageRequest" + }, + "response": { + "$ref": "TransitObjectAddMessageResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "get": { + "description": "Returns the transit object with the given object ID.", + "flatPath": "walletobjects/v1/transitObject/{resourceId}", + "httpMethod": "GET", + "id": "walletobjects.transitobject.get", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/transitObject/{resourceId}", + "response": { + "$ref": "TransitObject" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "insert": { + "description": "Inserts an transit object with the given ID and properties.", + "flatPath": "walletobjects/v1/transitObject", + "httpMethod": "POST", + "id": "walletobjects.transitobject.insert", + "parameterOrder": [], + "parameters": {}, + "path": "walletobjects/v1/transitObject", + "request": { + "$ref": "TransitObject" + }, + "response": { + "$ref": "TransitObject" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "list": { + "description": "Returns a list of all transit objects for a given issuer ID.", + "flatPath": "walletobjects/v1/transitObject", + "httpMethod": "GET", + "id": "walletobjects.transitobject.list", + "parameterOrder": [], + "parameters": { + "classId": { + "description": "The ID of the class whose objects will be listed.", + "location": "query", + "type": "string" + }, + "maxResults": { + "description": "Identifies the max number of results returned by a list. All results are returned if `maxResults` isn't defined.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "token": { + "description": "Used to get the next set of results if `maxResults` is specified, but more than `maxResults` objects are available in a list. For example, if you have a list of 200 objects and you call list with `maxResults` set to 20, list will return the first 20 objects and a token. Call list again with `maxResults` set to 20 and the token to get the next 20 objects.", + "location": "query", + "type": "string" + } + }, + "path": "walletobjects/v1/transitObject", + "response": { + "$ref": "TransitObjectListResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "patch": { + "description": "Updates the transit object referenced by the given object ID. This method supports patch semantics.", + "flatPath": "walletobjects/v1/transitObject/{resourceId}", + "httpMethod": "PATCH", + "id": "walletobjects.transitobject.patch", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/transitObject/{resourceId}", + "request": { + "$ref": "TransitObject" + }, + "response": { + "$ref": "TransitObject" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + }, + "update": { + "description": "Updates the transit object referenced by the given object ID.", + "flatPath": "walletobjects/v1/transitObject/{resourceId}", + "httpMethod": "PUT", + "id": "walletobjects.transitobject.update", + "parameterOrder": [ + "resourceId" + ], + "parameters": { + "resourceId": { + "description": "The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "location": "path", + "required": true, + "type": "string" + } + }, + "path": "walletobjects/v1/transitObject/{resourceId}", + "request": { + "$ref": "TransitObject" + }, + "response": { + "$ref": "TransitObject" + }, + "scopes": [ + "https://www.googleapis.com/auth/wallet_object.issuer" + ] + } + } + } + }, + "schemas": { + "ActivationOptions": { + "description": "ActivationOptions for the class", + "id": "ActivationOptions", + "properties": { + "activationUrl": { + "description": "HTTPS URL that supports REST semantics. Would be used for requesting activation from partners for given valuable, triggered by the users.", + "type": "string" + }, + "allowReactivation": { + "description": "Flag to allow users to make activation call from different device. This allows client to render the activation button enabled even if the activationStatus is ACTIVATED but the requested device is different than the current device.", + "type": "boolean" + } + }, + "type": "object" + }, + "ActivationStatus": { + "description": "The activation status of the object. This field includes activation status if valuable supports activation.", + "id": "ActivationStatus", + "properties": { + "state": { + "enum": [ + "UNKNOWN_STATE", + "NOT_ACTIVATED", + "not_activated", + "ACTIVATED", + "activated" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "Not-Activated, this is the default status", + "Legacy alias for `NOT_ACTIVATED`. Deprecated.", + "Activated", + "Legacy alias for `ACTIVATED`. Deprecated." + ], + "type": "string" + } + }, + "type": "object" + }, + "AddMessageRequest": { + "description": "Resource used when the AddMessage endpoints are called.", + "id": "AddMessageRequest", + "properties": { + "message": { + "$ref": "Message" + } + }, + "type": "object" + }, + "AirportInfo": { + "id": "AirportInfo", + "properties": { + "airportIataCode": { + "description": "Three character IATA airport code. This is a required field for `origin` and `destination`. Eg: \"SFO\"", + "type": "string" + }, + "airportNameOverride": { + "$ref": "LocalizedString", + "description": "Optional field that overrides the airport city name defined by IATA. By default, Google takes the `airportIataCode` provided and maps it to the official airport city name defined by IATA. Official IATA airport city names can be found at IATA airport city names website. For example, for the airport IATA code \"LTN\", IATA website tells us that the corresponding airport city is \"London\". If this field is not populated, Google would display \"London\". However, populating this field with a custom name (eg: \"London Luton\") would override it." + }, + "gate": { + "description": "A name of the gate. Eg: \"B59\" or \"59\"", + "type": "string" + }, + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#airportInfo\"`.", + "type": "string" + }, + "terminal": { + "description": "Terminal name. Eg: \"INTL\" or \"I\"", + "type": "string" + } + }, + "type": "object" + }, + "AppLinkData": { + "id": "AppLinkData", + "properties": { + "androidAppLinkInfo": { + "$ref": "AppLinkDataAppLinkInfo", + "description": "Optional information about the partner app link. If included, the app link link module will be rendered on the valuable details on the android client." + }, + "iosAppLinkInfo": { + "$ref": "AppLinkDataAppLinkInfo", + "description": "Optional information about the partner app link. If included, the app link link module will be rendered on the valuable details on the ios client." + }, + "webAppLinkInfo": { + "$ref": "AppLinkDataAppLinkInfo", + "description": "Optional information about the partner app link. If included, the app link link module will be rendered on the valuable details on the web client." + } + }, + "type": "object" + }, + "AppLinkDataAppLinkInfo": { + "id": "AppLinkDataAppLinkInfo", + "properties": { + "appLogoImage": { + "$ref": "Image", + "description": "Optional image to be displayed in the App Link Module" + }, + "appTarget": { + "$ref": "AppLinkDataAppLinkInfoAppTarget", + "description": "Url to follow when opening the App Link Module on clients. It will be used by partners to open their webpage or deeplink into their app." + }, + "description": { + "$ref": "LocalizedString", + "description": "String to be displayed in the description of the App Link Module Required" + }, + "title": { + "$ref": "LocalizedString", + "description": "String to be displayed in the title of the App Link Module Required" + } + }, + "type": "object" + }, + "AppLinkDataAppLinkInfoAppTarget": { + "id": "AppLinkDataAppLinkInfoAppTarget", + "properties": { + "packageName": { + "description": "Package name for AppTarget. For example: com.google.android.gm", + "type": "string" + }, + "targetUri": { + "$ref": "Uri", + "description": "URI for AppTarget. The description on the URI must be set. Prefer setting package field instead, if this target is defined for your application." + } + }, + "type": "object" + }, + "AuthenticationKey": { + "id": "AuthenticationKey", + "properties": { + "id": { + "description": "Available only to Smart Tap enabled partners. Contact support for additional guidance.", + "format": "int32", + "type": "integer" + }, + "publicKeyPem": { + "description": "Available only to Smart Tap enabled partners. Contact support for additional guidance.", + "type": "string" + } + }, + "type": "object" + }, + "Barcode": { + "id": "Barcode", + "properties": { + "alternateText": { + "description": "An optional text that will override the default text that shows under the barcode. This field is intended for a human readable equivalent of the barcode value, used when the barcode cannot be scanned.", + "type": "string" + }, + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#barcode\"`.", + "type": "string" + }, + "renderEncoding": { + "description": "The render encoding for the barcode. When specified, barcode is rendered in the given encoding. Otherwise best known encoding is chosen by Google.", + "enum": [ + "RENDER_ENCODING_UNSPECIFIED", + "UTF_8" + ], + "enumDescriptions": [ + "", + "UTF_8 encoding for barcodes. This is only supported for barcode type qrCode." + ], + "type": "string" + }, + "showCodeText": { + "$ref": "LocalizedString", + "description": "Optional text that will be shown when the barcode is hidden behind a click action. This happens in cases where a pass has Smart Tap enabled. If not specified, a default is chosen by Google." + }, + "type": { + "description": "The type of barcode.", + "enum": [ + "BARCODE_TYPE_UNSPECIFIED", + "AZTEC", + "aztec", + "CODE_39", + "code39", + "CODE_128", + "code128", + "CODABAR", + "codabar", + "DATA_MATRIX", + "dataMatrix", + "EAN_8", + "ean8", + "EAN_13", + "ean13", + "EAN13", + "ITF_14", + "itf14", + "PDF_417", + "pdf417", + "PDF417", + "QR_CODE", + "qrCode", + "qrcode", + "UPC_A", + "upcA", + "TEXT_ONLY", + "textOnly" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true, + false, + true, + false, + true, + false, + true, + true, + false, + true, + false, + true, + true, + false, + true, + true, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "Not supported for Rotating Barcodes.", + "Legacy alias for `AZTEC`. Deprecated. Not supported for Rotating Barcodes.", + "Not supported for Rotating Barcodes.", + "Legacy alias for `CODE_39`. Deprecated. Not supported for Rotating Barcodes.", + "Not supported for Rotating Barcodes.", + "Legacy alias for `CODE_128`. Deprecated. Not supported for Rotating Barcodes.", + "Not supported for Rotating Barcodes.", + "Legacy alias for `CODABAR`. Deprecated. Not supported for Rotating Barcodes.", + "A 2D matrix barcode consisting of black and white. Cells or modules are arranged in either a square or rectangle. Not supported for Rotating Barcodes.", + "Legacy alias for `DATA_MATRIX`. Deprecated. Not supported for Rotating Barcodes.", + "Not supported for Rotating Barcodes.", + "Legacy alias for `EAN_8`. Deprecated. Not supported for Rotating Barcodes.", + "Not supported for Rotating Barcodes.", + "Legacy alias for `EAN_13`. Deprecated. Not supported for Rotating Barcodes.", + "Legacy alias for `EAN_13`. Deprecated. Not supported for Rotating Barcodes.", + "14 digit ITF code Not supported for Rotating Barcodes.", + "Legacy alias for `ITF_14`. Deprecated. Not supported for Rotating Barcodes.", + "Supported for Rotating Barcodes.", + "Legacy alias for `PDF_417`. Deprecated.", + "Legacy alias for `PDF_417`. Deprecated.", + "Supported for Rotating Barcodes.", + "Legacy alias for `QR_CODE`. Deprecated.", + "Legacy alias for `QR_CODE`. Deprecated.", + "11 or 12 digit codes Not supported for Rotating Barcodes.", + "Legacy alias for `UPC_A`. Deprecated. Not supported for Rotating Barcodes.", + "Renders the field as a text field. The `alternateText` field may not be used with a barcode of type `textOnly`. Not supported for Rotating Barcodes.", + "Legacy alias for `TEXT_ONLY`. Deprecated. Not supported for Rotating Barcodes." + ], + "type": "string" + }, + "value": { + "description": "The value encoded in the barcode.", + "type": "string" + } + }, + "type": "object" + }, + "BarcodeSectionDetail": { + "id": "BarcodeSectionDetail", + "properties": { + "fieldSelector": { + "$ref": "FieldSelector", + "description": "A reference to an existing text-based or image field to display." + } + }, + "type": "object" + }, + "Blobstore2Info": { + "description": "Information to read/write to blobstore2.", + "id": "Blobstore2Info", + "properties": { + "blobGeneration": { + "description": "The blob generation id.", + "format": "int64", + "type": "string" + }, + "blobId": { + "description": "The blob id, e.g., /blobstore/prod/playground/scotty", + "type": "string" + }, + "downloadReadHandle": { + "description": "Read handle passed from Bigstore -> Scotty for a GCS download. This is a signed, serialized blobstore2.ReadHandle proto which must never be set outside of Bigstore, and is not applicable to non-GCS media downloads.", + "format": "byte", + "type": "string" + }, + "readToken": { + "description": "The blob read token. Needed to read blobs that have not been replicated. Might not be available until the final call.", + "type": "string" + }, + "uploadMetadataContainer": { + "description": "Metadata passed from Blobstore -> Scotty for a new GCS upload. This is a signed, serialized blobstore2.BlobMetadataContainer proto which must never be consumed outside of Bigstore, and is not applicable to non-GCS media uploads.", + "format": "byte", + "type": "string" + } + }, + "type": "object" + }, + "BoardingAndSeatingInfo": { + "id": "BoardingAndSeatingInfo", + "properties": { + "boardingDoor": { + "description": "Set this field only if this flight boards through more than one door or bridge and you want to explicitly print the door location on the boarding pass. Most airlines route their passengers to the right door or bridge by refering to doors/bridges by the `seatClass`. In those cases `boardingDoor` should not be set.", + "enum": [ + "BOARDING_DOOR_UNSPECIFIED", + "FRONT", + "front", + "BACK", + "back" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "", + "Legacy alias for `FRONT`. Deprecated.", + "", + "Legacy alias for `BACK`. Deprecated." + ], + "type": "string" + }, + "boardingGroup": { + "description": "The value of boarding group (or zone) this passenger shall board with. eg: \"B\" The label for this value will be determined by the `boardingPolicy` field in the `flightClass` referenced by this object.", + "type": "string" + }, + "boardingPosition": { + "description": "The value of boarding position. eg: \"76\"", + "type": "string" + }, + "boardingPrivilegeImage": { + "$ref": "Image", + "description": "A small image shown above the boarding barcode. Airlines can use it to communicate any special boarding privileges. In the event the security program logo is also set, this image might be rendered alongside the logo for that security program." + }, + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#boardingAndSeatingInfo\"`.", + "type": "string" + }, + "seatAssignment": { + "$ref": "LocalizedString", + "description": "The passenger's seat assignment. To be used when there is no specific identifier to use in `seatNumber`. eg: \"assigned at gate\"" + }, + "seatClass": { + "description": "The value of the seat class. eg: \"Economy\" or \"Economy Plus\"", + "type": "string" + }, + "seatNumber": { + "description": "The value of passenger seat. If there is no specific identifier, use `seatAssignment` instead. eg: \"25A\"", + "type": "string" + }, + "sequenceNumber": { + "description": "The sequence number on the boarding pass. This usually matches the sequence in which the passengers checked in. Airline might use the number for manual boarding and bag tags. eg: \"49\"", + "type": "string" + } + }, + "type": "object" + }, + "BoardingAndSeatingPolicy": { + "id": "BoardingAndSeatingPolicy", + "properties": { + "boardingPolicy": { + "description": "Indicates the policy the airline uses for boarding. If unset, Google will default to `zoneBased`.", + "enum": [ + "BOARDING_POLICY_UNSPECIFIED", + "ZONE_BASED", + "zoneBased", + "GROUP_BASED", + "groupBased", + "BOARDING_POLICY_OTHER", + "boardingPolicyOther" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "", + "Legacy alias for `ZONE_BASED`. Deprecated.", + "", + "Legacy alias for `GROUP_BASED`. Deprecated.", + "", + "Legacy alias for `BOARDING_POLICY_OTHER`. Deprecated." + ], + "type": "string" + }, + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#boardingAndSeatingPolicy\"`.", + "type": "string" + }, + "seatClassPolicy": { + "description": "Seating policy which dictates how we display the seat class. If unset, Google will default to `cabinBased`.", + "enum": [ + "SEAT_CLASS_POLICY_UNSPECIFIED", + "CABIN_BASED", + "cabinBased", + "CLASS_BASED", + "classBased", + "TIER_BASED", + "tierBased", + "SEAT_CLASS_POLICY_OTHER", + "seatClassPolicyOther" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "", + "Legacy alias for `CABIN_BASED`. Deprecated.", + "", + "Legacy alias for `CLASS_BASED`. Deprecated.", + "", + "Legacy alias for `TIER_BASED`. Deprecated.", + "", + "Legacy alias for `SEAT_CLASS_POLICY_OTHER`. Deprecated." + ], + "type": "string" + } + }, + "type": "object" + }, + "CallbackOptions": { + "id": "CallbackOptions", + "properties": { + "updateRequestUrl": { + "deprecated": true, + "description": "URL for the merchant endpoint that would be called to request updates. The URL should be hosted on HTTPS and robots.txt should allow the URL path to be accessible by UserAgent:Google-Valuables. Deprecated.", + "type": "string" + }, + "url": { + "description": "The HTTPS url configured by the merchant. The URL should be hosted on HTTPS and robots.txt should allow the URL path to be accessible by UserAgent:Google-Valuables.", + "type": "string" + } + }, + "type": "object" + }, + "CardBarcodeSectionDetails": { + "id": "CardBarcodeSectionDetails", + "properties": { + "firstBottomDetail": { + "$ref": "BarcodeSectionDetail", + "description": "Optional information to display below the barcode." + }, + "firstTopDetail": { + "$ref": "BarcodeSectionDetail", + "description": "Optional information to display above the barcode. If `secondTopDetail` is defined, this will be displayed to the start side of this detail section." + }, + "secondTopDetail": { + "$ref": "BarcodeSectionDetail", + "description": "Optional second piece of information to display above the barcode. If `firstTopDetail` is defined, this will be displayed to the end side of this detail section." + } + }, + "type": "object" + }, + "CardRowOneItem": { + "id": "CardRowOneItem", + "properties": { + "item": { + "$ref": "TemplateItem", + "description": "The item to be displayed in the row. This item will be automatically centered." + } + }, + "type": "object" + }, + "CardRowTemplateInfo": { + "id": "CardRowTemplateInfo", + "properties": { + "oneItem": { + "$ref": "CardRowOneItem", + "description": "Template for a row containing one item. Exactly one of \"one_item\", \"two_items\", \"three_items\" must be set." + }, + "threeItems": { + "$ref": "CardRowThreeItems", + "description": "Template for a row containing three items. Exactly one of \"one_item\", \"two_items\", \"three_items\" must be set." + }, + "twoItems": { + "$ref": "CardRowTwoItems", + "description": "Template for a row containing two items. Exactly one of \"one_item\", \"two_items\", \"three_items\" must be set." + } + }, + "type": "object" + }, + "CardRowThreeItems": { + "id": "CardRowThreeItems", + "properties": { + "endItem": { + "$ref": "TemplateItem", + "description": "The item to be displayed at the end of the row. This item will be aligned to the right." + }, + "middleItem": { + "$ref": "TemplateItem", + "description": "The item to be displayed in the middle of the row. This item will be centered between the start and end items." + }, + "startItem": { + "$ref": "TemplateItem", + "description": "The item to be displayed at the start of the row. This item will be aligned to the left." + } + }, + "type": "object" + }, + "CardRowTwoItems": { + "id": "CardRowTwoItems", + "properties": { + "endItem": { + "$ref": "TemplateItem", + "description": "The item to be displayed at the end of the row. This item will be aligned to the right." + }, + "startItem": { + "$ref": "TemplateItem", + "description": "The item to be displayed at the start of the row. This item will be aligned to the left." + } + }, + "type": "object" + }, + "CardTemplateOverride": { + "id": "CardTemplateOverride", + "properties": { + "cardRowTemplateInfos": { + "description": "Template information for rows in the card view. At most three rows are allowed to be specified.", + "items": { + "$ref": "CardRowTemplateInfo" + }, + "type": "array" + } + }, + "type": "object" + }, + "ClassTemplateInfo": { + "id": "ClassTemplateInfo", + "properties": { + "cardBarcodeSectionDetails": { + "$ref": "CardBarcodeSectionDetails", + "description": "Specifies extra information to be displayed above and below the barcode." + }, + "cardTemplateOverride": { + "$ref": "CardTemplateOverride", + "description": "Override for the card view." + }, + "detailsTemplateOverride": { + "$ref": "DetailsTemplateOverride", + "description": "Override for the details view (beneath the card view)." + }, + "listTemplateOverride": { + "$ref": "ListTemplateOverride", + "description": "Override for the passes list view." + } + }, + "type": "object" + }, + "CompositeMedia": { + "description": "A sequence of media data references representing composite data. Introduced to support Bigstore composite objects. For details, visit http://go/bigstore-composites.", + "id": "CompositeMedia", + "properties": { + "blobRef": { + "deprecated": true, + "description": "Blobstore v1 reference, set if reference_type is BLOBSTORE_REF This should be the byte representation of a blobstore.BlobRef. Since Blobstore is deprecating v1, use blobstore2_info instead. For now, any v2 blob will also be represented in this field as v1 BlobRef.", + "format": "byte", + "type": "string" + }, + "blobstore2Info": { + "$ref": "Blobstore2Info", + "description": "Blobstore v2 info, set if reference_type is BLOBSTORE_REF and it refers to a v2 blob." + }, + "cosmoBinaryReference": { + "description": "A binary data reference for a media download. Serves as a technology-agnostic binary reference in some Google infrastructure. This value is a serialized storage_cosmo.BinaryReference proto. Storing it as bytes is a hack to get around the fact that the cosmo proto (as well as others it includes) doesn't support JavaScript. This prevents us from including the actual type of this field.", + "format": "byte", + "type": "string" + }, + "crc32cHash": { + "description": "crc32.c hash for the payload.", + "format": "uint32", + "type": "integer" + }, + "inline": { + "description": "Media data, set if reference_type is INLINE", + "format": "byte", + "type": "string" + }, + "length": { + "description": "Size of the data, in bytes", + "format": "int64", + "type": "string" + }, + "md5Hash": { + "description": "MD5 hash for the payload.", + "format": "byte", + "type": "string" + }, + "objectId": { + "$ref": "ObjectId", + "description": "Reference to a TI Blob, set if reference_type is BIGSTORE_REF." + }, + "path": { + "description": "Path to the data, set if reference_type is PATH", + "type": "string" + }, + "referenceType": { + "description": "Describes what the field reference contains.", + "enum": [ + "PATH", + "BLOB_REF", + "INLINE", + "BIGSTORE_REF", + "COSMO_BINARY_REFERENCE" + ], + "enumDescriptions": [ + "Reference contains a GFS path or a local path.", + "Reference points to a blobstore object. This could be either a v1 blob_ref or a v2 blobstore2_info. Clients should check blobstore2_info first, since v1 is being deprecated.", + "Data is included into this proto buffer", + "Reference points to a bigstore object", + "Indicates the data is stored in cosmo_binary_reference." + ], + "type": "string" + }, + "sha1Hash": { + "description": "SHA-1 hash for the payload.", + "format": "byte", + "type": "string" + } + }, + "type": "object" + }, + "ContentTypeInfo": { + "description": "Detailed Content-Type information from Scotty. The Content-Type of the media will typically be filled in by the header or Scotty's best_guess, but this extended information provides the backend with more information so that it can make a better decision if needed. This is only used on media upload requests from Scotty.", + "id": "ContentTypeInfo", + "properties": { + "bestGuess": { + "description": "Scotty's best guess of what the content type of the file is.", + "type": "string" + }, + "fromBytes": { + "description": "The content type of the file derived by looking at specific bytes (i.e. \"magic bytes\") of the actual file.", + "type": "string" + }, + "fromFileName": { + "description": "The content type of the file derived from the file extension of the original file name used by the client.", + "type": "string" + }, + "fromHeader": { + "description": "The content type of the file as specified in the request headers, multipart headers, or RUPIO start request.", + "type": "string" + }, + "fromUrlPath": { + "description": "The content type of the file derived from the file extension of the URL path. The URL path is assumed to represent a file name (which is typically only true for agents that are providing a REST API).", + "type": "string" + } + }, + "type": "object" + }, + "DateTime": { + "id": "DateTime", + "properties": { + "date": { + "description": "An ISO 8601 extended format date/time. Offset may or may not be required (refer to the parent field's documentation). Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the date/time is intended for a physical location in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. Providing an offset makes this an absolute instant in time around the world. The date/time will be adjusted based on the user's time zone. For example, a time of `2018-06-19T18:30:00-04:00` will be 18:30:00 for a user in New York and 15:30:00 for a user in Los Angeles. Omitting the offset makes this a local date/time, representing several instants in time around the world. The date/time will always be in the user's current time zone. For example, a time of `2018-06-19T18:30:00` will be 18:30:00 for a user in New York and also 18:30:00 for a user in Los Angeles. This is useful when the same local date/time should apply to many physical locations across several time zones.", + "type": "string" + } + }, + "type": "object" + }, + "DetailsItemInfo": { + "id": "DetailsItemInfo", + "properties": { + "item": { + "$ref": "TemplateItem", + "description": "The item to be displayed in the details list." + } + }, + "type": "object" + }, + "DetailsTemplateOverride": { + "id": "DetailsTemplateOverride", + "properties": { + "detailsItemInfos": { + "description": "Information for the \"nth\" item displayed in the details list.", + "items": { + "$ref": "DetailsItemInfo" + }, + "type": "array" + } + }, + "type": "object" + }, + "DeviceContext": { + "description": "Device context associated with the object.", + "id": "DeviceContext", + "properties": { + "deviceToken": { + "description": "If set, redemption information will only be returned to the given device upon activation of the object. This should not be used as a stable identifier to trace a user's device. It can change across different passes for the same device or even across different activations for the same device. When setting this, callers must also set has_linked_device on the object being activated.", + "type": "string" + } + }, + "type": "object" + }, + "DiffChecksumsResponse": { + "description": "Backend response for a Diff get checksums response. For details on the Scotty Diff protocol, visit http://go/scotty-diff-protocol.", + "id": "DiffChecksumsResponse", + "properties": { + "checksumsLocation": { + "$ref": "CompositeMedia", + "description": "Exactly one of these fields must be populated. If checksums_location is filled, the server will return the corresponding contents to the user. If object_location is filled, the server will calculate the checksums based on the content there and return that to the user. For details on the format of the checksums, see http://go/scotty-diff-protocol." + }, + "chunkSizeBytes": { + "description": "The chunk size of checksums. Must be a multiple of 256KB.", + "format": "int64", + "type": "string" + }, + "objectLocation": { + "$ref": "CompositeMedia", + "description": "If set, calculate the checksums based on the contents and return them to the caller." + }, + "objectSizeBytes": { + "description": "The total size of the server object.", + "format": "int64", + "type": "string" + }, + "objectVersion": { + "description": "The object version of the object the checksums are being returned for.", + "type": "string" + } + }, + "type": "object" + }, + "DiffDownloadResponse": { + "description": "Backend response for a Diff download response. For details on the Scotty Diff protocol, visit http://go/scotty-diff-protocol.", + "id": "DiffDownloadResponse", + "properties": { + "objectLocation": { + "$ref": "CompositeMedia", + "description": "The original object location." + } + }, + "type": "object" + }, + "DiffUploadRequest": { + "description": "A Diff upload request. For details on the Scotty Diff protocol, visit http://go/scotty-diff-protocol.", + "id": "DiffUploadRequest", + "properties": { + "checksumsInfo": { + "$ref": "CompositeMedia", + "description": "The location of the checksums for the new object. Agents must clone the object located here, as the upload server will delete the contents once a response is received. For details on the format of the checksums, see http://go/scotty-diff-protocol." + }, + "objectInfo": { + "$ref": "CompositeMedia", + "description": "The location of the new object. Agents must clone the object located here, as the upload server will delete the contents once a response is received." + }, + "objectVersion": { + "description": "The object version of the object that is the base version the incoming diff script will be applied to. This field will always be filled in.", + "type": "string" + } + }, + "type": "object" + }, + "DiffUploadResponse": { + "description": "Backend response for a Diff upload request. For details on the Scotty Diff protocol, visit http://go/scotty-diff-protocol.", + "id": "DiffUploadResponse", + "properties": { + "objectVersion": { + "description": "The object version of the object at the server. Must be included in the end notification response. The version in the end notification response must correspond to the new version of the object that is now stored at the server, after the upload.", + "type": "string" + }, + "originalObject": { + "$ref": "CompositeMedia", + "description": "The location of the original file for a diff upload request. Must be filled in if responding to an upload start notification." + } + }, + "type": "object" + }, + "DiffVersionResponse": { + "description": "Backend response for a Diff get version response. For details on the Scotty Diff protocol, visit http://go/scotty-diff-protocol.", + "id": "DiffVersionResponse", + "properties": { + "objectSizeBytes": { + "description": "The total size of the server object.", + "format": "int64", + "type": "string" + }, + "objectVersion": { + "description": "The version of the object stored at the server.", + "type": "string" + } + }, + "type": "object" + }, + "DiscoverableProgram": { + "description": "Information about how a class may be discovered and instantiated from within the Android Pay app. This is done by searching for a loyalty or gift card program and scanning or manually entering.", + "id": "DiscoverableProgram", + "properties": { + "merchantSigninInfo": { + "$ref": "DiscoverableProgramMerchantSigninInfo", + "description": "Information about the ability to signin and add a valuable for this program through a merchant site. Used when MERCHANT_HOSTED_SIGNIN is enabled." + }, + "merchantSignupInfo": { + "$ref": "DiscoverableProgramMerchantSignupInfo", + "description": "Information about the ability to signup and add a valuable for this program through a merchant site. Used when MERCHANT_HOSTED_SIGNUP is enabled." + }, + "state": { + "description": "Visibility state of the discoverable program.", + "enum": [ + "STATE_UNSPECIFIED", + "TRUSTED_TESTERS", + "trustedTesters", + "LIVE", + "live", + "DISABLED", + "disabled" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "Visible only to testers that have access to issuer account.", + "Legacy alias for `TRUSTED_TESTERS`. Deprecated.", + "Visible to all.", + "Legacy alias for `LIVE`. Deprecated.", + "Not visible.", + "Legacy alias for `DISABLED`. Deprecated." + ], + "type": "string" + } + }, + "type": "object" + }, + "DiscoverableProgramMerchantSigninInfo": { + "description": "Information about the merchant hosted signin flow for a program.", + "id": "DiscoverableProgramMerchantSigninInfo", + "properties": { + "signinWebsite": { + "$ref": "Uri", + "description": "The URL to direct the user to for the merchant's signin site." + } + }, + "type": "object" + }, + "DiscoverableProgramMerchantSignupInfo": { + "description": "Information about the merchant hosted signup flow for a program.", + "id": "DiscoverableProgramMerchantSignupInfo", + "properties": { + "signupSharedDatas": { + "description": " User data that is sent in a POST request to the signup website URL. This information is encoded and then shared so that the merchant's website can prefill fields used to enroll the user for the discoverable program.", + "items": { + "enum": [ + "SHARED_DATA_TYPE_UNSPECIFIED", + "FIRST_NAME", + "LAST_NAME", + "STREET_ADDRESS", + "ADDRESS_LINE_1", + "ADDRESS_LINE_2", + "ADDRESS_LINE_3", + "CITY", + "STATE", + "ZIPCODE", + "COUNTRY", + "EMAIL", + "PHONE" + ], + "enumDescriptions": [ + "", + "", + "", + "single line address field", + "multi line address fields", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "type": "string" + }, + "type": "array" + }, + "signupWebsite": { + "$ref": "Uri", + "description": "The URL to direct the user to for the merchant's signup site." + } + }, + "type": "object" + }, + "DownloadParameters": { + "description": "Parameters specific to media downloads.", + "id": "DownloadParameters", + "properties": { + "allowGzipCompression": { + "description": "A boolean to be returned in the response to Scotty. Allows/disallows gzip encoding of the payload content when the server thinks it's advantageous (hence, does not guarantee compression) which allows Scotty to GZip the response to the client.", + "type": "boolean" + }, + "ignoreRange": { + "description": "Determining whether or not Apiary should skip the inclusion of any Content-Range header on its response to Scotty.", + "type": "boolean" + } + }, + "type": "object" + }, + "EventDateTime": { + "id": "EventDateTime", + "properties": { + "customDoorsOpenLabel": { + "$ref": "LocalizedString", + "description": "A custom label to use for the doors open value (`doorsOpen`) on the card detail view. This should only be used if the default \"Doors Open\" label or one of the `doorsOpenLabel` options is not sufficient. Both `doorsOpenLabel` and `customDoorsOpenLabel` may not be set. If neither is set, the label will default to \"Doors Open\", localized. If the doors open field is unset, this label will not be used." + }, + "doorsOpen": { + "description": "The date/time when the doors open at the venue. This is an ISO 8601 extended format date/time, with or without an offset. Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the event were in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. The portion of the date/time without the offset is considered the \"local date/time\". This should be the local date/time at the venue. For example, if the event occurs at the 20th hour of June 5th, 2018 at the venue, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the venue is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.", + "type": "string" + }, + "doorsOpenLabel": { + "description": "The label to use for the doors open value (`doorsOpen`) on the card detail view. Each available option maps to a set of localized strings, so that translations are shown to the user based on their locale. Both `doorsOpenLabel` and `customDoorsOpenLabel` may not be set. If neither is set, the label will default to \"Doors Open\", localized. If the doors open field is unset, this label will not be used.", + "enum": [ + "DOORS_OPEN_LABEL_UNSPECIFIED", + "DOORS_OPEN", + "doorsOpen", + "GATES_OPEN", + "gatesOpen" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "", + "Legacy alias for `DOORS_OPEN`. Deprecated.", + "", + "Legacy alias for `GATES_OPEN`. Deprecated." + ], + "type": "string" + }, + "end": { + "description": "The date/time when the event ends. If the event spans multiple days, it should be the end date/time on the last day. This is an ISO 8601 extended format date/time, with or without an offset. Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the event were in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. The portion of the date/time without the offset is considered the \"local date/time\". This should be the local date/time at the venue. For example, if the event occurs at the 20th hour of June 5th, 2018 at the venue, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the venue is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.", + "type": "string" + }, + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#eventDateTime\"`.", + "type": "string" + }, + "start": { + "description": "The date/time when the event starts. If the event spans multiple days, it should be the start date/time on the first day. This is an ISO 8601 extended format date/time, with or without an offset. Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the event were in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. The portion of the date/time without the offset is considered the \"local date/time\". This should be the local date/time at the venue. For example, if the event occurs at the 20th hour of June 5th, 2018 at the venue, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the venue is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.", + "type": "string" + } + }, + "type": "object" + }, + "EventReservationInfo": { + "id": "EventReservationInfo", + "properties": { + "confirmationCode": { + "description": "The confirmation code of the event reservation. This may also take the form of an \"order number\", \"confirmation number\", \"reservation number\", or other equivalent.", + "type": "string" + }, + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#eventReservationInfo\"`.", + "type": "string" + } + }, + "type": "object" + }, + "EventSeat": { + "id": "EventSeat", + "properties": { + "gate": { + "$ref": "LocalizedString", + "description": "The gate the ticket holder should enter to get to their seat, such as \"A\" or \"West\". This field is localizable so you may translate words or use different alphabets for the characters in an identifier." + }, + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#eventSeat\"`.", + "type": "string" + }, + "row": { + "$ref": "LocalizedString", + "description": "The row of the seat, such as \"1\", E\", \"BB\", or \"A5\". This field is localizable so you may translate words or use different alphabets for the characters in an identifier." + }, + "seat": { + "$ref": "LocalizedString", + "description": "The seat number, such as \"1\", \"2\", \"3\", or any other seat identifier. This field is localizable so you may translate words or use different alphabets for the characters in an identifier." + }, + "section": { + "$ref": "LocalizedString", + "description": "The section of the seat, such as \"121\". This field is localizable so you may translate words or use different alphabets for the characters in an identifier." + } + }, + "type": "object" + }, + "EventTicketClass": { + "id": "EventTicketClass", + "properties": { + "allowMultipleUsersPerObject": { + "deprecated": true, + "description": "Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.", + "type": "boolean" + }, + "callbackOptions": { + "$ref": "CallbackOptions", + "description": "Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback." + }, + "classTemplateInfo": { + "$ref": "ClassTemplateInfo", + "description": "Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display." + }, + "confirmationCodeLabel": { + "description": "The label to use for the confirmation code value (`eventTicketObject.reservationInfo.confirmationCode`) on the card detail view. Each available option maps to a set of localized strings, so that translations are shown to the user based on their locale. Both `confirmationCodeLabel` and `customConfirmationCodeLabel` may not be set. If neither is set, the label will default to \"Confirmation Code\", localized. If the confirmation code field is unset, this label will not be used.", + "enum": [ + "CONFIRMATION_CODE_LABEL_UNSPECIFIED", + "CONFIRMATION_CODE", + "confirmationCode", + "CONFIRMATION_NUMBER", + "confirmationNumber", + "ORDER_NUMBER", + "orderNumber", + "RESERVATION_NUMBER", + "reservationNumber" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "", + "Legacy alias for `CONFIRMATION_CODE`. Deprecated.", + "", + "Legacy alias for `CONFIRMATION_NUMBER`. Deprecated.", + "", + "Legacy alias for `ORDER_NUMBER`. Deprecated.", + "", + "Legacy alias for `RESERVATION_NUMBER`. Deprecated." + ], + "type": "string" + }, + "countryCode": { + "description": "Country code used to display the card's country (when the user is not in that country), as well as to display localized content when content is not available in the user's locale.", + "type": "string" + }, + "customConfirmationCodeLabel": { + "$ref": "LocalizedString", + "description": "A custom label to use for the confirmation code value (`eventTicketObject.reservationInfo.confirmationCode`) on the card detail view. This should only be used if the default \"Confirmation Code\" label or one of the `confirmationCodeLabel` options is not sufficient. Both `confirmationCodeLabel` and `customConfirmationCodeLabel` may not be set. If neither is set, the label will default to \"Confirmation Code\", localized. If the confirmation code field is unset, this label will not be used." + }, + "customGateLabel": { + "$ref": "LocalizedString", + "description": "A custom label to use for the gate value (`eventTicketObject.seatInfo.gate`) on the card detail view. This should only be used if the default \"Gate\" label or one of the `gateLabel` options is not sufficient. Both `gateLabel` and `customGateLabel` may not be set. If neither is set, the label will default to \"Gate\", localized. If the gate field is unset, this label will not be used." + }, + "customRowLabel": { + "$ref": "LocalizedString", + "description": "A custom label to use for the row value (`eventTicketObject.seatInfo.row`) on the card detail view. This should only be used if the default \"Row\" label or one of the `rowLabel` options is not sufficient. Both `rowLabel` and `customRowLabel` may not be set. If neither is set, the label will default to \"Row\", localized. If the row field is unset, this label will not be used." + }, + "customSeatLabel": { + "$ref": "LocalizedString", + "description": "A custom label to use for the seat value (`eventTicketObject.seatInfo.seat`) on the card detail view. This should only be used if the default \"Seat\" label or one of the `seatLabel` options is not sufficient. Both `seatLabel` and `customSeatLabel` may not be set. If neither is set, the label will default to \"Seat\", localized. If the seat field is unset, this label will not be used." + }, + "customSectionLabel": { + "$ref": "LocalizedString", + "description": "A custom label to use for the section value (`eventTicketObject.seatInfo.section`) on the card detail view. This should only be used if the default \"Section\" label or one of the `sectionLabel` options is not sufficient. Both `sectionLabel` and `customSectionLabel` may not be set. If neither is set, the label will default to \"Section\", localized. If the section field is unset, this label will not be used." + }, + "dateTime": { + "$ref": "EventDateTime", + "description": "The date & time information of the event." + }, + "enableSmartTap": { + "description": "Identifies whether this class supports Smart Tap. The `redemptionIssuers` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.", + "type": "boolean" + }, + "eventId": { + "description": "The ID of the event. This ID should be unique for every event in an account. It is used to group tickets together if the user has saved multiple tickets for the same event. It can be at most 64 characters. If provided, the grouping will be stable. Be wary of unintentional collision to avoid grouping tickets that should not be grouped. If you use only one class per event, you can simply set this to the `classId` (with or without the issuer ID portion). If not provided, the platform will attempt to use other data to group tickets (potentially unstable).", + "type": "string" + }, + "eventName": { + "$ref": "LocalizedString", + "description": "Required. The name of the event, such as \"LA Dodgers at SF Giants\"." + }, + "finePrint": { + "$ref": "LocalizedString", + "description": "The fine print, terms, or conditions of the ticket." + }, + "gateLabel": { + "description": "The label to use for the gate value (`eventTicketObject.seatInfo.gate`) on the card detail view. Each available option maps to a set of localized strings, so that translations are shown to the user based on their locale. Both `gateLabel` and `customGateLabel` may not be set. If neither is set, the label will default to \"Gate\", localized. If the gate field is unset, this label will not be used.", + "enum": [ + "GATE_LABEL_UNSPECIFIED", + "GATE", + "gate", + "DOOR", + "door", + "ENTRANCE", + "entrance" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "", + "Legacy alias for `GATE`. Deprecated.", + "", + "Legacy alias for `DOOR`. Deprecated.", + "", + "Legacy alias for `ENTRANCE`. Deprecated." + ], + "type": "string" + }, + "heroImage": { + "$ref": "Image", + "description": "Optional banner image displayed on the front of the card. If none is present, nothing will be displayed. The image will display at 100% width." + }, + "hexBackgroundColor": { + "description": "The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.", + "type": "string" + }, + "homepageUri": { + "$ref": "Uri", + "description": "The URI of your application's home page. Populating the URI in this field results in the exact same behavior as populating an URI in linksModuleData (when an object is rendered, a link to the homepage is shown in what would usually be thought of as the linksModuleData section of the object)." + }, + "id": { + "description": "Required. The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "type": "string" + }, + "imageModulesData": { + "description": "Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.", + "items": { + "$ref": "ImageModuleData" + }, + "type": "array" + }, + "infoModuleData": { + "$ref": "InfoModuleData", + "deprecated": true, + "description": "Deprecated. Use textModulesData instead." + }, + "issuerName": { + "description": "Required. The issuer name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.", + "type": "string" + }, + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#eventTicketClass\"`.", + "type": "string" + }, + "linksModuleData": { + "$ref": "LinksModuleData", + "description": "Links module data. If links module data is also defined on the object, both will be displayed." + }, + "localizedIssuerName": { + "$ref": "LocalizedString", + "description": "Translated strings for the issuer_name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens." + }, + "locations": { + "description": "Note: This field is currently not supported to trigger geo notifications.", + "items": { + "$ref": "LatLongPoint" + }, + "type": "array" + }, + "logo": { + "$ref": "Image", + "description": "The logo image of the ticket. This image is displayed in the card detail view of the app." + }, + "messages": { + "description": "An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.", + "items": { + "$ref": "Message" + }, + "type": "array" + }, + "multipleDevicesAndHoldersAllowedStatus": { + "description": "Identifies whether multiple users and devices will save the same object referencing this class.", + "enum": [ + "STATUS_UNSPECIFIED", + "MULTIPLE_HOLDERS", + "ONE_USER_ALL_DEVICES", + "ONE_USER_ONE_DEVICE", + "multipleHolders", + "oneUserAllDevices", + "oneUserOneDevice" + ], + "enumDeprecated": [ + false, + false, + false, + false, + true, + true, + true + ], + "enumDescriptions": [ + "Unspecified preference.", + "The Pass object is shareable by a user and can be saved by any number of different users, and on any number of devices. Partners typically use this setup for passes that do not need to be restricted to a single user or pinned to a single device.", + "An object can only be saved by one user, but this user can view and use it on multiple of their devices. Once the first user saves the object, no other user will be allowed to view or save it.", + "An object can only be saved by one user on a single device. Intended for use by select partners in limited circumstances. An example use case is a transit ticket that should be \"device pinned\", meaning it can be saved, viewed and used only by a single user on a single device. Contact support for additional information.", + "Legacy alias for `MULTIPLE_HOLDERS`. Deprecated.", + "Legacy alias for `ONE_USER_ALL_DEVICES`. Deprecated.", + "Legacy alias for `ONE_USER_ONE_DEVICE`. Deprecated." + ], + "type": "string" + }, + "redemptionIssuers": { + "description": "Identifies which redemption issuers can redeem the pass over Smart Tap. Redemption issuers are identified by their issuer ID. Redemption issuers must have at least one Smart Tap key configured. The `enableSmartTap` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "review": { + "$ref": "Review", + "description": "The review comments set by the platform when a class is marked `approved` or `rejected`." + }, + "reviewStatus": { + "description": "Required. The status of the class. This field can be set to `draft` or `underReview` using the insert, patch, or update API calls. Once the review state is changed from `draft` it may not be changed back to `draft`. You should keep this field to `draft` when the class is under development. A `draft` class cannot be used to create any object. You should set this field to `underReview` when you believe the class is ready for use. The platform will automatically set this field to `approved` and it can be immediately used to create or migrate objects. When updating an already `approved` class you should keep setting this field to `underReview`.", + "enum": [ + "REVIEW_STATUS_UNSPECIFIED", + "UNDER_REVIEW", + "underReview", + "APPROVED", + "approved", + "REJECTED", + "rejected", + "DRAFT", + "draft" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "", + "Legacy alias for `UNDER_REVIEW`. Deprecated.", + "", + "Legacy alias for `APPROVED`. Deprecated.", + "", + "Legacy alias for `REJECTED`. Deprecated.", + "", + "Legacy alias for `DRAFT`. Deprecated." + ], + "type": "string" + }, + "rowLabel": { + "description": "The label to use for the row value (`eventTicketObject.seatInfo.row`) on the card detail view. Each available option maps to a set of localized strings, so that translations are shown to the user based on their locale. Both `rowLabel` and `customRowLabel` may not be set. If neither is set, the label will default to \"Row\", localized. If the row field is unset, this label will not be used.", + "enum": [ + "ROW_LABEL_UNSPECIFIED", + "ROW", + "row" + ], + "enumDeprecated": [ + false, + false, + true + ], + "enumDescriptions": [ + "", + "", + "Legacy alias for `ROW`. Deprecated." + ], + "type": "string" + }, + "seatLabel": { + "description": "The label to use for the seat value (`eventTicketObject.seatInfo.seat`) on the card detail view. Each available option maps to a set of localized strings, so that translations are shown to the user based on their locale. Both `seatLabel` and `customSeatLabel` may not be set. If neither is set, the label will default to \"Seat\", localized. If the seat field is unset, this label will not be used.", + "enum": [ + "SEAT_LABEL_UNSPECIFIED", + "SEAT", + "seat" + ], + "enumDeprecated": [ + false, + false, + true + ], + "enumDescriptions": [ + "", + "", + "Legacy alias for `SEAT`. Deprecated." + ], + "type": "string" + }, + "sectionLabel": { + "description": "The label to use for the section value (`eventTicketObject.seatInfo.section`) on the card detail view. Each available option maps to a set of localized strings, so that translations are shown to the user based on their locale. Both `sectionLabel` and `customSectionLabel` may not be set. If neither is set, the label will default to \"Section\", localized. If the section field is unset, this label will not be used.", + "enum": [ + "SECTION_LABEL_UNSPECIFIED", + "SECTION", + "section", + "THEATER", + "theater" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "", + "Legacy alias for `SECTION`. Deprecated.", + "", + "Legacy alias for `THEATER`. Deprecated." + ], + "type": "string" + }, + "securityAnimation": { + "$ref": "SecurityAnimation", + "description": "Optional information about the security animation. If this is set a security animation will be rendered on pass details." + }, + "textModulesData": { + "description": "Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.", + "items": { + "$ref": "TextModuleData" + }, + "type": "array" + }, + "venue": { + "$ref": "EventVenue", + "description": "Event venue details." + }, + "version": { + "deprecated": true, + "description": "Deprecated", + "format": "int64", + "type": "string" + }, + "viewUnlockRequirement": { + "description": "View Unlock Requirement options for the event ticket.", + "enum": [ + "VIEW_UNLOCK_REQUIREMENT_UNSPECIFIED", + "UNLOCK_NOT_REQUIRED", + "UNLOCK_REQUIRED_TO_VIEW" + ], + "enumDescriptions": [ + "Default value, same as UNLOCK_NOT_REQUIRED.", + "Default behavior for all the existing Passes if ViewUnlockRequirement is not set.", + "Requires the user to unlock their device each time the pass is viewed. If the user removes their device lock after saving the pass, then they will be prompted to create a device lock before the pass can be viewed." + ], + "type": "string" + }, + "wideLogo": { + "$ref": "Image", + "description": "The wide logo of the ticket. When provided, this will be used in place of the logo in the top left of the card view." + }, + "wordMark": { + "$ref": "Image", + "deprecated": true, + "description": "Deprecated." + } + }, + "type": "object" + }, + "EventTicketClassAddMessageResponse": { + "id": "EventTicketClassAddMessageResponse", + "properties": { + "resource": { + "$ref": "EventTicketClass", + "description": "The updated EventTicketClass resource." + } + }, + "type": "object" + }, + "EventTicketClassListResponse": { + "id": "EventTicketClassListResponse", + "properties": { + "pagination": { + "$ref": "Pagination", + "description": "Pagination of the response." + }, + "resources": { + "description": "Resources corresponding to the list request.", + "items": { + "$ref": "EventTicketClass" + }, + "type": "array" + } + }, + "type": "object" + }, + "EventTicketObject": { + "id": "EventTicketObject", + "properties": { + "appLinkData": { + "$ref": "AppLinkData", + "description": "Optional information about the partner app link." + }, + "barcode": { + "$ref": "Barcode", + "description": "The barcode type and value." + }, + "classId": { + "description": "Required. The class associated with this object. The class must be of the same type as this object, must already exist, and must be approved. Class IDs should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you.", + "type": "string" + }, + "classReference": { + "$ref": "EventTicketClass", + "description": "A copy of the inherited fields of the parent class. These fields are retrieved during a GET." + }, + "disableExpirationNotification": { + "description": "Indicates if notifications should explicitly be suppressed. If this field is set to true, regardless of the `messages` field, expiration notifications to the user will be suppressed. By default, this field is set to false. Currently, this can only be set for offers.", + "type": "boolean" + }, + "faceValue": { + "$ref": "Money", + "description": "The face value of the ticket, matching what would be printed on a physical version of the ticket." + }, + "groupingInfo": { + "$ref": "GroupingInfo", + "description": "Information that controls how passes are grouped together." + }, + "hasLinkedDevice": { + "description": "Whether this object is currently linked to a single device. This field is set by the platform when a user saves the object, linking it to their device. Intended for use by select partners. Contact support for additional information.", + "type": "boolean" + }, + "hasUsers": { + "description": "Indicates if the object has users. This field is set by the platform.", + "type": "boolean" + }, + "heroImage": { + "$ref": "Image", + "description": "Optional banner image displayed on the front of the card. If none is present, hero image of the class, if present, will be displayed. If hero image of the class is also not present, nothing will be displayed." + }, + "hexBackgroundColor": { + "description": "The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.", + "type": "string" + }, + "id": { + "description": "Required. The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you. The unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "type": "string" + }, + "imageModulesData": { + "description": "Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.", + "items": { + "$ref": "ImageModuleData" + }, + "type": "array" + }, + "infoModuleData": { + "$ref": "InfoModuleData", + "description": "Deprecated. Use textModulesData instead." + }, + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#eventTicketObject\"`.", + "type": "string" + }, + "linkedOfferIds": { + "description": "A list of offer objects linked to this event ticket. The offer objects must already exist. Offer object IDs should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you.", + "items": { + "type": "string" + }, + "type": "array" + }, + "linksModuleData": { + "$ref": "LinksModuleData", + "description": "Links module data. If links module data is also defined on the class, both will be displayed." + }, + "locations": { + "description": "Note: This field is currently not supported to trigger geo notifications.", + "items": { + "$ref": "LatLongPoint" + }, + "type": "array" + }, + "messages": { + "description": "An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.", + "items": { + "$ref": "Message" + }, + "type": "array" + }, + "passConstraints": { + "$ref": "PassConstraints", + "description": "Pass constraints for the object. Includes limiting NFC and screenshot behaviors." + }, + "reservationInfo": { + "$ref": "EventReservationInfo", + "description": "Reservation details for this ticket. This is expected to be shared amongst all tickets that were purchased in the same order." + }, + "rotatingBarcode": { + "$ref": "RotatingBarcode", + "description": "The rotating barcode type and value." + }, + "seatInfo": { + "$ref": "EventSeat", + "description": "Seating details for this ticket." + }, + "smartTapRedemptionValue": { + "description": "The value that will be transmitted to a Smart Tap certified terminal over NFC for this object. The class level fields `enableSmartTap` and `redemptionIssuers` must also be set up correctly in order for the pass to support Smart Tap. Only ASCII characters are supported.", + "type": "string" + }, + "state": { + "description": "Required. The state of the object. This field is used to determine how an object is displayed in the app. For example, an `inactive` object is moved to the \"Expired passes\" section.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "active", + "COMPLETED", + "completed", + "EXPIRED", + "expired", + "INACTIVE", + "inactive" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "Object is active and displayed to with other active objects.", + "Legacy alias for `ACTIVE`. Deprecated.", + "", + "Legacy alias for `COMPLETED`. Deprecated.", + "Object is no longer valid (`validTimeInterval` passed).", + "Legacy alias for `EXPIRED`. Deprecated.", + "", + "Legacy alias for `INACTIVE`. Deprecated." + ], + "type": "string" + }, + "textModulesData": { + "description": "Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.", + "items": { + "$ref": "TextModuleData" + }, + "type": "array" + }, + "ticketHolderName": { + "description": "Name of the ticket holder, if the ticket is assigned to a person. E.g. \"John Doe\" or \"Jane Doe\".", + "type": "string" + }, + "ticketNumber": { + "description": "The number of the ticket. This can be a unique identifier across all tickets in an issuer's system, all tickets for the event (e.g. XYZ1234512345), or all tickets in the order (1, 2, 3, etc.).", + "type": "string" + }, + "ticketType": { + "$ref": "LocalizedString", + "description": "The type of the ticket, such as \"Adult\" or \"Child\", or \"VIP\" or \"Standard\"." + }, + "validTimeInterval": { + "$ref": "TimeInterval", + "description": "The time period this object will be `active` and object can be used. An object's state will be changed to `expired` when this time period has passed." + }, + "version": { + "deprecated": true, + "description": "Deprecated", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "EventTicketObjectAddMessageResponse": { + "id": "EventTicketObjectAddMessageResponse", + "properties": { + "resource": { + "$ref": "EventTicketObject", + "description": "The updated EventTicketObject resource." + } + }, + "type": "object" + }, + "EventTicketObjectListResponse": { + "id": "EventTicketObjectListResponse", + "properties": { + "pagination": { + "$ref": "Pagination", + "description": "Pagination of the response." + }, + "resources": { + "description": "Resources corresponding to the list request.", + "items": { + "$ref": "EventTicketObject" + }, + "type": "array" + } + }, + "type": "object" + }, + "EventVenue": { + "id": "EventVenue", + "properties": { + "address": { + "$ref": "LocalizedString", + "description": "The address of the venue, such as \"24 Willie Mays Plaza\\nSan Francisco, CA 94107\". Address lines are separated by line feed (`\\n`) characters. This is required." + }, + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#eventVenue\"`.", + "type": "string" + }, + "name": { + "$ref": "LocalizedString", + "description": "The name of the venue, such as \"AT&T Park\". This is required." + } + }, + "type": "object" + }, + "ExpiryNotification": { + "description": "Indicates that the issuer would like Google Wallet to send expiry notifications 2 days prior to the card expiration.", + "id": "ExpiryNotification", + "properties": { + "enableNotification": { + "description": "Indicates if the object needs to have expiry notification enabled.", + "type": "boolean" + } + }, + "type": "object" + }, + "FieldReference": { + "description": "Reference definition to use with field overrides.", + "id": "FieldReference", + "properties": { + "dateFormat": { + "description": "Only valid if the `fieldPath` references a date field. Chooses how the date field will be formatted and displayed in the UI.", + "enum": [ + "DATE_FORMAT_UNSPECIFIED", + "DATE_TIME", + "dateTime", + "DATE_ONLY", + "dateOnly", + "TIME_ONLY", + "timeOnly", + "DATE_TIME_YEAR", + "dateTimeYear", + "DATE_YEAR", + "dateYear", + "YEAR_MONTH", + "YEAR_MONTH_DAY" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true, + false, + true, + false, + false + ], + "enumDescriptions": [ + "Default option when no format is specified, when selected, no formatting will be applied.", + "Renders `2018-12-14T13:00:00` as `Dec 14, 1:00 PM` in `en_US`.", + "Legacy alias for `DATE_TIME`. Deprecated.", + "Renders `2018-12-14T13:00:00` as `Dec 14` in `en_US`.", + "Legacy alias for `DATE_ONLY`. Deprecated.", + "Renders `2018-12-14T13:00:00` as `1:00 PM` in `en_US`.", + "Legacy alias for `TIME_ONLY`. Deprecated.", + "Renders `2018-12-14T13:00:00` as `Dec 14, 2018, 1:00 PM` in `en_US`.", + "Legacy alias for `DATE_TIME_YEAR`. Deprecated.", + "Renders `2018-12-14T13:00:00` as `Dec 14, 2018` in `en_US`.", + "Legacy alias for `DATE_YEAR`. Deprecated.", + "Renders `2018-12-14T13:00:00` as `2018-12`.", + "Renders `2018-12-14T13:00:00` as `2018-12-14`." + ], + "type": "string" + }, + "fieldPath": { + "description": "Path to the field being referenced, prefixed with \"object\" or \"class\" and separated with dots. For example, it may be the string \"object.purchaseDetails.purchasePrice\".", + "type": "string" + } + }, + "type": "object" + }, + "FieldSelector": { + "description": "Custom field selector to use with field overrides.", + "id": "FieldSelector", + "properties": { + "fields": { + "description": "If more than one reference is supplied, then the first one that references a non-empty field will be displayed.", + "items": { + "$ref": "FieldReference" + }, + "type": "array" + } + }, + "type": "object" + }, + "FirstRowOption": { + "id": "FirstRowOption", + "properties": { + "fieldOption": { + "$ref": "FieldSelector", + "description": "A reference to the field to be displayed in the first row." + }, + "transitOption": { + "enum": [ + "TRANSIT_OPTION_UNSPECIFIED", + "ORIGIN_AND_DESTINATION_NAMES", + "originAndDestinationNames", + "ORIGIN_AND_DESTINATION_CODES", + "originAndDestinationCodes", + "ORIGIN_NAME", + "originName" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "", + "Legacy alias for `ORIGIN_AND_DESTINATION_NAMES`. Deprecated.", + "", + "Legacy alias for `ORIGIN_AND_DESTINATION_CODES`. Deprecated.", + "", + "Legacy alias for `ORIGIN_NAME`. Deprecated." + ], + "type": "string" + } + }, + "type": "object" + }, + "FlightCarrier": { + "id": "FlightCarrier", + "properties": { + "airlineAllianceLogo": { + "$ref": "Image", + "description": "A logo for the airline alliance, displayed below the QR code that the passenger scans to board." + }, + "airlineLogo": { + "$ref": "Image", + "description": "A logo for the airline described by carrierIataCode and localizedAirlineName. This logo will be rendered at the top of the detailed card view." + }, + "airlineName": { + "$ref": "LocalizedString", + "description": "A localized name of the airline specified by carrierIataCode. If unset, `issuer_name` or `localized_issuer_name` from `FlightClass` will be used for display purposes. eg: \"Swiss Air\" for \"LX\"" + }, + "carrierIataCode": { + "description": "Two character IATA airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIcaoCode` needs to be provided for `carrier` and `operatingCarrier`. eg: \"LX\" for Swiss Air", + "type": "string" + }, + "carrierIcaoCode": { + "description": "Three character ICAO airline code of the marketing carrier (as opposed to operating carrier). Exactly one of this or `carrierIataCode` needs to be provided for `carrier` and `operatingCarrier`. eg: \"EZY\" for Easy Jet", + "type": "string" + }, + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#flightCarrier\"`.", + "type": "string" + }, + "wideAirlineLogo": { + "$ref": "Image", + "description": "The wide logo of the airline. When provided, this will be used in place of the airline logo in the top left of the card view." + } + }, + "type": "object" + }, + "FlightClass": { + "id": "FlightClass", + "properties": { + "allowMultipleUsersPerObject": { + "deprecated": true, + "description": "Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.", + "type": "boolean" + }, + "boardingAndSeatingPolicy": { + "$ref": "BoardingAndSeatingPolicy", + "description": "Policies for boarding and seating. These will inform which labels will be shown to users." + }, + "callbackOptions": { + "$ref": "CallbackOptions", + "description": "Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback." + }, + "classTemplateInfo": { + "$ref": "ClassTemplateInfo", + "description": "Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display." + }, + "countryCode": { + "description": "Country code used to display the card's country (when the user is not in that country), as well as to display localized content when content is not available in the user's locale.", + "type": "string" + }, + "destination": { + "$ref": "AirportInfo", + "description": "Required. Destination airport." + }, + "enableSmartTap": { + "description": "Identifies whether this class supports Smart Tap. The `redemptionIssuers` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.", + "type": "boolean" + }, + "flightHeader": { + "$ref": "FlightHeader", + "description": "Required. Information about the flight carrier and number." + }, + "flightStatus": { + "description": "Status of this flight. If unset, Google will compute status based on data from other sources, such as FlightStats, etc. Note: Google-computed status will not be returned in API responses.", + "enum": [ + "FLIGHT_STATUS_UNSPECIFIED", + "SCHEDULED", + "scheduled", + "ACTIVE", + "active", + "LANDED", + "landed", + "CANCELLED", + "cancelled", + "REDIRECTED", + "redirected", + "DIVERTED", + "diverted" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "Flight is on time, early, or delayed.", + "Legacy alias for `SCHEDULED`. Deprecated.", + "Flight is in progress (taxiing, taking off, landing, airborne).", + "Legacy alias for `ACTIVE`. Deprecated.", + "Flight landed at the original destination.", + "Legacy alias for `LANDED`. Deprecated.", + "Flight is cancelled.", + "Legacy alias for `CANCELLED`. Deprecated.", + "Flight is airborne but heading to a different airport than the original destination.", + "Legacy alias for `REDIRECTED`. Deprecated.", + "Flight has already landed at a different airport than the original destination.", + "Legacy alias for `DIVERTED`. Deprecated." + ], + "type": "string" + }, + "heroImage": { + "$ref": "Image", + "description": "Optional banner image displayed on the front of the card. If none is present, nothing will be displayed. The image will display at 100% width." + }, + "hexBackgroundColor": { + "description": "The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.", + "type": "string" + }, + "homepageUri": { + "$ref": "Uri", + "description": "The URI of your application's home page. Populating the URI in this field results in the exact same behavior as populating an URI in linksModuleData (when an object is rendered, a link to the homepage is shown in what would usually be thought of as the linksModuleData section of the object)." + }, + "id": { + "description": "Required. The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "type": "string" + }, + "imageModulesData": { + "description": "Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.", + "items": { + "$ref": "ImageModuleData" + }, + "type": "array" + }, + "infoModuleData": { + "$ref": "InfoModuleData", + "deprecated": true, + "description": "Deprecated. Use textModulesData instead." + }, + "issuerName": { + "description": "Required. The issuer name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.", + "type": "string" + }, + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#flightClass\"`.", + "type": "string" + }, + "languageOverride": { + "description": "If this field is present, boarding passes served to a user's device will always be in this language. Represents the BCP 47 language tag. Example values are \"en-US\", \"en-GB\", \"de\", or \"de-AT\".", + "type": "string" + }, + "linksModuleData": { + "$ref": "LinksModuleData", + "description": "Links module data. If links module data is also defined on the object, both will be displayed." + }, + "localBoardingDateTime": { + "description": "The boarding time as it would be printed on the boarding pass. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport. If this is not set, Google will set it based on data from other sources.", + "type": "string" + }, + "localEstimatedOrActualArrivalDateTime": { + "description": "The estimated time the aircraft plans to reach the destination gate (not the runway) or the actual time it reached the gate. This field should be set if at least one of the below is true: - It differs from the scheduled time. Google will use it to calculate the delay. - The aircraft already arrived at the gate. Google will use it to inform the user that the flight has arrived at the gate. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on arrival airport. If this is not set, Google will set it based on data from other sources.", + "type": "string" + }, + "localEstimatedOrActualDepartureDateTime": { + "description": "The estimated time the aircraft plans to pull from the gate or the actual time the aircraft already pulled from the gate. Note: This is not the runway time. This field should be set if at least one of the below is true: - It differs from the scheduled time. Google will use it to calculate the delay. - The aircraft already pulled from the gate. Google will use it to inform the user when the flight actually departed. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport. If this is not set, Google will set it based on data from other sources.", + "type": "string" + }, + "localGateClosingDateTime": { + "description": "The gate closing time as it would be printed on the boarding pass. Do not set this field if you do not want to print it in the boarding pass. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport.", + "type": "string" + }, + "localScheduledArrivalDateTime": { + "description": "The scheduled time the aircraft plans to reach the destination gate (not the runway). Note: This field should not change too close to the flight time. For updates to departure times (delays, etc), please set `localEstimatedOrActualArrivalDateTime`. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on arrival airport. If this is not set, Google will set it based on data from other sources.", + "type": "string" + }, + "localScheduledDepartureDateTime": { + "description": "Required. The scheduled date and time when the aircraft is expected to depart the gate (not the runway) Note: This field should not change too close to the departure time. For updates to departure times (delays, etc), please set `localEstimatedOrActualDepartureDateTime`. This is an ISO 8601 extended format date/time without an offset. Time may be specified up to millisecond precision. eg: `2027-03-05T06:30:00` This should be the local date/time at the airport (not a UTC time). Google will reject the request if UTC offset is provided. Time zones will be calculated by Google based on departure airport.", + "type": "string" + }, + "localizedIssuerName": { + "$ref": "LocalizedString", + "description": "Translated strings for the issuer_name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens." + }, + "locations": { + "description": "Note: This field is currently not supported to trigger geo notifications.", + "items": { + "$ref": "LatLongPoint" + }, + "type": "array" + }, + "messages": { + "description": "An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.", + "items": { + "$ref": "Message" + }, + "type": "array" + }, + "multipleDevicesAndHoldersAllowedStatus": { + "description": "Identifies whether multiple users and devices will save the same object referencing this class.", + "enum": [ + "STATUS_UNSPECIFIED", + "MULTIPLE_HOLDERS", + "ONE_USER_ALL_DEVICES", + "ONE_USER_ONE_DEVICE", + "multipleHolders", + "oneUserAllDevices", + "oneUserOneDevice" + ], + "enumDeprecated": [ + false, + false, + false, + false, + true, + true, + true + ], + "enumDescriptions": [ + "Unspecified preference.", + "The Pass object is shareable by a user and can be saved by any number of different users, and on any number of devices. Partners typically use this setup for passes that do not need to be restricted to a single user or pinned to a single device.", + "An object can only be saved by one user, but this user can view and use it on multiple of their devices. Once the first user saves the object, no other user will be allowed to view or save it.", + "An object can only be saved by one user on a single device. Intended for use by select partners in limited circumstances. An example use case is a transit ticket that should be \"device pinned\", meaning it can be saved, viewed and used only by a single user on a single device. Contact support for additional information.", + "Legacy alias for `MULTIPLE_HOLDERS`. Deprecated.", + "Legacy alias for `ONE_USER_ALL_DEVICES`. Deprecated.", + "Legacy alias for `ONE_USER_ONE_DEVICE`. Deprecated." + ], + "type": "string" + }, + "origin": { + "$ref": "AirportInfo", + "description": "Required. Origin airport." + }, + "redemptionIssuers": { + "description": "Identifies which redemption issuers can redeem the pass over Smart Tap. Redemption issuers are identified by their issuer ID. Redemption issuers must have at least one Smart Tap key configured. The `enableSmartTap` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "review": { + "$ref": "Review", + "description": "The review comments set by the platform when a class is marked `approved` or `rejected`." + }, + "reviewStatus": { + "description": "Required. The status of the class. This field can be set to `draft` or `underReview` using the insert, patch, or update API calls. Once the review state is changed from `draft` it may not be changed back to `draft`. You should keep this field to `draft` when the class is under development. A `draft` class cannot be used to create any object. You should set this field to `underReview` when you believe the class is ready for use. The platform will automatically set this field to `approved` and it can be immediately used to create or migrate objects. When updating an already `approved` class you should keep setting this field to `underReview`.", + "enum": [ + "REVIEW_STATUS_UNSPECIFIED", + "UNDER_REVIEW", + "underReview", + "APPROVED", + "approved", + "REJECTED", + "rejected", + "DRAFT", + "draft" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "", + "Legacy alias for `UNDER_REVIEW`. Deprecated.", + "", + "Legacy alias for `APPROVED`. Deprecated.", + "", + "Legacy alias for `REJECTED`. Deprecated.", + "", + "Legacy alias for `DRAFT`. Deprecated." + ], + "type": "string" + }, + "securityAnimation": { + "$ref": "SecurityAnimation", + "description": "Optional information about the security animation. If this is set a security animation will be rendered on pass details." + }, + "textModulesData": { + "description": "Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.", + "items": { + "$ref": "TextModuleData" + }, + "type": "array" + }, + "version": { + "deprecated": true, + "description": "Deprecated", + "format": "int64", + "type": "string" + }, + "viewUnlockRequirement": { + "description": "View Unlock Requirement options for the boarding pass.", + "enum": [ + "VIEW_UNLOCK_REQUIREMENT_UNSPECIFIED", + "UNLOCK_NOT_REQUIRED", + "UNLOCK_REQUIRED_TO_VIEW" + ], + "enumDescriptions": [ + "Default value, same as UNLOCK_NOT_REQUIRED.", + "Default behavior for all the existing Passes if ViewUnlockRequirement is not set.", + "Requires the user to unlock their device each time the pass is viewed. If the user removes their device lock after saving the pass, then they will be prompted to create a device lock before the pass can be viewed." + ], + "type": "string" + }, + "wordMark": { + "$ref": "Image", + "deprecated": true, + "description": "Deprecated." + } + }, + "type": "object" + }, + "FlightClassAddMessageResponse": { + "id": "FlightClassAddMessageResponse", + "properties": { + "resource": { + "$ref": "FlightClass", + "description": "The updated FlightClass resource." + } + }, + "type": "object" + }, + "FlightClassListResponse": { + "id": "FlightClassListResponse", + "properties": { + "pagination": { + "$ref": "Pagination", + "description": "Pagination of the response." + }, + "resources": { + "description": "Resources corresponding to the list request.", + "items": { + "$ref": "FlightClass" + }, + "type": "array" + } + }, + "type": "object" + }, + "FlightHeader": { + "id": "FlightHeader", + "properties": { + "carrier": { + "$ref": "FlightCarrier", + "description": "Information about airline carrier. This is a required property of `flightHeader`." + }, + "flightNumber": { + "description": "The flight number without IATA carrier code. This field should contain only digits. This is a required property of `flightHeader`. eg: \"123\"", + "type": "string" + }, + "flightNumberDisplayOverride": { + "description": "Override value to use for flight number. The default value used for display purposes is carrier + flight_number. If a different value needs to be shown to passengers, use this field to override the default behavior. eg: \"XX1234 / YY576\"", + "type": "string" + }, + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#flightHeader\"`.", + "type": "string" + }, + "operatingCarrier": { + "$ref": "FlightCarrier", + "description": "Information about operating airline carrier." + }, + "operatingFlightNumber": { + "description": "The flight number used by the operating carrier without IATA carrier code. This field should contain only digits. eg: \"234\"", + "type": "string" + } + }, + "type": "object" + }, + "FlightObject": { + "id": "FlightObject", + "properties": { + "appLinkData": { + "$ref": "AppLinkData", + "description": "Optional information about the partner app link." + }, + "barcode": { + "$ref": "Barcode", + "description": "The barcode type and value." + }, + "boardingAndSeatingInfo": { + "$ref": "BoardingAndSeatingInfo", + "description": "Passenger specific information about boarding and seating." + }, + "classId": { + "description": "Required. The class associated with this object. The class must be of the same type as this object, must already exist, and must be approved. Class IDs should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you.", + "type": "string" + }, + "classReference": { + "$ref": "FlightClass", + "description": "A copy of the inherited fields of the parent class. These fields are retrieved during a GET." + }, + "disableExpirationNotification": { + "description": "Indicates if notifications should explicitly be suppressed. If this field is set to true, regardless of the `messages` field, expiration notifications to the user will be suppressed. By default, this field is set to false. Currently, this can only be set for Flights.", + "type": "boolean" + }, + "groupingInfo": { + "$ref": "GroupingInfo", + "description": "Information that controls how passes are grouped together." + }, + "hasLinkedDevice": { + "description": "Whether this object is currently linked to a single device. This field is set by the platform when a user saves the object, linking it to their device. Intended for use by select partners. Contact support for additional information.", + "type": "boolean" + }, + "hasUsers": { + "description": "Indicates if the object has users. This field is set by the platform.", + "type": "boolean" + }, + "heroImage": { + "$ref": "Image", + "description": "Optional banner image displayed on the front of the card. If none is present, hero image of the class, if present, will be displayed. If hero image of the class is also not present, nothing will be displayed." + }, + "hexBackgroundColor": { + "description": "The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.", + "type": "string" + }, + "id": { + "description": "Required. The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you. The unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "type": "string" + }, + "imageModulesData": { + "description": "Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.", + "items": { + "$ref": "ImageModuleData" + }, + "type": "array" + }, + "infoModuleData": { + "$ref": "InfoModuleData", + "description": "Deprecated. Use textModulesData instead." + }, + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#flightObject\"`.", + "type": "string" + }, + "linksModuleData": { + "$ref": "LinksModuleData", + "description": "Links module data. If links module data is also defined on the class, both will be displayed." + }, + "locations": { + "description": "Note: This field is currently not supported to trigger geo notifications.", + "items": { + "$ref": "LatLongPoint" + }, + "type": "array" + }, + "messages": { + "description": "An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.", + "items": { + "$ref": "Message" + }, + "type": "array" + }, + "passConstraints": { + "$ref": "PassConstraints", + "description": "Pass constraints for the object. Includes limiting NFC and screenshot behaviors." + }, + "passengerName": { + "description": "Required. Passenger name as it would appear on the boarding pass. eg: \"Dave M Gahan\" or \"Gahan/Dave\" or \"GAHAN/DAVEM\"", + "type": "string" + }, + "reservationInfo": { + "$ref": "ReservationInfo", + "description": "Required. Information about flight reservation." + }, + "rotatingBarcode": { + "$ref": "RotatingBarcode", + "description": "The rotating barcode type and value." + }, + "securityProgramLogo": { + "$ref": "Image", + "description": "An image for the security program that applies to the passenger." + }, + "smartTapRedemptionValue": { + "description": "The value that will be transmitted to a Smart Tap certified terminal over NFC for this object. The class level fields `enableSmartTap` and `redemptionIssuers` must also be set up correctly in order for the pass to support Smart Tap. Only ASCII characters are supported.", + "type": "string" + }, + "state": { + "description": "Required. The state of the object. This field is used to determine how an object is displayed in the app. For example, an `inactive` object is moved to the \"Expired passes\" section.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "active", + "COMPLETED", + "completed", + "EXPIRED", + "expired", + "INACTIVE", + "inactive" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "Object is active and displayed to with other active objects.", + "Legacy alias for `ACTIVE`. Deprecated.", + "", + "Legacy alias for `COMPLETED`. Deprecated.", + "Object is no longer valid (`validTimeInterval` passed).", + "Legacy alias for `EXPIRED`. Deprecated.", + "", + "Legacy alias for `INACTIVE`. Deprecated." + ], + "type": "string" + }, + "textModulesData": { + "description": "Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.", + "items": { + "$ref": "TextModuleData" + }, + "type": "array" + }, + "validTimeInterval": { + "$ref": "TimeInterval", + "description": "The time period this object will be `active` and object can be used. An object's state will be changed to `expired` when this time period has passed." + }, + "version": { + "deprecated": true, + "description": "Deprecated", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "FlightObjectAddMessageResponse": { + "id": "FlightObjectAddMessageResponse", + "properties": { + "resource": { + "$ref": "FlightObject", + "description": "The updated FlightObject resource." + } + }, + "type": "object" + }, + "FlightObjectListResponse": { + "id": "FlightObjectListResponse", + "properties": { + "pagination": { + "$ref": "Pagination", + "description": "Pagination of the response." + }, + "resources": { + "description": "Resources corresponding to the list request.", + "items": { + "$ref": "FlightObject" + }, + "type": "array" + } + }, + "type": "object" + }, + "FrequentFlyerInfo": { + "id": "FrequentFlyerInfo", + "properties": { + "frequentFlyerNumber": { + "description": "Frequent flyer number. Required for each nested object of kind `walletobjects#frequentFlyerInfo`.", + "type": "string" + }, + "frequentFlyerProgramName": { + "$ref": "LocalizedString", + "description": "Frequent flyer program name. eg: \"Lufthansa Miles & More\"" + }, + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#frequentFlyerInfo\"`.", + "type": "string" + } + }, + "type": "object" + }, + "GenericClass": { + "description": "Generic Class", + "id": "GenericClass", + "properties": { + "callbackOptions": { + "$ref": "CallbackOptions", + "description": "Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback." + }, + "classTemplateInfo": { + "$ref": "ClassTemplateInfo", + "description": "Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display." + }, + "enableSmartTap": { + "description": "Available only to Smart Tap enabled partners. Contact support for additional guidance.", + "type": "boolean" + }, + "id": { + "description": "Required. The unique identifier for the class. This ID must be unique across all from an issuer. This value needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.", + "type": "string" + }, + "imageModulesData": { + "description": "Image module data. If `imageModulesData` is also defined on the object, both will be displayed. Only one of the image from class and one from object level will be rendered when both set.", + "items": { + "$ref": "ImageModuleData" + }, + "type": "array" + }, + "linksModuleData": { + "$ref": "LinksModuleData", + "description": "Links module data. If `linksModuleData` is also defined on the object, both will be displayed. The maximum number of these fields displayed is 10 from class and 10 from object." + }, + "messages": { + "description": "An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.", + "items": { + "$ref": "Message" + }, + "type": "array" + }, + "multipleDevicesAndHoldersAllowedStatus": { + "description": "Identifies whether multiple users and devices will save the same object referencing this class.", + "enum": [ + "STATUS_UNSPECIFIED", + "MULTIPLE_HOLDERS", + "ONE_USER_ALL_DEVICES", + "ONE_USER_ONE_DEVICE", + "multipleHolders", + "oneUserAllDevices", + "oneUserOneDevice" + ], + "enumDeprecated": [ + false, + false, + false, + false, + true, + true, + true + ], + "enumDescriptions": [ + "Unspecified preference.", + "The Pass object is shareable by a user and can be saved by any number of different users, and on any number of devices. Partners typically use this setup for passes that do not need to be restricted to a single user or pinned to a single device.", + "An object can only be saved by one user, but this user can view and use it on multiple of their devices. Once the first user saves the object, no other user will be allowed to view or save it.", + "An object can only be saved by one user on a single device. Intended for use by select partners in limited circumstances. An example use case is a transit ticket that should be \"device pinned\", meaning it can be saved, viewed and used only by a single user on a single device. Contact support for additional information.", + "Legacy alias for `MULTIPLE_HOLDERS`. Deprecated.", + "Legacy alias for `ONE_USER_ALL_DEVICES`. Deprecated.", + "Legacy alias for `ONE_USER_ONE_DEVICE`. Deprecated." + ], + "type": "string" + }, + "redemptionIssuers": { + "description": "Identifies which redemption issuers can redeem the pass over Smart Tap. Redemption issuers are identified by their issuer ID. Redemption issuers must have at least one Smart Tap key configured. The `enableSmartTap` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "securityAnimation": { + "$ref": "SecurityAnimation", + "description": "Optional information about the security animation. If this is set a security animation will be rendered on pass details." + }, + "textModulesData": { + "description": "Text module data. If `textModulesData` is also defined on the object, both will be displayed. The maximum number of these fields displayed is 10 from class and 10 from object.", + "items": { + "$ref": "TextModuleData" + }, + "type": "array" + }, + "viewUnlockRequirement": { + "description": "View Unlock Requirement options for the generic pass.", + "enum": [ + "VIEW_UNLOCK_REQUIREMENT_UNSPECIFIED", + "UNLOCK_NOT_REQUIRED", + "UNLOCK_REQUIRED_TO_VIEW" + ], + "enumDescriptions": [ + "Default value, same as UNLOCK_NOT_REQUIRED.", + "Default behavior for all the existing Passes if ViewUnlockRequirement is not set.", + "Requires the user to unlock their device each time the pass is viewed. If the user removes their device lock after saving the pass, then they will be prompted to create a device lock before the pass can be viewed." + ], + "type": "string" + } + }, + "type": "object" + }, + "GenericClassAddMessageResponse": { + "description": "Response to adding a new issuer message to the class. This contains the entire updated GenericClass.", + "id": "GenericClassAddMessageResponse", + "properties": { + "resource": { + "$ref": "GenericClass", + "description": "The updated EventTicketClass resource." + } + }, + "type": "object" + }, + "GenericClassListResponse": { + "description": "List response which contains the list of all generic classes for a given issuer ID.", + "id": "GenericClassListResponse", + "properties": { + "pagination": { + "$ref": "Pagination", + "description": "Pagination of the response." + }, + "resources": { + "description": "Resources corresponding to the list request.", + "items": { + "$ref": "GenericClass" + }, + "type": "array" + } + }, + "type": "object" + }, + "GenericObject": { + "description": "Generic Object Next ID: 121", + "id": "GenericObject", + "properties": { + "appLinkData": { + "$ref": "AppLinkData", + "description": "Information about the partner app link. The maximum number of these fields displayed is 10." + }, + "barcode": { + "$ref": "Barcode", + "description": "The barcode type and value. If pass does not have a barcode, we can allow the issuer to set Barcode.alternate_text and display just that." + }, + "cardTitle": { + "$ref": "LocalizedString", + "description": "Required. The header of the pass. This is usually the Business name such as \"XXX Gym\", \"AAA Insurance\". This field is required and appears in the header row at the very top of the pass." + }, + "classId": { + "description": "Required. The class associated with this object. The class must be of the same type as this object, must already exist, and must be approved. Class IDs should follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you.", + "type": "string" + }, + "genericType": { + "description": "Specify which `GenericType` the card belongs to.", + "enum": [ + "GENERIC_TYPE_UNSPECIFIED", + "GENERIC_SEASON_PASS", + "GENERIC_UTILITY_BILLS", + "GENERIC_PARKING_PASS", + "GENERIC_VOUCHER", + "GENERIC_GYM_MEMBERSHIP", + "GENERIC_LIBRARY_MEMBERSHIP", + "GENERIC_RESERVATIONS", + "GENERIC_AUTO_INSURANCE", + "GENERIC_HOME_INSURANCE", + "GENERIC_ENTRY_TICKET", + "GENERIC_RECEIPT", + "GENERIC_OTHER" + ], + "enumDescriptions": [ + "Unspecified generic type.", + "Season pass", + "Utility bills", + "Parking pass", + "Voucher", + "Gym membership cards", + "Library membership cards", + "Reservations", + "Auto-insurance cards", + "Home-insurance cards", + "Entry tickets", + "Receipts", + "Other type" + ], + "type": "string" + }, + "groupingInfo": { + "$ref": "GroupingInfo", + "description": "Information that controls how passes are grouped together." + }, + "hasUsers": { + "description": "Indicates if the object has users. This field is set by the platform.", + "type": "boolean" + }, + "header": { + "$ref": "LocalizedString", + "description": "Required. The title of the pass, such as \"50% off coupon\" or \"Library card\" or \"Voucher\". This field is required and appears in the title row of the pass detail view." + }, + "heroImage": { + "$ref": "Image", + "description": "Banner image displayed on the front of the card if present. The image will be displayed at 100% width." + }, + "hexBackgroundColor": { + "description": "The background color for the card. If not set, the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used and if logo is not set, a color would be chosen by Google.", + "type": "string" + }, + "id": { + "description": "Required. The unique identifier for an object. This ID must be unique across all objects from an issuer. This value needs to follow the format `issuerID.identifier` where `issuerID` is issued by Google and `identifier` is chosen by you. The unique identifier can only include alphanumeric characters, `.`, `_`, or `-`.", + "type": "string" + }, + "imageModulesData": { + "description": "Image module data. Only one of the image from class and one from object level will be rendered when both set.", + "items": { + "$ref": "ImageModuleData" + }, + "type": "array" + }, + "linksModuleData": { + "$ref": "LinksModuleData", + "description": "Links module data. If `linksModuleData` is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from class and 10 from object." + }, + "logo": { + "$ref": "Image", + "description": "The logo image of the pass. This image is displayed in the card detail view in upper left, and also on the list/thumbnail view. If the logo is not present, the first letter of `cardTitle` would be shown as logo." + }, + "notifications": { + "$ref": "Notifications", + "description": "The notification settings that are enabled for this object." + }, + "passConstraints": { + "$ref": "PassConstraints", + "description": "Pass constraints for the object. Includes limiting NFC and screenshot behaviors." + }, + "rotatingBarcode": { + "$ref": "RotatingBarcode", + "description": "The rotating barcode settings/details." + }, + "smartTapRedemptionValue": { + "description": "The value that will be transmitted to a Smart Tap certified terminal over NFC for this object. The class level fields `enableSmartTap` and `redemptionIssuers` must also be set up correctly in order for the pass to support Smart Tap. Only ASCII characters are supported.", + "type": "string" + }, + "state": { + "description": "The state of the object. This field is used to determine how an object is displayed in the app. For example, an `inactive` object is moved to the \"Expired passes\" section. If this is not provided, the object would be considered `ACTIVE`.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "active", + "COMPLETED", + "completed", + "EXPIRED", + "expired", + "INACTIVE", + "inactive" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "Object is active and displayed to with other active objects.", + "Legacy alias for `ACTIVE`. Deprecated.", + "", + "Legacy alias for `COMPLETED`. Deprecated.", + "Object is no longer valid (`validTimeInterval` passed).", + "Legacy alias for `EXPIRED`. Deprecated.", + "", + "Legacy alias for `INACTIVE`. Deprecated." + ], + "type": "string" + }, + "subheader": { + "$ref": "LocalizedString", + "description": "The title label of the pass, such as location where this pass can be used. Appears right above the title in the title row in the pass detail view." + }, + "textModulesData": { + "description": "Text module data. If `textModulesData` is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from class and 10 from object.", + "items": { + "$ref": "TextModuleData" + }, + "type": "array" + }, + "validTimeInterval": { + "$ref": "TimeInterval", + "description": "The time period this object will be considered valid or usable. When the time period is passed, the object will be considered expired, which will affect the rendering on user's devices." + }, + "wideLogo": { + "$ref": "Image", + "description": "The wide logo of the pass. When provided, this will be used in place of the logo in the top left of the card view." + } + }, + "type": "object" + }, + "GenericObjectAddMessageResponse": { + "description": "Response to adding a new issuer message to the object. This contains the entire updated GenericObject.", + "id": "GenericObjectAddMessageResponse", + "properties": { + "resource": { + "$ref": "GenericObject", + "description": "The updated GenericObject resource." + } + }, + "type": "object" + }, + "GenericObjectListResponse": { + "description": "List response which contains the list of all generic objects for a given issuer ID.", + "id": "GenericObjectListResponse", + "properties": { + "pagination": { + "$ref": "Pagination", + "description": "Pagination of the response." + }, + "resources": { + "description": "Resources corresponding to the list request.", + "items": { + "$ref": "GenericObject" + }, + "type": "array" + } + }, + "type": "object" + }, + "GiftCardClass": { + "id": "GiftCardClass", + "properties": { + "allowBarcodeRedemption": { + "description": "Determines whether the merchant supports gift card redemption using barcode. If true, app displays a barcode for the gift card on the Gift card details screen. If false, a barcode is not displayed.", + "type": "boolean" + }, + "allowMultipleUsersPerObject": { + "deprecated": true, + "description": "Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.", + "type": "boolean" + }, + "callbackOptions": { + "$ref": "CallbackOptions", + "description": "Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback." + }, + "cardNumberLabel": { + "description": "The label to display for the card number, such as \"Card Number\".", + "type": "string" + }, + "classTemplateInfo": { + "$ref": "ClassTemplateInfo", + "description": "Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display." + }, + "countryCode": { + "description": "Country code used to display the card's country (when the user is not in that country), as well as to display localized content when content is not available in the user's locale.", + "type": "string" + }, + "enableSmartTap": { + "description": "Identifies whether this class supports Smart Tap. The `redemptionIssuers` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.", + "type": "boolean" + }, + "eventNumberLabel": { + "description": "The label to display for event number, such as \"Target Event #\".", + "type": "string" + }, + "heroImage": { + "$ref": "Image", + "description": "Optional banner image displayed on the front of the card. If none is present, nothing will be displayed. The image will display at 100% width." + }, + "hexBackgroundColor": { + "description": "The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.", + "type": "string" + }, + "homepageUri": { + "$ref": "Uri", + "description": "The URI of your application's home page. Populating the URI in this field results in the exact same behavior as populating an URI in linksModuleData (when an object is rendered, a link to the homepage is shown in what would usually be thought of as the linksModuleData section of the object)." + }, + "id": { + "description": "Required. The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "type": "string" + }, + "imageModulesData": { + "description": "Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.", + "items": { + "$ref": "ImageModuleData" + }, + "type": "array" + }, + "infoModuleData": { + "$ref": "InfoModuleData", + "deprecated": true, + "description": "Deprecated. Use textModulesData instead." + }, + "issuerName": { + "description": "Required. The issuer name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.", + "type": "string" + }, + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#giftCardClass\"`.", + "type": "string" + }, + "linksModuleData": { + "$ref": "LinksModuleData", + "description": "Links module data. If links module data is also defined on the object, both will be displayed." + }, + "localizedCardNumberLabel": { + "$ref": "LocalizedString", + "description": "Translated strings for the card_number_label." + }, + "localizedEventNumberLabel": { + "$ref": "LocalizedString", + "description": "Translated strings for the event_number_label." + }, + "localizedIssuerName": { + "$ref": "LocalizedString", + "description": "Translated strings for the issuer_name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens." + }, + "localizedMerchantName": { + "$ref": "LocalizedString", + "description": "Translated strings for the merchant_name. The app may display an ellipsis after the first 20 characters to ensure full string is displayed on smaller screens." + }, + "localizedPinLabel": { + "$ref": "LocalizedString", + "description": "Translated strings for the pin_label." + }, + "locations": { + "description": "Note: This field is currently not supported to trigger geo notifications.", + "items": { + "$ref": "LatLongPoint" + }, + "type": "array" + }, + "merchantName": { + "description": "Merchant name, such as \"Adam's Apparel\". The app may display an ellipsis after the first 20 characters to ensure full string is displayed on smaller screens.", + "type": "string" + }, + "messages": { + "description": "An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.", + "items": { + "$ref": "Message" + }, + "type": "array" + }, + "multipleDevicesAndHoldersAllowedStatus": { + "description": "Identifies whether multiple users and devices will save the same object referencing this class.", + "enum": [ + "STATUS_UNSPECIFIED", + "MULTIPLE_HOLDERS", + "ONE_USER_ALL_DEVICES", + "ONE_USER_ONE_DEVICE", + "multipleHolders", + "oneUserAllDevices", + "oneUserOneDevice" + ], + "enumDeprecated": [ + false, + false, + false, + false, + true, + true, + true + ], + "enumDescriptions": [ + "Unspecified preference.", + "The Pass object is shareable by a user and can be saved by any number of different users, and on any number of devices. Partners typically use this setup for passes that do not need to be restricted to a single user or pinned to a single device.", + "An object can only be saved by one user, but this user can view and use it on multiple of their devices. Once the first user saves the object, no other user will be allowed to view or save it.", + "An object can only be saved by one user on a single device. Intended for use by select partners in limited circumstances. An example use case is a transit ticket that should be \"device pinned\", meaning it can be saved, viewed and used only by a single user on a single device. Contact support for additional information.", + "Legacy alias for `MULTIPLE_HOLDERS`. Deprecated.", + "Legacy alias for `ONE_USER_ALL_DEVICES`. Deprecated.", + "Legacy alias for `ONE_USER_ONE_DEVICE`. Deprecated." + ], + "type": "string" + }, + "pinLabel": { + "description": "The label to display for the PIN, such as \"4-digit PIN\".", + "type": "string" + }, + "programLogo": { + "$ref": "Image", + "description": "The logo of the gift card program or company. This logo is displayed in both the details and list views of the app." + }, + "redemptionIssuers": { + "description": "Identifies which redemption issuers can redeem the pass over Smart Tap. Redemption issuers are identified by their issuer ID. Redemption issuers must have at least one Smart Tap key configured. The `enableSmartTap` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "review": { + "$ref": "Review", + "description": "The review comments set by the platform when a class is marked `approved` or `rejected`." + }, + "reviewStatus": { + "description": "Required. The status of the class. This field can be set to `draft` or `underReview` using the insert, patch, or update API calls. Once the review state is changed from `draft` it may not be changed back to `draft`. You should keep this field to `draft` when the class is under development. A `draft` class cannot be used to create any object. You should set this field to `underReview` when you believe the class is ready for use. The platform will automatically set this field to `approved` and it can be immediately used to create or migrate objects. When updating an already `approved` class you should keep setting this field to `underReview`.", + "enum": [ + "REVIEW_STATUS_UNSPECIFIED", + "UNDER_REVIEW", + "underReview", + "APPROVED", + "approved", + "REJECTED", + "rejected", + "DRAFT", + "draft" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "", + "Legacy alias for `UNDER_REVIEW`. Deprecated.", + "", + "Legacy alias for `APPROVED`. Deprecated.", + "", + "Legacy alias for `REJECTED`. Deprecated.", + "", + "Legacy alias for `DRAFT`. Deprecated." + ], + "type": "string" + }, + "securityAnimation": { + "$ref": "SecurityAnimation", + "description": "Optional information about the security animation. If this is set a security animation will be rendered on pass details." + }, + "textModulesData": { + "description": "Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.", + "items": { + "$ref": "TextModuleData" + }, + "type": "array" + }, + "version": { + "deprecated": true, + "description": "Deprecated", + "format": "int64", + "type": "string" + }, + "viewUnlockRequirement": { + "description": "View Unlock Requirement options for the gift card.", + "enum": [ + "VIEW_UNLOCK_REQUIREMENT_UNSPECIFIED", + "UNLOCK_NOT_REQUIRED", + "UNLOCK_REQUIRED_TO_VIEW" + ], + "enumDescriptions": [ + "Default value, same as UNLOCK_NOT_REQUIRED.", + "Default behavior for all the existing Passes if ViewUnlockRequirement is not set.", + "Requires the user to unlock their device each time the pass is viewed. If the user removes their device lock after saving the pass, then they will be prompted to create a device lock before the pass can be viewed." + ], + "type": "string" + }, + "wideProgramLogo": { + "$ref": "Image", + "description": "The wide logo of the gift card program or company. When provided, this will be used in place of the program logo in the top left of the card view." + }, + "wordMark": { + "$ref": "Image", + "deprecated": true, + "description": "Deprecated." + } + }, + "type": "object" + }, + "GiftCardClassAddMessageResponse": { + "id": "GiftCardClassAddMessageResponse", + "properties": { + "resource": { + "$ref": "GiftCardClass", + "description": "The updated GiftCardClass resource." + } + }, + "type": "object" + }, + "GiftCardClassListResponse": { + "id": "GiftCardClassListResponse", + "properties": { + "pagination": { + "$ref": "Pagination", + "description": "Pagination of the response." + }, + "resources": { + "description": "Resources corresponding to the list request.", + "items": { + "$ref": "GiftCardClass" + }, + "type": "array" + } + }, + "type": "object" + }, + "GiftCardObject": { + "id": "GiftCardObject", + "properties": { + "appLinkData": { + "$ref": "AppLinkData", + "description": "Optional information about the partner app link." + }, + "balance": { + "$ref": "Money", + "description": "The card's monetary balance." + }, + "balanceUpdateTime": { + "$ref": "DateTime", + "description": "The date and time when the balance was last updated. Offset is required. If balance is updated and this property is not provided, system will default to the current time." + }, + "barcode": { + "$ref": "Barcode", + "description": "The barcode type and value." + }, + "cardNumber": { + "description": "Required. The card's number.", + "type": "string" + }, + "classId": { + "description": "Required. The class associated with this object. The class must be of the same type as this object, must already exist, and must be approved. Class IDs should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you.", + "type": "string" + }, + "classReference": { + "$ref": "GiftCardClass", + "description": "A copy of the inherited fields of the parent class. These fields are retrieved during a GET." + }, + "disableExpirationNotification": { + "description": "Indicates if notifications should explicitly be suppressed. If this field is set to true, regardless of the `messages` field, expiration notifications to the user will be suppressed. By default, this field is set to false. Currently, this can only be set for offers.", + "type": "boolean" + }, + "eventNumber": { + "description": "The card's event number, an optional field used by some gift cards.", + "type": "string" + }, + "groupingInfo": { + "$ref": "GroupingInfo", + "description": "Information that controls how passes are grouped together." + }, + "hasLinkedDevice": { + "description": "Whether this object is currently linked to a single device. This field is set by the platform when a user saves the object, linking it to their device. Intended for use by select partners. Contact support for additional information.", + "type": "boolean" + }, + "hasUsers": { + "description": "Indicates if the object has users. This field is set by the platform.", + "type": "boolean" + }, + "heroImage": { + "$ref": "Image", + "description": "Optional banner image displayed on the front of the card. If none is present, hero image of the class, if present, will be displayed. If hero image of the class is also not present, nothing will be displayed." + }, + "id": { + "description": "Required. The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you. The unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "type": "string" + }, + "imageModulesData": { + "description": "Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.", + "items": { + "$ref": "ImageModuleData" + }, + "type": "array" + }, + "infoModuleData": { + "$ref": "InfoModuleData", + "description": "Deprecated. Use textModulesData instead." + }, + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#giftCardObject\"`.", + "type": "string" + }, + "linksModuleData": { + "$ref": "LinksModuleData", + "description": "Links module data. If links module data is also defined on the class, both will be displayed." + }, + "locations": { + "description": "Note: This field is currently not supported to trigger geo notifications.", + "items": { + "$ref": "LatLongPoint" + }, + "type": "array" + }, + "messages": { + "description": "An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.", + "items": { + "$ref": "Message" + }, + "type": "array" + }, + "passConstraints": { + "$ref": "PassConstraints", + "description": "Pass constraints for the object. Includes limiting NFC and screenshot behaviors." + }, + "pin": { + "description": "The card's PIN.", + "type": "string" + }, + "rotatingBarcode": { + "$ref": "RotatingBarcode", + "description": "The rotating barcode type and value." + }, + "smartTapRedemptionValue": { + "description": "The value that will be transmitted to a Smart Tap certified terminal over NFC for this object. The class level fields `enableSmartTap` and `redemptionIssuers` must also be set up correctly in order for the pass to support Smart Tap. Only ASCII characters are supported.", + "type": "string" + }, + "state": { + "description": "Required. The state of the object. This field is used to determine how an object is displayed in the app. For example, an `inactive` object is moved to the \"Expired passes\" section.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "active", + "COMPLETED", + "completed", + "EXPIRED", + "expired", + "INACTIVE", + "inactive" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "Object is active and displayed to with other active objects.", + "Legacy alias for `ACTIVE`. Deprecated.", + "", + "Legacy alias for `COMPLETED`. Deprecated.", + "Object is no longer valid (`validTimeInterval` passed).", + "Legacy alias for `EXPIRED`. Deprecated.", + "", + "Legacy alias for `INACTIVE`. Deprecated." + ], + "type": "string" + }, + "textModulesData": { + "description": "Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.", + "items": { + "$ref": "TextModuleData" + }, + "type": "array" + }, + "validTimeInterval": { + "$ref": "TimeInterval", + "description": "The time period this object will be `active` and object can be used. An object's state will be changed to `expired` when this time period has passed." + }, + "version": { + "deprecated": true, + "description": "Deprecated", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "GiftCardObjectAddMessageResponse": { + "id": "GiftCardObjectAddMessageResponse", + "properties": { + "resource": { + "$ref": "GiftCardObject", + "description": "The updated GiftCardObject resource." + } + }, + "type": "object" + }, + "GiftCardObjectListResponse": { + "id": "GiftCardObjectListResponse", + "properties": { + "pagination": { + "$ref": "Pagination", + "description": "Pagination of the response." + }, + "resources": { + "description": "Resources corresponding to the list request.", + "items": { + "$ref": "GiftCardObject" + }, + "type": "array" + } + }, + "type": "object" + }, + "GroupingInfo": { + "id": "GroupingInfo", + "properties": { + "groupingId": { + "description": "Optional grouping ID for grouping the passes with the same ID visually together. Grouping with different types of passes is allowed.", + "type": "string" + }, + "sortIndex": { + "description": "Optional index for sorting the passes when they are grouped with other passes. Passes with lower sort index are shown before passes with higher sort index. If unspecified, the value is assumed to be INT_MAX. For two passes with the same sort index, the sorting behavior is undefined.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "Image": { + "description": "Wrapping type for Google hosted images. Next ID: 7", + "id": "Image", + "properties": { + "contentDescription": { + "$ref": "LocalizedString", + "description": "Description of the image used for accessibility." + }, + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#image\"`.", + "type": "string" + }, + "sourceUri": { + "$ref": "ImageUri", + "description": "The URI for the image." + } + }, + "type": "object" + }, + "ImageModuleData": { + "id": "ImageModuleData", + "properties": { + "id": { + "description": "The ID associated with an image module. This field is here to enable ease of management of image modules.", + "type": "string" + }, + "mainImage": { + "$ref": "Image", + "description": "A 100% width image." + } + }, + "type": "object" + }, + "ImageUri": { + "id": "ImageUri", + "properties": { + "description": { + "deprecated": true, + "description": "Additional information about the image, which is unused and retained only for backward compatibility.", + "type": "string" + }, + "localizedDescription": { + "$ref": "LocalizedString", + "deprecated": true, + "description": "Translated strings for the description, which are unused and retained only for backward compatibility." + }, + "uri": { + "description": "The location of the image. URIs must have a scheme.", + "type": "string" + } + }, + "type": "object" + }, + "InfoModuleData": { + "id": "InfoModuleData", + "properties": { + "labelValueRows": { + "description": "A list of collections of labels and values. These will be displayed one after the other in a singular column.", + "items": { + "$ref": "LabelValueRow" + }, + "type": "array" + }, + "showLastUpdateTime": { + "deprecated": true, + "type": "boolean" + } + }, + "type": "object" + }, + "Issuer": { + "id": "Issuer", + "properties": { + "callbackOptions": { + "$ref": "CallbackOptions", + "description": "Allows the issuer to provide their callback settings." + }, + "contactInfo": { + "$ref": "IssuerContactInfo", + "description": "Issuer contact information." + }, + "homepageUrl": { + "description": "URL for the issuer's home page.", + "type": "string" + }, + "issuerId": { + "description": "The unique identifier for an issuer account. This is automatically generated when the issuer is inserted.", + "format": "int64", + "type": "string" + }, + "name": { + "description": "The account name of the issuer.", + "type": "string" + }, + "smartTapMerchantData": { + "$ref": "SmartTapMerchantData", + "description": "Available only to Smart Tap enabled partners. Contact support for additional guidance." + } + }, + "type": "object" + }, + "IssuerContactInfo": { + "id": "IssuerContactInfo", + "properties": { + "alertsEmails": { + "description": "Email addresses which will receive alerts.", + "items": { + "type": "string" + }, + "type": "array" + }, + "email": { + "description": "The primary contact email address.", + "type": "string" + }, + "name": { + "description": "The primary contact name.", + "type": "string" + }, + "phone": { + "description": "The primary contact phone number.", + "type": "string" + } + }, + "type": "object" + }, + "IssuerListResponse": { + "id": "IssuerListResponse", + "properties": { + "resources": { + "description": "Resources corresponding to the list request.", + "items": { + "$ref": "Issuer" + }, + "type": "array" + } + }, + "type": "object" + }, + "IssuerToUserInfo": { + "id": "IssuerToUserInfo", + "properties": { + "action": { + "enum": [ + "ACTION_UNSPECIFIED", + "S2AP", + "s2ap", + "SIGN_UP", + "signUp" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "", + "Legacy alias for `S2AP`. Deprecated.", + "", + "Legacy alias for `SIGN_UP`. Deprecated." + ], + "type": "string" + }, + "signUpInfo": { + "$ref": "SignUpInfo" + }, + "url": { + "description": "Currently not used, consider deprecating.", + "type": "string" + }, + "value": { + "description": "JSON web token for action S2AP.", + "type": "string" + } + }, + "type": "object" + }, + "JwtInsertResponse": { + "id": "JwtInsertResponse", + "properties": { + "resources": { + "$ref": "Resources", + "description": "Data that corresponds to the ids of the provided classes and objects in the JWT. resources will only include the non-empty arrays (i.e. if the JWT only includes eventTicketObjects, then that is the only field that will be present in resources)." + }, + "saveUri": { + "description": "A URI that, when opened, will allow the end user to save the object(s) identified in the JWT to their Google account.", + "type": "string" + } + }, + "type": "object" + }, + "JwtResource": { + "id": "JwtResource", + "properties": { + "jwt": { + "description": "A string representing a JWT of the format described at https://developers.google.com/wallet/reference/rest/v1/Jwt", + "type": "string" + } + }, + "type": "object" + }, + "LabelValue": { + "description": "A pair of text strings to be displayed in the details view. Note we no longer display LabelValue/LabelValueRow as a table, instead a list of items.", + "id": "LabelValue", + "properties": { + "label": { + "description": "The label for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.", + "type": "string" + }, + "localizedLabel": { + "$ref": "LocalizedString", + "description": "Translated strings for the label. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout." + }, + "localizedValue": { + "$ref": "LocalizedString", + "description": "Translated strings for the value. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout." + }, + "value": { + "description": "The value for a specific row and column. Recommended maximum is 15 characters for a two-column layout and 30 characters for a one-column layout.", + "type": "string" + } + }, + "type": "object" + }, + "LabelValueRow": { + "id": "LabelValueRow", + "properties": { + "columns": { + "description": "A list of labels and values. These will be displayed in a singular column, one after the other, not in multiple columns, despite the field name.", + "items": { + "$ref": "LabelValue" + }, + "type": "array" + } + }, + "type": "object" + }, + "LatLongPoint": { + "id": "LatLongPoint", + "properties": { + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#latLongPoint\"`.", + "type": "string" + }, + "latitude": { + "description": "The latitude specified as any value in the range of -90.0 through +90.0, both inclusive. Values outside these bounds will be rejected.", + "format": "double", + "type": "number" + }, + "longitude": { + "description": "The longitude specified in the range -180.0 through +180.0, both inclusive. Values outside these bounds will be rejected.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, + "LinksModuleData": { + "id": "LinksModuleData", + "properties": { + "uris": { + "description": "The list of URIs.", + "items": { + "$ref": "Uri" + }, + "type": "array" + } + }, + "type": "object" + }, + "ListTemplateOverride": { + "id": "ListTemplateOverride", + "properties": { + "firstRowOption": { + "$ref": "FirstRowOption", + "description": "Specifies from a predefined set of options or from a reference to the field what will be displayed in the first row. To set this override, set the FirstRowOption.fieldOption to the FieldSelector of your choice." + }, + "secondRowOption": { + "$ref": "FieldSelector", + "description": "A reference to the field to be displayed in the second row. This option is only displayed if there are not multiple user objects in a group. If there is a group, the second row will always display a field shared by all objects. To set this override, please set secondRowOption to the FieldSelector of you choice." + }, + "thirdRowOption": { + "$ref": "FieldSelector", + "deprecated": true, + "description": "An unused/deprecated field. Setting it will have no effect on what the user sees." + } + }, + "type": "object" + }, + "LocalizedString": { + "id": "LocalizedString", + "properties": { + "defaultValue": { + "$ref": "TranslatedString", + "description": "Contains the string to be displayed if no appropriate translation is available." + }, + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#localizedString\"`.", + "type": "string" + }, + "translatedValues": { + "description": "Contains the translations for the string.", + "items": { + "$ref": "TranslatedString" + }, + "type": "array" + } + }, + "type": "object" + }, + "LoyaltyClass": { + "id": "LoyaltyClass", + "properties": { + "accountIdLabel": { + "description": "The account ID label, such as \"Member ID.\" Recommended maximum length is 15 characters to ensure full string is displayed on smaller screens.", + "type": "string" + }, + "accountNameLabel": { + "description": "The account name label, such as \"Member Name.\" Recommended maximum length is 15 characters to ensure full string is displayed on smaller screens.", + "type": "string" + }, + "allowMultipleUsersPerObject": { + "deprecated": true, + "description": "Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.", + "type": "boolean" + }, + "callbackOptions": { + "$ref": "CallbackOptions", + "description": "Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback." + }, + "classTemplateInfo": { + "$ref": "ClassTemplateInfo", + "description": "Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display." + }, + "countryCode": { + "description": "Country code used to display the card's country (when the user is not in that country), as well as to display localized content when content is not available in the user's locale.", + "type": "string" + }, + "discoverableProgram": { + "$ref": "DiscoverableProgram", + "description": "Information about how the class may be discovered and instantiated from within the Google Pay app." + }, + "enableSmartTap": { + "description": "Identifies whether this class supports Smart Tap. The `redemptionIssuers` and one of object level `smartTapRedemptionLevel`, barcode.value`, or `accountId` fields must also be set up correctly in order for a pass to support Smart Tap.", + "type": "boolean" + }, + "heroImage": { + "$ref": "Image", + "description": "Optional banner image displayed on the front of the card. If none is present, nothing will be displayed. The image will display at 100% width." + }, + "hexBackgroundColor": { + "description": "The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.", + "type": "string" + }, + "homepageUri": { + "$ref": "Uri", + "description": "The URI of your application's home page. Populating the URI in this field results in the exact same behavior as populating an URI in linksModuleData (when an object is rendered, a link to the homepage is shown in what would usually be thought of as the linksModuleData section of the object)." + }, + "id": { + "description": "Required. The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "type": "string" + }, + "imageModulesData": { + "description": "Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.", + "items": { + "$ref": "ImageModuleData" + }, + "type": "array" + }, + "infoModuleData": { + "$ref": "InfoModuleData", + "deprecated": true, + "description": "Deprecated. Use textModulesData instead." + }, + "issuerName": { + "description": "Required. The issuer name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.", + "type": "string" + }, + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#loyaltyClass\"`.", + "type": "string" + }, + "linksModuleData": { + "$ref": "LinksModuleData", + "description": "Links module data. If links module data is also defined on the object, both will be displayed." + }, + "localizedAccountIdLabel": { + "$ref": "LocalizedString", + "description": "Translated strings for the account_id_label. Recommended maximum length is 15 characters to ensure full string is displayed on smaller screens." + }, + "localizedAccountNameLabel": { + "$ref": "LocalizedString", + "description": "Translated strings for the account_name_label. Recommended maximum length is 15 characters to ensure full string is displayed on smaller screens." + }, + "localizedIssuerName": { + "$ref": "LocalizedString", + "description": "Translated strings for the issuer_name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens." + }, + "localizedProgramName": { + "$ref": "LocalizedString", + "description": "Translated strings for the program_name. The app may display an ellipsis after the first 20 characters to ensure full string is displayed on smaller screens." + }, + "localizedRewardsTier": { + "$ref": "LocalizedString", + "description": "Translated strings for the rewards_tier. Recommended maximum length is 7 characters to ensure full string is displayed on smaller screens." + }, + "localizedRewardsTierLabel": { + "$ref": "LocalizedString", + "description": "Translated strings for the rewards_tier_label. Recommended maximum length is 9 characters to ensure full string is displayed on smaller screens." + }, + "localizedSecondaryRewardsTier": { + "$ref": "LocalizedString", + "description": "Translated strings for the secondary_rewards_tier." + }, + "localizedSecondaryRewardsTierLabel": { + "$ref": "LocalizedString", + "description": "Translated strings for the secondary_rewards_tier_label." + }, + "locations": { + "description": "Note: This field is currently not supported to trigger geo notifications.", + "items": { + "$ref": "LatLongPoint" + }, + "type": "array" + }, + "messages": { + "description": "An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.", + "items": { + "$ref": "Message" + }, + "type": "array" + }, + "multipleDevicesAndHoldersAllowedStatus": { + "description": "Identifies whether multiple users and devices will save the same object referencing this class.", + "enum": [ + "STATUS_UNSPECIFIED", + "MULTIPLE_HOLDERS", + "ONE_USER_ALL_DEVICES", + "ONE_USER_ONE_DEVICE", + "multipleHolders", + "oneUserAllDevices", + "oneUserOneDevice" + ], + "enumDeprecated": [ + false, + false, + false, + false, + true, + true, + true + ], + "enumDescriptions": [ + "Unspecified preference.", + "The Pass object is shareable by a user and can be saved by any number of different users, and on any number of devices. Partners typically use this setup for passes that do not need to be restricted to a single user or pinned to a single device.", + "An object can only be saved by one user, but this user can view and use it on multiple of their devices. Once the first user saves the object, no other user will be allowed to view or save it.", + "An object can only be saved by one user on a single device. Intended for use by select partners in limited circumstances. An example use case is a transit ticket that should be \"device pinned\", meaning it can be saved, viewed and used only by a single user on a single device. Contact support for additional information.", + "Legacy alias for `MULTIPLE_HOLDERS`. Deprecated.", + "Legacy alias for `ONE_USER_ALL_DEVICES`. Deprecated.", + "Legacy alias for `ONE_USER_ONE_DEVICE`. Deprecated." + ], + "type": "string" + }, + "programLogo": { + "$ref": "Image", + "description": "Required. The logo of the loyalty program or company. This logo is displayed in both the details and list views of the app." + }, + "programName": { + "description": "Required. The program name, such as \"Adam's Apparel\". The app may display an ellipsis after the first 20 characters to ensure full string is displayed on smaller screens.", + "type": "string" + }, + "redemptionIssuers": { + "description": "Identifies which redemption issuers can redeem the pass over Smart Tap. Redemption issuers are identified by their issuer ID. Redemption issuers must have at least one Smart Tap key configured. The `enableSmartTap` and one of object level `smartTapRedemptionValue`, barcode.value`, or `accountId` fields must also be set up correctly in order for a pass to support Smart Tap.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "review": { + "$ref": "Review", + "description": "The review comments set by the platform when a class is marked `approved` or `rejected`." + }, + "reviewStatus": { + "description": "Required. The status of the class. This field can be set to `draft` or `underReview` using the insert, patch, or update API calls. Once the review state is changed from `draft` it may not be changed back to `draft`. You should keep this field to `draft` when the class is under development. A `draft` class cannot be used to create any object. You should set this field to `underReview` when you believe the class is ready for use. The platform will automatically set this field to `approved` and it can be immediately used to create or migrate objects. When updating an already `approved` class you should keep setting this field to `underReview`.", + "enum": [ + "REVIEW_STATUS_UNSPECIFIED", + "UNDER_REVIEW", + "underReview", + "APPROVED", + "approved", + "REJECTED", + "rejected", + "DRAFT", + "draft" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "", + "Legacy alias for `UNDER_REVIEW`. Deprecated.", + "", + "Legacy alias for `APPROVED`. Deprecated.", + "", + "Legacy alias for `REJECTED`. Deprecated.", + "", + "Legacy alias for `DRAFT`. Deprecated." + ], + "type": "string" + }, + "rewardsTier": { + "description": "The rewards tier, such as \"Gold\" or \"Platinum.\" Recommended maximum length is 7 characters to ensure full string is displayed on smaller screens.", + "type": "string" + }, + "rewardsTierLabel": { + "description": "The rewards tier label, such as \"Rewards Tier.\" Recommended maximum length is 9 characters to ensure full string is displayed on smaller screens.", + "type": "string" + }, + "secondaryRewardsTier": { + "description": "The secondary rewards tier, such as \"Gold\" or \"Platinum.\"", + "type": "string" + }, + "secondaryRewardsTierLabel": { + "description": "The secondary rewards tier label, such as \"Rewards Tier.\"", + "type": "string" + }, + "securityAnimation": { + "$ref": "SecurityAnimation", + "description": "Optional information about the security animation. If this is set a security animation will be rendered on pass details." + }, + "textModulesData": { + "description": "Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.", + "items": { + "$ref": "TextModuleData" + }, + "type": "array" + }, + "version": { + "deprecated": true, + "description": "Deprecated", + "format": "int64", + "type": "string" + }, + "viewUnlockRequirement": { + "description": "View Unlock Requirement options for the loyalty card.", + "enum": [ + "VIEW_UNLOCK_REQUIREMENT_UNSPECIFIED", + "UNLOCK_NOT_REQUIRED", + "UNLOCK_REQUIRED_TO_VIEW" + ], + "enumDescriptions": [ + "Default value, same as UNLOCK_NOT_REQUIRED.", + "Default behavior for all the existing Passes if ViewUnlockRequirement is not set.", + "Requires the user to unlock their device each time the pass is viewed. If the user removes their device lock after saving the pass, then they will be prompted to create a device lock before the pass can be viewed." + ], + "type": "string" + }, + "wideProgramLogo": { + "$ref": "Image", + "description": "The wide logo of the loyalty program or company. When provided, this will be used in place of the program logo in the top left of the card view." + }, + "wordMark": { + "$ref": "Image", + "deprecated": true, + "description": "Deprecated." + } + }, + "type": "object" + }, + "LoyaltyClassAddMessageResponse": { + "id": "LoyaltyClassAddMessageResponse", + "properties": { + "resource": { + "$ref": "LoyaltyClass", + "description": "The updated LoyaltyClass resource." + } + }, + "type": "object" + }, + "LoyaltyClassListResponse": { + "id": "LoyaltyClassListResponse", + "properties": { + "pagination": { + "$ref": "Pagination", + "description": "Pagination of the response." + }, + "resources": { + "description": "Resources corresponding to the list request.", + "items": { + "$ref": "LoyaltyClass" + }, + "type": "array" + } + }, + "type": "object" + }, + "LoyaltyObject": { + "id": "LoyaltyObject", + "properties": { + "accountId": { + "description": "The loyalty account identifier. Recommended maximum length is 20 characters.", + "type": "string" + }, + "accountName": { + "description": "The loyalty account holder name, such as \"John Smith.\" Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.", + "type": "string" + }, + "appLinkData": { + "$ref": "AppLinkData", + "description": "Optional information about the partner app link." + }, + "barcode": { + "$ref": "Barcode", + "description": "The barcode type and value." + }, + "classId": { + "description": "Required. The class associated with this object. The class must be of the same type as this object, must already exist, and must be approved. Class IDs should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you.", + "type": "string" + }, + "classReference": { + "$ref": "LoyaltyClass", + "description": "A copy of the inherited fields of the parent class. These fields are retrieved during a GET." + }, + "disableExpirationNotification": { + "description": "Indicates if notifications should explicitly be suppressed. If this field is set to true, regardless of the `messages` field, expiration notifications to the user will be suppressed. By default, this field is set to false. Currently, this can only be set for offers.", + "type": "boolean" + }, + "groupingInfo": { + "$ref": "GroupingInfo", + "description": "Information that controls how passes are grouped together." + }, + "hasLinkedDevice": { + "description": "Whether this object is currently linked to a single device. This field is set by the platform when a user saves the object, linking it to their device. Intended for use by select partners. Contact support for additional information.", + "type": "boolean" + }, + "hasUsers": { + "description": "Indicates if the object has users. This field is set by the platform.", + "type": "boolean" + }, + "heroImage": { + "$ref": "Image", + "description": "Optional banner image displayed on the front of the card. If none is present, hero image of the class, if present, will be displayed. If hero image of the class is also not present, nothing will be displayed." + }, + "id": { + "description": "Required. The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you. The unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "type": "string" + }, + "imageModulesData": { + "description": "Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.", + "items": { + "$ref": "ImageModuleData" + }, + "type": "array" + }, + "infoModuleData": { + "$ref": "InfoModuleData", + "description": "Deprecated. Use textModulesData instead." + }, + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#loyaltyObject\"`.", + "type": "string" + }, + "linkedOfferIds": { + "description": "A list of offer objects linked to this loyalty card. The offer objects must already exist. Offer object IDs should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you.", + "items": { + "type": "string" + }, + "type": "array" + }, + "linksModuleData": { + "$ref": "LinksModuleData", + "description": "Links module data. If links module data is also defined on the class, both will be displayed." + }, + "locations": { + "description": "Note: This field is currently not supported to trigger geo notifications.", + "items": { + "$ref": "LatLongPoint" + }, + "type": "array" + }, + "loyaltyPoints": { + "$ref": "LoyaltyPoints", + "description": "The loyalty reward points label, balance, and type." + }, + "messages": { + "description": "An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.", + "items": { + "$ref": "Message" + }, + "type": "array" + }, + "passConstraints": { + "$ref": "PassConstraints", + "description": "Pass constraints for the object. Includes limiting NFC and screenshot behaviors." + }, + "rotatingBarcode": { + "$ref": "RotatingBarcode", + "description": "The rotating barcode type and value." + }, + "secondaryLoyaltyPoints": { + "$ref": "LoyaltyPoints", + "description": "The secondary loyalty reward points label, balance, and type. Shown in addition to the primary loyalty points." + }, + "smartTapRedemptionValue": { + "description": "The value that will be transmitted to a Smart Tap certified terminal over NFC for this object. The class level fields `enableSmartTap` and `redemptionIssuers` must also be set up correctly in order for the pass to support Smart Tap. Only ASCII characters are supported. If this value is not set but the class level fields `enableSmartTap` and `redemptionIssuers` are set up correctly, the `barcode.value` or the `accountId` fields are used as fallback if present.", + "type": "string" + }, + "state": { + "description": "Required. The state of the object. This field is used to determine how an object is displayed in the app. For example, an `inactive` object is moved to the \"Expired passes\" section.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "active", + "COMPLETED", + "completed", + "EXPIRED", + "expired", + "INACTIVE", + "inactive" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "Object is active and displayed to with other active objects.", + "Legacy alias for `ACTIVE`. Deprecated.", + "", + "Legacy alias for `COMPLETED`. Deprecated.", + "Object is no longer valid (`validTimeInterval` passed).", + "Legacy alias for `EXPIRED`. Deprecated.", + "", + "Legacy alias for `INACTIVE`. Deprecated." + ], + "type": "string" + }, + "textModulesData": { + "description": "Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.", + "items": { + "$ref": "TextModuleData" + }, + "type": "array" + }, + "validTimeInterval": { + "$ref": "TimeInterval", + "description": "The time period this object will be `active` and object can be used. An object's state will be changed to `expired` when this time period has passed." + }, + "version": { + "deprecated": true, + "description": "Deprecated", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "LoyaltyObjectAddMessageResponse": { + "id": "LoyaltyObjectAddMessageResponse", + "properties": { + "resource": { + "$ref": "LoyaltyObject", + "description": "The updated LoyaltyObject resource." + } + }, + "type": "object" + }, + "LoyaltyObjectListResponse": { + "id": "LoyaltyObjectListResponse", + "properties": { + "pagination": { + "$ref": "Pagination", + "description": "Pagination of the response." + }, + "resources": { + "description": "Resources corresponding to the list request.", + "items": { + "$ref": "LoyaltyObject" + }, + "type": "array" + } + }, + "type": "object" + }, + "LoyaltyPoints": { + "id": "LoyaltyPoints", + "properties": { + "balance": { + "$ref": "LoyaltyPointsBalance", + "description": "The account holder's loyalty point balance, such as \"500\" or \"$10.00\". Recommended maximum length is 7 characters. This is a required field of `loyaltyPoints` and `secondaryLoyaltyPoints`." + }, + "label": { + "description": "The loyalty points label, such as \"Points\". Recommended maximum length is 9 characters.", + "type": "string" + }, + "localizedLabel": { + "$ref": "LocalizedString", + "description": "Translated strings for the label. Recommended maximum length is 9 characters." + } + }, + "type": "object" + }, + "LoyaltyPointsBalance": { + "id": "LoyaltyPointsBalance", + "properties": { + "double": { + "description": "The double form of a balance. Only one of these subtypes (string, int, double, money) should be populated.", + "format": "double", + "type": "number" + }, + "int": { + "description": "The integer form of a balance. Only one of these subtypes (string, int, double, money) should be populated.", + "format": "int32", + "type": "integer" + }, + "money": { + "$ref": "Money", + "description": "The money form of a balance. Only one of these subtypes (string, int, double, money) should be populated." + }, + "string": { + "description": "The string form of a balance. Only one of these subtypes (string, int, double, money) should be populated.", + "type": "string" + } + }, + "type": "object" + }, + "Media": { + "description": "A reference to data stored on the filesystem, on GFS or in blobstore.", + "id": "Media", + "properties": { + "algorithm": { + "deprecated": true, + "description": "Deprecated, use one of explicit hash type fields instead. Algorithm used for calculating the hash. As of 2011/01/21, \"MD5\" is the only possible value for this field. New values may be added at any time.", + "type": "string" + }, + "bigstoreObjectRef": { + "deprecated": true, + "description": "Use object_id instead.", + "format": "byte", + "type": "string" + }, + "blobRef": { + "deprecated": true, + "description": "Blobstore v1 reference, set if reference_type is BLOBSTORE_REF This should be the byte representation of a blobstore.BlobRef. Since Blobstore is deprecating v1, use blobstore2_info instead. For now, any v2 blob will also be represented in this field as v1 BlobRef.", + "format": "byte", + "type": "string" + }, + "blobstore2Info": { + "$ref": "Blobstore2Info", + "description": "Blobstore v2 info, set if reference_type is BLOBSTORE_REF and it refers to a v2 blob." + }, + "compositeMedia": { + "description": "A composite media composed of one or more media objects, set if reference_type is COMPOSITE_MEDIA. The media length field must be set to the sum of the lengths of all composite media objects. Note: All composite media must have length specified.", + "items": { + "$ref": "CompositeMedia" + }, + "type": "array" + }, + "contentType": { + "description": "MIME type of the data", + "type": "string" + }, + "contentTypeInfo": { + "$ref": "ContentTypeInfo", + "description": "Extended content type information provided for Scotty uploads." + }, + "cosmoBinaryReference": { + "description": "A binary data reference for a media download. Serves as a technology-agnostic binary reference in some Google infrastructure. This value is a serialized storage_cosmo.BinaryReference proto. Storing it as bytes is a hack to get around the fact that the cosmo proto (as well as others it includes) doesn't support JavaScript. This prevents us from including the actual type of this field.", + "format": "byte", + "type": "string" + }, + "crc32cHash": { + "description": "For Scotty Uploads: Scotty-provided hashes for uploads For Scotty Downloads: (WARNING: DO NOT USE WITHOUT PERMISSION FROM THE SCOTTY TEAM.) A Hash provided by the agent to be used to verify the data being downloaded. Currently only supported for inline payloads. Further, only crc32c_hash is currently supported.", + "format": "uint32", + "type": "integer" + }, + "diffChecksumsResponse": { + "$ref": "DiffChecksumsResponse", + "description": "Set if reference_type is DIFF_CHECKSUMS_RESPONSE." + }, + "diffDownloadResponse": { + "$ref": "DiffDownloadResponse", + "description": "Set if reference_type is DIFF_DOWNLOAD_RESPONSE." + }, + "diffUploadRequest": { + "$ref": "DiffUploadRequest", + "description": "Set if reference_type is DIFF_UPLOAD_REQUEST." + }, + "diffUploadResponse": { + "$ref": "DiffUploadResponse", + "description": "Set if reference_type is DIFF_UPLOAD_RESPONSE." + }, + "diffVersionResponse": { + "$ref": "DiffVersionResponse", + "description": "Set if reference_type is DIFF_VERSION_RESPONSE." + }, + "downloadParameters": { + "$ref": "DownloadParameters", + "description": "Parameters for a media download." + }, + "filename": { + "description": "Original file name", + "type": "string" + }, + "hash": { + "deprecated": true, + "description": "Deprecated, use one of explicit hash type fields instead. These two hash related fields will only be populated on Scotty based media uploads and will contain the content of the hash group in the NotificationRequest: http://cs/#google3/uploader/service/proto/upload_listener.proto&q=class:Hash Hex encoded hash value of the uploaded media.", + "type": "string" + }, + "hashVerified": { + "description": "For Scotty uploads only. If a user sends a hash code and the backend has requested that Scotty verify the upload against the client hash, Scotty will perform the check on behalf of the backend and will reject it if the hashes don't match. This is set to true if Scotty performed this verification.", + "type": "boolean" + }, + "inline": { + "description": "Media data, set if reference_type is INLINE", + "format": "byte", + "type": "string" + }, + "isPotentialRetry": { + "description": "|is_potential_retry| is set false only when Scotty is certain that it has not sent the request before. When a client resumes an upload, this field must be set true in agent calls, because Scotty cannot be certain that it has never sent the request before due to potential failure in the session state persistence.", + "type": "boolean" + }, + "length": { + "description": "Size of the data, in bytes", + "format": "int64", + "type": "string" + }, + "md5Hash": { + "description": "Scotty-provided MD5 hash for an upload.", + "format": "byte", + "type": "string" + }, + "mediaId": { + "description": "Media id to forward to the operation GetMedia. Can be set if reference_type is GET_MEDIA.", + "format": "byte", + "type": "string" + }, + "objectId": { + "$ref": "ObjectId", + "description": "Reference to a TI Blob, set if reference_type is BIGSTORE_REF." + }, + "path": { + "description": "Path to the data, set if reference_type is PATH", + "type": "string" + }, + "referenceType": { + "description": "Describes what the field reference contains.", + "enum": [ + "PATH", + "BLOB_REF", + "INLINE", + "GET_MEDIA", + "COMPOSITE_MEDIA", + "BIGSTORE_REF", + "DIFF_VERSION_RESPONSE", + "DIFF_CHECKSUMS_RESPONSE", + "DIFF_DOWNLOAD_RESPONSE", + "DIFF_UPLOAD_REQUEST", + "DIFF_UPLOAD_RESPONSE", + "COSMO_BINARY_REFERENCE", + "ARBITRARY_BYTES" + ], + "enumDescriptions": [ + "Reference contains a GFS path or a local path.", + "Reference points to a blobstore object. This could be either a v1 blob_ref or a v2 blobstore2_info. Clients should check blobstore2_info first, since v1 is being deprecated.", + "Data is included into this proto buffer", + "Data should be accessed from the current service using the operation GetMedia.", + "The content for this media object is stored across multiple partial media objects under the composite_media field.", + "Reference points to a bigstore object", + "Indicates the data is stored in diff_version_response.", + "Indicates the data is stored in diff_checksums_response.", + "Indicates the data is stored in diff_download_response.", + "Indicates the data is stored in diff_upload_request.", + "Indicates the data is stored in diff_upload_response.", + "Indicates the data is stored in cosmo_binary_reference.", + "Informs Scotty to generate a response payload with the size specified in the length field. The contents of the payload are generated by Scotty and are undefined. This is useful for testing download speeds between the user and Scotty without involving a real payload source. Note: range is not supported when using arbitrary_bytes." + ], + "type": "string" + }, + "sha1Hash": { + "description": "Scotty-provided SHA1 hash for an upload.", + "format": "byte", + "type": "string" + }, + "sha256Hash": { + "description": "Scotty-provided SHA256 hash for an upload.", + "format": "byte", + "type": "string" + }, + "timestamp": { + "description": "Time at which the media data was last updated, in milliseconds since UNIX epoch", + "format": "uint64", + "type": "string" + }, + "token": { + "description": "A unique fingerprint/version id for the media data", + "type": "string" + } + }, + "type": "object" + }, + "MediaRequestInfo": { + "description": "Extra information added to operations that support Scotty media requests.", + "id": "MediaRequestInfo", + "properties": { + "currentBytes": { + "description": "The number of current bytes uploaded or downloaded.", + "format": "int64", + "type": "string" + }, + "customData": { + "description": "Data to be copied to backend requests. Custom data is returned to Scotty in the agent_state field, which Scotty will then provide in subsequent upload notifications.", + "type": "string" + }, + "diffObjectVersion": { + "description": "Set if the http request info is diff encoded. The value of this field is the version number of the base revision. This is corresponding to Apiary's mediaDiffObjectVersion (//depot/google3/java/com/google/api/server/media/variable/DiffObjectVersionVariable.java). See go/esf-scotty-diff-upload for more information.", + "type": "string" + }, + "finalStatus": { + "description": "The existence of the final_status field indicates that this is the last call to the agent for this request_id. http://google3/uploader/agent/scotty_agent.proto?l=737&rcl=347601929", + "format": "int32", + "type": "integer" + }, + "notificationType": { + "description": "The type of notification received from Scotty.", + "enum": [ + "START", + "PROGRESS", + "END", + "RESPONSE_SENT", + "ERROR" + ], + "enumDescriptions": [ + "Such requests signals the start of a request containing media upload. Only the media field(s) in the inserted/updated resource are set. The response should either return an error or succeed. On success, responses don't need to contain anything.", + "Such requests signals that the upload has progressed and that the backend might want to access the media file specified in relevant fields in the resource. Only the media field(s) in the inserted/updated resource are set. The response should either return an error or succeed. On success, responses don't need to contain anything.", + "Such requests signals the end of a request containing media upload. END should be handled just like normal Insert/Upload requests, that is, they should process the request and return a complete resource in the response. Pointers to media data (a GFS path usually) appear in the relevant fields in the inserted/updated resource. See gdata.Media in data.proto.", + "Such requests occur after an END and signal that the response has been sent back to the client. RESPONSE_SENT is only sent to the backend if it is configured to receive them. The response does not need to contain anything.", + "Such requests indicate that an error occurred while processing the request. ERROR is only sent to the backend if it is configured to receive them. It is not guaranteed that all errors will result in this notification to the backend, even if the backend requests them. Since these requests are just for informational purposes, the response does not need to contain anything." + ], + "type": "string" + }, + "requestId": { + "description": "The Scotty request ID.", + "type": "string" + }, + "requestReceivedParamsServingInfo": { + "description": "The partition of the Scotty server handling this request. type is uploader_service.RequestReceivedParamsServingInfo LINT.IfChange(request_received_params_serving_info_annotations) LINT.ThenChange()", + "format": "byte", + "type": "string" + }, + "totalBytes": { + "description": "The total size of the file.", + "format": "int64", + "type": "string" + }, + "totalBytesIsEstimated": { + "description": "Whether the total bytes field contains an estimated data.", + "type": "boolean" + } + }, + "type": "object" + }, + "Message": { + "description": "A message that will be displayed with a Valuable", + "id": "Message", + "properties": { + "body": { + "description": "The message body.", + "type": "string" + }, + "displayInterval": { + "$ref": "TimeInterval", + "description": "The period of time that the message will be displayed to users. You can define both a `startTime` and `endTime` for each message. A message is displayed immediately after a Wallet Object is inserted unless a `startTime` is set. The message will appear in a list of messages indefinitely if `endTime` is not provided." + }, + "header": { + "description": "The message header.", + "type": "string" + }, + "id": { + "description": "The ID associated with a message. This field is here to enable ease of management of messages. Notice ID values could possibly duplicate across multiple messages in the same class/instance, and care must be taken to select a reasonable ID for each message.", + "type": "string" + }, + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#walletObjectMessage\"`.", + "type": "string" + }, + "localizedBody": { + "$ref": "LocalizedString", + "description": "Translated strings for the message body." + }, + "localizedHeader": { + "$ref": "LocalizedString", + "description": "Translated strings for the message header." + }, + "messageType": { + "description": "The message type.", + "enum": [ + "MESSAGE_TYPE_UNSPECIFIED", + "TEXT", + "text", + "EXPIRATION_NOTIFICATION", + "expirationNotification" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "Renders the message as text on the card details screen. This is the default message type.", + "Legacy alias for `TEXT`. Deprecated.", + "Note: This enum is currently not supported.", + "Legacy alias for `EXPIRATION_NOTIFICATION`. Deprecated." + ], + "type": "string" + } + }, + "type": "object" + }, + "ModifyLinkedOfferObjects": { + "id": "ModifyLinkedOfferObjects", + "properties": { + "addLinkedOfferObjectIds": { + "description": "The linked offer object ids to add to the object.", + "items": { + "type": "string" + }, + "type": "array" + }, + "removeLinkedOfferObjectIds": { + "description": "The linked offer object ids to remove from the object.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "ModifyLinkedOfferObjectsRequest": { + "id": "ModifyLinkedOfferObjectsRequest", + "properties": { + "linkedOfferObjectIds": { + "$ref": "ModifyLinkedOfferObjects", + "description": "The linked offer object ids to add or remove from the object." + } + }, + "type": "object" + }, + "Money": { + "id": "Money", + "properties": { + "currencyCode": { + "description": "The currency code, such as \"USD\" or \"EUR.\"", + "type": "string" + }, + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#money\"`.", + "type": "string" + }, + "micros": { + "description": "The unit of money amount in micros. For example, $1 USD would be represented as 1000000 micros.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "Notifications": { + "description": "Indicates if the object needs to have notification enabled. We support only one of ExpiryNotification/UpcomingNotification. `expiryNotification` takes precedence over `upcomingNotification`. In other words if `expiryNotification` is set, we ignore the `upcomingNotification` field.", + "id": "Notifications", + "properties": { + "expiryNotification": { + "$ref": "ExpiryNotification", + "description": "A notification would be triggered at a specific time before the card expires." + }, + "upcomingNotification": { + "$ref": "UpcomingNotification", + "description": "A notification would be triggered at a specific time before the card becomes usable." + } + }, + "type": "object" + }, + "ObjectId": { + "description": "This is a copy of the tech.blob.ObjectId proto, which could not be used directly here due to transitive closure issues with JavaScript support; see http://b/8801763.", + "id": "ObjectId", + "properties": { + "bucketName": { + "description": "The name of the bucket to which this object belongs.", + "type": "string" + }, + "generation": { + "description": "Generation of the object. Generations are monotonically increasing across writes, allowing them to be be compared to determine which generation is newer. If this is omitted in a request, then you are requesting the live object. See http://go/bigstore-versions", + "format": "int64", + "type": "string" + }, + "objectName": { + "description": "The name of the object.", + "type": "string" + } + }, + "type": "object" + }, + "OfferClass": { + "id": "OfferClass", + "properties": { + "allowMultipleUsersPerObject": { + "deprecated": true, + "description": "Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.", + "type": "boolean" + }, + "callbackOptions": { + "$ref": "CallbackOptions", + "description": "Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback." + }, + "classTemplateInfo": { + "$ref": "ClassTemplateInfo", + "description": "Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display." + }, + "countryCode": { + "description": "Country code used to display the card's country (when the user is not in that country), as well as to display localized content when content is not available in the user's locale.", + "type": "string" + }, + "details": { + "description": "The details of the offer.", + "type": "string" + }, + "enableSmartTap": { + "description": "Identifies whether this class supports Smart Tap. The `redemptionIssuers` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.", + "type": "boolean" + }, + "finePrint": { + "description": "The fine print or terms of the offer, such as \"20% off any t-shirt at Adam's Apparel.\"", + "type": "string" + }, + "helpUri": { + "$ref": "Uri", + "description": "The help link for the offer, such as `http://myownpersonaldomain.com/help`" + }, + "heroImage": { + "$ref": "Image", + "description": "Optional banner image displayed on the front of the card. If none is present, nothing will be displayed. The image will display at 100% width." + }, + "hexBackgroundColor": { + "description": "The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.", + "type": "string" + }, + "homepageUri": { + "$ref": "Uri", + "description": "The URI of your application's home page. Populating the URI in this field results in the exact same behavior as populating an URI in linksModuleData (when an object is rendered, a link to the homepage is shown in what would usually be thought of as the linksModuleData section of the object)." + }, + "id": { + "description": "Required. The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "type": "string" + }, + "imageModulesData": { + "description": "Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.", + "items": { + "$ref": "ImageModuleData" + }, + "type": "array" + }, + "infoModuleData": { + "$ref": "InfoModuleData", + "deprecated": true, + "description": "Deprecated. Use textModulesData instead." + }, + "issuerName": { + "description": "Required. The issuer name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.", + "type": "string" + }, + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#offerClass\"`.", + "type": "string" + }, + "linksModuleData": { + "$ref": "LinksModuleData", + "description": "Links module data. If links module data is also defined on the object, both will be displayed." + }, + "localizedDetails": { + "$ref": "LocalizedString", + "description": "Translated strings for the details." + }, + "localizedFinePrint": { + "$ref": "LocalizedString", + "description": "Translated strings for the fine_print." + }, + "localizedIssuerName": { + "$ref": "LocalizedString", + "description": "Translated strings for the issuer_name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens." + }, + "localizedProvider": { + "$ref": "LocalizedString", + "description": "Translated strings for the provider. Recommended maximum length is 12 characters to ensure full string is displayed on smaller screens." + }, + "localizedShortTitle": { + "$ref": "LocalizedString", + "description": "Translated strings for the short title. Recommended maximum length is 20 characters." + }, + "localizedTitle": { + "$ref": "LocalizedString", + "description": "Translated strings for the title. Recommended maximum length is 60 characters to ensure full string is displayed on smaller screens." + }, + "locations": { + "description": "Note: This field is currently not supported to trigger geo notifications.", + "items": { + "$ref": "LatLongPoint" + }, + "type": "array" + }, + "messages": { + "description": "An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.", + "items": { + "$ref": "Message" + }, + "type": "array" + }, + "multipleDevicesAndHoldersAllowedStatus": { + "description": "Identifies whether multiple users and devices will save the same object referencing this class.", + "enum": [ + "STATUS_UNSPECIFIED", + "MULTIPLE_HOLDERS", + "ONE_USER_ALL_DEVICES", + "ONE_USER_ONE_DEVICE", + "multipleHolders", + "oneUserAllDevices", + "oneUserOneDevice" + ], + "enumDeprecated": [ + false, + false, + false, + false, + true, + true, + true + ], + "enumDescriptions": [ + "Unspecified preference.", + "The Pass object is shareable by a user and can be saved by any number of different users, and on any number of devices. Partners typically use this setup for passes that do not need to be restricted to a single user or pinned to a single device.", + "An object can only be saved by one user, but this user can view and use it on multiple of their devices. Once the first user saves the object, no other user will be allowed to view or save it.", + "An object can only be saved by one user on a single device. Intended for use by select partners in limited circumstances. An example use case is a transit ticket that should be \"device pinned\", meaning it can be saved, viewed and used only by a single user on a single device. Contact support for additional information.", + "Legacy alias for `MULTIPLE_HOLDERS`. Deprecated.", + "Legacy alias for `ONE_USER_ALL_DEVICES`. Deprecated.", + "Legacy alias for `ONE_USER_ONE_DEVICE`. Deprecated." + ], + "type": "string" + }, + "provider": { + "description": "Required. The offer provider (either the aggregator name or merchant name). Recommended maximum length is 12 characters to ensure full string is displayed on smaller screens.", + "type": "string" + }, + "redemptionChannel": { + "description": "Required. The redemption channels applicable to this offer.", + "enum": [ + "REDEMPTION_CHANNEL_UNSPECIFIED", + "INSTORE", + "instore", + "ONLINE", + "online", + "BOTH", + "both", + "TEMPORARY_PRICE_REDUCTION", + "temporaryPriceReduction" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "", + "Legacy alias for `INSTORE`. Deprecated.", + "", + "Legacy alias for `ONLINE`. Deprecated.", + "", + "Legacy alias for `BOTH`. Deprecated.", + "", + "Legacy alias for `TEMPORARY_PRICE_REDUCTION`. Deprecated." + ], + "type": "string" + }, + "redemptionIssuers": { + "description": "Identifies which redemption issuers can redeem the pass over Smart Tap. Redemption issuers are identified by their issuer ID. Redemption issuers must have at least one Smart Tap key configured. The `enableSmartTap` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "review": { + "$ref": "Review", + "description": "The review comments set by the platform when a class is marked `approved` or `rejected`." + }, + "reviewStatus": { + "description": "Required. The status of the class. This field can be set to `draft` or The status of the class. This field can be set to `draft` or `underReview` using the insert, patch, or update API calls. Once the review state is changed from `draft` it may not be changed back to `draft`. You should keep this field to `draft` when the class is under development. A `draft` class cannot be used to create any object. You should set this field to `underReview` when you believe the class is ready for use. The platform will automatically set this field to `approved` and it can be immediately used to create or migrate objects. When updating an already `approved` class you should keep setting this field to `underReview`.", + "enum": [ + "REVIEW_STATUS_UNSPECIFIED", + "UNDER_REVIEW", + "underReview", + "APPROVED", + "approved", + "REJECTED", + "rejected", + "DRAFT", + "draft" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "", + "Legacy alias for `UNDER_REVIEW`. Deprecated.", + "", + "Legacy alias for `APPROVED`. Deprecated.", + "", + "Legacy alias for `REJECTED`. Deprecated.", + "", + "Legacy alias for `DRAFT`. Deprecated." + ], + "type": "string" + }, + "securityAnimation": { + "$ref": "SecurityAnimation", + "description": "Optional information about the security animation. If this is set a security animation will be rendered on pass details." + }, + "shortTitle": { + "description": "A shortened version of the title of the offer, such as \"20% off,\" shown to users as a quick reference to the offer contents. Recommended maximum length is 20 characters.", + "type": "string" + }, + "textModulesData": { + "description": "Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.", + "items": { + "$ref": "TextModuleData" + }, + "type": "array" + }, + "title": { + "description": "Required. The title of the offer, such as \"20% off any t-shirt.\" Recommended maximum length is 60 characters to ensure full string is displayed on smaller screens.", + "type": "string" + }, + "titleImage": { + "$ref": "Image", + "description": "The title image of the offer. This image is displayed in both the details and list views of the app." + }, + "version": { + "deprecated": true, + "description": "Deprecated", + "format": "int64", + "type": "string" + }, + "viewUnlockRequirement": { + "description": "View Unlock Requirement options for the offer.", + "enum": [ + "VIEW_UNLOCK_REQUIREMENT_UNSPECIFIED", + "UNLOCK_NOT_REQUIRED", + "UNLOCK_REQUIRED_TO_VIEW" + ], + "enumDescriptions": [ + "Default value, same as UNLOCK_NOT_REQUIRED.", + "Default behavior for all the existing Passes if ViewUnlockRequirement is not set.", + "Requires the user to unlock their device each time the pass is viewed. If the user removes their device lock after saving the pass, then they will be prompted to create a device lock before the pass can be viewed." + ], + "type": "string" + }, + "wideTitleImage": { + "$ref": "Image", + "description": "The wide title image of the offer. When provided, this will be used in place of the title image in the top left of the card view." + }, + "wordMark": { + "$ref": "Image", + "deprecated": true, + "description": "Deprecated." + } + }, + "type": "object" + }, + "OfferClassAddMessageResponse": { + "id": "OfferClassAddMessageResponse", + "properties": { + "resource": { + "$ref": "OfferClass", + "description": "The updated OfferClass resource." + } + }, + "type": "object" + }, + "OfferClassListResponse": { + "id": "OfferClassListResponse", + "properties": { + "pagination": { + "$ref": "Pagination", + "description": "Pagination of the response." + }, + "resources": { + "description": "Resources corresponding to the list request.", + "items": { + "$ref": "OfferClass" + }, + "type": "array" + } + }, + "type": "object" + }, + "OfferObject": { + "id": "OfferObject", + "properties": { + "appLinkData": { + "$ref": "AppLinkData", + "description": "Optional information about the partner app link." + }, + "barcode": { + "$ref": "Barcode", + "description": "The barcode type and value." + }, + "classId": { + "description": "Required. The class associated with this object. The class must be of the same type as this object, must already exist, and must be approved. Class IDs should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you.", + "type": "string" + }, + "classReference": { + "$ref": "OfferClass", + "description": "A copy of the inherited fields of the parent class. These fields are retrieved during a GET." + }, + "disableExpirationNotification": { + "description": "Indicates if notifications should explicitly be suppressed. If this field is set to true, regardless of the `messages` field, expiration notifications to the user will be suppressed. By default, this field is set to false. Currently, this can only be set for offers.", + "type": "boolean" + }, + "groupingInfo": { + "$ref": "GroupingInfo", + "description": "Information that controls how passes are grouped together." + }, + "hasLinkedDevice": { + "description": "Whether this object is currently linked to a single device. This field is set by the platform when a user saves the object, linking it to their device. Intended for use by select partners. Contact support for additional information.", + "type": "boolean" + }, + "hasUsers": { + "description": "Indicates if the object has users. This field is set by the platform.", + "type": "boolean" + }, + "heroImage": { + "$ref": "Image", + "description": "Optional banner image displayed on the front of the card. If none is present, hero image of the class, if present, will be displayed. If hero image of the class is also not present, nothing will be displayed." + }, + "id": { + "description": "Required. The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you. The unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "type": "string" + }, + "imageModulesData": { + "description": "Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.", + "items": { + "$ref": "ImageModuleData" + }, + "type": "array" + }, + "infoModuleData": { + "$ref": "InfoModuleData", + "description": "Deprecated. Use textModulesData instead." + }, + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#offerObject\"`.", + "type": "string" + }, + "linksModuleData": { + "$ref": "LinksModuleData", + "description": "Links module data. If links module data is also defined on the class, both will be displayed." + }, + "locations": { + "description": "Note: This field is currently not supported to trigger geo notifications.", + "items": { + "$ref": "LatLongPoint" + }, + "type": "array" + }, + "messages": { + "description": "An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.", + "items": { + "$ref": "Message" + }, + "type": "array" + }, + "passConstraints": { + "$ref": "PassConstraints", + "description": "Pass constraints for the object. Includes limiting NFC and screenshot behaviors." + }, + "rotatingBarcode": { + "$ref": "RotatingBarcode", + "description": "The rotating barcode type and value." + }, + "smartTapRedemptionValue": { + "description": "The value that will be transmitted to a Smart Tap certified terminal over NFC for this object. The class level fields `enableSmartTap` and `redemptionIssuers` must also be set up correctly in order for the pass to support Smart Tap. Only ASCII characters are supported.", + "type": "string" + }, + "state": { + "description": "Required. The state of the object. This field is used to determine how an object is displayed in the app. For example, an `inactive` object is moved to the \"Expired passes\" section.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "active", + "COMPLETED", + "completed", + "EXPIRED", + "expired", + "INACTIVE", + "inactive" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "Object is active and displayed to with other active objects.", + "Legacy alias for `ACTIVE`. Deprecated.", + "", + "Legacy alias for `COMPLETED`. Deprecated.", + "Object is no longer valid (`validTimeInterval` passed).", + "Legacy alias for `EXPIRED`. Deprecated.", + "", + "Legacy alias for `INACTIVE`. Deprecated." + ], + "type": "string" + }, + "textModulesData": { + "description": "Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.", + "items": { + "$ref": "TextModuleData" + }, + "type": "array" + }, + "validTimeInterval": { + "$ref": "TimeInterval", + "description": "The time period this object will be `active` and object can be used. An object's state will be changed to `expired` when this time period has passed." + }, + "version": { + "deprecated": true, + "description": "Deprecated", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "OfferObjectAddMessageResponse": { + "id": "OfferObjectAddMessageResponse", + "properties": { + "resource": { + "$ref": "OfferObject", + "description": "The updated OfferObject resource." + } + }, + "type": "object" + }, + "OfferObjectListResponse": { + "id": "OfferObjectListResponse", + "properties": { + "pagination": { + "$ref": "Pagination", + "description": "Pagination of the response." + }, + "resources": { + "description": "Resources corresponding to the list request.", + "items": { + "$ref": "OfferObject" + }, + "type": "array" + } + }, + "type": "object" + }, + "Pagination": { + "id": "Pagination", + "properties": { + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#pagination\"`.", + "type": "string" + }, + "nextPageToken": { + "description": "Page token to send to fetch the next page.", + "type": "string" + }, + "resultsPerPage": { + "description": "Number of results returned in this page.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "PassConstraints": { + "description": "Container for any constraints that may be placed on passes.", + "id": "PassConstraints", + "properties": { + "nfcConstraint": { + "description": "The NFC constraints for the pass.", + "items": { + "enum": [ + "NFC_CONSTRAINT_UNSPECIFIED", + "BLOCK_PAYMENT", + "BLOCK_CLOSED_LOOP_TRANSIT" + ], + "enumDescriptions": [ + "Default value, no specified constraint.", + "Payment cards will not be conveyed while the pass is open.", + "Closed loop transit cards will not be conveyed while the pass is open." + ], + "type": "string" + }, + "type": "array" + }, + "screenshotEligibility": { + "description": "The screenshot eligibility for the pass.", + "enum": [ + "SCREENSHOT_ELIGIBILITY_UNSPECIFIED", + "ELIGIBLE", + "INELIGIBLE" + ], + "enumDescriptions": [ + "Default value, same as ELIGIBLE.", + "Default behavior for all existing Passes if ScreenshotEligibility is not set. Allows screenshots to be taken on Android devices.", + "Disallows screenshots to be taken on Android devices. Note that older versions of Wallet may still allow screenshots to be taken." + ], + "type": "string" + } + }, + "type": "object" + }, + "Permission": { + "id": "Permission", + "properties": { + "emailAddress": { + "description": "The email address of the user, group, or service account to which this permission refers to.", + "type": "string" + }, + "role": { + "description": "The role granted by this permission.", + "enum": [ + "ROLE_UNSPECIFIED", + "OWNER", + "owner", + "READER", + "reader", + "WRITER", + "writer" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "", + "Legacy alias for `OWNER`. Deprecated.", + "", + "Legacy alias for `READER`. Deprecated.", + "", + "Legacy alias for `WRITER`. Deprecated." + ], + "type": "string" + } + }, + "type": "object" + }, + "Permissions": { + "id": "Permissions", + "properties": { + "issuerId": { + "description": "ID of the issuer the list of permissions refer to.", + "format": "int64", + "type": "string" + }, + "permissions": { + "description": "The complete list of permissions for the issuer account.", + "items": { + "$ref": "Permission" + }, + "type": "array" + } + }, + "type": "object" + }, + "PurchaseDetails": { + "id": "PurchaseDetails", + "properties": { + "accountId": { + "description": "ID of the account used to purchase the ticket.", + "type": "string" + }, + "confirmationCode": { + "description": "The confirmation code for the purchase. This may be the same for multiple different tickets and is used to group tickets together.", + "type": "string" + }, + "purchaseDateTime": { + "description": "The purchase date/time of the ticket. This is an ISO 8601 extended format date/time, with or without an offset. Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the event were in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. Without offset information, some rich features may not be available.", + "type": "string" + }, + "purchaseReceiptNumber": { + "description": "Receipt number/identifier for tracking the ticket purchase via the body that sold the ticket.", + "type": "string" + }, + "ticketCost": { + "$ref": "TicketCost", + "description": "The cost of the ticket." + } + }, + "type": "object" + }, + "ReservationInfo": { + "id": "ReservationInfo", + "properties": { + "confirmationCode": { + "description": "Confirmation code needed to check into this flight. This is the number that the passenger would enter into a kiosk at the airport to look up the flight and print a boarding pass.", + "type": "string" + }, + "eticketNumber": { + "description": "E-ticket number.", + "type": "string" + }, + "frequentFlyerInfo": { + "$ref": "FrequentFlyerInfo", + "description": "Frequent flyer membership information." + }, + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#reservationInfo\"`.", + "type": "string" + } + }, + "type": "object" + }, + "Resources": { + "id": "Resources", + "properties": { + "eventTicketClasses": { + "items": { + "$ref": "EventTicketClass" + }, + "type": "array" + }, + "eventTicketObjects": { + "items": { + "$ref": "EventTicketObject" + }, + "type": "array" + }, + "flightClasses": { + "items": { + "$ref": "FlightClass" + }, + "type": "array" + }, + "flightObjects": { + "items": { + "$ref": "FlightObject" + }, + "type": "array" + }, + "giftCardClasses": { + "items": { + "$ref": "GiftCardClass" + }, + "type": "array" + }, + "giftCardObjects": { + "items": { + "$ref": "GiftCardObject" + }, + "type": "array" + }, + "loyaltyClasses": { + "items": { + "$ref": "LoyaltyClass" + }, + "type": "array" + }, + "loyaltyObjects": { + "items": { + "$ref": "LoyaltyObject" + }, + "type": "array" + }, + "offerClasses": { + "items": { + "$ref": "OfferClass" + }, + "type": "array" + }, + "offerObjects": { + "items": { + "$ref": "OfferObject" + }, + "type": "array" + }, + "transitClasses": { + "items": { + "$ref": "TransitClass" + }, + "type": "array" + }, + "transitObjects": { + "items": { + "$ref": "TransitObject" + }, + "type": "array" + } + }, + "type": "object" + }, + "Review": { + "id": "Review", + "properties": { + "comments": { + "type": "string" + } + }, + "type": "object" + }, + "RotatingBarcode": { + "id": "RotatingBarcode", + "properties": { + "alternateText": { + "description": "An optional text that will override the default text that shows under the barcode. This field is intended for a human readable equivalent of the barcode value, used when the barcode cannot be scanned.", + "type": "string" + }, + "initialRotatingBarcodeValues": { + "$ref": "RotatingBarcodeValues", + "description": "Input only. NOTE: This feature is only available for the transit vertical. Optional set of initial rotating barcode values. This allows a small subset of barcodes to be included with the object. Further rotating barcode values must be uploaded with the UploadRotatingBarcodeValues endpoint." + }, + "renderEncoding": { + "description": "The render encoding for the barcode. When specified, barcode is rendered in the given encoding. Otherwise best known encoding is chosen by Google.", + "enum": [ + "RENDER_ENCODING_UNSPECIFIED", + "UTF_8" + ], + "enumDescriptions": [ + "", + "UTF_8 encoding for barcodes. This is only supported for barcode type qrCode." + ], + "type": "string" + }, + "showCodeText": { + "$ref": "LocalizedString", + "description": "Optional text that will be shown when the barcode is hidden behind a click action. This happens in cases where a pass has Smart Tap enabled. If not specified, a default is chosen by Google." + }, + "totpDetails": { + "$ref": "RotatingBarcodeTotpDetails", + "description": "Details used to evaluate the {totp_value_n} substitutions." + }, + "type": { + "description": "The type of this barcode.", + "enum": [ + "BARCODE_TYPE_UNSPECIFIED", + "AZTEC", + "aztec", + "CODE_39", + "code39", + "CODE_128", + "code128", + "CODABAR", + "codabar", + "DATA_MATRIX", + "dataMatrix", + "EAN_8", + "ean8", + "EAN_13", + "ean13", + "EAN13", + "ITF_14", + "itf14", + "PDF_417", + "pdf417", + "PDF417", + "QR_CODE", + "qrCode", + "qrcode", + "UPC_A", + "upcA", + "TEXT_ONLY", + "textOnly" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true, + false, + true, + false, + true, + false, + true, + true, + false, + true, + false, + true, + true, + false, + true, + true, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "Not supported for Rotating Barcodes.", + "Legacy alias for `AZTEC`. Deprecated. Not supported for Rotating Barcodes.", + "Not supported for Rotating Barcodes.", + "Legacy alias for `CODE_39`. Deprecated. Not supported for Rotating Barcodes.", + "Not supported for Rotating Barcodes.", + "Legacy alias for `CODE_128`. Deprecated. Not supported for Rotating Barcodes.", + "Not supported for Rotating Barcodes.", + "Legacy alias for `CODABAR`. Deprecated. Not supported for Rotating Barcodes.", + "A 2D matrix barcode consisting of black and white. Cells or modules are arranged in either a square or rectangle. Not supported for Rotating Barcodes.", + "Legacy alias for `DATA_MATRIX`. Deprecated. Not supported for Rotating Barcodes.", + "Not supported for Rotating Barcodes.", + "Legacy alias for `EAN_8`. Deprecated. Not supported for Rotating Barcodes.", + "Not supported for Rotating Barcodes.", + "Legacy alias for `EAN_13`. Deprecated. Not supported for Rotating Barcodes.", + "Legacy alias for `EAN_13`. Deprecated. Not supported for Rotating Barcodes.", + "14 digit ITF code Not supported for Rotating Barcodes.", + "Legacy alias for `ITF_14`. Deprecated. Not supported for Rotating Barcodes.", + "Supported for Rotating Barcodes.", + "Legacy alias for `PDF_417`. Deprecated.", + "Legacy alias for `PDF_417`. Deprecated.", + "Supported for Rotating Barcodes.", + "Legacy alias for `QR_CODE`. Deprecated.", + "Legacy alias for `QR_CODE`. Deprecated.", + "11 or 12 digit codes Not supported for Rotating Barcodes.", + "Legacy alias for `UPC_A`. Deprecated. Not supported for Rotating Barcodes.", + "Renders the field as a text field. The `alternateText` field may not be used with a barcode of type `textOnly`. Not supported for Rotating Barcodes.", + "Legacy alias for `TEXT_ONLY`. Deprecated. Not supported for Rotating Barcodes." + ], + "type": "string" + }, + "valuePattern": { + "description": "String encoded barcode value. This string supports the following substitutions: * {totp_value_n}: Replaced with the TOTP value (see TotpDetails.parameters). * {totp_timestamp_millis}: Replaced with the timestamp (millis since epoch) at which the barcode was generated. * {totp_timestamp_seconds}: Replaced with the timestamp (seconds since epoch) at which the barcode was generated.", + "type": "string" + } + }, + "type": "object" + }, + "RotatingBarcodeTotpDetails": { + "description": "Configuration for the time-based OTP substitutions. See https://tools.ietf.org/html/rfc6238", + "id": "RotatingBarcodeTotpDetails", + "properties": { + "algorithm": { + "description": "The TOTP algorithm used to generate the OTP.", + "enum": [ + "TOTP_ALGORITHM_UNSPECIFIED", + "TOTP_SHA1" + ], + "enumDescriptions": [ + "", + "TOTP algorithm from RFC 6238 with the SHA1 hash function" + ], + "type": "string" + }, + "parameters": { + "description": "The TOTP parameters for each of the {totp_value_*} substitutions. The TotpParameters at index n is used for the {totp_value_n} substitution.", + "items": { + "$ref": "RotatingBarcodeTotpDetailsTotpParameters" + }, + "type": "array" + }, + "periodMillis": { + "description": "The time interval used for the TOTP value generation, in milliseconds.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "RotatingBarcodeTotpDetailsTotpParameters": { + "description": "Configuration for the key and value length. See https://www.rfc-editor.org/rfc/rfc4226#section-5.3", + "id": "RotatingBarcodeTotpDetailsTotpParameters", + "properties": { + "key": { + "description": "The secret key used for the TOTP value generation, encoded as a Base16 string.", + "type": "string" + }, + "valueLength": { + "description": "The length of the TOTP value in decimal digits.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "RotatingBarcodeValues": { + "description": "A payload containing many barcode values and start date/time.", + "id": "RotatingBarcodeValues", + "properties": { + "periodMillis": { + "description": "Required. The amount of time each barcode is valid for.", + "format": "int64", + "type": "string" + }, + "startDateTime": { + "description": "Required. The date/time the first barcode is valid from. Barcodes will be rotated through using period_millis defined on the object's RotatingBarcodeValueInfo. This is an ISO 8601 extended format date/time, with an offset. Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the event were in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year.", + "type": "string" + }, + "values": { + "description": "Required. The values to encode in the barcode. At least one value is required.", + "items": { + "type": "string" + }, + "type": "array" + } + }, + "type": "object" + }, + "SecurityAnimation": { + "id": "SecurityAnimation", + "properties": { + "animationType": { + "description": "Type of animation.", + "enum": [ + "ANIMATION_UNSPECIFIED", + "FOIL_SHIMMER", + "foilShimmer" + ], + "enumDeprecated": [ + false, + false, + true + ], + "enumDescriptions": [ + "", + "Default Foil & Shimmer animation", + "Legacy alias for `FOIL_SHIMMER`. Deprecated." + ], + "type": "string" + } + }, + "type": "object" + }, + "SignUpInfo": { + "id": "SignUpInfo", + "properties": { + "classId": { + "description": "ID of the class the user can sign up for.", + "type": "string" + } + }, + "type": "object" + }, + "SmartTap": { + "id": "SmartTap", + "properties": { + "id": { + "description": "The unique identifier for a smart tap. This value should follow the format issuer ID.identifier where the former is issued by Google and latter is the Smart Tap id. The Smart Tap id is a Base64 encoded string which represents the id which was generated by the Google Pay app.", + "type": "string" + }, + "infos": { + "description": "Communication from merchant to user.", + "items": { + "$ref": "IssuerToUserInfo" + }, + "type": "array" + }, + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#smartTap\"`.", + "type": "string" + }, + "merchantId": { + "description": "Smart Tap merchant ID of who engaged in the Smart Tap interaction.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "SmartTapMerchantData": { + "id": "SmartTapMerchantData", + "properties": { + "authenticationKeys": { + "description": "Available only to Smart Tap enabled partners. Contact support for additional guidance.", + "items": { + "$ref": "AuthenticationKey" + }, + "type": "array" + }, + "smartTapMerchantId": { + "description": "Available only to Smart Tap enabled partners. Contact support for additional guidance.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "TemplateItem": { + "id": "TemplateItem", + "properties": { + "firstValue": { + "$ref": "FieldSelector", + "description": "A reference to a field to display. If both `firstValue` and `secondValue` are populated, they will both appear as one item with a slash between them. For example, values A and B would be shown as \"A / B\"." + }, + "predefinedItem": { + "description": "A predefined item to display. Only one of `firstValue` or `predefinedItem` may be set.", + "enum": [ + "PREDEFINED_ITEM_UNSPECIFIED", + "FREQUENT_FLYER_PROGRAM_NAME_AND_NUMBER", + "frequentFlyerProgramNameAndNumber", + "FLIGHT_NUMBER_AND_OPERATING_FLIGHT_NUMBER", + "flightNumberAndOperatingFlightNumber" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "", + "Legacy alias for `FREQUENT_FLYER_PROGRAM_NAME_AND_NUMBER`. Deprecated.", + "", + "Legacy alias for `FLIGHT_NUMBER_AND_OPERATING_FLIGHT_NUMBER`. Deprecated." + ], + "type": "string" + }, + "secondValue": { + "$ref": "FieldSelector", + "description": "A reference to a field to display. This may only be populated if the `firstValue` field is populated." + } + }, + "type": "object" + }, + "TextModuleData": { + "description": "Data for Text module. All fields are optional. Header will be displayed if available, different types of bodies will be concatenated if they are defined.", + "id": "TextModuleData", + "properties": { + "body": { + "description": "The body of the Text Module, which is defined as an uninterrupted string. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens.", + "type": "string" + }, + "header": { + "description": "The header of the Text Module. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens.", + "type": "string" + }, + "id": { + "description": "The ID associated with a text module. This field is here to enable ease of management of text modules.", + "type": "string" + }, + "localizedBody": { + "$ref": "LocalizedString", + "description": "Translated strings for the body. Recommended maximum length is 500 characters to ensure full string is displayed on smaller screens." + }, + "localizedHeader": { + "$ref": "LocalizedString", + "description": "Translated strings for the header. Recommended maximum length is 35 characters to ensure full string is displayed on smaller screens." + } + }, + "type": "object" + }, + "TicketCost": { + "id": "TicketCost", + "properties": { + "discountMessage": { + "$ref": "LocalizedString", + "description": "A message describing any kind of discount that was applied." + }, + "faceValue": { + "$ref": "Money", + "description": "The face value of the ticket." + }, + "purchasePrice": { + "$ref": "Money", + "description": "The actual purchase price of the ticket, after tax and/or discounts." + } + }, + "type": "object" + }, + "TicketLeg": { + "id": "TicketLeg", + "properties": { + "arrivalDateTime": { + "description": "The date/time of arrival. This is an ISO 8601 extended format date/time, with or without an offset. Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the event were in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. The portion of the date/time without the offset is considered the \"local date/time\". This should be the local date/time at the destination station. For example, if the event occurs at the 20th hour of June 5th, 2018 at the destination station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the destination station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.", + "type": "string" + }, + "carriage": { + "description": "The train or ship name/number that the passsenger needs to board.", + "type": "string" + }, + "departureDateTime": { + "description": "The date/time of departure. This is required if there is no validity time interval set on the transit object. This is an ISO 8601 extended format date/time, with or without an offset. Time may be specified up to nanosecond precision. Offsets may be specified with seconds precision (even though offset seconds is not part of ISO 8601). For example: `1985-04-12T23:20:50.52Z` would be 20 minutes and 50.52 seconds after the 23rd hour of April 12th, 1985 in UTC. `1985-04-12T19:20:50.52-04:00` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985, 4 hours before UTC (same instant in time as the above example). If the event were in New York, this would be the equivalent of Eastern Daylight Time (EDT). Remember that offset varies in regions that observe Daylight Saving Time (or Summer Time), depending on the time of the year. `1985-04-12T19:20:50.52` would be 20 minutes and 50.52 seconds after the 19th hour of April 12th, 1985 with no offset information. The portion of the date/time without the offset is considered the \"local date/time\". This should be the local date/time at the origin station. For example, if the departure occurs at the 20th hour of June 5th, 2018 at the origin station, the local date/time portion should be `2018-06-05T20:00:00`. If the local date/time at the origin station is 4 hours before UTC, an offset of `-04:00` may be appended. Without offset information, some rich features may not be available.", + "type": "string" + }, + "destinationName": { + "$ref": "LocalizedString", + "description": "The destination name." + }, + "destinationStationCode": { + "description": "The destination station code.", + "type": "string" + }, + "fareName": { + "$ref": "LocalizedString", + "description": "Short description/name of the fare for this leg of travel. Eg \"Anytime Single Use\"." + }, + "originName": { + "$ref": "LocalizedString", + "description": "The name of the origin station. This is required if `desinationName` is present or if `originStationCode` is not present." + }, + "originStationCode": { + "description": "The origin station code. This is required if `destinationStationCode` is present or if `originName` is not present.", + "type": "string" + }, + "platform": { + "description": "The platform or gate where the passenger can board the carriage.", + "type": "string" + }, + "ticketSeat": { + "$ref": "TicketSeat", + "description": "The reserved seat for the passenger(s). If more than one seat is to be specified then use the `ticketSeats` field instead. Both `ticketSeat` and `ticketSeats` may not be set." + }, + "ticketSeats": { + "description": "The reserved seat for the passenger(s). If only one seat is to be specified then use the `ticketSeat` field instead. Both `ticketSeat` and `ticketSeats` may not be set.", + "items": { + "$ref": "TicketSeat" + }, + "type": "array" + }, + "transitOperatorName": { + "$ref": "LocalizedString", + "description": "The name of the transit operator that is operating this leg of a trip." + }, + "transitTerminusName": { + "$ref": "LocalizedString", + "description": "Terminus station or destination of the train/bus/etc." + }, + "zone": { + "description": "The zone of boarding within the platform.", + "type": "string" + } + }, + "type": "object" + }, + "TicketRestrictions": { + "id": "TicketRestrictions", + "properties": { + "otherRestrictions": { + "$ref": "LocalizedString", + "description": "Extra restrictions that don't fall under the \"route\" or \"time\" categories." + }, + "routeRestrictions": { + "$ref": "LocalizedString", + "description": "Restrictions about routes that may be taken. For example, this may be the string \"Reserved CrossCountry trains only\"." + }, + "routeRestrictionsDetails": { + "$ref": "LocalizedString", + "description": "More details about the above `routeRestrictions`." + }, + "timeRestrictions": { + "$ref": "LocalizedString", + "description": "Restrictions about times this ticket may be used." + } + }, + "type": "object" + }, + "TicketSeat": { + "id": "TicketSeat", + "properties": { + "coach": { + "description": "The identifier of the train car or coach in which the ticketed seat is located. Eg. \"10\"", + "type": "string" + }, + "customFareClass": { + "$ref": "LocalizedString", + "description": "A custome fare class to be used if no `fareClass` applies. Both `fareClass` and `customFareClass` may not be set." + }, + "fareClass": { + "description": "The fare class of the ticketed seat.", + "enum": [ + "FARE_CLASS_UNSPECIFIED", + "ECONOMY", + "economy", + "FIRST", + "first", + "BUSINESS", + "business" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "", + "Legacy alias for `ECONOMY`. Deprecated.", + "", + "Legacy alias for `FIRST`. Deprecated.", + "", + "Legacy alias for `BUSINESS`. Deprecated." + ], + "type": "string" + }, + "seat": { + "description": "The identifier of where the ticketed seat is located. Eg. \"42\". If there is no specific identifier, use `seatAssigment` instead.", + "type": "string" + }, + "seatAssignment": { + "$ref": "LocalizedString", + "description": "The passenger's seat assignment. Eg. \"no specific seat\". To be used when there is no specific identifier to use in `seat`." + } + }, + "type": "object" + }, + "TimeInterval": { + "id": "TimeInterval", + "properties": { + "end": { + "$ref": "DateTime", + "description": "End time of the interval. Offset is not required. If an offset is provided and `start` time is set, `start` must also include an offset." + }, + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#timeInterval\"`.", + "type": "string" + }, + "start": { + "$ref": "DateTime", + "description": "Start time of the interval. Offset is not required. If an offset is provided and `end` time is set, `end` must also include an offset." + } + }, + "type": "object" + }, + "TransitClass": { + "id": "TransitClass", + "properties": { + "activationOptions": { + "$ref": "ActivationOptions", + "description": "Activation options for an activatable ticket." + }, + "allowMultipleUsersPerObject": { + "deprecated": true, + "description": "Deprecated. Use `multipleDevicesAndHoldersAllowedStatus` instead.", + "type": "boolean" + }, + "callbackOptions": { + "$ref": "CallbackOptions", + "description": "Callback options to be used to call the issuer back for every save/delete of an object for this class by the end-user. All objects of this class are eligible for the callback." + }, + "classTemplateInfo": { + "$ref": "ClassTemplateInfo", + "description": "Template information about how the class should be displayed. If unset, Google will fallback to a default set of fields to display." + }, + "countryCode": { + "description": "Country code used to display the card's country (when the user is not in that country), as well as to display localized content when content is not available in the user's locale.", + "type": "string" + }, + "customCarriageLabel": { + "$ref": "LocalizedString", + "description": "A custom label to use for the carriage value (`transitObject.ticketLeg.carriage`)." + }, + "customCoachLabel": { + "$ref": "LocalizedString", + "description": "A custom label to use for the coach value (`transitObject.ticketLeg.ticketSeat.coach`)." + }, + "customConcessionCategoryLabel": { + "$ref": "LocalizedString", + "description": "A custom label to use for the transit concession category value (`transitObject.concessionCategory`)." + }, + "customConfirmationCodeLabel": { + "$ref": "LocalizedString", + "description": "A custom label to use for the confirmation code value (`transitObject.purchaseDetails.confirmationCode`)." + }, + "customDiscountMessageLabel": { + "$ref": "LocalizedString", + "description": "A custom label to use for the transit discount message value (`transitObject.purchaseDetails.ticketCost.discountMessage`)." + }, + "customFareClassLabel": { + "$ref": "LocalizedString", + "description": "A custom label to use for the fare class value (`transitObject.ticketLeg.ticketSeat.fareClass`)." + }, + "customFareNameLabel": { + "$ref": "LocalizedString", + "description": "A custom label to use for the transit fare name value (`transitObject.ticketLeg.fareName`)." + }, + "customOtherRestrictionsLabel": { + "$ref": "LocalizedString", + "description": "A custom label to use for the other restrictions value (`transitObject.ticketRestrictions.otherRestrictions`)." + }, + "customPlatformLabel": { + "$ref": "LocalizedString", + "description": "A custom label to use for the boarding platform value (`transitObject.ticketLeg.platform`)." + }, + "customPurchaseFaceValueLabel": { + "$ref": "LocalizedString", + "description": "A custom label to use for the purchase face value (`transitObject.purchaseDetails.ticketCost.faceValue`)." + }, + "customPurchasePriceLabel": { + "$ref": "LocalizedString", + "description": "A custom label to use for the purchase price value (`transitObject.purchaseDetails.ticketCost.purchasePrice`)." + }, + "customPurchaseReceiptNumberLabel": { + "$ref": "LocalizedString", + "description": "A custom label to use for the purchase receipt number value (`transitObject.purchaseDetails.purchaseReceiptNumber`)." + }, + "customRouteRestrictionsDetailsLabel": { + "$ref": "LocalizedString", + "description": "A custom label to use for the route restrictions details value (`transitObject.ticketRestrictions.routeRestrictionsDetails`)." + }, + "customRouteRestrictionsLabel": { + "$ref": "LocalizedString", + "description": "A custom label to use for the route restrictions value (`transitObject.ticketRestrictions.routeRestrictions`)." + }, + "customSeatLabel": { + "$ref": "LocalizedString", + "description": "A custom label to use for the seat location value (`transitObject.ticketLeg.ticketSeat.seat`)." + }, + "customTicketNumberLabel": { + "$ref": "LocalizedString", + "description": "A custom label to use for the ticket number value (`transitObject.ticketNumber`)." + }, + "customTimeRestrictionsLabel": { + "$ref": "LocalizedString", + "description": "A custom label to use for the time restrictions details value (`transitObject.ticketRestrictions.timeRestrictions`)." + }, + "customTransitTerminusNameLabel": { + "$ref": "LocalizedString", + "description": "A custom label to use for the transit terminus name value (`transitObject.ticketLeg.transitTerminusName`)." + }, + "customZoneLabel": { + "$ref": "LocalizedString", + "description": "A custom label to use for the boarding zone value (`transitObject.ticketLeg.zone`)." + }, + "enableSingleLegItinerary": { + "description": "Controls the display of the single-leg itinerary for this class. By default, an itinerary will only display for multi-leg trips.", + "type": "boolean" + }, + "enableSmartTap": { + "description": "Identifies whether this class supports Smart Tap. The `redemptionIssuers` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.", + "type": "boolean" + }, + "heroImage": { + "$ref": "Image", + "description": "Optional banner image displayed on the front of the card. If none is present, nothing will be displayed. The image will display at 100% width." + }, + "hexBackgroundColor": { + "description": "The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.", + "type": "string" + }, + "homepageUri": { + "$ref": "Uri", + "description": "The URI of your application's home page. Populating the URI in this field results in the exact same behavior as populating an URI in linksModuleData (when an object is rendered, a link to the homepage is shown in what would usually be thought of as the linksModuleData section of the object)." + }, + "id": { + "description": "Required. The unique identifier for a class. This ID must be unique across all classes from an issuer. This value should follow the format issuer ID. identifier where the former is issued by Google and latter is chosen by you. Your unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "type": "string" + }, + "imageModulesData": { + "description": "Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.", + "items": { + "$ref": "ImageModuleData" + }, + "type": "array" + }, + "infoModuleData": { + "$ref": "InfoModuleData", + "deprecated": true, + "description": "Deprecated. Use textModulesData instead." + }, + "issuerName": { + "description": "Required. The issuer name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens.", + "type": "string" + }, + "languageOverride": { + "description": "If this field is present, transit tickets served to a user's device will always be in this language. Represents the BCP 47 language tag. Example values are \"en-US\", \"en-GB\", \"de\", or \"de-AT\".", + "type": "string" + }, + "linksModuleData": { + "$ref": "LinksModuleData", + "description": "Links module data. If links module data is also defined on the object, both will be displayed." + }, + "localizedIssuerName": { + "$ref": "LocalizedString", + "description": "Translated strings for the issuer_name. Recommended maximum length is 20 characters to ensure full string is displayed on smaller screens." + }, + "locations": { + "description": "Note: This field is currently not supported to trigger geo notifications.", + "items": { + "$ref": "LatLongPoint" + }, + "type": "array" + }, + "logo": { + "$ref": "Image", + "description": "Required. The logo image of the ticket. This image is displayed in the card detail view of the app." + }, + "messages": { + "description": "An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.", + "items": { + "$ref": "Message" + }, + "type": "array" + }, + "multipleDevicesAndHoldersAllowedStatus": { + "description": "Identifies whether multiple users and devices will save the same object referencing this class.", + "enum": [ + "STATUS_UNSPECIFIED", + "MULTIPLE_HOLDERS", + "ONE_USER_ALL_DEVICES", + "ONE_USER_ONE_DEVICE", + "multipleHolders", + "oneUserAllDevices", + "oneUserOneDevice" + ], + "enumDeprecated": [ + false, + false, + false, + false, + true, + true, + true + ], + "enumDescriptions": [ + "Unspecified preference.", + "The Pass object is shareable by a user and can be saved by any number of different users, and on any number of devices. Partners typically use this setup for passes that do not need to be restricted to a single user or pinned to a single device.", + "An object can only be saved by one user, but this user can view and use it on multiple of their devices. Once the first user saves the object, no other user will be allowed to view or save it.", + "An object can only be saved by one user on a single device. Intended for use by select partners in limited circumstances. An example use case is a transit ticket that should be \"device pinned\", meaning it can be saved, viewed and used only by a single user on a single device. Contact support for additional information.", + "Legacy alias for `MULTIPLE_HOLDERS`. Deprecated.", + "Legacy alias for `ONE_USER_ALL_DEVICES`. Deprecated.", + "Legacy alias for `ONE_USER_ONE_DEVICE`. Deprecated." + ], + "type": "string" + }, + "redemptionIssuers": { + "description": "Identifies which redemption issuers can redeem the pass over Smart Tap. Redemption issuers are identified by their issuer ID. Redemption issuers must have at least one Smart Tap key configured. The `enableSmartTap` and object level `smartTapRedemptionLevel` fields must also be set up correctly in order for a pass to support Smart Tap.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "review": { + "$ref": "Review", + "description": "The review comments set by the platform when a class is marked `approved` or `rejected`." + }, + "reviewStatus": { + "description": "Required. The status of the class. This field can be set to `draft` or `underReview` using the insert, patch, or update API calls. Once the review state is changed from `draft` it may not be changed back to `draft`. You should keep this field to `draft` when the class is under development. A `draft` class cannot be used to create any object. You should set this field to `underReview` when you believe the class is ready for use. The platform will automatically set this field to `approved` and it can be immediately used to create or migrate objects. When updating an already `approved` class you should keep setting this field to `underReview`.", + "enum": [ + "REVIEW_STATUS_UNSPECIFIED", + "UNDER_REVIEW", + "underReview", + "APPROVED", + "approved", + "REJECTED", + "rejected", + "DRAFT", + "draft" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "", + "Legacy alias for `UNDER_REVIEW`. Deprecated.", + "", + "Legacy alias for `APPROVED`. Deprecated.", + "", + "Legacy alias for `REJECTED`. Deprecated.", + "", + "Legacy alias for `DRAFT`. Deprecated." + ], + "type": "string" + }, + "securityAnimation": { + "$ref": "SecurityAnimation", + "description": "Optional information about the security animation. If this is set a security animation will be rendered on pass details." + }, + "textModulesData": { + "description": "Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.", + "items": { + "$ref": "TextModuleData" + }, + "type": "array" + }, + "transitOperatorName": { + "$ref": "LocalizedString", + "description": "The name of the transit operator." + }, + "transitType": { + "description": "Required. The type of transit this class represents, such as \"bus\".", + "enum": [ + "TRANSIT_TYPE_UNSPECIFIED", + "BUS", + "bus", + "RAIL", + "rail", + "TRAM", + "tram", + "FERRY", + "ferry", + "OTHER", + "other" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "", + "Legacy alias for `BUS`. Deprecated.", + "", + "Legacy alias for `RAIL`. Deprecated.", + "", + "Legacy alias for `TRAM`. Deprecated.", + "", + "Legacy alias for `FERRY`. Deprecated.", + "", + "Legacy alias for `OTHER`. Deprecated." + ], + "type": "string" + }, + "version": { + "deprecated": true, + "description": "Deprecated", + "format": "int64", + "type": "string" + }, + "viewUnlockRequirement": { + "description": "View Unlock Requirement options for the transit ticket.", + "enum": [ + "VIEW_UNLOCK_REQUIREMENT_UNSPECIFIED", + "UNLOCK_NOT_REQUIRED", + "UNLOCK_REQUIRED_TO_VIEW" + ], + "enumDescriptions": [ + "Default value, same as UNLOCK_NOT_REQUIRED.", + "Default behavior for all the existing Passes if ViewUnlockRequirement is not set.", + "Requires the user to unlock their device each time the pass is viewed. If the user removes their device lock after saving the pass, then they will be prompted to create a device lock before the pass can be viewed." + ], + "type": "string" + }, + "watermark": { + "$ref": "Image", + "description": "Watermark image to display on the user's device." + }, + "wideLogo": { + "$ref": "Image", + "description": "The wide logo of the ticket. When provided, this will be used in place of the logo in the top left of the card view." + }, + "wordMark": { + "$ref": "Image", + "deprecated": true, + "description": "Deprecated." + } + }, + "type": "object" + }, + "TransitClassAddMessageResponse": { + "id": "TransitClassAddMessageResponse", + "properties": { + "resource": { + "$ref": "TransitClass", + "description": "The updated TransitClass resource." + } + }, + "type": "object" + }, + "TransitClassListResponse": { + "id": "TransitClassListResponse", + "properties": { + "pagination": { + "$ref": "Pagination", + "description": "Pagination of the response." + }, + "resources": { + "description": "Resources corresponding to the list request.", + "items": { + "$ref": "TransitClass" + }, + "type": "array" + } + }, + "type": "object" + }, + "TransitObject": { + "id": "TransitObject", + "properties": { + "activationStatus": { + "$ref": "ActivationStatus", + "description": "The activation status for the object. Required if the class has `activationOptions` set." + }, + "appLinkData": { + "$ref": "AppLinkData", + "description": "Optional information about the partner app link." + }, + "barcode": { + "$ref": "Barcode", + "description": "The barcode type and value." + }, + "classId": { + "description": "Required. The class associated with this object. The class must be of the same type as this object, must already exist, and must be approved. Class IDs should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you.", + "type": "string" + }, + "classReference": { + "$ref": "TransitClass", + "description": "A copy of the inherited fields of the parent class. These fields are retrieved during a GET." + }, + "concessionCategory": { + "description": "The concession category for the ticket.", + "enum": [ + "CONCESSION_CATEGORY_UNSPECIFIED", + "ADULT", + "adult", + "CHILD", + "child", + "SENIOR", + "senior" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "", + "Legacy alias for `ADULT`. Deprecated.", + "", + "Legacy alias for `CHILD`. Deprecated.", + "", + "Legacy alias for `SENIOR`. Deprecated." + ], + "type": "string" + }, + "customConcessionCategory": { + "$ref": "LocalizedString", + "description": "A custom concession category to use when `concessionCategory` does not provide the right option. Both `concessionCategory` and `customConcessionCategory` may not be set." + }, + "customTicketStatus": { + "$ref": "LocalizedString", + "description": "A custom status to use for the ticket status value when `ticketStatus` does not provide the right option. Both `ticketStatus` and `customTicketStatus` may not be set." + }, + "deviceContext": { + "$ref": "DeviceContext", + "description": "Device context associated with the object." + }, + "disableExpirationNotification": { + "description": "Indicates if notifications should explicitly be suppressed. If this field is set to true, regardless of the `messages` field, expiration notifications to the user will be suppressed. By default, this field is set to false. Currently, this can only be set for offers.", + "type": "boolean" + }, + "groupingInfo": { + "$ref": "GroupingInfo", + "description": "Information that controls how passes are grouped together." + }, + "hasLinkedDevice": { + "description": "Whether this object is currently linked to a single device. This field is set by the platform when a user saves the object, linking it to their device. Intended for use by select partners. Contact support for additional information.", + "type": "boolean" + }, + "hasUsers": { + "description": "Indicates if the object has users. This field is set by the platform.", + "type": "boolean" + }, + "heroImage": { + "$ref": "Image", + "description": "Optional banner image displayed on the front of the card. If none is present, hero image of the class, if present, will be displayed. If hero image of the class is also not present, nothing will be displayed." + }, + "hexBackgroundColor": { + "description": "The background color for the card. If not set the dominant color of the hero image is used, and if no hero image is set, the dominant color of the logo is used. The format is #rrggbb where rrggbb is a hex RGB triplet, such as `#ffcc00`. You can also use the shorthand version of the RGB triplet which is #rgb, such as `#fc0`.", + "type": "string" + }, + "id": { + "description": "Required. The unique identifier for an object. This ID must be unique across all objects from an issuer. This value should follow the format issuer ID.identifier where the former is issued by Google and latter is chosen by you. The unique identifier should only include alphanumeric characters, '.', '_', or '-'.", + "type": "string" + }, + "imageModulesData": { + "description": "Image module data. The maximum number of these fields displayed is 1 from object level and 1 for class object level.", + "items": { + "$ref": "ImageModuleData" + }, + "type": "array" + }, + "infoModuleData": { + "$ref": "InfoModuleData", + "description": "Deprecated. Use textModulesData instead." + }, + "linksModuleData": { + "$ref": "LinksModuleData", + "description": "Links module data. If links module data is also defined on the class, both will be displayed." + }, + "locations": { + "description": "Note: This field is currently not supported to trigger geo notifications.", + "items": { + "$ref": "LatLongPoint" + }, + "type": "array" + }, + "messages": { + "description": "An array of messages displayed in the app. All users of this object will receive its associated messages. The maximum number of these fields is 10.", + "items": { + "$ref": "Message" + }, + "type": "array" + }, + "passConstraints": { + "$ref": "PassConstraints", + "description": "Pass constraints for the object. Includes limiting NFC and screenshot behaviors." + }, + "passengerNames": { + "description": "The name(s) of the passengers the ticket is assigned to. The above `passengerType` field is meant to give Google context on this field.", + "type": "string" + }, + "passengerType": { + "description": "The number of passengers.", + "enum": [ + "PASSENGER_TYPE_UNSPECIFIED", + "SINGLE_PASSENGER", + "singlePassenger", + "MULTIPLE_PASSENGERS", + "multiplePassengers" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "", + "Legacy alias for `SINGLE_PASSENGER`. Deprecated.", + "", + "Legacy alias for `MULTIPLE_PASSENGERS`. Deprecated." + ], + "type": "string" + }, + "purchaseDetails": { + "$ref": "PurchaseDetails", + "description": "Purchase details for this ticket." + }, + "rotatingBarcode": { + "$ref": "RotatingBarcode", + "description": "The rotating barcode type and value." + }, + "smartTapRedemptionValue": { + "description": "The value that will be transmitted to a Smart Tap certified terminal over NFC for this object. The class level fields `enableSmartTap` and `redemptionIssuers` must also be set up correctly in order for the pass to support Smart Tap. Only ASCII characters are supported.", + "type": "string" + }, + "state": { + "description": "Required. The state of the object. This field is used to determine how an object is displayed in the app. For example, an `inactive` object is moved to the \"Expired passes\" section.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "active", + "COMPLETED", + "completed", + "EXPIRED", + "expired", + "INACTIVE", + "inactive" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "Object is active and displayed to with other active objects.", + "Legacy alias for `ACTIVE`. Deprecated.", + "", + "Legacy alias for `COMPLETED`. Deprecated.", + "Object is no longer valid (`validTimeInterval` passed).", + "Legacy alias for `EXPIRED`. Deprecated.", + "", + "Legacy alias for `INACTIVE`. Deprecated." + ], + "type": "string" + }, + "textModulesData": { + "description": "Text module data. If text module data is also defined on the class, both will be displayed. The maximum number of these fields displayed is 10 from the object and 10 from the class.", + "items": { + "$ref": "TextModuleData" + }, + "type": "array" + }, + "ticketLeg": { + "$ref": "TicketLeg", + "description": "A single ticket leg contains departure and arrival information along with boarding and seating information. If more than one leg is to be specified then use the `ticketLegs` field instead. Both `ticketLeg` and `ticketLegs` may not be set." + }, + "ticketLegs": { + "description": "Each ticket may contain one or more legs. Each leg contains departure and arrival information along with boarding and seating information. If only one leg is to be specified then use the `ticketLeg` field instead. Both `ticketLeg` and `ticketLegs` may not be set.", + "items": { + "$ref": "TicketLeg" + }, + "type": "array" + }, + "ticketNumber": { + "description": "The number of the ticket. This is a unique identifier for the ticket in the transit operator's system.", + "type": "string" + }, + "ticketRestrictions": { + "$ref": "TicketRestrictions", + "description": "Information about what kind of restrictions there are on using this ticket. For example, which days of the week it must be used, or which routes are allowed to be taken." + }, + "ticketStatus": { + "description": "The status of the ticket. For states which affect display, use the `state` field instead.", + "enum": [ + "TICKET_STATUS_UNSPECIFIED", + "USED", + "used", + "REFUNDED", + "refunded", + "EXCHANGED", + "exchanged" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "", + "Legacy alias for `USED`. Deprecated.", + "", + "Legacy alias for `REFUNDED`. Deprecated.", + "", + "Legacy alias for `EXCHANGED`. Deprecated." + ], + "type": "string" + }, + "tripId": { + "description": "This id is used to group tickets together if the user has saved multiple tickets for the same trip.", + "type": "string" + }, + "tripType": { + "description": "Required. The type of trip this transit object represents. Used to determine the pass title and/or which symbol to use between the origin and destination.", + "enum": [ + "TRIP_TYPE_UNSPECIFIED", + "ROUND_TRIP", + "roundTrip", + "ONE_WAY", + "oneWay" + ], + "enumDeprecated": [ + false, + false, + true, + false, + true + ], + "enumDescriptions": [ + "", + "", + "Legacy alias for `ROUND_TRIP`. Deprecated.", + "", + "Legacy alias for `ONE_WAY`. Deprecated." + ], + "type": "string" + }, + "validTimeInterval": { + "$ref": "TimeInterval", + "description": "The time period this object will be `active` and object can be used. An object's state will be changed to `expired` when this time period has passed." + }, + "version": { + "deprecated": true, + "description": "Deprecated", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "TransitObjectAddMessageResponse": { + "id": "TransitObjectAddMessageResponse", + "properties": { + "resource": { + "$ref": "TransitObject", + "description": "The updated TransitObject resource." + } + }, + "type": "object" + }, + "TransitObjectListResponse": { + "id": "TransitObjectListResponse", + "properties": { + "pagination": { + "$ref": "Pagination", + "description": "Pagination of the response." + }, + "resources": { + "description": "Resources corresponding to the list request.", + "items": { + "$ref": "TransitObject" + }, + "type": "array" + } + }, + "type": "object" + }, + "TransitObjectUploadRotatingBarcodeValuesRequest": { + "description": "Request to upload rotating barcode values.", + "id": "TransitObjectUploadRotatingBarcodeValuesRequest", + "properties": { + "blob": { + "$ref": "Media", + "description": "A reference to the rotating barcode values payload that was uploaded." + }, + "mediaRequestInfo": { + "$ref": "MediaRequestInfo", + "description": "Extra information about the uploaded media." + } + }, + "type": "object" + }, + "TransitObjectUploadRotatingBarcodeValuesResponse": { + "description": "Response for uploading rotating barcode values.", + "id": "TransitObjectUploadRotatingBarcodeValuesResponse", + "properties": {}, + "type": "object" + }, + "TranslatedString": { + "id": "TranslatedString", + "properties": { + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#translatedString\"`.", + "type": "string" + }, + "language": { + "description": "Represents the BCP 47 language tag. Example values are \"en-US\", \"en-GB\", \"de\", or \"de-AT\".", + "type": "string" + }, + "value": { + "description": "The UTF-8 encoded translated string.", + "type": "string" + } + }, + "type": "object" + }, + "UpcomingNotification": { + "description": "Indicates that the issuer would like Google Wallet to send an upcoming card validity notification 1 day before card becomes valid/usable.", + "id": "UpcomingNotification", + "properties": { + "enableNotification": { + "description": "Indicates if the object needs to have upcoming notification enabled.", + "type": "boolean" + } + }, + "type": "object" + }, + "Uri": { + "id": "Uri", + "properties": { + "description": { + "description": "The URI's title appearing in the app as text. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens. Note that in some contexts this text is not used, such as when `description` is part of an image.", + "type": "string" + }, + "id": { + "description": "The ID associated with a uri. This field is here to enable ease of management of uris.", + "type": "string" + }, + "kind": { + "deprecated": true, + "description": "Identifies what kind of resource this is. Value: the fixed string `\"walletobjects#uri\"`.", + "type": "string" + }, + "localizedDescription": { + "$ref": "LocalizedString", + "description": "Translated strings for the description. Recommended maximum is 20 characters to ensure full string is displayed on smaller screens." + }, + "uri": { + "description": "The location of a web page, image, or other resource. URIs in the `LinksModuleData` module can have different prefixes indicating the type of URI (a link to a web page, a link to a map, a telephone number, or an email address). URIs must have a scheme.", + "type": "string" + } + }, + "type": "object" + } + } +} diff --git a/discovery/googleapis/webfonts__v1.json b/discovery/googleapis/webfonts__v1.json index bdff85ced..e6dbe462a 100644 --- a/discovery/googleapis/webfonts__v1.json +++ b/discovery/googleapis/webfonts__v1.json @@ -16,7 +16,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231115", + "revision": "20240227", "rootUrl": "https://webfonts.googleapis.com/", "servicePath": "", "title": "Web Fonts Developer API", diff --git a/discovery/googleapis/webrisk__v1.json b/discovery/googleapis/webrisk__v1.json index 0fb4e78bb..8a041c38b 100644 --- a/discovery/googleapis/webrisk__v1.json +++ b/discovery/googleapis/webrisk__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231112", + "revision": "20240225", "rootUrl": "https://webrisk.googleapis.com/", "servicePath": "", "title": "Web Risk API", diff --git a/discovery/googleapis/websecurityscanner__v1.json b/discovery/googleapis/websecurityscanner__v1.json index b63e71f8d..81a567fed 100644 --- a/discovery/googleapis/websecurityscanner__v1.json +++ b/discovery/googleapis/websecurityscanner__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231112", + "revision": "20240225", "rootUrl": "https://websecurityscanner.googleapis.com/", "servicePath": "", "title": "Web Security Scanner API", diff --git a/discovery/googleapis/workflowexecutions__v1.json b/discovery/googleapis/workflowexecutions__v1.json index f25933ec3..b141f8cf9 100644 --- a/discovery/googleapis/workflowexecutions__v1.json +++ b/discovery/googleapis/workflowexecutions__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231107", + "revision": "20240220", "rootUrl": "https://workflowexecutions.googleapis.com/", "servicePath": "", "title": "Workflow Executions API", @@ -176,7 +176,7 @@ ] }, "create": { - "description": "Creates a new execution using the latest revision of the given workflow.", + "description": "Creates a new execution using the latest revision of the given workflow. For more information, see Execute a workflow.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workflows/{workflowsId}/executions", "httpMethod": "POST", "id": "workflowexecutions.projects.locations.workflows.executions.create", @@ -278,12 +278,12 @@ ], "parameters": { "filter": { - "description": "Optional. Filters applied to the `[Executions.ListExecutions]` results. The following fields are supported for filtering: `executionId`, `state`, `startTime`, `endTime`, `duration`, `workflowRevisionId`, `stepName`, and `label`. For details, see AIP-160. For example, if you are using the Google APIs Explorer: `state=\"SUCCEEDED\"` or `startTime>\"2023-08-01\" AND state=\"FAILED\"`", + "description": "Optional. Filters applied to the `[Executions.ListExecutions]` results. The following fields are supported for filtering: `executionId`, `state`, `createTime`, `startTime`, `endTime`, `duration`, `workflowRevisionId`, `stepName`, and `label`. For details, see AIP-160. For example, if you are using the Google APIs Explorer: `state=\"SUCCEEDED\"` or `startTime>\"2023-08-01\" AND state=\"FAILED\"`", "location": "query", "type": "string" }, "orderBy": { - "description": "Optional. Comma-separated list of fields that specify the ordering applied to the `[Executions.ListExecutions]` results. By default the ordering is based on descending `startTime`. The following fields are supported for ordering: `executionId`, `state`, `startTime`, `endTime`, `duration`, and `workflowRevisionId`. For details, see AIP-132.", + "description": "Optional. Comma-separated list of fields that specify the ordering applied to the `[Executions.ListExecutions]` results. By default the ordering is based on descending `createTime`. The following fields are supported for ordering: `executionId`, `state`, `createTime`, `startTime`, `endTime`, `duration`, and `workflowRevisionId`. For details, see AIP-132.", "location": "query", "type": "string" }, @@ -553,6 +553,16 @@ ], "type": "string" }, + "createTime": { + "description": "Output only. Marks the creation of the execution.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "disableConcurrencyQuotaOverflowBuffering": { + "description": "Optional. If set to true, the execution will not be backlogged when the concurrency quota is exhausted. The backlog execution starts when the concurrency quota becomes available.", + "type": "boolean" + }, "duration": { "description": "Output only. Measures the duration of the execution.", "format": "google-duration", @@ -773,7 +783,7 @@ "type": "string" }, "messageId": { - "description": "Optional. ID of this message, assigned by the server when the message is published. Guaranteed to be unique within the topic. This value may be read by a subscriber that receives a `PubsubMessage` via a `Pull` call or a push delivery. It must not be populated by the publisher in a `Publish` call.", + "description": "ID of this message, assigned by the server when the message is published. Guaranteed to be unique within the topic. This value may be read by a subscriber that receives a `PubsubMessage` via a `Pull` call or a push delivery. It must not be populated by the publisher in a `Publish` call.", "type": "string" }, "orderingKey": { @@ -781,7 +791,7 @@ "type": "string" }, "publishTime": { - "description": "Optional. The time at which the message was published, populated by the server when it receives the `Publish` call. It must not be populated by the publisher in a `Publish` call.", + "description": "The time at which the message was published, populated by the server when it receives the `Publish` call. It must not be populated by the publisher in a `Publish` call.", "format": "google-datetime", "type": "string" } diff --git a/discovery/googleapis/workflows__v1.json b/discovery/googleapis/workflows__v1.json index 5a915493f..9a4d2a573 100644 --- a/discovery/googleapis/workflows__v1.json +++ b/discovery/googleapis/workflows__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231101", + "revision": "20240207", "rootUrl": "https://workflows.googleapis.com/", "servicePath": "", "title": "Workflows API", @@ -817,7 +817,7 @@ "additionalProperties": { "type": "string" }, - "description": "Optional. User-defined environment variables associated with this workflow revision. This map has a maximum length of 20. Each string can take up to 40KiB. Keys cannot be empty strings and cannot start with “GOOGLE” or “WORKFLOWS\".", + "description": "Optional. User-defined environment variables associated with this workflow revision. This map has a maximum length of 20. Each string can take up to 4KiB. Keys cannot be empty strings and cannot start with \"GOOGLE\" or \"WORKFLOWS\".", "type": "object" } }, diff --git a/discovery/googleapis/workloadmanager__v1.json b/discovery/googleapis/workloadmanager__v1.json index 3f787ec14..01261db59 100644 --- a/discovery/googleapis/workloadmanager__v1.json +++ b/discovery/googleapis/workloadmanager__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231101", + "revision": "20240208", "rootUrl": "https://workloadmanager.googleapis.com/", "servicePath": "", "title": "Workload Manager API", @@ -221,6 +221,36 @@ "https://www.googleapis.com/auth/cloud-platform" ] }, + "delete": { + "description": "Deletes a single Evaluation.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/evaluations/{evaluationsId}", + "httpMethod": "DELETE", + "id": "workloadmanager.projects.locations.evaluations.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the resource", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/evaluations/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Gets details of a single Evaluation.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/evaluations/{evaluationsId}", @@ -296,6 +326,36 @@ "resources": { "executions": { "methods": { + "delete": { + "description": "Deletes a single Execution.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/evaluations/{evaluationsId}/executions/{executionsId}", + "httpMethod": "DELETE", + "id": "workloadmanager.projects.locations.evaluations.executions.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the resource", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/evaluations/[^/]+/executions/[^/]+$", + "required": true, + "type": "string" + }, + "requestId": { + "description": "Optional. An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed. The server will guarantee that for at least 60 minutes after the first request. For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments. The request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).", + "location": "query", + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, "get": { "description": "Gets details of a single Execution.", "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/evaluations/{evaluationsId}/executions/{executionsId}", @@ -705,6 +765,77 @@ ] } } + }, + "workloadProfiles": { + "methods": { + "get": { + "description": "Gets details of a single workload.", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workloadProfiles/{workloadProfilesId}", + "httpMethod": "GET", + "id": "workloadmanager.projects.locations.workloadProfiles.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Name of the resource", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+/workloadProfiles/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "WorkloadProfile" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + }, + "list": { + "deprecated": true, + "description": "List workloads", + "flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workloadProfiles", + "httpMethod": "GET", + "id": "workloadmanager.projects.locations.workloadProfiles.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Filtering results", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. Requested page size. Server may return fewer items than requested. If unspecified, server will pick an appropriate default.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A token identifying a page of results the server should return.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. Parent value for ListWorkloadRequest", + "location": "path", + "pattern": "^projects/[^/]+/locations/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+parent}/workloadProfiles", + "response": { + "$ref": "ListWorkloadProfilesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform" + ] + } + } } } } @@ -712,12 +843,212 @@ } }, "schemas": { + "APILayerServer": { + "description": "The API layer server", + "id": "APILayerServer", + "properties": { + "name": { + "description": "Output only. The api layer name", + "readOnly": true, + "type": "string" + }, + "osVersion": { + "description": "Output only. OS information", + "readOnly": true, + "type": "string" + }, + "resources": { + "description": "Output only. resources in the component", + "items": { + "$ref": "CloudResource" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "AvailabilityGroup": { + "description": "The availability groups for sqlserver", + "id": "AvailabilityGroup", + "properties": { + "databases": { + "description": "Output only. The databases", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "name": { + "description": "Output only. The availability group name", + "readOnly": true, + "type": "string" + }, + "primaryServer": { + "description": "Output only. The primary server", + "readOnly": true, + "type": "string" + }, + "secondaryServers": { + "description": "Output only. The secondary servers", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "BackendServer": { + "description": "The backend server", + "id": "BackendServer", + "properties": { + "backupFile": { + "description": "Output only. The backup file", + "readOnly": true, + "type": "string" + }, + "backupSchedule": { + "description": "Output only. The backup schedule", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. The backend name", + "readOnly": true, + "type": "string" + }, + "osVersion": { + "description": "Output only. OS information", + "readOnly": true, + "type": "string" + }, + "resources": { + "description": "Output only. resources in the component", + "items": { + "$ref": "CloudResource" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "BigQueryDestination": { + "description": "Message describing big query destination", + "id": "BigQueryDestination", + "properties": { + "createNewResultsTable": { + "description": "Optional. determine if results will be saved in a new table", + "type": "boolean" + }, + "destinationDataset": { + "description": "Optional. destination dataset to save evaluation results", + "type": "string" + } + }, + "type": "object" + }, "CancelOperationRequest": { "description": "The request message for Operations.CancelOperation.", "id": "CancelOperationRequest", "properties": {}, "type": "object" }, + "CloudResource": { + "description": "The resource on GCP", + "id": "CloudResource", + "properties": { + "kind": { + "description": "Output only. ComputeInstance, ComputeDisk, VPC, Bare Metal server, etc.", + "enum": [ + "RESOURCE_KIND_UNSPECIFIED", + "RESOURCE_KIND_INSTANCE", + "RESOURCE_KIND_DISK", + "RESOURCE_KIND_ADDRESS", + "RESOURCE_KIND_FILESTORE", + "RESOURCE_KIND_HEALTH_CHECK", + "RESOURCE_KIND_FORWARDING_RULE", + "RESOURCE_KIND_BACKEND_SERVICE", + "RESOURCE_KIND_SUBNETWORK", + "RESOURCE_KIND_NETWORK", + "RESOURCE_KIND_PUBLIC_ADDRESS", + "RESOURCE_KIND_INSTANCE_GROUP" + ], + "enumDescriptions": [ + "Unspecified resource kind.", + "This is a compute instance.", + "This is a compute disk.", + "This is a compute address.", + "This is a filestore instance.", + "This is a compute health check.", + "This is a compute forwarding rule.", + "This is a compute backend service.", + "This is a compute subnetwork.", + "This is a compute network.", + "This is a public accessible IP Address.", + "This is a compute instance group." + ], + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. resource name", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "Cluster": { + "description": "The cluster for sqlserver", + "id": "Cluster", + "properties": { + "nodes": { + "description": "Output only. The nodes", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "witnessServer": { + "description": "Output only. The witness server", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "Database": { + "description": "The database for sqlserver", + "id": "Database", + "properties": { + "backupFile": { + "description": "Output only. The backup file", + "readOnly": true, + "type": "string" + }, + "backupSchedule": { + "description": "Output only. The backup schedule", + "readOnly": true, + "type": "string" + }, + "hostVm": { + "description": "Output only. The host VM", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. The database name", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "Empty": { "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": "Empty", @@ -728,6 +1059,10 @@ "description": "LINT.IfChange Message describing Evaluation object", "id": "Evaluation", "properties": { + "bigQueryDestination": { + "$ref": "BigQueryDestination", + "description": "Optional. BigQuery destination" + }, "createTime": { "description": "Output only. [Output only] Create time stamp", "format": "google-datetime", @@ -893,6 +1228,31 @@ }, "type": "object" }, + "FrontEndServer": { + "description": "The front end server", + "id": "FrontEndServer", + "properties": { + "name": { + "description": "Output only. The frontend name", + "readOnly": true, + "type": "string" + }, + "osVersion": { + "description": "Output only. OS information", + "readOnly": true, + "type": "string" + }, + "resources": { + "description": "Output only. resources in the component", + "items": { + "$ref": "CloudResource" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, "GceInstanceFilter": { "description": "Message describing compute engine instance filter", "id": "GceInstanceFilter", @@ -936,6 +1296,81 @@ }, "type": "object" }, + "Instance": { + "description": "a vm instance", + "id": "Instance", + "properties": { + "name": { + "description": "Output only. name of the VM", + "readOnly": true, + "type": "string" + }, + "region": { + "description": "Output only. The location of the VM", + "readOnly": true, + "type": "string" + }, + "status": { + "description": "Output only. The state of the VM", + "enum": [ + "INSTANCESTATE_UNSPECIFIED", + "PROVISIONING", + "STAGING", + "RUNNING", + "STOPPING", + "STOPPED", + "TERMINATED", + "SUSPENDING", + "SUSPENDED", + "REPAIRING", + "DEPROVISIONING" + ], + "enumDescriptions": [ + "The Status of the VM is unspecified", + "Resources are being allocated for the instance.", + "All required resources have been allocated and the instance is being started.", + "The instance is running.", + "The instance is currently stopping (either being deleted or killed).", + "The instance has stopped due to various reasons (user request, VM preemption, project freezing, etc.).", + "The instance has failed in some way.", + "The instance is suspending.", + "The instance is suspended.", + "The instance is in repair.", + "The instance is in de-provisioning state." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, + "Layer": { + "description": "The database layer", + "id": "Layer", + "properties": { + "applicationType": { + "description": "the application layer", + "type": "string" + }, + "databaseType": { + "description": "Optional. the database layer", + "type": "string" + }, + "instances": { + "description": "Optional. instances in a layer", + "items": { + "$ref": "Instance" + }, + "type": "array" + }, + "sid": { + "description": "Output only. system identification of a layer", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "ListEvaluationsResponse": { "description": "Message for response to listing Evaluations", "id": "ListEvaluationsResponse", @@ -1076,6 +1511,50 @@ }, "type": "object" }, + "ListWorkloadProfilesResponse": { + "description": "List workloadResponse returns a response with the list of workload overview", + "id": "ListWorkloadProfilesResponse", + "properties": { + "nextPageToken": { + "description": "Output only. A token identifying a page of results the server should return", + "readOnly": true, + "type": "string" + }, + "unreachable": { + "description": "Locations that could not be reached.", + "items": { + "type": "string" + }, + "type": "array" + }, + "workloadOverviews": { + "description": "Output only. The list of Workload Overview", + "items": { + "$ref": "WorkloadProfileOverview" + }, + "readOnly": true, + "type": "array" + } + }, + "type": "object" + }, + "LoadBalancerServer": { + "description": "The load balancer for sqlserver", + "id": "LoadBalancerServer", + "properties": { + "ip": { + "description": "Output only. The IP address", + "readOnly": true, + "type": "string" + }, + "vm": { + "description": "Output only. The VM name", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "Location": { "description": "A resource that represents a Google Cloud location.", "id": "Location", @@ -1312,6 +1791,13 @@ "description": "the severity of the rule", "type": "string" }, + "tags": { + "description": "List of user-defined tags", + "items": { + "type": "string" + }, + "type": "array" + }, "uri": { "description": "the docuement url for the rule", "type": "string" @@ -1338,6 +1824,26 @@ }, "type": "object" }, + "SapComponent": { + "description": "The component of sap workload", + "id": "SapComponent", + "properties": { + "resources": { + "description": "Output only. resources in the component", + "items": { + "$ref": "CloudResource" + }, + "readOnly": true, + "type": "array" + }, + "sid": { + "description": "Output only. sid is the sap component identificator", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "SapDiscovery": { "description": "The schema of SAP system discovery data.", "id": "SapDiscovery", @@ -1354,6 +1860,10 @@ "$ref": "SapDiscoveryMetadata", "description": "Optional. The metadata for SAP system discovery data." }, + "projectNumber": { + "description": "Optional. The GCP project number that this SapSystem belongs to.", + "type": "string" + }, "systemId": { "description": "Output only. A combination of database SID, database instance URI and tenant DB name to make a unique identifier per-system.", "readOnly": true, @@ -1363,6 +1873,10 @@ "description": "Required. Unix timestamp this system has been updated last.", "format": "google-datetime", "type": "string" + }, + "workloadProperties": { + "$ref": "SapDiscoveryWorkloadProperties", + "description": "Optional. The properties of the workload." } }, "type": "object" @@ -1379,6 +1893,13 @@ "$ref": "SapDiscoveryComponentDatabaseProperties", "description": "Optional. The component is a SAP database." }, + "haHosts": { + "description": "Optional. A list of host URIs that are part of the HA configuration if present. An empty list indicates the component is not configured for HA.", + "items": { + "type": "string" + }, + "type": "array" + }, "hostProject": { "description": "Required. Pantheon Project in which the resources reside.", "type": "string" @@ -1393,6 +1914,20 @@ "sid": { "description": "Optional. The SAP identifier, used by the SAP software and helps differentiate systems for customers.", "type": "string" + }, + "topologyType": { + "description": "Optional. The detected topology of the component.", + "enum": [ + "TOPOLOGY_TYPE_UNSPECIFIED", + "TOPOLOGY_SCALE_UP", + "TOPOLOGY_SCALE_OUT" + ], + "enumDescriptions": [ + "Unspecified topology.", + "A scale-up single node system.", + "A scale-out multi-node system." + ], + "type": "string" } }, "type": "object" @@ -1401,6 +1936,10 @@ "description": "A set of properties describing an SAP Application layer.", "id": "SapDiscoveryComponentApplicationProperties", "properties": { + "abap": { + "description": "Optional. Indicates whether this is a Java or ABAP Netweaver instance. true means it is ABAP, false means it is Java.", + "type": "boolean" + }, "applicationType": { "description": "Required. Type of the application. Netweaver, etc.", "enum": [ @@ -1417,6 +1956,10 @@ "description": "Optional. Resource URI of the recognized ASCS host of the application.", "type": "string" }, + "kernelVersion": { + "description": "Optional. Kernel version for Netweaver running in the system.", + "type": "string" + }, "nfsUri": { "description": "Optional. Resource URI of the recognized shared NFS of the application. May be empty if the application server has only a single node.", "type": "string" @@ -1444,6 +1987,10 @@ ], "type": "string" }, + "databaseVersion": { + "description": "Optional. The version of the database software running in the system.", + "type": "string" + }, "primaryInstanceUri": { "description": "Required. URI of the recognized primary instance of the database.", "type": "string" @@ -1482,6 +2029,10 @@ "description": "Message describing a resource.", "id": "SapDiscoveryResource", "properties": { + "instanceProperties": { + "$ref": "SapDiscoveryResourceInstanceProperties", + "description": "Optional. A set of properties only applying to instance type resources." + }, "relatedResources": { "description": "Optional. A list of resource URIs related to this resource.", "items": { @@ -1549,16 +2100,101 @@ }, "type": "object" }, + "SapDiscoveryResourceInstanceProperties": { + "description": "A set of properties only present for an instance type resource", + "id": "SapDiscoveryResourceInstanceProperties", + "properties": { + "clusterInstances": { + "description": "Optional. A list of instance URIs that are part of a cluster with this one.", + "items": { + "type": "string" + }, + "type": "array" + }, + "virtualHostname": { + "description": "Optional. A virtual hostname of the instance if it has one.", + "type": "string" + } + }, + "type": "object" + }, + "SapDiscoveryWorkloadProperties": { + "description": "A set of properties describing an SAP workload.", + "id": "SapDiscoveryWorkloadProperties", + "properties": { + "productVersions": { + "description": "Optional. List of SAP Products and their versions running on the system.", + "items": { + "$ref": "SapDiscoveryWorkloadPropertiesProductVersion" + }, + "type": "array" + }, + "softwareComponentVersions": { + "description": "Optional. A list of SAP software components and their versions running on the system.", + "items": { + "$ref": "SapDiscoveryWorkloadPropertiesSoftwareComponentProperties" + }, + "type": "array" + } + }, + "type": "object" + }, + "SapDiscoveryWorkloadPropertiesProductVersion": { + "description": "A product name and version.", + "id": "SapDiscoveryWorkloadPropertiesProductVersion", + "properties": { + "name": { + "description": "Optional. Name of the product.", + "type": "string" + }, + "version": { + "description": "Optional. Version of the product.", + "type": "string" + } + }, + "type": "object" + }, + "SapDiscoveryWorkloadPropertiesSoftwareComponentProperties": { + "description": "A SAP software component name, version, and type.", + "id": "SapDiscoveryWorkloadPropertiesSoftwareComponentProperties", + "properties": { + "extVersion": { + "description": "Optional. The component's minor version.", + "type": "string" + }, + "name": { + "description": "Optional. Name of the component.", + "type": "string" + }, + "type": { + "description": "Optional. The component's type.", + "type": "string" + }, + "version": { + "description": "Optional. The component's major version.", + "type": "string" + } + }, + "type": "object" + }, "SapValidation": { "description": "A presentation of SAP workload insight. The schema of SAP workloads validation related data.", "id": "SapValidation", "properties": { + "projectId": { + "description": "Required. The project_id of the cloud project that the Insight data comes from.", + "type": "string" + }, "validationDetails": { "description": "Optional. A list of SAP validation metrics data.", "items": { "$ref": "SapValidationValidationDetail" }, "type": "array" + }, + "zone": { + "description": "Optional. The zone of the instance that the Insight data comes from.", + "type": "string" } }, "type": "object" @@ -1574,6 +2210,10 @@ "description": "Optional. The pairs of metrics data: field name & field value.", "type": "object" }, + "isPresent": { + "description": "Optional. Was there a SAP system detected for this validation type.", + "type": "boolean" + }, "sapValidationType": { "description": "Optional. The SAP system that the validation data is from.", "enum": [ @@ -1601,6 +2241,53 @@ }, "type": "object" }, + "SapWorkload": { + "description": "The body of sap workload", + "id": "SapWorkload", + "properties": { + "application": { + "$ref": "SapComponent", + "description": "Output only. the acsc componment", + "readOnly": true + }, + "database": { + "$ref": "SapComponent", + "description": "Output only. the database componment", + "readOnly": true + }, + "metadata": { + "additionalProperties": { + "type": "string" + }, + "description": "Output only. The metadata for SAP workload.", + "readOnly": true, + "type": "object" + } + }, + "type": "object" + }, + "SapWorkloadOverview": { + "description": "The overview of sap workload", + "id": "SapWorkloadOverview", + "properties": { + "appSid": { + "description": "Output only. The application SID", + "readOnly": true, + "type": "string" + }, + "dbSid": { + "description": "Output only. The database SID", + "readOnly": true, + "type": "string" + }, + "sapSystemId": { + "description": "Output only. The UUID for a SAP workload", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "ScannedResource": { "description": "Message of scanned resource", "id": "ScannedResource", @@ -1608,6 +2295,10 @@ "resource": { "description": "resource name", "type": "string" + }, + "type": { + "description": "resource type", + "type": "string" } }, "type": "object" @@ -1700,6 +2391,59 @@ }, "type": "object" }, + "SqlserverWorkload": { + "description": "The body of sqlserver workload", + "id": "SqlserverWorkload", + "properties": { + "ags": { + "description": "Output only. The availability groups for sqlserver", + "items": { + "$ref": "AvailabilityGroup" + }, + "readOnly": true, + "type": "array" + }, + "cluster": { + "$ref": "Cluster", + "description": "Output only. The cluster for sqlserver", + "readOnly": true + }, + "databases": { + "description": "Output only. The databases for sqlserver", + "items": { + "$ref": "Database" + }, + "readOnly": true, + "type": "array" + }, + "loadBalancerServer": { + "$ref": "LoadBalancerServer", + "description": "Output only. The load balancer for sqlserver", + "readOnly": true + } + }, + "type": "object" + }, + "SqlserverWorkloadOverview": { + "description": "The overview of sqlserver workload", + "id": "SqlserverWorkloadOverview", + "properties": { + "availabilityGroup": { + "description": "Output only. The availability groups", + "items": { + "type": "string" + }, + "readOnly": true, + "type": "array" + }, + "sqlserverSystemId": { + "description": "Output only. The UUID for a Sqlserver workload", + "readOnly": true, + "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", @@ -1727,6 +2471,45 @@ }, "type": "object" }, + "ThreeTierWorkload": { + "description": "The body of three tier workload", + "id": "ThreeTierWorkload", + "properties": { + "apiLayer": { + "$ref": "APILayerServer", + "description": "Output only. The API layer for three tier workload", + "readOnly": true + }, + "backend": { + "$ref": "BackendServer", + "description": "Output only. The backend for three tier workload", + "readOnly": true + }, + "endpoint": { + "description": "Output only. the workload endpoint", + "readOnly": true, + "type": "string" + }, + "frontend": { + "$ref": "FrontEndServer", + "description": "Output only. The frontend for three tier workload", + "readOnly": true + } + }, + "type": "object" + }, + "ThreeTierWorkloadOverview": { + "description": "The overview of three tier workload", + "id": "ThreeTierWorkloadOverview", + "properties": { + "threeTierSystemId": { + "description": "Output only. The UUID for a three tier workload", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "ViolationDetails": { "description": "Message describing the violdation in execution result", "id": "ViolationDetails", @@ -1749,6 +2532,111 @@ }, "type": "object" }, + "WorkloadProfile": { + "description": "workload resource", + "id": "WorkloadProfile", + "properties": { + "application": { + "$ref": "Layer", + "deprecated": true, + "description": "Optional. The application layer" + }, + "ascs": { + "$ref": "Layer", + "deprecated": true, + "description": "Optional. The ascs layer" + }, + "database": { + "$ref": "Layer", + "deprecated": true, + "description": "Optional. The database layer" + }, + "labels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. such as name, description, version. More example can be found in deployment", + "type": "object" + }, + "name": { + "description": "Identifier. name of resource names have the form 'projects/{project_id}/workloads/{workload_id}'", + "type": "string" + }, + "refreshedTime": { + "description": "Required. time when the workload data was refreshed", + "format": "google-datetime", + "type": "string" + }, + "sapWorkload": { + "$ref": "SapWorkload", + "description": "The sap workload content" + }, + "sqlserverWorkload": { + "$ref": "SqlserverWorkload", + "description": "The sqlserver workload content" + }, + "state": { + "deprecated": true, + "description": "Output only. [output only] the current state if a a workload", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "DEPLOYING", + "DESTROYING", + "MAINTENANCE" + ], + "enumDescriptions": [ + "unspecified", + "ACTIVE state", + "workload is in Deploying state", + "The workload is in Destroying state", + "The Workload is undermaintance" + ], + "readOnly": true, + "type": "string" + }, + "threeTierWorkload": { + "$ref": "ThreeTierWorkload", + "description": "The 3 tier web app workload content" + }, + "workloadType": { + "description": "Required. The type of the workload", + "enum": [ + "WORKLOAD_TYPE_UNSPECIFIED", + "S4_HANA", + "SQL_SERVER", + "THREE_TIER_WEB_APP" + ], + "enumDescriptions": [ + "unspecified workload type", + "running sap workload s4/hana", + "running sqlserver workload", + "running 3 tier web app workload" + ], + "type": "string" + } + }, + "type": "object" + }, + "WorkloadProfileOverview": { + "description": "a workload profile overview", + "id": "WorkloadProfileOverview", + "properties": { + "sapWorkloadOverview": { + "$ref": "SapWorkloadOverview", + "description": "The sap workload overview" + }, + "sqlserverWorkloadOverview": { + "$ref": "SqlserverWorkloadOverview", + "description": "The sqlserver workload overview" + }, + "threeTierWorkloadOverview": { + "$ref": "ThreeTierWorkloadOverview", + "description": "The three tier workload overview" + } + }, + "type": "object" + }, "WriteInsightRequest": { "description": "Request for sending the data insights.", "id": "WriteInsightRequest", diff --git a/discovery/googleapis/workspaceevents__v1.json b/discovery/googleapis/workspaceevents__v1.json new file mode 100644 index 000000000..602e12334 --- /dev/null +++ b/discovery/googleapis/workspaceevents__v1.json @@ -0,0 +1,639 @@ +{ + "auth": { + "oauth2": { + "scopes": { + "https://www.googleapis.com/auth/chat.bot": { + "description": "Private Service: https://www.googleapis.com/auth/chat.bot" + }, + "https://www.googleapis.com/auth/chat.memberships": { + "description": "View, add, and remove members from conversations in Google Chat" + }, + "https://www.googleapis.com/auth/chat.memberships.readonly": { + "description": "View members in Google Chat conversations." + }, + "https://www.googleapis.com/auth/chat.messages": { + "description": "View, compose, send, update, and delete messages, and add, view, and delete reactions to messages." + }, + "https://www.googleapis.com/auth/chat.messages.reactions": { + "description": "View, add, and delete reactions to messages in Google Chat" + }, + "https://www.googleapis.com/auth/chat.messages.reactions.readonly": { + "description": "View reactions to messages in Google Chat" + }, + "https://www.googleapis.com/auth/chat.messages.readonly": { + "description": "View messages and reactions in Google Chat" + }, + "https://www.googleapis.com/auth/chat.spaces": { + "description": "Create conversations and spaces and see or edit metadata (including history settings and access settings) in Google Chat" + }, + "https://www.googleapis.com/auth/chat.spaces.readonly": { + "description": "View chat and spaces in Google Chat" + } + } + } + }, + "basePath": "", + "baseUrl": "https://workspaceevents.googleapis.com/", + "batchPath": "batch", + "canonicalName": "Workspace Events", + "description": "The Google Workspace Events API lets you subscribe to events and manage change notifications across Google Workspace applications.", + "discoveryVersion": "v1", + "documentationLink": "https://developers.google.com/workspace/events", + "icons": { + "x16": "http://www.google.com/images/icons/product/search-16.gif", + "x32": "http://www.google.com/images/icons/product/search-32.gif" + }, + "id": "workspaceevents:v1", + "kind": "discovery#restDescription", + "name": "workspaceevents", + "ownerDomain": "google.com", + "ownerName": "Google", + "protocol": "rest", + "revision": "20240218", + "rootUrl": "https://workspaceevents.googleapis.com/", + "servicePath": "", + "title": "Google Workspace Events API", + "version": "v1", + "version_module": true, + "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" + } + }, + "resources": { + "operations": { + "methods": { + "get": { + "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service.", + "flatPath": "v1/operations/{operationsId}", + "httpMethod": "GET", + "id": "workspaceevents.operations.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "The name of the operation resource.", + "location": "path", + "pattern": "^operations/.*$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/chat.bot", + "https://www.googleapis.com/auth/chat.memberships", + "https://www.googleapis.com/auth/chat.memberships.readonly", + "https://www.googleapis.com/auth/chat.messages", + "https://www.googleapis.com/auth/chat.messages.reactions", + "https://www.googleapis.com/auth/chat.messages.reactions.readonly", + "https://www.googleapis.com/auth/chat.messages.readonly", + "https://www.googleapis.com/auth/chat.spaces", + "https://www.googleapis.com/auth/chat.spaces.readonly" + ] + } + } + }, + "subscriptions": { + "methods": { + "create": { + "description": "[Developer Preview](https://developers.google.com/workspace/preview): Creates a Google Workspace subscription. To learn how to use this method, see [Create a Google Workspace subscription](https://developers.google.com/workspace/events/guides/create-subscription).", + "flatPath": "v1/subscriptions", + "httpMethod": "POST", + "id": "workspaceevents.subscriptions.create", + "parameterOrder": [], + "parameters": { + "validateOnly": { + "description": "Optional. If set to `true`, validates and previews the request, but doesn't create the subscription.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/subscriptions", + "request": { + "$ref": "Subscription" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/chat.memberships", + "https://www.googleapis.com/auth/chat.memberships.readonly", + "https://www.googleapis.com/auth/chat.messages", + "https://www.googleapis.com/auth/chat.messages.reactions", + "https://www.googleapis.com/auth/chat.messages.reactions.readonly", + "https://www.googleapis.com/auth/chat.messages.readonly", + "https://www.googleapis.com/auth/chat.spaces", + "https://www.googleapis.com/auth/chat.spaces.readonly" + ] + }, + "delete": { + "description": "[Developer Preview](https://developers.google.com/workspace/preview): Deletes a Google Workspace subscription. To learn how to use this method, see [Delete a Google Workspace subscription](https://developers.google.com/workspace/events/guides/delete-subscription).", + "flatPath": "v1/subscriptions/{subscriptionsId}", + "httpMethod": "DELETE", + "id": "workspaceevents.subscriptions.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "allowMissing": { + "description": "Optional. If set to `true` and the subscription isn't found, the request succeeds but doesn't delete the subscription.", + "location": "query", + "type": "boolean" + }, + "etag": { + "description": "Optional. Etag of the subscription. If present, it must match with the server's etag. Otherwise, request fails with the status `ABORTED`.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. Resource name of the subscription to delete. Format: `subscriptions/{subscription}`", + "location": "path", + "pattern": "^subscriptions/[^/]+$", + "required": true, + "type": "string" + }, + "validateOnly": { + "description": "Optional. If set to `true`, validates and previews the request, but doesn't delete the subscription.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/chat.bot", + "https://www.googleapis.com/auth/chat.memberships", + "https://www.googleapis.com/auth/chat.memberships.readonly", + "https://www.googleapis.com/auth/chat.messages", + "https://www.googleapis.com/auth/chat.messages.reactions", + "https://www.googleapis.com/auth/chat.messages.reactions.readonly", + "https://www.googleapis.com/auth/chat.messages.readonly", + "https://www.googleapis.com/auth/chat.spaces", + "https://www.googleapis.com/auth/chat.spaces.readonly" + ] + }, + "get": { + "description": "[Developer Preview](https://developers.google.com/workspace/preview): Gets details about a Google Workspace subscription. To learn how to use this method, see [Get details about a Google Workspace subscription](https://developers.google.com/workspace/events/guides/get-subscription).", + "flatPath": "v1/subscriptions/{subscriptionsId}", + "httpMethod": "GET", + "id": "workspaceevents.subscriptions.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the subscription. Format: `subscriptions/{subscription}`", + "location": "path", + "pattern": "^subscriptions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}", + "response": { + "$ref": "Subscription" + }, + "scopes": [ + "https://www.googleapis.com/auth/chat.bot", + "https://www.googleapis.com/auth/chat.memberships", + "https://www.googleapis.com/auth/chat.memberships.readonly", + "https://www.googleapis.com/auth/chat.messages", + "https://www.googleapis.com/auth/chat.messages.reactions", + "https://www.googleapis.com/auth/chat.messages.reactions.readonly", + "https://www.googleapis.com/auth/chat.messages.readonly", + "https://www.googleapis.com/auth/chat.spaces", + "https://www.googleapis.com/auth/chat.spaces.readonly" + ] + }, + "list": { + "description": "[Developer Preview](https://developers.google.com/workspace/preview): Lists Google Workspace subscriptions. To learn how to use this method, see [List Google Workspace subscriptions](https://developers.google.com/workspace/events/guides/list-subscriptions).", + "flatPath": "v1/subscriptions", + "httpMethod": "GET", + "id": "workspaceevents.subscriptions.list", + "parameterOrder": [], + "parameters": { + "filter": { + "description": "Required. A query filter. You can filter subscriptions by event type (`event_types`) and target resource (`target_resource`). You must specify at least one event type in your query. To filter for multiple event types, use the `OR` operator. To filter by both event type and target resource, use the `AND` operator and specify the full resource name, such as `//chat.googleapis.com/spaces/{space}`. For example, the following queries are valid: ``` event_types:\"google.workspace.chat.membership.v1.updated\" OR event_types:\"google.workspace.chat.message.v1.created\" event_types:\"google.workspace.chat.message.v1.created\" AND target_resource=\"//chat.googleapis.com/spaces/{space}\" ( event_types:\"google.workspace.chat.membership.v1.updated\" OR event_types:\"google.workspace.chat.message.v1.created\" ) AND target_resource=\"//chat.googleapis.com/spaces/{space}\" ``` The server rejects invalid queries with an `INVALID_ARGUMENT` error.", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "Optional. The maximum number of subscriptions to return. The service might return fewer than this value. If unspecified or set to `0`, up to 50 subscriptions are returned. The maximum value is 100. If you specify a value more than 100, the system only returns 100 subscriptions.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token, received from a previous list subscriptions call. Provide this parameter to retrieve the subsequent page. When paginating, the filter value should match the call that provided the page token. Passing a different value might lead to unexpected results.", + "location": "query", + "type": "string" + } + }, + "path": "v1/subscriptions", + "response": { + "$ref": "ListSubscriptionsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/chat.bot", + "https://www.googleapis.com/auth/chat.memberships", + "https://www.googleapis.com/auth/chat.memberships.readonly", + "https://www.googleapis.com/auth/chat.messages", + "https://www.googleapis.com/auth/chat.messages.reactions", + "https://www.googleapis.com/auth/chat.messages.reactions.readonly", + "https://www.googleapis.com/auth/chat.messages.readonly", + "https://www.googleapis.com/auth/chat.spaces", + "https://www.googleapis.com/auth/chat.spaces.readonly" + ] + }, + "patch": { + "description": "[Developer Preview](https://developers.google.com/workspace/preview): Updates or renews a Google Workspace subscription. To learn how to use this method, see [Update or renew a Google Workspace subscription](https://developers.google.com/workspace/events/guides/update-subscription).", + "flatPath": "v1/subscriptions/{subscriptionsId}", + "httpMethod": "PATCH", + "id": "workspaceevents.subscriptions.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Optional. Immutable. Identifier. Resource name of the subscription. Format: `subscriptions/{subscription}`", + "location": "path", + "pattern": "^subscriptions/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Optional. Required. The field to update. You can update one of the following fields in a subscription: * `expire_time`: The timestamp when the subscription expires. * `ttl`: The time-to-live (TTL) or duration of the subscription.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + }, + "validateOnly": { + "description": "Optional. If set to `true`, validates and previews the request, but doesn't update the subscription.", + "location": "query", + "type": "boolean" + } + }, + "path": "v1/{+name}", + "request": { + "$ref": "Subscription" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/chat.memberships", + "https://www.googleapis.com/auth/chat.memberships.readonly", + "https://www.googleapis.com/auth/chat.messages", + "https://www.googleapis.com/auth/chat.messages.reactions", + "https://www.googleapis.com/auth/chat.messages.reactions.readonly", + "https://www.googleapis.com/auth/chat.messages.readonly", + "https://www.googleapis.com/auth/chat.spaces", + "https://www.googleapis.com/auth/chat.spaces.readonly" + ] + }, + "reactivate": { + "description": "[Developer Preview](https://developers.google.com/workspace/preview): Reactivates a suspended Google Workspace subscription. This method resets your subscription's `State` field to `ACTIVE`. Before you use this method, you must fix the error that suspended the subscription. To learn how to use this method, see [Reactivate a Google Workspace subscription](https://developers.google.com/workspace/events/guides/reactivate-subscription).", + "flatPath": "v1/subscriptions/{subscriptionsId}:reactivate", + "httpMethod": "POST", + "id": "workspaceevents.subscriptions.reactivate", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. Resource name of the subscription. Format: `subscriptions/{subscription}`", + "location": "path", + "pattern": "^subscriptions/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1/{+name}:reactivate", + "request": { + "$ref": "ReactivateSubscriptionRequest" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/chat.memberships", + "https://www.googleapis.com/auth/chat.memberships.readonly", + "https://www.googleapis.com/auth/chat.messages", + "https://www.googleapis.com/auth/chat.messages.reactions", + "https://www.googleapis.com/auth/chat.messages.reactions.readonly", + "https://www.googleapis.com/auth/chat.messages.readonly", + "https://www.googleapis.com/auth/chat.spaces", + "https://www.googleapis.com/auth/chat.spaces.readonly" + ] + } + } + } + }, + "schemas": { + "ListSubscriptionsResponse": { + "description": "The response message for SubscriptionsService.ListSubscriptions.", + "id": "ListSubscriptionsResponse", + "properties": { + "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" + }, + "subscriptions": { + "description": "List of subscriptions.", + "items": { + "$ref": "Subscription" + }, + "type": "array" + } + }, + "type": "object" + }, + "NotificationEndpoint": { + "description": "The endpoint where the subscription delivers events.", + "id": "NotificationEndpoint", + "properties": { + "pubsubTopic": { + "description": "Immutable. The Cloud Pub/Sub topic that receives events for the subscription. Format: `projects/{project}/topics/{topic}` You must create the topic in the same Google Cloud project where you create this subscription. When the topic receives events, the events are encoded as Cloud Pub/Sub messages. For details, see the [Google Cloud Pub/Sub Protocol Binding for CloudEvents](https://github.com/googleapis/google-cloudevents/blob/main/docs/spec/pubsub.md).", + "type": "string" + } + }, + "type": "object" + }, + "Operation": { + "description": "This resource represents a long-running operation that is the result of a network API call.", + "id": "Operation", + "properties": { + "done": { + "description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", + "type": "boolean" + }, + "error": { + "$ref": "Status", + "description": "The error result of the operation in case of failure or cancellation." + }, + "metadata": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", + "type": "object" + }, + "name": { + "description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", + "type": "string" + }, + "response": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", + "type": "object" + } + }, + "type": "object" + }, + "PayloadOptions": { + "description": "Options about what data to include in the event payload. Only supported for Google Chat events.", + "id": "PayloadOptions", + "properties": { + "fieldMask": { + "description": "Optional. If `include_resource` is set to `true`, the list of fields to include in the event payload. Separate fields with a comma. For example, to include a Google Chat message's sender and create time, enter `message.sender,message.createTime`. If omitted, the payload includes all fields for the resource. If you specify a field that doesn't exist for the resource, the system ignores the field.", + "format": "google-fieldmask", + "type": "string" + }, + "includeResource": { + "description": "Optional. Whether the event payload includes data about the resource that changed. For example, for an event where a Google Chat message was created, whether the payload contains data about the [`Message`](https://developers.google.com/chat/api/reference/rest/v1/spaces.messages) resource. If false, the event payload only includes the name of the changed resource.", + "type": "boolean" + } + }, + "type": "object" + }, + "ReactivateSubscriptionRequest": { + "description": "The request message for SubscriptionsService.ReactivateSubscription.", + "id": "ReactivateSubscriptionRequest", + "properties": {}, + "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", + "properties": { + "code": { + "description": "The status code, which should be an enum value of google.rpc.Code.", + "format": "int32", + "type": "integer" + }, + "details": { + "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", + "items": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "type": "object" + }, + "type": "array" + }, + "message": { + "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", + "type": "string" + } + }, + "type": "object" + }, + "Subscription": { + "description": "[Developer Preview](https://developers.google.com/workspace/preview). A subscription to receive events about a Google Workspace resource. To learn more about subscriptions, see the [Google Workspace Events API overview](https://developers.google.com/workspace/events).", + "id": "Subscription", + "properties": { + "authority": { + "description": "Output only. The user who authorized the creation of the subscription. Format: `users/{user}` For Google Workspace users, the `{user}` value is the [`user.id`](https://developers.google.com/admin-sdk/directory/reference/rest/v1/users#User.FIELDS.ids) field from the Directory API.", + "readOnly": true, + "type": "string" + }, + "createTime": { + "description": "Output only. The time when the subscription is created.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "etag": { + "description": "Optional. This checksum is computed by the server based on the value of other fields, and might be sent on update requests to ensure the client has an up-to-date value before proceeding.", + "type": "string" + }, + "eventTypes": { + "description": "Required. Immutable. Unordered list. Input for creating a subscription. Otherwise, output only. One or more types of events to receive about the target resource. Formatted according to the CloudEvents specification. The supported event types depend on the target resource of your subscription. For details, see [Supported Google Workspace events](https://developers.google.com/workspace/events/guides#supported-events). By default, you also receive events about the [lifecycle of your subscription](https://developers.google.com/workspace/events/guides/events-lifecycle). You don't need to specify lifecycle events for this field. If you specify an event type that doesn't exist for the target resource, the request returns an HTTP `400 Bad Request` status code.", + "items": { + "type": "string" + }, + "type": "array" + }, + "expireTime": { + "description": "Non-empty default. The timestamp in UTC when the subscription expires. Always displayed on output, regardless of what was used on input.", + "format": "google-datetime", + "type": "string" + }, + "name": { + "description": "Optional. Immutable. Identifier. Resource name of the subscription. Format: `subscriptions/{subscription}`", + "type": "string" + }, + "notificationEndpoint": { + "$ref": "NotificationEndpoint", + "description": "Required. Immutable. The endpoint where the subscription delivers events, such as a Pub/Sub topic." + }, + "payloadOptions": { + "$ref": "PayloadOptions", + "description": "Optional. Options about what data to include in the event payload. Only supported for Google Chat events." + }, + "reconciling": { + "description": "Output only. If `true`, the subscription is in the process of being updated.", + "readOnly": true, + "type": "boolean" + }, + "state": { + "description": "Output only. The state of the subscription. Determines whether the subscription can receive events and deliver them to the notification endpoint.", + "enum": [ + "STATE_UNSPECIFIED", + "ACTIVE", + "SUSPENDED", + "DELETED" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "The subscription is active and can receive and deliver events to its notification endpoint.", + "The subscription is unable to receive events due to an error. To identify the error, see the `suspension_reason` field.", + "The subscription is deleted." + ], + "readOnly": true, + "type": "string" + }, + "suspensionReason": { + "description": "Output only. The error that suspended the subscription. To reactivate the subscription, resolve the error and call the `ReactivateSubscription` method.", + "enum": [ + "ERROR_TYPE_UNSPECIFIED", + "USER_SCOPE_REVOKED", + "RESOURCE_DELETED", + "USER_AUTHORIZATION_FAILURE", + "ENDPOINT_PERMISSION_DENIED", + "ENDPOINT_NOT_FOUND", + "ENDPOINT_RESOURCE_EXHAUSTED", + "OTHER" + ], + "enumDescriptions": [ + "Default value. This value is unused.", + "The authorizing user has revoked the grant of one or more OAuth scopes. To learn more about authorization for Google Workspace, see [Configure the OAuth consent screen](https://developers.google.com/workspace/guides/configure-oauth-consent#choose-scopes).", + "The target resource for the subscription no longer exists.", + "The user that authorized the creation of the subscription no longer has access to the subscription's target resource.", + "The Google Workspace application doesn't have access to deliver events to your subscription's notification endpoint.", + "The subscription's notification endpoint doesn't exist, or the endpoint can't be found in the Google Cloud project where you created the subscription.", + "The subscription's notification endpoint failed to receive events due to insufficient quota or reaching rate limiting.", + "An unidentified error has occurred." + ], + "readOnly": true, + "type": "string" + }, + "targetResource": { + "description": "Required. Immutable. The Google Workspace resource that's monitored for events, formatted as the [full resource name](https://google.aip.dev/122#full-resource-names). To learn about target resources and the events that they support, see [Supported Google Workspace events](https://developers.google.com/workspace/events#supported-events). A user can only authorize your app to create one subscription for a given target resource. If your app tries to create another subscription with the same user credentials, the request returns an `ALREADY_EXISTS` error.", + "type": "string" + }, + "ttl": { + "description": "Input only. The time-to-live (TTL) or duration for the subscription. If unspecified or set to `0`, uses the maximum possible duration.", + "format": "google-duration", + "type": "string" + }, + "uid": { + "description": "Output only. System-assigned unique identifier for the subscription.", + "readOnly": true, + "type": "string" + }, + "updateTime": { + "description": "Output only. The last time that the subscription is updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + } + } +} diff --git a/discovery/googleapis/workstations__v1.json b/discovery/googleapis/workstations__v1.json index 4c7fcd63e..c5c28d6b3 100644 --- a/discovery/googleapis/workstations__v1.json +++ b/discovery/googleapis/workstations__v1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231101", + "revision": "20240131", "rootUrl": "https://workstations.googleapis.com/", "servicePath": "", "title": "Cloud Workstations API", @@ -1257,14 +1257,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, @@ -1332,6 +1332,17 @@ }, "type": "object" }, + "DomainConfig": { + "description": "Configuration options for a custom domain.", + "id": "DomainConfig", + "properties": { + "domain": { + "description": "Immutable. Domain used by Workstations for HTTP ingress.", + "type": "string" + } + }, + "type": "object" + }, "Expr": { "description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() < 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.", "id": "Expr", @@ -2042,6 +2053,11 @@ "readOnly": true, "type": "string" }, + "kmsKey": { + "description": "Output only. The name of the Google Cloud KMS encryption key used to encrypt this workstation. The KMS key can only be configured in the WorkstationConfig. The expected format is `projects/*/locations/*/keyRings/*/cryptoKeys/*`.", + "readOnly": true, + "type": "string" + }, "labels": { "additionalProperties": { "type": "string" @@ -2142,6 +2158,10 @@ "description": "Optional. Human-readable name for this workstation cluster.", "type": "string" }, + "domainConfig": { + "$ref": "DomainConfig", + "description": "Optional. Configuration options for a custom domain." + }, "etag": { "description": "Optional. Checksum computed by the server. May be sent on update and delete requests to make sure that the client has an up-to-date value before proceeding.", "type": "string" @@ -2228,10 +2248,18 @@ "readOnly": true, "type": "string" }, + "disableTcpConnections": { + "description": "Optional. Disables support for plain TCP connections in the workstation. By default the service supports TCP connections via a websocket relay. Setting this option to true disables that relay, which prevents the usage of services that require plain tcp connections, such as ssh. When enabled, all communication must occur over https or wss.", + "type": "boolean" + }, "displayName": { "description": "Optional. Human-readable name for this workstation configuration.", "type": "string" }, + "enableAuditAgent": { + "description": "Optional. Whether to enable Linux `auditd` logging on the workstation. When enabled, a service account must also be specified that has `logging.buckets.write` permission on the project. Operating system audit logging is distinct from [Cloud Audit Logs](https://cloud.google.com/workstations/docs/audit-logging).", + "type": "boolean" + }, "encryptionKey": { "$ref": "CustomerEncryptionKey", "description": "Immutable. Encrypts resources of this workstation configuration using a customer-managed encryption key (CMEK). If specified, the boot disk of the Compute Engine instance and the persistent disk are encrypted using this encryption key. If this field is not set, the disks are encrypted using a generated key. Customer-managed encryption keys do not protect disk metadata. If the customer-managed encryption key is rotated, when the workstation instance is stopped, the system attempts to recreate the persistent disk with the new version of the key. Be sure to keep older versions of the key until the persistent disk is recreated. Otherwise, data on the persistent disk might be lost. If the encryption key is revoked, the workstation session automatically stops within 7 hours. Immutable after the workstation configuration is created." diff --git a/discovery/googleapis/youtubeAnalytics__v2.json b/discovery/googleapis/youtubeAnalytics__v2.json index 6e34fc985..3a950ff82 100644 --- a/discovery/googleapis/youtubeAnalytics__v2.json +++ b/discovery/googleapis/youtubeAnalytics__v2.json @@ -37,7 +37,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240227", "rootUrl": "https://youtubeanalytics.googleapis.com/", "servicePath": "", "title": "YouTube Analytics API", diff --git a/discovery/googleapis/youtube__v3.json b/discovery/googleapis/youtube__v3.json index efdeeceb7..53a77c5c0 100644 --- a/discovery/googleapis/youtube__v3.json +++ b/discovery/googleapis/youtube__v3.json @@ -43,7 +43,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240226", "rootUrl": "https://youtube.googleapis.com/", "servicePath": "", "title": "YouTube Data API v3", @@ -720,6 +720,11 @@ "location": "query", "type": "string" }, + "forHandle": { + "description": "Return the channel associated with a YouTube handle.", + "location": "query", + "type": "string" + }, "forUsername": { "description": "Return the channel associated with a YouTube username.", "location": "query", @@ -2201,6 +2206,24 @@ "flatPath": "youtube/v3/playlistImages", "httpMethod": "POST", "id": "youtube.playlistImages.insert", + "mediaUpload": { + "accept": [ + "image/jpeg", + "image/png", + "application/octet-stream" + ], + "maxSize": "2097152", + "protocols": { + "resumable": { + "multipart": true, + "path": "/resumable/upload/youtube/v3/playlistImages" + }, + "simple": { + "multipart": true, + "path": "/upload/youtube/v3/playlistImages" + } + } + }, "parameterOrder": [], "parameters": { "onBehalfOfContentOwner": { @@ -2231,7 +2254,8 @@ "https://www.googleapis.com/auth/youtube", "https://www.googleapis.com/auth/youtube.force-ssl", "https://www.googleapis.com/auth/youtubepartner" - ] + ], + "supportsMediaUpload": true }, "list": { "description": "Retrieves a list of resources, possibly filtered.", @@ -5469,6 +5493,10 @@ "description": "Information specific to a store on a merchandising platform linked to a YouTube channel.", "id": "ChannelToStoreLinkDetails", "properties": { + "billingDetails": { + "$ref": "ChannelToStoreLinkDetailsBillingDetails", + "description": "Information specific to billing (read-only)." + }, "merchantId": { "description": "Google Merchant Center id of the store.", "format": "uint64", @@ -5485,6 +5513,29 @@ }, "type": "object" }, + "ChannelToStoreLinkDetailsBillingDetails": { + "description": "Information specific to billing.", + "id": "ChannelToStoreLinkDetailsBillingDetails", + "properties": { + "billingStatus": { + "description": "The current billing profile status.", + "enum": [ + "billingStatusUnspecified", + "billingStatusPending", + "billingStatusActive", + "billingStatusInactive" + ], + "enumDescriptions": [ + "", + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, "ChannelTopicDetails": { "description": "Freebase topic information related to the channel.", "id": "ChannelTopicDetails", @@ -8734,11 +8785,11 @@ "type": "object" }, "LiveChatMessageSnippet": { - "description": "Next ID: 33", + "description": "Next ID: 34", "id": "LiveChatMessageSnippet", "properties": { "authorChannelId": { - "description": "The ID of the user that authored this message, this field is not always filled. textMessageEvent - the user that wrote the message fanFundingEvent - the user that funded the broadcast newSponsorEvent - the user that just became a sponsor memberMilestoneChatEvent - the member that sent the message membershipGiftingEvent - the user that made the purchase giftMembershipReceivedEvent - the user that received the gift membership messageDeletedEvent - the moderator that took the action messageRetractedEvent - the author that retracted their message userBannedEvent - the moderator that took the action superChatEvent - the user that made the purchase superStickerEvent - the user that made the purchase", + "description": "The ID of the user that authored this message, this field is not always filled. textMessageEvent - the user that wrote the message fanFundingEvent - the user that funded the broadcast newSponsorEvent - the user that just became a sponsor memberMilestoneChatEvent - the member that sent the message membershipGiftingEvent - the user that made the purchase giftMembershipReceivedEvent - the user that received the gift membership messageDeletedEvent - the moderator that took the action messageRetractedEvent - the author that retracted their message userBannedEvent - the moderator that took the action superChatEvent - the user that made the purchase superStickerEvent - the user that made the purchase pollEvent - the user that created the poll", "type": "string" }, "displayMessage": { @@ -8779,6 +8830,10 @@ "$ref": "LiveChatNewSponsorDetails", "description": "Details about the New Member Announcement event, this is only set if the type is 'newSponsorEvent'. Please note that \"member\" is the new term for \"sponsor\"." }, + "pollDetails": { + "$ref": "LiveChatPollDetails", + "description": "Details about the poll event, this is only set if the type is 'pollEvent'." + }, "publishedAt": { "description": "The date and time when the message was orignally published.", "format": "date-time", @@ -8814,7 +8869,8 @@ "messageRetractedEvent", "userBannedEvent", "superChatEvent", - "superStickerEvent" + "superStickerEvent", + "pollEvent" ], "enumDescriptions": [ "", @@ -8832,6 +8888,7 @@ "", "", "", + "", "" ], "type": "string" @@ -8942,6 +8999,57 @@ }, "type": "object" }, + "LiveChatPollDetails": { + "id": "LiveChatPollDetails", + "properties": { + "metadata": { + "$ref": "LiveChatPollDetailsPollMetadata" + }, + "status": { + "enum": [ + "unknown", + "active", + "closed" + ], + "enumDescriptions": [ + "", + "", + "" + ], + "type": "string" + } + }, + "type": "object" + }, + "LiveChatPollDetailsPollMetadata": { + "id": "LiveChatPollDetailsPollMetadata", + "properties": { + "options": { + "description": "The options will be returned in the order that is displayed in 1P", + "items": { + "$ref": "LiveChatPollDetailsPollMetadataPollOption" + }, + "type": "array" + }, + "questionText": { + "type": "string" + } + }, + "type": "object" + }, + "LiveChatPollDetailsPollMetadataPollOption": { + "id": "LiveChatPollDetailsPollMetadataPollOption", + "properties": { + "optionText": { + "type": "string" + }, + "tally": { + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "LiveChatSuperChatDetails": { "id": "LiveChatSuperChatDetails", "properties": { @@ -9715,7 +9823,7 @@ "type": "array" }, "kind": { - "default": "youtube#PlaylistImageListResponse", + "default": "youtube#playlistImageListResponse", "description": "Identifies what kind of resource this is. Value: the fixed string \"youtube#playlistImageListResponse\".", "type": "string" }, diff --git a/discovery/googleapis/youtubereporting__v1.json b/discovery/googleapis/youtubereporting__v1.json index d10cafb95..6174da6cc 100644 --- a/discovery/googleapis/youtubereporting__v1.json +++ b/discovery/googleapis/youtubereporting__v1.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240227", "rootUrl": "https://youtubereporting.googleapis.com/", "servicePath": "", "title": "YouTube Reporting API", diff --git a/discovery/googleapis_beta/adexchangebuyer2__v2beta1.json b/discovery/googleapis_beta/adexchangebuyer2__v2beta1.json index 8d9efabd8..c22b47f69 100644 --- a/discovery/googleapis_beta/adexchangebuyer2__v2beta1.json +++ b/discovery/googleapis_beta/adexchangebuyer2__v2beta1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231128", + "revision": "20240228", "rootUrl": "https://adexchangebuyer.googleapis.com/", "servicePath": "", "title": "Ad Exchange Buyer API II", @@ -2571,6 +2571,553 @@ } } } + }, + "buyers": { + "resources": { + "filterSets": { + "methods": { + "create": { + "description": "Creates the specified filter set for the account with the given account ID.", + "flatPath": "v2beta1/buyers/{buyersId}/filterSets", + "httpMethod": "POST", + "id": "adexchangebuyer2.buyers.filterSets.create", + "parameterOrder": [ + "ownerName" + ], + "parameters": { + "isTransient": { + "description": "Whether the filter set is transient, or should be persisted indefinitely. By default, filter sets are not transient. If transient, it will be available for at least 1 hour after creation.", + "location": "query", + "type": "boolean" + }, + "ownerName": { + "description": "Name of the owner (bidder or account) of the filter set to be created. For example: - For a bidder-level filter set for bidder 123: `bidders/123` - For an account-level filter set for the buyer account representing bidder 123: `bidders/123/accounts/123` - For an account-level filter set for the child seat buyer account 456 whose bidder is 123: `bidders/123/accounts/456`", + "location": "path", + "pattern": "^buyers/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2beta1/{+ownerName}/filterSets", + "request": { + "$ref": "FilterSet" + }, + "response": { + "$ref": "FilterSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "delete": { + "description": "Deletes the requested filter set from the account with the given account ID.", + "flatPath": "v2beta1/buyers/{buyersId}/filterSets/{filterSetsId}", + "httpMethod": "DELETE", + "id": "adexchangebuyer2.buyers.filterSets.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Full name of the resource to delete. For example: - For a bidder-level filter set for bidder 123: `bidders/123/filterSets/abc` - For an account-level filter set for the buyer account representing bidder 123: `bidders/123/accounts/123/filterSets/abc` - For an account-level filter set for the child seat buyer account 456 whose bidder is 123: `bidders/123/accounts/456/filterSets/abc`", + "location": "path", + "pattern": "^buyers/[^/]+/filterSets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2beta1/{+name}", + "response": { + "$ref": "Empty" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "get": { + "description": "Retrieves the requested filter set for the account with the given account ID.", + "flatPath": "v2beta1/buyers/{buyersId}/filterSets/{filterSetsId}", + "httpMethod": "GET", + "id": "adexchangebuyer2.buyers.filterSets.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Full name of the resource being requested. For example: - For a bidder-level filter set for bidder 123: `bidders/123/filterSets/abc` - For an account-level filter set for the buyer account representing bidder 123: `bidders/123/accounts/123/filterSets/abc` - For an account-level filter set for the child seat buyer account 456 whose bidder is 123: `bidders/123/accounts/456/filterSets/abc`", + "location": "path", + "pattern": "^buyers/[^/]+/filterSets/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v2beta1/{+name}", + "response": { + "$ref": "FilterSet" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + }, + "list": { + "description": "Lists all filter sets for the account with the given account ID.", + "flatPath": "v2beta1/buyers/{buyersId}/filterSets", + "httpMethod": "GET", + "id": "adexchangebuyer2.buyers.filterSets.list", + "parameterOrder": [ + "ownerName" + ], + "parameters": { + "ownerName": { + "description": "Name of the owner (bidder or account) of the filter sets to be listed. For example: - For a bidder-level filter set for bidder 123: `bidders/123` - For an account-level filter set for the buyer account representing bidder 123: `bidders/123/accounts/123` - For an account-level filter set for the child seat buyer account 456 whose bidder is 123: `bidders/123/accounts/456`", + "location": "path", + "pattern": "^buyers/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "Requested page size. The server may return fewer results than requested. If unspecified, the server will pick an appropriate default.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A token identifying a page of results the server should return. Typically, this is the value of ListFilterSetsResponse.nextPageToken returned from the previous call to the accounts.filterSets.list method.", + "location": "query", + "type": "string" + } + }, + "path": "v2beta1/{+ownerName}/filterSets", + "response": { + "$ref": "ListFilterSetsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + }, + "resources": { + "bidMetrics": { + "methods": { + "list": { + "description": "Lists all metrics that are measured in terms of number of bids.", + "flatPath": "v2beta1/buyers/{buyersId}/filterSets/{filterSetsId}/bidMetrics", + "httpMethod": "GET", + "id": "adexchangebuyer2.buyers.filterSets.bidMetrics.list", + "parameterOrder": [ + "filterSetName" + ], + "parameters": { + "filterSetName": { + "description": "Name of the filter set that should be applied to the requested metrics. For example: - For a bidder-level filter set for bidder 123: `bidders/123/filterSets/abc` - For an account-level filter set for the buyer account representing bidder 123: `bidders/123/accounts/123/filterSets/abc` - For an account-level filter set for the child seat buyer account 456 whose bidder is 123: `bidders/123/accounts/456/filterSets/abc`", + "location": "path", + "pattern": "^buyers/[^/]+/filterSets/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "Requested page size. The server may return fewer results than requested. If unspecified, the server will pick an appropriate default.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A token identifying a page of results the server should return. Typically, this is the value of ListBidMetricsResponse.nextPageToken returned from the previous call to the bidMetrics.list method.", + "location": "query", + "type": "string" + } + }, + "path": "v2beta1/{+filterSetName}/bidMetrics", + "response": { + "$ref": "ListBidMetricsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + }, + "bidResponseErrors": { + "methods": { + "list": { + "description": "List all errors that occurred in bid responses, with the number of bid responses affected for each reason.", + "flatPath": "v2beta1/buyers/{buyersId}/filterSets/{filterSetsId}/bidResponseErrors", + "httpMethod": "GET", + "id": "adexchangebuyer2.buyers.filterSets.bidResponseErrors.list", + "parameterOrder": [ + "filterSetName" + ], + "parameters": { + "filterSetName": { + "description": "Name of the filter set that should be applied to the requested metrics. For example: - For a bidder-level filter set for bidder 123: `bidders/123/filterSets/abc` - For an account-level filter set for the buyer account representing bidder 123: `bidders/123/accounts/123/filterSets/abc` - For an account-level filter set for the child seat buyer account 456 whose bidder is 123: `bidders/123/accounts/456/filterSets/abc`", + "location": "path", + "pattern": "^buyers/[^/]+/filterSets/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "Requested page size. The server may return fewer results than requested. If unspecified, the server will pick an appropriate default.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A token identifying a page of results the server should return. Typically, this is the value of ListBidResponseErrorsResponse.nextPageToken returned from the previous call to the bidResponseErrors.list method.", + "location": "query", + "type": "string" + } + }, + "path": "v2beta1/{+filterSetName}/bidResponseErrors", + "response": { + "$ref": "ListBidResponseErrorsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + }, + "bidResponsesWithoutBids": { + "methods": { + "list": { + "description": "List all reasons for which bid responses were considered to have no applicable bids, with the number of bid responses affected for each reason.", + "flatPath": "v2beta1/buyers/{buyersId}/filterSets/{filterSetsId}/bidResponsesWithoutBids", + "httpMethod": "GET", + "id": "adexchangebuyer2.buyers.filterSets.bidResponsesWithoutBids.list", + "parameterOrder": [ + "filterSetName" + ], + "parameters": { + "filterSetName": { + "description": "Name of the filter set that should be applied to the requested metrics. For example: - For a bidder-level filter set for bidder 123: `bidders/123/filterSets/abc` - For an account-level filter set for the buyer account representing bidder 123: `bidders/123/accounts/123/filterSets/abc` - For an account-level filter set for the child seat buyer account 456 whose bidder is 123: `bidders/123/accounts/456/filterSets/abc`", + "location": "path", + "pattern": "^buyers/[^/]+/filterSets/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "Requested page size. The server may return fewer results than requested. If unspecified, the server will pick an appropriate default.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A token identifying a page of results the server should return. Typically, this is the value of ListBidResponsesWithoutBidsResponse.nextPageToken returned from the previous call to the bidResponsesWithoutBids.list method.", + "location": "query", + "type": "string" + } + }, + "path": "v2beta1/{+filterSetName}/bidResponsesWithoutBids", + "response": { + "$ref": "ListBidResponsesWithoutBidsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + }, + "filteredBidRequests": { + "methods": { + "list": { + "description": "List all reasons that caused a bid request not to be sent for an impression, with the number of bid requests not sent for each reason.", + "flatPath": "v2beta1/buyers/{buyersId}/filterSets/{filterSetsId}/filteredBidRequests", + "httpMethod": "GET", + "id": "adexchangebuyer2.buyers.filterSets.filteredBidRequests.list", + "parameterOrder": [ + "filterSetName" + ], + "parameters": { + "filterSetName": { + "description": "Name of the filter set that should be applied to the requested metrics. For example: - For a bidder-level filter set for bidder 123: `bidders/123/filterSets/abc` - For an account-level filter set for the buyer account representing bidder 123: `bidders/123/accounts/123/filterSets/abc` - For an account-level filter set for the child seat buyer account 456 whose bidder is 123: `bidders/123/accounts/456/filterSets/abc`", + "location": "path", + "pattern": "^buyers/[^/]+/filterSets/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "Requested page size. The server may return fewer results than requested. If unspecified, the server will pick an appropriate default.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A token identifying a page of results the server should return. Typically, this is the value of ListFilteredBidRequestsResponse.nextPageToken returned from the previous call to the filteredBidRequests.list method.", + "location": "query", + "type": "string" + } + }, + "path": "v2beta1/{+filterSetName}/filteredBidRequests", + "response": { + "$ref": "ListFilteredBidRequestsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + }, + "filteredBids": { + "methods": { + "list": { + "description": "List all reasons for which bids were filtered, with the number of bids filtered for each reason.", + "flatPath": "v2beta1/buyers/{buyersId}/filterSets/{filterSetsId}/filteredBids", + "httpMethod": "GET", + "id": "adexchangebuyer2.buyers.filterSets.filteredBids.list", + "parameterOrder": [ + "filterSetName" + ], + "parameters": { + "filterSetName": { + "description": "Name of the filter set that should be applied to the requested metrics. For example: - For a bidder-level filter set for bidder 123: `bidders/123/filterSets/abc` - For an account-level filter set for the buyer account representing bidder 123: `bidders/123/accounts/123/filterSets/abc` - For an account-level filter set for the child seat buyer account 456 whose bidder is 123: `bidders/123/accounts/456/filterSets/abc`", + "location": "path", + "pattern": "^buyers/[^/]+/filterSets/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "Requested page size. The server may return fewer results than requested. If unspecified, the server will pick an appropriate default.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A token identifying a page of results the server should return. Typically, this is the value of ListFilteredBidsResponse.nextPageToken returned from the previous call to the filteredBids.list method.", + "location": "query", + "type": "string" + } + }, + "path": "v2beta1/{+filterSetName}/filteredBids", + "response": { + "$ref": "ListFilteredBidsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + }, + "resources": { + "creatives": { + "methods": { + "list": { + "description": "List all creatives associated with a specific reason for which bids were filtered, with the number of bids filtered for each creative.", + "flatPath": "v2beta1/buyers/{buyersId}/filterSets/{filterSetsId}/filteredBids/{creativeStatusId}/creatives", + "httpMethod": "GET", + "id": "adexchangebuyer2.buyers.filterSets.filteredBids.creatives.list", + "parameterOrder": [ + "filterSetName", + "creativeStatusId" + ], + "parameters": { + "creativeStatusId": { + "description": "The ID of the creative status for which to retrieve a breakdown by creative. See [creative-status-codes](https://developers.google.com/authorized-buyers/rtb/downloads/creative-status-codes).", + "format": "int32", + "location": "path", + "required": true, + "type": "integer" + }, + "filterSetName": { + "description": "Name of the filter set that should be applied to the requested metrics. For example: - For a bidder-level filter set for bidder 123: `bidders/123/filterSets/abc` - For an account-level filter set for the buyer account representing bidder 123: `bidders/123/accounts/123/filterSets/abc` - For an account-level filter set for the child seat buyer account 456 whose bidder is 123: `bidders/123/accounts/456/filterSets/abc`", + "location": "path", + "pattern": "^buyers/[^/]+/filterSets/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "Requested page size. The server may return fewer results than requested. If unspecified, the server will pick an appropriate default.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A token identifying a page of results the server should return. Typically, this is the value of ListCreativeStatusBreakdownByCreativeResponse.nextPageToken returned from the previous call to the filteredBids.creatives.list method.", + "location": "query", + "type": "string" + } + }, + "path": "v2beta1/{+filterSetName}/filteredBids/{creativeStatusId}/creatives", + "response": { + "$ref": "ListCreativeStatusBreakdownByCreativeResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + }, + "details": { + "methods": { + "list": { + "description": "List all details associated with a specific reason for which bids were filtered, with the number of bids filtered for each detail.", + "flatPath": "v2beta1/buyers/{buyersId}/filterSets/{filterSetsId}/filteredBids/{creativeStatusId}/details", + "httpMethod": "GET", + "id": "adexchangebuyer2.buyers.filterSets.filteredBids.details.list", + "parameterOrder": [ + "filterSetName", + "creativeStatusId" + ], + "parameters": { + "creativeStatusId": { + "description": "The ID of the creative status for which to retrieve a breakdown by detail. See [creative-status-codes](https://developers.google.com/authorized-buyers/rtb/downloads/creative-status-codes). Details are only available for statuses 10, 14, 15, 17, 18, 19, 86, and 87.", + "format": "int32", + "location": "path", + "required": true, + "type": "integer" + }, + "filterSetName": { + "description": "Name of the filter set that should be applied to the requested metrics. For example: - For a bidder-level filter set for bidder 123: `bidders/123/filterSets/abc` - For an account-level filter set for the buyer account representing bidder 123: `bidders/123/accounts/123/filterSets/abc` - For an account-level filter set for the child seat buyer account 456 whose bidder is 123: `bidders/123/accounts/456/filterSets/abc`", + "location": "path", + "pattern": "^buyers/[^/]+/filterSets/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "Requested page size. The server may return fewer results than requested. If unspecified, the server will pick an appropriate default.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A token identifying a page of results the server should return. Typically, this is the value of ListCreativeStatusBreakdownByDetailResponse.nextPageToken returned from the previous call to the filteredBids.details.list method.", + "location": "query", + "type": "string" + } + }, + "path": "v2beta1/{+filterSetName}/filteredBids/{creativeStatusId}/details", + "response": { + "$ref": "ListCreativeStatusBreakdownByDetailResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + } + } + }, + "impressionMetrics": { + "methods": { + "list": { + "description": "Lists all metrics that are measured in terms of number of impressions.", + "flatPath": "v2beta1/buyers/{buyersId}/filterSets/{filterSetsId}/impressionMetrics", + "httpMethod": "GET", + "id": "adexchangebuyer2.buyers.filterSets.impressionMetrics.list", + "parameterOrder": [ + "filterSetName" + ], + "parameters": { + "filterSetName": { + "description": "Name of the filter set that should be applied to the requested metrics. For example: - For a bidder-level filter set for bidder 123: `bidders/123/filterSets/abc` - For an account-level filter set for the buyer account representing bidder 123: `bidders/123/accounts/123/filterSets/abc` - For an account-level filter set for the child seat buyer account 456 whose bidder is 123: `bidders/123/accounts/456/filterSets/abc`", + "location": "path", + "pattern": "^buyers/[^/]+/filterSets/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "Requested page size. The server may return fewer results than requested. If unspecified, the server will pick an appropriate default.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A token identifying a page of results the server should return. Typically, this is the value of ListImpressionMetricsResponse.nextPageToken returned from the previous call to the impressionMetrics.list method.", + "location": "query", + "type": "string" + } + }, + "path": "v2beta1/{+filterSetName}/impressionMetrics", + "response": { + "$ref": "ListImpressionMetricsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + }, + "losingBids": { + "methods": { + "list": { + "description": "List all reasons for which bids lost in the auction, with the number of bids that lost for each reason.", + "flatPath": "v2beta1/buyers/{buyersId}/filterSets/{filterSetsId}/losingBids", + "httpMethod": "GET", + "id": "adexchangebuyer2.buyers.filterSets.losingBids.list", + "parameterOrder": [ + "filterSetName" + ], + "parameters": { + "filterSetName": { + "description": "Name of the filter set that should be applied to the requested metrics. For example: - For a bidder-level filter set for bidder 123: `bidders/123/filterSets/abc` - For an account-level filter set for the buyer account representing bidder 123: `bidders/123/accounts/123/filterSets/abc` - For an account-level filter set for the child seat buyer account 456 whose bidder is 123: `bidders/123/accounts/456/filterSets/abc`", + "location": "path", + "pattern": "^buyers/[^/]+/filterSets/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "Requested page size. The server may return fewer results than requested. If unspecified, the server will pick an appropriate default.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A token identifying a page of results the server should return. Typically, this is the value of ListLosingBidsResponse.nextPageToken returned from the previous call to the losingBids.list method.", + "location": "query", + "type": "string" + } + }, + "path": "v2beta1/{+filterSetName}/losingBids", + "response": { + "$ref": "ListLosingBidsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + }, + "nonBillableWinningBids": { + "methods": { + "list": { + "description": "List all reasons for which winning bids were not billable, with the number of bids not billed for each reason.", + "flatPath": "v2beta1/buyers/{buyersId}/filterSets/{filterSetsId}/nonBillableWinningBids", + "httpMethod": "GET", + "id": "adexchangebuyer2.buyers.filterSets.nonBillableWinningBids.list", + "parameterOrder": [ + "filterSetName" + ], + "parameters": { + "filterSetName": { + "description": "Name of the filter set that should be applied to the requested metrics. For example: - For a bidder-level filter set for bidder 123: `bidders/123/filterSets/abc` - For an account-level filter set for the buyer account representing bidder 123: `bidders/123/accounts/123/filterSets/abc` - For an account-level filter set for the child seat buyer account 456 whose bidder is 123: `bidders/123/accounts/456/filterSets/abc`", + "location": "path", + "pattern": "^buyers/[^/]+/filterSets/[^/]+$", + "required": true, + "type": "string" + }, + "pageSize": { + "description": "Requested page size. The server may return fewer results than requested. If unspecified, the server will pick an appropriate default.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "A token identifying a page of results the server should return. Typically, this is the value of ListNonBillableWinningBidsResponse.nextPageToken returned from the previous call to the nonBillableWinningBids.list method.", + "location": "query", + "type": "string" + } + }, + "path": "v2beta1/{+filterSetName}/nonBillableWinningBids", + "response": { + "$ref": "ListNonBillableWinningBidsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/adexchange.buyer" + ] + } + } + } + } + } + } } }, "schemas": { diff --git a/discovery/googleapis_beta/alertcenter__v1beta1.json b/discovery/googleapis_beta/alertcenter__v1beta1.json index 231230dca..d0f7c5c38 100644 --- a/discovery/googleapis_beta/alertcenter__v1beta1.json +++ b/discovery/googleapis_beta/alertcenter__v1beta1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240226", "rootUrl": "https://alertcenter.googleapis.com/", "servicePath": "", "title": "Google Workspace Alert Center API", @@ -1159,6 +1159,41 @@ }, "type": "object" }, + "DeviceManagementRule": { + "description": "Alerts from Device Management Rules configured by Admin.", + "id": "DeviceManagementRule", + "properties": { + "deviceId": { + "description": "Required. The device ID.", + "type": "string" + }, + "deviceModel": { + "description": "The model of the device.", + "type": "string" + }, + "deviceType": { + "description": "The type of the device.", + "type": "string" + }, + "email": { + "description": "The email of the user this alert was created for.", + "type": "string" + }, + "iosVendorId": { + "description": "Required for iOS, empty for others.", + "type": "string" + }, + "resourceId": { + "description": "The device resource ID.", + "type": "string" + }, + "serialNumber": { + "description": "The serial number of the device.", + "type": "string" + } + }, + "type": "object" + }, "DlpRuleViolation": { "description": "Alerts that get triggered on violations of Data Loss Prevention (DLP) rules.", "id": "DlpRuleViolation", diff --git a/discovery/googleapis_beta/analyticsadmin__v1beta.json b/discovery/googleapis_beta/analyticsadmin__v1beta.json index 899855b53..e885aa900 100644 --- a/discovery/googleapis_beta/analyticsadmin__v1beta.json +++ b/discovery/googleapis_beta/analyticsadmin__v1beta.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240226", "rootUrl": "https://analyticsadmin.googleapis.com/", "servicePath": "", "title": "Google Analytics Admin API", @@ -309,7 +309,7 @@ ] }, "runAccessReport": { - "description": "Returns a customized report of data access records. The report provides records of each time a user reads Google Analytics reporting data. Access records are retained for up to 2 years. Data Access Reports can be requested for a property. The property must be in Google Analytics 360. This method is only available to Administrators. These data access records include GA4 UI Reporting, GA4 UI Explorations, GA4 Data API, and other products like Firebase & Admob that can retrieve data from Google Analytics through a linkage. These records don't include property configuration changes like adding a stream or changing a property's time zone. For configuration change history, see [searchChangeHistoryEvents](https://developers.google.com/analytics/devguides/config/admin/v1/rest/v1alpha/accounts/searchChangeHistoryEvents).", + "description": "Returns a customized report of data access records. The report provides records of each time a user reads Google Analytics reporting data. Access records are retained for up to 2 years. Data Access Reports can be requested for a property. Reports may be requested for any property, but dimensions that aren't related to quota can only be requested on Google Analytics 360 properties. This method is only available to Administrators. These data access records include GA4 UI Reporting, GA4 UI Explorations, GA4 Data API, and other products like Firebase & Admob that can retrieve data from Google Analytics through a linkage. These records don't include property configuration changes like adding a stream or changing a property's time zone. For configuration change history, see [searchChangeHistoryEvents](https://developers.google.com/analytics/devguides/config/admin/v1/rest/v1alpha/accounts/searchChangeHistoryEvents).", "flatPath": "v1beta/accounts/{accountsId}:runAccessReport", "httpMethod": "POST", "id": "analyticsadmin.accounts.runAccessReport", @@ -347,7 +347,7 @@ ], "parameters": { "account": { - "description": "Required. The account resource for which to return change history resources.", + "description": "Required. The account resource for which to return change history resources. Format: accounts/{account} Example: \"accounts/100\"", "location": "path", "pattern": "^accounts/[^/]+$", "required": true, @@ -565,7 +565,7 @@ ] }, "runAccessReport": { - "description": "Returns a customized report of data access records. The report provides records of each time a user reads Google Analytics reporting data. Access records are retained for up to 2 years. Data Access Reports can be requested for a property. The property must be in Google Analytics 360. This method is only available to Administrators. These data access records include GA4 UI Reporting, GA4 UI Explorations, GA4 Data API, and other products like Firebase & Admob that can retrieve data from Google Analytics through a linkage. These records don't include property configuration changes like adding a stream or changing a property's time zone. For configuration change history, see [searchChangeHistoryEvents](https://developers.google.com/analytics/devguides/config/admin/v1/rest/v1alpha/accounts/searchChangeHistoryEvents).", + "description": "Returns a customized report of data access records. The report provides records of each time a user reads Google Analytics reporting data. Access records are retained for up to 2 years. Data Access Reports can be requested for a property. Reports may be requested for any property, but dimensions that aren't related to quota can only be requested on Google Analytics 360 properties. This method is only available to Administrators. These data access records include GA4 UI Reporting, GA4 UI Explorations, GA4 Data API, and other products like Firebase & Admob that can retrieve data from Google Analytics through a linkage. These records don't include property configuration changes like adding a stream or changing a property's time zone. For configuration change history, see [searchChangeHistoryEvents](https://developers.google.com/analytics/devguides/config/admin/v1/rest/v1alpha/accounts/searchChangeHistoryEvents).", "flatPath": "v1beta/properties/{propertiesId}:runAccessReport", "httpMethod": "POST", "id": "analyticsadmin.properties.runAccessReport", @@ -2269,7 +2269,7 @@ "id": "GoogleAnalyticsAdminV1betaConversionEventDefaultConversionValue", "properties": { "currencyCode": { - "description": "When a conversion event for this event_name has no set currency, this currency will be applied as the default. Must be in ISO 4217 currency code format. See https://en.wikipedia.org/wiki/ISO_4217 for more.", + "description": "When a conversion event for this event_name has no set currency, this currency will be applied as the default. Must be in ISO 4217 currency code format. See https://en.wikipedia.org/wiki/ISO_4217 for more information.", "type": "string" }, "value": { @@ -3232,7 +3232,7 @@ "type": "string" }, "property": { - "description": "Optional. Resource name for a child property. If set, only return changes made to this property or its child resources.", + "description": "Optional. Resource name for a child property. If set, only return changes made to this property or its child resources. Format: properties/{propertyId} Example: \"properties/100\"", "type": "string" }, "resourceType": { diff --git a/discovery/googleapis_beta/analyticsdata__v1beta.json b/discovery/googleapis_beta/analyticsdata__v1beta.json index 5810a17bf..532f838fe 100644 --- a/discovery/googleapis_beta/analyticsdata__v1beta.json +++ b/discovery/googleapis_beta/analyticsdata__v1beta.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240227", "rootUrl": "https://analyticsdata.googleapis.com/", "servicePath": "", "title": "Google Analytics Data API", @@ -314,6 +314,133 @@ "https://www.googleapis.com/auth/analytics.readonly" ] } + }, + "resources": { + "audienceExports": { + "methods": { + "create": { + "description": "Creates an audience export for later retrieval. This method quickly returns the audience export's resource name and initiates a long running asynchronous request to form an audience export. To export the users in an audience export, first create the audience export through this method and then send the audience resource name to the `QueryAudienceExport` method. See [Creating an Audience Export](https://developers.google.com/analytics/devguides/reporting/data/v1/audience-list-basics) for an introduction to Audience Exports with examples. An audience export is a snapshot of the users currently in the audience at the time of audience export creation. Creating audience exports for one audience on different days will return different results as users enter and exit the audience. Audiences in Google Analytics 4 allow you to segment your users in the ways that are important to your business. To learn more, see https://support.google.com/analytics/answer/9267572. Audience exports contain the users in each audience. Audience Export APIs have some methods at alpha and other methods at beta stability. The intention is to advance methods to beta stability after some feedback and adoption. To give your feedback on this API, complete the [Google Analytics Audience Export API Feedback](https://forms.gle/EeA5u5LW6PEggtCEA) form.", + "flatPath": "v1beta/properties/{propertiesId}/audienceExports", + "httpMethod": "POST", + "id": "analyticsdata.properties.audienceExports.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent resource where this audience export will be created. Format: `properties/{property}`", + "location": "path", + "pattern": "^properties/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/audienceExports", + "request": { + "$ref": "AudienceExport" + }, + "response": { + "$ref": "Operation" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "get": { + "description": "Gets configuration metadata about a specific audience export. This method can be used to understand an audience export after it has been created. See [Creating an Audience Export](https://developers.google.com/analytics/devguides/reporting/data/v1/audience-list-basics) for an introduction to Audience Exports with examples. Audience Export APIs have some methods at alpha and other methods at beta stability. The intention is to advance methods to beta stability after some feedback and adoption. To give your feedback on this API, complete the [Google Analytics Audience Export API Feedback](https://forms.gle/EeA5u5LW6PEggtCEA) form.", + "flatPath": "v1beta/properties/{propertiesId}/audienceExports/{audienceExportsId}", + "httpMethod": "GET", + "id": "analyticsdata.properties.audienceExports.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The audience export resource name. Format: `properties/{property}/audienceExports/{audience_export}`", + "location": "path", + "pattern": "^properties/[^/]+/audienceExports/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}", + "response": { + "$ref": "AudienceExport" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "list": { + "description": "Lists all audience exports for a property. This method can be used for you to find and reuse existing audience exports rather than creating unnecessary new audience exports. The same audience can have multiple audience exports that represent the export of users that were in an audience on different days. See [Creating an Audience Export](https://developers.google.com/analytics/devguides/reporting/data/v1/audience-list-basics) for an introduction to Audience Exports with examples. Audience Export APIs have some methods at alpha and other methods at beta stability. The intention is to advance methods to beta stability after some feedback and adoption. To give your feedback on this API, complete the [Google Analytics Audience Export API Feedback](https://forms.gle/EeA5u5LW6PEggtCEA) form.", + "flatPath": "v1beta/properties/{propertiesId}/audienceExports", + "httpMethod": "GET", + "id": "analyticsdata.properties.audienceExports.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "pageSize": { + "description": "Optional. The maximum number of audience exports to return. The service may return fewer than this value. If unspecified, at most 200 audience exports will be returned. The maximum value is 1000 (higher values will be coerced to the maximum).", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Optional. A page token, received from a previous `ListAudienceExports` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `ListAudienceExports` must match the call that provided the page token.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. All audience exports for this property will be listed in the response. Format: `properties/{property}`", + "location": "path", + "pattern": "^properties/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/audienceExports", + "response": { + "$ref": "ListAudienceExportsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.readonly" + ] + }, + "query": { + "description": "Retrieves an audience export of users. After creating an audience, the users are not immediately available for exporting. First, a request to `CreateAudienceExport` is necessary to create an audience export of users, and then second, this method is used to retrieve the users in the audience export. See [Creating an Audience Export](https://developers.google.com/analytics/devguides/reporting/data/v1/audience-list-basics) for an introduction to Audience Exports with examples. Audiences in Google Analytics 4 allow you to segment your users in the ways that are important to your business. To learn more, see https://support.google.com/analytics/answer/9267572. Audience Export APIs have some methods at alpha and other methods at beta stability. The intention is to advance methods to beta stability after some feedback and adoption. To give your feedback on this API, complete the [Google Analytics Audience Export API Feedback](https://forms.gle/EeA5u5LW6PEggtCEA) form.", + "flatPath": "v1beta/properties/{propertiesId}/audienceExports/{audienceExportsId}:query", + "httpMethod": "POST", + "id": "analyticsdata.properties.audienceExports.query", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The name of the audience export to retrieve users from. Format: `properties/{property}/audienceExports/{audience_export}`", + "location": "path", + "pattern": "^properties/[^/]+/audienceExports/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}:query", + "request": { + "$ref": "QueryAudienceExportRequest" + }, + "response": { + "$ref": "QueryAudienceExportResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/analytics", + "https://www.googleapis.com/auth/analytics.readonly" + ] + } + } + } } } }, @@ -346,6 +473,80 @@ }, "type": "object" }, + "AudienceExport": { + "description": "An audience export is a list of users in an audience at the time of the list's creation. One audience may have multiple audience exports created for different days.", + "id": "AudienceExport", + "properties": { + "audience": { + "description": "Required. The audience resource name. This resource name identifies the audience being listed and is shared between the Analytics Data & Admin APIs. Format: `properties/{property}/audiences/{audience}`", + "type": "string" + }, + "audienceDisplayName": { + "description": "Output only. The descriptive display name for this audience. For example, \"Purchasers\".", + "readOnly": true, + "type": "string" + }, + "beginCreatingTime": { + "description": "Output only. The time when CreateAudienceExport was called and the AudienceExport began the `CREATING` state.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + }, + "creationQuotaTokensCharged": { + "description": "Output only. The total quota tokens charged during creation of the AudienceExport. Because this token count is based on activity from the `CREATING` state, this tokens charged will be fixed once an AudienceExport enters the `ACTIVE` or `FAILED` states.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "dimensions": { + "description": "Required. The dimensions requested and displayed in the query response.", + "items": { + "$ref": "V1betaAudienceDimension" + }, + "type": "array" + }, + "errorMessage": { + "description": "Output only. Error message is populated when an audience export fails during creation. A common reason for such a failure is quota exhaustion.", + "readOnly": true, + "type": "string" + }, + "name": { + "description": "Output only. Identifier. The audience export resource name assigned during creation. This resource name identifies this `AudienceExport`. Format: `properties/{property}/audienceExports/{audience_export}`", + "readOnly": true, + "type": "string" + }, + "percentageCompleted": { + "description": "Output only. The percentage completed for this audience export ranging between 0 to 100.", + "format": "double", + "readOnly": true, + "type": "number" + }, + "rowCount": { + "description": "Output only. The total number of rows in the AudienceExport result.", + "format": "int32", + "readOnly": true, + "type": "integer" + }, + "state": { + "description": "Output only. The current state for this AudienceExport.", + "enum": [ + "STATE_UNSPECIFIED", + "CREATING", + "ACTIVE", + "FAILED" + ], + "enumDescriptions": [ + "Unspecified state will never be used.", + "The AudienceExport is currently creating and will be available in the future. Creating occurs immediately after the CreateAudienceExport call.", + "The AudienceExport is fully created and ready for querying. An AudienceExport is updated to active asynchronously from a request; this occurs some time (for example 15 minutes) after the initial create call.", + "The AudienceExport failed to be created. It is possible that re-requesting this audience export will succeed." + ], + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "AudienceListMetadata": { "description": "This metadata is currently blank.", "id": "AudienceListMetadata", @@ -711,7 +912,7 @@ "type": "string" }, "customDefinition": { - "description": "True if the dimension is a custom dimension for this property.", + "description": "True if the dimension is custom to this property. This includes user, event, & item scoped custom dimensions; to learn more about custom dimensions, see https://support.google.com/analytics/answer/14240153. This also include custom channel groups; to learn more about custom channel groups, see https://support.google.com/analytics/answer/13051316.", "type": "boolean" }, "deprecatedApiNames": { @@ -852,6 +1053,24 @@ }, "type": "object" }, + "ListAudienceExportsResponse": { + "description": "A list of all audience exports for a property.", + "id": "ListAudienceExportsResponse", + "properties": { + "audienceExports": { + "description": "Each audience export for a property.", + "items": { + "$ref": "AudienceExport" + }, + "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" + }, "Metadata": { "description": "The dimensions, metrics and comparisons currently accepted in reporting methods.", "id": "Metadata", @@ -1146,6 +1365,41 @@ }, "type": "object" }, + "Operation": { + "description": "This resource represents a long-running operation that is the result of a network API call.", + "id": "Operation", + "properties": { + "done": { + "description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.", + "type": "boolean" + }, + "error": { + "$ref": "Status", + "description": "The error result of the operation in case of failure or cancellation." + }, + "metadata": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.", + "type": "object" + }, + "name": { + "description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.", + "type": "string" + }, + "response": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.", + "type": "object" + } + }, + "type": "object" + }, "OrderBy": { "description": "Order bys define how rows will be sorted in the response. For example, ordering rows by descending event count is one ordering, and ordering rows by the event name string is a different ordering.", "id": "OrderBy", @@ -1318,6 +1572,46 @@ }, "type": "object" }, + "QueryAudienceExportRequest": { + "description": "A request to list users in an audience export.", + "id": "QueryAudienceExportRequest", + "properties": { + "limit": { + "description": "Optional. The number of rows to return. If unspecified, 10,000 rows are returned. The API returns a maximum of 250,000 rows per request, no matter how many you ask for. `limit` must be positive. The API can also return fewer rows than the requested `limit`, if there aren't as many dimension values as the `limit`. To learn more about this pagination parameter, see [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination).", + "format": "int64", + "type": "string" + }, + "offset": { + "description": "Optional. The row count of the start row. The first row is counted as row 0. When paging, the first request does not specify offset; or equivalently, sets offset to 0; the first request returns the first `limit` of rows. The second request sets offset to the `limit` of the first request; the second request returns the second `limit` of rows. To learn more about this pagination parameter, see [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination).", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, + "QueryAudienceExportResponse": { + "description": "A list of users in an audience export.", + "id": "QueryAudienceExportResponse", + "properties": { + "audienceExport": { + "$ref": "AudienceExport", + "description": "Configuration data about AudienceExport being queried. Returned to help interpret the audience rows in this response. For example, the dimensions in this AudienceExport correspond to the columns in the AudienceRows." + }, + "audienceRows": { + "description": "Rows for each user in an audience export. The number of rows in this response will be less than or equal to request's page size.", + "items": { + "$ref": "V1betaAudienceRow" + }, + "type": "array" + }, + "rowCount": { + "description": "The total number of rows in the AudienceExport result. `rowCount` is independent of the number of rows returned in the response, the `limit` request parameter, and the `offset` request parameter. For example if a query returns 175 rows and includes `limit` of 50 in the API request, the response will contain `rowCount` of 175 but only 50 rows. To learn more about this pagination parameter, see [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination).", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "QuotaStatus": { "description": "Current state for a particular quota group.", "id": "QuotaStatus", @@ -1837,6 +2131,33 @@ }, "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", + "properties": { + "code": { + "description": "The status code, which should be an enum value of google.rpc.Code.", + "format": "int32", + "type": "integer" + }, + "details": { + "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.", + "items": { + "additionalProperties": { + "description": "Properties of the object. Contains field @type with type URL.", + "type": "any" + }, + "type": "object" + }, + "type": "array" + }, + "message": { + "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.", + "type": "string" + } + }, + "type": "object" + }, "StringFilter": { "description": "The filter for string", "id": "StringFilter", @@ -1873,6 +2194,42 @@ } }, "type": "object" + }, + "V1betaAudienceDimension": { + "description": "An audience dimension is a user attribute. Specific user attributed are requested and then later returned in the `QueryAudienceExportResponse`.", + "id": "V1betaAudienceDimension", + "properties": { + "dimensionName": { + "description": "Optional. The API name of the dimension. See the [API Dimensions](https://developers.google.com/analytics/devguides/reporting/data/v1/audience-list-api-schema#dimensions) for the list of dimension names.", + "type": "string" + } + }, + "type": "object" + }, + "V1betaAudienceDimensionValue": { + "description": "The value of a dimension.", + "id": "V1betaAudienceDimensionValue", + "properties": { + "value": { + "description": "Value as a string if the dimension type is a string.", + "type": "string" + } + }, + "type": "object" + }, + "V1betaAudienceRow": { + "description": "Dimension value attributes for the audience user row.", + "id": "V1betaAudienceRow", + "properties": { + "dimensionValues": { + "description": "Each dimension value attribute for an audience user. One dimension value will be added for each dimension column requested.", + "items": { + "$ref": "V1betaAudienceDimensionValue" + }, + "type": "array" + } + }, + "type": "object" } } } diff --git a/discovery/googleapis_beta/area120tables__v1alpha1.json b/discovery/googleapis_beta/area120tables__v1alpha1.json index 734742828..224f4ce3c 100644 --- a/discovery/googleapis_beta/area120tables__v1alpha1.json +++ b/discovery/googleapis_beta/area120tables__v1alpha1.json @@ -40,7 +40,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240227", "rootUrl": "https://area120tables.googleapis.com/", "servicePath": "", "title": "Area120 Tables API", diff --git a/discovery/googleapis_beta/bigqueryconnection__v1beta1.json b/discovery/googleapis_beta/bigqueryconnection__v1beta1.json index 58d73d0ef..82a84fc82 100644 --- a/discovery/googleapis_beta/bigqueryconnection__v1beta1.json +++ b/discovery/googleapis_beta/bigqueryconnection__v1beta1.json @@ -17,7 +17,7 @@ "canonicalName": "BigQuery Connection Service", "description": "Allows users to manage BigQuery connections to external data sources.", "discoveryVersion": "v1", - "documentationLink": "https://cloud.google.com/bigquery/", + "documentationLink": "https://cloud.google.com/bigquery/docs/connections-api-intro", "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", "x32": "http://www.google.com/images/icons/product/search-32.gif" @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231021", + "revision": "20240214", "rootUrl": "https://bigqueryconnection.googleapis.com/", "servicePath": "", "title": "BigQuery Connection API", @@ -457,14 +457,14 @@ "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the principals in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." }, "members": { - "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding.", + "description": "Specifies the principals requesting access for a Google Cloud resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. Does not include identities that come from external identity providers (IdPs) through identity federation. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@example.com` . * `serviceAccount:{emailid}`: An email address that represents a Google service account. For example, `my-other-app@appspot.gserviceaccount.com`. * `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An identifier for a [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. * `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workforce identity pool. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: All workforce identities in a group. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All workforce identities with a specific attribute value. * `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/*`: All identities in a workforce identity pool. * `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: A single identity in a workload identity pool. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: A workload identity pool group. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: All identities in a workload identity pool with a certain attribute. * `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/*`: All identities in a workload identity pool. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `alice@example.com?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `admins@example.com?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: Deleted single identity in a workforce identity pool. For example, `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`.", "items": { "type": "string" }, "type": "array" }, "role": { - "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`.", + "description": "Role that is assigned to the list of `members`, or principals. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an overview of the IAM roles and permissions, see the [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For a list of the available pre-defined roles, see [here](https://cloud.google.com/iam/docs/understanding-roles).", "type": "string" } }, diff --git a/discovery/googleapis_beta/clouderrorreporting__v1beta1.json b/discovery/googleapis_beta/clouderrorreporting__v1beta1.json index f9eff699b..9c3ca4a2c 100644 --- a/discovery/googleapis_beta/clouderrorreporting__v1beta1.json +++ b/discovery/googleapis_beta/clouderrorreporting__v1beta1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231106", + "revision": "20240221", "rootUrl": "https://clouderrorreporting.googleapis.com/", "servicePath": "", "title": "Error Reporting API", diff --git a/discovery/googleapis_beta/cloudsupport__v2beta.json b/discovery/googleapis_beta/cloudsupport__v2beta.json index 0eb45630e..281b032af 100644 --- a/discovery/googleapis_beta/cloudsupport__v2beta.json +++ b/discovery/googleapis_beta/cloudsupport__v2beta.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231115", + "revision": "20240227", "rootUrl": "https://cloudsupport.googleapis.com/", "servicePath": "", "title": "Google Cloud Support API", @@ -129,6 +129,26 @@ "location": "query", "type": "string" }, + "product.productLine": { + "description": "The Product Line of the Product.", + "enum": [ + "PRODUCT_LINE_UNSPECIFIED", + "GOOGLE_CLOUD", + "GOOGLE_MAPS" + ], + "enumDescriptions": [ + "Unknown product type.", + "Google Cloud", + "Google Maps" + ], + "location": "query", + "type": "string" + }, + "product.productSubline": { + "description": "The Product Subline of the Product, such as \"Maps Billing\".", + "location": "query", + "type": "string" + }, "query": { "description": "An expression used to filter case classifications. If it's an empty string, then no filtering happens. Otherwise, case classifications will be returned that match the filter.", "location": "query", @@ -287,6 +307,21 @@ "pattern": "^[^/]+/[^/]+$", "required": true, "type": "string" + }, + "productLine": { + "description": "The product line to request cases for.", + "enum": [ + "PRODUCT_LINE_UNSPECIFIED", + "GOOGLE_CLOUD", + "GOOGLE_MAPS" + ], + "enumDescriptions": [ + "Unknown product type.", + "Google Cloud", + "Google Maps" + ], + "location": "query", + "type": "string" } }, "path": "v2beta/{+parent}/cases", @@ -554,7 +589,7 @@ }, "schemas": { "Actor": { - "description": "An object containing information about the effective user and authenticated principal responsible for an action.", + "description": "An Actor represents an entity that performed an action. For example, an actor could be a user who posted a comment on a support case, a user who uploaded an attachment, or a service account that created a support case.", "id": "Actor", "properties": { "displayName": { @@ -562,19 +597,25 @@ "type": "string" }, "email": { - "description": "The email address of the actor. If not provided, it is inferred from credentials supplied during case creation. If the authenticated principal does not have an email address, one must be provided. When a name is provided, an email must also be provided. This will be obfuscated if the user is a Google Support agent.", + "deprecated": true, + "description": "The email address of the actor. If not provided, it is inferred from the credentials supplied during case creation. When a name is provided, an email must also be provided. If the user is a Google Support agent, this is obfuscated. This field is deprecated. Use **username** field instead.", "type": "string" }, "googleSupport": { "description": "Output only. Whether the actor is a Google support actor.", "readOnly": true, "type": "boolean" + }, + "username": { + "description": "Output only. The username of the actor. It may look like an email or other format provided by the identity provider. If not provided, it is inferred from the credentials supplied. When a name is provided, a username must also be provided. If the user is a Google Support agent, this will not be set.", + "readOnly": true, + "type": "string" } }, "type": "object" }, "Attachment": { - "description": "Represents a file attached to a support case.", + "description": "An Attachment contains metadata about a file that was uploaded to a case - it is NOT a file itself. That being said, the name of an Attachment object can be used to download its accompanying file through the `media.download` endpoint. While attachments can be uploaded in the console at the same time as a comment, they're associated on a \"case\" level, not a \"comment\" level.", "id": "Attachment", "properties": { "createTime": { @@ -642,7 +683,7 @@ "type": "object" }, "Case": { - "description": "A support case.", + "description": "A Case is an object that contains the details of a support case. It contains fields for the time it was created, its priority, its classification, and more. Cases can also have comments and attachments that get added over time. A case is parented by a Google Cloud organization or project. Organizations are identified by a number, so the name of a case parented by an organization would look like this: ``` organizations/123/cases/456 ``` Projects have two unique identifiers, an ID and a number, and they look like this: ``` projects/abc/cases/456 ``` ``` projects/123/cases/456 ``` You can use either of them when calling the API. To learn more about project identifiers, see [AIP-2510](https://google.aip.dev/cloud/2510). Next ID: 38", "id": "Case", "properties": { "classification": { @@ -769,7 +810,7 @@ "type": "object" }, "CaseClassification": { - "description": "A classification object with a product type and value.", + "description": "A Case Classification represents the topic that a case is about. It's very important to use accurate classifications, because they're used to route your cases to specialists who can help you. A classification always has an ID that is its unique identifier. A valid ID is required when creating a case.", "id": "CaseClassification", "properties": { "displayName": { @@ -779,6 +820,10 @@ "id": { "description": "The unique ID for a classification. Must be specified for case creation. To retrieve valid classification IDs for case creation, use `caseClassifications.search`. Classification IDs returned by `caseClassifications.search` are guaranteed to be valid for at least 6 months. If a given classification is deactiveated, it will immediately stop being returned. After 6 months, `case.create` requests using the classification ID will fail.", "type": "string" + }, + "product": { + "$ref": "Product", + "description": "The full product the classification corresponds to." } }, "type": "object" @@ -790,7 +835,7 @@ "type": "object" }, "Comment": { - "description": "A comment associated with a support case.", + "description": "Case comments are the main way Google Support communicates with a user who has opened a case. When a user responds to Google Support, the user's responses also appear as comments.", "id": "Comment", "properties": { "body": { @@ -1324,6 +1369,31 @@ }, "type": "object" }, + "Product": { + "description": "The full product a case may be associated with, including Product Line and Product Subline.", + "id": "Product", + "properties": { + "productLine": { + "description": "The Product Line of the Product.", + "enum": [ + "PRODUCT_LINE_UNSPECIFIED", + "GOOGLE_CLOUD", + "GOOGLE_MAPS" + ], + "enumDescriptions": [ + "Unknown product type.", + "Google Cloud", + "Google Maps" + ], + "type": "string" + }, + "productSubline": { + "description": "The Product Subline of the Product, such as \"Maps Billing\".", + "type": "string" + } + }, + "type": "object" + }, "SearchCaseClassificationsResponse": { "description": "The response message for SearchCaseClassifications endpoint.", "id": "SearchCaseClassificationsResponse", diff --git a/discovery/googleapis_beta/dataflow__v1b3.json b/discovery/googleapis_beta/dataflow__v1b3.json index 5c8b03bd6..c4f266f08 100644 --- a/discovery/googleapis_beta/dataflow__v1b3.json +++ b/discovery/googleapis_beta/dataflow__v1b3.json @@ -10,9 +10,6 @@ }, "https://www.googleapis.com/auth/compute.readonly": { "description": "View your Google Compute Engine resources" - }, - "https://www.googleapis.com/auth/userinfo.email": { - "description": "See your primary Google Account email address" } } } @@ -41,7 +38,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231112", + "revision": "20240218", "rootUrl": "https://dataflow.googleapis.com/", "servicePath": "", "title": "Dataflow API", @@ -159,8 +156,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] }, "workerMessages": { @@ -189,8 +185,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] } }, @@ -276,8 +271,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] }, "create": { @@ -333,8 +327,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] }, "get": { @@ -389,8 +382,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] }, "getMetrics": { @@ -434,8 +426,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] }, "list": { @@ -517,8 +508,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] }, "snapshot": { @@ -554,8 +544,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] }, "update": { @@ -602,8 +591,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] } }, @@ -643,8 +631,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] }, "sendCapture": { @@ -680,8 +667,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] } } @@ -767,8 +753,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] } } @@ -808,8 +793,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] }, "reportStatus": { @@ -845,8 +829,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] } } @@ -888,8 +871,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] } }, @@ -929,8 +911,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] } } @@ -992,8 +973,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] }, "get": { @@ -1050,8 +1030,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] }, "getExecutionDetails": { @@ -1102,8 +1081,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] }, "getMetrics": { @@ -1149,8 +1127,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] }, "list": { @@ -1234,8 +1211,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] }, "snapshot": { @@ -1278,8 +1254,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] }, "update": { @@ -1328,8 +1303,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] } }, @@ -1376,8 +1350,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] }, "sendCapture": { @@ -1420,8 +1393,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] } } @@ -1509,8 +1481,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] } } @@ -1554,8 +1525,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] } } @@ -1629,8 +1599,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] } } @@ -1677,8 +1646,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] }, "reportStatus": { @@ -1721,8 +1689,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] } } @@ -1768,8 +1735,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] }, "get": { @@ -1809,8 +1775,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] }, "list": { @@ -1848,8 +1813,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] } } @@ -1889,8 +1853,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] }, "get": { @@ -1939,8 +1902,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] }, "launch": { @@ -1996,8 +1958,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] } } @@ -2041,8 +2002,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] }, "list": { @@ -2078,8 +2038,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] } } @@ -2112,8 +2071,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] }, "get": { @@ -2160,8 +2118,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] }, "launch": { @@ -2215,8 +2172,7 @@ "scopes": [ "https://www.googleapis.com/auth/cloud-platform", "https://www.googleapis.com/auth/compute", - "https://www.googleapis.com/auth/compute.readonly", - "https://www.googleapis.com/auth/userinfo.email" + "https://www.googleapis.com/auth/compute.readonly" ] } } @@ -2368,6 +2324,23 @@ }, "type": "object" }, + "Base2Exponent": { + "description": "Exponential buckets where the growth factor between buckets is `2**(2**-scale)`. e.g. for `scale=1` growth factor is `2**(2**(-1))=sqrt(2)`. `n` buckets will have the following boundaries. - 0th: [0, gf) - i in [1, n-1]: [gf^(i), gf^(i+1))", + "id": "Base2Exponent", + "properties": { + "numberOfBuckets": { + "description": "Must be greater than 0.", + "format": "int32", + "type": "integer" + }, + "scale": { + "description": "Must be between -3 and 3. This forces the growth factor of the bucket boundaries to be between `2^(1/8)` and `256`.", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "BigQueryIODetails": { "description": "Metadata for a BigQuery connector used by the job.", "id": "BigQueryIODetails", @@ -2410,6 +2383,21 @@ }, "type": "object" }, + "BucketOptions": { + "description": "`BucketOptions` describes the bucket boundaries used in the histogram.", + "id": "BucketOptions", + "properties": { + "exponential": { + "$ref": "Base2Exponent", + "description": "Bucket boundaries grow exponentially." + }, + "linear": { + "$ref": "Linear", + "description": "Bucket boundaries grow linearly." + } + }, + "type": "object" + }, "CPUTime": { "description": "Modeled after information exposed by /proc/stat.", "id": "CPUTime", @@ -2908,6 +2896,34 @@ }, "type": "object" }, + "DataflowHistogramValue": { + "description": "Summary statistics for a population of values. HistogramValue contains a sequence of buckets and gives a count of values that fall into each bucket. Bucket boundares are defined by a formula and bucket widths are either fixed or exponentially increasing.", + "id": "DataflowHistogramValue", + "properties": { + "bucketCounts": { + "description": "Optional. The number of values in each bucket of the histogram, as described in `bucket_options`. `bucket_counts` should contain N values, where N is the number of buckets specified in `bucket_options`. If `bucket_counts` has fewer than N values, the remaining values are assumed to be 0.", + "items": { + "format": "int64", + "type": "string" + }, + "type": "array" + }, + "bucketOptions": { + "$ref": "BucketOptions", + "description": "Describes the bucket boundaries used in the histogram." + }, + "count": { + "description": "Number of values recorded in this histogram.", + "format": "int64", + "type": "string" + }, + "outlierStats": { + "$ref": "OutlierStats", + "description": "Statistics on the values recorded in the histogram that fall out of the bucket boundaries." + } + }, + "type": "object" + }, "DatastoreIODetails": { "description": "Metadata for a Datastore connector used by the job.", "id": "DatastoreIODetails", @@ -3180,12 +3196,26 @@ "readOnly": true, "type": "string" }, + "streamingMode": { + "description": "Optional. Specifies the Streaming Engine message processing guarantees. Reduces cost and latency but might result in duplicate messages committed to storage. Designed to run simple mapping streaming ETL jobs at the lowest cost. For example, Change Data Capture (CDC) to BigQuery is a canonical use case.", + "enum": [ + "STREAMING_MODE_UNSPECIFIED", + "STREAMING_MODE_EXACTLY_ONCE", + "STREAMING_MODE_AT_LEAST_ONCE" + ], + "enumDescriptions": [ + "Run in the default mode.", + "In this mode, message deduplication is performed against persistent state to make sure each message is processed and committed to storage exactly once.", + "Message deduplication is not performed. Messages might be processed multiple times, and the results are applied multiple times. Note: Setting this value also enables Streaming Engine and Streaming Engine resource-based billing." + ], + "type": "string" + }, "tempStoragePrefix": { "description": "The prefix of the resources the system should use for temporary storage. The system will append the suffix \"/temp-{JOBNAME} to this resource prefix, where {JOBNAME} is the value of the job_name field. The resulting bucket and object prefix is used as the prefix of the resources used to store temporary data needed during the job execution. NOTE: This will override the value in taskrunner_settings. The supported resource type is: Google Cloud Storage: storage.googleapis.com/{bucket}/{object} bucket.storage.googleapis.com/{object}", "type": "string" }, "useStreamingEngineResourceBasedBilling": { - "description": "Output only. Whether the job uses the new streaming engine billing model based on resource usage.", + "description": "Output only. Whether the job uses the Streaming Engine resource-based billing model.", "readOnly": true, "type": "boolean" }, @@ -3386,7 +3416,7 @@ "type": "object" }, "FlexTemplateRuntimeEnvironment": { - "description": "The environment values to be set at runtime for flex template.", + "description": "The environment values to be set at runtime for flex template. LINT.IfChange", "id": "FlexTemplateRuntimeEnvironment", "properties": { "additionalExperiments": { @@ -3504,6 +3534,20 @@ "description": "The Cloud Storage path for staging local files. Must be a valid Cloud Storage URL, beginning with `gs://`.", "type": "string" }, + "streamingMode": { + "description": "Optional. Specifies the Streaming Engine message processing guarantees. Reduces cost and latency but might result in duplicate messages committed to storage. Designed to run simple mapping streaming ETL jobs at the lowest cost. For example, Change Data Capture (CDC) to BigQuery is a canonical use case.", + "enum": [ + "STREAMING_MODE_UNSPECIFIED", + "STREAMING_MODE_EXACTLY_ONCE", + "STREAMING_MODE_AT_LEAST_ONCE" + ], + "enumDescriptions": [ + "Run in the default mode.", + "In this mode, message deduplication is performed against persistent state to make sure each message is processed and committed to storage exactly once.", + "Message deduplication is not performed. Messages might be processed multiple times, and the results are applied multiple times. Note: Setting this value also enables Streaming Engine and Streaming Engine resource-based billing." + ], + "type": "string" + }, "subnetwork": { "description": "Subnetwork to which VMs will be assigned, if desired. You can specify a subnetwork using either a complete URL or an abbreviated path. Expected to be of the form \"https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK\" or \"regions/REGION/subnetworks/SUBNETWORK\". If the subnetwork is located in a Shared VPC network, you must use the complete URL.", "type": "string" @@ -3810,7 +3854,7 @@ "type": "string" }, "currentState": { - "description": "The current state of the job. Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise specified. A job in the `JOB_STATE_RUNNING` state may asynchronously enter a terminal state. After a job has reached a terminal state, no further state updates may be made. This field may be mutated by the Cloud Dataflow service; callers cannot mutate it.", + "description": "The current state of the job. Jobs are created in the `JOB_STATE_STOPPED` state unless otherwise specified. A job in the `JOB_STATE_RUNNING` state may asynchronously enter a terminal state. After a job has reached a terminal state, no further state updates may be made. This field might be mutated by the Dataflow service; callers cannot mutate it.", "enum": [ "JOB_STATE_UNKNOWN", "JOB_STATE_STOPPED", @@ -3857,7 +3901,7 @@ "description": "Deprecated." }, "id": { - "description": "The unique ID of this job. This field is set by the Cloud Dataflow service when the Job is created, and is immutable for the life of the job.", + "description": "The unique ID of this job. This field is set by the Dataflow service when the job is created, and is immutable for the life of the job.", "type": "string" }, "jobMetadata": { @@ -3876,7 +3920,7 @@ "type": "string" }, "name": { - "description": "The user-specified Cloud Dataflow job name. Only one Job with a given name can exist in a project within one region at any given time. Jobs in different regions can have the same name. If a caller attempts to create a Job with the same name as an already-existing Job, the attempt returns the existing Job. The name must match the regular expression `[a-z]([-a-z0-9]{0,1022}[a-z0-9])?`", + "description": "The user-specified Dataflow job name. Only one active job with a given name can exist in a project within one region at any given time. Jobs in different regions can have the same name. If a caller attempts to create a job with the same name as an active job that already exists, the attempt returns the existing job. The name must match the regular expression `[a-z]([-a-z0-9]{0,1022}[a-z0-9])?`", "type": "string" }, "pipelineDescription": { @@ -3884,7 +3928,7 @@ "description": "Preliminary field: The format of this data may change at any time. A description of the user pipeline and stages through which it is executed. Created by Cloud Dataflow service. Only retrieved with JOB_VIEW_DESCRIPTION or JOB_VIEW_ALL." }, "projectId": { - "description": "The ID of the Cloud Platform project that the job belongs to.", + "description": "The ID of the Google Cloud project that the job belongs to.", "type": "string" }, "replaceJobId": { @@ -3980,7 +4024,7 @@ "type": "object" }, "type": { - "description": "The type of Cloud Dataflow job.", + "description": "The type of Dataflow job.", "enum": [ "JOB_TYPE_UNKNOWN", "JOB_TYPE_BATCH", @@ -4395,6 +4439,28 @@ }, "type": "object" }, + "Linear": { + "description": "Linear buckets with the following boundaries for indices in 0 to n-1. - i in [0, n-1]: [start + (i)*width, start + (i+1)*width)", + "id": "Linear", + "properties": { + "numberOfBuckets": { + "description": "Must be greater than 0.", + "format": "int32", + "type": "integer" + }, + "start": { + "description": "Lower bound of the first bucket.", + "format": "double", + "type": "number" + }, + "width": { + "description": "Distance between bucket boundaries. Must be greater than 0.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, "ListJobMessagesResponse": { "description": "Response to a request to list job messages.", "id": "ListJobMessagesResponse", @@ -4608,6 +4674,33 @@ }, "type": "object" }, + "MetricValue": { + "description": "The value of a metric along with its name and labels.", + "id": "MetricValue", + "properties": { + "metric": { + "description": "Base name for this metric.", + "type": "string" + }, + "metricLabels": { + "additionalProperties": { + "type": "string" + }, + "description": "Optional. Set of metric labels for this metric.", + "type": "object" + }, + "valueHistogram": { + "$ref": "DataflowHistogramValue", + "description": "Histogram value of this metric." + }, + "valueInt64": { + "description": "Integer value of this metric.", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "MountedDataDisk": { "description": "Describes mounted data disk.", "id": "MountedDataDisk", @@ -4669,6 +4762,33 @@ }, "type": "object" }, + "OutlierStats": { + "description": "Statistics for the underflow and overflow bucket.", + "id": "OutlierStats", + "properties": { + "overflowCount": { + "description": "Number of values that are larger than the upper bound of the largest bucket.", + "format": "int64", + "type": "string" + }, + "overflowMean": { + "description": "Mean of values in the overflow bucket.", + "format": "double", + "type": "number" + }, + "underflowCount": { + "description": "Number of values that are smaller than the lower bound of the smallest bucket.", + "format": "int64", + "type": "string" + }, + "underflowMean": { + "description": "Mean of values in the undeflow bucket.", + "format": "double", + "type": "number" + } + }, + "type": "object" + }, "Package": { "description": "The packages that must be installed in order for a worker to run the steps of the Cloud Dataflow job that will be assigned to its worker pool. This is the mechanism by which the Cloud Dataflow SDK causes code to be loaded onto the workers. For example, the Cloud Dataflow Java SDK might use this to install jars containing the user's code and all of the various dependencies (libraries, data files, etc.) required in order for that code to run.", "id": "Package", @@ -4813,6 +4933,10 @@ "description": "Required. The help text to display for the parameter.", "type": "string" }, + "hiddenUi": { + "description": "Optional. Whether the parameter should be hidden in the UI.", + "type": "boolean" + }, "isOptional": { "description": "Optional. Whether the parameter is optional. Defaults to false.", "type": "boolean" @@ -4955,6 +5079,42 @@ }, "type": "object" }, + "PerStepNamespaceMetrics": { + "description": "Metrics for a particular unfused step and namespace. A metric is uniquely identified by the `metrics_namespace`, `original_step`, `metric name` and `metric_labels`.", + "id": "PerStepNamespaceMetrics", + "properties": { + "metricValues": { + "description": "Optional. Metrics that are recorded for this namespace and unfused step.", + "items": { + "$ref": "MetricValue" + }, + "type": "array" + }, + "metricsNamespace": { + "description": "The namespace of these metrics on the worker.", + "type": "string" + }, + "originalStep": { + "description": "The original system name of the unfused step that these metrics are reported from.", + "type": "string" + } + }, + "type": "object" + }, + "PerWorkerMetrics": { + "description": "Per worker metrics.", + "id": "PerWorkerMetrics", + "properties": { + "perStepNamespaceMetrics": { + "description": "Optional. Metrics for a particular unfused step and namespace.", + "items": { + "$ref": "PerStepNamespaceMetrics" + }, + "type": "array" + } + }, + "type": "object" + }, "PipelineDescription": { "description": "A descriptive representation of submitted pipeline as well as the executed form. This data is provided by the Dataflow service for ease of visualizing the pipeline and interpreting Dataflow provided metrics.", "id": "PipelineDescription", @@ -5319,6 +5479,20 @@ "description": "Optional. The email address of the service account to run the job as.", "type": "string" }, + "streamingMode": { + "description": "Optional. Specifies the Streaming Engine message processing guarantees. Reduces cost and latency but might result in duplicate messages committed to storage. Designed to run simple mapping streaming ETL jobs at the lowest cost. For example, Change Data Capture (CDC) to BigQuery is a canonical use case.", + "enum": [ + "STREAMING_MODE_UNSPECIFIED", + "STREAMING_MODE_EXACTLY_ONCE", + "STREAMING_MODE_AT_LEAST_ONCE" + ], + "enumDescriptions": [ + "Run in the default mode.", + "In this mode, message deduplication is performed against persistent state to make sure each message is processed and committed to storage exactly once.", + "Message deduplication is not performed. Messages might be processed multiple times, and the results are applied multiple times. Note: Setting this value also enables Streaming Engine and Streaming Engine resource-based billing." + ], + "type": "string" + }, "subnetwork": { "description": "Optional. Subnetwork to which VMs will be assigned, if desired. You can specify a subnetwork using either a complete URL or an abbreviated path. Expected to be of the form \"https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK\" or \"regions/REGION/subnetworks/SUBNETWORK\". If the subnetwork is located in a Shared VPC network, you must use the complete URL.", "type": "string" @@ -5373,6 +5547,11 @@ "description": "The minimum number of workers to scale down to. This field is currently only supported for Streaming Engine jobs.", "format": "int32", "type": "integer" + }, + "workerUtilizationHint": { + "description": "Target worker utilization, compared against the aggregate utilization of the worker pool by autoscaler, to determine upscaling and downscaling when absent other constraints such as backlog.", + "format": "double", + "type": "number" } }, "type": "object" @@ -6499,6 +6678,70 @@ }, "type": "object" }, + "StreamingScalingReport": { + "description": "Contains per-user worker telemetry used in streaming autoscaling.", + "id": "StreamingScalingReport", + "properties": { + "activeBundleCount": { + "deprecated": true, + "format": "int32", + "type": "integer" + }, + "activeThreadCount": { + "description": "Current acive thread count.", + "format": "int32", + "type": "integer" + }, + "maximumBundleCount": { + "description": "Maximum bundle count.", + "format": "int32", + "type": "integer" + }, + "maximumBytes": { + "description": "Maximum bytes.", + "format": "int64", + "type": "string" + }, + "maximumBytesCount": { + "deprecated": true, + "format": "int32", + "type": "integer" + }, + "maximumThreadCount": { + "description": "Maximum thread count limit.", + "format": "int32", + "type": "integer" + }, + "outstandingBundleCount": { + "description": "Current outstanding bundle count.", + "format": "int32", + "type": "integer" + }, + "outstandingBytes": { + "description": "Current outstanding bytes.", + "format": "int64", + "type": "string" + }, + "outstandingBytesCount": { + "deprecated": true, + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, + "StreamingScalingReportResponse": { + "description": "Contains per-user-worker streaming scaling recommendation from the backend.", + "id": "StreamingScalingReportResponse", + "properties": { + "maximumThreadCount": { + "description": "Maximum thread count limit;", + "format": "int32", + "type": "integer" + } + }, + "type": "object" + }, "StreamingSetupTask": { "description": "A task which initializes part of a streaming Dataflow job.", "id": "StreamingSetupTask", @@ -6725,6 +6968,18 @@ "$ref": "ParameterMetadata" }, "type": "array" + }, + "streaming": { + "description": "Optional. Indicates if the template is streaming or not.", + "type": "boolean" + }, + "supportsAtLeastOnce": { + "description": "Optional. Indicates if the streaming template supports at least once mode.", + "type": "boolean" + }, + "supportsExactlyOnce": { + "description": "Optional. Indicates if the streaming template supports exactly once mode.", + "type": "boolean" } }, "type": "object" @@ -7232,6 +7487,14 @@ "description": "Labels are used to group WorkerMessages. For example, a worker_message about a particular container might have the labels: { \"JOB_ID\": \"2015-04-22\", \"WORKER_ID\": \"wordcount-vm-2015…\" \"CONTAINER_TYPE\": \"worker\", \"CONTAINER_ID\": \"ac1234def\"} Label tags typically correspond to Label enum values. However, for ease of development other strings can be used as tags. LABEL_UNSPECIFIED should not be used here.", "type": "object" }, + "perWorkerMetrics": { + "$ref": "PerWorkerMetrics", + "description": "System defined metrics for this worker." + }, + "streamingScalingReport": { + "$ref": "StreamingScalingReport", + "description": "Contains per-user worker telemetry used in streaming autoscaling." + }, "time": { "description": "The timestamp of the worker_message.", "format": "google-datetime", @@ -7287,6 +7550,10 @@ "description": "A worker_message response allows the server to pass information to the sender.", "id": "WorkerMessageResponse", "properties": { + "streamingScalingReportResponse": { + "$ref": "StreamingScalingReportResponse", + "description": "Service's streaming scaling response for workers." + }, "workerHealthReportResponse": { "$ref": "WorkerHealthReportResponse", "description": "The service's response to a worker's health report." diff --git a/discovery/googleapis_beta/datalabeling__v1beta1.json b/discovery/googleapis_beta/datalabeling__v1beta1.json index 012a52c6a..6e285c885 100644 --- a/discovery/googleapis_beta/datalabeling__v1beta1.json +++ b/discovery/googleapis_beta/datalabeling__v1beta1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231014", + "revision": "20240207", "rootUrl": "https://datalabeling.googleapis.com/", "servicePath": "", "title": "Data Labeling API", diff --git a/discovery/googleapis_beta/datastream__v1alpha1.json b/discovery/googleapis_beta/datastream__v1alpha1.json index acea8b7fe..225c8e75c 100644 --- a/discovery/googleapis_beta/datastream__v1alpha1.json +++ b/discovery/googleapis_beta/datastream__v1alpha1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231030", + "revision": "20240215", "rootUrl": "https://datastream.googleapis.com/", "servicePath": "", "title": "Datastream API", diff --git a/discovery/googleapis_beta/factchecktools__v1alpha1.json b/discovery/googleapis_beta/factchecktools__v1alpha1.json index 81cb845cc..bb22836c5 100644 --- a/discovery/googleapis_beta/factchecktools__v1alpha1.json +++ b/discovery/googleapis_beta/factchecktools__v1alpha1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231126", + "revision": "20240225", "rootUrl": "https://factchecktools.googleapis.com/", "servicePath": "", "title": "Fact Check Tools API", diff --git a/discovery/googleapis_beta/fcmdata__v1beta1.json b/discovery/googleapis_beta/fcmdata__v1beta1.json index d38ef0de2..fd3617de2 100644 --- a/discovery/googleapis_beta/fcmdata__v1beta1.json +++ b/discovery/googleapis_beta/fcmdata__v1beta1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240226", "rootUrl": "https://fcmdata.googleapis.com/", "servicePath": "", "title": "Firebase Cloud Messaging Data API", diff --git a/discovery/googleapis_beta/firebase__v1beta1.json b/discovery/googleapis_beta/firebase__v1beta1.json index 71a1f20ea..92df9f6f9 100644 --- a/discovery/googleapis_beta/firebase__v1beta1.json +++ b/discovery/googleapis_beta/firebase__v1beta1.json @@ -34,7 +34,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240227", "rootUrl": "https://firebase.googleapis.com/", "servicePath": "", "title": "Firebase Management API", diff --git a/discovery/googleapis_beta/firebaseappcheck__v1beta.json b/discovery/googleapis_beta/firebaseappcheck__v1beta.json index abcc341a9..0edc52dcd 100644 --- a/discovery/googleapis_beta/firebaseappcheck__v1beta.json +++ b/discovery/googleapis_beta/firebaseappcheck__v1beta.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231113", + "revision": "20240226", "rootUrl": "https://firebaseappcheck.googleapis.com/", "servicePath": "", "title": "Firebase App Check API", @@ -1624,6 +1624,204 @@ "https://www.googleapis.com/auth/firebase" ] } + }, + "resources": { + "resourcePolicies": { + "methods": { + "batchUpdate": { + "description": "Atomically updates the specified ResourcePolicy configurations.", + "flatPath": "v1beta/projects/{projectsId}/services/{servicesId}/resourcePolicies:batchUpdate", + "httpMethod": "POST", + "id": "firebaseappcheck.projects.services.resourcePolicies.batchUpdate", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The parent project name and the service, in the format ``` projects/{project_number}/services/{service_id} ``` The parent collection in the `name` field of any resource being updated must match this field, or the entire batch fails.", + "location": "path", + "pattern": "^projects/[^/]+/services/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/resourcePolicies:batchUpdate", + "request": { + "$ref": "GoogleFirebaseAppcheckV1betaBatchUpdateResourcePoliciesRequest" + }, + "response": { + "$ref": "GoogleFirebaseAppcheckV1betaBatchUpdateResourcePoliciesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] + }, + "create": { + "description": "Creates the specified ResourcePolicy configuration.", + "flatPath": "v1beta/projects/{projectsId}/services/{servicesId}/resourcePolicies", + "httpMethod": "POST", + "id": "firebaseappcheck.projects.services.resourcePolicies.create", + "parameterOrder": [ + "parent" + ], + "parameters": { + "parent": { + "description": "Required. The relative resource name of the parent service in which the specified ResourcePolicy will be created, in the format: ``` projects/{project_number}/services/{service_id} ``` Note that the `service_id` element must be a supported service ID. Currently, the following service IDs are supported: * `oauth2.googleapis.com` (Google Identity for iOS)", + "location": "path", + "pattern": "^projects/[^/]+/services/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/resourcePolicies", + "request": { + "$ref": "GoogleFirebaseAppcheckV1betaResourcePolicy" + }, + "response": { + "$ref": "GoogleFirebaseAppcheckV1betaResourcePolicy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] + }, + "delete": { + "description": "Deletes the specified ResourcePolicy configuration.", + "flatPath": "v1beta/projects/{projectsId}/services/{servicesId}/resourcePolicies/{resourcePoliciesId}", + "httpMethod": "DELETE", + "id": "firebaseappcheck.projects.services.resourcePolicies.delete", + "parameterOrder": [ + "name" + ], + "parameters": { + "etag": { + "description": "The checksum to be validated against the current ResourcePolicy, to ensure the client has an up-to-date value before proceeding. The user can obtain this from the ResourcePolicy object that they last received. This etag is strongly validated.", + "location": "query", + "type": "string" + }, + "name": { + "description": "Required. The relative resource name of the ResourcePolicy to delete, in the format: ``` projects/{project_number}/services/{service_id}/resourcePolicies/{resource_name} ```", + "location": "path", + "pattern": "^projects/[^/]+/services/[^/]+/resourcePolicies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}", + "response": { + "$ref": "GoogleProtobufEmpty" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] + }, + "get": { + "description": "Gets the requested ResourcePolicy configuration.", + "flatPath": "v1beta/projects/{projectsId}/services/{servicesId}/resourcePolicies/{resourcePoliciesId}", + "httpMethod": "GET", + "id": "firebaseappcheck.projects.services.resourcePolicies.get", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The relative resource name of the ResourcePolicy to retrieve, in the format: ``` projects/{project_number}/services/{service_id}/resourcePolicies/{resource_policy_id} ``` Note that the `service_id` element must be a supported service ID. Currently, the following service IDs are supported: * `oauth2.googleapis.com` (Google Identity for iOS) `resource_policy_id` is a system-generated UID used as the resource ID for the policy.", + "location": "path", + "pattern": "^projects/[^/]+/services/[^/]+/resourcePolicies/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+name}", + "response": { + "$ref": "GoogleFirebaseAppcheckV1betaResourcePolicy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] + }, + "list": { + "description": "Lists all ResourcePolicy configurations for the specified project and service.", + "flatPath": "v1beta/projects/{projectsId}/services/{servicesId}/resourcePolicies", + "httpMethod": "GET", + "id": "firebaseappcheck.projects.services.resourcePolicies.list", + "parameterOrder": [ + "parent" + ], + "parameters": { + "filter": { + "description": "Optional. Filters the results by the specified rule. For the exact syntax of this field, please consult the [AIP-160](https://google.aip.dev/160) standard. Currently, since the only fields in the ResourcePolicy resource are the scalar fields `enforcement_mode` and `target_resource`, this method does not support the traversal operator (`.`) or the has operator (`:`). Here are some examples of valid filters: * `enforcement_mode = ENFORCED` * `target_resource = \"//oauth2.googleapis.com/projects/12345/oauthClients/\"` * `enforcement_mode = ENFORCED AND target_resource = \"//oauth2.googleapis.com/projects/12345/oauthClients/\"`", + "location": "query", + "type": "string" + }, + "pageSize": { + "description": "The maximum number of ResourcePolicys to return in the response. Only explicitly configured policies are returned. The server may return fewer than this at its own discretion. If no value is specified (or too large a value is specified), the server will impose its own limit.", + "format": "int32", + "location": "query", + "type": "integer" + }, + "pageToken": { + "description": "Token returned from a previous call to ListResourcePolicies indicating where in the set of ResourcePolicys to resume listing. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to ListResourcePolicies must match the call that provided the page token; if they do not match, the result is undefined.", + "location": "query", + "type": "string" + }, + "parent": { + "description": "Required. The relative resource name of the parent project and service for which to list each associated ResourcePolicy, in the format: ``` projects/{project_number}/services/{service_name} ```", + "location": "path", + "pattern": "^projects/[^/]+/services/[^/]+$", + "required": true, + "type": "string" + } + }, + "path": "v1beta/{+parent}/resourcePolicies", + "response": { + "$ref": "GoogleFirebaseAppcheckV1betaListResourcePoliciesResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] + }, + "patch": { + "description": "Updates the specified ResourcePolicy configuration.", + "flatPath": "v1beta/projects/{projectsId}/services/{servicesId}/resourcePolicies/{resourcePoliciesId}", + "httpMethod": "PATCH", + "id": "firebaseappcheck.projects.services.resourcePolicies.patch", + "parameterOrder": [ + "name" + ], + "parameters": { + "name": { + "description": "Required. The relative name of the resource configuration object, in the format: ``` projects/{project_number}/services/{service_id}/resourcePolicies/{resource_policy_id} ``` Note that the `service_id` element must be a supported service ID. Currently, the following service IDs are supported: * `oauth2.googleapis.com` (Google Identity for iOS) `resource_policy_id` is a system-generated UID used as the resource ID for the policy.", + "location": "path", + "pattern": "^projects/[^/]+/services/[^/]+/resourcePolicies/[^/]+$", + "required": true, + "type": "string" + }, + "updateMask": { + "description": "Required. A comma-separated list of names of fields in the ResourcePolicy to update. Example: `enforcement_mode`.", + "format": "google-fieldmask", + "location": "query", + "type": "string" + } + }, + "path": "v1beta/{+name}", + "request": { + "$ref": "GoogleFirebaseAppcheckV1betaResourcePolicy" + }, + "response": { + "$ref": "GoogleFirebaseAppcheckV1betaResourcePolicy" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/firebase" + ] + } + } + } } } } @@ -1784,6 +1982,39 @@ }, "type": "object" }, + "GoogleFirebaseAppcheckV1betaBatchUpdateResourcePoliciesRequest": { + "description": "Request message for the BatchUpdateResourcePolicies method.", + "id": "GoogleFirebaseAppcheckV1betaBatchUpdateResourcePoliciesRequest", + "properties": { + "requests": { + "description": "Required. The request messages specifying the ResourcePolicys to update. A maximum of 100 objects can be updated in a batch.", + "items": { + "$ref": "GoogleFirebaseAppcheckV1betaUpdateResourcePolicyRequest" + }, + "type": "array" + }, + "updateMask": { + "description": "Optional. A comma-separated list of names of fields in the ResourceConfigurations to update. Example: `enforcement_mode`. If this field is present, the `update_mask` field in the UpdateResourcePolicyRequest messages must all match this field, or the entire batch fails and no updates will be committed.", + "format": "google-fieldmask", + "type": "string" + } + }, + "type": "object" + }, + "GoogleFirebaseAppcheckV1betaBatchUpdateResourcePoliciesResponse": { + "description": "Response message for the BatchUpdateResourcePolicies method.", + "id": "GoogleFirebaseAppcheckV1betaBatchUpdateResourcePoliciesResponse", + "properties": { + "resourcePolicies": { + "description": "ResourcePolicy objects after the updates have been applied.", + "items": { + "$ref": "GoogleFirebaseAppcheckV1betaResourcePolicy" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleFirebaseAppcheckV1betaBatchUpdateServicesRequest": { "description": "Request message for the BatchUpdateServices method.", "id": "GoogleFirebaseAppcheckV1betaBatchUpdateServicesRequest", @@ -2115,6 +2346,24 @@ }, "type": "object" }, + "GoogleFirebaseAppcheckV1betaListResourcePoliciesResponse": { + "description": "Response message for the ListResourcePolicies method.", + "id": "GoogleFirebaseAppcheckV1betaListResourcePoliciesResponse", + "properties": { + "nextPageToken": { + "description": "If the result list is too large to fit in a single response, then a token is returned. If the string is empty or omitted, then this response is the last page of results. This token can be used in a subsequent call to ListResourcePolicies to find the next group of ResourcePolicys. Page tokens are short-lived and should not be persisted.", + "type": "string" + }, + "resourcePolicies": { + "description": "The ResourcePolicys retrieved.", + "items": { + "$ref": "GoogleFirebaseAppcheckV1betaResourcePolicy" + }, + "type": "array" + } + }, + "type": "object" + }, "GoogleFirebaseAppcheckV1betaListServicesResponse": { "description": "Response message for the ListServices method.", "id": "GoogleFirebaseAppcheckV1betaListServicesResponse", @@ -2265,6 +2514,45 @@ }, "type": "object" }, + "GoogleFirebaseAppcheckV1betaResourcePolicy": { + "description": "App Check enforcement policy for a specific resource of a Firebase service supported by App Check. Note that this policy will override the Service level enforcement mode configuration.", + "id": "GoogleFirebaseAppcheckV1betaResourcePolicy", + "properties": { + "enforcementMode": { + "description": "Required. The App Check enforcement mode for this resource. This will override the EnforcementMode setting on the service. For new resources that you are creating, you should consider setting an override and enable enforcement on the resource immediately, if there are no outdated clients that can use it.", + "enum": [ + "OFF", + "UNENFORCED", + "ENFORCED" + ], + "enumDescriptions": [ + "Firebase App Check is not enforced for the service, nor are App Check metrics collected. Though the service is not protected by App Check in this mode, other applicable protections, such as user authorization, are still enforced. An unconfigured service is in this mode by default. Note that resource policies behave slightly differently as an unconfigured resource policy means that the resource will inherit the EnforcementMode configured for the service it belongs to and will not be considered as being in OFF mode by default.", + "Firebase App Check is not enforced for the service. App Check metrics are collected to help you decide when to turn on enforcement for the service. Though the service is not protected by App Check in this mode, other applicable protections, such as user authorization, are still enforced. Some services require certain conditions to be met before they will work with App Check, such as requiring you to upgrade to a specific service tier. Until those requirements are met for a service, this `UNENFORCED` setting will have no effect and App Check will not work with that service.", + "Firebase App Check is enforced for the service. The service will reject any request that attempts to access your project's resources if it does not have valid App Check token attached, with some exceptions depending on the service; for example, some services will still allow requests bearing the developer's privileged service account credentials without an App Check token. App Check metrics continue to be collected to help you detect issues with your App Check integration and monitor the composition of your callers. While the service is protected by App Check, other applicable protections, such as user authorization, continue to be enforced at the same time. Use caution when choosing to enforce App Check on a Firebase service. If your users have not updated to an App Check capable version of your app, their apps will no longer be able to use your Firebase services that are enforcing App Check. App Check metrics can help you decide whether to enforce App Check on your Firebase services. If your app has not launched yet, you should enable enforcement immediately, since there are no outdated clients in use. Some services require certain conditions to be met before they will work with App Check, such as requiring you to upgrade to a specific service tier. Until those requirements are met for a service, this `ENFORCED` setting will have no effect and App Check will not work with that service." + ], + "type": "string" + }, + "etag": { + "description": "This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. This etag is strongly validated.", + "type": "string" + }, + "name": { + "description": "Required. The relative name of the resource configuration object, in the format: ``` projects/{project_number}/services/{service_id}/resourcePolicies/{resource_policy_id} ``` Note that the `service_id` element must be a supported service ID. Currently, the following service IDs are supported: * `oauth2.googleapis.com` (Google Identity for iOS) `resource_policy_id` is a system-generated UID used as the resource ID for the policy.", + "type": "string" + }, + "targetResource": { + "description": "Required. Service specific name of the resource object to which this policy applies, in the format: * `//oauth2.googleapis.com/projects/{project}/oauthClients/{oauth_client_id}` (Google Identity for iOS) NOTE that the resource must belong to the service specified in the `name` and be from the same project as this policy, but it may or may not exist at the time of creation of the policy.", + "type": "string" + }, + "updateTime": { + "description": "Output only. Timestamp when this service configuration object was most recently updated.", + "format": "google-datetime", + "readOnly": true, + "type": "string" + } + }, + "type": "object" + }, "GoogleFirebaseAppcheckV1betaSafetyNetConfig": { "deprecated": true, "description": "An app's SafetyNet configuration object. This configuration controls certain properties of the `AppCheckToken` returned by ExchangeSafetyNetToken, such as its ttl. Note that your registered SHA-256 certificate fingerprints are used to validate tokens issued by SafetyNet; please register them via the Firebase Console or programmatically via the [Firebase Management Service](https://firebase.google.com/docs/projects/api/reference/rest/v1beta1/projects.androidApps.sha/create).", @@ -2317,6 +2605,22 @@ }, "type": "object" }, + "GoogleFirebaseAppcheckV1betaUpdateResourcePolicyRequest": { + "description": "Request message for the UpdateResourcePolicy method as well as an individual update message for the BatchUpdateResourcePolicies method.", + "id": "GoogleFirebaseAppcheckV1betaUpdateResourcePolicyRequest", + "properties": { + "resourcePolicy": { + "$ref": "GoogleFirebaseAppcheckV1betaResourcePolicy", + "description": "Required. The ResourcePolicy to update. The ResourcePolicy's `name` field is used to identify the ResourcePolicy to be updated, in the format: ``` projects/{project_number}/services/{service_id}/resourcePolicies/{resource_name} ``` Note that the `service_id` element must be a supported service ID. Currently, the following service IDs are supported: * `oauth2.googleapis.com` (Google Identity for iOS) Only the top-level resources are supported for each of the services. The resources must belong to the service specified and `resource_name` should be formatted as: * `oauthClients/{oauth_client_id}` (Google Identity for iOS)" + }, + "updateMask": { + "description": "Required. A comma-separated list of names of fields in the ResourcePolicy to update. Example: `enforcement_mode`.", + "format": "google-fieldmask", + "type": "string" + } + }, + "type": "object" + }, "GoogleFirebaseAppcheckV1betaUpdateServiceRequest": { "description": "Request message for the UpdateService method as well as an individual update message for the BatchUpdateServices method.", "id": "GoogleFirebaseAppcheckV1betaUpdateServiceRequest", diff --git a/discovery/googleapis_beta/firebasedatabase__v1beta.json b/discovery/googleapis_beta/firebasedatabase__v1beta.json index 69d908370..1cf291597 100644 --- a/discovery/googleapis_beta/firebasedatabase__v1beta.json +++ b/discovery/googleapis_beta/firebasedatabase__v1beta.json @@ -34,7 +34,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240226", "rootUrl": "https://firebasedatabase.googleapis.com/", "servicePath": "", "title": "Firebase Realtime Database API", diff --git a/discovery/googleapis_beta/firebasestorage__v1beta.json b/discovery/googleapis_beta/firebasestorage__v1beta.json index 1ea9947a7..007a219e9 100644 --- a/discovery/googleapis_beta/firebasestorage__v1beta.json +++ b/discovery/googleapis_beta/firebasestorage__v1beta.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231117", + "revision": "20240220", "rootUrl": "https://firebasestorage.googleapis.com/", "servicePath": "", "title": "Cloud Storage for Firebase API", diff --git a/discovery/googleapis_beta/gkehub__v2alpha.json b/discovery/googleapis_beta/gkehub__v2alpha.json index 6d0b93861..0a863c268 100644 --- a/discovery/googleapis_beta/gkehub__v2alpha.json +++ b/discovery/googleapis_beta/gkehub__v2alpha.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231114", + "revision": "20240216", "rootUrl": "https://gkehub.googleapis.com/", "servicePath": "", "title": "GKE Hub API", diff --git a/discovery/googleapis_beta/lifesciences__v2beta.json b/discovery/googleapis_beta/lifesciences__v2beta.json index 6f7b10c90..b57377212 100644 --- a/discovery/googleapis_beta/lifesciences__v2beta.json +++ b/discovery/googleapis_beta/lifesciences__v2beta.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231110", + "revision": "20240205", "rootUrl": "https://lifesciences.googleapis.com/", "servicePath": "", "title": "Cloud Life Sciences API", diff --git a/discovery/googleapis_beta/prod_tt_sasportal__v1alpha1.json b/discovery/googleapis_beta/prod_tt_sasportal__v1alpha1.json index 8a71fc36c..e3bad9845 100644 --- a/discovery/googleapis_beta/prod_tt_sasportal__v1alpha1.json +++ b/discovery/googleapis_beta/prod_tt_sasportal__v1alpha1.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231127", + "revision": "20240222", "rootUrl": "https://prod-tt-sasportal.googleapis.com/", "servicePath": "", "title": "SAS Portal API (Testing)", @@ -114,22 +114,6 @@ "resources": { "customers": { "methods": { - "checkHasProvisionedDeployment": { - "description": "Checks whether a SAS deployment for the authentication context exists.", - "flatPath": "v1alpha1/customers:checkHasProvisionedDeployment", - "httpMethod": "GET", - "id": "prod_tt_sasportal.customers.checkHasProvisionedDeployment", - "parameterOrder": [], - "parameters": {}, - "path": "v1alpha1/customers:checkHasProvisionedDeployment", - "response": { - "$ref": "SasPortalCheckHasProvisionedDeploymentResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/sasportal" - ] - }, "get": { "description": "Returns a requested customer.", "flatPath": "v1alpha1/customers/{customersId}", @@ -184,6 +168,38 @@ "https://www.googleapis.com/auth/sasportal" ] }, + "listGcpProjectDeployments": { + "description": "Returns a list of SAS deployments associated with current GCP project. Includes whether SAS analytics has been enabled or not.", + "flatPath": "v1alpha1/customers:listGcpProjectDeployments", + "httpMethod": "GET", + "id": "prod_tt_sasportal.customers.listGcpProjectDeployments", + "parameterOrder": [], + "parameters": {}, + "path": "v1alpha1/customers:listGcpProjectDeployments", + "response": { + "$ref": "SasPortalListGcpProjectDeploymentsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sasportal" + ] + }, + "listLegacyOrganizations": { + "description": "Returns a list of legacy organizations.", + "flatPath": "v1alpha1/customers:listLegacyOrganizations", + "httpMethod": "GET", + "id": "prod_tt_sasportal.customers.listLegacyOrganizations", + "parameterOrder": [], + "parameters": {}, + "path": "v1alpha1/customers:listLegacyOrganizations", + "response": { + "$ref": "SasPortalListLegacyOrganizationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sasportal" + ] + }, "migrateOrganization": { "description": "Migrates a SAS organization to the cloud. This will create GCP projects for each deployment and associate them. The SAS Organization is linked to the gcp project that called the command. go/sas-legacy-customer-migration", "flatPath": "v1alpha1/customers:migrateOrganization", @@ -2676,17 +2692,6 @@ }, "type": "object" }, - "SasPortalCheckHasProvisionedDeploymentResponse": { - "description": "Response for [CheckHasProvisionedDeployment]. [spectrum.sas.portal.v1alpha1.Provisioning.CheckHasProvisionedDeployment].", - "id": "SasPortalCheckHasProvisionedDeploymentResponse", - "properties": { - "hasProvisionedDeployment": { - "description": "Whether a SAS deployment for the authentication context exists.", - "type": "boolean" - } - }, - "type": "object" - }, "SasPortalCreateSignedDeviceRequest": { "description": "Request for CreateSignedDevice.", "id": "SasPortalCreateSignedDeviceRequest", @@ -2796,7 +2801,7 @@ "type": "string" }, "fccId": { - "description": "The FCC identifier of the device.", + "description": "The FCC identifier of the device. Refer to https://www.fcc.gov/oet/ea/fccid for FccID format. Accept underscores and periods because some test-SAS customers use them.", "type": "string" }, "grantRangeAllowlists": { @@ -3135,6 +3140,21 @@ }, "type": "object" }, + "SasPortalGcpProjectDeployment": { + "description": "Deployment associated with the GCP project. Includes whether SAS analytics has been enabled or not.", + "id": "SasPortalGcpProjectDeployment", + "properties": { + "deployment": { + "$ref": "SasPortalDeployment", + "description": "Deployment associated with the GCP project." + }, + "hasEnabledAnalytics": { + "description": "Whether SAS analytics has been enabled.", + "type": "boolean" + } + }, + "type": "object" + }, "SasPortalGenerateSecretRequest": { "description": "Request for GenerateSecret.", "id": "SasPortalGenerateSecretRequest", @@ -3300,6 +3320,34 @@ }, "type": "object" }, + "SasPortalListGcpProjectDeploymentsResponse": { + "description": "Response for [ListGcpProjectDeployments].", + "id": "SasPortalListGcpProjectDeploymentsResponse", + "properties": { + "deployments": { + "description": "Optional. Deployments associated with the GCP project", + "items": { + "$ref": "SasPortalGcpProjectDeployment" + }, + "type": "array" + } + }, + "type": "object" + }, + "SasPortalListLegacyOrganizationsResponse": { + "description": "Response for [ListLegacyOrganizations]. [spectrum.sas.portal.v1alpha1.Provisioning.ListLegacyOrganizations].", + "id": "SasPortalListLegacyOrganizationsResponse", + "properties": { + "organizations": { + "description": "Optional. Legacy SAS organizations.", + "items": { + "$ref": "SasPortalOrganization" + }, + "type": "array" + } + }, + "type": "object" + }, "SasPortalListNodesResponse": { "description": "Response for ListNodes.", "id": "SasPortalListNodesResponse", @@ -3499,6 +3547,22 @@ }, "type": "object" }, + "SasPortalOrganization": { + "description": "Organization details.", + "id": "SasPortalOrganization", + "properties": { + "displayName": { + "description": "Name of organization", + "type": "string" + }, + "id": { + "description": "Id of organization", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "SasPortalPolicy": { "description": "Defines an access control policy to the resources.", "id": "SasPortalPolicy", diff --git a/discovery/googleapis_beta/recommendationengine__v1beta1.json b/discovery/googleapis_beta/recommendationengine__v1beta1.json index 384097f57..c547c88d3 100644 --- a/discovery/googleapis_beta/recommendationengine__v1beta1.json +++ b/discovery/googleapis_beta/recommendationengine__v1beta1.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231109", + "revision": "20240201", "rootUrl": "https://recommendationengine.googleapis.com/", "servicePath": "", "title": "Recommendations AI (Beta)", diff --git a/discovery/googleapis_beta/sasportal__v1alpha1.json b/discovery/googleapis_beta/sasportal__v1alpha1.json index fd53a0a82..d0950f6f6 100644 --- a/discovery/googleapis_beta/sasportal__v1alpha1.json +++ b/discovery/googleapis_beta/sasportal__v1alpha1.json @@ -27,7 +27,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231126", + "revision": "20240222", "rootUrl": "https://sasportal.googleapis.com/", "servicePath": "", "title": "SAS Portal API", @@ -113,22 +113,6 @@ "resources": { "customers": { "methods": { - "checkHasProvisionedDeployment": { - "description": "Checks whether a SAS deployment for the authentication context exists.", - "flatPath": "v1alpha1/customers:checkHasProvisionedDeployment", - "httpMethod": "GET", - "id": "sasportal.customers.checkHasProvisionedDeployment", - "parameterOrder": [], - "parameters": {}, - "path": "v1alpha1/customers:checkHasProvisionedDeployment", - "response": { - "$ref": "SasPortalCheckHasProvisionedDeploymentResponse" - }, - "scopes": [ - "https://www.googleapis.com/auth/cloud-platform", - "https://www.googleapis.com/auth/sasportal" - ] - }, "get": { "description": "Returns a requested customer.", "flatPath": "v1alpha1/customers/{customersId}", @@ -183,6 +167,38 @@ "https://www.googleapis.com/auth/sasportal" ] }, + "listGcpProjectDeployments": { + "description": "Returns a list of SAS deployments associated with current GCP project. Includes whether SAS analytics has been enabled or not.", + "flatPath": "v1alpha1/customers:listGcpProjectDeployments", + "httpMethod": "GET", + "id": "sasportal.customers.listGcpProjectDeployments", + "parameterOrder": [], + "parameters": {}, + "path": "v1alpha1/customers:listGcpProjectDeployments", + "response": { + "$ref": "SasPortalListGcpProjectDeploymentsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sasportal" + ] + }, + "listLegacyOrganizations": { + "description": "Returns a list of legacy organizations.", + "flatPath": "v1alpha1/customers:listLegacyOrganizations", + "httpMethod": "GET", + "id": "sasportal.customers.listLegacyOrganizations", + "parameterOrder": [], + "parameters": {}, + "path": "v1alpha1/customers:listLegacyOrganizations", + "response": { + "$ref": "SasPortalListLegacyOrganizationsResponse" + }, + "scopes": [ + "https://www.googleapis.com/auth/cloud-platform", + "https://www.googleapis.com/auth/sasportal" + ] + }, "migrateOrganization": { "description": "Migrates a SAS organization to the cloud. This will create GCP projects for each deployment and associate them. The SAS Organization is linked to the gcp project that called the command. go/sas-legacy-customer-migration", "flatPath": "v1alpha1/customers:migrateOrganization", @@ -2675,17 +2691,6 @@ }, "type": "object" }, - "SasPortalCheckHasProvisionedDeploymentResponse": { - "description": "Response for [CheckHasProvisionedDeployment]. [spectrum.sas.portal.v1alpha1.Provisioning.CheckHasProvisionedDeployment].", - "id": "SasPortalCheckHasProvisionedDeploymentResponse", - "properties": { - "hasProvisionedDeployment": { - "description": "Whether a SAS deployment for the authentication context exists.", - "type": "boolean" - } - }, - "type": "object" - }, "SasPortalCreateSignedDeviceRequest": { "description": "Request for CreateSignedDevice.", "id": "SasPortalCreateSignedDeviceRequest", @@ -2795,7 +2800,7 @@ "type": "string" }, "fccId": { - "description": "The FCC identifier of the device.", + "description": "The FCC identifier of the device. Refer to https://www.fcc.gov/oet/ea/fccid for FccID format. Accept underscores and periods because some test-SAS customers use them.", "type": "string" }, "grantRangeAllowlists": { @@ -3134,6 +3139,21 @@ }, "type": "object" }, + "SasPortalGcpProjectDeployment": { + "description": "Deployment associated with the GCP project. Includes whether SAS analytics has been enabled or not.", + "id": "SasPortalGcpProjectDeployment", + "properties": { + "deployment": { + "$ref": "SasPortalDeployment", + "description": "Deployment associated with the GCP project." + }, + "hasEnabledAnalytics": { + "description": "Whether SAS analytics has been enabled.", + "type": "boolean" + } + }, + "type": "object" + }, "SasPortalGenerateSecretRequest": { "description": "Request for GenerateSecret.", "id": "SasPortalGenerateSecretRequest", @@ -3299,6 +3319,34 @@ }, "type": "object" }, + "SasPortalListGcpProjectDeploymentsResponse": { + "description": "Response for [ListGcpProjectDeployments].", + "id": "SasPortalListGcpProjectDeploymentsResponse", + "properties": { + "deployments": { + "description": "Optional. Deployments associated with the GCP project", + "items": { + "$ref": "SasPortalGcpProjectDeployment" + }, + "type": "array" + } + }, + "type": "object" + }, + "SasPortalListLegacyOrganizationsResponse": { + "description": "Response for [ListLegacyOrganizations]. [spectrum.sas.portal.v1alpha1.Provisioning.ListLegacyOrganizations].", + "id": "SasPortalListLegacyOrganizationsResponse", + "properties": { + "organizations": { + "description": "Optional. Legacy SAS organizations.", + "items": { + "$ref": "SasPortalOrganization" + }, + "type": "array" + } + }, + "type": "object" + }, "SasPortalListNodesResponse": { "description": "Response for ListNodes.", "id": "SasPortalListNodesResponse", @@ -3498,6 +3546,22 @@ }, "type": "object" }, + "SasPortalOrganization": { + "description": "Organization details.", + "id": "SasPortalOrganization", + "properties": { + "displayName": { + "description": "Name of organization", + "type": "string" + }, + "id": { + "description": "Id of organization", + "format": "int64", + "type": "string" + } + }, + "type": "object" + }, "SasPortalPolicy": { "description": "Defines an access control policy to the resources.", "id": "SasPortalPolicy", diff --git a/discovery/googleapis_beta/sqladmin__v1beta4.json b/discovery/googleapis_beta/sqladmin__v1beta4.json index 5fcb9d350..15bf91c24 100644 --- a/discovery/googleapis_beta/sqladmin__v1beta4.json +++ b/discovery/googleapis_beta/sqladmin__v1beta4.json @@ -28,7 +28,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231108", + "revision": "20240219", "rootUrl": "https://sqladmin.googleapis.com/", "servicePath": "", "title": "Cloud SQL Admin API", @@ -3123,7 +3123,7 @@ "type": "string" }, "region": { - "description": "The geographical region. Can be: * `us-central` (`FIRST_GEN` instances only) * `us-central1` (`SECOND_GEN` instances only) * `asia-east1` or `europe-west1`. Defaults to `us-central` or `us-central1` depending on the instance type. The region cannot be changed after instance creation.", + "description": "The geographical region of the Cloud SQL instance. It can be one of the [regions](https://cloud.google.com/sql/docs/mysql/locations#location-r) where Cloud SQL operates: For example, `asia-east1`, `europe-west1`, and `us-central1`. The default value is `us-central1`.", "type": "string" }, "replicaConfiguration": { @@ -3178,8 +3178,8 @@ ], "enumDescriptions": [ "", - "Instance is a Tenancy Unit (TU) instance.", - "Instance is an Umbrella instance." + "The instance uses the new network architecture.", + "The instance uses the old network architecture." ], "type": "string" }, @@ -3522,6 +3522,10 @@ }, "type": "object" }, + "parallel": { + "description": "Optional. Whether or not the export should be parallel.", + "type": "boolean" + }, "schemaOnly": { "description": "Export only schemas.", "type": "boolean" @@ -3532,6 +3536,11 @@ "type": "string" }, "type": "array" + }, + "threads": { + "description": "Optional. The number of threads to use for parallel export.", + "format": "int32", + "type": "integer" } }, "type": "object" @@ -4181,11 +4190,11 @@ "description": "PSC settings for this instance." }, "requireSsl": { - "description": "Whether SSL/TLS connections over IP are enforced. If set to false, then allow both non-SSL/non-TLS and SSL/TLS connections. For SSL/TLS connections, the client certificate won't be verified. If set to true, then only allow connections encrypted with SSL/TLS and with valid client certificates. If you want to enforce SSL/TLS without enforcing the requirement for valid client certificates, then use the `ssl_mode` flag instead of the legacy `require_ssl` flag.", + "description": "Use `ssl_mode` instead for MySQL and PostgreSQL. SQL Server uses this flag. Whether SSL/TLS connections over IP are enforced. If set to false, then allow both non-SSL/non-TLS and SSL/TLS connections. For SSL/TLS connections, the client certificate won't be verified. If set to true, then only allow connections encrypted with SSL/TLS and with valid client certificates. If you want to enforce SSL/TLS without enforcing the requirement for valid client certificates, then use the `ssl_mode` flag instead of the legacy `require_ssl` flag.", "type": "boolean" }, "sslMode": { - "description": "Specify how SSL/TLS is enforced in database connections. This flag is supported only for PostgreSQL. Use the legacy `require_ssl` flag for enforcing SSL/TLS in MySQL and SQL Server. But, for PostgreSQL, use the `ssl_mode` flag instead of the legacy `require_ssl` flag. To avoid the conflict between those flags in PostgreSQL, only the following value pairs are valid: * `ssl_mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED` and `require_ssl=false` * `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=false` * `ssl_mode=TRUSTED_CLIENT_CERTIFICATE_REQUIRED` and `require_ssl=true` Note that the value of `ssl_mode` gets priority over the value of the legacy `require_ssl`. For example, for the pair `ssl_mode=ENCRYPTED_ONLY, require_ssl=false`, the `ssl_mode=ENCRYPTED_ONLY` means \"only accepts SSL connection\", while the `require_ssl=false` means \"both non-SSL and SSL connections are allowed\". The database respects `ssl_mode` in this case and only accepts SSL connections.", + "description": "Specify how SSL/TLS is enforced in database connections. MySQL and PostgreSQL use the `ssl_mode` flag. If you must use the `require_ssl` flag for backward compatibility, then only the following value pairs are valid: * `ssl_mode=ALLOW_UNENCRYPTED_AND_ENCRYPTED` and `require_ssl=false` * `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=false` * `ssl_mode=TRUSTED_CLIENT_CERTIFICATE_REQUIRED` and `require_ssl=true` The value of `ssl_mode` gets priority over the value of `require_ssl`. For example, for the pair `ssl_mode=ENCRYPTED_ONLY` and `require_ssl=false`, the `ssl_mode=ENCRYPTED_ONLY` means only accept SSL connections, while the `require_ssl=false` means accept both non-SSL and SSL connections. MySQL and PostgreSQL databases respect `ssl_mode` in this case and accept only SSL connections. SQL Server uses the `require_ssl` flag. You can set the value for this flag to `true` or `false`.", "enum": [ "SSL_MODE_UNSPECIFIED", "ALLOW_UNENCRYPTED_AND_ENCRYPTED", @@ -4196,7 +4205,7 @@ "The SSL mode is unknown.", "Allow non-SSL/non-TLS and SSL/TLS connections. For SSL/TLS connections, the client certificate won't be verified. When this value is used, the legacy `require_ssl` flag must be false or cleared to avoid the conflict between values of two flags.", "Only allow connections encrypted with SSL/TLS. When this value is used, the legacy `require_ssl` flag must be false or cleared to avoid the conflict between values of two flags.", - "Only allow connections encrypted with SSL/TLS and with valid client certificates. When this value is used, the legacy `require_ssl` flag must be true or cleared to avoid the conflict between values of two flags." + "Only allow connections encrypted with SSL/TLS and with valid client certificates. When this value is used, the legacy `require_ssl` flag must be true or cleared to avoid the conflict between values of two flags. PostgreSQL clients or users that connect using IAM database authentication must use either the [Cloud SQL Auth Proxy](https://cloud.google.com/sql/docs/postgres/connect-auth-proxy) or [Cloud SQL Connectors](https://cloud.google.com/sql/docs/postgres/connect-connectors) to enforce client identity verification." ], "type": "string" } @@ -4756,7 +4765,8 @@ "type": "string" }, "disallowCompromisedCredentials": { - "description": "Disallow credentials that have been previously compromised by a public data breach.", + "deprecated": true, + "description": "This field is deprecated and will be removed in a future version of the API.", "type": "boolean" }, "disallowUsernameSubstring": { @@ -5209,7 +5219,15 @@ "UNSUPPORTED_DATABASE_SETTINGS", "MYSQL_PARALLEL_IMPORT_INSUFFICIENT_PRIVILEGE", "LOCAL_INFILE_OFF", - "TURN_ON_PITR_AFTER_PROMOTE" + "TURN_ON_PITR_AFTER_PROMOTE", + "INCOMPATIBLE_DATABASE_MINOR_VERSION", + "SOURCE_MAX_SUBSCRIPTIONS", + "UNABLE_TO_VERIFY_DEFINERS", + "SUBSCRIPTION_CALCULATION_STATUS", + "PG_SUBSCRIPTION_COUNT", + "PG_SYNC_PARALLEL_LEVEL", + "INSUFFICIENT_DISK_SIZE", + "INSUFFICIENT_MACHINE_TIER" ], "enumDescriptions": [ "", @@ -5248,7 +5266,15 @@ "The source instance has unsupported database settings for migration.", "The replication user is missing parallel import specific privileges. (e.g. LOCK TABLES) for MySQL.", "The global variable local_infile is off on external server replica.", - "This code instructs customers to turn on point-in-time recovery manually for the instance after promoting the Cloud SQL for PostgreSQL instance." + "This code instructs customers to turn on point-in-time recovery manually for the instance after promoting the Cloud SQL for PostgreSQL instance.", + "The minor version of replica database is incompatible with the source.", + "This warning message indicates that Cloud SQL uses the maximum number of subscriptions to migrate data from the source to the destination.", + "Unable to verify definers on the source for MySQL.", + "If a time out occurs while the subscription counts are calculated, then this value is set to 1. Otherwise, this value is set to 2.", + "Count of subscriptions needed to sync source data for PostgreSQL database.", + "Final parallel level that is used to do migration.", + "The disk size of the replica instance is smaller than the data size of the source instance.", + "The data size of the source instance is greater than 1 TB, the number of cores of the replica instance is less than 8, and the memory of the replica is less than 32 GB." ], "type": "string" } @@ -5795,9 +5821,9 @@ "The database's built-in user type.", "Cloud IAM user.", "Cloud IAM service account.", - "Cloud IAM Group non-login user.", - "Cloud IAM Group login user.", - "Cloud IAM Group service account." + "Cloud IAM group non-login user.", + "Cloud IAM group login user.", + "Cloud IAM group service account." ], "type": "string" } diff --git a/discovery/googleapis_beta/toolresults__v1beta3.json b/discovery/googleapis_beta/toolresults__v1beta3.json index 3eb8c8b18..1524e0ace 100644 --- a/discovery/googleapis_beta/toolresults__v1beta3.json +++ b/discovery/googleapis_beta/toolresults__v1beta3.json @@ -25,7 +25,7 @@ "ownerDomain": "google.com", "ownerName": "Google", "protocol": "rest", - "revision": "20231116", + "revision": "20240227", "rootUrl": "https://toolresults.googleapis.com/", "servicePath": "", "title": "Cloud Tool Results API", @@ -2836,6 +2836,7 @@ }, "graphicsStats": { "$ref": "GraphicsStats", + "deprecated": true, "description": "Graphics statistics for the entire run. Statistics are reset at the beginning of the run and collected at the end of the run." }, "historyId": { diff --git a/generated/googleapis/CHANGELOG.md b/generated/googleapis/CHANGELOG.md index 4d68b92f4..ccfd4ead7 100644 --- a/generated/googleapis/CHANGELOG.md +++ b/generated/googleapis/CHANGELOG.md @@ -1,3 +1,11 @@ +## 13.0.0 + + - `apphub` - new! + - `bigqueryconnection` - new! + - `displayvideo` - Removed v1 (v2, v3 still exist) + - `walletobjects` - new! + - `workspaceevents` - new! + ## 12.0.0 - `alloydb` - new! diff --git a/generated/googleapis/README.md b/generated/googleapis/README.md index e3d40b6c4..37d105796 100644 --- a/generated/googleapis/README.md +++ b/generated/googleapis/README.md @@ -18,1812 +18,1831 @@ package. Views Abusive Experience Report data, and gets a list of sites that have a significant number of abusive experiences. - [Original documentation](https://developers.google.com/abusive-experience-report/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/abusiveexperiencereport/v1/abusiveexperiencereport/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/abusiveexperiencereport/v1/abusiveexperiencereport/v1-library.html) #### Accelerated Mobile Pages (AMP) URL API - `acceleratedmobilepageurl/v1` Retrieves the list of AMP URLs (and equivalent AMP Cache URLs) for a given list of public URL(s). - [Original documentation](https://developers.google.com/amp/cache/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/acceleratedmobilepageurl/v1/acceleratedmobilepageurl/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/acceleratedmobilepageurl/v1/acceleratedmobilepageurl/v1-library.html) #### Access Approval API - `accessapproval/v1` An API for controlling access to data by Google personnel. - [Original documentation](https://cloud.google.com/assured-workloads/access-approval/docs) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/accessapproval/v1/accessapproval/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/accessapproval/v1/accessapproval/v1-library.html) #### Access Context Manager API - `accesscontextmanager/v1` -An API for setting attribute based access control to requests to Google Cloud services. +An API for setting attribute based access control to requests to Google Cloud services. *Warning:* Do not mix *v1alpha* and *v1* API usage in the same access policy. The v1alpha API supports new Access Context Manager features, which may have different attributes or behaviors that are not supported by v1. The practice of mixed API usage within a policy may result in the inability to update that policy, including any access levels or service perimeters belonging to it. It is not recommended to use both v1 and v1alpha for modifying policies with critical service perimeters. Modifications using v1alpha should be limited to policies with non-production/non-critical service perimeters. - [Original documentation](https://cloud.google.com/access-context-manager/docs/reference/rest/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/accesscontextmanager/v1/accesscontextmanager/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/accesscontextmanager/v1/accesscontextmanager/v1-library.html) #### ACME DNS API - `acmedns/v1` Google Domains ACME DNS API that allows users to complete ACME DNS-01 challenges for a domain. - [Original documentation](https://developers.google.com/domains/acme-dns/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/acmedns/v1/acmedns/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/acmedns/v1/acmedns/v1-library.html) #### Ad Experience Report API - `adexperiencereport/v1` Views Ad Experience Report data, and gets a list of sites that have a significant number of annoying ads. - [Original documentation](https://developers.google.com/ad-experience-report/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/adexperiencereport/v1/adexperiencereport/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/adexperiencereport/v1/adexperiencereport/v1-library.html) #### Admin SDK API - `admin/datatransfer_v1` Admin SDK lets administrators of enterprise domains to view and manage resources like user, groups etc. It also provides audit and usage reports of domain. - [Original documentation](https://developers.google.com/admin-sdk/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/admin/datatransfer_v1/admin/datatransfer_v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/admin/datatransfer_v1/admin/datatransfer_v1-library.html) #### Admin SDK API - `admin/directory_v1` Admin SDK lets administrators of enterprise domains to view and manage resources like user, groups etc. It also provides audit and usage reports of domain. - [Original documentation](https://developers.google.com/admin-sdk/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/admin/directory_v1/admin/directory_v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/admin/directory_v1/admin/directory_v1-library.html) #### Admin SDK API - `admin/reports_v1` Admin SDK lets administrators of enterprise domains to view and manage resources like user, groups etc. It also provides audit and usage reports of domain. - [Original documentation](https://developers.google.com/admin-sdk/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/admin/reports_v1/admin/reports_v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/admin/reports_v1/admin/reports_v1-library.html) #### AdMob API - `admob/v1` The AdMob API allows publishers to programmatically get information about their AdMob account. - [Original documentation](https://developers.google.com/admob/api/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/admob/v1/admob/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/admob/v1/admob/v1-library.html) #### AdSense Management API - `adsense/v2` The AdSense Management API allows publishers to access their inventory and run earnings and performance reports. - [Original documentation](https://developers.google.com/adsense/management/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/adsense/v2/adsense/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/adsense/v2/adsense/v2-library.html) #### ![Logo](https://www.google.com/images/icons/product/adsense-16.png) AdSense Host API - `adsensehost/v4_1` Generates performance reports, generates ad codes, and provides publisher management capabilities for AdSense Hosts. - [Original documentation](https://developers.google.com/adsense/host/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/adsensehost/v4_1/adsensehost/v4_1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/adsensehost/v4_1/adsensehost/v4_1-library.html) #### Advisory Notifications API - `advisorynotifications/v1` An API for accessing Advisory Notifications in Google Cloud - [Original documentation](https://cloud.google.com/advisory-notifications) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/advisorynotifications/v1/advisorynotifications/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/advisorynotifications/v1/advisorynotifications/v1-library.html) #### Vertex AI API - `aiplatform/v1` Train high-quality custom machine learning models with minimal machine learning expertise and effort. - [Original documentation](https://cloud.google.com/vertex-ai/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/aiplatform/v1/aiplatform/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/aiplatform/v1/aiplatform/v1-library.html) #### AlloyDB API - `alloydb/v1` AlloyDB for PostgreSQL is an open source-compatible database service that provides a powerful option for migrating, modernizing, or building commercial-grade applications. It offers full compatibility with standard PostgreSQL, and is more than 4x faster for transactional workloads and up to 100x faster for analytical queries than standard PostgreSQL in our performance tests. AlloyDB for PostgreSQL offers a 99.99 percent availability SLA inclusive of maintenance. AlloyDB is optimized for the most demanding use cases, allowing you to build new applications that require high transaction throughput, large database sizes, or multiple read resources; scale existing PostgreSQL workloads with no application changes; and modernize legacy proprietary databases. - [Original documentation](https://cloud.google.com/alloydb/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/alloydb/v1/alloydb/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/alloydb/v1/alloydb/v1-library.html) #### ![Logo](https://www.google.com/images/icons/product/analytics-16.png) Google Analytics API - `analytics/v3` Views and manages your Google Analytics data. - [Original documentation](https://developers.google.com/analytics/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/analytics/v3/analytics/v3-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/analytics/v3/analytics/v3-library.html) #### Analytics Hub API - `analyticshub/v1` Exchange data and analytics assets securely and efficiently. - [Original documentation](https://cloud.google.com/bigquery/docs/analytics-hub-introduction) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/analyticshub/v1/analyticshub/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/analyticshub/v1/analyticshub/v1-library.html) #### Analytics Reporting API - `analyticsreporting/v4` Accesses Analytics report data. - [Original documentation](https://developers.google.com/analytics/devguides/reporting/core/v4/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/analyticsreporting/v4/analyticsreporting/v4-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/analyticsreporting/v4/analyticsreporting/v4-library.html) #### Android Device Provisioning Partner API - `androiddeviceprovisioning/v1` Automates Android zero-touch enrollment for device resellers, customers, and EMMs. - [Original documentation](https://developers.google.com/zero-touch/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/androiddeviceprovisioning/v1/androiddeviceprovisioning/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/androiddeviceprovisioning/v1/androiddeviceprovisioning/v1-library.html) #### Google Play EMM API - `androidenterprise/v1` Manages the deployment of apps to Android Enterprise devices. - [Original documentation](https://developers.google.com/android/work/play/emm-api) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/androidenterprise/v1/androidenterprise/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/androidenterprise/v1/androidenterprise/v1-library.html) #### Android Management API - `androidmanagement/v1` The Android Management API provides remote enterprise management of Android devices and apps. - [Original documentation](https://developers.google.com/android/management) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/androidmanagement/v1/androidmanagement/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/androidmanagement/v1/androidmanagement/v1-library.html) #### Google Play Android Developer API - `androidpublisher/v3` Lets Android application developers access their Google Play accounts. At a high level, the expected workflow is to "insert" an Edit, make changes as necessary, and then "commit" it. - [Original documentation](https://developers.google.com/android-publisher) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/androidpublisher/v3/androidpublisher/v3-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/androidpublisher/v3/androidpublisher/v3-library.html) #### API Gateway API - `apigateway/v1` - [Original documentation](https://cloud.google.com/api-gateway/docs) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/apigateway/v1/apigateway/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/apigateway/v1/apigateway/v1-library.html) #### Apigee API - `apigee/v1` Use the Apigee API to programmatically develop and manage APIs with a set of RESTful operations. Develop and secure API proxies, deploy and undeploy API proxy revisions, monitor APIs, configure environments, manage users, and more. Note: This product is available as a free trial for a time period of 60 days. - [Original documentation](https://cloud.google.com/apigee-api-management/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/apigee/v1/apigee/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/apigee/v1/apigee/v1-library.html) #### Apigee Registry API - `apigeeregistry/v1` - [Original documentation](https://cloud.google.com/apigee/docs/api-hub/what-is-api-hub) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/apigeeregistry/v1/apigeeregistry/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/apigeeregistry/v1/apigeeregistry/v1-library.html) #### API Keys API - `apikeys/v2` Manages the API keys associated with developer projects. - [Original documentation](https://cloud.google.com/api-keys/docs) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/apikeys/v2/apikeys/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/apikeys/v2/apikeys/v2-library.html) #### App Engine Admin API - `appengine/v1` Provisions and manages developers' App Engine applications. - [Original documentation](https://cloud.google.com/appengine/docs/admin-api/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/appengine/v1/appengine/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/appengine/v1/appengine/v1-library.html) + +#### App Hub API - `apphub/v1` + +- [Original documentation](https://cloud.google.com/app-hub/docs/) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/apphub/v1/apphub/v1-library.html) #### Artifact Registry API - `artifactregistry/v1` Store and manage build artifacts in a scalable and integrated service built on Google infrastructure. - [Original documentation](https://cloud.google.com/artifacts/docs/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/artifactregistry/v1/artifactregistry/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/artifactregistry/v1/artifactregistry/v1-library.html) #### Assured Workloads API - `assuredworkloads/v1` - [Original documentation](https://cloud.google.com/learnmoreurl) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/assuredworkloads/v1/assuredworkloads/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/assuredworkloads/v1/assuredworkloads/v1-library.html) #### Authorized Buyers Marketplace API - `authorizedbuyersmarketplace/v1` The Authorized Buyers Marketplace API lets buyers programmatically discover inventory; propose, retrieve and negotiate deals with publishers. - [Original documentation](https://developers.google.com/authorized-buyers/apis/marketplace/reference/rest/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/authorizedbuyersmarketplace/v1/authorizedbuyersmarketplace/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/authorizedbuyersmarketplace/v1/authorizedbuyersmarketplace/v1-library.html) #### Backup and DR Service API - `backupdr/v1` - [Original documentation](https://cloud.google.com/backup-disaster-recovery) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/backupdr/v1/backupdr/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/backupdr/v1/backupdr/v1-library.html) #### Bare Metal Solution API - `baremetalsolution/v2` Provides ways to manage Bare Metal Solution hardware installed in a regional extension located near a Google Cloud data center. - [Original documentation](https://cloud.google.com/bare-metal) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/baremetalsolution/v2/baremetalsolution/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/baremetalsolution/v2/baremetalsolution/v2-library.html) #### Batch API - `batch/v1` -An API to manage the running of batch jobs on Google Cloud Platform. +An API to manage the running of batch resources on Google Cloud Platform. - [Original documentation](https://cloud.google.com/batch/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/batch/v1/batch/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/batch/v1/batch/v1-library.html) #### BeyondCorp API - `beyondcorp/v1` Beyondcorp Enterprise provides identity and context aware access controls for enterprise resources and enables zero-trust access. Using the Beyondcorp Enterprise APIs, enterprises can set up multi-cloud and on-prem connectivity solutions. - [Original documentation](https://cloud.google.com/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/beyondcorp/v1/beyondcorp/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/beyondcorp/v1/beyondcorp/v1-library.html) #### BigLake API - `biglake/v1` The BigLake API provides access to BigLake Metastore, a serverless, fully managed, and highly available metastore for open-source data that can be used for querying Apache Iceberg tables in BigQuery. - [Original documentation](https://cloud.google.com/bigquery/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/biglake/v1/biglake/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/biglake/v1/biglake/v1-library.html) -#### ![Logo](https://www.google.com/images/icons/product/search-16.gif) BigQuery API - `bigquery/v2` +#### BigQuery API - `bigquery/v2` A data platform for customers to create, manage, share and query data. - [Original documentation](https://cloud.google.com/bigquery/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/bigquery/v2/bigquery/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/bigquery/v2/bigquery/v2-library.html) + +#### BigQuery Connection API - `bigqueryconnection/v1` + +Allows users to manage BigQuery connections to external data sources. + +- [Original documentation](https://cloud.google.com/bigquery/docs/connections-api-intro) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/bigqueryconnection/v1/bigqueryconnection/v1-library.html) #### BigQuery Data Policy API - `bigquerydatapolicy/v1` Allows users to manage BigQuery data policies. - [Original documentation](https://cloud.google.com/bigquery/docs/column-data-masking) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/bigquerydatapolicy/v1/bigquerydatapolicy/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/bigquerydatapolicy/v1/bigquerydatapolicy/v1-library.html) #### BigQuery Data Transfer API - `bigquerydatatransfer/v1` Schedule queries or transfer external data from SaaS applications to Google BigQuery on a regular basis. - [Original documentation](https://cloud.google.com/bigquery-transfer/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/bigquerydatatransfer/v1/bigquerydatatransfer/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/bigquerydatatransfer/v1/bigquerydatatransfer/v1-library.html) #### BigQuery Reservation API - `bigqueryreservation/v1` A service to modify your BigQuery flat-rate reservations. - [Original documentation](https://cloud.google.com/bigquery/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/bigqueryreservation/v1/bigqueryreservation/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/bigqueryreservation/v1/bigqueryreservation/v1-library.html) #### Cloud Bigtable Admin API - `bigtableadmin/v2` Administer your Cloud Bigtable tables and instances. - [Original documentation](https://cloud.google.com/bigtable/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/bigtableadmin/v2/bigtableadmin/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/bigtableadmin/v2/bigtableadmin/v2-library.html) #### Cloud Billing Budget API - `billingbudgets/v1` The Cloud Billing Budget API stores Cloud Billing budgets, which define a budget plan and the rules to execute as spend is tracked against that plan. - [Original documentation](https://cloud.google.com/billing/docs/how-to/budget-api-overview) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/billingbudgets/v1/billingbudgets/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/billingbudgets/v1/billingbudgets/v1-library.html) #### Binary Authorization API - `binaryauthorization/v1` The management interface for Binary Authorization, a service that provides policy-based deployment validation and control for images deployed to Google Kubernetes Engine (GKE), Anthos Service Mesh, Anthos Clusters, and Cloud Run. - [Original documentation](https://cloud.google.com/binary-authorization/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/binaryauthorization/v1/binaryauthorization/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/binaryauthorization/v1/binaryauthorization/v1-library.html) #### Blockchain Node Engine API - `blockchainnodeengine/v1` - [Original documentation](https://cloud.google.com/blockchain-node-engine) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/blockchainnodeengine/v1/blockchainnodeengine/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/blockchainnodeengine/v1/blockchainnodeengine/v1-library.html) #### Blogger API - `blogger/v3` The Blogger API provides access to posts, comments and pages of a Blogger blog. - [Original documentation](https://developers.google.com/blogger/docs/3.0/getting_started) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/blogger/v3/blogger/v3-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/blogger/v3/blogger/v3-library.html) #### Books API - `books/v1` The Google Books API allows clients to access the Google Books repository. - [Original documentation](https://code.google.com/apis/books/docs/v1/getting_started.html) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/books/v1/books/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/books/v1/books/v1-library.html) #### Business Profile Performance API - `businessprofileperformance/v1` The Business Profile Performance API allows merchants to fetch performance reports about their business profile on Google. Note - If you have a quota of 0 after enabling the API, please request for GBP API access. - [Original documentation](https://developers.google.com/my-business/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/businessprofileperformance/v1/businessprofileperformance/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/businessprofileperformance/v1/businessprofileperformance/v1-library.html) #### Calendar API - `calendar/v3` Manipulates events and other calendar data. - [Original documentation](https://developers.google.com/google-apps/calendar/firstapp) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/calendar/v3/calendar/v3-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/calendar/v3/calendar/v3-library.html) #### Certificate Manager API - `certificatemanager/v1` - [Original documentation](https://cloud.google.com/certificate-manager) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/certificatemanager/v1/certificatemanager/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/certificatemanager/v1/certificatemanager/v1-library.html) #### Google Chat API - `chat/v1` -Enables apps to fetch information and perform actions in Google Chat. Authentication is a prerequisite for using the Google Chat REST API. +The Google Chat API lets you build Chat apps to integrate your services with Google Chat and manage Chat resources such as spaces, members, and messages. - [Original documentation](https://developers.google.com/hangouts/chat) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/chat/v1/chat/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/chat/v1/chat/v1-library.html) #### Chrome Management API - `chromemanagement/v1` The Chrome Management API is a suite of services that allows Chrome administrators to view, manage and gain insights on their Chrome OS and Chrome Browser devices. - [Original documentation](https://developers.google.com/chrome/management/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/chromemanagement/v1/chromemanagement/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/chromemanagement/v1/chromemanagement/v1-library.html) #### Chrome Policy API - `chromepolicy/v1` The Chrome Policy API is a suite of services that allows Chrome administrators to control the policies applied to their managed Chrome OS devices and Chrome browsers. - [Original documentation](https://developers.google.com/chrome/policy) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/chromepolicy/v1/chromepolicy/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/chromepolicy/v1/chromepolicy/v1-library.html) #### Chrome UX Report API - `chromeuxreport/v1` The Chrome UX Report API lets you view real user experience data for millions of websites. - [Original documentation](https://developers.google.com/web/tools/chrome-user-experience-report/api/reference) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/chromeuxreport/v1/chromeuxreport/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/chromeuxreport/v1/chromeuxreport/v1-library.html) #### Google Civic Information API - `civicinfo/v2` Provides polling places, early vote locations, contest data, election officials, and government representatives for U.S. residential addresses. - [Original documentation](https://developers.google.com/civic-information/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/civicinfo/v2/civicinfo/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/civicinfo/v2/civicinfo/v2-library.html) #### Google Classroom API - `classroom/v1` Manages classes, rosters, and invitations in Google Classroom. - [Original documentation](https://developers.google.com/classroom/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/classroom/v1/classroom/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/classroom/v1/classroom/v1-library.html) #### Cloud Asset API - `cloudasset/v1` The Cloud Asset API manages the history and inventory of Google Cloud resources. - [Original documentation](https://cloud.google.com/asset-inventory/docs/quickstart) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/cloudasset/v1/cloudasset/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/cloudasset/v1/cloudasset/v1-library.html) #### Cloud Billing API - `cloudbilling/v1` Allows developers to manage billing for their Google Cloud Platform projects programmatically. - [Original documentation](https://cloud.google.com/billing/docs/apis) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/cloudbilling/v1/cloudbilling/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/cloudbilling/v1/cloudbilling/v1-library.html) #### Cloud Build API - `cloudbuild/v1` Creates and manages builds on Google Cloud Platform. - [Original documentation](https://cloud.google.com/cloud-build/docs/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/cloudbuild/v1/cloudbuild/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/cloudbuild/v1/cloudbuild/v1-library.html) #### Cloud Build API - `cloudbuild/v2` Creates and manages builds on Google Cloud Platform. - [Original documentation](https://cloud.google.com/cloud-build/docs/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/cloudbuild/v2/cloudbuild/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/cloudbuild/v2/cloudbuild/v2-library.html) #### Cloud Channel API - `cloudchannel/v1` The Cloud Channel API enables Google Cloud partners to have a single unified resale platform and APIs across all of Google Cloud including GCP, Workspace, Maps and Chrome. - [Original documentation](https://cloud.google.com/channel) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/cloudchannel/v1/cloudchannel/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/cloudchannel/v1/cloudchannel/v1-library.html) #### Cloud Deploy API - `clouddeploy/v1` - [Original documentation](https://cloud.google.com/deploy/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/clouddeploy/v1/clouddeploy/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/clouddeploy/v1/clouddeploy/v1-library.html) #### Cloud Functions API - `cloudfunctions/v1` Manages lightweight user-provided functions executed in response to events. - [Original documentation](https://cloud.google.com/functions) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/cloudfunctions/v1/cloudfunctions/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/cloudfunctions/v1/cloudfunctions/v1-library.html) #### Cloud Functions API - `cloudfunctions/v2` Manages lightweight user-provided functions executed in response to events. - [Original documentation](https://cloud.google.com/functions) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/cloudfunctions/v2/cloudfunctions/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/cloudfunctions/v2/cloudfunctions/v2-library.html) #### Cloud Identity API - `cloudidentity/v1` API for provisioning and managing identity resources. - [Original documentation](https://cloud.google.com/identity/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/cloudidentity/v1/cloudidentity/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/cloudidentity/v1/cloudidentity/v1-library.html) #### Cloud Key Management Service (KMS) API - `cloudkms/v1` Manages keys and performs cryptographic operations in a central cloud service, for direct use by other cloud resources and applications. - [Original documentation](https://cloud.google.com/kms/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/cloudkms/v1/cloudkms/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/cloudkms/v1/cloudkms/v1-library.html) #### Cloud Profiler API - `cloudprofiler/v2` Manages continuous profiling information. - [Original documentation](https://cloud.google.com/profiler/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/cloudprofiler/v2/cloudprofiler/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/cloudprofiler/v2/cloudprofiler/v2-library.html) #### Cloud Resource Manager API - `cloudresourcemanager/v1` Creates, reads, and updates metadata for Google Cloud Platform resource containers. - [Original documentation](https://cloud.google.com/resource-manager) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/cloudresourcemanager/v1/cloudresourcemanager/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/cloudresourcemanager/v1/cloudresourcemanager/v1-library.html) #### Cloud Resource Manager API - `cloudresourcemanager/v2` Creates, reads, and updates metadata for Google Cloud Platform resource containers. - [Original documentation](https://cloud.google.com/resource-manager) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/cloudresourcemanager/v2/cloudresourcemanager/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/cloudresourcemanager/v2/cloudresourcemanager/v2-library.html) #### Cloud Resource Manager API - `cloudresourcemanager/v3` Creates, reads, and updates metadata for Google Cloud Platform resource containers. - [Original documentation](https://cloud.google.com/resource-manager) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/cloudresourcemanager/v3/cloudresourcemanager/v3-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/cloudresourcemanager/v3/cloudresourcemanager/v3-library.html) #### Cloud Scheduler API - `cloudscheduler/v1` Creates and manages jobs run on a regular recurring schedule. - [Original documentation](https://cloud.google.com/scheduler/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/cloudscheduler/v1/cloudscheduler/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/cloudscheduler/v1/cloudscheduler/v1-library.html) #### Cloud Search API - `cloudsearch/v1` Cloud Search provides cloud-based search capabilities over Google Workspace data. The Cloud Search API allows indexing of non-Google Workspace data into Cloud Search. - [Original documentation](https://developers.google.com/cloud-search/docs/guides/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/cloudsearch/v1/cloudsearch/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/cloudsearch/v1/cloudsearch/v1-library.html) #### Cloud Shell API - `cloudshell/v1` Allows users to start, configure, and connect to interactive shell sessions running in the cloud. - [Original documentation](https://cloud.google.com/shell/docs/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/cloudshell/v1/cloudshell/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/cloudshell/v1/cloudshell/v1-library.html) #### Google Cloud Support API - `cloudsupport/v2` Manages Google Cloud technical support cases for Customer Care support offerings. - [Original documentation](https://cloud.google.com/support/docs/apis) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/cloudsupport/v2/cloudsupport/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/cloudsupport/v2/cloudsupport/v2-library.html) #### Cloud Tasks API - `cloudtasks/v2` Manages the execution of large numbers of distributed requests. - [Original documentation](https://cloud.google.com/tasks/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/cloudtasks/v2/cloudtasks/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/cloudtasks/v2/cloudtasks/v2-library.html) #### Cloud Trace API - `cloudtrace/v2` Sends application trace data to Cloud Trace for viewing. Trace data is collected for all App Engine applications by default. Trace data from other applications can be provided using this API. This library is used to interact with the Cloud Trace API directly. If you are looking to instrument your application for Cloud Trace, we recommend using OpenTelemetry. - [Original documentation](https://cloud.google.com/trace) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/cloudtrace/v2/cloudtrace/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/cloudtrace/v2/cloudtrace/v2-library.html) #### Cloud Composer API - `composer/v1` Manages Apache Airflow environments on Google Cloud Platform. - [Original documentation](https://cloud.google.com/composer/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/composer/v1/composer/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/composer/v1/composer/v1-library.html) #### ![Logo](https://www.google.com/images/icons/product/compute_engine-16.png) Compute Engine API - `compute/v1` Creates and runs virtual machines on Google Cloud Platform. - [Original documentation](https://cloud.google.com/compute/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/compute/v1/compute/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/compute/v1/compute/v1-library.html) #### Connectors API - `connectors/v1` Enables users to create and manage connections to Google Cloud services and third-party business applications using the Connectors interface. - [Original documentation](https://cloud.google.com/apigee/docs/api-platform/connectors/about-connectors) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/connectors/v1/connectors/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/connectors/v1/connectors/v1-library.html) #### Connectors API - `connectors/v2` Enables users to create and manage connections to Google Cloud services and third-party business applications using the Connectors interface. - [Original documentation](https://cloud.google.com/apigee/docs/api-platform/connectors/about-connectors) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/connectors/v2/connectors/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/connectors/v2/connectors/v2-library.html) #### Contact Center AI Insights API - `contactcenterinsights/v1` - [Original documentation](https://cloud.google.com/contact-center/insights/docs) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/contactcenterinsights/v1/contactcenterinsights/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/contactcenterinsights/v1/contactcenterinsights/v1-library.html) #### Kubernetes Engine API - `container/v1` Builds and manages container-based applications, powered by the open source Kubernetes technology. - [Original documentation](https://cloud.google.com/container-engine/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/container/v1/container/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/container/v1/container/v1-library.html) #### Container Analysis API - `containeranalysis/v1` This API is a prerequisite for leveraging Artifact Analysis scanning capabilities in both Artifact Registry and with Advanced Vulnerability Insights (runtime scanning) in GKE. In addition, the Container Analysis API is an implementation of the Grafeas API, which enables storing, querying, and retrieval of critical metadata about all of your software artifacts. - [Original documentation](https://cloud.google.com/container-analysis/api/reference/rest/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/containeranalysis/v1/containeranalysis/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/containeranalysis/v1/containeranalysis/v1-library.html) #### Content API for Shopping - `content/v2_1` Manage your product listings and accounts for Google Shopping - [Original documentation](https://developers.google.com/shopping-content/v2/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/content/v2_1/content/v2_1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/content/v2_1/content/v2_1-library.html) #### Document AI Warehouse API - `contentwarehouse/v1` - [Original documentation](https://cloud.google.com/document-warehouse) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/contentwarehouse/v1/contentwarehouse/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/contentwarehouse/v1/contentwarehouse/v1-library.html) #### Custom Search API - `customsearch/v1` Searches over a website or collection of websites - [Original documentation](https://developers.google.com/custom-search/v1/introduction) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/customsearch/v1/customsearch/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/customsearch/v1/customsearch/v1-library.html) #### Google Cloud Data Catalog API - `datacatalog/v1` A fully managed and highly scalable data discovery and metadata management service. - [Original documentation](https://cloud.google.com/data-catalog/docs/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/datacatalog/v1/datacatalog/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/datacatalog/v1/datacatalog/v1-library.html) #### Cloud Data Fusion API - `datafusion/v1` Cloud Data Fusion is a fully-managed, cloud native, enterprise data integration service for quickly building and managing data pipelines. It provides a graphical interface to increase time efficiency and reduce complexity, and allows business users, developers, and data scientists to easily and reliably build scalable data integration solutions to cleanse, prepare, blend, transfer and transform data without having to wrestle with infrastructure. - [Original documentation](https://cloud.google.com/data-fusion/docs) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/datafusion/v1/datafusion/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/datafusion/v1/datafusion/v1-library.html) #### Data Lineage API - `datalineage/v1` - [Original documentation](https://cloud.google.com/data-catalog) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/datalineage/v1/datalineage/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/datalineage/v1/datalineage/v1-library.html) #### Database Migration API - `datamigration/v1` Manage Cloud Database Migration Service resources on Google Cloud Platform. - [Original documentation](https://cloud.google.com/database-migration/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/datamigration/v1/datamigration/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/datamigration/v1/datamigration/v1-library.html) #### Data pipelines API - `datapipelines/v1` Data Pipelines provides an interface for creating, updating, and managing recurring Data Analytics jobs. - [Original documentation](https://cloud.google.com/dataflow/docs/guides/data-pipelines) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/datapipelines/v1/datapipelines/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/datapipelines/v1/datapipelines/v1-library.html) #### Cloud Dataplex API - `dataplex/v1` Dataplex API is used to manage the lifecycle of data lakes. - [Original documentation](https://cloud.google.com/dataplex/docs) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/dataplex/v1/dataplex/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/dataplex/v1/dataplex/v1-library.html) #### Cloud Dataproc API - `dataproc/v1` Manages Hadoop-based clusters and jobs on Google Cloud Platform. - [Original documentation](https://cloud.google.com/dataproc/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/dataproc/v1/dataproc/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/dataproc/v1/dataproc/v1-library.html) #### Cloud Datastore API - `datastore/v1` Accesses the schemaless NoSQL database to provide fully managed, robust, scalable storage for your application. - [Original documentation](https://cloud.google.com/datastore/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/datastore/v1/datastore/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/datastore/v1/datastore/v1-library.html) #### Datastream API - `datastream/v1` - [Original documentation](https://cloud.google.com/datastream/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/datastream/v1/datastream/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/datastream/v1/datastream/v1-library.html) #### Cloud Deployment Manager V2 API - `deploymentmanager/v2` The Google Cloud Deployment Manager v2 API provides services for configuring, deploying, and viewing Google Cloud services and APIs via templates which specify deployments of Cloud resources. - [Original documentation](https://cloud.google.com/deployment-manager) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/deploymentmanager/v2/deploymentmanager/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/deploymentmanager/v2/deploymentmanager/v2-library.html) #### Campaign Manager 360 API - `dfareporting/v3_5` Build applications to efficiently manage large or complex trafficking, reporting, and attribution workflows for Campaign Manager 360. - [Original documentation](https://developers.google.com/doubleclick-advertisers/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/dfareporting/v3_5/dfareporting/v3_5-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/dfareporting/v3_5/dfareporting/v3_5-library.html) #### Campaign Manager 360 API - `dfareporting/v4` Build applications to efficiently manage large or complex trafficking, reporting, and attribution workflows for Campaign Manager 360. - [Original documentation](https://developers.google.com/doubleclick-advertisers/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/dfareporting/v4/dfareporting/v4-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/dfareporting/v4/dfareporting/v4-library.html) #### Dialogflow API - `dialogflow/v2` Builds conversational interfaces (for example, chatbots, and voice-powered apps and devices). - [Original documentation](https://cloud.google.com/dialogflow/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/dialogflow/v2/dialogflow/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/dialogflow/v2/dialogflow/v2-library.html) #### Dialogflow API - `dialogflow/v3` Builds conversational interfaces (for example, chatbots, and voice-powered apps and devices). - [Original documentation](https://cloud.google.com/dialogflow/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/dialogflow/v3/dialogflow/v3-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/dialogflow/v3/dialogflow/v3-library.html) #### Digital Asset Links API - `digitalassetlinks/v1` Discovers relationships between online assets such as websites or mobile apps. - [Original documentation](https://developers.google.com/digital-asset-links/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/digitalassetlinks/v1/digitalassetlinks/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/digitalassetlinks/v1/digitalassetlinks/v1-library.html) #### API Discovery Service - `discovery/v1` Provides information about other Google APIs, such as what APIs are available, the resource, and method details for each API. - [Original documentation](https://developers.google.com/discovery/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/discovery/v1/discovery/v1-library.html) - -#### Display & Video 360 API - `displayvideo/v1` - -Display & Video 360 API allows users to automate complex Display & Video 360 workflows, such as creating insertion orders and setting targeting options for individual line items. - -- [Original documentation](https://developers.google.com/display-video/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/displayvideo/v1/displayvideo/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/discovery/v1/discovery/v1-library.html) #### Display & Video 360 API - `displayvideo/v2` Display & Video 360 API allows users to automate complex Display & Video 360 workflows, such as creating insertion orders and setting targeting options for individual line items. - [Original documentation](https://developers.google.com/display-video/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/displayvideo/v2/displayvideo/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/displayvideo/v2/displayvideo/v2-library.html) #### Display & Video 360 API - `displayvideo/v3` Display & Video 360 API allows users to automate complex Display & Video 360 workflows, such as creating insertion orders and setting targeting options for individual line items. - [Original documentation](https://developers.google.com/display-video/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/displayvideo/v3/displayvideo/v3-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/displayvideo/v3/displayvideo/v3-library.html) -#### Cloud Data Loss Prevention (DLP) - `dlp/v2` +#### Sensitive Data Protection (DLP) - `dlp/v2` -Provides methods for detection, risk analysis, and de-identification of privacy-sensitive fragments in text, images, and Google Cloud Platform storage repositories. +Discover and protect your sensitive data. A fully managed service designed to help you discover, classify, and protect your valuable data assets with ease. - [Original documentation](https://cloud.google.com/dlp/docs/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/dlp/v2/dlp/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/dlp/v2/dlp/v2-library.html) #### Cloud DNS API - `dns/v1` - [Original documentation](https://cloud.google.com/dns/docs) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/dns/v1/dns/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/dns/v1/dns/v1-library.html) #### Google Docs API - `docs/v1` Reads and writes Google Docs documents. - [Original documentation](https://developers.google.com/docs/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/docs/v1/docs/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/docs/v1/docs/v1-library.html) #### Cloud Document AI API - `documentai/v1` Service to parse structured information from unstructured or semi-structured documents using state-of-the-art Google AI such as natural language, computer vision, translation, and AutoML. - [Original documentation](https://cloud.google.com/document-ai/docs/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/documentai/v1/documentai/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/documentai/v1/documentai/v1-library.html) #### Cloud Domains API - `domains/v1` Enables management and configuration of domain names. - [Original documentation](https://cloud.google.com/domains/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/domains/v1/domains/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/domains/v1/domains/v1-library.html) #### Domains RDAP API - `domainsrdap/v1` Read-only public API that lets users search for information about domain names. - [Original documentation](https://developers.google.com/domains/rdap/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/domainsrdap/v1/domainsrdap/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/domainsrdap/v1/domainsrdap/v1-library.html) #### DoubleClick Bid Manager API - `doubleclickbidmanager/v2` DoubleClick Bid Manager API allows users to manage and create campaigns and reports. - [Original documentation](https://developers.google.com/bid-manager/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/doubleclickbidmanager/v2/doubleclickbidmanager/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/doubleclickbidmanager/v2/doubleclickbidmanager/v2-library.html) #### Search Ads 360 API - `doubleclicksearch/v2` The Search Ads 360 API allows developers to automate uploading conversions and downloading reports from Search Ads 360. - [Original documentation](https://developers.google.com/search-ads) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/doubleclicksearch/v2/doubleclicksearch/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/doubleclicksearch/v2/doubleclicksearch/v2-library.html) #### Google Drive API - `drive/v2` The Google Drive API allows clients to access resources from Google Drive. - [Original documentation](https://developers.google.com/drive/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/drive/v2/drive/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/drive/v2/drive/v2-library.html) #### Google Drive API - `drive/v3` The Google Drive API allows clients to access resources from Google Drive. - [Original documentation](https://developers.google.com/drive/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/drive/v3/drive/v3-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/drive/v3/drive/v3-library.html) #### Drive Activity API - `driveactivity/v2` Provides a historical view of activity in Google Drive. - [Original documentation](https://developers.google.com/drive/activity/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/driveactivity/v2/driveactivity/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/driveactivity/v2/driveactivity/v2-library.html) #### Drive Labels API - `drivelabels/v2` An API for managing Drive Labels - [Original documentation](https://developers.google.com/drive/labels) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/drivelabels/v2/drivelabels/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/drivelabels/v2/drivelabels/v2-library.html) #### Essential Contacts API - `essentialcontacts/v1` - [Original documentation](https://cloud.google.com/essentialcontacts/docs/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/essentialcontacts/v1/essentialcontacts/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/essentialcontacts/v1/essentialcontacts/v1-library.html) #### Eventarc API - `eventarc/v1` Build event-driven applications on Google Cloud Platform. - [Original documentation](https://cloud.google.com/eventarc) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/eventarc/v1/eventarc/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/eventarc/v1/eventarc/v1-library.html) #### Firebase Cloud Messaging API - `fcm/v1` FCM send API that provides a cross-platform messaging solution to reliably deliver messages at no cost. - [Original documentation](https://firebase.google.com/docs/cloud-messaging) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/fcm/v1/fcm/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/fcm/v1/fcm/v1-library.html) #### Cloud Filestore API - `file/v1` The Cloud Filestore API is used for creating and managing cloud file servers. - [Original documentation](https://cloud.google.com/filestore/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/file/v1/file/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/file/v1/file/v1-library.html) #### Firebase App Check API - `firebaseappcheck/v1` Firebase App Check works alongside other Firebase services to help protect your backend resources from abuse, such as billing fraud or phishing. - [Original documentation](https://firebase.google.com/docs/app-check) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/firebaseappcheck/v1/firebaseappcheck/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/firebaseappcheck/v1/firebaseappcheck/v1-library.html) #### Firebase App Distribution API - `firebaseappdistribution/v1` - [Original documentation](https://firebase.google.com/products/app-distribution) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/firebaseappdistribution/v1/firebaseappdistribution/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/firebaseappdistribution/v1/firebaseappdistribution/v1-library.html) #### Firebase Dynamic Links API - `firebasedynamiclinks/v1` Programmatically creates and manages Firebase Dynamic Links. - [Original documentation](https://firebase.google.com/docs/dynamic-links/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/firebasedynamiclinks/v1/firebasedynamiclinks/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/firebasedynamiclinks/v1/firebasedynamiclinks/v1-library.html) #### Firebase Hosting API - `firebasehosting/v1` The Firebase Hosting REST API enables programmatic and customizable management and deployments to your Firebase-hosted sites. Use this REST API to create and manage channels and sites as well as to deploy new or updated hosting configurations and content files. - [Original documentation](https://firebase.google.com/docs/hosting/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/firebasehosting/v1/firebasehosting/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/firebasehosting/v1/firebasehosting/v1-library.html) #### Firebase ML API - `firebaseml/v1` Access custom machine learning models hosted via Firebase ML. - [Original documentation](https://firebase.google.com) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/firebaseml/v1/firebaseml/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/firebaseml/v1/firebaseml/v1-library.html) #### Firebase Remote Config API - `firebaseremoteconfig/v1` The Firebase Remote Config API lets developers change the behavior and appearance of their apps without requiring users to download an app update. It is an alternative to, but can be used in tandem with, the Firebase console at https://console.firebase.google.com. - [Original documentation](https://firebase.google.com/docs/remote-config/use-config-rest) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/firebaseremoteconfig/v1/firebaseremoteconfig/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/firebaseremoteconfig/v1/firebaseremoteconfig/v1-library.html) #### Firebase Rules API - `firebaserules/v1` Creates and manages rules that determine when a Firebase Rules-enabled service should permit a request. - [Original documentation](https://firebase.google.com/docs/storage/security) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/firebaserules/v1/firebaserules/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/firebaserules/v1/firebaserules/v1-library.html) #### Cloud Firestore API - `firestore/v1` Accesses the NoSQL document database built for automatic scaling, high performance, and ease of application development. - [Original documentation](https://cloud.google.com/firestore) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/firestore/v1/firestore/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/firestore/v1/firestore/v1-library.html) #### Fitness API - `fitness/v1` The Fitness API for managing users' fitness tracking data. - [Original documentation](https://developers.google.com/fit/rest/v1/get-started) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/fitness/v1/fitness/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/fitness/v1/fitness/v1-library.html) #### Google Forms API - `forms/v1` Reads and writes Google Forms and responses. - [Original documentation](https://developers.google.com/forms/api) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/forms/v1/forms/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/forms/v1/forms/v1-library.html) #### Google Play Game Services - `games/v1` The Google Play games service allows developers to enhance games with social leaderboards, achievements, game state, sign-in with Google, and more. - [Original documentation](https://developers.google.com/games/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/games/v1/games/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/games/v1/games/v1-library.html) #### Google Play Game Services Publishing API - `gamesConfiguration/v1configuration` The Google Play Game Services Publishing API allows developers to configure their games in Game Services. - [Original documentation](https://developers.google.com/games/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/gamesConfiguration/v1configuration/gamesConfiguration/v1configuration-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/gamesConfiguration/v1configuration/gamesConfiguration/v1configuration-library.html) #### Google Play Game Management - `gamesManagement/v1management` The Google Play Game Management API allows developers to manage resources from the Google Play Game service. - [Original documentation](https://developers.google.com/games/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/gamesManagement/v1management/gamesManagement/v1management-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/gamesManagement/v1management/gamesManagement/v1management-library.html) #### Backup for GKE API - `gkebackup/v1` Backup for GKE is a managed Kubernetes workload backup and restore service for GKE clusters. - [Original documentation](https://cloud.google.com/kubernetes-engine/docs/add-on/backup-for-gke) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/gkebackup/v1/gkebackup/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/gkebackup/v1/gkebackup/v1-library.html) #### GKE Hub API - `gkehub/v1` - [Original documentation](https://cloud.google.com/anthos/multicluster-management/connect/registering-a-cluster) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/gkehub/v1/gkehub/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/gkehub/v1/gkehub/v1-library.html) #### Anthos On-Prem API - `gkeonprem/v1` - [Original documentation](https://cloud.google.com/anthos/clusters/docs/on-prem/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/gkeonprem/v1/gkeonprem/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/gkeonprem/v1/gkeonprem/v1-library.html) #### Gmail API - `gmail/v1` The Gmail API lets you view and manage Gmail mailbox data like threads, messages, and labels. - [Original documentation](https://developers.google.com/gmail/api/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/gmail/v1/gmail/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/gmail/v1/gmail/v1-library.html) #### Gmail Postmaster Tools API - `gmailpostmastertools/v1` The Postmaster Tools API is a RESTful API that provides programmatic access to email traffic metrics (like spam reports, delivery errors etc) otherwise available through the Gmail Postmaster Tools UI currently. - [Original documentation](https://developers.google.com/gmail/postmaster) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/gmailpostmastertools/v1/gmailpostmastertools/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/gmailpostmastertools/v1/gmailpostmastertools/v1-library.html) #### Groups Migration API - `groupsmigration/v1` The Groups Migration API allows domain administrators to archive emails into Google groups. - [Original documentation](https://developers.google.com/google-apps/groups-migration/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/groupsmigration/v1/groupsmigration/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/groupsmigration/v1/groupsmigration/v1-library.html) #### ![Logo](https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png) Groups Settings API - `groupssettings/v1` Manages permission levels and related settings of a group. - [Original documentation](https://developers.google.com/google-apps/groups-settings/get_started) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/groupssettings/v1/groupssettings/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/groupssettings/v1/groupssettings/v1-library.html) #### Cloud Healthcare API - `healthcare/v1` Manage, store, and access healthcare data in Google Cloud Platform. - [Original documentation](https://cloud.google.com/healthcare) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/healthcare/v1/healthcare/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/healthcare/v1/healthcare/v1-library.html) #### HomeGraph API - `homegraph/v1` - [Original documentation](https://developers.home.google.com/cloud-to-cloud/get-started) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/homegraph/v1/homegraph/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/homegraph/v1/homegraph/v1-library.html) #### Identity and Access Management (IAM) API - `iam/v1` Manages identity and access control for Google Cloud Platform resources, including the creation of service accounts, which you can use to authenticate to Google and make API calls. - [Original documentation](https://cloud.google.com/iam/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/iam/v1/iam/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/iam/v1/iam/v1-library.html) #### Identity and Access Management (IAM) API - `iam/v2` Manages identity and access control for Google Cloud Platform resources, including the creation of service accounts, which you can use to authenticate to Google and make API calls. - [Original documentation](https://cloud.google.com/iam/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/iam/v2/iam/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/iam/v2/iam/v2-library.html) #### IAM Service Account Credentials API - `iamcredentials/v1` Creates short-lived credentials for impersonating IAM service accounts. To enable this API, you must enable the IAM API (iam.googleapis.com). - [Original documentation](https://cloud.google.com/iam/docs/creating-short-lived-service-account-credentials) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/iamcredentials/v1/iamcredentials/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/iamcredentials/v1/iamcredentials/v1-library.html) #### Cloud Identity-Aware Proxy API - `iap/v1` Controls access to cloud applications running on Google Cloud Platform. - [Original documentation](https://cloud.google.com/iap) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/iap/v1/iap/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/iap/v1/iap/v1-library.html) #### Identity Toolkit API - `identitytoolkit/v1` The Google Identity Toolkit API lets you use open standards to verify a user's identity. - [Original documentation](https://cloud.google.com/identity-platform) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/identitytoolkit/v1/identitytoolkit/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/identitytoolkit/v1/identitytoolkit/v1-library.html) #### Identity Toolkit API - `identitytoolkit/v2` The Google Identity Toolkit API lets you use open standards to verify a user's identity. - [Original documentation](https://cloud.google.com/identity-platform) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/identitytoolkit/v2/identitytoolkit/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/identitytoolkit/v2/identitytoolkit/v2-library.html) #### ![Logo](https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png) Google Identity Toolkit API - `identitytoolkit/v3` Help the third party sites to implement federated login. - [Original documentation](https://developers.google.com/identity-toolkit/v3/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/identitytoolkit/v3/identitytoolkit/v3-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/identitytoolkit/v3/identitytoolkit/v3-library.html) #### Cloud IDS API - `ids/v1` Cloud IDS (Cloud Intrusion Detection System) detects malware, spyware, command-and-control attacks, and other network-based threats. Its security efficacy is industry leading, built with Palo Alto Networks technologies. When you use this product, your organization name and consumption levels will be shared with Palo Alto Networks. - [Original documentation](https://cloud.google.com/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/ids/v1/ids/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/ids/v1/ids/v1-library.html) #### Web Search Indexing API - `indexing/v3` Notifies Google Web Search when your web pages change. - [Original documentation](https://developers.google.com/search/apis/indexing-api/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/indexing/v3/indexing/v3-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/indexing/v3/indexing/v3-library.html) #### Cloud Talent Solution API - `jobs/v3` Cloud Talent Solution provides the capability to create, read, update, and delete job postings, as well as search jobs based on keywords and filters. - [Original documentation](https://cloud.google.com/talent-solution/job-search/docs/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/jobs/v3/jobs/v3-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/jobs/v3/jobs/v3-library.html) #### Cloud Talent Solution API - `jobs/v4` Cloud Talent Solution provides the capability to create, read, update, and delete job postings, as well as search jobs based on keywords and filters. - [Original documentation](https://cloud.google.com/talent-solution/job-search/docs/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/jobs/v4/jobs/v4-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/jobs/v4/jobs/v4-library.html) #### Google Keep API - `keep/v1` The Google Keep API is used in an enterprise environment to manage Google Keep content and resolve issues identified by cloud security software. - [Original documentation](https://developers.google.com/keep/api) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/keep/v1/keep/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/keep/v1/keep/v1-library.html) #### Knowledge Graph Search API - `kgsearch/v1` Searches the Google Knowledge Graph for entities. - [Original documentation](https://developers.google.com/knowledge-graph/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/kgsearch/v1/kgsearch/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/kgsearch/v1/kgsearch/v1-library.html) #### KMS Inventory API - `kmsinventory/v1` - [Original documentation](https://cloud.google.com/kms/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/kmsinventory/v1/kmsinventory/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/kmsinventory/v1/kmsinventory/v1-library.html) #### Cloud Natural Language API - `language/v1` Provides natural language understanding technologies, such as sentiment analysis, entity recognition, entity sentiment analysis, and other text annotations, to developers. - [Original documentation](https://cloud.google.com/natural-language/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/language/v1/language/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/language/v1/language/v1-library.html) #### Cloud Natural Language API - `language/v2` Provides natural language understanding technologies, such as sentiment analysis, entity recognition, entity sentiment analysis, and other text annotations, to developers. - [Original documentation](https://cloud.google.com/natural-language/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/language/v2/language/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/language/v2/language/v2-library.html) #### Library Agent API - `libraryagent/v1` A simple Google Example Library API. - [Original documentation](https://cloud.google.com/docs/quota) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/libraryagent/v1/libraryagent/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/libraryagent/v1/libraryagent/v1-library.html) #### Enterprise License Manager API - `licensing/v1` The Google Enterprise License Manager API lets you manage Google Workspace and related licenses for all users of a customer that you manage. - [Original documentation](https://developers.google.com/admin-sdk/licensing/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/licensing/v1/licensing/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/licensing/v1/licensing/v1-library.html) #### Local Services API - `localservices/v1` - [Original documentation](https://ads.google.com/local-services-ads/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/localservices/v1/localservices/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/localservices/v1/localservices/v1-library.html) #### Cloud Logging API - `logging/v2` Writes log entries and manages your Cloud Logging configuration. - [Original documentation](https://cloud.google.com/logging/docs/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/logging/v2/logging/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/logging/v2/logging/v2-library.html) #### Looker (Google Cloud core) API - `looker/v1` - [Original documentation](https://cloud.google.com/looker/docs/reference/rest/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/looker/v1/looker/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/looker/v1/looker/v1-library.html) #### Managed Service for Microsoft Active Directory API - `managedidentities/v1` The Managed Service for Microsoft Active Directory API is used for managing a highly available, hardened service running Microsoft Active Directory (AD). - [Original documentation](https://cloud.google.com/managed-microsoft-ad/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/managedidentities/v1/managedidentities/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/managedidentities/v1/managedidentities/v1-library.html) #### Manufacturer Center API - `manufacturers/v1` Public API for managing Manufacturer Center related data. - [Original documentation](https://developers.google.com/manufacturers/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/manufacturers/v1/manufacturers/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/manufacturers/v1/manufacturers/v1-library.html) #### Cloud Memorystore for Memcached API - `memcache/v1` Google Cloud Memorystore for Memcached API is used for creating and managing Memcached instances in GCP. - [Original documentation](https://cloud.google.com/memorystore/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/memcache/v1/memcache/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/memcache/v1/memcache/v1-library.html) #### Dataproc Metastore API - `metastore/v1` The Dataproc Metastore API is used to manage the lifecycle and configuration of metastore services. - [Original documentation](https://cloud.google.com/dataproc-metastore/docs) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/metastore/v1/metastore/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/metastore/v1/metastore/v1-library.html) #### Migration Center API - `migrationcenter/v1` A unified platform that helps you accelerate your end-to-end cloud journey from your current on-premises or cloud environments to Google Cloud. - [Original documentation](https://cloud.google.com/migration-center) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/migrationcenter/v1/migrationcenter/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/migrationcenter/v1/migrationcenter/v1-library.html) #### AI Platform Training & Prediction API - `ml/v1` An API to enable creating and using machine learning models. - [Original documentation](https://cloud.google.com/ml/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/ml/v1/ml/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/ml/v1/ml/v1-library.html) #### Cloud Monitoring API - `monitoring/v3` Manages your Cloud Monitoring data and configurations. - [Original documentation](https://cloud.google.com/monitoring/api/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/monitoring/v3/monitoring/v3-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/monitoring/v3/monitoring/v3-library.html) #### My Business Account Management API - `mybusinessaccountmanagement/v1` The My Business Account Management API provides an interface for managing access to a location on Google. Note - If you have a quota of 0 after enabling the API, please request for GBP API access. - [Original documentation](https://developers.google.com/my-business/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/mybusinessaccountmanagement/v1/mybusinessaccountmanagement/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/mybusinessaccountmanagement/v1/mybusinessaccountmanagement/v1-library.html) #### My Business Business Information API - `mybusinessbusinessinformation/v1` The My Business Business Information API provides an interface for managing business information. Note - If you have a quota of 0 after enabling the API, please request for GBP API access. - [Original documentation](https://developers.google.com/my-business/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/mybusinessbusinessinformation/v1/mybusinessbusinessinformation/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/mybusinessbusinessinformation/v1/mybusinessbusinessinformation/v1-library.html) #### My Business Lodging API - `mybusinesslodging/v1` The My Business Lodging API enables managing lodging business information on Google. Note - If you have a quota of 0 after enabling the API, please request for GBP API access. - [Original documentation](https://developers.google.com/my-business/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/mybusinesslodging/v1/mybusinesslodging/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/mybusinesslodging/v1/mybusinesslodging/v1-library.html) #### My Business Notifications API - `mybusinessnotifications/v1` The My Business Notification Settings API enables managing notification settings for business accounts. Note - If you have a quota of 0 after enabling the API, please request for GBP API access. - [Original documentation](https://developers.google.com/my-business/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/mybusinessnotifications/v1/mybusinessnotifications/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/mybusinessnotifications/v1/mybusinessnotifications/v1-library.html) #### My Business Place Actions API - `mybusinessplaceactions/v1` The My Business Place Actions API provides an interface for managing place action links of a location on Google. Note - If you have a quota of 0 after enabling the API, please request for GBP API access. - [Original documentation](https://developers.google.com/my-business/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/mybusinessplaceactions/v1/mybusinessplaceactions/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/mybusinessplaceactions/v1/mybusinessplaceactions/v1-library.html) #### My Business Q&A API - `mybusinessqanda/v1` The My Business Q&A API allows questions and answers to be posted for specific listings. Note - If you have a quota of 0 after enabling the API, please request for GBP API access. - [Original documentation](https://developers.google.com/my-business/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/mybusinessqanda/v1/mybusinessqanda/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/mybusinessqanda/v1/mybusinessqanda/v1-library.html) #### My Business Verifications API - `mybusinessverifications/v1` The My Business Verifications API provides an interface for taking verifications related actions for locations. - [Original documentation](https://developers.google.com/my-business/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/mybusinessverifications/v1/mybusinessverifications/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/mybusinessverifications/v1/mybusinessverifications/v1-library.html) #### Network Connectivity API - `networkconnectivity/v1` This API enables connectivity with and between Google Cloud resources. - [Original documentation](https://cloud.google.com/network-connectivity/docs/reference/networkconnectivity/rest) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/networkconnectivity/v1/networkconnectivity/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/networkconnectivity/v1/networkconnectivity/v1-library.html) #### Network Management API - `networkmanagement/v1` The Network Management API provides a collection of network performance monitoring and diagnostic capabilities. - [Original documentation](https://cloud.google.com/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/networkmanagement/v1/networkmanagement/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/networkmanagement/v1/networkmanagement/v1-library.html) #### Network Security API - `networksecurity/v1` - [Original documentation](https://cloud.google.com/networking) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/networksecurity/v1/networksecurity/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/networksecurity/v1/networksecurity/v1-library.html) #### Network Services API - `networkservices/v1` - [Original documentation](https://cloud.google.com/networking) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/networkservices/v1/networkservices/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/networkservices/v1/networkservices/v1-library.html) #### Notebooks API - `notebooks/v1` Notebooks API is used to manage notebook resources in Google Cloud. - [Original documentation](https://cloud.google.com/notebooks/docs/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/notebooks/v1/notebooks/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/notebooks/v1/notebooks/v1-library.html) #### Notebooks API - `notebooks/v2` Notebooks API is used to manage notebook resources in Google Cloud. - [Original documentation](https://cloud.google.com/notebooks/docs/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/notebooks/v2/notebooks/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/notebooks/v2/notebooks/v2-library.html) #### ![Logo](https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png) Google OAuth2 API - `oauth2/v2` Obtains end-user authorization grants for use with other Google APIs. - [Original documentation](https://developers.google.com/identity/protocols/oauth2/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/oauth2/v2/oauth2/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/oauth2/v2/oauth2/v2-library.html) #### On-Demand Scanning API - `ondemandscanning/v1` A service to scan container images for vulnerabilities. - [Original documentation](https://cloud.google.com/container-analysis/docs/on-demand-scanning/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/ondemandscanning/v1/ondemandscanning/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/ondemandscanning/v1/ondemandscanning/v1-library.html) #### Organization Policy API - `orgpolicy/v2` The Organization Policy API allows users to configure governance rules on their Google Cloud resources across the resource hierarchy. - [Original documentation](https://cloud.google.com/orgpolicy/docs/reference/rest/index.html) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/orgpolicy/v2/orgpolicy/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/orgpolicy/v2/orgpolicy/v2-library.html) #### OS Config API - `osconfig/v1` OS management tools that can be used for patch management, patch compliance, and configuration management on VM instances. - [Original documentation](https://cloud.google.com/compute/docs/osconfig/rest) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/osconfig/v1/osconfig/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/osconfig/v1/osconfig/v1-library.html) #### Cloud OS Login API - `oslogin/v1` You can use OS Login to manage access to your VM instances using IAM roles. - [Original documentation](https://cloud.google.com/compute/docs/oslogin/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/oslogin/v1/oslogin/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/oslogin/v1/oslogin/v1-library.html) #### PageSpeed Insights API - `pagespeedonline/v5` The PageSpeed Insights API lets you analyze the performance of your website with a simple API. It offers tailored suggestions for how you can optimize your site, and lets you easily integrate PageSpeed Insights analysis into your development tools and workflow. - [Original documentation](https://developers.google.com/speed/docs/insights/v5/about) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/pagespeedonline/v5/pagespeedonline/v5-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/pagespeedonline/v5/pagespeedonline/v5-library.html) #### Payments Reseller Subscription API - `paymentsresellersubscription/v1` - [Original documentation](https://developers.google.com/payments/reseller/subscription/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/paymentsresellersubscription/v1/paymentsresellersubscription/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/paymentsresellersubscription/v1/paymentsresellersubscription/v1-library.html) #### People API - `people/v1` Provides access to information about profiles and contacts. - [Original documentation](https://developers.google.com/people/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/people/v1/people/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/people/v1/people/v1-library.html) #### Photos Library API - `photoslibrary/v1` Manage photos, videos, and albums in Google Photos - [Original documentation](https://developers.google.com/photos/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/photoslibrary/v1/photoslibrary/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/photoslibrary/v1/photoslibrary/v1-library.html) #### Places API (New) - `places/v1` - [Original documentation](https://mapsplatform.google.com/maps-products/#places-section) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/places/v1/places/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/places/v1/places/v1-library.html) #### Google Play Custom App Publishing API - `playcustomapp/v1` API to create and publish custom Android apps - [Original documentation](https://developers.google.com/android/work/play/custom-app-api/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/playcustomapp/v1/playcustomapp/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/playcustomapp/v1/playcustomapp/v1-library.html) #### Google Play Integrity API - `playintegrity/v1` The Play Integrity API helps you check that you're interacting with your genuine app on a genuine Android device powered by Google Play services. The Play Integrity API has replaced SafetyNet Attestation and Android Device Verification. - [Original documentation](https://developer.android.com/google/play/integrity) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/playintegrity/v1/playintegrity/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/playintegrity/v1/playintegrity/v1-library.html) #### Policy Analyzer API - `policyanalyzer/v1` - [Original documentation](https://www.google.com) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/policyanalyzer/v1/policyanalyzer/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/policyanalyzer/v1/policyanalyzer/v1-library.html) #### Policy Simulator API - `policysimulator/v1` Policy Simulator is a collection of endpoints for creating, running, and viewing a Replay. A `Replay` is a type of simulation that lets you see how your members' access to resources might change if you changed your IAM policy. During a `Replay`, Policy Simulator re-evaluates, or replays, past access attempts under both the current policy and your proposed policy, and compares those results to determine how your members' access might change under the proposed policy. - [Original documentation](https://cloud.google.com/iam/docs/simulating-access) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/policysimulator/v1/policysimulator/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/policysimulator/v1/policysimulator/v1-library.html) #### Policy Troubleshooter API - `policytroubleshooter/v1` - [Original documentation](https://cloud.google.com/iam/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/policytroubleshooter/v1/policytroubleshooter/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/policytroubleshooter/v1/policytroubleshooter/v1-library.html) #### Certificate Authority API - `privateca/v1` The Certificate Authority Service API is a highly-available, scalable service that enables you to simplify and automate the management of private certificate authorities (CAs) while staying in control of your private keys. - [Original documentation](https://cloud.google.com/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/privateca/v1/privateca/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/privateca/v1/privateca/v1-library.html) #### Public Certificate Authority API - `publicca/v1` The Public Certificate Authority API may be used to create and manage ACME external account binding keys associated with Google Trust Services' publicly trusted certificate authority. - [Original documentation](https://cloud.google.com/public-certificate-authority/docs) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/publicca/v1/publicca/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/publicca/v1/publicca/v1-library.html) #### Cloud Pub/Sub API - `pubsub/v1` Provides reliable, many-to-many, asynchronous messaging between applications. - [Original documentation](https://cloud.google.com/pubsub/docs) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/pubsub/v1/pubsub/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/pubsub/v1/pubsub/v1-library.html) #### Pub/Sub Lite API - `pubsublite/v1` - [Original documentation](https://cloud.google.com/pubsub/lite/docs) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/pubsublite/v1/pubsublite/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/pubsublite/v1/pubsublite/v1-library.html) #### Rapid Migration Assessment API - `rapidmigrationassessment/v1` The Rapid Migration Assessment service is our first-party migration assessment and planning tool. - [Original documentation](https://cloud.google.com/migration-center) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/rapidmigrationassessment/v1/rapidmigrationassessment/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/rapidmigrationassessment/v1/rapidmigrationassessment/v1-library.html) #### Reader Revenue Subscription Linking API - `readerrevenuesubscriptionlinking/v1` readerrevenuesubscriptionlinking.googleapis.com API. - [Original documentation](https://developers.google.com/news/subscribe/subscription-linking/overview) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/readerrevenuesubscriptionlinking/v1/readerrevenuesubscriptionlinking/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/readerrevenuesubscriptionlinking/v1/readerrevenuesubscriptionlinking/v1-library.html) #### Real-time Bidding API - `realtimebidding/v1` Allows external bidders to manage their RTB integration with Google. This includes managing bidder endpoints, QPS quotas, configuring what ad inventory to receive via pretargeting, submitting creatives for verification, and accessing creative metadata such as approval status. - [Original documentation](https://developers.google.com/authorized-buyers/apis/realtimebidding/reference/rest/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/realtimebidding/v1/realtimebidding/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/realtimebidding/v1/realtimebidding/v1-library.html) #### reCAPTCHA Enterprise API - `recaptchaenterprise/v1` Help protect your website from fraudulent activity, spam, and abuse without creating friction. - [Original documentation](https://cloud.google.com/recaptcha-enterprise/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/recaptchaenterprise/v1/recaptchaenterprise/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/recaptchaenterprise/v1/recaptchaenterprise/v1-library.html) #### Recommender API - `recommender/v1` - [Original documentation](https://cloud.google.com/recommender/docs/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/recommender/v1/recommender/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/recommender/v1/recommender/v1-library.html) #### Google Cloud Memorystore for Redis API - `redis/v1` Creates and manages Redis instances on the Google Cloud Platform. - [Original documentation](https://cloud.google.com/memorystore/docs/redis/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/redis/v1/redis/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/redis/v1/redis/v1-library.html) #### Google Workspace Reseller API - `reseller/v1` Perform common functions that are available on the Channel Services console at scale, like placing orders and viewing customer information - [Original documentation](https://developers.google.com/google-apps/reseller/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/reseller/v1/reseller/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/reseller/v1/reseller/v1-library.html) #### Resource Settings API - `resourcesettings/v1` The Resource Settings API allows users to control and modify the behavior of their GCP resources (e.g., VM, firewall, Project, etc.) across the Cloud Resource Hierarchy. - [Original documentation](https://cloud.google.com/resource-manager/docs/resource-settings/overview) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/resourcesettings/v1/resourcesettings/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/resourcesettings/v1/resourcesettings/v1-library.html) -#### Retail API - `retail/v2` +#### Vertex AI Search for Retail API - `retail/v2` -Cloud Retail service enables customers to build end-to-end personalized recommendation systems without requiring a high level of expertise in machine learning, recommendation system, or Google Cloud. +Vertex AI Search for Retail API is made up of Retail Search, Browse and Recommendations. These discovery AI solutions help you implement personalized search, browse and recommendations, based on machine learning models, across your websites and mobile applications. - [Original documentation](https://cloud.google.com/recommendations) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/retail/v2/retail/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/retail/v2/retail/v2-library.html) #### Cloud Run Admin API - `run/v1` Deploy and manage user provided container images that scale automatically based on incoming requests. The Cloud Run Admin API v1 follows the Knative Serving API specification, while v2 is aligned with Google Cloud AIP-based API standards, as described in https://google.aip.dev/. - [Original documentation](https://cloud.google.com/run/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/run/v1/run/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/run/v1/run/v1-library.html) #### Cloud Run Admin API - `run/v2` Deploy and manage user provided container images that scale automatically based on incoming requests. The Cloud Run Admin API v1 follows the Knative Serving API specification, while v2 is aligned with Google Cloud AIP-based API standards, as described in https://google.aip.dev/. - [Original documentation](https://cloud.google.com/run/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/run/v2/run/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/run/v2/run/v2-library.html) #### Cloud Runtime Configuration API - `runtimeconfig/v1` The Runtime Configurator allows you to dynamically configure and expose variables through Google Cloud Platform. In addition, you can also set Watchers and Waiters that will watch for changes to your data and return based on certain conditions. - [Original documentation](https://cloud.google.com/deployment-manager/runtime-configurator/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/runtimeconfig/v1/runtimeconfig/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/runtimeconfig/v1/runtimeconfig/v1-library.html) #### Safe Browsing API - `safebrowsing/v4` Enables client applications to check web resources (most commonly URLs) against Google-generated lists of unsafe web resources. The Safe Browsing APIs are for non-commercial use only. If you need to use APIs to detect malicious URLs for commercial purposes – meaning “for sale or revenue-generating purposes” – please refer to the Web Risk API. - [Original documentation](https://developers.google.com/safe-browsing/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/safebrowsing/v4/safebrowsing/v4-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/safebrowsing/v4/safebrowsing/v4-library.html) #### Safe Browsing API - `safebrowsing/v5` Enables client applications to check web resources (most commonly URLs) against Google-generated lists of unsafe web resources. The Safe Browsing APIs are for non-commercial use only. If you need to use APIs to detect malicious URLs for commercial purposes – meaning “for sale or revenue-generating purposes” – please refer to the Web Risk API. - [Original documentation](https://developers.google.com/safe-browsing/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/safebrowsing/v5/safebrowsing/v5-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/safebrowsing/v5/safebrowsing/v5-library.html) #### Apps Script API - `script/v1` Manages and executes Google Apps Script projects. - [Original documentation](https://developers.google.com/apps-script/api/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/script/v1/script/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/script/v1/script/v1-library.html) #### Google Search Console API - `searchconsole/v1` The Search Console API provides access to both Search Console data (verified users only) and to public information on an URL basis (anyone) - [Original documentation](https://developers.google.com/webmaster-tools/search-console-api/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/searchconsole/v1/searchconsole/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/searchconsole/v1/searchconsole/v1-library.html) #### Secret Manager API - `secretmanager/v1` Stores sensitive data such as API keys, passwords, and certificates. Provides convenience while improving security. - [Original documentation](https://cloud.google.com/secret-manager/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/secretmanager/v1/secretmanager/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/secretmanager/v1/secretmanager/v1-library.html) #### Security Command Center API - `securitycenter/v1` Security Command Center API provides access to temporal views of assets and findings within an organization. - [Original documentation](https://cloud.google.com/security-command-center) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/securitycenter/v1/securitycenter/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/securitycenter/v1/securitycenter/v1-library.html) #### Service Consumer Management API - `serviceconsumermanagement/v1` Manages the service consumers of a Service Infrastructure service. - [Original documentation](https://cloud.google.com/service-consumer-management/docs/overview) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/serviceconsumermanagement/v1/serviceconsumermanagement/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/serviceconsumermanagement/v1/serviceconsumermanagement/v1-library.html) #### Service Control API - `servicecontrol/v1` Provides admission control and telemetry reporting for services integrated with Service Infrastructure. - [Original documentation](https://cloud.google.com/service-control/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/servicecontrol/v1/servicecontrol/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/servicecontrol/v1/servicecontrol/v1-library.html) #### Service Control API - `servicecontrol/v2` Provides admission control and telemetry reporting for services integrated with Service Infrastructure. - [Original documentation](https://cloud.google.com/service-control/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/servicecontrol/v2/servicecontrol/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/servicecontrol/v2/servicecontrol/v2-library.html) #### Service Directory API - `servicedirectory/v1` Service Directory is a platform for discovering, publishing, and connecting services. - [Original documentation](https://cloud.google.com/service-directory) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/servicedirectory/v1/servicedirectory/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/servicedirectory/v1/servicedirectory/v1-library.html) #### Service Management API - `servicemanagement/v1` Google Service Management allows service producers to publish their services on Google Cloud Platform so that they can be discovered and used by service consumers. - [Original documentation](https://cloud.google.com/service-management/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/servicemanagement/v1/servicemanagement/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/servicemanagement/v1/servicemanagement/v1-library.html) #### Service Networking API - `servicenetworking/v1` Provides automatic management of network configurations necessary for certain services. - [Original documentation](https://cloud.google.com/service-infrastructure/docs/service-networking/getting-started) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/servicenetworking/v1/servicenetworking/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/servicenetworking/v1/servicenetworking/v1-library.html) #### Service Usage API - `serviceusage/v1` Enables services that service consumers want to use on Google Cloud Platform, lists the available or enabled services, or disables services that service consumers no longer use. - [Original documentation](https://cloud.google.com/service-usage/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/serviceusage/v1/serviceusage/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/serviceusage/v1/serviceusage/v1-library.html) #### Google Sheets API - `sheets/v4` Reads and writes Google Sheets. - [Original documentation](https://developers.google.com/sheets/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/sheets/v4/sheets/v4-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/sheets/v4/sheets/v4-library.html) #### ![Logo](https://www.gstatic.com/images/branding/product/1x/googleg_16dp.png) Google Site Verification API - `siteVerification/v1` Verifies ownership of websites or domains with Google. - [Original documentation](https://developers.google.com/site-verification/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/siteVerification/v1/siteVerification/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/siteVerification/v1/siteVerification/v1-library.html) #### Google Slides API - `slides/v1` Reads and writes Google Slides presentations. - [Original documentation](https://developers.google.com/slides/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/slides/v1/slides/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/slides/v1/slides/v1-library.html) #### Smart Device Management API - `smartdevicemanagement/v1` Allow select enterprise partners to access, control, and manage Google and Nest devices programmatically. - [Original documentation](https://developers.google.com/nest/device-access) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/smartdevicemanagement/v1/smartdevicemanagement/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/smartdevicemanagement/v1/smartdevicemanagement/v1-library.html) #### Cloud Source Repositories API - `sourcerepo/v1` Accesses source code repositories hosted by Google. - [Original documentation](https://cloud.google.com/source-repositories/docs/apis) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/sourcerepo/v1/sourcerepo/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/sourcerepo/v1/sourcerepo/v1-library.html) #### Cloud Spanner API - `spanner/v1` Cloud Spanner is a managed, mission-critical, globally consistent and scalable relational database service. - [Original documentation](https://cloud.google.com/spanner/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/spanner/v1/spanner/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/spanner/v1/spanner/v1-library.html) #### Cloud Speech-to-Text API - `speech/v1` Converts audio to text by applying powerful neural network models. - [Original documentation](https://cloud.google.com/speech-to-text/docs/quickstart-protocol) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/speech/v1/speech/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/speech/v1/speech/v1-library.html) #### ![Logo](https://www.google.com/images/icons/product/cloud_storage-16.png) Cloud Storage JSON API - `storage/v1` Stores and retrieves potentially large, immutable data objects. - [Original documentation](https://developers.google.com/storage/docs/json_api/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/storage/v1/storage/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/storage/v1/storage/v1-library.html) #### Storage Transfer API - `storagetransfer/v1` Transfers data from external data sources to a Google Cloud Storage bucket or between Google Cloud Storage buckets. - [Original documentation](https://cloud.google.com/storage-transfer/docs) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/storagetransfer/v1/storagetransfer/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/storagetransfer/v1/storagetransfer/v1-library.html) #### Street View Publish API - `streetviewpublish/v1` Publishes 360 photos to Google Maps, along with position, orientation, and connectivity metadata. Apps can offer an interface for positioning, connecting, and uploading user-generated Street View images. - [Original documentation](https://developers.google.com/streetview/publish/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/streetviewpublish/v1/streetviewpublish/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/streetviewpublish/v1/streetviewpublish/v1-library.html) #### Security Token Service API - `sts/v1` The Security Token Service exchanges Google or third-party credentials for a short-lived access token to Google Cloud resources. - [Original documentation](https://cloud.google.com/iam/docs/workload-identity-federation) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/sts/v1/sts/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/sts/v1/sts/v1-library.html) #### Tag Manager API - `tagmanager/v1` This API allows clients to access and modify container and tag configuration. - [Original documentation](https://developers.google.com/tag-manager) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/tagmanager/v1/tagmanager/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/tagmanager/v1/tagmanager/v1-library.html) #### Tag Manager API - `tagmanager/v2` This API allows clients to access and modify container and tag configuration. - [Original documentation](https://developers.google.com/tag-manager) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/tagmanager/v2/tagmanager/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/tagmanager/v2/tagmanager/v2-library.html) #### Google Tasks API - `tasks/v1` The Google Tasks API lets you manage your tasks and task lists. - [Original documentation](https://developers.google.com/tasks/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/tasks/v1/tasks/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/tasks/v1/tasks/v1-library.html) #### Cloud Testing API - `testing/v1` Allows developers to run automated tests for their mobile applications on Google infrastructure. - [Original documentation](https://developers.google.com/cloud-test-lab/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/testing/v1/testing/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/testing/v1/testing/v1-library.html) #### Cloud Text-to-Speech API - `texttospeech/v1` Synthesizes natural-sounding speech by applying powerful neural network models. - [Original documentation](https://cloud.google.com/text-to-speech/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/texttospeech/v1/texttospeech/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/texttospeech/v1/texttospeech/v1-library.html) #### Cloud TPU API - `tpu/v1` TPU API provides customers with access to Google TPU technology. - [Original documentation](https://cloud.google.com/tpu/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/tpu/v1/tpu/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/tpu/v1/tpu/v1-library.html) #### Cloud TPU API - `tpu/v2` TPU API provides customers with access to Google TPU technology. - [Original documentation](https://cloud.google.com/tpu/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/tpu/v2/tpu/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/tpu/v2/tpu/v2-library.html) #### Traffic Director API - `trafficdirector/v2` - [Original documentation](https://cloud.google.com/traffic-director) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/trafficdirector/v2/trafficdirector/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/trafficdirector/v2/trafficdirector/v2-library.html) #### Traffic Director API - `trafficdirector/v3` - [Original documentation](https://cloud.google.com/traffic-director) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/trafficdirector/v3/trafficdirector/v3-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/trafficdirector/v3/trafficdirector/v3-library.html) #### Transcoder API - `transcoder/v1` This API converts video files into formats suitable for consumer distribution. For more information, see the Transcoder API overview. - [Original documentation](https://cloud.google.com/transcoder/docs/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/transcoder/v1/transcoder/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/transcoder/v1/transcoder/v1-library.html) #### Cloud Translation API - `translate/v3` Integrates text translation into your website or application. - [Original documentation](https://cloud.google.com/translate/docs/quickstarts) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/translate/v3/translate/v3-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/translate/v3/translate/v3-library.html) #### Travel Impact Model API - `travelimpactmodel/v1` Travel Impact Model API lets you query travel carbon emission estimates. - [Original documentation](https://developers.google.com/travel/impact-model) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/travelimpactmodel/v1/travelimpactmodel/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/travelimpactmodel/v1/travelimpactmodel/v1-library.html) #### Google Vault API - `vault/v1` Retention and eDiscovery for Google Workspace. To work with Vault resources, the account must have the [required Vault privileges](https://support.google.com/vault/answer/2799699) and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the **View All Matters** privilege. For example, to download an export, an account needs the **Manage Exports** privilege and the matter shared with them. - [Original documentation](https://developers.google.com/vault) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/vault/v1/vault/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/vault/v1/vault/v1-library.html) #### Chrome Verified Access API - `verifiedaccess/v1` API for Verified Access chrome extension to provide credential verification for chrome devices connecting to an enterprise network - [Original documentation](https://developers.google.com/chrome/verified-access) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/verifiedaccess/v1/verifiedaccess/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/verifiedaccess/v1/verifiedaccess/v1-library.html) #### Chrome Verified Access API - `verifiedaccess/v2` API for Verified Access chrome extension to provide credential verification for chrome devices connecting to an enterprise network - [Original documentation](https://developers.google.com/chrome/verified-access) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/verifiedaccess/v2/verifiedaccess/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/verifiedaccess/v2/verifiedaccess/v2-library.html) #### versionhistory.googleapis.com API - `versionhistory/v1` Version History API - Prod - [Original documentation](https://developer.chrome.com/docs/versionhistory/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/versionhistory/v1/versionhistory/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/versionhistory/v1/versionhistory/v1-library.html) #### Cloud Video Intelligence API - `videointelligence/v1` Detects objects, explicit content, and scene changes in videos. It also specifies the region for annotation and transcribes speech to text. Supports both asynchronous API and streaming API. - [Original documentation](https://cloud.google.com/video-intelligence/docs/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/videointelligence/v1/videointelligence/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/videointelligence/v1/videointelligence/v1-library.html) #### Cloud Vision API - `vision/v1` Integrates Google Vision features, including image labeling, face, logo, and landmark detection, optical character recognition (OCR), and detection of explicit content, into applications. - [Original documentation](https://cloud.google.com/vision/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/vision/v1/vision/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/vision/v1/vision/v1-library.html) #### VM Migration API - `vmmigration/v1` Use the Migrate to Virtual Machines API to programmatically migrate workloads. - [Original documentation](https://cloud.google.com/migrate/virtual-machines) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/vmmigration/v1/vmmigration/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/vmmigration/v1/vmmigration/v1-library.html) #### VMware Engine API - `vmwareengine/v1` The Google VMware Engine API lets you programmatically manage VMware environments. - [Original documentation](https://cloud.google.com/solutions/vmware-as-a-service) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/vmwareengine/v1/vmwareengine/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/vmwareengine/v1/vmwareengine/v1-library.html) #### Serverless VPC Access API - `vpcaccess/v1` API for managing VPC access connectors. - [Original documentation](https://cloud.google.com/vpc/docs/configure-serverless-vpc-access) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/vpcaccess/v1/vpcaccess/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/vpcaccess/v1/vpcaccess/v1-library.html) + +#### Google Wallet API - `walletobjects/v1` + +API for issuers to save and manage Google Wallet Objects. + +- [Original documentation](https://developers.google.com/pay/passes) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/walletobjects/v1/walletobjects/v1-library.html) #### Web Fonts Developer API - `webfonts/v1` The Google Web Fonts Developer API lets you retrieve information about web fonts served by Google. - [Original documentation](https://developers.google.com/fonts/docs/developer_api) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/webfonts/v1/webfonts/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/webfonts/v1/webfonts/v1-library.html) #### Web Risk API - `webrisk/v1` - [Original documentation](https://cloud.google.com/web-risk/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/webrisk/v1/webrisk/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/webrisk/v1/webrisk/v1-library.html) #### Web Security Scanner API - `websecurityscanner/v1` Scans your Compute and App Engine apps for common web vulnerabilities. - [Original documentation](https://cloud.google.com/security-command-center/docs/concepts-web-security-scanner-overview/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/websecurityscanner/v1/websecurityscanner/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/websecurityscanner/v1/websecurityscanner/v1-library.html) #### Workflow Executions API - `workflowexecutions/v1` Execute workflows created with Workflows API. - [Original documentation](https://cloud.google.com/workflows) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/workflowexecutions/v1/workflowexecutions/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/workflowexecutions/v1/workflowexecutions/v1-library.html) #### Workflows API - `workflows/v1` Manage workflow definitions. To execute workflows and manage executions, see the Workflows Executions API. - [Original documentation](https://cloud.google.com/workflows) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/workflows/v1/workflows/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/workflows/v1/workflows/v1-library.html) #### Workload Manager API - `workloadmanager/v1` Workload Manager is a service that provides tooling for enterprise workloads to automate the deployment and validation of your workloads against best practices and recommendations. - [Original documentation](https://cloud.google.com/workload-manager/docs) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/workloadmanager/v1/workloadmanager/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/workloadmanager/v1/workloadmanager/v1-library.html) + +#### Google Workspace Events API - `workspaceevents/v1` + +The Google Workspace Events API lets you subscribe to events and manage change notifications across Google Workspace applications. + +- [Original documentation](https://developers.google.com/workspace/events) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/workspaceevents/v1/workspaceevents/v1-library.html) #### Cloud Workstations API - `workstations/v1` Allows administrators to create managed developer environments in the cloud. - [Original documentation](https://cloud.google.com/workstations) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/workstations/v1/workstations/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/workstations/v1/workstations/v1-library.html) #### YouTube Data API v3 - `youtube/v3` The YouTube Data API v3 is an API that provides access to YouTube data, such as videos, playlists, and channels. - [Original documentation](https://developers.google.com/youtube/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/youtube/v3/youtube/v3-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/youtube/v3/youtube/v3-library.html) #### YouTube Analytics API - `youtubeAnalytics/v2` Retrieves your YouTube Analytics data. - [Original documentation](https://developers.google.com/youtube/analytics) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/youtubeAnalytics/v2/youtubeAnalytics/v2-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/youtubeAnalytics/v2/youtubeAnalytics/v2-library.html) #### YouTube Reporting API - `youtubereporting/v1` Schedules reporting jobs containing your YouTube Analytics data and downloads the resulting bulk data reports in the form of CSV files. - [Original documentation](https://developers.google.com/youtube/reporting/v1/reports/) -- [Dart package details](https://pub.dev/documentation/googleapis/12.0.0/youtubereporting/v1/youtubereporting/v1-library.html) +- [Dart package details](https://pub.dev/documentation/googleapis/13.0.0/youtubereporting/v1/youtubereporting/v1-library.html) diff --git a/generated/googleapis/lib/accessapproval/v1.dart b/generated/googleapis/lib/accessapproval/v1.dart index 253a47756..39d2feb7e 100644 --- a/generated/googleapis/lib/accessapproval/v1.dart +++ b/generated/googleapis/lib/accessapproval/v1.dart @@ -1596,6 +1596,11 @@ class AccessReason { /// - "GOOGLE_RESPONSE_TO_PRODUCTION_ALERT" : The principal accessed customer /// data in order to diagnose or resolve a suspected issue in services or a /// known outage. + /// - "CLOUD_INITIATED_ACCESS" : Similar to 'GOOGLE_INITIATED_SERVICE' or + /// 'GOOGLE_INITIATED_REVIEW', but with universe agnostic naming. The + /// principal accessed customer data in order to diagnose or resolve a + /// suspected issue in services or a known outage, or for security, fraud, + /// abuse, or compliance review purposes. core.String? type; AccessReason({ @@ -2041,10 +2046,11 @@ class SignatureInfo { /// this public key. core.String? googlePublicKeyPem; - /// The serialized ApprovalRequest message without the approve.signature_info + /// The ApprovalRequest that is serialized without the SignatureInfo message /// field. /// - /// This to allow the customer to verify signatures if they want to. + /// This data is used with the hashing algorithm to generate the digital + /// signature, and it can be used for signature verification. core.String? serializedApprovalRequest; core.List get serializedApprovalRequestAsBytes => convert.base64.decode(serializedApprovalRequest!); diff --git a/generated/googleapis/lib/accesscontextmanager/v1.dart b/generated/googleapis/lib/accesscontextmanager/v1.dart index f6a264754..618cb0778 100644 --- a/generated/googleapis/lib/accesscontextmanager/v1.dart +++ b/generated/googleapis/lib/accesscontextmanager/v1.dart @@ -13,7 +13,15 @@ /// Access Context Manager API - v1 /// /// An API for setting attribute based access control to requests to Google -/// Cloud services. +/// Cloud services. *Warning:* Do not mix *v1alpha* and *v1* API usage in the +/// same access policy. The v1alpha API supports new Access Context Manager +/// features, which may have different attributes or behaviors that are not +/// supported by v1. The practice of mixed API usage within a policy may result +/// in the inability to update that policy, including any access levels or +/// service perimeters belonging to it. It is not recommended to use both v1 and +/// v1alpha for modifying policies with critical service perimeters. +/// Modifications using v1alpha should be limited to policies with +/// non-production/non-critical service perimeters. /// /// For more information, see /// @@ -27,6 +35,7 @@ /// - [OperationsResource] /// - [OrganizationsResource] /// - [OrganizationsGcpUserAccessBindingsResource] +/// - [ServicesResource] library; import 'dart:async' as async; @@ -44,6 +53,16 @@ export 'package:_discoveryapis_commons/_discoveryapis_commons.dart' /// An API for setting attribute based access control to requests to Google /// Cloud services. +/// +/// *Warning:* Do not mix *v1alpha* and *v1* API usage in the same access +/// policy. The v1alpha API supports new Access Context Manager features, which +/// may have different attributes or behaviors that are not supported by v1. The +/// practice of mixed API usage within a policy may result in the inability to +/// update that policy, including any access levels or service perimeters +/// belonging to it. It is not recommended to use both v1 and v1alpha for +/// modifying policies with critical service perimeters. Modifications using +/// v1alpha should be limited to policies with non-production/non-critical +/// service perimeters. class AccessContextManagerApi { /// See, edit, configure, and delete your Google Cloud data and see the email /// address for your Google Account. @@ -56,6 +75,7 @@ class AccessContextManagerApi { AccessPoliciesResource(_requester); OperationsResource get operations => OperationsResource(_requester); OrganizationsResource get organizations => OrganizationsResource(_requester); + ServicesResource get services => ServicesResource(_requester); AccessContextManagerApi(http.Client client, {core.String rootUrl = 'https://accesscontextmanager.googleapis.com/', @@ -1842,6 +1862,90 @@ class OrganizationsGcpUserAccessBindingsResource { } } +class ServicesResource { + final commons.ApiRequester _requester; + + ServicesResource(commons.ApiRequester client) : _requester = client; + + /// Returns a VPC-SC supported service based on the service name. + /// + /// Request parameters: + /// + /// [name] - The name of the service to get information about. The names must + /// be in the same format as used in defining a service perimeter, for + /// example, `storage.googleapis.com`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [SupportedService]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/services/' + commons.escapeVariable('$name'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return SupportedService.fromJson( + response_ as core.Map); + } + + /// Lists all VPC-SC supported services. + /// + /// Request parameters: + /// + /// [pageSize] - This flag specifies the maximum number of services to return + /// per page. Default is 100. + /// + /// [pageToken] - Token to start on a later page. Default is the first page. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [ListSupportedServicesResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future list({ + core.int? pageSize, + core.String? pageToken, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (pageSize != null) 'pageSize': ['${pageSize}'], + if (pageToken != null) 'pageToken': [pageToken], + if ($fields != null) 'fields': [$fields], + }; + + const url_ = 'v1/services'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return ListSupportedServicesResponse.fromJson( + response_ as core.Map); + } +} + /// An `AccessLevel` is a label that can be applied to requests to Google Cloud /// services, along with a list of requirements necessary for the label to be /// applied. @@ -2183,14 +2287,31 @@ class Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -2199,12 +2320,19 @@ class Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; Binding({ @@ -2503,10 +2631,8 @@ class DevicePolicy { /// order for this request to succeed. class EgressFrom { /// A list of identities that are allowed access through this - /// \[EgressPolicy\]. - /// - /// Should be in the format of email address. The email address should - /// represent individual user or service account only. + /// \[EgressPolicy\], in the format of `user:{email_id}` or + /// `serviceAccount:{email_id}`. core.List? identities; /// Specifies the type of identities that are allowed access to outside the @@ -2832,10 +2958,8 @@ typedef GetPolicyOptions = $GetPolicyOptions; /// request must satisfy what is defined in `sources` AND identity related /// fields in order to match. class IngressFrom { - /// A list of identities that are allowed access through this ingress policy. - /// - /// Should be in the format of email address. The email address should - /// represent individual user or service account only. + /// A list of identities that are allowed access through this ingress policy, + /// in the format of `user:{email_id}` or `serviceAccount:{email_id}`. core.List? identities; /// Specifies the type of identities that are allowed access from outside the @@ -3182,6 +3306,40 @@ class ListServicePerimetersResponse { }; } +/// A response to `ListSupportedServicesRequest`. +class ListSupportedServicesResponse { + /// The pagination token to retrieve the next page of results. + /// + /// If the value is empty, no further results remain. + core.String? nextPageToken; + + /// List of services supported by VPC Service Controls instances. + core.List? supportedServices; + + ListSupportedServicesResponse({ + this.nextPageToken, + this.supportedServices, + }); + + ListSupportedServicesResponse.fromJson(core.Map json_) + : this( + nextPageToken: json_.containsKey('nextPageToken') + ? json_['nextPageToken'] as core.String + : null, + supportedServices: json_.containsKey('supportedServices') + ? (json_['supportedServices'] as core.List) + .map((value) => SupportedService.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (nextPageToken != null) 'nextPageToken': nextPageToken!, + if (supportedServices != null) 'supportedServices': supportedServices!, + }; +} + /// An allowed method or permission of a service specified in ApiOperation. typedef MethodSelector = $MethodSelector; @@ -3742,6 +3900,112 @@ class SetIamPolicyRequest { /// [API Design Guide](https://cloud.google.com/apis/design/errors). typedef Status = $Status; +/// `SupportedService` specifies the VPC Service Controls and its properties. +class SupportedService { + /// True if the service is available on the restricted VIP. + /// + /// Services on the restricted VIP typically either support VPC Service + /// Controls or are core infrastructure services required for the functioning + /// of Google Cloud. + core.bool? availableOnRestrictedVip; + + /// True if the service is supported with some limitations. + /// + /// Check + /// [documentation](https://cloud.google.com/vpc-service-controls/docs/supported-products) + /// for details. + core.bool? knownLimitations; + + /// The service name or address of the supported service, such as + /// `service.googleapis.com`. + core.String? name; + + /// The support stage of the service. + /// Possible string values are: + /// - "LAUNCH_STAGE_UNSPECIFIED" : Do not use this default value. + /// - "UNIMPLEMENTED" : The feature is not yet implemented. Users can not use + /// it. + /// - "PRELAUNCH" : Prelaunch features are hidden from users and are only + /// visible internally. + /// - "EARLY_ACCESS" : Early Access features are limited to a closed group of + /// testers. To use these features, you must sign up in advance and sign a + /// Trusted Tester agreement (which includes confidentiality provisions). + /// These features may be unstable, changed in backward-incompatible ways, and + /// are not guaranteed to be released. + /// - "ALPHA" : Alpha is a limited availability test for releases before they + /// are cleared for widespread use. By Alpha, all significant design issues + /// are resolved and we are in the process of verifying functionality. Alpha + /// customers need to apply for access, agree to applicable terms, and have + /// their projects allowlisted. Alpha releases don't have to be feature + /// complete, no SLAs are provided, and there are no technical support + /// obligations, but they will be far enough along that customers can actually + /// use them in test environments or for limited-use tests -- just like they + /// would in normal production cases. + /// - "BETA" : Beta is the point at which we are ready to open a release for + /// any customer to use. There are no SLA or technical support obligations in + /// a Beta release. Products will be complete from a feature perspective, but + /// may have some open outstanding issues. Beta releases are suitable for + /// limited production use cases. + /// - "GA" : GA features are open to all developers and are considered stable + /// and fully qualified for production use. + /// - "DEPRECATED" : Deprecated features are scheduled to be shut down and + /// removed. For more information, see the "Deprecation Policy" section of our + /// [Terms of Service](https://cloud.google.com/terms/) and the + /// [Google Cloud Platform Subject to the Deprecation Policy](https://cloud.google.com/terms/deprecation) + /// documentation. + core.String? supportStage; + + /// The list of the supported methods. + /// + /// This field exists only in response to GetSupportedService + core.List? supportedMethods; + + /// The name of the supported product, such as 'Cloud Product API'. + core.String? title; + + SupportedService({ + this.availableOnRestrictedVip, + this.knownLimitations, + this.name, + this.supportStage, + this.supportedMethods, + this.title, + }); + + SupportedService.fromJson(core.Map json_) + : this( + availableOnRestrictedVip: + json_.containsKey('availableOnRestrictedVip') + ? json_['availableOnRestrictedVip'] as core.bool + : null, + knownLimitations: json_.containsKey('knownLimitations') + ? json_['knownLimitations'] as core.bool + : null, + name: json_.containsKey('name') ? json_['name'] as core.String : null, + supportStage: json_.containsKey('supportStage') + ? json_['supportStage'] as core.String + : null, + supportedMethods: json_.containsKey('supportedMethods') + ? (json_['supportedMethods'] as core.List) + .map((value) => MethodSelector.fromJson( + value as core.Map)) + .toList() + : null, + title: + json_.containsKey('title') ? json_['title'] as core.String : null, + ); + + core.Map toJson() => { + if (availableOnRestrictedVip != null) + 'availableOnRestrictedVip': availableOnRestrictedVip!, + if (knownLimitations != null) 'knownLimitations': knownLimitations!, + if (name != null) 'name': name!, + if (supportStage != null) 'supportStage': supportStage!, + if (supportedMethods != null) 'supportedMethods': supportedMethods!, + if (title != null) 'title': title!, + }; +} + /// Request message for `TestIamPermissions` method. typedef TestIamPermissionsRequest = $TestIamPermissionsRequest00; diff --git a/generated/googleapis/lib/admin/directory_v1.dart b/generated/googleapis/lib/admin/directory_v1.dart index 2e09a31fe..5fedda4e9 100644 --- a/generated/googleapis/lib/admin/directory_v1.dart +++ b/generated/googleapis/lib/admin/directory_v1.dart @@ -392,13 +392,16 @@ class ChromeosdevicesResource { ChromeosdevicesResource(commons.ApiRequester client) : _requester = client; - /// Takes an action that affects a Chrome OS Device. - /// - /// This includes deprovisioning, disabling, and re-enabling devices. - /// *Warning:* * Deprovisioning a device will stop device policy syncing and - /// remove device-level printers. After a device is deprovisioned, it must be - /// wiped before it can be re-enrolled. * Lost or stolen devices should use - /// the disable action. * Re-enabling a disabled device will consume a device + /// Use + /// \[BatchChangeChromeOsDeviceStatus\](/admin-sdk/directory/reference/rest/v1/customer.devices.chromeos/batchChangeStatus) + /// instead. + /// + /// Takes an action that affects a Chrome OS Device. This includes + /// deprovisioning, disabling, and re-enabling devices. *Warning:* * + /// Deprovisioning a device will stop device policy syncing and remove + /// device-level printers. After a device is deprovisioned, it must be wiped + /// before it can be re-enrolled. * Lost or stolen devices should use the + /// disable action. * Re-enabling a disabled device will consume a device /// license. If you do not have sufficient licenses available when completing /// the re-enable action, you will receive an error. For more information /// about deprovisioning and disabling devices, visit the @@ -427,6 +430,9 @@ class ChromeosdevicesResource { /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. + @core.Deprecated( + 'Not supported. Member documentation may have more information.', + ) async.Future action( ChromeOsDeviceAction request, core.String customerId, @@ -808,6 +814,51 @@ class CustomerDevicesChromeosResource { CustomerDevicesChromeosResource(commons.ApiRequester client) : _requester = client; + /// Changes the status of a batch of ChromeOS devices. + /// + /// For more information about changing a ChromeOS device state + /// [Repair, repurpose, or retire ChromeOS devices](https://support.google.com/chrome/a/answer/3523633). + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [customerId] - Required. Immutable ID of the Google Workspace account. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [BatchChangeChromeOsDeviceStatusResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future batchChangeStatus( + BatchChangeChromeOsDeviceStatusRequest request, + core.String customerId, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'admin/directory/v1/customer/' + + commons.escapeVariable('$customerId') + + '/devices/chromeos:batchChangeStatus'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return BatchChangeChromeOsDeviceStatusResponse.fromJson( + response_ as core.Map); + } + /// Issues a command for the device to execute. /// /// [request] - The metadata request object. @@ -6610,6 +6661,135 @@ class AuxiliaryMessage { }; } +/// A request for changing the status of a batch of ChromeOS devices. +class BatchChangeChromeOsDeviceStatusRequest { + /// The action to take on the ChromeOS device in order to change its status. + /// + /// Required. + /// Possible string values are: + /// - "CHANGE_CHROME_OS_DEVICE_STATUS_ACTION_UNSPECIFIED" : Default value. + /// Value is unused. + /// - "CHANGE_CHROME_OS_DEVICE_STATUS_ACTION_DEPROVISION" : Deprovisions a + /// ChromeOS device. If you have ChromeOS devices that are no longer being + /// used in your organization, you should deprovision them so that you’re no + /// longer managing them. Deprovisioning the device removes all policies that + /// were on the device as well as device-level printers and the ability to use + /// the device as a kiosk. Depending on the upgrade that’s associated with the + /// device this action might release the license back into the license pool; + /// which allows you to use the license on a different device. + /// - "CHANGE_CHROME_OS_DEVICE_STATUS_ACTION_DISABLE" : Disables a ChromeOS + /// device. Use this action if a user loses their device or it’s stolen, this + /// makes it such that the device is still managed, so it will still receive + /// policies, but no one can use it. Depending on the upgrade that’s + /// associated with the device this action might release the license back into + /// the license pool; which allows you to use the license on a different + /// device. + /// - "CHANGE_CHROME_OS_DEVICE_STATUS_ACTION_REENABLE" : Reenables a ChromeOS + /// device to be used after being disabled. Reenables the device once it's no + /// longer lost or it's been recovered. This allows the device to be used + /// again. Depending on the upgrade associated with the device this might + /// consume one license from the license pool, meaning that if there aren't + /// enough licenses available the operation will fail. + core.String? changeChromeOsDeviceStatusAction; + + /// The reason behind a device deprovision. + /// + /// Must be provided if 'changeChromeOsDeviceStatusAction' is set to + /// 'CHANGE_CHROME_OS_DEVICE_STATUS_ACTION_DEPROVISION'. Otherwise, omit this + /// field. + /// + /// Optional. + /// Possible string values are: + /// - "DEPROVISION_REASON_UNSPECIFIED" : The deprovision reason is unknown. + /// - "DEPROVISION_REASON_SAME_MODEL_REPLACEMENT" : Same model replacement. + /// You have return materials authorization (RMA) or you are replacing a + /// malfunctioning device under warranty with the same device model. + /// - "DEPROVISION_REASON_UPGRADE" : The device was upgraded. + /// - "DEPROVISION_REASON_DOMAIN_MOVE" : The device's domain was changed. + /// - "DEPROVISION_REASON_SERVICE_EXPIRATION" : Service expired for the + /// device. + /// - "DEPROVISION_REASON_OTHER" : The device was deprovisioned for a legacy + /// reason that is no longer supported. + /// - "DEPROVISION_REASON_DIFFERENT_MODEL_REPLACEMENT" : Different model + /// replacement. You are replacing this device with an upgraded or newer + /// device model. + /// - "DEPROVISION_REASON_RETIRING_DEVICE" : Retiring from fleet. You are + /// donating, discarding, or otherwise removing the device from use. + /// - "DEPROVISION_REASON_UPGRADE_TRANSFER" : ChromeOS Flex upgrade transfer. + /// This is a ChromeOS Flex device that you are replacing with a Chromebook + /// within a year. + /// - "DEPROVISION_REASON_NOT_REQUIRED" : A reason was not required. For + /// example, the licenses were returned to the customer's license pool. + /// - "DEPROVISION_REASON_REPAIR_CENTER" : The device was deprovisioned by the + /// Repair Service Center. Can only be set by Repair Service Center during + /// RMA. + core.String? deprovisionReason; + + /// List of the IDs of the ChromeOS devices to change. + /// + /// Maximum 50. + /// + /// Required. + core.List? deviceIds; + + BatchChangeChromeOsDeviceStatusRequest({ + this.changeChromeOsDeviceStatusAction, + this.deprovisionReason, + this.deviceIds, + }); + + BatchChangeChromeOsDeviceStatusRequest.fromJson(core.Map json_) + : this( + changeChromeOsDeviceStatusAction: + json_.containsKey('changeChromeOsDeviceStatusAction') + ? json_['changeChromeOsDeviceStatusAction'] as core.String + : null, + deprovisionReason: json_.containsKey('deprovisionReason') + ? json_['deprovisionReason'] as core.String + : null, + deviceIds: json_.containsKey('deviceIds') + ? (json_['deviceIds'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + ); + + core.Map toJson() => { + if (changeChromeOsDeviceStatusAction != null) + 'changeChromeOsDeviceStatusAction': changeChromeOsDeviceStatusAction!, + if (deprovisionReason != null) 'deprovisionReason': deprovisionReason!, + if (deviceIds != null) 'deviceIds': deviceIds!, + }; +} + +/// The response of changing the status of a batch of ChromeOS devices. +class BatchChangeChromeOsDeviceStatusResponse { + /// The results for each of the ChromeOS devices provided in the request. + core.List? + changeChromeOsDeviceStatusResults; + + BatchChangeChromeOsDeviceStatusResponse({ + this.changeChromeOsDeviceStatusResults, + }); + + BatchChangeChromeOsDeviceStatusResponse.fromJson(core.Map json_) + : this( + changeChromeOsDeviceStatusResults: + json_.containsKey('changeChromeOsDeviceStatusResults') + ? (json_['changeChromeOsDeviceStatusResults'] as core.List) + .map((value) => ChangeChromeOsDeviceStatusResult.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (changeChromeOsDeviceStatusResults != null) + 'changeChromeOsDeviceStatusResults': + changeChromeOsDeviceStatusResults!, + }; +} + /// Request to add multiple new print servers in a batch. class BatchCreatePrintServersRequest { /// A list of `PrintServer` resources to be created (max `50` per batch). @@ -7308,6 +7488,48 @@ class CalendarResources { }; } +/// The result of a single ChromeOS device for a Change state operation. +class ChangeChromeOsDeviceStatusResult { + /// The unique ID of the ChromeOS device. + core.String? deviceId; + + /// The error result of the operation in case of failure. + Status? error; + + /// The device could change its status successfully. + ChangeChromeOsDeviceStatusSucceeded? response; + + ChangeChromeOsDeviceStatusResult({ + this.deviceId, + this.error, + this.response, + }); + + ChangeChromeOsDeviceStatusResult.fromJson(core.Map json_) + : this( + deviceId: json_.containsKey('deviceId') + ? json_['deviceId'] as core.String + : null, + error: json_.containsKey('error') + ? Status.fromJson( + json_['error'] as core.Map) + : null, + response: json_.containsKey('response') + ? ChangeChromeOsDeviceStatusSucceeded.fromJson( + json_['response'] as core.Map) + : null, + ); + + core.Map toJson() => { + if (deviceId != null) 'deviceId': deviceId!, + if (error != null) 'error': error!, + if (response != null) 'response': response!, + }; +} + +/// Response for a successful ChromeOS device status change. +typedef ChangeChromeOsDeviceStatusSucceeded = $Empty; + /// An notification channel used to watch for resource changes. class Channel { /// The address where notifications are delivered for this channel. @@ -9022,7 +9244,10 @@ class DirectoryChromeosdevicesIssueCommandRequest { /// Payload is optionally a stringified JSON object in the form: { /// "ackedUserPresence": true }. `ackedUserPresence` is a boolean. By default, /// `ackedUserPresence` is set to `false`. To start a Chrome Remote Desktop - /// session for an active device, set `ackedUserPresence` to `true`. + /// session for an active device, set `ackedUserPresence` to `true`. * + /// `REBOOT`: Payload is a stringified JSON object in the form: { + /// "user_session_delay_seconds": 300 }. The delay has to be in the range \[0, + /// 300\]. core.String? payload; DirectoryChromeosdevicesIssueCommandRequest({ @@ -11699,6 +11924,15 @@ class Schemas { }; } +/// 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). +typedef Status = $Status; + /// JSON template for token resource in Directory API. class Token { /// Whether the application is registered with Google. diff --git a/generated/googleapis/lib/admin/reports_v1.dart b/generated/googleapis/lib/admin/reports_v1.dart index 712425647..b28c1d2f5 100644 --- a/generated/googleapis/lib/admin/reports_v1.dart +++ b/generated/googleapis/lib/admin/reports_v1.dart @@ -95,7 +95,7 @@ class ActivitiesResource { /// [applicationName] - Application name for which the events are to be /// retrieved. /// Value must have pattern - /// `(access_transparency)|(admin)|(calendar)|(chat)|(chrome)|(context_aware_access)|(data_studio)|(drive)|(gcp)|(gplus)|(groups)|(groups_enterprise)|(jamboard)|(keep)|(login)|(meet)|(mobile)|(rules)|(saml)|(token)|(user_accounts)`. + /// `(access_transparency)|(admin)|(calendar)|(chat)|(chrome)|(context_aware_access)|(data_studio)|(drive)|(gcp)|(gplus)|(groups)|(groups_enterprise)|(jamboard)|(keep)|(login)|(meet)|(mobile)|(rules)|(saml)|(token)|(user_accounts)|(vault)`. /// Possible string values are: /// - "access_transparency" : The Google Workspace Access Transparency /// activity reports return information about different types of Access @@ -146,6 +146,8 @@ class ActivitiesResource { /// - "keep" : The Keep application's activity reports return information /// about various Google Keep activity events. The Keep activity report is /// only available for Google Workspace Business and Enterprise customers. + /// - "vault" : The Vault activity reports return information about various + /// types of Vault activity events. /// /// [actorIpAddress] - The Internet Protocol (IP) Address of host where the /// event was performed. This is an additional way to filter a report's @@ -460,7 +462,8 @@ class ActivitiesResource { /// 1000. /// Value must be between "1" and "1000". /// - /// [orgUnitID] - ID of the organizational unit to report on. Activity records + /// [orgUnitID] - `Deprecated`. This field is deprecated and is no longer + /// supported. ID of the organizational unit to report on. Activity records /// will be shown only for users who belong to the specified organizational /// unit. Data before Dec 17, 2018 doesn't appear in the filtered results. /// Value must have pattern `(id:\[a-z0-9\]+)`. @@ -1165,10 +1168,8 @@ class ActivityEvents { /// parameters in general: - If no `eventName` is given, the report returns /// all possible instances of an `eventName`. - When you request an /// `eventName`, the API's response returns all activities which contain that - /// `eventName`. It is possible that the returned activities will have other - /// `eventName` properties in addition to the one requested. For more - /// information about `eventName` properties, see the list of event names for - /// various applications above in `applicationName`. + /// `eventName`. For more information about `eventName` properties, see the + /// list of event names for various applications above in `applicationName`. core.String? name; /// Parameter value pairs for various applications. diff --git a/generated/googleapis/lib/advisorynotifications/v1.dart b/generated/googleapis/lib/advisorynotifications/v1.dart index f0977dafc..2aa5277b1 100644 --- a/generated/googleapis/lib/advisorynotifications/v1.dart +++ b/generated/googleapis/lib/advisorynotifications/v1.dart @@ -21,6 +21,9 @@ /// - [OrganizationsResource] /// - [OrganizationsLocationsResource] /// - [OrganizationsLocationsNotificationsResource] +/// - [ProjectsResource] +/// - [ProjectsLocationsResource] +/// - [ProjectsLocationsNotificationsResource] library; import 'dart:async' as async; @@ -45,6 +48,7 @@ class AdvisorynotificationsApi { final commons.ApiRequester _requester; OrganizationsResource get organizations => OrganizationsResource(_requester); + ProjectsResource get projects => ProjectsResource(_requester); AdvisorynotificationsApi(http.Client client, {core.String rootUrl = 'https://advisorynotifications.googleapis.com/', @@ -115,7 +119,7 @@ class OrganizationsLocationsResource { /// /// Request parameters: /// - /// [name] - Output only. The resource name of the settings to retrieve. + /// [name] - Identifier. The resource name of the settings to retrieve. /// Format: organizations/{organization}/locations/{location}/settings. /// Value must have pattern /// `^organizations/\[^/\]+/locations/\[^/\]+/settings$`. @@ -164,7 +168,8 @@ class OrganizationsLocationsNotificationsResource { /// Request parameters: /// /// [name] - Required. A name of the notification to retrieve. Format: - /// organizations/{organization}/locations/{location}/notifications/{notification}. + /// organizations/{organization}/locations/{location}/notifications/{notification} + /// or projects/{projects}/locations/{location}/notifications/{notification}. /// Value must have pattern /// `^organizations/\[^/\]+/locations/\[^/\]+/notifications/\[^/\]+$`. /// @@ -211,7 +216,8 @@ class OrganizationsLocationsNotificationsResource { /// /// [parent] - Required. The parent, which owns this collection of /// notifications. Must be of the form - /// "organizations/{organization}/locations/{location}" + /// "organizations/{organization}/locations/{location}" or + /// "projects/{project}/locations/{location}" /// Value must have pattern `^organizations/\[^/\]+/locations/\[^/\]+$`. /// /// [languageCode] - ISO code for requested localization language. If unset, @@ -279,6 +285,152 @@ class OrganizationsLocationsNotificationsResource { } } +class ProjectsResource { + final commons.ApiRequester _requester; + + ProjectsLocationsResource get locations => + ProjectsLocationsResource(_requester); + + ProjectsResource(commons.ApiRequester client) : _requester = client; +} + +class ProjectsLocationsResource { + final commons.ApiRequester _requester; + + ProjectsLocationsNotificationsResource get notifications => + ProjectsLocationsNotificationsResource(_requester); + + ProjectsLocationsResource(commons.ApiRequester client) : _requester = client; +} + +class ProjectsLocationsNotificationsResource { + final commons.ApiRequester _requester; + + ProjectsLocationsNotificationsResource(commons.ApiRequester client) + : _requester = client; + + /// Gets a notification. + /// + /// Request parameters: + /// + /// [name] - Required. A name of the notification to retrieve. Format: + /// organizations/{organization}/locations/{location}/notifications/{notification} + /// or projects/{projects}/locations/{location}/notifications/{notification}. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/notifications/\[^/\]+$`. + /// + /// [languageCode] - ISO code for requested localization language. If unset, + /// will be interpereted as "en". If the requested language is valid, but not + /// supported for this notification, English will be returned with an "Not + /// applicable" LocalizationState. If the ISO code is invalid (i.e. not a real + /// language), this RPC will throw an error. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleCloudAdvisorynotificationsV1Notification]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String name, { + core.String? languageCode, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (languageCode != null) 'languageCode': [languageCode], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return GoogleCloudAdvisorynotificationsV1Notification.fromJson( + response_ as core.Map); + } + + /// Lists notifications under a given parent. + /// + /// Request parameters: + /// + /// [parent] - Required. The parent, which owns this collection of + /// notifications. Must be of the form + /// "organizations/{organization}/locations/{location}" or + /// "projects/{project}/locations/{location}" + /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. + /// + /// [languageCode] - ISO code for requested localization language. If unset, + /// will be interpereted as "en". If the requested language is valid, but not + /// supported for this notification, English will be returned with an "Not + /// applicable" LocalizationState. If the ISO code is invalid (i.e. not a real + /// language), this RPC will throw an error. + /// + /// [pageSize] - The maximum number of notifications to return. The service + /// may return fewer than this value. If unspecified or equal to 0, at most 50 + /// notifications will be returned. The maximum value is 50; values above 50 + /// will be coerced to 50. + /// + /// [pageToken] - A page token returned from a previous request. When + /// paginating, all other parameters provided in the request must match the + /// call that returned the page token. + /// + /// [view] - Specifies which parts of the notification resource should be + /// returned in the response. + /// Possible string values are: + /// - "NOTIFICATION_VIEW_UNSPECIFIED" : Not specified, equivalent to BASIC. + /// - "BASIC" : Server responses only include title, creation time and + /// Notification ID. Note: for internal use responses also include the last + /// update time, the latest message text and whether notification has + /// attachments. + /// - "FULL" : Include everything. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a + /// [GoogleCloudAdvisorynotificationsV1ListNotificationsResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future + list( + core.String parent, { + core.String? languageCode, + core.int? pageSize, + core.String? pageToken, + core.String? view, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (languageCode != null) 'languageCode': [languageCode], + if (pageSize != null) 'pageSize': ['${pageSize}'], + if (pageToken != null) 'pageToken': [pageToken], + if (view != null) 'view': [view], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/notifications'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return GoogleCloudAdvisorynotificationsV1ListNotificationsResponse.fromJson( + response_ as core.Map); + } +} + /// Attachment with specific information about the issue. class GoogleCloudAdvisorynotificationsV1Attachment { /// A CSV file attachment. @@ -502,7 +654,8 @@ class GoogleCloudAdvisorynotificationsV1Notification { /// The resource name of the notification. /// /// Format: - /// organizations/{organization}/locations/{location}/notifications/{notification}. + /// organizations/{organization}/locations/{location}/notifications/{notification} + /// or projects/{project}/locations/{location}/notifications/{notification}. core.String? name; /// Type of notification @@ -590,11 +743,10 @@ class GoogleCloudAdvisorynotificationsV1Settings { /// Required. core.String? etag; - /// The resource name of the settings to retrieve. + /// Identifier. /// - /// Format: organizations/{organization}/locations/{location}/settings. - /// - /// Output only. + /// The resource name of the settings to retrieve. Format: + /// organizations/{organization}/locations/{location}/settings. core.String? name; /// Map of each notification type and its settings to get/set all settings at diff --git a/generated/googleapis/lib/aiplatform/v1.dart b/generated/googleapis/lib/aiplatform/v1.dart index 691359bfd..e069ae1b2 100644 --- a/generated/googleapis/lib/aiplatform/v1.dart +++ b/generated/googleapis/lib/aiplatform/v1.dart @@ -64,9 +64,13 @@ /// - [ProjectsLocationsIndexesOperationsResource] /// - [ProjectsLocationsMetadataStoresResource] /// - [ProjectsLocationsMetadataStoresArtifactsResource] +/// - [ProjectsLocationsMetadataStoresArtifactsOperationsResource] /// - [ProjectsLocationsMetadataStoresContextsResource] +/// - [ProjectsLocationsMetadataStoresContextsOperationsResource] /// - [ProjectsLocationsMetadataStoresExecutionsResource] +/// - [ProjectsLocationsMetadataStoresExecutionsOperationsResource] /// - [ProjectsLocationsMetadataStoresMetadataSchemasResource] +/// - [ProjectsLocationsMetadataStoresOperationsResource] /// - [ProjectsLocationsMigratableResourcesResource] /// - [ProjectsLocationsMigratableResourcesOperationsResource] /// - [ProjectsLocationsModelDeploymentMonitoringJobsResource] @@ -4421,6 +4425,97 @@ class ProjectsLocationsEndpointsResource { response_ as core.Map); } + /// Perform an unary online prediction request to a gRPC model server for + /// Vertex first-party products and frameworks. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [endpoint] - Required. The name of the Endpoint requested to serve the + /// prediction. Format: + /// `projects/{project}/locations/{location}/endpoints/{endpoint}` + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/endpoints/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleCloudAiplatformV1DirectPredictResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future directPredict( + GoogleCloudAiplatformV1DirectPredictRequest request, + core.String endpoint, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$endpoint') + ':directPredict'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return GoogleCloudAiplatformV1DirectPredictResponse.fromJson( + response_ as core.Map); + } + + /// Perform an unary online prediction request to a gRPC model server for + /// custom containers. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [endpoint] - Required. The name of the Endpoint requested to serve the + /// prediction. Format: + /// `projects/{project}/locations/{location}/endpoints/{endpoint}` + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/endpoints/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleCloudAiplatformV1DirectRawPredictResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future + directRawPredict( + GoogleCloudAiplatformV1DirectRawPredictRequest request, + core.String endpoint, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$endpoint') + ':directRawPredict'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return GoogleCloudAiplatformV1DirectRawPredictResponse.fromJson( + response_ as core.Map); + } + /// Perform an online explanation. /// /// If deployed_model_id is specified, the corresponding DeployModel must have @@ -4469,6 +4564,50 @@ class ProjectsLocationsEndpointsResource { response_ as core.Map); } + /// Generate content with multimodal inputs. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [model] - Required. The name of the publisher model requested to serve the + /// prediction. Format: `projects/{project}/locations/{location}/publishers / + /// * /models / * ` + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/endpoints/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleCloudAiplatformV1GenerateContentResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future generateContent( + GoogleCloudAiplatformV1GenerateContentRequest request, + core.String model, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$model') + ':generateContent'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return GoogleCloudAiplatformV1GenerateContentResponse.fromJson( + response_ as core.Map); + } + /// Gets an Endpoint. /// /// Request parameters: @@ -4813,6 +4952,96 @@ class ProjectsLocationsEndpointsResource { response_ as core.Map); } + /// Generate content with multimodal inputs with streaming support. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [model] - Required. The name of the publisher model requested to serve the + /// prediction. Format: `projects/{project}/locations/{location}/publishers / + /// * /models / * ` + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/endpoints/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleCloudAiplatformV1GenerateContentResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future + streamGenerateContent( + GoogleCloudAiplatformV1GenerateContentRequest request, + core.String model, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = + 'v1/' + core.Uri.encodeFull('$model') + ':streamGenerateContent'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return GoogleCloudAiplatformV1GenerateContentResponse.fromJson( + response_ as core.Map); + } + + /// Perform a streaming online prediction with an arbitrary HTTP payload. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [endpoint] - Required. The name of the Endpoint requested to serve the + /// prediction. Format: + /// `projects/{project}/locations/{location}/endpoints/{endpoint}` + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/endpoints/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleApiHttpBody]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future streamRawPredict( + GoogleCloudAiplatformV1StreamRawPredictRequest request, + core.String endpoint, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$endpoint') + ':streamRawPredict'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return GoogleApiHttpBody.fromJson( + response_ as core.Map); + } + /// Undeploys a Model from an Endpoint, removing a DeployedModel from it, and /// freeing all resources it's using. /// @@ -5314,7 +5543,7 @@ class ProjectsLocationsFeatureGroupsResource { /// /// Request parameters: /// - /// [name] - Output only. Name of the FeatureGroup. Format: + /// [name] - Identifier. Name of the FeatureGroup. Format: /// `projects/{project}/locations/{location}/featureGroups/{featureGroup}` /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/featureGroups/\[^/\]+$`. @@ -5550,7 +5779,7 @@ class ProjectsLocationsFeatureGroupsFeaturesResource { /// FeaturestoreService.ListFeatures call or /// FeatureRegistryService.ListFeatures call. Provide this to retrieve the /// subsequent page. When paginating, all other parameters provided to - /// FeaturestoreService.ListFeatures or or FeatureRegistryService.ListFeatures + /// FeaturestoreService.ListFeatures or FeatureRegistryService.ListFeatures /// must match the call that provided the page token. /// /// [readMask] - Mask specifying which fields to read. @@ -6059,7 +6288,7 @@ class ProjectsLocationsFeatureOnlineStoresResource { /// Request parameters: /// /// [parent] - Required. The resource name of the Location to create - /// FeatureOnlineStores. Format: `projects/{project}/locations/{location}'` + /// FeatureOnlineStores. Format: `projects/{project}/locations/{location}` /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. /// /// [featureOnlineStoreId] - Required. The ID to use for this @@ -6264,7 +6493,7 @@ class ProjectsLocationsFeatureOnlineStoresResource { /// /// Request parameters: /// - /// [name] - Output only. Name of the FeatureOnlineStore. Format: + /// [name] - Identifier. Name of the FeatureOnlineStore. Format: /// `projects/{project}/locations/{location}/featureOnlineStores/{featureOnlineStore}` /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/featureOnlineStores/\[^/\]+$`. @@ -6275,7 +6504,8 @@ class ProjectsLocationsFeatureOnlineStoresResource { /// field will be overwritten if it is in the mask. If the user does not /// provide a mask then only the non-empty fields present in the request will /// be overwritten. Set the update_mask to `*` to override all fields. - /// Updatable fields: * `big_query_source` * `labels` * `sync_config` + /// Updatable fields: * `big_query_source` * `bigtable` * `labels` * + /// `sync_config` /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -6589,7 +6819,7 @@ class ProjectsLocationsFeatureOnlineStoresFeatureViewsResource { /// /// Request parameters: /// - /// [name] - Output only. Name of the FeatureView. Format: + /// [name] - Identifier. Name of the FeatureView. Format: /// `projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}` /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/featureOnlineStores/\[^/\]+/featureViews/\[^/\]+$`. @@ -6600,7 +6830,7 @@ class ProjectsLocationsFeatureOnlineStoresFeatureViewsResource { /// will be overwritten if it is in the mask. If the user does not provide a /// mask then only the non-empty fields present in the request will be /// overwritten. Set the update_mask to `*` to override all fields. Updatable - /// fields: * `labels` + /// fields: * `labels` * `serviceAgentType` /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -6636,6 +6866,54 @@ class ProjectsLocationsFeatureOnlineStoresFeatureViewsResource { response_ as core.Map); } + /// Search the nearest entities under a FeatureView. + /// + /// Search only works for indexable feature view; if a feature view isn't + /// indexable, returns Invalid argument response. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [featureView] - Required. FeatureView resource format + /// `projects/{project}/locations/{location}/featureOnlineStores/{featureOnlineStore}/featureViews/{featureView}` + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/featureOnlineStores/\[^/\]+/featureViews/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleCloudAiplatformV1SearchNearestEntitiesResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future + searchNearestEntities( + GoogleCloudAiplatformV1SearchNearestEntitiesRequest request, + core.String featureView, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = + 'v1/' + core.Uri.encodeFull('$featureView') + ':searchNearestEntities'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return GoogleCloudAiplatformV1SearchNearestEntitiesResponse.fromJson( + response_ as core.Map); + } + /// Triggers on-demand sync for the FeatureView. /// /// [request] - The metadata request object. @@ -8758,7 +9036,7 @@ class ProjectsLocationsFeaturestoresEntityTypesFeaturesResource { /// FeaturestoreService.ListFeatures call or /// FeatureRegistryService.ListFeatures call. Provide this to retrieve the /// subsequent page. When paginating, all other parameters provided to - /// FeaturestoreService.ListFeatures or or FeatureRegistryService.ListFeatures + /// FeaturestoreService.ListFeatures or FeatureRegistryService.ListFeatures /// must match the call that provided the page token. /// /// [readMask] - Mask specifying which fields to read. @@ -11353,6 +11631,8 @@ class ProjectsLocationsMetadataStoresResource { ProjectsLocationsMetadataStoresExecutionsResource(_requester); ProjectsLocationsMetadataStoresMetadataSchemasResource get metadataSchemas => ProjectsLocationsMetadataStoresMetadataSchemasResource(_requester); + ProjectsLocationsMetadataStoresOperationsResource get operations => + ProjectsLocationsMetadataStoresOperationsResource(_requester); ProjectsLocationsMetadataStoresResource(commons.ApiRequester client) : _requester = client; @@ -11548,6 +11828,9 @@ class ProjectsLocationsMetadataStoresResource { class ProjectsLocationsMetadataStoresArtifactsResource { final commons.ApiRequester _requester; + ProjectsLocationsMetadataStoresArtifactsOperationsResource get operations => + ProjectsLocationsMetadataStoresArtifactsOperationsResource(_requester); + ProjectsLocationsMetadataStoresArtifactsResource(commons.ApiRequester client) : _requester = client; @@ -11941,9 +12224,251 @@ class ProjectsLocationsMetadataStoresArtifactsResource { } } +class ProjectsLocationsMetadataStoresArtifactsOperationsResource { + final commons.ApiRequester _requester; + + ProjectsLocationsMetadataStoresArtifactsOperationsResource( + commons.ApiRequester client) + : _requester = client; + + /// Starts asynchronous cancellation on a long-running operation. + /// + /// The server makes a best effort to cancel the operation, but success is not + /// guaranteed. If the server doesn't support this method, it returns + /// `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation + /// or other methods to check whether the cancellation succeeded or whether + /// the operation completed despite cancellation. On successful cancellation, + /// the operation is not deleted; instead, it becomes an operation with an + /// Operation.error value with a google.rpc.Status.code of 1, corresponding to + /// `Code.CANCELLED`. + /// + /// Request parameters: + /// + /// [name] - The name of the operation resource to be cancelled. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/metadataStores/\[^/\]+/artifacts/\[^/\]+/operations/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleProtobufEmpty]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future cancel( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':cancel'; + + final response_ = await _requester.request( + url_, + 'POST', + queryParams: queryParams_, + ); + return GoogleProtobufEmpty.fromJson( + response_ as core.Map); + } + + /// Deletes a long-running operation. + /// + /// This method indicates that the client is no longer interested in the + /// operation result. It does not cancel the operation. If the server doesn't + /// support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. + /// + /// Request parameters: + /// + /// [name] - The name of the operation resource to be deleted. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/metadataStores/\[^/\]+/artifacts/\[^/\]+/operations/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleProtobufEmpty]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future delete( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'DELETE', + queryParams: queryParams_, + ); + return GoogleProtobufEmpty.fromJson( + response_ as core.Map); + } + + /// Gets the latest state of a long-running operation. + /// + /// Clients can use this method to poll the operation result at intervals as + /// recommended by the API service. + /// + /// Request parameters: + /// + /// [name] - The name of the operation resource. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/metadataStores/\[^/\]+/artifacts/\[^/\]+/operations/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleLongrunningOperation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return GoogleLongrunningOperation.fromJson( + response_ as core.Map); + } + + /// Lists operations that match the specified filter in the request. + /// + /// If the server doesn't support this method, it returns `UNIMPLEMENTED`. + /// + /// Request parameters: + /// + /// [name] - The name of the operation's parent resource. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/metadataStores/\[^/\]+/artifacts/\[^/\]+$`. + /// + /// [filter] - The standard list filter. + /// + /// [pageSize] - The standard list page size. + /// + /// [pageToken] - The standard list page token. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleLongrunningListOperationsResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future list( + core.String name, { + core.String? filter, + core.int? pageSize, + core.String? pageToken, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (filter != null) 'filter': [filter], + if (pageSize != null) 'pageSize': ['${pageSize}'], + if (pageToken != null) 'pageToken': [pageToken], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name') + '/operations'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return GoogleLongrunningListOperationsResponse.fromJson( + response_ as core.Map); + } + + /// 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. + /// + /// Request parameters: + /// + /// [name] - The name of the operation resource to wait on. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/metadataStores/\[^/\]+/artifacts/\[^/\]+/operations/\[^/\]+$`. + /// + /// [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. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleLongrunningOperation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future wait( + core.String name, { + core.String? timeout, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (timeout != null) 'timeout': [timeout], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':wait'; + + final response_ = await _requester.request( + url_, + 'POST', + queryParams: queryParams_, + ); + return GoogleLongrunningOperation.fromJson( + response_ as core.Map); + } +} + class ProjectsLocationsMetadataStoresContextsResource { final commons.ApiRequester _requester; + ProjectsLocationsMetadataStoresContextsOperationsResource get operations => + ProjectsLocationsMetadataStoresContextsOperationsResource(_requester); + ProjectsLocationsMetadataStoresContextsResource(commons.ApiRequester client) : _requester = client; @@ -12463,9 +12988,251 @@ class ProjectsLocationsMetadataStoresContextsResource { } } +class ProjectsLocationsMetadataStoresContextsOperationsResource { + final commons.ApiRequester _requester; + + ProjectsLocationsMetadataStoresContextsOperationsResource( + commons.ApiRequester client) + : _requester = client; + + /// Starts asynchronous cancellation on a long-running operation. + /// + /// The server makes a best effort to cancel the operation, but success is not + /// guaranteed. If the server doesn't support this method, it returns + /// `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation + /// or other methods to check whether the cancellation succeeded or whether + /// the operation completed despite cancellation. On successful cancellation, + /// the operation is not deleted; instead, it becomes an operation with an + /// Operation.error value with a google.rpc.Status.code of 1, corresponding to + /// `Code.CANCELLED`. + /// + /// Request parameters: + /// + /// [name] - The name of the operation resource to be cancelled. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/metadataStores/\[^/\]+/contexts/\[^/\]+/operations/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleProtobufEmpty]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future cancel( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':cancel'; + + final response_ = await _requester.request( + url_, + 'POST', + queryParams: queryParams_, + ); + return GoogleProtobufEmpty.fromJson( + response_ as core.Map); + } + + /// Deletes a long-running operation. + /// + /// This method indicates that the client is no longer interested in the + /// operation result. It does not cancel the operation. If the server doesn't + /// support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. + /// + /// Request parameters: + /// + /// [name] - The name of the operation resource to be deleted. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/metadataStores/\[^/\]+/contexts/\[^/\]+/operations/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleProtobufEmpty]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future delete( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'DELETE', + queryParams: queryParams_, + ); + return GoogleProtobufEmpty.fromJson( + response_ as core.Map); + } + + /// Gets the latest state of a long-running operation. + /// + /// Clients can use this method to poll the operation result at intervals as + /// recommended by the API service. + /// + /// Request parameters: + /// + /// [name] - The name of the operation resource. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/metadataStores/\[^/\]+/contexts/\[^/\]+/operations/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleLongrunningOperation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return GoogleLongrunningOperation.fromJson( + response_ as core.Map); + } + + /// Lists operations that match the specified filter in the request. + /// + /// If the server doesn't support this method, it returns `UNIMPLEMENTED`. + /// + /// Request parameters: + /// + /// [name] - The name of the operation's parent resource. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/metadataStores/\[^/\]+/contexts/\[^/\]+$`. + /// + /// [filter] - The standard list filter. + /// + /// [pageSize] - The standard list page size. + /// + /// [pageToken] - The standard list page token. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleLongrunningListOperationsResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future list( + core.String name, { + core.String? filter, + core.int? pageSize, + core.String? pageToken, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (filter != null) 'filter': [filter], + if (pageSize != null) 'pageSize': ['${pageSize}'], + if (pageToken != null) 'pageToken': [pageToken], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name') + '/operations'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return GoogleLongrunningListOperationsResponse.fromJson( + response_ as core.Map); + } + + /// 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. + /// + /// Request parameters: + /// + /// [name] - The name of the operation resource to wait on. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/metadataStores/\[^/\]+/contexts/\[^/\]+/operations/\[^/\]+$`. + /// + /// [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. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleLongrunningOperation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future wait( + core.String name, { + core.String? timeout, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (timeout != null) 'timeout': [timeout], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':wait'; + + final response_ = await _requester.request( + url_, + 'POST', + queryParams: queryParams_, + ); + return GoogleLongrunningOperation.fromJson( + response_ as core.Map); + } +} + class ProjectsLocationsMetadataStoresExecutionsResource { final commons.ApiRequester _requester; + ProjectsLocationsMetadataStoresExecutionsOperationsResource get operations => + ProjectsLocationsMetadataStoresExecutionsOperationsResource(_requester); + ProjectsLocationsMetadataStoresExecutionsResource(commons.ApiRequester client) : _requester = client; @@ -12880,6 +13647,245 @@ class ProjectsLocationsMetadataStoresExecutionsResource { } } +class ProjectsLocationsMetadataStoresExecutionsOperationsResource { + final commons.ApiRequester _requester; + + ProjectsLocationsMetadataStoresExecutionsOperationsResource( + commons.ApiRequester client) + : _requester = client; + + /// Starts asynchronous cancellation on a long-running operation. + /// + /// The server makes a best effort to cancel the operation, but success is not + /// guaranteed. If the server doesn't support this method, it returns + /// `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation + /// or other methods to check whether the cancellation succeeded or whether + /// the operation completed despite cancellation. On successful cancellation, + /// the operation is not deleted; instead, it becomes an operation with an + /// Operation.error value with a google.rpc.Status.code of 1, corresponding to + /// `Code.CANCELLED`. + /// + /// Request parameters: + /// + /// [name] - The name of the operation resource to be cancelled. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/metadataStores/\[^/\]+/executions/\[^/\]+/operations/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleProtobufEmpty]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future cancel( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':cancel'; + + final response_ = await _requester.request( + url_, + 'POST', + queryParams: queryParams_, + ); + return GoogleProtobufEmpty.fromJson( + response_ as core.Map); + } + + /// Deletes a long-running operation. + /// + /// This method indicates that the client is no longer interested in the + /// operation result. It does not cancel the operation. If the server doesn't + /// support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. + /// + /// Request parameters: + /// + /// [name] - The name of the operation resource to be deleted. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/metadataStores/\[^/\]+/executions/\[^/\]+/operations/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleProtobufEmpty]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future delete( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'DELETE', + queryParams: queryParams_, + ); + return GoogleProtobufEmpty.fromJson( + response_ as core.Map); + } + + /// Gets the latest state of a long-running operation. + /// + /// Clients can use this method to poll the operation result at intervals as + /// recommended by the API service. + /// + /// Request parameters: + /// + /// [name] - The name of the operation resource. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/metadataStores/\[^/\]+/executions/\[^/\]+/operations/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleLongrunningOperation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return GoogleLongrunningOperation.fromJson( + response_ as core.Map); + } + + /// Lists operations that match the specified filter in the request. + /// + /// If the server doesn't support this method, it returns `UNIMPLEMENTED`. + /// + /// Request parameters: + /// + /// [name] - The name of the operation's parent resource. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/metadataStores/\[^/\]+/executions/\[^/\]+$`. + /// + /// [filter] - The standard list filter. + /// + /// [pageSize] - The standard list page size. + /// + /// [pageToken] - The standard list page token. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleLongrunningListOperationsResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future list( + core.String name, { + core.String? filter, + core.int? pageSize, + core.String? pageToken, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (filter != null) 'filter': [filter], + if (pageSize != null) 'pageSize': ['${pageSize}'], + if (pageToken != null) 'pageToken': [pageToken], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name') + '/operations'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return GoogleLongrunningListOperationsResponse.fromJson( + response_ as core.Map); + } + + /// 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. + /// + /// Request parameters: + /// + /// [name] - The name of the operation resource to wait on. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/metadataStores/\[^/\]+/executions/\[^/\]+/operations/\[^/\]+$`. + /// + /// [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. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleLongrunningOperation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future wait( + core.String name, { + core.String? timeout, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (timeout != null) 'timeout': [timeout], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':wait'; + + final response_ = await _requester.request( + url_, + 'POST', + queryParams: queryParams_, + ); + return GoogleLongrunningOperation.fromJson( + response_ as core.Map); + } +} + class ProjectsLocationsMetadataStoresMetadataSchemasResource { final commons.ApiRequester _requester; @@ -13040,6 +14046,244 @@ class ProjectsLocationsMetadataStoresMetadataSchemasResource { } } +class ProjectsLocationsMetadataStoresOperationsResource { + final commons.ApiRequester _requester; + + ProjectsLocationsMetadataStoresOperationsResource(commons.ApiRequester client) + : _requester = client; + + /// Starts asynchronous cancellation on a long-running operation. + /// + /// The server makes a best effort to cancel the operation, but success is not + /// guaranteed. If the server doesn't support this method, it returns + /// `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation + /// or other methods to check whether the cancellation succeeded or whether + /// the operation completed despite cancellation. On successful cancellation, + /// the operation is not deleted; instead, it becomes an operation with an + /// Operation.error value with a google.rpc.Status.code of 1, corresponding to + /// `Code.CANCELLED`. + /// + /// Request parameters: + /// + /// [name] - The name of the operation resource to be cancelled. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/metadataStores/\[^/\]+/operations/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleProtobufEmpty]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future cancel( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':cancel'; + + final response_ = await _requester.request( + url_, + 'POST', + queryParams: queryParams_, + ); + return GoogleProtobufEmpty.fromJson( + response_ as core.Map); + } + + /// Deletes a long-running operation. + /// + /// This method indicates that the client is no longer interested in the + /// operation result. It does not cancel the operation. If the server doesn't + /// support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. + /// + /// Request parameters: + /// + /// [name] - The name of the operation resource to be deleted. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/metadataStores/\[^/\]+/operations/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleProtobufEmpty]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future delete( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'DELETE', + queryParams: queryParams_, + ); + return GoogleProtobufEmpty.fromJson( + response_ as core.Map); + } + + /// Gets the latest state of a long-running operation. + /// + /// Clients can use this method to poll the operation result at intervals as + /// recommended by the API service. + /// + /// Request parameters: + /// + /// [name] - The name of the operation resource. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/metadataStores/\[^/\]+/operations/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleLongrunningOperation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return GoogleLongrunningOperation.fromJson( + response_ as core.Map); + } + + /// Lists operations that match the specified filter in the request. + /// + /// If the server doesn't support this method, it returns `UNIMPLEMENTED`. + /// + /// Request parameters: + /// + /// [name] - The name of the operation's parent resource. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/metadataStores/\[^/\]+$`. + /// + /// [filter] - The standard list filter. + /// + /// [pageSize] - The standard list page size. + /// + /// [pageToken] - The standard list page token. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleLongrunningListOperationsResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future list( + core.String name, { + core.String? filter, + core.int? pageSize, + core.String? pageToken, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (filter != null) 'filter': [filter], + if (pageSize != null) 'pageSize': ['${pageSize}'], + if (pageToken != null) 'pageToken': [pageToken], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name') + '/operations'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return GoogleLongrunningListOperationsResponse.fromJson( + response_ as core.Map); + } + + /// 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. + /// + /// Request parameters: + /// + /// [name] - The name of the operation resource to wait on. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/metadataStores/\[^/\]+/operations/\[^/\]+$`. + /// + /// [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. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleLongrunningOperation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future wait( + core.String name, { + core.String? timeout, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (timeout != null) 'timeout': [timeout], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':wait'; + + final response_ = await _requester.request( + url_, + 'POST', + queryParams: queryParams_, + ); + return GoogleLongrunningOperation.fromJson( + response_ as core.Map); + } +} + class ProjectsLocationsMigratableResourcesResource { final commons.ApiRequester _requester; @@ -14269,6 +15513,64 @@ class ProjectsLocationsModelsResource { response_ as core.Map); } + /// Gets the access control policy for a resource. + /// + /// Returns an empty policy if the resource exists and does not have a policy + /// set. + /// + /// Request parameters: + /// + /// [resource] - REQUIRED: The resource for which the policy is being + /// requested. See + /// [Resource names](https://cloud.google.com/apis/design/resource_names) for + /// the appropriate value for this field. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/models/\[^/\]+$`. + /// + /// [options_requestedPolicyVersion] - Optional. The maximum policy version + /// that will be used to format the policy. Valid values are 0, 1, and 3. + /// Requests specifying an invalid value will be rejected. Requests for + /// policies with any conditional role bindings must specify version 3. + /// Policies with no conditional role bindings may specify any valid value or + /// leave the field unset. The policy in the response might use the policy + /// version that you specified, or it might use a lower policy version. For + /// example, if you specify version 3, but the policy has no conditional role + /// bindings, the response uses version 1. To learn which resources support + /// conditions in their IAM policies, see the + /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleIamV1Policy]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future getIamPolicy( + core.String resource, { + core.int? options_requestedPolicyVersion, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (options_requestedPolicyVersion != null) + 'options.requestedPolicyVersion': ['${options_requestedPolicyVersion}'], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$resource') + ':getIamPolicy'; + + final response_ = await _requester.request( + url_, + 'POST', + queryParams: queryParams_, + ); + return GoogleIamV1Policy.fromJson( + response_ as core.Map); + } + /// Lists Models in a Location. /// /// Request parameters: @@ -14496,6 +15798,107 @@ class ProjectsLocationsModelsResource { response_ as core.Map); } + /// Sets the access control policy on the specified resource. + /// + /// Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, + /// and `PERMISSION_DENIED` errors. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [resource] - REQUIRED: The resource for which the policy is being + /// specified. See + /// [Resource names](https://cloud.google.com/apis/design/resource_names) for + /// the appropriate value for this field. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/models/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleIamV1Policy]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future setIamPolicy( + GoogleIamV1SetIamPolicyRequest request, + core.String resource, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$resource') + ':setIamPolicy'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return GoogleIamV1Policy.fromJson( + response_ as core.Map); + } + + /// Returns permissions that a caller has on the specified resource. + /// + /// If the resource does not exist, this will return an empty set of + /// permissions, not a `NOT_FOUND` error. Note: This operation is designed to + /// be used for building permission-aware UIs and command-line tools, not for + /// authorization checking. This operation may "fail open" without warning. + /// + /// Request parameters: + /// + /// [resource] - REQUIRED: The resource for which the policy detail is being + /// requested. See + /// [Resource names](https://cloud.google.com/apis/design/resource_names) for + /// the appropriate value for this field. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/models/\[^/\]+$`. + /// + /// [permissions] - The set of permissions to check for the `resource`. + /// Permissions with wildcards (such as `*` or `storage.*`) are not allowed. + /// For more information see + /// [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions). + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleIamV1TestIamPermissionsResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future testIamPermissions( + core.String resource, { + core.List? permissions, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (permissions != null) 'permissions': permissions, + if ($fields != null) 'fields': [$fields], + }; + + final url_ = + 'v1/' + core.Uri.encodeFull('$resource') + ':testIamPermissions'; + + final response_ = await _requester.request( + url_, + 'POST', + queryParams: queryParams_, + ); + return GoogleIamV1TestIamPermissionsResponse.fromJson( + response_ as core.Map); + } + /// Incrementally update the dataset used for an examples model. /// /// [request] - The metadata request object. @@ -16329,6 +17732,51 @@ class ProjectsLocationsNotebookRuntimesResource { return GoogleLongrunningOperation.fromJson( response_ as core.Map); } + + /// Upgrades a NotebookRuntime. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [name] - Required. The name of the NotebookRuntime resource to be upgrade. + /// Instead of checking whether the name is in valid NotebookRuntime resource + /// name format, directly throw NotFound exception if there is no such + /// NotebookRuntime in spanner. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/notebookRuntimes/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleLongrunningOperation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future upgrade( + GoogleCloudAiplatformV1UpgradeNotebookRuntimeRequest request, + core.String name, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':upgrade'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return GoogleLongrunningOperation.fromJson( + response_ as core.Map); + } } class ProjectsLocationsOperationsResource { @@ -17187,6 +18635,50 @@ class ProjectsLocationsPublishersModelsResource { response_ as core.Map); } + /// Generate content with multimodal inputs. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [model] - Required. The name of the publisher model requested to serve the + /// prediction. Format: `projects/{project}/locations/{location}/publishers / + /// * /models / * ` + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/publishers/\[^/\]+/models/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleCloudAiplatformV1GenerateContentResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future generateContent( + GoogleCloudAiplatformV1GenerateContentRequest request, + core.String model, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$model') + ':generateContent'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return GoogleCloudAiplatformV1GenerateContentResponse.fromJson( + response_ as core.Map); + } + /// Perform an online prediction. /// /// [request] - The metadata request object. @@ -17326,6 +18818,96 @@ class ProjectsLocationsPublishersModelsResource { return GoogleCloudAiplatformV1StreamingPredictResponse.fromJson( response_ as core.Map); } + + /// Generate content with multimodal inputs with streaming support. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [model] - Required. The name of the publisher model requested to serve the + /// prediction. Format: `projects/{project}/locations/{location}/publishers / + /// * /models / * ` + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/publishers/\[^/\]+/models/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleCloudAiplatformV1GenerateContentResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future + streamGenerateContent( + GoogleCloudAiplatformV1GenerateContentRequest request, + core.String model, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = + 'v1/' + core.Uri.encodeFull('$model') + ':streamGenerateContent'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return GoogleCloudAiplatformV1GenerateContentResponse.fromJson( + response_ as core.Map); + } + + /// Perform a streaming online prediction with an arbitrary HTTP payload. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [endpoint] - Required. The name of the Endpoint requested to serve the + /// prediction. Format: + /// `projects/{project}/locations/{location}/endpoints/{endpoint}` + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/publishers/\[^/\]+/models/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleApiHttpBody]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future streamRawPredict( + GoogleCloudAiplatformV1StreamRawPredictRequest request, + core.String endpoint, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$endpoint') + ':streamRawPredict'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return GoogleApiHttpBody.fromJson( + response_ as core.Map); + } } class ProjectsLocationsSchedulesResource { @@ -19559,6 +21141,61 @@ class ProjectsLocationsTensorboardsResource { ProjectsLocationsTensorboardsResource(commons.ApiRequester client) : _requester = client; + /// Reads multiple TensorboardTimeSeries' data. + /// + /// The data point number limit is 1000 for scalars, 100 for tensors and blob + /// references. If the number of data points stored is less than the limit, + /// all data is returned. Otherwise, the number limit of data points is + /// randomly selected from this time series and returned. + /// + /// Request parameters: + /// + /// [tensorboard] - Required. The resource name of the Tensorboard containing + /// TensorboardTimeSeries to read data from. Format: + /// `projects/{project}/locations/{location}/tensorboards/{tensorboard}`. The + /// TensorboardTimeSeries referenced by time_series must be sub resources of + /// this Tensorboard. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/tensorboards/\[^/\]+$`. + /// + /// [timeSeries] - Required. The resource names of the TensorboardTimeSeries + /// to read data from. Format: + /// `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}` + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a + /// [GoogleCloudAiplatformV1BatchReadTensorboardTimeSeriesDataResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async + .Future + batchRead( + core.String tensorboard, { + core.List? timeSeries, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (timeSeries != null) 'timeSeries': timeSeries, + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$tensorboard') + ':batchRead'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return GoogleCloudAiplatformV1BatchReadTensorboardTimeSeriesDataResponse + .fromJson(response_ as core.Map); + } + /// Creates a Tensorboard. /// /// [request] - The metadata request object. @@ -19880,6 +21517,55 @@ class ProjectsLocationsTensorboardsExperimentsResource { ProjectsLocationsTensorboardsExperimentsResource(commons.ApiRequester client) : _requester = client; + /// Batch create TensorboardTimeSeries that belong to a TensorboardExperiment. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [parent] - Required. The resource name of the TensorboardExperiment to + /// create the TensorboardTimeSeries in. Format: + /// `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}` + /// The TensorboardRuns referenced by the parent fields in the + /// CreateTensorboardTimeSeriesRequest messages must be sub resources of this + /// TensorboardExperiment. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/tensorboards/\[^/\]+/experiments/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a + /// [GoogleCloudAiplatformV1BatchCreateTensorboardTimeSeriesResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future + batchCreate( + GoogleCloudAiplatformV1BatchCreateTensorboardTimeSeriesRequest request, + core.String parent, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$parent') + ':batchCreate'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return GoogleCloudAiplatformV1BatchCreateTensorboardTimeSeriesResponse + .fromJson(response_ as core.Map); + } + /// Creates a TensorboardExperiment. /// /// [request] - The metadata request object. @@ -21026,129 +22712,6 @@ class ProjectsLocationsTensorboardsExperimentsRunsTimeSeriesResource { commons.ApiRequester client) : _requester = client; - /// Batch create TensorboardTimeSeries that belong to a TensorboardExperiment. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [parent] - Required. The resource name of the TensorboardExperiment to - /// create the TensorboardTimeSeries in. Format: - /// `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}` - /// The TensorboardRuns referenced by the parent fields in the - /// CreateTensorboardTimeSeriesRequest messages must be sub resources of this - /// TensorboardExperiment. - /// Value must have pattern - /// `^projects/\[^/\]+/locations/\[^/\]+/tensorboards/\[^/\]+/experiments/\[^/\]+$`. - /// - /// [runsId] - null - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a - /// [GoogleCloudAiplatformV1BatchCreateTensorboardTimeSeriesResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future - batchCreate( - GoogleCloudAiplatformV1BatchCreateTensorboardTimeSeriesRequest request, - core.String parent, - core.String runsId, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/' + - core.Uri.encodeFull('$parent') + - '/runs/' + - commons.escapeVariable('$runsId') + - '/timeSeries:batchCreate'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return GoogleCloudAiplatformV1BatchCreateTensorboardTimeSeriesResponse - .fromJson(response_ as core.Map); - } - - /// Reads multiple TensorboardTimeSeries' data. - /// - /// The data point number limit is 1000 for scalars, 100 for tensors and blob - /// references. If the number of data points stored is less than the limit, - /// all data is returned. Otherwise, the number limit of data points is - /// randomly selected from this time series and returned. - /// - /// Request parameters: - /// - /// [tensorboard] - Required. The resource name of the Tensorboard containing - /// TensorboardTimeSeries to read data from. Format: - /// `projects/{project}/locations/{location}/tensorboards/{tensorboard}`. The - /// TensorboardTimeSeries referenced by time_series must be sub resources of - /// this Tensorboard. - /// Value must have pattern - /// `^projects/\[^/\]+/locations/\[^/\]+/tensorboards/\[^/\]+$`. - /// - /// [experimentsId] - null - /// - /// [runsId] - null - /// - /// [timeSeries] - Required. The resource names of the TensorboardTimeSeries - /// to read data from. Format: - /// `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}` - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a - /// [GoogleCloudAiplatformV1BatchReadTensorboardTimeSeriesDataResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async - .Future - batchRead( - core.String tensorboard, - core.String experimentsId, - core.String runsId, { - core.List? timeSeries, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (timeSeries != null) 'timeSeries': timeSeries, - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/' + - core.Uri.encodeFull('$tensorboard') + - '/experiments/' + - commons.escapeVariable('$experimentsId') + - '/runs/' + - commons.escapeVariable('$runsId') + - '/timeSeries:batchRead'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return GoogleCloudAiplatformV1BatchReadTensorboardTimeSeriesDataResponse - .fromJson(response_ as core.Map); - } - /// Creates a TensorboardTimeSeries. /// /// [request] - The metadata request object. @@ -24152,7 +25715,7 @@ class GoogleCloudAiplatformV1BatchPredictionJobInstanceConfig { /// /// Excluded will be attached to the batch prediction output if key_field is /// not specified. When excluded_fields is populated, included_fields must be - /// empty. The input must be JSONL with objects at each line, CSV, BigQuery or + /// empty. The input must be JSONL with objects at each line, BigQuery or /// TfRecord. core.List? excludedFields; @@ -24162,7 +25725,7 @@ class GoogleCloudAiplatformV1BatchPredictionJobInstanceConfig { /// If instance_type is `array`, the order of field names in included_fields /// also determines the order of the values in the array. When included_fields /// is populated, excluded_fields must be empty. The input must be JSONL with - /// objects at each line, CSV, BigQuery or TfRecord. + /// objects at each line, BigQuery or TfRecord. core.List? includedFields; /// The format of the instance that the Model accepts. @@ -24641,6 +26204,45 @@ class GoogleCloudAiplatformV1BigQuerySource { }; } +/// Raw media bytes. +/// +/// Text should not be sent as raw bytes, use the 'text' field. +class GoogleCloudAiplatformV1Blob { + /// Raw bytes for media formats. + /// + /// Required. + core.String? data; + core.List get dataAsBytes => convert.base64.decode(data!); + + set dataAsBytes(core.List bytes_) { + data = + convert.base64.encode(bytes_).replaceAll('/', '_').replaceAll('+', '-'); + } + + /// The IANA standard MIME type of the source data. + /// + /// Required. + core.String? mimeType; + + GoogleCloudAiplatformV1Blob({ + this.data, + this.mimeType, + }); + + GoogleCloudAiplatformV1Blob.fromJson(core.Map json_) + : this( + data: json_.containsKey('data') ? json_['data'] as core.String : null, + mimeType: json_.containsKey('mimeType') + ? json_['mimeType'] as core.String + : null, + ); + + core.Map toJson() => { + if (data != null) 'data': data!, + if (mimeType != null) 'mimeType': mimeType!, + }; +} + /// Config for blur baseline. /// /// When enabled, a linear path from the maximally blurred image to the input @@ -24715,9 +26317,212 @@ typedef GoogleCloudAiplatformV1CancelPipelineJobRequest = $Empty; /// Request message for PipelineService.CancelTrainingPipeline. typedef GoogleCloudAiplatformV1CancelTrainingPipelineRequest = $Empty; +/// A response candidate generated from the model. +class GoogleCloudAiplatformV1Candidate { + /// Source attribution of the generated content. + /// + /// Output only. + GoogleCloudAiplatformV1CitationMetadata? citationMetadata; + + /// Content parts of the candidate. + /// + /// Output only. + GoogleCloudAiplatformV1Content? content; + + /// Describes the reason the mode stopped generating tokens in more detail. + /// + /// This is only filled when `finish_reason` is set. + /// + /// Output only. + core.String? finishMessage; + + /// The reason why the model stopped generating tokens. + /// + /// If empty, the model has not stopped generating the tokens. + /// + /// Output only. + /// Possible string values are: + /// - "FINISH_REASON_UNSPECIFIED" : The finish reason is unspecified. + /// - "STOP" : Natural stop point of the model or provided stop sequence. + /// - "MAX_TOKENS" : The maximum number of tokens as specified in the request + /// was reached. + /// - "SAFETY" : The token generation was stopped as the response was flagged + /// for safety reasons. NOTE: When streaming the Candidate.content will be + /// empty if content filters blocked the output. + /// - "RECITATION" : The token generation was stopped as the response was + /// flagged for unauthorized citations. + /// - "OTHER" : All other reasons that stopped the token generation + core.String? finishReason; + + /// Metadata specifies sources used to ground generated content. + /// + /// Output only. + GoogleCloudAiplatformV1GroundingMetadata? groundingMetadata; + + /// Index of the candidate. + /// + /// Output only. + core.int? index; + + /// List of ratings for the safety of a response candidate. + /// + /// There is at most one rating per category. + /// + /// Output only. + core.List? safetyRatings; + + GoogleCloudAiplatformV1Candidate({ + this.citationMetadata, + this.content, + this.finishMessage, + this.finishReason, + this.groundingMetadata, + this.index, + this.safetyRatings, + }); + + GoogleCloudAiplatformV1Candidate.fromJson(core.Map json_) + : this( + citationMetadata: json_.containsKey('citationMetadata') + ? GoogleCloudAiplatformV1CitationMetadata.fromJson( + json_['citationMetadata'] + as core.Map) + : null, + content: json_.containsKey('content') + ? GoogleCloudAiplatformV1Content.fromJson( + json_['content'] as core.Map) + : null, + finishMessage: json_.containsKey('finishMessage') + ? json_['finishMessage'] as core.String + : null, + finishReason: json_.containsKey('finishReason') + ? json_['finishReason'] as core.String + : null, + groundingMetadata: json_.containsKey('groundingMetadata') + ? GoogleCloudAiplatformV1GroundingMetadata.fromJson( + json_['groundingMetadata'] + as core.Map) + : null, + index: json_.containsKey('index') ? json_['index'] as core.int : null, + safetyRatings: json_.containsKey('safetyRatings') + ? (json_['safetyRatings'] as core.List) + .map((value) => GoogleCloudAiplatformV1SafetyRating.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (citationMetadata != null) 'citationMetadata': citationMetadata!, + if (content != null) 'content': content!, + if (finishMessage != null) 'finishMessage': finishMessage!, + if (finishReason != null) 'finishReason': finishReason!, + if (groundingMetadata != null) 'groundingMetadata': groundingMetadata!, + if (index != null) 'index': index!, + if (safetyRatings != null) 'safetyRatings': safetyRatings!, + }; +} + /// Request message for VizierService.CheckTrialEarlyStoppingState. typedef GoogleCloudAiplatformV1CheckTrialEarlyStoppingStateRequest = $Empty; +/// Source attributions for content. +class GoogleCloudAiplatformV1Citation { + /// End index into the content. + /// + /// Output only. + core.int? endIndex; + + /// License of the attribution. + /// + /// Output only. + core.String? license; + + /// Publication date of the attribution. + /// + /// Output only. + GoogleTypeDate? publicationDate; + + /// Start index into the content. + /// + /// Output only. + core.int? startIndex; + + /// Title of the attribution. + /// + /// Output only. + core.String? title; + + /// Url reference of the attribution. + /// + /// Output only. + core.String? uri; + + GoogleCloudAiplatformV1Citation({ + this.endIndex, + this.license, + this.publicationDate, + this.startIndex, + this.title, + this.uri, + }); + + GoogleCloudAiplatformV1Citation.fromJson(core.Map json_) + : this( + endIndex: json_.containsKey('endIndex') + ? json_['endIndex'] as core.int + : null, + license: json_.containsKey('license') + ? json_['license'] as core.String + : null, + publicationDate: json_.containsKey('publicationDate') + ? GoogleTypeDate.fromJson(json_['publicationDate'] + as core.Map) + : null, + startIndex: json_.containsKey('startIndex') + ? json_['startIndex'] as core.int + : null, + title: + json_.containsKey('title') ? json_['title'] as core.String : null, + uri: json_.containsKey('uri') ? json_['uri'] as core.String : null, + ); + + core.Map toJson() => { + if (endIndex != null) 'endIndex': endIndex!, + if (license != null) 'license': license!, + if (publicationDate != null) 'publicationDate': publicationDate!, + if (startIndex != null) 'startIndex': startIndex!, + if (title != null) 'title': title!, + if (uri != null) 'uri': uri!, + }; +} + +/// A collection of source attributions for a piece of content. +class GoogleCloudAiplatformV1CitationMetadata { + /// List of citations. + /// + /// Output only. + core.List? citations; + + GoogleCloudAiplatformV1CitationMetadata({ + this.citations, + }); + + GoogleCloudAiplatformV1CitationMetadata.fromJson(core.Map json_) + : this( + citations: json_.containsKey('citations') + ? (json_['citations'] as core.List) + .map((value) => GoogleCloudAiplatformV1Citation.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (citations != null) 'citations': citations!, + }; +} + /// Request message for VizierService.CompleteTrial. class GoogleCloudAiplatformV1CompleteTrialRequest { /// If provided, it will be used as the completed Trial's final_measurement; @@ -24978,6 +26783,49 @@ class GoogleCloudAiplatformV1ContainerSpec { }; } +/// The base structured datatype containing multi-part content of a message. +/// +/// A `Content` includes a `role` field designating the producer of the +/// `Content` and a `parts` field containing multi-part data that contains the +/// content of the message turn. +class GoogleCloudAiplatformV1Content { + /// Ordered `Parts` that constitute a single message. + /// + /// Parts may have different IANA MIME types. + /// + /// Required. + core.List? parts; + + /// The producer of the content. + /// + /// Must be either 'user' or 'model'. Useful to set for multi-turn + /// conversations, otherwise can be left blank or unset. + /// + /// Optional. + core.String? role; + + GoogleCloudAiplatformV1Content({ + this.parts, + this.role, + }); + + GoogleCloudAiplatformV1Content.fromJson(core.Map json_) + : this( + parts: json_.containsKey('parts') + ? (json_['parts'] as core.List) + .map((value) => GoogleCloudAiplatformV1Part.fromJson( + value as core.Map)) + .toList() + : null, + role: json_.containsKey('role') ? json_['role'] as core.String : null, + ); + + core.Map toJson() => { + if (parts != null) 'parts': parts!, + if (role != null) 'role': role!, + }; +} + /// Instance of a general context. class GoogleCloudAiplatformV1Context { /// Timestamp when this Context was created. @@ -25184,6 +27032,11 @@ class GoogleCloudAiplatformV1CopyModelRequest { /// Request message for PredictionService.CountTokens. class GoogleCloudAiplatformV1CountTokensRequest { + /// Input content. + /// + /// Required. + core.List? contents; + /// The instances that are the input to token counting call. /// /// Schema is identical to the prediction schema of the underlying model. @@ -25194,19 +27047,39 @@ class GoogleCloudAiplatformV1CountTokensRequest { /// `String`, `bool` and `null` as well as `Map` and `List` values. core.List? instances; + /// The name of the publisher model requested to serve the prediction. + /// + /// Format: `projects/{project}/locations/{location}/publishers / * /models / + /// * ` + /// + /// Required. + core.String? model; + GoogleCloudAiplatformV1CountTokensRequest({ + this.contents, this.instances, + this.model, }); GoogleCloudAiplatformV1CountTokensRequest.fromJson(core.Map json_) : this( + contents: json_.containsKey('contents') + ? (json_['contents'] as core.List) + .map((value) => GoogleCloudAiplatformV1Content.fromJson( + value as core.Map)) + .toList() + : null, instances: json_.containsKey('instances') ? json_['instances'] as core.List : null, + model: + json_.containsKey('model') ? json_['model'] as core.String : null, ); core.Map toJson() => { + if (contents != null) 'contents': contents!, if (instances != null) 'instances': instances!, + if (model != null) 'model': model!, }; } @@ -25784,6 +27657,23 @@ class GoogleCloudAiplatformV1CustomJobSpec { /// Optional. core.String? experimentRun; + /// The name of the Model resources for which to generate a mapping to + /// artifact URIs. + /// + /// Applicable only to some of the Google-provided custom jobs. Format: + /// `projects/{project}/locations/{location}/models/{model}` In order to + /// retrieve a specific version of the model, also provide the version ID or + /// version alias. Example: + /// `projects/{project}/locations/{location}/models/{model}@2` or + /// `projects/{project}/locations/{location}/models/{model}@golden` If no + /// version ID or alias is specified, the "default" version will be returned. + /// The "default" version alias is created for the first version of the model, + /// and can be moved to other versions later on. There will be exactly one + /// default version. + /// + /// Optional. + core.List? models; + /// The full name of the Compute Engine /// \[network\](/compute/docs/networks-and-firewalls#networks) to which the /// Job should be peered. @@ -25850,6 +27740,7 @@ class GoogleCloudAiplatformV1CustomJobSpec { this.enableWebAccess, this.experiment, this.experimentRun, + this.models, this.network, this.protectedArtifactLocationId, this.reservedIpRanges, @@ -25878,6 +27769,11 @@ class GoogleCloudAiplatformV1CustomJobSpec { experimentRun: json_.containsKey('experimentRun') ? json_['experimentRun'] as core.String : null, + models: json_.containsKey('models') + ? (json_['models'] as core.List) + .map((value) => value as core.String) + .toList() + : null, network: json_.containsKey('network') ? json_['network'] as core.String : null, @@ -25917,6 +27813,7 @@ class GoogleCloudAiplatformV1CustomJobSpec { if (enableWebAccess != null) 'enableWebAccess': enableWebAccess!, if (experiment != null) 'experiment': experiment!, if (experimentRun != null) 'experimentRun': experimentRun!, + if (models != null) 'models': models!, if (network != null) 'network': network!, if (protectedArtifactLocationId != null) 'protectedArtifactLocationId': protectedArtifactLocationId!, @@ -26527,11 +28424,25 @@ class GoogleCloudAiplatformV1DatasetVersion { /// Output only. core.String? createTime; + /// The user-defined name of the DatasetVersion. + /// + /// The name can be up to 128 characters long and can consist of any UTF-8 + /// characters. + core.String? displayName; + /// Used to perform consistent read-modify-write updates. /// /// If not set, a blind "overwrite" update happens. core.String? etag; + /// Additional information about the DatasetVersion. + /// + /// Required. + /// + /// The values for Object must be JSON objects. It can consist of `num`, + /// `String`, `bool` and `null` as well as `Map` and `List` values. + core.Object? metadata; + /// The resource name of the DatasetVersion. /// /// Output only. @@ -26545,7 +28456,9 @@ class GoogleCloudAiplatformV1DatasetVersion { GoogleCloudAiplatformV1DatasetVersion({ this.bigQueryDatasetName, this.createTime, + this.displayName, this.etag, + this.metadata, this.name, this.updateTime, }); @@ -26558,7 +28471,11 @@ class GoogleCloudAiplatformV1DatasetVersion { createTime: json_.containsKey('createTime') ? json_['createTime'] as core.String : null, + displayName: json_.containsKey('displayName') + ? json_['displayName'] as core.String + : null, etag: json_.containsKey('etag') ? json_['etag'] as core.String : null, + metadata: json_.containsKey('metadata') ? json_['metadata'] : null, name: json_.containsKey('name') ? json_['name'] as core.String : null, updateTime: json_.containsKey('updateTime') ? json_['updateTime'] as core.String @@ -26569,7 +28486,9 @@ class GoogleCloudAiplatformV1DatasetVersion { if (bigQueryDatasetName != null) 'bigQueryDatasetName': bigQueryDatasetName!, if (createTime != null) 'createTime': createTime!, + if (displayName != null) 'displayName': displayName!, if (etag != null) 'etag': etag!, + if (metadata != null) 'metadata': metadata!, if (name != null) 'name': name!, if (updateTime != null) 'updateTime': updateTime!, }; @@ -27148,6 +29067,11 @@ class GoogleCloudAiplatformV1DeployedIndexRef { /// Immutable. core.String? deployedIndexId; + /// The display name of the DeployedIndex. + /// + /// Output only. + core.String? displayName; + /// A resource name of the IndexEndpoint. /// /// Immutable. @@ -27155,6 +29079,7 @@ class GoogleCloudAiplatformV1DeployedIndexRef { GoogleCloudAiplatformV1DeployedIndexRef({ this.deployedIndexId, + this.displayName, this.indexEndpoint, }); @@ -27163,6 +29088,9 @@ class GoogleCloudAiplatformV1DeployedIndexRef { deployedIndexId: json_.containsKey('deployedIndexId') ? json_['deployedIndexId'] as core.String : null, + displayName: json_.containsKey('displayName') + ? json_['displayName'] as core.String + : null, indexEndpoint: json_.containsKey('indexEndpoint') ? json_['indexEndpoint'] as core.String : null, @@ -27170,6 +29098,7 @@ class GoogleCloudAiplatformV1DeployedIndexRef { core.Map toJson() => { if (deployedIndexId != null) 'deployedIndexId': deployedIndexId!, + if (displayName != null) 'displayName': displayName!, if (indexEndpoint != null) 'indexEndpoint': indexEndpoint!, }; } @@ -27268,6 +29197,12 @@ class GoogleCloudAiplatformV1DeployedModel { /// the `iam.serviceAccounts.actAs` permission on this service account. core.String? serviceAccount; + /// The resource name of the shared DeploymentResourcePool to deploy on. + /// + /// Format: + /// `projects/{project}/locations/{location}/deploymentResourcePools/{deployment_resource_pool}` + core.String? sharedResources; + GoogleCloudAiplatformV1DeployedModel({ this.automaticResources, this.createTime, @@ -27281,6 +29216,7 @@ class GoogleCloudAiplatformV1DeployedModel { this.modelVersionId, this.privateEndpoints, this.serviceAccount, + this.sharedResources, }); GoogleCloudAiplatformV1DeployedModel.fromJson(core.Map json_) @@ -27326,6 +29262,9 @@ class GoogleCloudAiplatformV1DeployedModel { serviceAccount: json_.containsKey('serviceAccount') ? json_['serviceAccount'] as core.String : null, + sharedResources: json_.containsKey('sharedResources') + ? json_['sharedResources'] as core.String + : null, ); core.Map toJson() => { @@ -27345,6 +29284,7 @@ class GoogleCloudAiplatformV1DeployedModel { if (modelVersionId != null) 'modelVersionId': modelVersionId!, if (privateEndpoints != null) 'privateEndpoints': privateEndpoints!, if (serviceAccount != null) 'serviceAccount': serviceAccount!, + if (sharedResources != null) 'sharedResources': sharedResources!, }; } @@ -27461,6 +29401,137 @@ class GoogleCloudAiplatformV1DestinationFeatureSetting { }; } +/// Request message for PredictionService.DirectPredict. +class GoogleCloudAiplatformV1DirectPredictRequest { + /// The prediction input. + core.List? inputs; + + /// The parameters that govern the prediction. + GoogleCloudAiplatformV1Tensor? parameters; + + GoogleCloudAiplatformV1DirectPredictRequest({ + this.inputs, + this.parameters, + }); + + GoogleCloudAiplatformV1DirectPredictRequest.fromJson(core.Map json_) + : this( + inputs: json_.containsKey('inputs') + ? (json_['inputs'] as core.List) + .map((value) => GoogleCloudAiplatformV1Tensor.fromJson( + value as core.Map)) + .toList() + : null, + parameters: json_.containsKey('parameters') + ? GoogleCloudAiplatformV1Tensor.fromJson( + json_['parameters'] as core.Map) + : null, + ); + + core.Map toJson() => { + if (inputs != null) 'inputs': inputs!, + if (parameters != null) 'parameters': parameters!, + }; +} + +/// Response message for PredictionService.DirectPredict. +class GoogleCloudAiplatformV1DirectPredictResponse { + /// The prediction output. + core.List? outputs; + + /// The parameters that govern the prediction. + GoogleCloudAiplatformV1Tensor? parameters; + + GoogleCloudAiplatformV1DirectPredictResponse({ + this.outputs, + this.parameters, + }); + + GoogleCloudAiplatformV1DirectPredictResponse.fromJson(core.Map json_) + : this( + outputs: json_.containsKey('outputs') + ? (json_['outputs'] as core.List) + .map((value) => GoogleCloudAiplatformV1Tensor.fromJson( + value as core.Map)) + .toList() + : null, + parameters: json_.containsKey('parameters') + ? GoogleCloudAiplatformV1Tensor.fromJson( + json_['parameters'] as core.Map) + : null, + ); + + core.Map toJson() => { + if (outputs != null) 'outputs': outputs!, + if (parameters != null) 'parameters': parameters!, + }; +} + +/// Request message for PredictionService.DirectRawPredict. +class GoogleCloudAiplatformV1DirectRawPredictRequest { + /// The prediction input. + core.String? input; + core.List get inputAsBytes => convert.base64.decode(input!); + + set inputAsBytes(core.List bytes_) { + input = + convert.base64.encode(bytes_).replaceAll('/', '_').replaceAll('+', '-'); + } + + /// Fully qualified name of the API method being invoked to perform + /// predictions. + /// + /// Format: `/namespace.Service/Method/` Example: + /// `/tensorflow.serving.PredictionService/Predict` + core.String? methodName; + + GoogleCloudAiplatformV1DirectRawPredictRequest({ + this.input, + this.methodName, + }); + + GoogleCloudAiplatformV1DirectRawPredictRequest.fromJson(core.Map json_) + : this( + input: + json_.containsKey('input') ? json_['input'] as core.String : null, + methodName: json_.containsKey('methodName') + ? json_['methodName'] as core.String + : null, + ); + + core.Map toJson() => { + if (input != null) 'input': input!, + if (methodName != null) 'methodName': methodName!, + }; +} + +/// Response message for PredictionService.DirectRawPredict. +class GoogleCloudAiplatformV1DirectRawPredictResponse { + /// The prediction output. + core.String? output; + core.List get outputAsBytes => convert.base64.decode(output!); + + set outputAsBytes(core.List bytes_) { + output = + convert.base64.encode(bytes_).replaceAll('/', '_').replaceAll('+', '-'); + } + + GoogleCloudAiplatformV1DirectRawPredictResponse({ + this.output, + }); + + GoogleCloudAiplatformV1DirectRawPredictResponse.fromJson(core.Map json_) + : this( + output: json_.containsKey('output') + ? json_['output'] as core.String + : null, + ); + + core.Map toJson() => { + if (output != null) 'output': output!, + }; +} + /// Represents the spec of disk options. typedef GoogleCloudAiplatformV1DiskSpec = $Shared04; @@ -27604,6 +29675,14 @@ class GoogleCloudAiplatformV1Endpoint { GoogleCloudAiplatformV1PredictRequestResponseLoggingConfig? predictRequestResponseLoggingConfig; + /// Configuration for private service connect. + /// + /// network and private_service_connect_config are mutually exclusive. + /// + /// Optional. + GoogleCloudAiplatformV1PrivateServiceConnectConfig? + privateServiceConnectConfig; + /// A map from a DeployedModel's ID to the percentage of this Endpoint's /// traffic that should be forwarded to that DeployedModel. /// @@ -27630,6 +29709,7 @@ class GoogleCloudAiplatformV1Endpoint { this.name, this.network, this.predictRequestResponseLoggingConfig, + this.privateServiceConnectConfig, this.trafficSplit, this.updateTime, }); @@ -27683,6 +29763,12 @@ class GoogleCloudAiplatformV1Endpoint { .fromJson(json_['predictRequestResponseLoggingConfig'] as core.Map) : null, + privateServiceConnectConfig: + json_.containsKey('privateServiceConnectConfig') + ? GoogleCloudAiplatformV1PrivateServiceConnectConfig.fromJson( + json_['privateServiceConnectConfig'] + as core.Map) + : null, trafficSplit: json_.containsKey('trafficSplit') ? (json_['trafficSplit'] as core.Map) .map( @@ -27714,6 +29800,8 @@ class GoogleCloudAiplatformV1Endpoint { if (predictRequestResponseLoggingConfig != null) 'predictRequestResponseLoggingConfig': predictRequestResponseLoggingConfig!, + if (privateServiceConnectConfig != null) + 'privateServiceConnectConfig': privateServiceConnectConfig!, if (trafficSplit != null) 'trafficSplit': trafficSplit!, if (updateTime != null) 'updateTime': updateTime!, }; @@ -28738,7 +30826,14 @@ class GoogleCloudAiplatformV1Explanation { /// predicted output. For Models that predict multiple outputs, such as /// multiclass Models that predict multiple classes, each element explains one /// specific item. Attribution.output_index can be used to identify which - /// output this attribution is explaining. If users set + /// output this attribution is explaining. By default, we provide Shapley + /// values for the predicted class. However, you can configure the explanation + /// request to generate Shapley values for any other classes too. For example, + /// if a model predicts a probability of `0.4` for approving a loan + /// application, the model's decision is to reject the application since + /// `p(reject) = 0.6 > p(approve) = 0.4`, and the default Shapley values would + /// be computed for rejection decision and not approval, even though the + /// latter might be the positive class. If users set /// ExplanationParameters.top_k, the attributions are sorted by /// instance_output_value in descending order. If /// ExplanationParameters.output_indices is specified, the attributions are @@ -29560,12 +31655,38 @@ class GoogleCloudAiplatformV1ExplanationSpecOverride { /// Describes what part of the Dataset is to be exported, the destination of the /// export and how to export. class GoogleCloudAiplatformV1ExportDataConfig { + /// The Cloud Storage URI that points to a YAML file describing the annotation + /// schema. + /// + /// The schema is defined as an OpenAPI 3.0.2 + /// [Schema Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). + /// The schema files that can be used here are found in + /// gs://google-cloud-aiplatform/schema/dataset/annotation/, note that the + /// chosen schema must be consistent with metadata of the Dataset specified by + /// dataset_id. Only used for custom training data export use cases. Only + /// applicable to Datasets that have DataItems and Annotations. Only + /// Annotations that both match this schema and belong to DataItems not + /// ignored by the split method are used in respectively training, validation + /// or test role, depending on the role of the DataItem they are on. When used + /// in conjunction with annotations_filter, the Annotations used for training + /// are filtered by both annotations_filter and annotation_schema_uri. + core.String? annotationSchemaUri; + /// An expression for filtering what part of the Dataset is to be exported. /// /// Only Annotations that match this filter will be exported. The filter /// syntax is the same as in ListAnnotations. core.String? annotationsFilter; + /// Indicates the usage of the exported files. + /// Possible string values are: + /// - "EXPORT_USE_UNSPECIFIED" : Regular user export. + /// - "CUSTOM_CODE_TRAINING" : Export for custom code training. + core.String? exportUse; + + /// Split based on the provided filters for each set. + GoogleCloudAiplatformV1ExportFilterSplit? filterSplit; + /// Split based on fractions defining the size of each set. GoogleCloudAiplatformV1ExportFractionSplit? fractionSplit; @@ -29580,17 +31701,43 @@ class GoogleCloudAiplatformV1ExportDataConfig { /// describe the output format. GoogleCloudAiplatformV1GcsDestination? gcsDestination; + /// The ID of a SavedQuery (annotation set) under the Dataset specified by + /// dataset_id used for filtering Annotations for training. + /// + /// Only used for custom training data export use cases. Only applicable to + /// Datasets that have SavedQueries. Only Annotations that are associated with + /// this SavedQuery are used in respectively training. When used in + /// conjunction with annotations_filter, the Annotations used for training are + /// filtered by both saved_query_id and annotations_filter. Only one of + /// saved_query_id and annotation_schema_uri should be specified as both of + /// them represent the same thing: problem type. + core.String? savedQueryId; + GoogleCloudAiplatformV1ExportDataConfig({ + this.annotationSchemaUri, this.annotationsFilter, + this.exportUse, + this.filterSplit, this.fractionSplit, this.gcsDestination, + this.savedQueryId, }); GoogleCloudAiplatformV1ExportDataConfig.fromJson(core.Map json_) : this( + annotationSchemaUri: json_.containsKey('annotationSchemaUri') + ? json_['annotationSchemaUri'] as core.String + : null, annotationsFilter: json_.containsKey('annotationsFilter') ? json_['annotationsFilter'] as core.String : null, + exportUse: json_.containsKey('exportUse') + ? json_['exportUse'] as core.String + : null, + filterSplit: json_.containsKey('filterSplit') + ? GoogleCloudAiplatformV1ExportFilterSplit.fromJson( + json_['filterSplit'] as core.Map) + : null, fractionSplit: json_.containsKey('fractionSplit') ? GoogleCloudAiplatformV1ExportFractionSplit.fromJson( json_['fractionSplit'] as core.Map) @@ -29600,12 +31747,20 @@ class GoogleCloudAiplatformV1ExportDataConfig { json_['gcsDestination'] as core.Map) : null, + savedQueryId: json_.containsKey('savedQueryId') + ? json_['savedQueryId'] as core.String + : null, ); core.Map toJson() => { + if (annotationSchemaUri != null) + 'annotationSchemaUri': annotationSchemaUri!, if (annotationsFilter != null) 'annotationsFilter': annotationsFilter!, + if (exportUse != null) 'exportUse': exportUse!, + if (filterSplit != null) 'filterSplit': filterSplit!, if (fractionSplit != null) 'fractionSplit': fractionSplit!, if (gcsDestination != null) 'gcsDestination': gcsDestination!, + if (savedQueryId != null) 'savedQueryId': savedQueryId!, }; } @@ -29780,6 +31935,14 @@ class GoogleCloudAiplatformV1ExportFeatureValuesRequestSnapshotExport { }; } +/// Assigns input data to training, validation, and test sets based on the given +/// filters, data pieces not matched by any filter are ignored. +/// +/// Currently only supported for Datasets containing DataItems. If any of the +/// filters in this message are to match nothing, then they can be set as '-' +/// (the minus sign). Supported only for unstructured Datasets. +typedef GoogleCloudAiplatformV1ExportFilterSplit = $FilterSplit; + /// Assigns the input data to training, validation, and test sets as per the /// given fractions. /// @@ -30028,6 +32191,11 @@ class GoogleCloudAiplatformV1Feature { /// Immutable. core.String? name; + /// Entity responsible for maintaining this feature. + /// + /// Can be comma separated list of email addresses or URIs. + core.String? pointOfContact; + /// Only applicable for Vertex AI Feature Store (Legacy). /// /// Timestamp when this EntityType was most recently updated. @@ -30055,7 +32223,7 @@ class GoogleCloudAiplatformV1Feature { /// Only applicable for Vertex AI Feature Store. /// - /// The name of the BigQuery Table/View columnn hosting data for this version. + /// The name of the BigQuery Table/View column hosting data for this version. /// If no value is provided, will use feature_id. core.String? versionColumnName; @@ -30067,6 +32235,7 @@ class GoogleCloudAiplatformV1Feature { this.labels, this.monitoringStatsAnomalies, this.name, + this.pointOfContact, this.updateTime, this.valueType, this.versionColumnName, @@ -30102,6 +32271,9 @@ class GoogleCloudAiplatformV1Feature { .toList() : null, name: json_.containsKey('name') ? json_['name'] as core.String : null, + pointOfContact: json_.containsKey('pointOfContact') + ? json_['pointOfContact'] as core.String + : null, updateTime: json_.containsKey('updateTime') ? json_['updateTime'] as core.String : null, @@ -30122,6 +32294,7 @@ class GoogleCloudAiplatformV1Feature { if (monitoringStatsAnomalies != null) 'monitoringStatsAnomalies': monitoringStatsAnomalies!, if (name != null) 'name': name!, + if (pointOfContact != null) 'pointOfContact': pointOfContact!, if (updateTime != null) 'updateTime': updateTime!, if (valueType != null) 'valueType': valueType!, if (versionColumnName != null) 'versionColumnName': versionColumnName!, @@ -30167,12 +32340,10 @@ class GoogleCloudAiplatformV1FeatureGroup { /// Optional. core.Map? labels; - /// Name of the FeatureGroup. + /// Identifier. /// - /// Format: + /// Name of the FeatureGroup. Format: /// `projects/{project}/locations/{location}/featureGroups/{featureGroup}` - /// - /// Output only. core.String? name; /// Timestamp when this FeatureGroup was last updated. @@ -30237,8 +32408,7 @@ class GoogleCloudAiplatformV1FeatureGroupBigQuery { /// Columns to construct entity_id / row keys. /// - /// Currently only supports 1 entity_id_column. If not provided defaults to - /// `entity_id`. + /// If not provided defaults to `entity_id`. /// /// Optional. core.List? entityIdColumns; @@ -30412,12 +32582,10 @@ class GoogleCloudAiplatformV1FeatureOnlineStore { /// Optional. core.Map? labels; - /// Name of the FeatureOnlineStore. + /// Identifier. /// - /// Format: + /// Name of the FeatureOnlineStore. Format: /// `projects/{project}/locations/{location}/featureOnlineStores/{featureOnlineStore}` - /// - /// Output only. core.String? name; /// State of the featureOnlineStore. @@ -30959,12 +33127,10 @@ class GoogleCloudAiplatformV1FeatureView { /// Optional. core.Map? labels; - /// Name of the FeatureView. + /// Identifier. /// - /// Format: + /// Name of the FeatureView. Format: /// `projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}` - /// - /// Output only. core.String? name; /// Configures when data is to be synced/updated for this FeatureView. @@ -31039,8 +33205,6 @@ class GoogleCloudAiplatformV1FeatureView { class GoogleCloudAiplatformV1FeatureViewBigQuerySource { /// Columns to construct entity_id / row keys. /// - /// Start by supporting 1 only. - /// /// Required. core.List? entityIdColumns; @@ -31073,23 +33237,60 @@ class GoogleCloudAiplatformV1FeatureViewBigQuerySource { /// Lookup key for a feature view. class GoogleCloudAiplatformV1FeatureViewDataKey { + /// The actual Entity ID will be composed from this struct. + /// + /// This should match with the way ID is defined in the FeatureView spec. + GoogleCloudAiplatformV1FeatureViewDataKeyCompositeKey? compositeKey; + /// String key to use for lookup. core.String? key; GoogleCloudAiplatformV1FeatureViewDataKey({ + this.compositeKey, this.key, }); GoogleCloudAiplatformV1FeatureViewDataKey.fromJson(core.Map json_) : this( + compositeKey: json_.containsKey('compositeKey') + ? GoogleCloudAiplatformV1FeatureViewDataKeyCompositeKey.fromJson( + json_['compositeKey'] as core.Map) + : null, key: json_.containsKey('key') ? json_['key'] as core.String : null, ); core.Map toJson() => { + if (compositeKey != null) 'compositeKey': compositeKey!, if (key != null) 'key': key!, }; } +/// ID that is comprised from several parts (columns). +class GoogleCloudAiplatformV1FeatureViewDataKeyCompositeKey { + /// Parts to construct Entity ID. + /// + /// Should match with the same ID columns as defined in FeatureView in the + /// same order. + core.List? parts; + + GoogleCloudAiplatformV1FeatureViewDataKeyCompositeKey({ + this.parts, + }); + + GoogleCloudAiplatformV1FeatureViewDataKeyCompositeKey.fromJson(core.Map json_) + : this( + parts: json_.containsKey('parts') + ? (json_['parts'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + ); + + core.Map toJson() => { + if (parts != null) 'parts': parts!, + }; +} + /// A Feature Registry source for features that need to be synced to Online /// Store. class GoogleCloudAiplatformV1FeatureViewFeatureRegistrySource { @@ -31100,8 +33301,14 @@ class GoogleCloudAiplatformV1FeatureViewFeatureRegistrySource { GoogleCloudAiplatformV1FeatureViewFeatureRegistrySourceFeatureGroup>? featureGroups; + /// The project number of the parent project of the Feature Groups. + /// + /// Optional. + core.String? projectNumber; + GoogleCloudAiplatformV1FeatureViewFeatureRegistrySource({ this.featureGroups, + this.projectNumber, }); GoogleCloudAiplatformV1FeatureViewFeatureRegistrySource.fromJson( @@ -31115,10 +33322,14 @@ class GoogleCloudAiplatformV1FeatureViewFeatureRegistrySource { value as core.Map)) .toList() : null, + projectNumber: json_.containsKey('projectNumber') + ? json_['projectNumber'] as core.String + : null, ); core.Map toJson() => { if (featureGroups != null) 'featureGroups': featureGroups!, + if (projectNumber != null) 'projectNumber': projectNumber!, }; } @@ -31176,12 +33387,10 @@ class GoogleCloudAiplatformV1FeatureViewSync { /// Output only. GoogleRpcStatus? finalStatus; - /// Name of the FeatureViewSync. + /// Identifier. /// - /// Format: + /// Name of the FeatureViewSync. Format: /// `projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}/featureViewSyncs/{feature_view_sync}` - /// - /// Output only. core.String? name; /// Time when this FeatureViewSync is finished. @@ -31189,11 +33398,17 @@ class GoogleCloudAiplatformV1FeatureViewSync { /// Output only. GoogleTypeInterval? runTime; + /// Summary of the sync job. + /// + /// Output only. + GoogleCloudAiplatformV1FeatureViewSyncSyncSummary? syncSummary; + GoogleCloudAiplatformV1FeatureViewSync({ this.createTime, this.finalStatus, this.name, this.runTime, + this.syncSummary, }); GoogleCloudAiplatformV1FeatureViewSync.fromJson(core.Map json_) @@ -31210,6 +33425,10 @@ class GoogleCloudAiplatformV1FeatureViewSync { ? GoogleTypeInterval.fromJson( json_['runTime'] as core.Map) : null, + syncSummary: json_.containsKey('syncSummary') + ? GoogleCloudAiplatformV1FeatureViewSyncSyncSummary.fromJson( + json_['syncSummary'] as core.Map) + : null, ); core.Map toJson() => { @@ -31217,9 +33436,13 @@ class GoogleCloudAiplatformV1FeatureViewSync { if (finalStatus != null) 'finalStatus': finalStatus!, if (name != null) 'name': name!, if (runTime != null) 'runTime': runTime!, + if (syncSummary != null) 'syncSummary': syncSummary!, }; } +/// Configuration for Sync. +/// +/// Only one option is set. class GoogleCloudAiplatformV1FeatureViewSyncConfig { /// Cron schedule (https://en.wikipedia.org/wiki/Cron) to launch scheduled /// runs. @@ -31245,6 +33468,42 @@ class GoogleCloudAiplatformV1FeatureViewSyncConfig { }; } +/// Summary from the Sync job. +/// +/// For continuous syncs, the summary is updated periodically. For batch syncs, +/// it gets updated on completion of the sync. +class GoogleCloudAiplatformV1FeatureViewSyncSyncSummary { + /// Total number of rows synced. + /// + /// Output only. + core.String? rowSynced; + + /// BigQuery slot milliseconds consumed for the sync job. + /// + /// Output only. + core.String? totalSlot; + + GoogleCloudAiplatformV1FeatureViewSyncSyncSummary({ + this.rowSynced, + this.totalSlot, + }); + + GoogleCloudAiplatformV1FeatureViewSyncSyncSummary.fromJson(core.Map json_) + : this( + rowSynced: json_.containsKey('rowSynced') + ? json_['rowSynced'] as core.String + : null, + totalSlot: json_.containsKey('totalSlot') + ? json_['totalSlot'] as core.String + : null, + ); + + core.Map toJson() => { + if (rowSynced != null) 'rowSynced': rowSynced!, + if (totalSlot != null) 'totalSlot': totalSlot!, + }; +} + /// Vertex AI Feature Store provides a centralized repository for organizing, /// storing, and serving ML features. /// @@ -31848,72 +34107,47 @@ class GoogleCloudAiplatformV1FetchFeatureValuesResponseFeatureNameValuePairListF }; } -/// Assigns input data to training, validation, and test sets based on the given -/// filters, data pieces not matched by any filter are ignored. -/// -/// Currently only supported for Datasets containing DataItems. If any of the -/// filters in this message are to match nothing, then they can be set as '-' -/// (the minus sign). Supported only for unstructured Datasets. -class GoogleCloudAiplatformV1FilterSplit { - /// A filter on DataItems of the Dataset. - /// - /// DataItems that match this filter are used to test the Model. A filter with - /// same syntax as the one used in DatasetService.ListDataItems may be used. - /// If a single DataItem is matched by more than one of the FilterSplit - /// filters, then it is assigned to the first set that applies to it in the - /// training, validation, test order. - /// - /// Required. - core.String? testFilter; - - /// A filter on DataItems of the Dataset. - /// - /// DataItems that match this filter are used to train the Model. A filter - /// with same syntax as the one used in DatasetService.ListDataItems may be - /// used. If a single DataItem is matched by more than one of the FilterSplit - /// filters, then it is assigned to the first set that applies to it in the - /// training, validation, test order. +/// URI based data. +class GoogleCloudAiplatformV1FileData { + /// URI. /// /// Required. - core.String? trainingFilter; + core.String? fileUri; - /// A filter on DataItems of the Dataset. - /// - /// DataItems that match this filter are used to validate the Model. A filter - /// with same syntax as the one used in DatasetService.ListDataItems may be - /// used. If a single DataItem is matched by more than one of the FilterSplit - /// filters, then it is assigned to the first set that applies to it in the - /// training, validation, test order. + /// The IANA standard MIME type of the source data. /// /// Required. - core.String? validationFilter; + core.String? mimeType; - GoogleCloudAiplatformV1FilterSplit({ - this.testFilter, - this.trainingFilter, - this.validationFilter, + GoogleCloudAiplatformV1FileData({ + this.fileUri, + this.mimeType, }); - GoogleCloudAiplatformV1FilterSplit.fromJson(core.Map json_) + GoogleCloudAiplatformV1FileData.fromJson(core.Map json_) : this( - testFilter: json_.containsKey('testFilter') - ? json_['testFilter'] as core.String + fileUri: json_.containsKey('fileUri') + ? json_['fileUri'] as core.String : null, - trainingFilter: json_.containsKey('trainingFilter') - ? json_['trainingFilter'] as core.String - : null, - validationFilter: json_.containsKey('validationFilter') - ? json_['validationFilter'] as core.String + mimeType: json_.containsKey('mimeType') + ? json_['mimeType'] as core.String : null, ); core.Map toJson() => { - if (testFilter != null) 'testFilter': testFilter!, - if (trainingFilter != null) 'trainingFilter': trainingFilter!, - if (validationFilter != null) 'validationFilter': validationFilter!, + if (fileUri != null) 'fileUri': fileUri!, + if (mimeType != null) 'mimeType': mimeType!, }; } +/// Assigns input data to training, validation, and test sets based on the given +/// filters, data pieces not matched by any filter are ignored. +/// +/// Currently only supported for Datasets containing DataItems. If any of the +/// filters in this message are to match nothing, then they can be set as '-' +/// (the minus sign). Supported only for unstructured Datasets. +typedef GoogleCloudAiplatformV1FilterSplit = $FilterSplit; + /// The request message for MatchService.FindNeighbors. class GoogleCloudAiplatformV1FindNeighborsRequest { /// The ID of the DeployedIndex that will serve the request. @@ -32155,6 +34389,146 @@ class GoogleCloudAiplatformV1FindNeighborsResponseNeighbor { /// training, 10% for validation, and 10% for test. typedef GoogleCloudAiplatformV1FractionSplit = $FractionSplit; +/// A predicted \[FunctionCall\] returned from the model that contains a string +/// representing the \[FunctionDeclaration.name\] and a structured JSON object +/// containing the parameters and their values. +class GoogleCloudAiplatformV1FunctionCall { + /// The function parameters and values in JSON object format. + /// + /// See \[FunctionDeclaration.parameters\] for parameter details. + /// + /// Optional. Required. + /// + /// The values for Object must be JSON objects. It can consist of `num`, + /// `String`, `bool` and `null` as well as `Map` and `List` values. + core.Map? args; + + /// The name of the function to call. + /// + /// Matches \[FunctionDeclaration.name\]. + /// + /// Required. + core.String? name; + + GoogleCloudAiplatformV1FunctionCall({ + this.args, + this.name, + }); + + GoogleCloudAiplatformV1FunctionCall.fromJson(core.Map json_) + : this( + args: json_.containsKey('args') + ? json_['args'] as core.Map + : null, + name: json_.containsKey('name') ? json_['name'] as core.String : null, + ); + + core.Map toJson() => { + if (args != null) 'args': args!, + if (name != null) 'name': name!, + }; +} + +/// Structured representation of a function declaration as defined by the +/// [OpenAPI 3.0 specification](https://spec.openapis.org/oas/v3.0.3). +/// +/// Included in this declaration are the function name and parameters. This +/// FunctionDeclaration is a representation of a block of code that can be used +/// as a `Tool` by the model and executed by the client. +class GoogleCloudAiplatformV1FunctionDeclaration { + /// Description and purpose of the function. + /// + /// Model uses it to decide how and whether to call the function. + /// + /// Optional. + core.String? description; + + /// The name of the function to call. + /// + /// Must start with a letter or an underscore. Must be a-z, A-Z, 0-9, or + /// contain underscores and dashes, with a maximum length of 64. + /// + /// Required. + core.String? name; + + /// Describes the parameters to this function in JSON Schema Object format. + /// + /// Reflects the Open API 3.03 Parameter Object. string Key: the name of the + /// parameter. Parameter names are case sensitive. Schema Value: the Schema + /// defining the type used for the parameter. For function with no parameters, + /// this can be left unset. Example with 1 required and 1 optional parameter: + /// type: OBJECT properties: param1: type: STRING param2: type: INTEGER + /// required: - param1 + /// + /// Optional. + GoogleCloudAiplatformV1Schema? parameters; + + GoogleCloudAiplatformV1FunctionDeclaration({ + this.description, + this.name, + this.parameters, + }); + + GoogleCloudAiplatformV1FunctionDeclaration.fromJson(core.Map json_) + : this( + description: json_.containsKey('description') + ? json_['description'] as core.String + : null, + name: json_.containsKey('name') ? json_['name'] as core.String : null, + parameters: json_.containsKey('parameters') + ? GoogleCloudAiplatformV1Schema.fromJson( + json_['parameters'] as core.Map) + : null, + ); + + core.Map toJson() => { + if (description != null) 'description': description!, + if (name != null) 'name': name!, + if (parameters != null) 'parameters': parameters!, + }; +} + +/// The result output from a \[FunctionCall\] that contains a string +/// representing the \[FunctionDeclaration.name\] and a structured JSON object +/// containing any output from the function is used as context to the model. +/// +/// This should contain the result of a \[FunctionCall\] made based on model +/// prediction. +class GoogleCloudAiplatformV1FunctionResponse { + /// The name of the function to call. + /// + /// Matches \[FunctionDeclaration.name\] and \[FunctionCall.name\]. + /// + /// Required. + core.String? name; + + /// The function response in JSON object format. + /// + /// Required. + /// + /// The values for Object must be JSON objects. It can consist of `num`, + /// `String`, `bool` and `null` as well as `Map` and `List` values. + core.Map? response; + + GoogleCloudAiplatformV1FunctionResponse({ + this.name, + this.response, + }); + + GoogleCloudAiplatformV1FunctionResponse.fromJson(core.Map json_) + : this( + name: json_.containsKey('name') ? json_['name'] as core.String : null, + response: json_.containsKey('response') + ? json_['response'] as core.Map + : null, + ); + + core.Map toJson() => { + if (name != null) 'name': name!, + if (response != null) 'response': response!, + }; +} + /// The Google Cloud Storage location where the output is to be written to. class GoogleCloudAiplatformV1GcsDestination { /// Google Cloud Storage URI to output directory. @@ -32209,6 +34583,412 @@ class GoogleCloudAiplatformV1GcsSource { }; } +/// Request message for \[PredictionService.GenerateContent\]. +class GoogleCloudAiplatformV1GenerateContentRequest { + /// The content of the current conversation with the model. + /// + /// For single-turn queries, this is a single instance. For multi-turn + /// queries, this is a repeated field that contains conversation history + + /// latest request. + /// + /// Required. + core.List? contents; + + /// Generation config. + /// + /// Optional. + GoogleCloudAiplatformV1GenerationConfig? generationConfig; + + /// Per request settings for blocking unsafe content. + /// + /// Enforced on GenerateContentResponse.candidates. + /// + /// Optional. + core.List? safetySettings; + + /// A list of `Tools` the model may use to generate the next response. + /// + /// A `Tool` is a piece of code that enables the system to interact with + /// external systems to perform an action, or set of actions, outside of + /// knowledge and scope of the model. + /// + /// Optional. + core.List? tools; + + GoogleCloudAiplatformV1GenerateContentRequest({ + this.contents, + this.generationConfig, + this.safetySettings, + this.tools, + }); + + GoogleCloudAiplatformV1GenerateContentRequest.fromJson(core.Map json_) + : this( + contents: json_.containsKey('contents') + ? (json_['contents'] as core.List) + .map((value) => GoogleCloudAiplatformV1Content.fromJson( + value as core.Map)) + .toList() + : null, + generationConfig: json_.containsKey('generationConfig') + ? GoogleCloudAiplatformV1GenerationConfig.fromJson( + json_['generationConfig'] + as core.Map) + : null, + safetySettings: json_.containsKey('safetySettings') + ? (json_['safetySettings'] as core.List) + .map((value) => GoogleCloudAiplatformV1SafetySetting.fromJson( + value as core.Map)) + .toList() + : null, + tools: json_.containsKey('tools') + ? (json_['tools'] as core.List) + .map((value) => GoogleCloudAiplatformV1Tool.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (contents != null) 'contents': contents!, + if (generationConfig != null) 'generationConfig': generationConfig!, + if (safetySettings != null) 'safetySettings': safetySettings!, + if (tools != null) 'tools': tools!, + }; +} + +/// Response message for \[PredictionService.GenerateContent\]. +class GoogleCloudAiplatformV1GenerateContentResponse { + /// Generated candidates. + /// + /// Output only. + core.List? candidates; + + /// Content filter results for a prompt sent in the request. + /// + /// Note: Sent only in the first stream chunk. Only happens when no candidates + /// were generated due to content violations. + /// + /// Output only. + GoogleCloudAiplatformV1GenerateContentResponsePromptFeedback? promptFeedback; + + /// Usage metadata about the response(s). + GoogleCloudAiplatformV1GenerateContentResponseUsageMetadata? usageMetadata; + + GoogleCloudAiplatformV1GenerateContentResponse({ + this.candidates, + this.promptFeedback, + this.usageMetadata, + }); + + GoogleCloudAiplatformV1GenerateContentResponse.fromJson(core.Map json_) + : this( + candidates: json_.containsKey('candidates') + ? (json_['candidates'] as core.List) + .map((value) => GoogleCloudAiplatformV1Candidate.fromJson( + value as core.Map)) + .toList() + : null, + promptFeedback: json_.containsKey('promptFeedback') + ? GoogleCloudAiplatformV1GenerateContentResponsePromptFeedback + .fromJson(json_['promptFeedback'] + as core.Map) + : null, + usageMetadata: json_.containsKey('usageMetadata') + ? GoogleCloudAiplatformV1GenerateContentResponseUsageMetadata + .fromJson(json_['usageMetadata'] + as core.Map) + : null, + ); + + core.Map toJson() => { + if (candidates != null) 'candidates': candidates!, + if (promptFeedback != null) 'promptFeedback': promptFeedback!, + if (usageMetadata != null) 'usageMetadata': usageMetadata!, + }; +} + +/// Content filter results for a prompt sent in the request. +class GoogleCloudAiplatformV1GenerateContentResponsePromptFeedback { + /// Blocked reason. + /// + /// Output only. + /// Possible string values are: + /// - "BLOCKED_REASON_UNSPECIFIED" : Unspecified blocked reason. + /// - "SAFETY" : Candidates blocked due to safety. + /// - "OTHER" : Candidates blocked due to other reason. + core.String? blockReason; + + /// A readable block reason message. + /// + /// Output only. + core.String? blockReasonMessage; + + /// Safety ratings. + /// + /// Output only. + core.List? safetyRatings; + + GoogleCloudAiplatformV1GenerateContentResponsePromptFeedback({ + this.blockReason, + this.blockReasonMessage, + this.safetyRatings, + }); + + GoogleCloudAiplatformV1GenerateContentResponsePromptFeedback.fromJson( + core.Map json_) + : this( + blockReason: json_.containsKey('blockReason') + ? json_['blockReason'] as core.String + : null, + blockReasonMessage: json_.containsKey('blockReasonMessage') + ? json_['blockReasonMessage'] as core.String + : null, + safetyRatings: json_.containsKey('safetyRatings') + ? (json_['safetyRatings'] as core.List) + .map((value) => GoogleCloudAiplatformV1SafetyRating.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (blockReason != null) 'blockReason': blockReason!, + if (blockReasonMessage != null) + 'blockReasonMessage': blockReasonMessage!, + if (safetyRatings != null) 'safetyRatings': safetyRatings!, + }; +} + +/// Usage metadata about response(s). +class GoogleCloudAiplatformV1GenerateContentResponseUsageMetadata { + /// Number of tokens in the response(s). + core.int? candidatesTokenCount; + + /// Number of tokens in the request. + core.int? promptTokenCount; + core.int? totalTokenCount; + + GoogleCloudAiplatformV1GenerateContentResponseUsageMetadata({ + this.candidatesTokenCount, + this.promptTokenCount, + this.totalTokenCount, + }); + + GoogleCloudAiplatformV1GenerateContentResponseUsageMetadata.fromJson( + core.Map json_) + : this( + candidatesTokenCount: json_.containsKey('candidatesTokenCount') + ? json_['candidatesTokenCount'] as core.int + : null, + promptTokenCount: json_.containsKey('promptTokenCount') + ? json_['promptTokenCount'] as core.int + : null, + totalTokenCount: json_.containsKey('totalTokenCount') + ? json_['totalTokenCount'] as core.int + : null, + ); + + core.Map toJson() => { + if (candidatesTokenCount != null) + 'candidatesTokenCount': candidatesTokenCount!, + if (promptTokenCount != null) 'promptTokenCount': promptTokenCount!, + if (totalTokenCount != null) 'totalTokenCount': totalTokenCount!, + }; +} + +/// Generation config. +class GoogleCloudAiplatformV1GenerationConfig { + /// Number of candidates to generate. + /// + /// Optional. + core.int? candidateCount; + + /// The maximum number of output tokens to generate per message. + /// + /// Optional. + core.int? maxOutputTokens; + + /// Stop sequences. + /// + /// Optional. + core.List? stopSequences; + + /// Controls the randomness of predictions. + /// + /// Optional. + core.double? temperature; + + /// If specified, top-k sampling will be used. + /// + /// Optional. + core.double? topK; + + /// If specified, nucleus sampling will be used. + /// + /// Optional. + core.double? topP; + + GoogleCloudAiplatformV1GenerationConfig({ + this.candidateCount, + this.maxOutputTokens, + this.stopSequences, + this.temperature, + this.topK, + this.topP, + }); + + GoogleCloudAiplatformV1GenerationConfig.fromJson(core.Map json_) + : this( + candidateCount: json_.containsKey('candidateCount') + ? json_['candidateCount'] as core.int + : null, + maxOutputTokens: json_.containsKey('maxOutputTokens') + ? json_['maxOutputTokens'] as core.int + : null, + stopSequences: json_.containsKey('stopSequences') + ? (json_['stopSequences'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + temperature: json_.containsKey('temperature') + ? (json_['temperature'] as core.num).toDouble() + : null, + topK: json_.containsKey('topK') + ? (json_['topK'] as core.num).toDouble() + : null, + topP: json_.containsKey('topP') + ? (json_['topP'] as core.num).toDouble() + : null, + ); + + core.Map toJson() => { + if (candidateCount != null) 'candidateCount': candidateCount!, + if (maxOutputTokens != null) 'maxOutputTokens': maxOutputTokens!, + if (stopSequences != null) 'stopSequences': stopSequences!, + if (temperature != null) 'temperature': temperature!, + if (topK != null) 'topK': topK!, + if (topP != null) 'topP': topP!, + }; +} + +/// Grounding attribution. +class GoogleCloudAiplatformV1GroundingAttribution { + /// Confidence score of the attribution. + /// + /// Ranges from 0 to 1. 1 is the most confident. + /// + /// Optional. Output only. + core.double? confidenceScore; + + /// Segment of the content this attribution belongs to. + /// + /// Output only. + GoogleCloudAiplatformV1Segment? segment; + + /// Attribution from the web. + /// + /// Optional. + GoogleCloudAiplatformV1GroundingAttributionWeb? web; + + GoogleCloudAiplatformV1GroundingAttribution({ + this.confidenceScore, + this.segment, + this.web, + }); + + GoogleCloudAiplatformV1GroundingAttribution.fromJson(core.Map json_) + : this( + confidenceScore: json_.containsKey('confidenceScore') + ? (json_['confidenceScore'] as core.num).toDouble() + : null, + segment: json_.containsKey('segment') + ? GoogleCloudAiplatformV1Segment.fromJson( + json_['segment'] as core.Map) + : null, + web: json_.containsKey('web') + ? GoogleCloudAiplatformV1GroundingAttributionWeb.fromJson( + json_['web'] as core.Map) + : null, + ); + + core.Map toJson() => { + if (confidenceScore != null) 'confidenceScore': confidenceScore!, + if (segment != null) 'segment': segment!, + if (web != null) 'web': web!, + }; +} + +/// Attribution from the web. +class GoogleCloudAiplatformV1GroundingAttributionWeb { + /// Title of the attribution. + /// + /// Output only. + core.String? title; + + /// URI reference of the attribution. + /// + /// Output only. + core.String? uri; + + GoogleCloudAiplatformV1GroundingAttributionWeb({ + this.title, + this.uri, + }); + + GoogleCloudAiplatformV1GroundingAttributionWeb.fromJson(core.Map json_) + : this( + title: + json_.containsKey('title') ? json_['title'] as core.String : null, + uri: json_.containsKey('uri') ? json_['uri'] as core.String : null, + ); + + core.Map toJson() => { + if (title != null) 'title': title!, + if (uri != null) 'uri': uri!, + }; +} + +/// Metadata returned to client when grounding is enabled. +class GoogleCloudAiplatformV1GroundingMetadata { + /// List of grounding attributions. + /// + /// Optional. + core.List? groundingAttributions; + + /// Web search queries for the following-up web search. + /// + /// Optional. + core.List? webSearchQueries; + + GoogleCloudAiplatformV1GroundingMetadata({ + this.groundingAttributions, + this.webSearchQueries, + }); + + GoogleCloudAiplatformV1GroundingMetadata.fromJson(core.Map json_) + : this( + groundingAttributions: json_.containsKey('groundingAttributions') + ? (json_['groundingAttributions'] as core.List) + .map((value) => + GoogleCloudAiplatformV1GroundingAttribution.fromJson( + value as core.Map)) + .toList() + : null, + webSearchQueries: json_.containsKey('webSearchQueries') + ? (json_['webSearchQueries'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + ); + + core.Map toJson() => { + if (groundingAttributions != null) + 'groundingAttributions': groundingAttributions!, + if (webSearchQueries != null) 'webSearchQueries': webSearchQueries!, + }; +} + /// Represents a HyperparameterTuningJob. /// /// A HyperparameterTuningJob has a Study specification and multiple CustomJobs @@ -33074,6 +35854,7 @@ class GoogleCloudAiplatformV1IndexDatapointNumericRestriction { /// - "GREATER_EQUAL" : Datapoints are eligible iff their value is \>= the /// query's. /// - "GREATER" : Datapoints are eligible iff their value is \> the query's. + /// - "NOT_EQUAL" : Datapoints are eligible iff their value is != the query's. core.String? op; /// Represents 64 bit float. @@ -33380,6 +36161,13 @@ class GoogleCloudAiplatformV1IndexPrivateEndpoints { /// Output only. core.String? matchGrpcAddress; + /// PscAutomatedEndpoints is populated if private service connect is enabled + /// if PscAutomatedConfig is set. + /// + /// Output only. + core.List? + pscAutomatedEndpoints; + /// The name of the service attachment resource. /// /// Populated if private service connect is enabled. @@ -33389,6 +36177,7 @@ class GoogleCloudAiplatformV1IndexPrivateEndpoints { GoogleCloudAiplatformV1IndexPrivateEndpoints({ this.matchGrpcAddress, + this.pscAutomatedEndpoints, this.serviceAttachment, }); @@ -33397,6 +36186,13 @@ class GoogleCloudAiplatformV1IndexPrivateEndpoints { matchGrpcAddress: json_.containsKey('matchGrpcAddress') ? json_['matchGrpcAddress'] as core.String : null, + pscAutomatedEndpoints: json_.containsKey('pscAutomatedEndpoints') + ? (json_['pscAutomatedEndpoints'] as core.List) + .map((value) => + GoogleCloudAiplatformV1PscAutomatedEndpoints.fromJson( + value as core.Map)) + .toList() + : null, serviceAttachment: json_.containsKey('serviceAttachment') ? json_['serviceAttachment'] as core.String : null, @@ -33404,6 +36200,8 @@ class GoogleCloudAiplatformV1IndexPrivateEndpoints { core.Map toJson() => { if (matchGrpcAddress != null) 'matchGrpcAddress': matchGrpcAddress!, + if (pscAutomatedEndpoints != null) + 'pscAutomatedEndpoints': pscAutomatedEndpoints!, if (serviceAttachment != null) 'serviceAttachment': serviceAttachment!, }; } @@ -35423,6 +38221,7 @@ class GoogleCloudAiplatformV1MachineSpec { /// - "NVIDIA_TESLA_A100" : Nvidia Tesla A100 GPU. /// - "NVIDIA_A100_80GB" : Nvidia A100 80GB GPU. /// - "NVIDIA_L4" : Nvidia L4 GPU. + /// - "NVIDIA_H100_80GB" : Nvidia H100 80Gb GPU. /// - "TPU_V2" : TPU v2. /// - "TPU_V3" : TPU v3. /// - "TPU_V4_POD" : TPU v4. @@ -36384,7 +39183,7 @@ class GoogleCloudAiplatformV1Model { /// The path to the directory containing the Model artifact and any of its /// supporting files. /// - /// Not present for AutoML Models or Large Models. + /// Not required for AutoML Models. /// /// Immutable. core.String? artifactUri; @@ -36394,7 +39193,7 @@ class GoogleCloudAiplatformV1Model { /// The specification of the container that is to be used when deploying this /// Model. The specification is ingested upon ModelService.UploadModel, and /// all binaries it contains are copied and stored internally by Vertex AI. - /// Not present for AutoML Models or Large Models. + /// Not required for AutoML Models. GoogleCloudAiplatformV1ModelContainerSpec? containerSpec; /// Timestamp when this Model was uploaded into Vertex AI. @@ -36402,6 +39201,12 @@ class GoogleCloudAiplatformV1Model { /// Output only. core.String? createTime; + /// Stats of data used for training or evaluating the Model. + /// + /// Only populated when the Model is trained by a TrainingPipeline with + /// data_input_config. + GoogleCloudAiplatformV1ModelDataStats? dataStats; + /// The pointers to DeployedModels created from this Model. /// /// Note that Model could have been deployed to Endpoints in different @@ -36490,7 +39295,7 @@ class GoogleCloudAiplatformV1Model { /// Source of a model. /// /// It can either be automl training pipeline, custom training pipeline, - /// BigQuery ML, or existing Vertex AI Model. + /// BigQuery ML, or saved and tuned from Genie or Model Garden. /// /// Output only. GoogleCloudAiplatformV1ModelSourceInfo? modelSourceInfo; @@ -36625,6 +39430,7 @@ class GoogleCloudAiplatformV1Model { this.artifactUri, this.containerSpec, this.createTime, + this.dataStats, this.deployedModels, this.description, this.displayName, @@ -36665,6 +39471,10 @@ class GoogleCloudAiplatformV1Model { createTime: json_.containsKey('createTime') ? json_['createTime'] as core.String : null, + dataStats: json_.containsKey('dataStats') + ? GoogleCloudAiplatformV1ModelDataStats.fromJson( + json_['dataStats'] as core.Map) + : null, deployedModels: json_.containsKey('deployedModels') ? (json_['deployedModels'] as core.List) .map((value) => @@ -36777,6 +39587,7 @@ class GoogleCloudAiplatformV1Model { if (artifactUri != null) 'artifactUri': artifactUri!, if (containerSpec != null) 'containerSpec': containerSpec!, if (createTime != null) 'createTime': createTime!, + if (dataStats != null) 'dataStats': dataStats!, if (deployedModels != null) 'deployedModels': deployedModels!, if (description != null) 'description': description!, if (displayName != null) 'displayName': displayName!, @@ -36885,7 +39696,7 @@ class GoogleCloudAiplatformV1ModelContainerSpec { /// Deployment timeout. /// - /// TODO (b/306244185): Revise documentation before exposing. + /// Limit for deployment timeout is 2 hours. /// /// Immutable. core.String? deploymentTimeout; @@ -36906,9 +39717,19 @@ class GoogleCloudAiplatformV1ModelContainerSpec { /// Immutable. core.List? env; - /// Specification for Kubernetes readiness probe. + /// List of ports to expose from the container. /// - /// TODO (b/306244185): Revise documentation before exposing. + /// Vertex AI sends gRPC prediction requests that it receives to the first + /// port on this list. Vertex AI also sends liveness and health checks to this + /// port. If you do not specify this field, gRPC requests to the container + /// will be disabled. Vertex AI does not use ports other than the first one + /// listed. This field corresponds to the `ports` field of the Kubernetes + /// Containers v1 core API. + /// + /// Immutable. + core.List? grpcPorts; + + /// Specification for Kubernetes readiness probe. /// /// Immutable. GoogleCloudAiplatformV1Probe? healthProbe; @@ -36998,15 +39819,11 @@ class GoogleCloudAiplatformV1ModelContainerSpec { /// The amount of the VM memory to reserve as the shared memory for the model /// in megabytes. /// - /// TODO (b/306244185): Revise documentation before exposing. - /// /// Immutable. core.String? sharedMemorySizeMb; /// Specification for Kubernetes startup probe. /// - /// TODO (b/306244185): Revise documentation before exposing. - /// /// Immutable. GoogleCloudAiplatformV1Probe? startupProbe; @@ -37015,6 +39832,7 @@ class GoogleCloudAiplatformV1ModelContainerSpec { this.command, this.deploymentTimeout, this.env, + this.grpcPorts, this.healthProbe, this.healthRoute, this.imageUri, @@ -37045,6 +39863,12 @@ class GoogleCloudAiplatformV1ModelContainerSpec { value as core.Map)) .toList() : null, + grpcPorts: json_.containsKey('grpcPorts') + ? (json_['grpcPorts'] as core.List) + .map((value) => GoogleCloudAiplatformV1Port.fromJson( + value as core.Map)) + .toList() + : null, healthProbe: json_.containsKey('healthProbe') ? GoogleCloudAiplatformV1Probe.fromJson( json_['healthProbe'] as core.Map) @@ -37078,6 +39902,7 @@ class GoogleCloudAiplatformV1ModelContainerSpec { if (command != null) 'command': command!, if (deploymentTimeout != null) 'deploymentTimeout': deploymentTimeout!, if (env != null) 'env': env!, + if (grpcPorts != null) 'grpcPorts': grpcPorts!, if (healthProbe != null) 'healthProbe': healthProbe!, if (healthRoute != null) 'healthRoute': healthRoute!, if (imageUri != null) 'imageUri': imageUri!, @@ -37089,6 +39914,86 @@ class GoogleCloudAiplatformV1ModelContainerSpec { }; } +/// Stats of data used for train or evaluate the Model. +class GoogleCloudAiplatformV1ModelDataStats { + /// Number of Annotations that are used for evaluating this Model. + /// + /// If the Model is evaluated multiple times, this will be the number of test + /// Annotations used by the first evaluation. If the Model is not evaluated, + /// the number is 0. + core.String? testAnnotationsCount; + + /// Number of DataItems that were used for evaluating this Model. + /// + /// If the Model is evaluated multiple times, this will be the number of test + /// DataItems used by the first evaluation. If the Model is not evaluated, the + /// number is 0. + core.String? testDataItemsCount; + + /// Number of Annotations that are used for training this Model. + core.String? trainingAnnotationsCount; + + /// Number of DataItems that were used for training this Model. + core.String? trainingDataItemsCount; + + /// Number of Annotations that are used for validating this Model during + /// training. + core.String? validationAnnotationsCount; + + /// Number of DataItems that were used for validating this Model during + /// training. + core.String? validationDataItemsCount; + + GoogleCloudAiplatformV1ModelDataStats({ + this.testAnnotationsCount, + this.testDataItemsCount, + this.trainingAnnotationsCount, + this.trainingDataItemsCount, + this.validationAnnotationsCount, + this.validationDataItemsCount, + }); + + GoogleCloudAiplatformV1ModelDataStats.fromJson(core.Map json_) + : this( + testAnnotationsCount: json_.containsKey('testAnnotationsCount') + ? json_['testAnnotationsCount'] as core.String + : null, + testDataItemsCount: json_.containsKey('testDataItemsCount') + ? json_['testDataItemsCount'] as core.String + : null, + trainingAnnotationsCount: + json_.containsKey('trainingAnnotationsCount') + ? json_['trainingAnnotationsCount'] as core.String + : null, + trainingDataItemsCount: json_.containsKey('trainingDataItemsCount') + ? json_['trainingDataItemsCount'] as core.String + : null, + validationAnnotationsCount: + json_.containsKey('validationAnnotationsCount') + ? json_['validationAnnotationsCount'] as core.String + : null, + validationDataItemsCount: + json_.containsKey('validationDataItemsCount') + ? json_['validationDataItemsCount'] as core.String + : null, + ); + + core.Map toJson() => { + if (testAnnotationsCount != null) + 'testAnnotationsCount': testAnnotationsCount!, + if (testDataItemsCount != null) + 'testDataItemsCount': testDataItemsCount!, + if (trainingAnnotationsCount != null) + 'trainingAnnotationsCount': trainingAnnotationsCount!, + if (trainingDataItemsCount != null) + 'trainingDataItemsCount': trainingDataItemsCount!, + if (validationAnnotationsCount != null) + 'validationAnnotationsCount': validationAnnotationsCount!, + if (validationDataItemsCount != null) + 'validationDataItemsCount': validationDataItemsCount!, + }; +} + /// ModelDeploymentMonitoringBigQueryTable specifies the BigQuery table name as /// well as some information of the logs stored in this table. class GoogleCloudAiplatformV1ModelDeploymentMonitoringBigQueryTable { @@ -37112,10 +40017,18 @@ class GoogleCloudAiplatformV1ModelDeploymentMonitoringBigQueryTable { /// - "EXPLAIN" : Explain logs. core.String? logType; + /// The schema version of the request/response logging BigQuery table. + /// + /// Default to v1 if unset. + /// + /// Output only. + core.String? requestResponseLoggingSchemaVersion; + GoogleCloudAiplatformV1ModelDeploymentMonitoringBigQueryTable({ this.bigqueryTablePath, this.logSource, this.logType, + this.requestResponseLoggingSchemaVersion, }); GoogleCloudAiplatformV1ModelDeploymentMonitoringBigQueryTable.fromJson( @@ -37130,12 +40043,19 @@ class GoogleCloudAiplatformV1ModelDeploymentMonitoringBigQueryTable { logType: json_.containsKey('logType') ? json_['logType'] as core.String : null, + requestResponseLoggingSchemaVersion: + json_.containsKey('requestResponseLoggingSchemaVersion') + ? json_['requestResponseLoggingSchemaVersion'] as core.String + : null, ); core.Map toJson() => { if (bigqueryTablePath != null) 'bigqueryTablePath': bigqueryTablePath!, if (logSource != null) 'logSource': logSource!, if (logType != null) 'logType': logType!, + if (requestResponseLoggingSchemaVersion != null) + 'requestResponseLoggingSchemaVersion': + requestResponseLoggingSchemaVersion!, }; } @@ -37650,7 +40570,8 @@ class GoogleCloudAiplatformV1ModelEvaluation { /// /// For the ModelEvaluation uploaded from Managed Pipeline, metadata contains /// a structured value with keys of "pipeline_job_id", - /// "evaluation_dataset_type", "evaluation_dataset_path". + /// "evaluation_dataset_type", "evaluation_dataset_path", + /// "row_based_metrics_path". /// /// The values for Object must be JSON objects. It can consist of `num`, /// `String`, `bool` and `null` as well as `Map` and `List` values. @@ -38180,6 +41101,7 @@ class GoogleCloudAiplatformV1ModelExportFormat { }; } +/// The alert config for model monitoring. class GoogleCloudAiplatformV1ModelMonitoringAlertConfig { /// Email alert config. GoogleCloudAiplatformV1ModelMonitoringAlertConfigEmailAlertConfig? @@ -38784,6 +41706,9 @@ class GoogleCloudAiplatformV1ModelSourceInfo { /// - "BQML" : The Model is registered and sync'ed from BigQuery ML. /// - "MODEL_GARDEN" : The Model is saved or tuned from Model Garden. /// - "GENIE" : The Model is saved or tuned from Genie. + /// - "CUSTOM_TEXT_EMBEDDING" : The Model is uploaded by text embedding + /// finetuning pipeline. + /// - "MARKETPLACE" : The Model is saved or tuned from Marketplace. core.String? sourceType; GoogleCloudAiplatformV1ModelSourceInfo({ @@ -39492,6 +42417,285 @@ class GoogleCloudAiplatformV1NasTrialDetail { }; } +/// A query to find a number of similar entities. +class GoogleCloudAiplatformV1NearestNeighborQuery { + /// The embedding vector that be used for similar search. + /// + /// Optional. + GoogleCloudAiplatformV1NearestNeighborQueryEmbedding? embedding; + + /// The entity id whose similar entities should be searched for. + /// + /// If embedding is set, search will use embedding instead of entity_id. + /// + /// Optional. + core.String? entityId; + + /// The number of similar entities to be retrieved from feature view for each + /// query. + /// + /// Optional. + core.int? neighborCount; + + /// Parameters that can be set to tune query on the fly. + /// + /// Optional. + GoogleCloudAiplatformV1NearestNeighborQueryParameters? parameters; + + /// Crowding is a constraint on a neighbor list produced by nearest neighbor + /// search requiring that no more than sper_crowding_attribute_neighbor_count + /// of the k neighbors returned have the same value of crowding_attribute. + /// + /// It's used for improving result diversity. + /// + /// Optional. + core.int? perCrowdingAttributeNeighborCount; + + /// The list of string filters. + /// + /// Optional. + core.List? + stringFilters; + + GoogleCloudAiplatformV1NearestNeighborQuery({ + this.embedding, + this.entityId, + this.neighborCount, + this.parameters, + this.perCrowdingAttributeNeighborCount, + this.stringFilters, + }); + + GoogleCloudAiplatformV1NearestNeighborQuery.fromJson(core.Map json_) + : this( + embedding: json_.containsKey('embedding') + ? GoogleCloudAiplatformV1NearestNeighborQueryEmbedding.fromJson( + json_['embedding'] as core.Map) + : null, + entityId: json_.containsKey('entityId') + ? json_['entityId'] as core.String + : null, + neighborCount: json_.containsKey('neighborCount') + ? json_['neighborCount'] as core.int + : null, + parameters: json_.containsKey('parameters') + ? GoogleCloudAiplatformV1NearestNeighborQueryParameters.fromJson( + json_['parameters'] as core.Map) + : null, + perCrowdingAttributeNeighborCount: + json_.containsKey('perCrowdingAttributeNeighborCount') + ? json_['perCrowdingAttributeNeighborCount'] as core.int + : null, + stringFilters: json_.containsKey('stringFilters') + ? (json_['stringFilters'] as core.List) + .map((value) => + GoogleCloudAiplatformV1NearestNeighborQueryStringFilter + .fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (embedding != null) 'embedding': embedding!, + if (entityId != null) 'entityId': entityId!, + if (neighborCount != null) 'neighborCount': neighborCount!, + if (parameters != null) 'parameters': parameters!, + if (perCrowdingAttributeNeighborCount != null) + 'perCrowdingAttributeNeighborCount': + perCrowdingAttributeNeighborCount!, + if (stringFilters != null) 'stringFilters': stringFilters!, + }; +} + +/// The embedding vector. +class GoogleCloudAiplatformV1NearestNeighborQueryEmbedding { + /// Individual value in the embedding. + /// + /// Optional. + core.List? value; + + GoogleCloudAiplatformV1NearestNeighborQueryEmbedding({ + this.value, + }); + + GoogleCloudAiplatformV1NearestNeighborQueryEmbedding.fromJson(core.Map json_) + : this( + value: json_.containsKey('value') + ? (json_['value'] as core.List) + .map((value) => (value as core.num).toDouble()) + .toList() + : null, + ); + + core.Map toJson() => { + if (value != null) 'value': value!, + }; +} + +/// Parameters that can be overrided in each query to tune query latency and +/// recall. +class GoogleCloudAiplatformV1NearestNeighborQueryParameters { + /// The number of neighbors to find via approximate search before exact + /// reordering is performed; if set, this value must be \> neighbor_count. + /// + /// Optional. + core.int? approximateNeighborCandidates; + + /// The fraction of the number of leaves to search, set at query time allows + /// user to tune search performance. + /// + /// This value increase result in both search accuracy and latency increase. + /// The value should be between 0.0 and 1.0. + /// + /// Optional. + core.double? leafNodesSearchFraction; + + GoogleCloudAiplatformV1NearestNeighborQueryParameters({ + this.approximateNeighborCandidates, + this.leafNodesSearchFraction, + }); + + GoogleCloudAiplatformV1NearestNeighborQueryParameters.fromJson(core.Map json_) + : this( + approximateNeighborCandidates: + json_.containsKey('approximateNeighborCandidates') + ? json_['approximateNeighborCandidates'] as core.int + : null, + leafNodesSearchFraction: json_.containsKey('leafNodesSearchFraction') + ? (json_['leafNodesSearchFraction'] as core.num).toDouble() + : null, + ); + + core.Map toJson() => { + if (approximateNeighborCandidates != null) + 'approximateNeighborCandidates': approximateNeighborCandidates!, + if (leafNodesSearchFraction != null) + 'leafNodesSearchFraction': leafNodesSearchFraction!, + }; +} + +/// String filter is used to search a subset of the entities by using boolean +/// rules on string columns. +/// +/// For example: if a query specifies string filter with 'name = color, +/// allow_tokens = {red, blue}, deny_tokens = {purple}',' then that query will +/// match entities that are red or blue, but if those points are also purple, +/// then they will be excluded even if they are red/blue. Only string filter is +/// supported for now, numeric filter will be supported in the near future. +class GoogleCloudAiplatformV1NearestNeighborQueryStringFilter { + /// The allowed tokens. + /// + /// Optional. + core.List? allowTokens; + + /// The denied tokens. + /// + /// Optional. + core.List? denyTokens; + + /// Column names in BigQuery that used as filters. + /// + /// Required. + core.String? name; + + GoogleCloudAiplatformV1NearestNeighborQueryStringFilter({ + this.allowTokens, + this.denyTokens, + this.name, + }); + + GoogleCloudAiplatformV1NearestNeighborQueryStringFilter.fromJson( + core.Map json_) + : this( + allowTokens: json_.containsKey('allowTokens') + ? (json_['allowTokens'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + denyTokens: json_.containsKey('denyTokens') + ? (json_['denyTokens'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + name: json_.containsKey('name') ? json_['name'] as core.String : null, + ); + + core.Map toJson() => { + if (allowTokens != null) 'allowTokens': allowTokens!, + if (denyTokens != null) 'denyTokens': denyTokens!, + if (name != null) 'name': name!, + }; +} + +/// Nearest neighbors for one query. +class GoogleCloudAiplatformV1NearestNeighbors { + /// All its neighbors. + core.List? neighbors; + + GoogleCloudAiplatformV1NearestNeighbors({ + this.neighbors, + }); + + GoogleCloudAiplatformV1NearestNeighbors.fromJson(core.Map json_) + : this( + neighbors: json_.containsKey('neighbors') + ? (json_['neighbors'] as core.List) + .map((value) => + GoogleCloudAiplatformV1NearestNeighborsNeighbor.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (neighbors != null) 'neighbors': neighbors!, + }; +} + +/// A neighbor of the query vector. +class GoogleCloudAiplatformV1NearestNeighborsNeighbor { + /// The distance between the neighbor and the query vector. + core.double? distance; + + /// The id of the similar entity. + core.String? entityId; + + /// The attributes of the neighbor, e.g. filters, crowding and metadata Note + /// that full entities are returned only when "return_full_entity" is set to + /// true. + /// + /// Otherwise, only the "entity_id" and "distance" fields are populated. + GoogleCloudAiplatformV1FetchFeatureValuesResponse? entityKeyValues; + + GoogleCloudAiplatformV1NearestNeighborsNeighbor({ + this.distance, + this.entityId, + this.entityKeyValues, + }); + + GoogleCloudAiplatformV1NearestNeighborsNeighbor.fromJson(core.Map json_) + : this( + distance: json_.containsKey('distance') + ? (json_['distance'] as core.num).toDouble() + : null, + entityId: json_.containsKey('entityId') + ? json_['entityId'] as core.String + : null, + entityKeyValues: json_.containsKey('entityKeyValues') + ? GoogleCloudAiplatformV1FetchFeatureValuesResponse.fromJson( + json_['entityKeyValues'] + as core.Map) + : null, + ); + + core.Map toJson() => { + if (distance != null) 'distance': distance!, + if (entityId != null) 'entityId': entityId!, + if (entityKeyValues != null) 'entityKeyValues': entityKeyValues!, + }; +} + /// Neighbors for example-based explanations. class GoogleCloudAiplatformV1Neighbor { /// The neighbor distance. @@ -39693,6 +42897,66 @@ class GoogleCloudAiplatformV1NotebookIdleShutdownConfig { }; } +/// Notebook Reservation Affinity for consuming Zonal reservation. +class GoogleCloudAiplatformV1NotebookReservationAffinity { + /// Specifies the type of reservation from which this instance can consume + /// resources: RESERVATION_ANY (default), RESERVATION_SPECIFIC, or + /// RESERVATION_NONE. + /// + /// See Consuming reserved instances for examples. + /// + /// Required. + /// Possible string values are: + /// - "RESERVATION_AFFINITY_TYPE_UNSPECIFIED" : Default type. + /// - "RESERVATION_NONE" : Do not consume from any allocated capacity. + /// - "RESERVATION_ANY" : Consume any reservation available. + /// - "RESERVATION_SPECIFIC" : Must consume from a specific reservation. Must + /// specify key value fields for specifying the reservations. + core.String? consumeReservationType; + + /// Corresponds to the label key of a reservation resource. + /// + /// To target a RESERVATION_SPECIFIC by name, use + /// compute.googleapis.com/reservation-name as the key and specify the name of + /// your reservation as its value. + /// + /// Optional. + core.String? key; + + /// Corresponds to the label values of a reservation resource. + /// + /// This must be the full path name of Reservation. + /// + /// Optional. + core.List? values; + + GoogleCloudAiplatformV1NotebookReservationAffinity({ + this.consumeReservationType, + this.key, + this.values, + }); + + GoogleCloudAiplatformV1NotebookReservationAffinity.fromJson(core.Map json_) + : this( + consumeReservationType: json_.containsKey('consumeReservationType') + ? json_['consumeReservationType'] as core.String + : null, + key: json_.containsKey('key') ? json_['key'] as core.String : null, + values: json_.containsKey('values') + ? (json_['values'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + ); + + core.Map toJson() => { + if (consumeReservationType != null) + 'consumeReservationType': consumeReservationType!, + if (key != null) 'key': key!, + if (values != null) 'values': values!, + }; +} + /// A runtime is a virtual machine allocated to a particular user for a /// particular Notebook file on temporary basis with lifetime limited to 24 /// hours. @@ -39734,6 +42998,11 @@ class GoogleCloudAiplatformV1NotebookRuntime { /// state. core.String? healthState; + /// Whether NotebookRuntime is upgradable. + /// + /// Output only. + core.bool? isUpgradable; + /// The labels with user-defined metadata to organize your NotebookRuntime. /// /// Label keys and values can be no longer than 64 characters (Unicode @@ -39756,6 +43025,12 @@ class GoogleCloudAiplatformV1NotebookRuntime { /// Output only. core.String? name; + /// The Compute Engine tags to add to runtime (see + /// [Tagging instances](https://cloud.google.com/vpc/docs/add-remove-network-tags)). + /// + /// Optional. + core.List? networkTags; + /// The pointer to NotebookRuntimeTemplate this NotebookRuntime is created /// from. /// @@ -39778,6 +43053,11 @@ class GoogleCloudAiplatformV1NotebookRuntime { /// Output only. core.String? proxyUri; + /// Reservation Affinity of the notebook runtime. + /// + /// Output only. + GoogleCloudAiplatformV1NotebookReservationAffinity? reservationAffinity; + /// The runtime (instance) state of the NotebookRuntime. /// /// Output only. @@ -39817,11 +43097,14 @@ class GoogleCloudAiplatformV1NotebookRuntime { this.displayName, this.expirationTime, this.healthState, + this.isUpgradable, this.labels, this.name, + this.networkTags, this.notebookRuntimeTemplateRef, this.notebookRuntimeType, this.proxyUri, + this.reservationAffinity, this.runtimeState, this.runtimeUser, this.serviceAccount, @@ -39846,6 +43129,9 @@ class GoogleCloudAiplatformV1NotebookRuntime { healthState: json_.containsKey('healthState') ? json_['healthState'] as core.String : null, + isUpgradable: json_.containsKey('isUpgradable') + ? json_['isUpgradable'] as core.bool + : null, labels: json_.containsKey('labels') ? (json_['labels'] as core.Map).map( (key, value) => core.MapEntry( @@ -39855,6 +43141,11 @@ class GoogleCloudAiplatformV1NotebookRuntime { ) : null, name: json_.containsKey('name') ? json_['name'] as core.String : null, + networkTags: json_.containsKey('networkTags') + ? (json_['networkTags'] as core.List) + .map((value) => value as core.String) + .toList() + : null, notebookRuntimeTemplateRef: json_.containsKey('notebookRuntimeTemplateRef') ? GoogleCloudAiplatformV1NotebookRuntimeTemplateRef.fromJson( @@ -39867,6 +43158,11 @@ class GoogleCloudAiplatformV1NotebookRuntime { proxyUri: json_.containsKey('proxyUri') ? json_['proxyUri'] as core.String : null, + reservationAffinity: json_.containsKey('reservationAffinity') + ? GoogleCloudAiplatformV1NotebookReservationAffinity.fromJson( + json_['reservationAffinity'] + as core.Map) + : null, runtimeState: json_.containsKey('runtimeState') ? json_['runtimeState'] as core.String : null, @@ -39890,13 +43186,17 @@ class GoogleCloudAiplatformV1NotebookRuntime { if (displayName != null) 'displayName': displayName!, if (expirationTime != null) 'expirationTime': expirationTime!, if (healthState != null) 'healthState': healthState!, + if (isUpgradable != null) 'isUpgradable': isUpgradable!, if (labels != null) 'labels': labels!, if (name != null) 'name': name!, + if (networkTags != null) 'networkTags': networkTags!, if (notebookRuntimeTemplateRef != null) 'notebookRuntimeTemplateRef': notebookRuntimeTemplateRef!, if (notebookRuntimeType != null) 'notebookRuntimeType': notebookRuntimeType!, if (proxyUri != null) 'proxyUri': proxyUri!, + if (reservationAffinity != null) + 'reservationAffinity': reservationAffinity!, if (runtimeState != null) 'runtimeState': runtimeState!, if (runtimeUser != null) 'runtimeUser': runtimeUser!, if (serviceAccount != null) 'serviceAccount': serviceAccount!, @@ -39974,6 +43274,12 @@ class GoogleCloudAiplatformV1NotebookRuntimeTemplate { /// Optional. GoogleCloudAiplatformV1NetworkSpec? networkSpec; + /// The Compute Engine tags to add to runtime (see + /// [Tagging instances](https://cloud.google.com/vpc/docs/add-remove-network-tags)). + /// + /// Optional. + core.List? networkTags; + /// The type of the notebook runtime template. /// /// Optional. Immutable. @@ -39985,6 +43291,11 @@ class GoogleCloudAiplatformV1NotebookRuntimeTemplate { /// - "ONE_CLICK" : runtime or template with system defined configurations. core.String? notebookRuntimeType; + /// Reservation Affinity of the notebook runtime template. + /// + /// Optional. + GoogleCloudAiplatformV1NotebookReservationAffinity? reservationAffinity; + /// The service account that the runtime workload runs as. /// /// You can use any service account within the same project, but you must have @@ -39994,6 +43305,11 @@ class GoogleCloudAiplatformV1NotebookRuntimeTemplate { /// is used. core.String? serviceAccount; + /// Runtime Shielded VM spec. + /// + /// Optional. Immutable. + GoogleCloudAiplatformV1ShieldedVmConfig? shieldedVmConfig; + /// Timestamp when this NotebookRuntimeTemplate was most recently updated. /// /// Output only. @@ -40012,8 +43328,11 @@ class GoogleCloudAiplatformV1NotebookRuntimeTemplate { this.machineSpec, this.name, this.networkSpec, + this.networkTags, this.notebookRuntimeType, + this.reservationAffinity, this.serviceAccount, + this.shieldedVmConfig, this.updateTime, }); @@ -40063,12 +43382,27 @@ class GoogleCloudAiplatformV1NotebookRuntimeTemplate { ? GoogleCloudAiplatformV1NetworkSpec.fromJson( json_['networkSpec'] as core.Map) : null, + networkTags: json_.containsKey('networkTags') + ? (json_['networkTags'] as core.List) + .map((value) => value as core.String) + .toList() + : null, notebookRuntimeType: json_.containsKey('notebookRuntimeType') ? json_['notebookRuntimeType'] as core.String : null, + reservationAffinity: json_.containsKey('reservationAffinity') + ? GoogleCloudAiplatformV1NotebookReservationAffinity.fromJson( + json_['reservationAffinity'] + as core.Map) + : null, serviceAccount: json_.containsKey('serviceAccount') ? json_['serviceAccount'] as core.String : null, + shieldedVmConfig: json_.containsKey('shieldedVmConfig') + ? GoogleCloudAiplatformV1ShieldedVmConfig.fromJson( + json_['shieldedVmConfig'] + as core.Map) + : null, updateTime: json_.containsKey('updateTime') ? json_['updateTime'] as core.String : null, @@ -40089,9 +43423,13 @@ class GoogleCloudAiplatformV1NotebookRuntimeTemplate { if (machineSpec != null) 'machineSpec': machineSpec!, if (name != null) 'name': name!, if (networkSpec != null) 'networkSpec': networkSpec!, + if (networkTags != null) 'networkTags': networkTags!, if (notebookRuntimeType != null) 'notebookRuntimeType': notebookRuntimeType!, + if (reservationAffinity != null) + 'reservationAffinity': reservationAffinity!, if (serviceAccount != null) 'serviceAccount': serviceAccount!, + if (shieldedVmConfig != null) 'shieldedVmConfig': shieldedVmConfig!, if (updateTime != null) 'updateTime': updateTime!, }; } @@ -40120,6 +43458,97 @@ class GoogleCloudAiplatformV1NotebookRuntimeTemplateRef { }; } +/// A datatype containing media that is part of a multi-part `Content` message. +/// +/// A `Part` consists of data which has an associated datatype. A `Part` can +/// only contain one of the accepted types in `Part.data`. A `Part` must have a +/// fixed IANA MIME type identifying the type and subtype of the media if +/// `inline_data` or `file_data` field is filled with raw bytes. +class GoogleCloudAiplatformV1Part { + /// URI based data. + /// + /// Optional. + GoogleCloudAiplatformV1FileData? fileData; + + /// A predicted \[FunctionCall\] returned from the model that contains a + /// string representing the \[FunctionDeclaration.name\] with the parameters + /// and their values. + /// + /// Optional. + GoogleCloudAiplatformV1FunctionCall? functionCall; + + /// The result output of a \[FunctionCall\] that contains a string + /// representing the \[FunctionDeclaration.name\] and a structured JSON object + /// containing any output from the function call. + /// + /// It is used as context to the model. + /// + /// Optional. + GoogleCloudAiplatformV1FunctionResponse? functionResponse; + + /// Inlined bytes data. + /// + /// Optional. + GoogleCloudAiplatformV1Blob? inlineData; + + /// Text part (can be code). + /// + /// Optional. + core.String? text; + + /// Video metadata. + /// + /// The metadata should only be specified while the video data is presented in + /// inline_data or file_data. + /// + /// Optional. + GoogleCloudAiplatformV1VideoMetadata? videoMetadata; + + GoogleCloudAiplatformV1Part({ + this.fileData, + this.functionCall, + this.functionResponse, + this.inlineData, + this.text, + this.videoMetadata, + }); + + GoogleCloudAiplatformV1Part.fromJson(core.Map json_) + : this( + fileData: json_.containsKey('fileData') + ? GoogleCloudAiplatformV1FileData.fromJson( + json_['fileData'] as core.Map) + : null, + functionCall: json_.containsKey('functionCall') + ? GoogleCloudAiplatformV1FunctionCall.fromJson( + json_['functionCall'] as core.Map) + : null, + functionResponse: json_.containsKey('functionResponse') + ? GoogleCloudAiplatformV1FunctionResponse.fromJson( + json_['functionResponse'] + as core.Map) + : null, + inlineData: json_.containsKey('inlineData') + ? GoogleCloudAiplatformV1Blob.fromJson( + json_['inlineData'] as core.Map) + : null, + text: json_.containsKey('text') ? json_['text'] as core.String : null, + videoMetadata: json_.containsKey('videoMetadata') + ? GoogleCloudAiplatformV1VideoMetadata.fromJson( + json_['videoMetadata'] as core.Map) + : null, + ); + + core.Map toJson() => { + if (fileData != null) 'fileData': fileData!, + if (functionCall != null) 'functionCall': functionCall!, + if (functionResponse != null) 'functionResponse': functionResponse!, + if (inlineData != null) 'inlineData': inlineData!, + if (text != null) 'text': text!, + if (videoMetadata != null) 'videoMetadata': videoMetadata!, + }; +} + /// Request message for JobService.PauseModelDeploymentMonitoringJob. typedef GoogleCloudAiplatformV1PauseModelDeploymentMonitoringJobRequest = $Empty; @@ -41557,6 +44986,44 @@ class GoogleCloudAiplatformV1Probe { /// ExecAction specifies a command to execute. typedef GoogleCloudAiplatformV1ProbeExecAction = $ExecAction; +/// PscAutomatedEndpoints defines the output of the forwarding rule +/// automatically created by each PscAutomationConfig. +class GoogleCloudAiplatformV1PscAutomatedEndpoints { + /// Ip Address created by the automated forwarding rule. + core.String? matchAddress; + + /// Corresponding network in pscAutomationConfigs. + core.String? network; + + /// Corresponding project_id in pscAutomationConfigs + core.String? projectId; + + GoogleCloudAiplatformV1PscAutomatedEndpoints({ + this.matchAddress, + this.network, + this.projectId, + }); + + GoogleCloudAiplatformV1PscAutomatedEndpoints.fromJson(core.Map json_) + : this( + matchAddress: json_.containsKey('matchAddress') + ? json_['matchAddress'] as core.String + : null, + network: json_.containsKey('network') + ? json_['network'] as core.String + : null, + projectId: json_.containsKey('projectId') + ? json_['projectId'] as core.String + : null, + ); + + core.Map toJson() => { + if (matchAddress != null) 'matchAddress': matchAddress!, + if (network != null) 'network': network!, + if (projectId != null) 'projectId': projectId!, + }; +} + /// A Model Garden Publisher Model. class GoogleCloudAiplatformV1PublisherModel { /// Additional information about the model's Frameworks. @@ -41569,13 +45036,19 @@ class GoogleCloudAiplatformV1PublisherModel { /// Optional. /// Possible string values are: /// - "LAUNCH_STAGE_UNSPECIFIED" : The model launch stage is unspecified. + /// - "DOGFOOD" : Used to indicate the PublisherModel is at Google internal + /// testing launch stage. /// - "EXPERIMENTAL" : Used to indicate the PublisherModel is at Experimental - /// launch stage. + /// launch stage, available to a small set of customers. /// - "PRIVATE_PREVIEW" : Used to indicate the PublisherModel is at Private - /// Preview launch stage. + /// Preview launch stage, only available to a small set of customers, although + /// a larger set of customers than an Experimental launch. Previews are the + /// first launch stage used to get feedback from customers. /// - "PUBLIC_PREVIEW" : Used to indicate the PublisherModel is at Public - /// Preview launch stage. - /// - "GA" : Used to indicate the PublisherModel is at GA launch stage. + /// Preview launch stage, available to all customers, although not supported + /// for production workloads. + /// - "GA" : Used to indicate the PublisherModel is at GA launch stage, + /// available to all customers and ready for production workload. core.String? launchStage; /// The resource name of the PublisherModel. @@ -41626,6 +45099,15 @@ class GoogleCloudAiplatformV1PublisherModel { /// Output only. Immutable. core.String? versionId; + /// Indicates the state of the model version. + /// + /// Optional. + /// Possible string values are: + /// - "VERSION_STATE_UNSPECIFIED" : The version state is unspecified. + /// - "VERSION_STATE_STABLE" : Used to indicate the version is stable. + /// - "VERSION_STATE_UNSTABLE" : Used to indicate the version is unstable. + core.String? versionState; + GoogleCloudAiplatformV1PublisherModel({ this.frameworks, this.launchStage, @@ -41635,6 +45117,7 @@ class GoogleCloudAiplatformV1PublisherModel { this.publisherModelTemplate, this.supportedActions, this.versionId, + this.versionState, }); GoogleCloudAiplatformV1PublisherModel.fromJson(core.Map json_) @@ -41667,6 +45150,9 @@ class GoogleCloudAiplatformV1PublisherModel { versionId: json_.containsKey('versionId') ? json_['versionId'] as core.String : null, + versionState: json_.containsKey('versionState') + ? json_['versionState'] as core.String + : null, ); core.Map toJson() => { @@ -41680,6 +45166,7 @@ class GoogleCloudAiplatformV1PublisherModel { 'publisherModelTemplate': publisherModelTemplate!, if (supportedActions != null) 'supportedActions': supportedActions!, if (versionId != null) 'versionId': versionId!, + if (versionState != null) 'versionState': versionState!, }; } @@ -41696,6 +45183,11 @@ class GoogleCloudAiplatformV1PublisherModelCallToAction { /// Optional. GoogleCloudAiplatformV1PublisherModelCallToActionDeploy? deploy; + /// Deploy PublisherModel to Google Kubernetes Engine. + /// + /// Optional. + GoogleCloudAiplatformV1PublisherModelCallToActionDeployGke? deployGke; + /// Open evaluation pipeline of the PublisherModel. /// /// Optional. @@ -41708,6 +45200,12 @@ class GoogleCloudAiplatformV1PublisherModelCallToAction { GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences? openFineTuningPipeline; + /// Open fine-tuning pipelines of the PublisherModel. + /// + /// Optional. + GoogleCloudAiplatformV1PublisherModelCallToActionOpenFineTuningPipelines? + openFineTuningPipelines; + /// Open in Generation AI Studio. /// /// Optional. @@ -41726,6 +45224,11 @@ class GoogleCloudAiplatformV1PublisherModelCallToAction { GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences? openNotebook; + /// Open notebooks of the PublisherModel. + /// + /// Optional. + GoogleCloudAiplatformV1PublisherModelCallToActionOpenNotebooks? openNotebooks; + /// Open prompt-tuning pipeline of the PublisherModel. /// /// Optional. @@ -41746,11 +45249,14 @@ class GoogleCloudAiplatformV1PublisherModelCallToAction { GoogleCloudAiplatformV1PublisherModelCallToAction({ this.createApplication, this.deploy, + this.deployGke, this.openEvaluationPipeline, this.openFineTuningPipeline, + this.openFineTuningPipelines, this.openGenerationAiStudio, this.openGenie, this.openNotebook, + this.openNotebooks, this.openPromptTuningPipeline, this.requestAccess, this.viewRestApi, @@ -41768,6 +45274,11 @@ class GoogleCloudAiplatformV1PublisherModelCallToAction { .fromJson( json_['deploy'] as core.Map) : null, + deployGke: json_.containsKey('deployGke') + ? GoogleCloudAiplatformV1PublisherModelCallToActionDeployGke + .fromJson( + json_['deployGke'] as core.Map) + : null, openEvaluationPipeline: json_.containsKey('openEvaluationPipeline') ? GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences .fromJson(json_['openEvaluationPipeline'] @@ -41778,6 +45289,11 @@ class GoogleCloudAiplatformV1PublisherModelCallToAction { .fromJson(json_['openFineTuningPipeline'] as core.Map) : null, + openFineTuningPipelines: json_.containsKey('openFineTuningPipelines') + ? GoogleCloudAiplatformV1PublisherModelCallToActionOpenFineTuningPipelines + .fromJson(json_['openFineTuningPipelines'] + as core.Map) + : null, openGenerationAiStudio: json_.containsKey('openGenerationAiStudio') ? GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences .fromJson(json_['openGenerationAiStudio'] @@ -41793,6 +45309,11 @@ class GoogleCloudAiplatformV1PublisherModelCallToAction { .fromJson(json_['openNotebook'] as core.Map) : null, + openNotebooks: json_.containsKey('openNotebooks') + ? GoogleCloudAiplatformV1PublisherModelCallToActionOpenNotebooks + .fromJson(json_['openNotebooks'] + as core.Map) + : null, openPromptTuningPipeline: json_ .containsKey('openPromptTuningPipeline') ? GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences @@ -41814,14 +45335,18 @@ class GoogleCloudAiplatformV1PublisherModelCallToAction { core.Map toJson() => { if (createApplication != null) 'createApplication': createApplication!, if (deploy != null) 'deploy': deploy!, + if (deployGke != null) 'deployGke': deployGke!, if (openEvaluationPipeline != null) 'openEvaluationPipeline': openEvaluationPipeline!, if (openFineTuningPipeline != null) 'openFineTuningPipeline': openFineTuningPipeline!, + if (openFineTuningPipelines != null) + 'openFineTuningPipelines': openFineTuningPipelines!, if (openGenerationAiStudio != null) 'openGenerationAiStudio': openGenerationAiStudio!, if (openGenie != null) 'openGenie': openGenie!, if (openNotebook != null) 'openNotebook': openNotebook!, + if (openNotebooks != null) 'openNotebooks': openNotebooks!, if (openPromptTuningPipeline != null) 'openPromptTuningPipeline': openPromptTuningPipeline!, if (requestAccess != null) 'requestAccess': requestAccess!, @@ -41866,6 +45391,11 @@ class GoogleCloudAiplatformV1PublisherModelCallToActionDeploy { /// Optional. core.String? modelDisplayName; + /// The signed URI for ephemeral Cloud Storage access to model artifact. + /// + /// Optional. + core.String? publicArtifactUri; + /// The resource name of the shared DeploymentResourcePool to deploy on. /// /// Format: @@ -41884,6 +45414,7 @@ class GoogleCloudAiplatformV1PublisherModelCallToActionDeploy { this.dedicatedResources, this.largeModelReference, this.modelDisplayName, + this.publicArtifactUri, this.sharedResources, this.title, }); @@ -41916,6 +45447,9 @@ class GoogleCloudAiplatformV1PublisherModelCallToActionDeploy { modelDisplayName: json_.containsKey('modelDisplayName') ? json_['modelDisplayName'] as core.String : null, + publicArtifactUri: json_.containsKey('publicArtifactUri') + ? json_['publicArtifactUri'] as core.String + : null, sharedResources: json_.containsKey('sharedResources') ? json_['sharedResources'] as core.String : null, @@ -41933,11 +45467,101 @@ class GoogleCloudAiplatformV1PublisherModelCallToActionDeploy { if (largeModelReference != null) 'largeModelReference': largeModelReference!, if (modelDisplayName != null) 'modelDisplayName': modelDisplayName!, + if (publicArtifactUri != null) 'publicArtifactUri': publicArtifactUri!, if (sharedResources != null) 'sharedResources': sharedResources!, if (title != null) 'title': title!, }; } +/// Configurations for PublisherModel GKE deployment +class GoogleCloudAiplatformV1PublisherModelCallToActionDeployGke { + /// GKE deployment configuration in yaml format. + /// + /// Optional. + core.List? gkeYamlConfigs; + + GoogleCloudAiplatformV1PublisherModelCallToActionDeployGke({ + this.gkeYamlConfigs, + }); + + GoogleCloudAiplatformV1PublisherModelCallToActionDeployGke.fromJson( + core.Map json_) + : this( + gkeYamlConfigs: json_.containsKey('gkeYamlConfigs') + ? (json_['gkeYamlConfigs'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + ); + + core.Map toJson() => { + if (gkeYamlConfigs != null) 'gkeYamlConfigs': gkeYamlConfigs!, + }; +} + +/// Open fine tuning pipelines. +class GoogleCloudAiplatformV1PublisherModelCallToActionOpenFineTuningPipelines { + /// Regional resource references to fine tuning pipelines. + /// + /// Required. + core.List< + GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences>? + fineTuningPipelines; + + GoogleCloudAiplatformV1PublisherModelCallToActionOpenFineTuningPipelines({ + this.fineTuningPipelines, + }); + + GoogleCloudAiplatformV1PublisherModelCallToActionOpenFineTuningPipelines.fromJson( + core.Map json_) + : this( + fineTuningPipelines: json_.containsKey('fineTuningPipelines') + ? (json_['fineTuningPipelines'] as core.List) + .map((value) => + GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences + .fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (fineTuningPipelines != null) + 'fineTuningPipelines': fineTuningPipelines!, + }; +} + +/// Open notebooks. +class GoogleCloudAiplatformV1PublisherModelCallToActionOpenNotebooks { + /// Regional resource references to notebooks. + /// + /// Required. + core.List< + GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences>? + notebooks; + + GoogleCloudAiplatformV1PublisherModelCallToActionOpenNotebooks({ + this.notebooks, + }); + + GoogleCloudAiplatformV1PublisherModelCallToActionOpenNotebooks.fromJson( + core.Map json_) + : this( + notebooks: json_.containsKey('notebooks') + ? (json_['notebooks'] as core.List) + .map((value) => + GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences + .fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (notebooks != null) 'notebooks': notebooks!, + }; +} + /// The regional resource name or the URI. /// /// Key is region, e.g., us-central1, europe-west2, global, etc.. @@ -41946,13 +45570,31 @@ class GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReference core.Map? references; - /// The title of the regional resource reference. + /// Description of the resource. + /// + /// Optional. + core.String? resourceDescription; + + /// Title of the resource. + /// + /// Optional. + core.String? resourceTitle; + + /// Use case (CUJ) of the resource. + /// + /// Optional. + core.String? resourceUseCase; + + /// /// /// Required. core.String? title; GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReferences({ this.references, + this.resourceDescription, + this.resourceTitle, + this.resourceUseCase, this.title, }); @@ -41969,12 +45611,25 @@ class GoogleCloudAiplatformV1PublisherModelCallToActionRegionalResourceReference ), ) : null, + resourceDescription: json_.containsKey('resourceDescription') + ? json_['resourceDescription'] as core.String + : null, + resourceTitle: json_.containsKey('resourceTitle') + ? json_['resourceTitle'] as core.String + : null, + resourceUseCase: json_.containsKey('resourceUseCase') + ? json_['resourceUseCase'] as core.String + : null, title: json_.containsKey('title') ? json_['title'] as core.String : null, ); core.Map toJson() => { if (references != null) 'references': references!, + if (resourceDescription != null) + 'resourceDescription': resourceDescription!, + if (resourceTitle != null) 'resourceTitle': resourceTitle!, + if (resourceUseCase != null) 'resourceUseCase': resourceUseCase!, if (title != null) 'title': title!, }; } @@ -42050,29 +45705,51 @@ class GoogleCloudAiplatformV1PublisherModelDocumentation { /// Reference to a resource. class GoogleCloudAiplatformV1PublisherModelResourceReference { + /// Description of the resource. + @core.Deprecated( + 'Not supported. Member documentation may have more information.', + ) + core.String? description; + /// The resource name of the Google Cloud resource. core.String? resourceName; /// The URI of the resource. core.String? uri; + /// Use case (CUJ) of the resource. + @core.Deprecated( + 'Not supported. Member documentation may have more information.', + ) + core.String? useCase; + GoogleCloudAiplatformV1PublisherModelResourceReference({ + this.description, this.resourceName, this.uri, + this.useCase, }); GoogleCloudAiplatformV1PublisherModelResourceReference.fromJson( core.Map json_) : this( + description: json_.containsKey('description') + ? json_['description'] as core.String + : null, resourceName: json_.containsKey('resourceName') ? json_['resourceName'] as core.String : null, uri: json_.containsKey('uri') ? json_['uri'] as core.String : null, + useCase: json_.containsKey('useCase') + ? json_['useCase'] as core.String + : null, ); core.Map toJson() => { + if (description != null) 'description': description!, if (resourceName != null) 'resourceName': resourceName!, if (uri != null) 'uri': uri!, + if (useCase != null) 'useCase': useCase!, }; } @@ -42887,6 +46564,146 @@ class GoogleCloudAiplatformV1ResumeScheduleRequest { }; } +/// Safety rating corresponding to the generated content. +class GoogleCloudAiplatformV1SafetyRating { + /// Indicates whether the content was filtered out because of this rating. + /// + /// Output only. + core.bool? blocked; + + /// Harm category. + /// + /// Output only. + /// Possible string values are: + /// - "HARM_CATEGORY_UNSPECIFIED" : The harm category is unspecified. + /// - "HARM_CATEGORY_HATE_SPEECH" : The harm category is hate speech. + /// - "HARM_CATEGORY_DANGEROUS_CONTENT" : The harm category is dangerous + /// content. + /// - "HARM_CATEGORY_HARASSMENT" : The harm category is harassment. + /// - "HARM_CATEGORY_SEXUALLY_EXPLICIT" : The harm category is sexually + /// explicit content. + core.String? category; + + /// Harm probability levels in the content. + /// + /// Output only. + /// Possible string values are: + /// - "HARM_PROBABILITY_UNSPECIFIED" : Harm probability unspecified. + /// - "NEGLIGIBLE" : Negligible level of harm. + /// - "LOW" : Low level of harm. + /// - "MEDIUM" : Medium level of harm. + /// - "HIGH" : High level of harm. + core.String? probability; + + /// Harm probability score. + /// + /// Output only. + core.double? probabilityScore; + + /// Harm severity levels in the content. + /// + /// Output only. + /// Possible string values are: + /// - "HARM_SEVERITY_UNSPECIFIED" : Harm severity unspecified. + /// - "HARM_SEVERITY_NEGLIGIBLE" : Negligible level of harm severity. + /// - "HARM_SEVERITY_LOW" : Low level of harm severity. + /// - "HARM_SEVERITY_MEDIUM" : Medium level of harm severity. + /// - "HARM_SEVERITY_HIGH" : High level of harm severity. + core.String? severity; + + /// Harm severity score. + /// + /// Output only. + core.double? severityScore; + + GoogleCloudAiplatformV1SafetyRating({ + this.blocked, + this.category, + this.probability, + this.probabilityScore, + this.severity, + this.severityScore, + }); + + GoogleCloudAiplatformV1SafetyRating.fromJson(core.Map json_) + : this( + blocked: json_.containsKey('blocked') + ? json_['blocked'] as core.bool + : null, + category: json_.containsKey('category') + ? json_['category'] as core.String + : null, + probability: json_.containsKey('probability') + ? json_['probability'] as core.String + : null, + probabilityScore: json_.containsKey('probabilityScore') + ? (json_['probabilityScore'] as core.num).toDouble() + : null, + severity: json_.containsKey('severity') + ? json_['severity'] as core.String + : null, + severityScore: json_.containsKey('severityScore') + ? (json_['severityScore'] as core.num).toDouble() + : null, + ); + + core.Map toJson() => { + if (blocked != null) 'blocked': blocked!, + if (category != null) 'category': category!, + if (probability != null) 'probability': probability!, + if (probabilityScore != null) 'probabilityScore': probabilityScore!, + if (severity != null) 'severity': severity!, + if (severityScore != null) 'severityScore': severityScore!, + }; +} + +/// Safety settings. +class GoogleCloudAiplatformV1SafetySetting { + /// Harm category. + /// + /// Required. + /// Possible string values are: + /// - "HARM_CATEGORY_UNSPECIFIED" : The harm category is unspecified. + /// - "HARM_CATEGORY_HATE_SPEECH" : The harm category is hate speech. + /// - "HARM_CATEGORY_DANGEROUS_CONTENT" : The harm category is dangerous + /// content. + /// - "HARM_CATEGORY_HARASSMENT" : The harm category is harassment. + /// - "HARM_CATEGORY_SEXUALLY_EXPLICIT" : The harm category is sexually + /// explicit content. + core.String? category; + + /// The harm block threshold. + /// + /// Required. + /// Possible string values are: + /// - "HARM_BLOCK_THRESHOLD_UNSPECIFIED" : Unspecified harm block threshold. + /// - "BLOCK_LOW_AND_ABOVE" : Block low threshold and above (i.e. block more). + /// - "BLOCK_MEDIUM_AND_ABOVE" : Block medium threshold and above. + /// - "BLOCK_ONLY_HIGH" : Block only high threshold (i.e. block less). + /// - "BLOCK_NONE" : Block none. + core.String? threshold; + + GoogleCloudAiplatformV1SafetySetting({ + this.category, + this.threshold, + }); + + GoogleCloudAiplatformV1SafetySetting.fromJson(core.Map json_) + : this( + category: json_.containsKey('category') + ? json_['category'] as core.String + : null, + threshold: json_.containsKey('threshold') + ? json_['threshold'] as core.String + : null, + ); + + core.Map toJson() => { + if (category != null) 'category': category!, + if (threshold != null) 'threshold': threshold!, + }; +} + /// Active learning data sampling config. /// /// For every active learning labeling iteration, it will select a batch of data @@ -43490,6 +47307,140 @@ class GoogleCloudAiplatformV1Scheduling { }; } +/// Schema is used to define the format of input/output data. +/// +/// Represents a select subset of an +/// [OpenAPI 3.0 schema object](https://spec.openapis.org/oas/v3.0.3#schema). +/// More fields may be added in the future as needed. +class GoogleCloudAiplatformV1Schema { + /// The description of the data. + /// + /// Optional. + core.String? description; + + /// Possible values of the element of Type.STRING with enum format. + /// + /// For example we can define an Enum Direction as : {type:STRING, + /// format:enum, enum:\["EAST", NORTH", "SOUTH", "WEST"\]} + /// + /// Optional. + core.List? enum_; + + /// Example of the object. + /// + /// Will only populated when the object is the root. + /// + /// Optional. + /// + /// The values for Object must be JSON objects. It can consist of `num`, + /// `String`, `bool` and `null` as well as `Map` and `List` values. + core.Object? example; + + /// The format of the data. + /// + /// Supported formats: for NUMBER type: float, double for INTEGER type: int32, + /// int64 + /// + /// Optional. + core.String? format; + + /// Schema of the elements of Type.ARRAY. + /// + /// Optional. + GoogleCloudAiplatformV1Schema? items; + + /// Indicates if the value may be null. + /// + /// Optional. + core.bool? nullable; + + /// Properties of Type.OBJECT. + /// + /// Optional. + core.Map? properties; + + /// Required properties of Type.OBJECT. + /// + /// Optional. + core.List? required; + + /// The type of the data. + /// + /// Optional. + /// Possible string values are: + /// - "TYPE_UNSPECIFIED" : Not specified, should not be used. + /// - "STRING" : OpenAPI string type + /// - "NUMBER" : OpenAPI number type + /// - "INTEGER" : OpenAPI integer type + /// - "BOOLEAN" : OpenAPI boolean type + /// - "ARRAY" : OpenAPI array type + /// - "OBJECT" : OpenAPI object type + core.String? type; + + GoogleCloudAiplatformV1Schema({ + this.description, + this.enum_, + this.example, + this.format, + this.items, + this.nullable, + this.properties, + this.required, + this.type, + }); + + GoogleCloudAiplatformV1Schema.fromJson(core.Map json_) + : this( + description: json_.containsKey('description') + ? json_['description'] as core.String + : null, + enum_: json_.containsKey('enum') + ? (json_['enum'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + example: json_.containsKey('example') ? json_['example'] : null, + format: json_.containsKey('format') + ? json_['format'] as core.String + : null, + items: json_.containsKey('items') + ? GoogleCloudAiplatformV1Schema.fromJson( + json_['items'] as core.Map) + : null, + nullable: json_.containsKey('nullable') + ? json_['nullable'] as core.bool + : null, + properties: json_.containsKey('properties') + ? (json_['properties'] as core.Map) + .map( + (key, value) => core.MapEntry( + key, + GoogleCloudAiplatformV1Schema.fromJson( + value as core.Map), + ), + ) + : null, + required: json_.containsKey('required') + ? (json_['required'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + type: json_.containsKey('type') ? json_['type'] as core.String : null, + ); + + core.Map toJson() => { + if (description != null) 'description': description!, + if (enum_ != null) 'enum': enum_!, + if (example != null) 'example': example!, + if (format != null) 'format': format!, + if (items != null) 'items': items!, + if (nullable != null) 'nullable': nullable!, + if (properties != null) 'properties': properties!, + if (required != null) 'required': required!, + if (type != null) 'type': type!, + }; +} + /// Response message for DatasetService.SearchDataItems. class GoogleCloudAiplatformV1SearchDataItemsResponse { /// The DataItemViews read. @@ -43829,6 +47780,145 @@ class GoogleCloudAiplatformV1SearchModelDeploymentMonitoringStatsAnomaliesRespon }; } +/// The request message for FeatureOnlineStoreService.SearchNearestEntities. +class GoogleCloudAiplatformV1SearchNearestEntitiesRequest { + /// The query. + /// + /// Required. + GoogleCloudAiplatformV1NearestNeighborQuery? query; + + /// If set to true, the full entities (including all vector values and + /// metadata) of the nearest neighbors are returned; otherwise only entity id + /// of the nearest neighbors will be returned. + /// + /// Note that returning full entities will significantly increase the latency + /// and cost of the query. + /// + /// Optional. + core.bool? returnFullEntity; + + GoogleCloudAiplatformV1SearchNearestEntitiesRequest({ + this.query, + this.returnFullEntity, + }); + + GoogleCloudAiplatformV1SearchNearestEntitiesRequest.fromJson(core.Map json_) + : this( + query: json_.containsKey('query') + ? GoogleCloudAiplatformV1NearestNeighborQuery.fromJson( + json_['query'] as core.Map) + : null, + returnFullEntity: json_.containsKey('returnFullEntity') + ? json_['returnFullEntity'] as core.bool + : null, + ); + + core.Map toJson() => { + if (query != null) 'query': query!, + if (returnFullEntity != null) 'returnFullEntity': returnFullEntity!, + }; +} + +/// Response message for FeatureOnlineStoreService.SearchNearestEntities +class GoogleCloudAiplatformV1SearchNearestEntitiesResponse { + /// The nearest neighbors of the query entity. + GoogleCloudAiplatformV1NearestNeighbors? nearestNeighbors; + + GoogleCloudAiplatformV1SearchNearestEntitiesResponse({ + this.nearestNeighbors, + }); + + GoogleCloudAiplatformV1SearchNearestEntitiesResponse.fromJson(core.Map json_) + : this( + nearestNeighbors: json_.containsKey('nearestNeighbors') + ? GoogleCloudAiplatformV1NearestNeighbors.fromJson( + json_['nearestNeighbors'] + as core.Map) + : null, + ); + + core.Map toJson() => { + if (nearestNeighbors != null) 'nearestNeighbors': nearestNeighbors!, + }; +} + +/// Segment of the content. +class GoogleCloudAiplatformV1Segment { + /// End index in the given Part, measured in bytes. + /// + /// Offset from the start of the Part, exclusive, starting at zero. + /// + /// Output only. + core.int? endIndex; + + /// The index of a Part object within its parent Content object. + /// + /// Output only. + core.int? partIndex; + + /// Start index in the given Part, measured in bytes. + /// + /// Offset from the start of the Part, inclusive, starting at zero. + /// + /// Output only. + core.int? startIndex; + + GoogleCloudAiplatformV1Segment({ + this.endIndex, + this.partIndex, + this.startIndex, + }); + + GoogleCloudAiplatformV1Segment.fromJson(core.Map json_) + : this( + endIndex: json_.containsKey('endIndex') + ? json_['endIndex'] as core.int + : null, + partIndex: json_.containsKey('partIndex') + ? json_['partIndex'] as core.int + : null, + startIndex: json_.containsKey('startIndex') + ? json_['startIndex'] as core.int + : null, + ); + + core.Map toJson() => { + if (endIndex != null) 'endIndex': endIndex!, + if (partIndex != null) 'partIndex': partIndex!, + if (startIndex != null) 'startIndex': startIndex!, + }; +} + +/// A set of Shielded Instance options. +/// +/// See +/// [Images using supported Shielded VM features](https://cloud.google.com/compute/docs/instances/modifying-shielded-vm). +class GoogleCloudAiplatformV1ShieldedVmConfig { + /// Defines whether the instance has + /// [Secure Boot](https://cloud.google.com/compute/shielded-vm/docs/shielded-vm#secure-boot) + /// enabled. + /// + /// Secure Boot helps ensure that the system only runs authentic software by + /// verifying the digital signature of all boot components, and halting the + /// boot process if signature verification fails. + core.bool? enableSecureBoot; + + GoogleCloudAiplatformV1ShieldedVmConfig({ + this.enableSecureBoot, + }); + + GoogleCloudAiplatformV1ShieldedVmConfig.fromJson(core.Map json_) + : this( + enableSecureBoot: json_.containsKey('enableSecureBoot') + ? json_['enableSecureBoot'] as core.bool + : null, + ); + + core.Map toJson() => { + if (enableSecureBoot != null) 'enableSecureBoot': enableSecureBoot!, + }; +} + /// Config for SmoothGrad approximation of gradients. /// /// When enabled, the gradients are approximated by averaging the gradients from @@ -44047,6 +48137,30 @@ class GoogleCloudAiplatformV1StratifiedSplit { }; } +/// Request message for PredictionService.StreamRawPredict. +class GoogleCloudAiplatformV1StreamRawPredictRequest { + /// The prediction input. + /// + /// Supports HTTP headers and arbitrary data payload. + GoogleApiHttpBody? httpBody; + + GoogleCloudAiplatformV1StreamRawPredictRequest({ + this.httpBody, + }); + + GoogleCloudAiplatformV1StreamRawPredictRequest.fromJson(core.Map json_) + : this( + httpBody: json_.containsKey('httpBody') + ? GoogleApiHttpBody.fromJson( + json_['httpBody'] as core.Map) + : null, + ); + + core.Map toJson() => { + if (httpBody != null) 'httpBody': httpBody!, + }; +} + /// Request message for PredictionService.StreamingPredict. /// /// The first message must contain endpoint field and optionally input. The @@ -46413,6 +50527,46 @@ class GoogleCloudAiplatformV1TokensInfo { }; } +/// Tool details that the model may use to generate response. +/// +/// A `Tool` is a piece of code that enables the system to interact with +/// external systems to perform an action, or set of actions, outside of +/// knowledge and scope of the model. A Tool object should contain exactly one +/// type of Tool (e.g FunctionDeclaration, Retrieval or GoogleSearchRetrieval). +class GoogleCloudAiplatformV1Tool { + /// Function tool type. + /// + /// One or more function declarations to be passed to the model along with the + /// current user query. Model may decide to call a subset of these functions + /// by populating FunctionCall in the response. User should provide a + /// FunctionResponse for each function call in the next turn. Based on the + /// function responses, Model will generate the final response back to the + /// user. Maximum 64 function declarations can be provided. + /// + /// Optional. + core.List? functionDeclarations; + + GoogleCloudAiplatformV1Tool({ + this.functionDeclarations, + }); + + GoogleCloudAiplatformV1Tool.fromJson(core.Map json_) + : this( + functionDeclarations: json_.containsKey('functionDeclarations') + ? (json_['functionDeclarations'] as core.List) + .map((value) => + GoogleCloudAiplatformV1FunctionDeclaration.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (functionDeclarations != null) + 'functionDeclarations': functionDeclarations!, + }; +} + /// CMLE training config. /// /// For every active learning labeling iteration, system will train a machine @@ -47103,6 +51257,9 @@ class GoogleCloudAiplatformV1UpdateExplanationDatasetRequest { }; } +/// Request message for NotebookService.UpgradeNotebookRuntime. +typedef GoogleCloudAiplatformV1UpgradeNotebookRuntimeRequest = $Empty; + /// Request message for ModelService.UploadModel. class GoogleCloudAiplatformV1UploadModelRequest { /// The Model to create. @@ -47176,8 +51333,19 @@ class GoogleCloudAiplatformV1UpsertDatapointsRequest { /// A list of datapoints to be created/updated. core.List? datapoints; + /// Update mask is used to specify the fields to be overwritten in the + /// datapoints by the update. + /// + /// The fields specified in the update_mask are relative to each + /// IndexDatapoint inside datapoints, not the full request. Updatable fields: + /// * Use `all_restricts` to update both restricts and numeric_restricts. + /// + /// Optional. + core.String? updateMask; + GoogleCloudAiplatformV1UpsertDatapointsRequest({ this.datapoints, + this.updateMask, }); GoogleCloudAiplatformV1UpsertDatapointsRequest.fromJson(core.Map json_) @@ -47189,10 +51357,14 @@ class GoogleCloudAiplatformV1UpsertDatapointsRequest { value as core.Map)) .toList() : null, + updateMask: json_.containsKey('updateMask') + ? json_['updateMask'] as core.String + : null, ); core.Map toJson() => { if (datapoints != null) 'datapoints': datapoints!, + if (updateMask != null) 'updateMask': updateMask!, }; } @@ -47285,6 +51457,39 @@ class GoogleCloudAiplatformV1Value { }; } +/// Metadata describes the input video content. +class GoogleCloudAiplatformV1VideoMetadata { + /// The end offset of the video. + /// + /// Optional. + core.String? endOffset; + + /// The start offset of the video. + /// + /// Optional. + core.String? startOffset; + + GoogleCloudAiplatformV1VideoMetadata({ + this.endOffset, + this.startOffset, + }); + + GoogleCloudAiplatformV1VideoMetadata.fromJson(core.Map json_) + : this( + endOffset: json_.containsKey('endOffset') + ? json_['endOffset'] as core.String + : null, + startOffset: json_.containsKey('startOffset') + ? json_['startOffset'] as core.String + : null, + ); + + core.Map toJson() => { + if (endOffset != null) 'endOffset': endOffset!, + if (startOffset != null) 'startOffset': startOffset!, + }; +} + /// Represents the spec of a worker pool in a job. class GoogleCloudAiplatformV1WorkerPoolSpec { /// The custom container task. @@ -47647,14 +51852,31 @@ class GoogleIamV1Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -47663,12 +51885,19 @@ class GoogleIamV1Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; GoogleIamV1Binding({ @@ -47962,6 +52191,18 @@ typedef GoogleProtobufEmpty = $Empty; /// [API Design Guide](https://cloud.google.com/apis/design/errors). typedef GoogleRpcStatus = $Status; +/// Represents a whole or partial calendar date, such as a birthday. +/// +/// The time of day and time zone are either specified elsewhere or are +/// insignificant. The date is relative to the Gregorian Calendar. This can +/// represent one of the following: * A full date, with non-zero year, month, +/// and day values. * A month and day, with a zero year (for example, an +/// anniversary). * A year on its own, with a zero month and a zero day. * A +/// year and month, with a zero day (for example, a credit card expiration +/// date). Related types: * google.type.TimeOfDay * google.type.DateTime * +/// google.protobuf.Timestamp +typedef GoogleTypeDate = $Date; + /// Represents a textual expression in the Common Expression Language (CEL) /// syntax. /// diff --git a/generated/googleapis/lib/alloydb/v1.dart b/generated/googleapis/lib/alloydb/v1.dart index 4626c765c..0fb5589f8 100644 --- a/generated/googleapis/lib/alloydb/v1.dart +++ b/generated/googleapis/lib/alloydb/v1.dart @@ -2365,6 +2365,11 @@ class Backup { /// Output only. core.bool? reconciling; + /// Reserved for future use. + /// + /// Output only. + core.bool? satisfiesPzs; + /// The size of the backup in bytes. /// /// Output only. @@ -2422,6 +2427,7 @@ class Backup { this.labels, this.name, this.reconciling, + this.satisfiesPzs, this.sizeBytes, this.state, this.type, @@ -2489,6 +2495,9 @@ class Backup { reconciling: json_.containsKey('reconciling') ? json_['reconciling'] as core.bool : null, + satisfiesPzs: json_.containsKey('satisfiesPzs') + ? json_['satisfiesPzs'] as core.bool + : null, sizeBytes: json_.containsKey('sizeBytes') ? json_['sizeBytes'] as core.String : null, @@ -2518,6 +2527,7 @@ class Backup { if (labels != null) 'labels': labels!, if (name != null) 'name': name!, if (reconciling != null) 'reconciling': reconciling!, + if (satisfiesPzs != null) 'satisfiesPzs': satisfiesPzs!, if (sizeBytes != null) 'sizeBytes': sizeBytes!, if (state != null) 'state': state!, if (type != null) 'type': type!, @@ -2751,6 +2761,11 @@ class Cluster { /// Output only. core.bool? reconciling; + /// Reserved for future use. + /// + /// Output only. + core.bool? satisfiesPzs; + /// Cross Region replication config specific to SECONDARY cluster. SecondaryConfig? secondaryConfig; @@ -2820,6 +2835,7 @@ class Cluster { this.networkConfig, this.primaryConfig, this.reconciling, + this.satisfiesPzs, this.secondaryConfig, this.sslConfig, this.state, @@ -2909,6 +2925,9 @@ class Cluster { reconciling: json_.containsKey('reconciling') ? json_['reconciling'] as core.bool : null, + satisfiesPzs: json_.containsKey('satisfiesPzs') + ? json_['satisfiesPzs'] as core.bool + : null, secondaryConfig: json_.containsKey('secondaryConfig') ? SecondaryConfig.fromJson(json_['secondaryConfig'] as core.Map) @@ -2950,6 +2969,7 @@ class Cluster { if (networkConfig != null) 'networkConfig': networkConfig!, if (primaryConfig != null) 'primaryConfig': primaryConfig!, if (reconciling != null) 'reconciling': reconciling!, + if (satisfiesPzs != null) 'satisfiesPzs': satisfiesPzs!, if (secondaryConfig != null) 'secondaryConfig': secondaryConfig!, if (sslConfig != null) 'sslConfig': sslConfig!, if (state != null) 'state': state!, @@ -3600,6 +3620,11 @@ class Instance { /// Output only. core.bool? reconciling; + /// Reserved for future use. + /// + /// Output only. + core.bool? satisfiesPzs; + /// The current serving state of the instance. /// /// Output only. @@ -3659,6 +3684,7 @@ class Instance { this.queryInsightsConfig, this.readPoolConfig, this.reconciling, + this.satisfiesPzs, this.state, this.uid, this.updateTime, @@ -3742,6 +3768,9 @@ class Instance { reconciling: json_.containsKey('reconciling') ? json_['reconciling'] as core.bool : null, + satisfiesPzs: json_.containsKey('satisfiesPzs') + ? json_['satisfiesPzs'] as core.bool + : null, state: json_.containsKey('state') ? json_['state'] as core.String : null, uid: json_.containsKey('uid') ? json_['uid'] as core.String : null, @@ -3775,6 +3804,7 @@ class Instance { 'queryInsightsConfig': queryInsightsConfig!, if (readPoolConfig != null) 'readPoolConfig': readPoolConfig!, if (reconciling != null) 'reconciling': reconciling!, + if (satisfiesPzs != null) 'satisfiesPzs': satisfiesPzs!, if (state != null) 'state': state!, if (uid != null) 'uid': uid!, if (updateTime != null) 'updateTime': updateTime!, @@ -4117,7 +4147,7 @@ class NetworkConfig { /// "projects/{project_number}/global/networks/{network_id}". This is required /// to create a cluster. /// - /// Required. + /// Optional. core.String? network; NetworkConfig({ diff --git a/generated/googleapis/lib/analyticshub/v1.dart b/generated/googleapis/lib/analyticshub/v1.dart index 19bf1937d..1af6e2db6 100644 --- a/generated/googleapis/lib/analyticshub/v1.dart +++ b/generated/googleapis/lib/analyticshub/v1.dart @@ -1170,6 +1170,50 @@ class ProjectsLocationsSubscriptionsResource { response_ as core.Map); } + /// Gets the IAM policy. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [resource] - REQUIRED: The resource for which the policy is being + /// requested. See + /// [Resource names](https://cloud.google.com/apis/design/resource_names) for + /// the appropriate value for this field. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/subscriptions/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Policy]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future getIamPolicy( + GetIamPolicyRequest request, + core.String resource, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$resource') + ':getIamPolicy'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Policy.fromJson(response_ as core.Map); + } + /// Lists all subscriptions in a given project and location. /// /// Request parameters: @@ -1308,6 +1352,50 @@ class ProjectsLocationsSubscriptionsResource { return RevokeSubscriptionResponse.fromJson( response_ as core.Map); } + + /// Sets the IAM policy. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [resource] - REQUIRED: The resource for which the policy is being + /// specified. See + /// [Resource names](https://cloud.google.com/apis/design/resource_names) for + /// the appropriate value for this field. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/subscriptions/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Policy]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future setIamPolicy( + SetIamPolicyRequest request, + core.String resource, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$resource') + ':setIamPolicy'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Policy.fromJson(response_ as core.Map); + } } /// Specifies the audit configuration for a service. @@ -1430,14 +1518,31 @@ class Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -1446,12 +1551,19 @@ class Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; Binding({ @@ -1636,7 +1748,54 @@ class DataProvider { } /// Data Clean Room (DCR), used for privacy-safe and secured data sharing. -typedef DcrExchangeConfig = $Empty; +class DcrExchangeConfig { + /// If True, when subscribing to this DCR, it will create only one linked + /// dataset containing all resources shared within the cleanroom. + /// + /// If False, when subscribing to this DCR, it will create 1 linked dataset + /// per listing. This is not configurable, and by default, all new DCRs will + /// have the restriction set to True. + /// + /// Output only. + core.bool? singleLinkedDatasetPerCleanroom; + + /// If True, this DCR restricts the contributors to sharing only a single + /// resource in a Listing. + /// + /// And no two resources should have the same IDs. So if a contributor adds a + /// view with a conflicting name, the CreateListing API will reject the + /// request. if False, the data contributor can publish an entire dataset (as + /// before). This is not configurable, and by default, all new DCRs will have + /// the restriction set to True. + /// + /// Output only. + core.bool? singleSelectedResourceSharingRestriction; + + DcrExchangeConfig({ + this.singleLinkedDatasetPerCleanroom, + this.singleSelectedResourceSharingRestriction, + }); + + DcrExchangeConfig.fromJson(core.Map json_) + : this( + singleLinkedDatasetPerCleanroom: + json_.containsKey('singleLinkedDatasetPerCleanroom') + ? json_['singleLinkedDatasetPerCleanroom'] as core.bool + : null, + singleSelectedResourceSharingRestriction: json_ + .containsKey('singleSelectedResourceSharingRestriction') + ? json_['singleSelectedResourceSharingRestriction'] as core.bool + : null, + ); + + core.Map toJson() => { + if (singleLinkedDatasetPerCleanroom != null) + 'singleLinkedDatasetPerCleanroom': singleLinkedDatasetPerCleanroom!, + if (singleSelectedResourceSharingRestriction != null) + 'singleSelectedResourceSharingRestriction': + singleSelectedResourceSharingRestriction!, + }; +} /// Default Analytics Hub data exchange, used for secured data sharing. typedef DefaultExchangeConfig = $Empty; diff --git a/generated/googleapis/lib/androidmanagement/v1.dart b/generated/googleapis/lib/androidmanagement/v1.dart index 2a9ed896f..3342dcaea 100644 --- a/generated/googleapis/lib/androidmanagement/v1.dart +++ b/generated/googleapis/lib/androidmanagement/v1.dart @@ -24,6 +24,7 @@ /// - [EnterprisesDevicesResource] /// - [EnterprisesDevicesOperationsResource] /// - [EnterprisesEnrollmentTokensResource] +/// - [EnterprisesMigrationTokensResource] /// - [EnterprisesPoliciesResource] /// - [EnterprisesWebAppsResource] /// - [EnterprisesWebTokensResource] @@ -74,6 +75,8 @@ class EnterprisesResource { EnterprisesDevicesResource(_requester); EnterprisesEnrollmentTokensResource get enrollmentTokens => EnterprisesEnrollmentTokensResource(_requester); + EnterprisesMigrationTokensResource get migrationTokens => + EnterprisesMigrationTokensResource(_requester); EnterprisesPoliciesResource get policies => EnterprisesPoliciesResource(_requester); EnterprisesWebAppsResource get webApps => @@ -155,9 +158,12 @@ class EnterprisesResource { response_ as core.Map); } - /// Deletes an enterprise. + /// Permanently deletes an enterprise and all accounts and data associated + /// with it. /// - /// Only available for EMM-managed enterprises. + /// Warning: this will result in a cascaded deletion of all AM API devices + /// associated with the deleted enterprise. Only available for EMM-managed + /// enterprises. /// /// Request parameters: /// @@ -675,46 +681,6 @@ class EnterprisesDevicesOperationsResource { return Empty.fromJson(response_ as core.Map); } - /// Deletes a long-running operation. - /// - /// This method indicates that the client is no longer interested in the - /// operation result. It does not cancel the operation. If the server doesn't - /// support this method, it returns google.rpc.Code.UNIMPLEMENTED. - /// - /// Request parameters: - /// - /// [name] - The name of the operation resource to be deleted. - /// Value must have pattern - /// `^enterprises/\[^/\]+/devices/\[^/\]+/operations/\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Empty]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future delete( - core.String name, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/' + core.Uri.encodeFull('$name'); - - final response_ = await _requester.request( - url_, - 'DELETE', - queryParams: queryParams_, - ); - return Empty.fromJson(response_ as core.Map); - } - /// Gets the latest state of a long-running operation. /// /// Clients can use this method to poll the operation result at intervals as @@ -996,6 +962,145 @@ class EnterprisesEnrollmentTokensResource { } } +class EnterprisesMigrationTokensResource { + final commons.ApiRequester _requester; + + EnterprisesMigrationTokensResource(commons.ApiRequester client) + : _requester = client; + + /// Creates a migration token, to migrate an existing device from being + /// managed by the EMM's Device Policy Controller (DPC) to being managed by + /// the Android Management API. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [parent] - Required. The enterprise in which this migration token will be + /// created. Format: enterprises/{enterprise} + /// Value must have pattern `^enterprises/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [MigrationToken]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future create( + MigrationToken request, + core.String parent, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/migrationTokens'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return MigrationToken.fromJson( + response_ as core.Map); + } + + /// Gets a migration token. + /// + /// Request parameters: + /// + /// [name] - Required. The name of the migration token to retrieve. Format: + /// enterprises/{enterprise}/migrationTokens/{migration_token} + /// Value must have pattern `^enterprises/\[^/\]+/migrationTokens/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [MigrationToken]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return MigrationToken.fromJson( + response_ as core.Map); + } + + /// Lists migration tokens. + /// + /// Request parameters: + /// + /// [parent] - Required. The enterprise which the migration tokens belong to. + /// Format: enterprises/{enterprise} + /// Value must have pattern `^enterprises/\[^/\]+$`. + /// + /// [pageSize] - The maximum number of migration tokens to return. Fewer + /// migration tokens may be returned. If unspecified, at most 100 migration + /// tokens will be returned. The maximum value is 100; values above 100 will + /// be coerced to 100. + /// + /// [pageToken] - A page token, received from a previous ListMigrationTokens + /// call. Provide this to retrieve the subsequent page.When paginating, all + /// other parameters provided to ListMigrationTokens must match the call that + /// provided the page token. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [ListMigrationTokensResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future list( + core.String parent, { + core.int? pageSize, + core.String? pageToken, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (pageSize != null) 'pageSize': ['${pageSize}'], + if (pageToken != null) 'pageToken': [pageToken], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/migrationTokens'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return ListMigrationTokensResponse.fromJson( + response_ as core.Map); + } +} + class EnterprisesPoliciesResource { final commons.ApiRequester _requester; @@ -1527,10 +1632,9 @@ class SignupUrlsResource { } } -/// Security policies set to secure values by default. +/// Advanced security settings. /// -/// To maintain the security posture of a device, we don't recommend overriding -/// any of the default values. +/// In most cases, setting these is not needed. class AdvancedSecurityOverrides { /// Controls Common Criteria Mode—security standards defined in the Common /// Criteria for Information Technology Security Evaluation @@ -1575,6 +1679,34 @@ class AdvancedSecurityOverrides { /// app verification. core.String? googlePlayProtectVerifyApps; + /// Controls Memory Tagging Extension (MTE) + /// (https://source.android.com/docs/security/test/memory-safety/arm-mte) on + /// the device. + /// + /// The device needs to be rebooted to apply changes to the MTE policy. + /// + /// Optional. + /// Possible string values are: + /// - "MTE_POLICY_UNSPECIFIED" : Unspecified. Defaults to MTE_USER_CHOICE. + /// - "MTE_USER_CHOICE" : The user can choose to enable or disable MTE on the + /// device if the device supports this. + /// - "MTE_ENFORCED" : MTE is enabled on the device and the user is not + /// allowed to change this setting. This can be set on fully managed devices + /// and work profiles on company-owned devices. A nonComplianceDetail with + /// MANAGEMENT_MODE is reported for other management modes. A + /// nonComplianceDetail with DEVICE_INCOMPATIBLE is reported if the device + /// does not support MTE.Supported on Android 14 and above. A + /// nonComplianceDetail with API_LEVEL is reported if the Android version is + /// less than 14. + /// - "MTE_DISABLED" : MTE is disabled on the device and the user is not + /// allowed to change this setting. This applies only on fully managed + /// devices. In other cases, a nonComplianceDetail with MANAGEMENT_MODE is + /// reported. A nonComplianceDetail with DEVICE_INCOMPATIBLE is reported if + /// the device does not support MTE.Supported on Android 14 and above. A + /// nonComplianceDetail with API_LEVEL is reported if the Android version is + /// less than 14. + core.String? mtePolicy; + /// Personal apps that can read work profile notifications using a /// NotificationListenerService /// (https://developer.android.com/reference/android/service/notification/NotificationListenerService). @@ -1603,6 +1735,7 @@ class AdvancedSecurityOverrides { this.commonCriteriaMode, this.developerSettings, this.googlePlayProtectVerifyApps, + this.mtePolicy, this.personalAppsThatCanReadWorkNotifications, this.untrustedAppsPolicy, }); @@ -1619,6 +1752,9 @@ class AdvancedSecurityOverrides { json_.containsKey('googlePlayProtectVerifyApps') ? json_['googlePlayProtectVerifyApps'] as core.String : null, + mtePolicy: json_.containsKey('mtePolicy') + ? json_['mtePolicy'] as core.String + : null, personalAppsThatCanReadWorkNotifications: json_ .containsKey('personalAppsThatCanReadWorkNotifications') ? (json_['personalAppsThatCanReadWorkNotifications'] as core.List) @@ -1636,6 +1772,7 @@ class AdvancedSecurityOverrides { if (developerSettings != null) 'developerSettings': developerSettings!, if (googlePlayProtectVerifyApps != null) 'googlePlayProtectVerifyApps': googlePlayProtectVerifyApps!, + if (mtePolicy != null) 'mtePolicy': mtePolicy!, if (personalAppsThatCanReadWorkNotifications != null) 'personalAppsThatCanReadWorkNotifications': personalAppsThatCanReadWorkNotifications!, @@ -2116,7 +2253,7 @@ class ApplicationPermission { /// /// Note: Application availability on a given device cannot be changed using /// this policy if installAppsDisabled is enabled. The maximum number of -/// applications that you can specify per enterprise policy is 3,000. +/// applications that you can specify per policy is 3,000. class ApplicationPolicy { /// List of the app’s track IDs that a device belonging to the enterprise can /// access. @@ -2183,6 +2320,17 @@ class ApplicationPolicy { /// communicate across profiles after receiving user consent. core.String? connectedWorkAndPersonalApp; + /// Whether the app is allowed to act as a credential provider on Android 14 + /// and above. + /// + /// Optional. + /// Possible string values are: + /// - "CREDENTIAL_PROVIDER_POLICY_UNSPECIFIED" : Unspecified. The behaviour is + /// governed by credentialProviderPolicyDefault. + /// - "CREDENTIAL_PROVIDER_ALLOWED" : App is allowed to act as a credential + /// provider. + core.String? credentialProviderPolicy; + /// The default policy for all permissions requested by the app. /// /// If specified, this overrides the policy-level default_permission_policy @@ -2193,7 +2341,24 @@ class ApplicationPolicy { /// specified for a permission at any level, then the PROMPT behavior is used /// by default. /// - "PROMPT" : Prompt the user to grant a permission. - /// - "GRANT" : Automatically grant a permission. + /// - "GRANT" : Automatically grant a permission.On Android 12 and above, + /// Manifest.permission.READ_SMS + /// (https://developer.android.com/reference/android/Manifest.permission#READ_SMS) + /// and following sensor-related permissions can only be granted on fully + /// managed devices: Manifest.permission.ACCESS_FINE_LOCATION + /// (https://developer.android.com/reference/android/Manifest.permission#ACCESS_FINE_LOCATION) + /// Manifest.permission.ACCESS_BACKGROUND_LOCATION + /// (https://developer.android.com/reference/android/Manifest.permission#ACCESS_BACKGROUND_LOCATION) + /// Manifest.permission.ACCESS_COARSE_LOCATION + /// (https://developer.android.com/reference/android/Manifest.permission#ACCESS_COARSE_LOCATION) + /// Manifest.permission.CAMERA + /// (https://developer.android.com/reference/android/Manifest.permission#CAMERA) + /// Manifest.permission.RECORD_AUDIO + /// (https://developer.android.com/reference/android/Manifest.permission#RECORD_AUDIO) + /// Manifest.permission.ACTIVITY_RECOGNITION + /// (https://developer.android.com/reference/android/Manifest.permission#ACTIVITY_RECOGNITION) + /// Manifest.permission.BODY_SENSORS + /// (https://developer.android.com/reference/android/Manifest.permission#BODY_SENSORS) /// - "DENY" : Automatically deny a permission. core.String? defaultPermissionPolicy; @@ -2213,6 +2378,24 @@ class ApplicationPolicy { /// for at most one app. ExtensionConfig? extensionConfig; + /// The constraints for installing the app. + /// + /// You can specify a maximum of one InstallConstraint. Multiple constraints + /// are rejected. + /// + /// Optional. + core.List? installConstraint; + + /// Amongst apps with installType set to: FORCE_INSTALLED PREINSTALLEDthis + /// controls the relative priority of installation. + /// + /// A value of 0 (default) means this app has no priority over other apps. For + /// values between 1 and 10,000, a lower value means a higher priority. Values + /// outside of the range 0 to 10,000 inclusive are rejected. + /// + /// Optional. + core.int? installPriority; + /// The type of installation to perform. /// Possible string values are: /// - "INSTALL_TYPE_UNSPECIFIED" : Unspecified. Defaults to AVAILABLE. @@ -2301,10 +2484,13 @@ class ApplicationPolicy { this.alwaysOnVpnLockdownExemption, this.autoUpdateMode, this.connectedWorkAndPersonalApp, + this.credentialProviderPolicy, this.defaultPermissionPolicy, this.delegatedScopes, this.disabled, this.extensionConfig, + this.installConstraint, + this.installPriority, this.installType, this.lockTaskAllowed, this.managedConfiguration, @@ -2333,6 +2519,10 @@ class ApplicationPolicy { json_.containsKey('connectedWorkAndPersonalApp') ? json_['connectedWorkAndPersonalApp'] as core.String : null, + credentialProviderPolicy: + json_.containsKey('credentialProviderPolicy') + ? json_['credentialProviderPolicy'] as core.String + : null, defaultPermissionPolicy: json_.containsKey('defaultPermissionPolicy') ? json_['defaultPermissionPolicy'] as core.String : null, @@ -2348,6 +2538,15 @@ class ApplicationPolicy { ? ExtensionConfig.fromJson(json_['extensionConfig'] as core.Map) : null, + installConstraint: json_.containsKey('installConstraint') + ? (json_['installConstraint'] as core.List) + .map((value) => InstallConstraint.fromJson( + value as core.Map)) + .toList() + : null, + installPriority: json_.containsKey('installPriority') + ? json_['installPriority'] as core.int + : null, installType: json_.containsKey('installType') ? json_['installType'] as core.String : null, @@ -2389,11 +2588,15 @@ class ApplicationPolicy { if (autoUpdateMode != null) 'autoUpdateMode': autoUpdateMode!, if (connectedWorkAndPersonalApp != null) 'connectedWorkAndPersonalApp': connectedWorkAndPersonalApp!, + if (credentialProviderPolicy != null) + 'credentialProviderPolicy': credentialProviderPolicy!, if (defaultPermissionPolicy != null) 'defaultPermissionPolicy': defaultPermissionPolicy!, if (delegatedScopes != null) 'delegatedScopes': delegatedScopes!, if (disabled != null) 'disabled': disabled!, if (extensionConfig != null) 'extensionConfig': extensionConfig!, + if (installConstraint != null) 'installConstraint': installConstraint!, + if (installPriority != null) 'installPriority': installPriority!, if (installType != null) 'installType': installType!, if (lockTaskAllowed != null) 'lockTaskAllowed': lockTaskAllowed!, if (managedConfiguration != null) @@ -3378,6 +3581,9 @@ class Device { /// are in this state until they have a policy applied. /// - "LOST" : The device is lost. This state is only possible on /// organization-owned devices. + /// - "PREPARING_FOR_MIGRATION" : The device is preparing for migrating to + /// Android Management API. No further action is needed for the migration to + /// continue. core.String? appliedState; /// Information about Common Criteria Mode—security standards defined in the @@ -3405,6 +3611,12 @@ class Device { /// device's policy. core.List? displays; + /// Information related to whether this device was migrated from being managed + /// by another Device Policy Controller (DPC). + /// + /// Output only. + DpcMigrationInfo? dpcMigrationInfo; + /// The time of device enrollment. core.String? enrollmentTime; @@ -3451,7 +3663,8 @@ class Device { /// Events related to memory and storage measurements in chronological order. /// /// This information is only available if memoryInfoEnabled is true in the - /// device's policy. + /// device's policy.Events are retained for a certain period of time and old + /// events are deleted. core.List? memoryEvents; /// Memory information: contains information about device memory and storage. @@ -3531,6 +3744,9 @@ class Device { /// are in this state until they have a policy applied. /// - "LOST" : The device is lost. This state is only possible on /// organization-owned devices. + /// - "PREPARING_FOR_MIGRATION" : The device is preparing for migrating to + /// Android Management API. No further action is needed for the migration to + /// continue. core.String? state; /// Map of selected system properties name and value related to the device. @@ -3557,6 +3773,7 @@ class Device { this.deviceSettings, this.disabledReason, this.displays, + this.dpcMigrationInfo, this.enrollmentTime, this.enrollmentTokenData, this.enrollmentTokenName, @@ -3628,6 +3845,10 @@ class Device { value as core.Map)) .toList() : null, + dpcMigrationInfo: json_.containsKey('dpcMigrationInfo') + ? DpcMigrationInfo.fromJson(json_['dpcMigrationInfo'] + as core.Map) + : null, enrollmentTime: json_.containsKey('enrollmentTime') ? json_['enrollmentTime'] as core.String : null, @@ -3745,6 +3966,7 @@ class Device { if (deviceSettings != null) 'deviceSettings': deviceSettings!, if (disabledReason != null) 'disabledReason': disabledReason!, if (displays != null) 'displays': displays!, + if (dpcMigrationInfo != null) 'dpcMigrationInfo': dpcMigrationInfo!, if (enrollmentTime != null) 'enrollmentTime': enrollmentTime!, if (enrollmentTokenData != null) 'enrollmentTokenData': enrollmentTokenData!, @@ -3928,6 +4150,26 @@ class DeviceRadioState { /// API_LEVEL is reported if the Android version is less than 14. core.String? cellularTwoGState; + /// The minimum required security level of Wi-Fi networks that the device can + /// connect to. + /// Possible string values are: + /// - "MINIMUM_WIFI_SECURITY_LEVEL_UNSPECIFIED" : Defaults to + /// OPEN_NETWORK_SECURITY, which means the device will be able to connect to + /// all types of Wi-Fi networks. + /// - "OPEN_NETWORK_SECURITY" : The device will be able to connect to all + /// types of Wi-Fi networks. + /// - "PERSONAL_NETWORK_SECURITY" : A personal network such as WEP, WPA2-PSK + /// is the minimum required security. The device will not be able to connect + /// to open wifi networks. This is stricter than OPEN_NETWORK_SECURITY. A + /// nonComplianceDetail with API_LEVEL is reported if the Android version is + /// less than 13. + /// - "ENTERPRISE_NETWORK_SECURITY" : An enterprise EAP network is the minimum + /// required security level. The device will not be able to connect to Wi-Fi + /// network below this security level. This is stricter than + /// PERSONAL_NETWORK_SECURITY. A nonComplianceDetail with API_LEVEL is + /// reported if the Android version is less than 13. + core.String? minimumWifiSecurityLevel; + /// Controls the state of the ultra wideband setting and whether the user can /// toggle it on or off. /// Possible string values are: @@ -3956,6 +4198,7 @@ class DeviceRadioState { DeviceRadioState({ this.airplaneModeState, this.cellularTwoGState, + this.minimumWifiSecurityLevel, this.ultraWidebandState, this.wifiState, }); @@ -3968,6 +4211,10 @@ class DeviceRadioState { cellularTwoGState: json_.containsKey('cellularTwoGState') ? json_['cellularTwoGState'] as core.String : null, + minimumWifiSecurityLevel: + json_.containsKey('minimumWifiSecurityLevel') + ? json_['minimumWifiSecurityLevel'] as core.String + : null, ultraWidebandState: json_.containsKey('ultraWidebandState') ? json_['ultraWidebandState'] as core.String : null, @@ -3979,6 +4226,8 @@ class DeviceRadioState { core.Map toJson() => { if (airplaneModeState != null) 'airplaneModeState': airplaneModeState!, if (cellularTwoGState != null) 'cellularTwoGState': cellularTwoGState!, + if (minimumWifiSecurityLevel != null) + 'minimumWifiSecurityLevel': minimumWifiSecurityLevel!, if (ultraWidebandState != null) 'ultraWidebandState': ultraWidebandState!, if (wifiState != null) 'wifiState': wifiState!, @@ -4142,6 +4391,43 @@ class Display { }; } +/// Information related to whether this device was migrated from being managed +/// by another Device Policy Controller (DPC). +class DpcMigrationInfo { + /// If this device was migrated from another DPC, the additionalData field of + /// the migration token is populated here. + /// + /// Output only. + core.String? additionalData; + + /// If this device was migrated from another DPC, this is its package name. + /// + /// Not populated otherwise. + /// + /// Output only. + core.String? previousDpc; + + DpcMigrationInfo({ + this.additionalData, + this.previousDpc, + }); + + DpcMigrationInfo.fromJson(core.Map json_) + : this( + additionalData: json_.containsKey('additionalData') + ? json_['additionalData'] as core.String + : null, + previousDpc: json_.containsKey('previousDpc') + ? json_['previousDpc'] as core.String + : null, + ); + + core.Map toJson() => { + if (additionalData != null) 'additionalData': additionalData!, + if (previousDpc != null) 'previousDpc': previousDpc!, + }; +} + /// A generic empty message that you can re-use to avoid defining duplicated /// empty messages in your APIs. /// @@ -4846,6 +5132,73 @@ class HardwareStatus { }; } +/// Amongst apps with InstallType set to: FORCE_INSTALLED PREINSTALLEDthis +/// defines a set of restrictions for the app installation. +/// +/// At least one of the fields must be set. When multiple fields are set, then +/// all the constraints need to be satisfied for the app to be installed. +class InstallConstraint { + /// Charging constraint. + /// + /// Optional. + /// Possible string values are: + /// - "CHARGING_CONSTRAINT_UNSPECIFIED" : Unspecified. Default to + /// CHARGING_NOT_REQUIRED. + /// - "CHARGING_NOT_REQUIRED" : Device doesn't have to be charging. + /// - "INSTALL_ONLY_WHEN_CHARGING" : Device has to be charging. + core.String? chargingConstraint; + + /// Device idle constraint. + /// + /// Optional. + /// Possible string values are: + /// - "DEVICE_IDLE_CONSTRAINT_UNSPECIFIED" : Unspecified. Default to + /// DEVICE_IDLE_NOT_REQUIRED. + /// - "DEVICE_IDLE_NOT_REQUIRED" : Device doesn't have to be idle, app can be + /// installed while the user is interacting with the device. + /// - "INSTALL_ONLY_WHEN_DEVICE_IDLE" : Device has to be idle. + core.String? deviceIdleConstraint; + + /// Network type constraint. + /// + /// Optional. + /// Possible string values are: + /// - "NETWORK_TYPE_CONSTRAINT_UNSPECIFIED" : Unspecified. Default to + /// INSTALL_ON_ANY_NETWORK. + /// - "INSTALL_ON_ANY_NETWORK" : Any active networks (Wi-Fi, cellular, etc.). + /// - "INSTALL_ONLY_ON_UNMETERED_NETWORK" : Any unmetered network (e.g. + /// Wi-FI). + core.String? networkTypeConstraint; + + InstallConstraint({ + this.chargingConstraint, + this.deviceIdleConstraint, + this.networkTypeConstraint, + }); + + InstallConstraint.fromJson(core.Map json_) + : this( + chargingConstraint: json_.containsKey('chargingConstraint') + ? json_['chargingConstraint'] as core.String + : null, + deviceIdleConstraint: json_.containsKey('deviceIdleConstraint') + ? json_['deviceIdleConstraint'] as core.String + : null, + networkTypeConstraint: json_.containsKey('networkTypeConstraint') + ? json_['networkTypeConstraint'] as core.String + : null, + ); + + core.Map toJson() => { + if (chargingConstraint != null) + 'chargingConstraint': chargingConstraint!, + if (deviceIdleConstraint != null) + 'deviceIdleConstraint': deviceIdleConstraint!, + if (networkTypeConstraint != null) + 'networkTypeConstraint': networkTypeConstraint!, + }; +} + /// Keyed app state reported by the app. class KeyedAppState { /// The creation time of the app state on the device. @@ -5141,6 +5494,40 @@ class ListEnterprisesResponse { }; } +/// Response to a request to list migration tokens for a given enterprise. +class ListMigrationTokensResponse { + /// The migration tokens from the specified enterprise. + core.List? migrationTokens; + + /// A token, which can be sent as page_token to retrieve the next page. + /// + /// If this field is omitted, there are no subsequent pages. + core.String? nextPageToken; + + ListMigrationTokensResponse({ + this.migrationTokens, + this.nextPageToken, + }); + + ListMigrationTokensResponse.fromJson(core.Map json_) + : this( + migrationTokens: json_.containsKey('migrationTokens') + ? (json_['migrationTokens'] as core.List) + .map((value) => MigrationToken.fromJson( + value as core.Map)) + .toList() + : null, + nextPageToken: json_.containsKey('nextPageToken') + ? json_['nextPageToken'] as core.String + : null, + ); + + core.Map toJson() => { + if (migrationTokens != null) 'migrationTokens': migrationTokens!, + if (nextPageToken != null) 'nextPageToken': nextPageToken!, + }; +} + /// The response message for Operations.ListOperations. class ListOperationsResponse { /// The standard List next-page token. @@ -5401,7 +5788,8 @@ class ManagedPropertyEntry { }; } -/// An event related to memory and storage measurements. +/// An event related to memory and storage measurements.To distinguish between +/// new and old events, we recommend using the createTime field. class MemoryEvent { /// The number of free bytes in the medium, or for EXTERNAL_STORAGE_DETECTED, /// the total capacity in bytes of the storage medium. @@ -5481,6 +5869,158 @@ class MemoryInfo { }; } +/// A token to initiate the migration of a device from being managed by a +/// third-party DPC to being managed by Android Management API. +/// +/// A migration token is valid only for a single device. +class MigrationToken { + /// Optional EMM-specified additional data. + /// + /// Once the device is migrated this will be populated in the + /// migrationAdditionalData field of the Device resource. This must be at most + /// 1024 characters. + /// + /// Immutable. + core.String? additionalData; + + /// Time when this migration token was created. + /// + /// Output only. + core.String? createTime; + + /// Once this migration token is used to migrate a device, the name of the + /// resulting Device resource will be populated here, in the form + /// enterprises/{enterprise}/devices/{device}. + /// + /// Output only. + core.String? device; + + /// The id of the device, as in the Play EMM API. + /// + /// This corresponds to the deviceId parameter in Play EMM API's Devices.get + /// (https://developers.google.com/android/work/play/emm-api/v1/devices/get#parameters) + /// call. + /// + /// Required. Immutable. + core.String? deviceId; + + /// The time when this migration token expires. + /// + /// This can be at most seven days from the time of creation. The migration + /// token is deleted seven days after it expires. + /// + /// Immutable. + core.String? expireTime; + + /// The management mode of the device or profile being migrated. + /// + /// Required. Immutable. + /// Possible string values are: + /// - "MANAGEMENT_MODE_UNSPECIFIED" : This value must not be used. + /// - "WORK_PROFILE_PERSONALLY_OWNED" : A work profile on a personally owned + /// device. Supported only on devices running Android 9 and above. + /// - "WORK_PROFILE_COMPANY_OWNED" : A work profile on a company-owned device. + /// Supported only on devices running Android 11 and above. + /// - "FULLY_MANAGED" : A fully-managed device. Supported only on devices + /// running Android 9 and above. + core.String? managementMode; + + /// The name of the migration token, which is generated by the server during + /// creation, in the form + /// enterprises/{enterprise}/migrationTokens/{migration_token}. + /// + /// Output only. + core.String? name; + + /// The name of the policy initially applied to the enrolled device, in the + /// form enterprises/{enterprise}/policies/{policy}. + /// + /// Required. Immutable. + core.String? policy; + + /// Input only. + /// + /// The time that this migration token is valid for. This is input-only, and + /// for returning a migration token the server will populate the expireTime + /// field. This can be at most seven days. The default is seven days. + core.String? ttl; + + /// The user id of the Managed Google Play account on the device, as in the + /// Play EMM API. + /// + /// This corresponds to the userId parameter in Play EMM API's Devices.get + /// (https://developers.google.com/android/work/play/emm-api/v1/devices/get#parameters) + /// call. + /// + /// Required. Immutable. + core.String? userId; + + /// The value of the migration token. + /// + /// Output only. + core.String? value; + + MigrationToken({ + this.additionalData, + this.createTime, + this.device, + this.deviceId, + this.expireTime, + this.managementMode, + this.name, + this.policy, + this.ttl, + this.userId, + this.value, + }); + + MigrationToken.fromJson(core.Map json_) + : this( + additionalData: json_.containsKey('additionalData') + ? json_['additionalData'] as core.String + : null, + createTime: json_.containsKey('createTime') + ? json_['createTime'] as core.String + : null, + device: json_.containsKey('device') + ? json_['device'] as core.String + : null, + deviceId: json_.containsKey('deviceId') + ? json_['deviceId'] as core.String + : null, + expireTime: json_.containsKey('expireTime') + ? json_['expireTime'] as core.String + : null, + managementMode: json_.containsKey('managementMode') + ? json_['managementMode'] as core.String + : null, + name: json_.containsKey('name') ? json_['name'] as core.String : null, + policy: json_.containsKey('policy') + ? json_['policy'] as core.String + : null, + ttl: json_.containsKey('ttl') ? json_['ttl'] as core.String : null, + userId: json_.containsKey('userId') + ? json_['userId'] as core.String + : null, + value: + json_.containsKey('value') ? json_['value'] as core.String : null, + ); + + core.Map toJson() => { + if (additionalData != null) 'additionalData': additionalData!, + if (createTime != null) 'createTime': createTime!, + if (device != null) 'device': device!, + if (deviceId != null) 'deviceId': deviceId!, + if (expireTime != null) 'expireTime': expireTime!, + if (managementMode != null) 'managementMode': managementMode!, + if (name != null) 'name': name!, + if (policy != null) 'policy': policy!, + if (ttl != null) 'ttl': ttl!, + if (userId != null) 'userId': userId!, + if (value != null) 'value': value!, + }; +} + /// Device network info. class NetworkInfo { /// IMEI number of the GSM device. @@ -5672,6 +6212,15 @@ class NonComplianceDetail { /// - "ONC_WIFI_INVALID_ENTERPRISE_CONFIG" : The enterprise Wi-Fi network is /// missing either the root CA or domain name. nonComplianceReason is set to /// INVALID_VALUE. + /// - "ONC_WIFI_USER_SHOULD_REMOVE_NETWORK" : User needs to remove the + /// configured Wi-Fi network manually. This is applicable only on work + /// profiles on personally-owned devices. nonComplianceReason is set to + /// USER_ACTION. + /// - "ONC_WIFI_KEY_PAIR_ALIAS_NOT_CORRESPONDING_TO_EXISTING_KEY" : Key pair + /// alias specified via ClientCertKeyPairAlias + /// (https://chromium.googlesource.com/chromium/src/+/main/components/onc/docs/onc_spec.md#eap-type) + /// field in openNetworkConfiguration does not correspond to an existing key + /// installed on the device. nonComplianceReason is set to INVALID_VALUE. core.String? specificNonComplianceReason; NonComplianceDetail({ @@ -6289,7 +6838,24 @@ class PermissionGrant { /// specified for a permission at any level, then the PROMPT behavior is used /// by default. /// - "PROMPT" : Prompt the user to grant a permission. - /// - "GRANT" : Automatically grant a permission. + /// - "GRANT" : Automatically grant a permission.On Android 12 and above, + /// Manifest.permission.READ_SMS + /// (https://developer.android.com/reference/android/Manifest.permission#READ_SMS) + /// and following sensor-related permissions can only be granted on fully + /// managed devices: Manifest.permission.ACCESS_FINE_LOCATION + /// (https://developer.android.com/reference/android/Manifest.permission#ACCESS_FINE_LOCATION) + /// Manifest.permission.ACCESS_BACKGROUND_LOCATION + /// (https://developer.android.com/reference/android/Manifest.permission#ACCESS_BACKGROUND_LOCATION) + /// Manifest.permission.ACCESS_COARSE_LOCATION + /// (https://developer.android.com/reference/android/Manifest.permission#ACCESS_COARSE_LOCATION) + /// Manifest.permission.CAMERA + /// (https://developer.android.com/reference/android/Manifest.permission#CAMERA) + /// Manifest.permission.RECORD_AUDIO + /// (https://developer.android.com/reference/android/Manifest.permission#RECORD_AUDIO) + /// Manifest.permission.ACTIVITY_RECOGNITION + /// (https://developer.android.com/reference/android/Manifest.permission#ACTIVITY_RECOGNITION) + /// Manifest.permission.BODY_SENSORS + /// (https://developer.android.com/reference/android/Manifest.permission#BODY_SENSORS) /// - "DENY" : Automatically deny a permission. core.String? policy; @@ -6516,10 +7082,9 @@ class Policy { /// Also mutes the device. core.bool? adjustVolumeDisabled; - /// Security policies set to secure values by default. + /// Advanced security settings. /// - /// To maintain the security posture of a device, we don't recommend - /// overriding any of the default values. + /// In most cases, setting these is not needed. AdvancedSecurityOverrides? advancedSecurityOverrides; /// Configuration for an always-on VPN connection. @@ -6527,10 +7092,12 @@ class Policy { /// Use with vpn_config_disabled to prevent modification of this setting. AlwaysOnVpnPackage? alwaysOnVpnPackage; - /// The app tracks for Android Device Policy the device can access. + /// This setting is not supported. /// - /// The device receives the latest version among all accessible tracks. If no - /// tracks are specified, then the device only uses the production track. + /// Any value is ignored. + @core.Deprecated( + 'Not supported. Member documentation may have more information.', + ) core.List? androidDevicePolicyTracks; /// Recommended alternative: autoUpdateMode which is set per app, provides @@ -6548,6 +7115,8 @@ class Policy { core.String? appAutoUpdatePolicy; /// Policy applied to apps. + /// + /// This can have at most 3,000 elements. core.List? applications; /// Whether auto date, time, and time zone are enabled on a company-owned @@ -6654,6 +7223,26 @@ class Policy { /// Whether creating windows besides app windows is disabled. core.bool? createWindowsDisabled; + /// Controls which apps are allowed to act as credential providers on Android + /// 14 and above. + /// + /// These apps store credentials, see this + /// (https://developer.android.com/training/sign-in/passkeys) and this + /// (https://developer.android.com/reference/androidx/credentials/CredentialManager) + /// for details. See also credentialProviderPolicy. + /// Possible string values are: + /// - "CREDENTIAL_PROVIDER_POLICY_DEFAULT_UNSPECIFIED" : Unspecified. Defaults + /// to CREDENTIAL_PROVIDER_DEFAULT_DISALLOWED. + /// - "CREDENTIAL_PROVIDER_DEFAULT_DISALLOWED" : Apps with + /// credentialProviderPolicy unspecified are not allowed to act as a + /// credential provider. + /// - "CREDENTIAL_PROVIDER_DEFAULT_DISALLOWED_EXCEPT_SYSTEM" : Apps with + /// credentialProviderPolicy unspecified are not allowed to act as a + /// credential provider except for the OEM default credential providers. OEM + /// default credential providers are always allowed to act as credential + /// providers. + core.String? credentialProviderPolicyDefault; + /// Whether configuring user credentials is disabled. core.bool? credentialsConfigDisabled; @@ -6675,7 +7264,24 @@ class Policy { /// specified for a permission at any level, then the PROMPT behavior is used /// by default. /// - "PROMPT" : Prompt the user to grant a permission. - /// - "GRANT" : Automatically grant a permission. + /// - "GRANT" : Automatically grant a permission.On Android 12 and above, + /// Manifest.permission.READ_SMS + /// (https://developer.android.com/reference/android/Manifest.permission#READ_SMS) + /// and following sensor-related permissions can only be granted on fully + /// managed devices: Manifest.permission.ACCESS_FINE_LOCATION + /// (https://developer.android.com/reference/android/Manifest.permission#ACCESS_FINE_LOCATION) + /// Manifest.permission.ACCESS_BACKGROUND_LOCATION + /// (https://developer.android.com/reference/android/Manifest.permission#ACCESS_BACKGROUND_LOCATION) + /// Manifest.permission.ACCESS_COARSE_LOCATION + /// (https://developer.android.com/reference/android/Manifest.permission#ACCESS_COARSE_LOCATION) + /// Manifest.permission.CAMERA + /// (https://developer.android.com/reference/android/Manifest.permission#CAMERA) + /// Manifest.permission.RECORD_AUDIO + /// (https://developer.android.com/reference/android/Manifest.permission#RECORD_AUDIO) + /// Manifest.permission.ACTIVITY_RECOGNITION + /// (https://developer.android.com/reference/android/Manifest.permission#ACTIVITY_RECOGNITION) + /// Manifest.permission.BODY_SENSORS + /// (https://developer.android.com/reference/android/Manifest.permission#BODY_SENSORS) /// - "DENY" : Automatically deny a permission. core.String? defaultPermissionPolicy; @@ -6933,6 +7539,19 @@ class Policy { /// enabled on the work profile. core.String? preferentialNetworkService; + /// Controls whether printing is allowed. + /// + /// This is supported on devices running Android 9 and above. . + /// + /// Optional. + /// Possible string values are: + /// - "PRINTING_POLICY_UNSPECIFIED" : Unspecified. Defaults to + /// PRINTING_ALLOWED. + /// - "PRINTING_DISALLOWED" : Printing is disallowed. A nonComplianceDetail + /// with API_LEVEL is reported if the Android version is less than 9. + /// - "PRINTING_ALLOWED" : Printing is allowed. + core.String? printingPolicy; + /// Allows showing UI on a device for a user to choose a private key alias if /// there are no matching rules in ChoosePrivateKeyRules. /// @@ -7118,6 +7737,7 @@ class Policy { this.choosePrivateKeyRules, this.complianceRules, this.createWindowsDisabled, + this.credentialProviderPolicyDefault, this.credentialsConfigDisabled, this.crossProfilePolicies, this.dataRoamingDisabled, @@ -7162,6 +7782,7 @@ class Policy { this.playStoreMode, this.policyEnforcementRules, this.preferentialNetworkService, + this.printingPolicy, this.privateKeySelectionEnabled, this.recommendedGlobalProxy, this.removeUserDisabled, @@ -7274,6 +7895,10 @@ class Policy { createWindowsDisabled: json_.containsKey('createWindowsDisabled') ? json_['createWindowsDisabled'] as core.bool : null, + credentialProviderPolicyDefault: + json_.containsKey('credentialProviderPolicyDefault') + ? json_['credentialProviderPolicyDefault'] as core.String + : null, credentialsConfigDisabled: json_.containsKey('credentialsConfigDisabled') ? json_['credentialsConfigDisabled'] as core.bool @@ -7449,6 +8074,9 @@ class Policy { json_.containsKey('preferentialNetworkService') ? json_['preferentialNetworkService'] as core.String : null, + printingPolicy: json_.containsKey('printingPolicy') + ? json_['printingPolicy'] as core.String + : null, privateKeySelectionEnabled: json_.containsKey('privateKeySelectionEnabled') ? json_['privateKeySelectionEnabled'] as core.bool @@ -7579,6 +8207,8 @@ class Policy { if (complianceRules != null) 'complianceRules': complianceRules!, if (createWindowsDisabled != null) 'createWindowsDisabled': createWindowsDisabled!, + if (credentialProviderPolicyDefault != null) + 'credentialProviderPolicyDefault': credentialProviderPolicyDefault!, if (credentialsConfigDisabled != null) 'credentialsConfigDisabled': credentialsConfigDisabled!, if (crossProfilePolicies != null) @@ -7654,6 +8284,7 @@ class Policy { 'policyEnforcementRules': policyEnforcementRules!, if (preferentialNetworkService != null) 'preferentialNetworkService': preferentialNetworkService!, + if (printingPolicy != null) 'printingPolicy': printingPolicy!, if (privateKeySelectionEnabled != null) 'privateKeySelectionEnabled': privateKeySelectionEnabled!, if (recommendedGlobalProxy != null) @@ -7767,14 +8398,14 @@ class PostureDetail { /// the device. /// Possible string values are: /// - "SECURITY_RISK_UNSPECIFIED" : Unspecified. - /// - "UNKNOWN_OS" : SafetyNet detects that the device is running an unknown - /// OS (basicIntegrity check succeeds but ctsProfileMatch fails). - /// - "COMPROMISED_OS" : SafetyNet detects that the device is running a - /// compromised OS (basicIntegrity check fails). - /// - "HARDWARE_BACKED_EVALUATION_FAILED" : SafetyNet detects that the device - /// does not have a strong guarantee of system integrity, such as a - /// hardware-backed keystore - /// (https://developer.android.com/training/articles/security-key-attestation). + /// - "UNKNOWN_OS" : Play Integrity API detects that the device is running an + /// unknown OS (basicIntegrity check succeeds but ctsProfileMatch fails). + /// - "COMPROMISED_OS" : Play Integrity API detects that the device is running + /// a compromised OS (basicIntegrity check fails). + /// - "HARDWARE_BACKED_EVALUATION_FAILED" : Play Integrity API detects that + /// the device does not have a strong guarantee of system integrity, if the + /// MEETS_STRONG_INTEGRITY label doesn't show in the device integrity field + /// (https://developer.android.com/google/play/integrity/verdicts#device-integrity-field). core.String? securityRisk; PostureDetail({ diff --git a/generated/googleapis/lib/androidpublisher/v3.dart b/generated/googleapis/lib/androidpublisher/v3.dart index efbcbb13b..f204146bf 100644 --- a/generated/googleapis/lib/androidpublisher/v3.dart +++ b/generated/googleapis/lib/androidpublisher/v3.dart @@ -22,6 +22,7 @@ /// /// - [ApplicationsResource] /// - [ApplicationsDeviceTierConfigsResource] +/// - [ApprecoveryResource] /// - [EditsResource] /// - [EditsApksResource] /// - [EditsBundlesResource] @@ -87,6 +88,7 @@ class AndroidPublisherApi { final commons.ApiRequester _requester; ApplicationsResource get applications => ApplicationsResource(_requester); + ApprecoveryResource get apprecovery => ApprecoveryResource(_requester); EditsResource get edits => EditsResource(_requester); ExternaltransactionsResource get externaltransactions => ExternaltransactionsResource(_requester); @@ -116,6 +118,48 @@ class ApplicationsResource { ApplicationsDeviceTierConfigsResource(_requester); ApplicationsResource(commons.ApiRequester client) : _requester = client; + + /// Writes the Safety Labels declaration of an app. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [packageName] - Required. Package name of the app. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [SafetyLabelsUpdateResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future dataSafety( + SafetyLabelsUpdateRequest request, + core.String packageName, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'androidpublisher/v3/applications/' + + commons.escapeVariable('$packageName') + + '/dataSafety'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return SafetyLabelsUpdateResponse.fromJson( + response_ as core.Map); + } } class ApplicationsDeviceTierConfigsResource { @@ -265,6 +309,254 @@ class ApplicationsDeviceTierConfigsResource { } } +class ApprecoveryResource { + final commons.ApiRequester _requester; + + ApprecoveryResource(commons.ApiRequester client) : _requester = client; + + /// Incrementally update targeting for a recovery action. + /// + /// Note that only the criteria selected during the creation of recovery + /// action can be expanded. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [packageName] - Required. Package name of the app for which recovery + /// action is to be updated. + /// + /// [appRecoveryId] - Required. ID corresponding to the app recovery action. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [AddTargetingResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future addTargeting( + AddTargetingRequest request, + core.String packageName, + core.String appRecoveryId, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'androidpublisher/v3/applications/' + + commons.escapeVariable('$packageName') + + '/appRecoveries/' + + commons.escapeVariable('$appRecoveryId') + + ':addTargeting'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return AddTargetingResponse.fromJson( + response_ as core.Map); + } + + /// List all app recovery action resources associated with a particular + /// package name and app version. + /// + /// Request parameters: + /// + /// [packageName] - Required. Package name of the app for which list of + /// recovery actions is requested. + /// + /// [versionCode] - Required. Version code targeted by the list of recovery + /// actions. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [ListAppRecoveriesResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future appRecoveries( + core.String packageName, { + core.String? versionCode, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (versionCode != null) 'versionCode': [versionCode], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'androidpublisher/v3/applications/' + + commons.escapeVariable('$packageName') + + '/appRecoveries'; + + final response_ = await _requester.request( + url_, + 'POST', + queryParams: queryParams_, + ); + return ListAppRecoveriesResponse.fromJson( + response_ as core.Map); + } + + /// Cancel an already executing app recovery action. + /// + /// Note that this action changes status of the recovery action to CANCELED. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [packageName] - Required. Package name of the app for which recovery + /// action cancellation is requested. + /// + /// [appRecoveryId] - Required. ID corresponding to the app recovery action. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [CancelAppRecoveryResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future cancel( + CancelAppRecoveryRequest request, + core.String packageName, + core.String appRecoveryId, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'androidpublisher/v3/applications/' + + commons.escapeVariable('$packageName') + + '/appRecoveries/' + + commons.escapeVariable('$appRecoveryId') + + ':cancel'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return CancelAppRecoveryResponse.fromJson( + response_ as core.Map); + } + + /// Create an app recovery action with recovery status as DRAFT. + /// + /// Note that this action does not execute the recovery action. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [packageName] - Required. Package name of the app on which recovery action + /// is performed. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [AppRecoveryAction]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future create( + CreateDraftAppRecoveryRequest request, + core.String packageName, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'androidpublisher/v3/applications/' + + commons.escapeVariable('$packageName') + + '/appRecoveries'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return AppRecoveryAction.fromJson( + response_ as core.Map); + } + + /// Deploy an already created app recovery action with recovery status DRAFT. + /// + /// Note that this action activates the recovery action for all targeted users + /// and changes its status to ACTIVE. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [packageName] - Required. Package name of the app for which recovery + /// action is deployed. + /// + /// [appRecoveryId] - Required. ID corresponding to the app recovery action to + /// deploy. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [DeployAppRecoveryResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future deploy( + DeployAppRecoveryRequest request, + core.String packageName, + core.String appRecoveryId, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'androidpublisher/v3/applications/' + + commons.escapeVariable('$packageName') + + '/appRecoveries/' + + commons.escapeVariable('$appRecoveryId') + + ':deploy'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return DeployAppRecoveryResponse.fromJson( + response_ as core.Map); + } +} + class EditsResource { final commons.ApiRequester _requester; @@ -2725,18 +3017,21 @@ class InappproductsResource { InappproductsResource(commons.ApiRequester client) : _requester = client; - /// Deletes an in-app product (a managed product or a subscription). + /// Deletes in-app products (managed products or subscriptions). /// - /// This method should no longer be used to delete subscriptions. See + /// Set the latencyTolerance field on nested requests to + /// PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT to achieve maximum + /// update throughput. This method should not be used to delete subscriptions. + /// See /// [this article](https://android-developers.googleblog.com/2023/06/changes-to-google-play-developer-api-june-2023.html) /// for more information. /// + /// [request] - The metadata request object. + /// /// Request parameters: /// /// [packageName] - Package name of the app. /// - /// [sku] - Unique identifier for the in-app product. - /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// @@ -2745,31 +3040,33 @@ class InappproductsResource { /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future delete( - core.String packageName, - core.String sku, { + async.Future batchDelete( + InappproductsBatchDeleteRequest request, + core.String packageName, { core.String? $fields, }) async { + final body_ = convert.json.encode(request); final queryParams_ = >{ if ($fields != null) 'fields': [$fields], }; final url_ = 'androidpublisher/v3/applications/' + commons.escapeVariable('$packageName') + - '/inappproducts/' + - commons.escapeVariable('$sku'); + '/inappproducts:batchDelete'; await _requester.request( url_, - 'DELETE', + 'POST', + body: body_, queryParams: queryParams_, downloadOptions: null, ); } - /// Gets an in-app product, which can be a managed product or a subscription. + /// Reads multiple in-app products, which can be managed products or + /// subscriptions. /// - /// This method should no longer be used to retrieve subscriptions. See + /// This method should not be used to retrieve subscriptions. See /// [this article](https://android-developers.googleblog.com/2023/06/changes-to-google-play-developer-api-june-2023.html) /// for more information. /// @@ -2777,44 +3074,48 @@ class InappproductsResource { /// /// [packageName] - Package name of the app. /// - /// [sku] - Unique identifier for the in-app product. + /// [sku] - Unique identifier for the in-app products. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [InAppProduct]. + /// Completes with a [InappproductsBatchGetResponse]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future get( - core.String packageName, - core.String sku, { + async.Future batchGet( + core.String packageName, { + core.List? sku, core.String? $fields, }) async { final queryParams_ = >{ + if (sku != null) 'sku': sku, if ($fields != null) 'fields': [$fields], }; final url_ = 'androidpublisher/v3/applications/' + commons.escapeVariable('$packageName') + - '/inappproducts/' + - commons.escapeVariable('$sku'); + '/inappproducts:batchGet'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return InAppProduct.fromJson( + return InappproductsBatchGetResponse.fromJson( response_ as core.Map); } - /// Creates an in-app product (a managed product or a subscription). + /// Updates or inserts one or more in-app products (managed products or + /// subscriptions). /// - /// This method should no longer be used to create subscriptions. See + /// Set the latencyTolerance field on nested requests to + /// PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT to achieve maximum + /// update throughput. This method should no longer be used to update + /// subscriptions. See /// [this article](https://android-developers.googleblog.com/2023/06/changes-to-google-play-developer-api-june-2023.html) /// for more information. /// @@ -2824,15 +3125,163 @@ class InappproductsResource { /// /// [packageName] - Package name of the app. /// - /// [autoConvertMissingPrices] - If true the prices for all regions targeted - /// by the parent app that don't have a price specified for this in-app - /// product will be auto converted to the target currency based on the default - /// price. Defaults to false. - /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [InAppProduct]. + /// Completes with a [InappproductsBatchUpdateResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future batchUpdate( + InappproductsBatchUpdateRequest request, + core.String packageName, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'androidpublisher/v3/applications/' + + commons.escapeVariable('$packageName') + + '/inappproducts:batchUpdate'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return InappproductsBatchUpdateResponse.fromJson( + response_ as core.Map); + } + + /// Deletes an in-app product (a managed product or a subscription). + /// + /// This method should no longer be used to delete subscriptions. See + /// [this article](https://android-developers.googleblog.com/2023/06/changes-to-google-play-developer-api-june-2023.html) + /// for more information. + /// + /// Request parameters: + /// + /// [packageName] - Package name of the app. + /// + /// [sku] - Unique identifier for the in-app product. + /// + /// [latencyTolerance] - Optional. The latency tolerance for the propagation + /// of this product update. Defaults to latency-sensitive. + /// Possible string values are: + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED" : Defaults to + /// PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE. + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE" : The update will + /// propagate to clients within several minutes on average and up to a few + /// hours in rare cases. Throughput is limited to 7,200 updates per app per + /// hour. + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" : The update will + /// propagate to clients within 24 hours. Supports high throughput of up to + /// 720,000 updates per app per hour using batch modification methods. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future delete( + core.String packageName, + core.String sku, { + core.String? latencyTolerance, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (latencyTolerance != null) 'latencyTolerance': [latencyTolerance], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'androidpublisher/v3/applications/' + + commons.escapeVariable('$packageName') + + '/inappproducts/' + + commons.escapeVariable('$sku'); + + await _requester.request( + url_, + 'DELETE', + queryParams: queryParams_, + downloadOptions: null, + ); + } + + /// Gets an in-app product, which can be a managed product or a subscription. + /// + /// This method should no longer be used to retrieve subscriptions. See + /// [this article](https://android-developers.googleblog.com/2023/06/changes-to-google-play-developer-api-june-2023.html) + /// for more information. + /// + /// Request parameters: + /// + /// [packageName] - Package name of the app. + /// + /// [sku] - Unique identifier for the in-app product. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [InAppProduct]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String packageName, + core.String sku, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'androidpublisher/v3/applications/' + + commons.escapeVariable('$packageName') + + '/inappproducts/' + + commons.escapeVariable('$sku'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return InAppProduct.fromJson( + response_ as core.Map); + } + + /// Creates an in-app product (a managed product or a subscription). + /// + /// This method should no longer be used to create subscriptions. See + /// [this article](https://android-developers.googleblog.com/2023/06/changes-to-google-play-developer-api-june-2023.html) + /// for more information. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [packageName] - Package name of the app. + /// + /// [autoConvertMissingPrices] - If true the prices for all regions targeted + /// by the parent app that don't have a price specified for this in-app + /// product will be auto converted to the target currency based on the default + /// price. Defaults to false. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [InAppProduct]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. @@ -2944,6 +3393,19 @@ class InappproductsResource { /// product will be auto converted to the target currency based on the default /// price. Defaults to false. /// + /// [latencyTolerance] - Optional. The latency tolerance for the propagation + /// of this product update. Defaults to latency-sensitive. + /// Possible string values are: + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED" : Defaults to + /// PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE. + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE" : The update will + /// propagate to clients within several minutes on average and up to a few + /// hours in rare cases. Throughput is limited to 7,200 updates per app per + /// hour. + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" : The update will + /// propagate to clients within 24 hours. Supports high throughput of up to + /// 720,000 updates per app per hour using batch modification methods. + /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// @@ -2959,12 +3421,14 @@ class InappproductsResource { core.String packageName, core.String sku, { core.bool? autoConvertMissingPrices, + core.String? latencyTolerance, core.String? $fields, }) async { final body_ = convert.json.encode(request); final queryParams_ = >{ if (autoConvertMissingPrices != null) 'autoConvertMissingPrices': ['${autoConvertMissingPrices}'], + if (latencyTolerance != null) 'latencyTolerance': [latencyTolerance], if ($fields != null) 'fields': [$fields], }; @@ -3005,6 +3469,19 @@ class InappproductsResource { /// product will be auto converted to the target currency based on the default /// price. Defaults to false. /// + /// [latencyTolerance] - Optional. The latency tolerance for the propagation + /// of this product update. Defaults to latency-sensitive. + /// Possible string values are: + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED" : Defaults to + /// PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE. + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE" : The update will + /// propagate to clients within several minutes on average and up to a few + /// hours in rare cases. Throughput is limited to 7,200 updates per app per + /// hour. + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" : The update will + /// propagate to clients within 24 hours. Supports high throughput of up to + /// 720,000 updates per app per hour using batch modification methods. + /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// @@ -3021,6 +3498,7 @@ class InappproductsResource { core.String sku, { core.bool? allowMissing, core.bool? autoConvertMissingPrices, + core.String? latencyTolerance, core.String? $fields, }) async { final body_ = convert.json.encode(request); @@ -3028,6 +3506,7 @@ class InappproductsResource { if (allowMissing != null) 'allowMissing': ['${allowMissing}'], if (autoConvertMissingPrices != null) 'autoConvertMissingPrices': ['${autoConvertMissingPrices}'], + if (latencyTolerance != null) 'latencyTolerance': [latencyTolerance], if ($fields != null) 'fields': [$fields], }; @@ -3246,11 +3725,7 @@ class MonetizationSubscriptionsResource { MonetizationSubscriptionsResource(commons.ApiRequester client) : _requester = client; - /// Archives a subscription. - /// - /// Can only be done if at least one base plan was active in the past, and no - /// base plan is available for new or existing subscribers currently. This - /// action is irreversible, and the subscription ID will remain reserved. + /// Deprecated: subscription archiving is not supported. /// /// [request] - The metadata request object. /// @@ -3272,6 +3747,9 @@ class MonetizationSubscriptionsResource { /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. + @core.Deprecated( + 'Not supported. Member documentation may have more information.', + ) async.Future archive( ArchiveSubscriptionRequest request, core.String packageName, @@ -3299,6 +3777,98 @@ class MonetizationSubscriptionsResource { response_ as core.Map); } + /// Reads one or more subscriptions. + /// + /// Request parameters: + /// + /// [packageName] - Required. The parent app (package name) for which the + /// subscriptions should be retrieved. Must be equal to the package_name field + /// on all the requests. + /// + /// [productIds] - Required. A list of up to 100 subscription product IDs to + /// retrieve. All the IDs must be different. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [BatchGetSubscriptionsResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future batchGet( + core.String packageName, { + core.List? productIds, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (productIds != null) 'productIds': productIds, + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'androidpublisher/v3/applications/' + + commons.escapeVariable('$packageName') + + '/subscriptions:batchGet'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return BatchGetSubscriptionsResponse.fromJson( + response_ as core.Map); + } + + /// Updates a batch of subscriptions. + /// + /// Set the latencyTolerance field on nested requests to + /// PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT to achieve maximum + /// update throughput. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [packageName] - Required. The parent app (package name) for which the + /// subscriptions should be updated. Must be equal to the package_name field + /// on all the Subscription resources. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [BatchUpdateSubscriptionsResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future batchUpdate( + BatchUpdateSubscriptionsRequest request, + core.String packageName, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'androidpublisher/v3/applications/' + + commons.escapeVariable('$packageName') + + '/subscriptions:batchUpdate'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return BatchUpdateSubscriptionsResponse.fromJson( + response_ as core.Map); + } + /// Creates a new subscription. /// /// Newly added base plans will remain in draft state until activated. @@ -3467,8 +4037,7 @@ class MonetizationSubscriptionsResource { /// other parameters provided to `ListSubscriptions` must match the call that /// provided the page token. /// - /// [showArchived] - Whether archived subscriptions should be included in the - /// response. Defaults to false. + /// [showArchived] - Deprecated: subscription archiving is not supported. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -3521,6 +4090,23 @@ class MonetizationSubscriptionsResource { /// lower-case letter or number, and be between 1 and 40 (inclusive) /// characters in length. /// + /// [allowMissing] - Optional. If set to true, and the subscription with the + /// given package_name and product_id doesn't exist, the subscription will be + /// created. If a new subscription is created, update_mask is ignored. + /// + /// [latencyTolerance] - Optional. The latency tolerance for the propagation + /// of this product update. Defaults to latency-sensitive. + /// Possible string values are: + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED" : Defaults to + /// PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE. + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE" : The update will + /// propagate to clients within several minutes on average and up to a few + /// hours in rare cases. Throughput is limited to 7,200 updates per app per + /// hour. + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" : The update will + /// propagate to clients within 24 hours. Supports high throughput of up to + /// 720,000 updates per app per hour using batch modification methods. + /// /// [regionsVersion_version] - Required. A string representing the version of /// available regions being used for the specified resource. Regional prices /// for the resource have to be specified according to the information @@ -3548,12 +4134,16 @@ class MonetizationSubscriptionsResource { Subscription request, core.String packageName, core.String productId, { + core.bool? allowMissing, + core.String? latencyTolerance, core.String? regionsVersion_version, core.String? updateMask, core.String? $fields, }) async { final body_ = convert.json.encode(request); final queryParams_ = >{ + if (allowMissing != null) 'allowMissing': ['${allowMissing}'], + if (latencyTolerance != null) 'latencyTolerance': [latencyTolerance], if (regionsVersion_version != null) 'regionsVersion.version': [regionsVersion_version], if (updateMask != null) 'updateMask': [updateMask], @@ -3642,39 +4232,38 @@ class MonetizationSubscriptionsBasePlansResource { response_ as core.Map); } - /// Deactivates a base plan. + /// Batch variant of the MigrateBasePlanPrices endpoint. /// - /// Once deactivated, the base plan will become unavailable to new - /// subscribers, but existing subscribers will maintain their subscription + /// Set the latencyTolerance field on nested requests to + /// PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT to achieve maximum + /// update throughput. /// /// [request] - The metadata request object. /// /// Request parameters: /// - /// [packageName] - Required. The parent app (package name) of the base plan - /// to deactivate. - /// - /// [productId] - Required. The parent subscription (ID) of the base plan to - /// deactivate. + /// [packageName] - Required. The parent app (package name) for which the + /// subscriptions should be created or updated. Must be equal to the + /// package_name field on all the Subscription resources. /// - /// [basePlanId] - Required. The unique base plan ID of the base plan to - /// deactivate. + /// [productId] - Required. The product ID of the parent subscription, if all + /// updated offers belong to the same subscription. If this batch update spans + /// multiple subscriptions, set this field to "-". Must be set. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [Subscription]. + /// Completes with a [BatchMigrateBasePlanPricesResponse]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future deactivate( - DeactivateBasePlanRequest request, + async.Future batchMigratePrices( + BatchMigrateBasePlanPricesRequest request, core.String packageName, - core.String productId, - core.String basePlanId, { + core.String productId, { core.String? $fields, }) async { final body_ = convert.json.encode(request); @@ -3686,9 +4275,7 @@ class MonetizationSubscriptionsBasePlansResource { commons.escapeVariable('$packageName') + '/subscriptions/' + commons.escapeVariable('$productId') + - '/basePlans/' + - commons.escapeVariable('$basePlanId') + - ':deactivate'; + '/basePlans:batchMigratePrices'; final response_ = await _requester.request( url_, @@ -3696,36 +4283,148 @@ class MonetizationSubscriptionsBasePlansResource { body: body_, queryParams: queryParams_, ); - return Subscription.fromJson( + return BatchMigrateBasePlanPricesResponse.fromJson( response_ as core.Map); } - /// Deletes a base plan. + /// Activates or deactivates base plans across one or multiple subscriptions. /// - /// Can only be done for draft base plans. This action is irreversible. + /// Set the latencyTolerance field on nested requests to + /// PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT to achieve maximum + /// update throughput. /// - /// Request parameters: + /// [request] - The metadata request object. /// - /// [packageName] - Required. The parent app (package name) of the base plan - /// to delete. + /// Request parameters: /// - /// [productId] - Required. The parent subscription (ID) of the base plan to - /// delete. + /// [packageName] - Required. The parent app (package name) of the updated + /// base plans. /// - /// [basePlanId] - Required. The unique offer ID of the base plan to delete. + /// [productId] - Required. The product ID of the parent subscription, if all + /// updated base plans belong to the same subscription. If this batch update + /// spans multiple subscriptions, set this field to "-". Must be set. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// + /// Completes with a [BatchUpdateBasePlanStatesResponse]. + /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future delete( + async.Future batchUpdateStates( + BatchUpdateBasePlanStatesRequest request, core.String packageName, - core.String productId, - core.String basePlanId, { + core.String productId, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'androidpublisher/v3/applications/' + + commons.escapeVariable('$packageName') + + '/subscriptions/' + + commons.escapeVariable('$productId') + + '/basePlans:batchUpdateStates'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return BatchUpdateBasePlanStatesResponse.fromJson( + response_ as core.Map); + } + + /// Deactivates a base plan. + /// + /// Once deactivated, the base plan will become unavailable to new + /// subscribers, but existing subscribers will maintain their subscription + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [packageName] - Required. The parent app (package name) of the base plan + /// to deactivate. + /// + /// [productId] - Required. The parent subscription (ID) of the base plan to + /// deactivate. + /// + /// [basePlanId] - Required. The unique base plan ID of the base plan to + /// deactivate. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Subscription]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future deactivate( + DeactivateBasePlanRequest request, + core.String packageName, + core.String productId, + core.String basePlanId, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'androidpublisher/v3/applications/' + + commons.escapeVariable('$packageName') + + '/subscriptions/' + + commons.escapeVariable('$productId') + + '/basePlans/' + + commons.escapeVariable('$basePlanId') + + ':deactivate'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Subscription.fromJson( + response_ as core.Map); + } + + /// Deletes a base plan. + /// + /// Can only be done for draft base plans. This action is irreversible. + /// + /// Request parameters: + /// + /// [packageName] - Required. The parent app (package name) of the base plan + /// to delete. + /// + /// [productId] - Required. The parent subscription (ID) of the base plan to + /// delete. + /// + /// [basePlanId] - Required. The unique offer ID of the base plan to delete. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future delete( + core.String packageName, + core.String productId, + core.String basePlanId, { core.String? $fields, }) async { final queryParams_ = >{ @@ -3877,6 +4576,188 @@ class MonetizationSubscriptionsBasePlansOffersResource { response_ as core.Map); } + /// Reads one or more subscription offers. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [packageName] - Required. The parent app (package name) for which the + /// subscriptions should be created or updated. Must be equal to the + /// package_name field on all the requests. + /// + /// [productId] - Required. The product ID of the parent subscription, if all + /// updated offers belong to the same subscription. If this request spans + /// multiple subscriptions, set this field to "-". Must be set. + /// + /// [basePlanId] - Required. The parent base plan (ID) for which the offers + /// should be read. May be specified as '-' to read offers from multiple base + /// plans. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [BatchGetSubscriptionOffersResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future batchGet( + BatchGetSubscriptionOffersRequest request, + core.String packageName, + core.String productId, + core.String basePlanId, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'androidpublisher/v3/applications/' + + commons.escapeVariable('$packageName') + + '/subscriptions/' + + commons.escapeVariable('$productId') + + '/basePlans/' + + commons.escapeVariable('$basePlanId') + + '/offers:batchGet'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return BatchGetSubscriptionOffersResponse.fromJson( + response_ as core.Map); + } + + /// Updates a batch of subscription offers. + /// + /// Set the latencyTolerance field on nested requests to + /// PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT to achieve maximum + /// update throughput. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [packageName] - Required. The parent app (package name) of the updated + /// subscription offers. Must be equal to the package_name field on all the + /// updated SubscriptionOffer resources. + /// + /// [productId] - Required. The product ID of the parent subscription, if all + /// updated offers belong to the same subscription. If this request spans + /// multiple subscriptions, set this field to "-". Must be set. + /// + /// [basePlanId] - Required. The parent base plan (ID) for which the offers + /// should be updated. May be specified as '-' to update offers from multiple + /// base plans. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [BatchUpdateSubscriptionOffersResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future batchUpdate( + BatchUpdateSubscriptionOffersRequest request, + core.String packageName, + core.String productId, + core.String basePlanId, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'androidpublisher/v3/applications/' + + commons.escapeVariable('$packageName') + + '/subscriptions/' + + commons.escapeVariable('$productId') + + '/basePlans/' + + commons.escapeVariable('$basePlanId') + + '/offers:batchUpdate'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return BatchUpdateSubscriptionOffersResponse.fromJson( + response_ as core.Map); + } + + /// Updates a batch of subscription offer states. + /// + /// Set the latencyTolerance field on nested requests to + /// PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT to achieve maximum + /// update throughput. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [packageName] - Required. The parent app (package name) of the updated + /// subscription offers. Must be equal to the package_name field on all the + /// updated SubscriptionOffer resources. + /// + /// [productId] - Required. The product ID of the parent subscription, if all + /// updated offers belong to the same subscription. If this request spans + /// multiple subscriptions, set this field to "-". Must be set. + /// + /// [basePlanId] - Required. The parent base plan (ID) for which the offers + /// should be updated. May be specified as '-' to update offers from multiple + /// base plans. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [BatchUpdateSubscriptionOfferStatesResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future batchUpdateStates( + BatchUpdateSubscriptionOfferStatesRequest request, + core.String packageName, + core.String productId, + core.String basePlanId, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'androidpublisher/v3/applications/' + + commons.escapeVariable('$packageName') + + '/subscriptions/' + + commons.escapeVariable('$productId') + + '/basePlans/' + + commons.escapeVariable('$basePlanId') + + '/offers:batchUpdateStates'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return BatchUpdateSubscriptionOfferStatesResponse.fromJson( + response_ as core.Map); + } + /// Creates a new subscription offer. /// /// Only auto-renewing base plans can have subscription offers. The offer @@ -4209,6 +5090,24 @@ class MonetizationSubscriptionsBasePlansOffersResource { /// [offerId] - Required. Immutable. Unique ID of this subscription offer. /// Must be unique within the base plan. /// + /// [allowMissing] - Optional. If set to true, and the subscription offer with + /// the given package_name, product_id, base_plan_id and offer_id doesn't + /// exist, an offer will be created. If a new offer is created, update_mask is + /// ignored. + /// + /// [latencyTolerance] - Optional. The latency tolerance for the propagation + /// of this product update. Defaults to latency-sensitive. + /// Possible string values are: + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED" : Defaults to + /// PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE. + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE" : The update will + /// propagate to clients within several minutes on average and up to a few + /// hours in rare cases. Throughput is limited to 7,200 updates per app per + /// hour. + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" : The update will + /// propagate to clients within 24 hours. Supports high throughput of up to + /// 720,000 updates per app per hour using batch modification methods. + /// /// [regionsVersion_version] - Required. A string representing the version of /// available regions being used for the specified resource. Regional prices /// for the resource have to be specified according to the information @@ -4238,12 +5137,16 @@ class MonetizationSubscriptionsBasePlansOffersResource { core.String productId, core.String basePlanId, core.String offerId, { + core.bool? allowMissing, + core.String? latencyTolerance, core.String? regionsVersion_version, core.String? updateMask, core.String? $fields, }) async { final body_ = convert.json.encode(request); final queryParams_ = >{ + if (allowMissing != null) 'allowMissing': ['${allowMissing}'], + if (latencyTolerance != null) 'latencyTolerance': [latencyTolerance], if (regionsVersion_version != null) 'regionsVersion.version': [regionsVersion_version], if (updateMask != null) 'updateMask': [updateMask], @@ -4856,20 +5759,69 @@ class PurchasesSubscriptionsv2Resource { return SubscriptionPurchaseV2.fromJson( response_ as core.Map); } -} - -class PurchasesVoidedpurchasesResource { - final commons.ApiRequester _requester; - PurchasesVoidedpurchasesResource(commons.ApiRequester client) - : _requester = client; - - /// Lists the purchases that were canceled, refunded or charged-back. + /// Revoke a subscription purchase for the user. + /// + /// [request] - The metadata request object. /// /// Request parameters: /// - /// [packageName] - The package name of the application for which voided - /// purchases need to be returned (for example, 'com.some.thing'). + /// [packageName] - Required. The package of the application for which this + /// subscription was purchased (for example, 'com.some.thing'). + /// + /// [token] - Required. The token provided to the user's device when the + /// subscription was purchased. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [RevokeSubscriptionPurchaseResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future revoke( + RevokeSubscriptionPurchaseRequest request, + core.String packageName, + core.String token, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'androidpublisher/v3/applications/' + + commons.escapeVariable('$packageName') + + '/purchases/subscriptionsv2/tokens/' + + commons.escapeVariable('$token') + + ':revoke'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return RevokeSubscriptionPurchaseResponse.fromJson( + response_ as core.Map); + } +} + +class PurchasesVoidedpurchasesResource { + final commons.ApiRequester _requester; + + PurchasesVoidedpurchasesResource(commons.ApiRequester client) + : _requester = client; + + /// Lists the purchases that were canceled, refunded or charged-back. + /// + /// Request parameters: + /// + /// [packageName] - The package name of the application for which voided + /// purchases need to be returned (for example, 'com.some.thing'). /// /// [endTime] - The time, in milliseconds since the Epoch, of the newest /// voided purchase that you want to see in the response. The value of this @@ -5571,10 +6523,220 @@ class AcquisitionTargetingRule { } /// Request message for ActivateBasePlan. -typedef ActivateBasePlanRequest = $Empty; +class ActivateBasePlanRequest { + /// The unique base plan ID of the base plan to activate. + /// + /// Required. + core.String? basePlanId; + + /// The latency tolerance for the propagation of this product update. + /// + /// Defaults to latency-sensitive. + /// + /// Optional. + /// Possible string values are: + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED" : Defaults to + /// PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE. + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE" : The update will + /// propagate to clients within several minutes on average and up to a few + /// hours in rare cases. Throughput is limited to 7,200 updates per app per + /// hour. + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" : The update will + /// propagate to clients within 24 hours. Supports high throughput of up to + /// 720,000 updates per app per hour using batch modification methods. + core.String? latencyTolerance; + + /// The parent app (package name) of the base plan to activate. + /// + /// Required. + core.String? packageName; + + /// The parent subscription (ID) of the base plan to activate. + /// + /// Required. + core.String? productId; + + ActivateBasePlanRequest({ + this.basePlanId, + this.latencyTolerance, + this.packageName, + this.productId, + }); + + ActivateBasePlanRequest.fromJson(core.Map json_) + : this( + basePlanId: json_.containsKey('basePlanId') + ? json_['basePlanId'] as core.String + : null, + latencyTolerance: json_.containsKey('latencyTolerance') + ? json_['latencyTolerance'] as core.String + : null, + packageName: json_.containsKey('packageName') + ? json_['packageName'] as core.String + : null, + productId: json_.containsKey('productId') + ? json_['productId'] as core.String + : null, + ); + + core.Map toJson() => { + if (basePlanId != null) 'basePlanId': basePlanId!, + if (latencyTolerance != null) 'latencyTolerance': latencyTolerance!, + if (packageName != null) 'packageName': packageName!, + if (productId != null) 'productId': productId!, + }; +} /// Request message for ActivateSubscriptionOffer. -typedef ActivateSubscriptionOfferRequest = $Empty; +class ActivateSubscriptionOfferRequest { + /// The parent base plan (ID) of the offer to activate. + /// + /// Required. + core.String? basePlanId; + + /// The latency tolerance for the propagation of this product update. + /// + /// Defaults to latency-sensitive. + /// + /// Optional. + /// Possible string values are: + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED" : Defaults to + /// PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE. + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE" : The update will + /// propagate to clients within several minutes on average and up to a few + /// hours in rare cases. Throughput is limited to 7,200 updates per app per + /// hour. + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" : The update will + /// propagate to clients within 24 hours. Supports high throughput of up to + /// 720,000 updates per app per hour using batch modification methods. + core.String? latencyTolerance; + + /// The unique offer ID of the offer to activate. + /// + /// Required. + core.String? offerId; + + /// The parent app (package name) of the offer to activate. + /// + /// Required. + core.String? packageName; + + /// The parent subscription (ID) of the offer to activate. + /// + /// Required. + core.String? productId; + + ActivateSubscriptionOfferRequest({ + this.basePlanId, + this.latencyTolerance, + this.offerId, + this.packageName, + this.productId, + }); + + ActivateSubscriptionOfferRequest.fromJson(core.Map json_) + : this( + basePlanId: json_.containsKey('basePlanId') + ? json_['basePlanId'] as core.String + : null, + latencyTolerance: json_.containsKey('latencyTolerance') + ? json_['latencyTolerance'] as core.String + : null, + offerId: json_.containsKey('offerId') + ? json_['offerId'] as core.String + : null, + packageName: json_.containsKey('packageName') + ? json_['packageName'] as core.String + : null, + productId: json_.containsKey('productId') + ? json_['productId'] as core.String + : null, + ); + + core.Map toJson() => { + if (basePlanId != null) 'basePlanId': basePlanId!, + if (latencyTolerance != null) 'latencyTolerance': latencyTolerance!, + if (offerId != null) 'offerId': offerId!, + if (packageName != null) 'packageName': packageName!, + if (productId != null) 'productId': productId!, + }; +} + +/// Request message for AddTargeting. +class AddTargetingRequest { + /// Specifies targeting updates such as regions, android sdk versions etc. + TargetingUpdate? targetingUpdate; + + AddTargetingRequest({ + this.targetingUpdate, + }); + + AddTargetingRequest.fromJson(core.Map json_) + : this( + targetingUpdate: json_.containsKey('targetingUpdate') + ? TargetingUpdate.fromJson(json_['targetingUpdate'] + as core.Map) + : null, + ); + + core.Map toJson() => { + if (targetingUpdate != null) 'targetingUpdate': targetingUpdate!, + }; +} + +/// Response message for AddTargeting. +typedef AddTargetingResponse = $Empty; + +/// Object representation to describe all set of users. +class AllUsers { + /// Set to true if all set of users are needed. + /// + /// Required. + core.bool? isAllUsersRequested; + + AllUsers({ + this.isAllUsersRequested, + }); + + AllUsers.fromJson(core.Map json_) + : this( + isAllUsersRequested: json_.containsKey('isAllUsersRequested') + ? json_['isAllUsersRequested'] as core.bool + : null, + ); + + core.Map toJson() => { + if (isAllUsersRequested != null) + 'isAllUsersRequested': isAllUsersRequested!, + }; +} + +/// Android api level targeting data for app recovery action targeting. +class AndroidSdks { + /// Android api levels of devices targeted by recovery action. + /// + /// See + /// https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels + /// for different api levels in android. + core.List? sdkLevels; + + AndroidSdks({ + this.sdkLevels, + }); + + AndroidSdks.fromJson(core.Map json_) + : this( + sdkLevels: json_.containsKey('sdkLevels') + ? (json_['sdkLevels'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + ); + + core.Map toJson() => { + if (sdkLevels != null) 'sdkLevels': sdkLevels!, + }; +} /// Information about an APK. /// @@ -5970,63 +7132,220 @@ class AppEdit { }; } -/// Request message for ArchiveSubscription. -typedef ArchiveSubscriptionRequest = $Empty; +/// Information about an app recovery action. +class AppRecoveryAction { + /// ID corresponding to the app recovery action. + core.String? appRecoveryId; -/// Metadata of an asset module. -class AssetModuleMetadata { - /// Indicates the delivery type for persistent install. + /// Timestamp of when the app recovery action is canceled by the developer. + /// + /// Only set if the recovery action has been canceled. + core.String? cancelTime; + + /// Timestamp of when the app recovery action is created by the developer. + /// + /// It is always set after creation of the recovery action. + core.String? createTime; + + /// Timestamp of when the app recovery action is deployed to the users. + /// + /// Only set if the recovery action has been deployed. + core.String? deployTime; + + /// Timestamp of when the developer last updated recovery action. + /// + /// In case the action is cancelled, it corresponds to cancellation time. It + /// is always set after creation of the recovery action. + core.String? lastUpdateTime; + + /// Data about the remote in-app update action such as such as recovered user + /// base, recoverable user base etc. + /// + /// Set only if the recovery action type is Remote In-App Update. + RemoteInAppUpdateData? remoteInAppUpdateData; + + /// The status of the recovery action. /// Possible string values are: - /// - "UNKNOWN_DELIVERY_TYPE" : Unspecified delivery type. - /// - "INSTALL_TIME" : This module will always be downloaded as part of the - /// initial install of the app. - /// - "ON_DEMAND" : This module is requested on-demand, which means it will - /// not be part of the initial install, and will only be sent when requested - /// by the client. - /// - "FAST_FOLLOW" : This module will be downloaded immediately after initial - /// install finishes. The app can be opened before these modules are - /// downloaded. - core.String? deliveryType; + /// - "RECOVERY_STATUS_UNSPECIFIED" : RecoveryStatus is unspecified. + /// - "RECOVERY_STATUS_ACTIVE" : The app recovery action has not been canceled + /// since it has been created. + /// - "RECOVERY_STATUS_CANCELED" : The recovery action has been canceled. The + /// action cannot be resumed. + /// - "RECOVERY_STATUS_DRAFT" : The recovery action is in the draft state and + /// has not yet been deployed to users. + /// - "RECOVERY_STATUS_GENERATION_IN_PROGRESS" : The recovery action is + /// generating recovery apks. + /// - "RECOVERY_STATUS_GENERATION_FAILED" : The app recovery action generation + /// has failed. + core.String? status; - /// Module name. - core.String? name; + /// Specifies targeting criteria for the recovery action such as regions, + /// android sdk versions, app versions etc. + Targeting? targeting; - AssetModuleMetadata({ - this.deliveryType, - this.name, + AppRecoveryAction({ + this.appRecoveryId, + this.cancelTime, + this.createTime, + this.deployTime, + this.lastUpdateTime, + this.remoteInAppUpdateData, + this.status, + this.targeting, }); - AssetModuleMetadata.fromJson(core.Map json_) + AppRecoveryAction.fromJson(core.Map json_) : this( - deliveryType: json_.containsKey('deliveryType') - ? json_['deliveryType'] as core.String + appRecoveryId: json_.containsKey('appRecoveryId') + ? json_['appRecoveryId'] as core.String + : null, + cancelTime: json_.containsKey('cancelTime') + ? json_['cancelTime'] as core.String + : null, + createTime: json_.containsKey('createTime') + ? json_['createTime'] as core.String + : null, + deployTime: json_.containsKey('deployTime') + ? json_['deployTime'] as core.String + : null, + lastUpdateTime: json_.containsKey('lastUpdateTime') + ? json_['lastUpdateTime'] as core.String + : null, + remoteInAppUpdateData: json_.containsKey('remoteInAppUpdateData') + ? RemoteInAppUpdateData.fromJson(json_['remoteInAppUpdateData'] + as core.Map) + : null, + status: json_.containsKey('status') + ? json_['status'] as core.String + : null, + targeting: json_.containsKey('targeting') + ? Targeting.fromJson( + json_['targeting'] as core.Map) : null, - name: json_.containsKey('name') ? json_['name'] as core.String : null, ); core.Map toJson() => { - if (deliveryType != null) 'deliveryType': deliveryType!, - if (name != null) 'name': name!, + if (appRecoveryId != null) 'appRecoveryId': appRecoveryId!, + if (cancelTime != null) 'cancelTime': cancelTime!, + if (createTime != null) 'createTime': createTime!, + if (deployTime != null) 'deployTime': deployTime!, + if (lastUpdateTime != null) 'lastUpdateTime': lastUpdateTime!, + if (remoteInAppUpdateData != null) + 'remoteInAppUpdateData': remoteInAppUpdateData!, + if (status != null) 'status': status!, + if (targeting != null) 'targeting': targeting!, }; } -/// Set of asset slices belonging to a single asset module. -class AssetSliceSet { - /// Asset slices. - core.List? apkDescription; - - /// Module level metadata. - AssetModuleMetadata? assetModuleMetadata; +/// Data format for a list of app versions. +class AppVersionList { + /// List of app version codes. + core.List? versionCodes; - AssetSliceSet({ - this.apkDescription, - this.assetModuleMetadata, + AppVersionList({ + this.versionCodes, }); - AssetSliceSet.fromJson(core.Map json_) + AppVersionList.fromJson(core.Map json_) : this( - apkDescription: json_.containsKey('apkDescription') - ? (json_['apkDescription'] as core.List) + versionCodes: json_.containsKey('versionCodes') + ? (json_['versionCodes'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + ); + + core.Map toJson() => { + if (versionCodes != null) 'versionCodes': versionCodes!, + }; +} + +/// Data format for a continuous range of app versions. +class AppVersionRange { + /// Highest app version in the range, inclusive. + core.String? versionCodeEnd; + + /// Lowest app version in the range, inclusive. + core.String? versionCodeStart; + + AppVersionRange({ + this.versionCodeEnd, + this.versionCodeStart, + }); + + AppVersionRange.fromJson(core.Map json_) + : this( + versionCodeEnd: json_.containsKey('versionCodeEnd') + ? json_['versionCodeEnd'] as core.String + : null, + versionCodeStart: json_.containsKey('versionCodeStart') + ? json_['versionCodeStart'] as core.String + : null, + ); + + core.Map toJson() => { + if (versionCodeEnd != null) 'versionCodeEnd': versionCodeEnd!, + if (versionCodeStart != null) 'versionCodeStart': versionCodeStart!, + }; +} + +/// Deprecated: subscription archiving is not supported. +typedef ArchiveSubscriptionRequest = $Shared01; + +/// Metadata of an asset module. +class AssetModuleMetadata { + /// Indicates the delivery type for persistent install. + /// Possible string values are: + /// - "UNKNOWN_DELIVERY_TYPE" : Unspecified delivery type. + /// - "INSTALL_TIME" : This module will always be downloaded as part of the + /// initial install of the app. + /// - "ON_DEMAND" : This module is requested on-demand, which means it will + /// not be part of the initial install, and will only be sent when requested + /// by the client. + /// - "FAST_FOLLOW" : This module will be downloaded immediately after initial + /// install finishes. The app can be opened before these modules are + /// downloaded. + core.String? deliveryType; + + /// Module name. + core.String? name; + + AssetModuleMetadata({ + this.deliveryType, + this.name, + }); + + AssetModuleMetadata.fromJson(core.Map json_) + : this( + deliveryType: json_.containsKey('deliveryType') + ? json_['deliveryType'] as core.String + : null, + name: json_.containsKey('name') ? json_['name'] as core.String : null, + ); + + core.Map toJson() => { + if (deliveryType != null) 'deliveryType': deliveryType!, + if (name != null) 'name': name!, + }; +} + +/// Set of asset slices belonging to a single asset module. +class AssetSliceSet { + /// Asset slices. + core.List? apkDescription; + + /// Module level metadata. + AssetModuleMetadata? assetModuleMetadata; + + AssetSliceSet({ + this.apkDescription, + this.assetModuleMetadata, + }); + + AssetSliceSet.fromJson(core.Map json_) + : this( + apkDescription: json_.containsKey('apkDescription') + ? (json_['apkDescription'] as core.List) .map((value) => ApkDescription.fromJson( value as core.Map)) .toList() @@ -6047,6 +7366,14 @@ class AssetSliceSet { /// Represents a base plan that automatically renews at the end of its /// subscription period. class AutoRenewingBasePlanType { + /// Account hold period of the subscription, specified in ISO 8601 format. + /// + /// Acceptable values must be in DAYS and in the range P0D (zero days) to P30D + /// (30 days). If not specified, the default value is P30D (30 days). + /// + /// Optional. + core.String? accountHoldDuration; + /// Subscription period, specified in ISO 8601 format. /// /// For a list of acceptable billing periods, refer to the help center. @@ -6103,6 +7430,7 @@ class AutoRenewingBasePlanType { core.String? resubscribeState; AutoRenewingBasePlanType({ + this.accountHoldDuration, this.billingPeriodDuration, this.gracePeriodDuration, this.legacyCompatible, @@ -6113,6 +7441,9 @@ class AutoRenewingBasePlanType { AutoRenewingBasePlanType.fromJson(core.Map json_) : this( + accountHoldDuration: json_.containsKey('accountHoldDuration') + ? json_['accountHoldDuration'] as core.String + : null, billingPeriodDuration: json_.containsKey('billingPeriodDuration') ? json_['billingPeriodDuration'] as core.String : null, @@ -6135,6 +7466,8 @@ class AutoRenewingBasePlanType { ); core.Map toJson() => { + if (accountHoldDuration != null) + 'accountHoldDuration': accountHoldDuration!, if (billingPeriodDuration != null) 'billingPeriodDuration': billingPeriodDuration!, if (gracePeriodDuration != null) @@ -6209,86 +7542,427 @@ class BasePlan { /// locations Play may launch in the future. OtherRegionsBasePlanConfig? otherRegionsConfig; - /// Set when the base plan does not automatically renew at the end of the - /// billing period. - PrepaidBasePlanType? prepaidBasePlanType; + /// Set when the base plan does not automatically renew at the end of the + /// billing period. + PrepaidBasePlanType? prepaidBasePlanType; + + /// Region-specific information for this base plan. + core.List? regionalConfigs; + + /// The state of the base plan, i.e. whether it's active. + /// + /// Draft and inactive base plans can be activated or deleted. Active base + /// plans can be made inactive. Inactive base plans can be canceled. This + /// field cannot be changed by updating the resource. Use the dedicated + /// endpoints instead. + /// + /// Output only. + /// Possible string values are: + /// - "STATE_UNSPECIFIED" : Unspecified state. + /// - "DRAFT" : The base plan is currently in a draft state, and hasn't been + /// activated. It can be safely deleted at this point. + /// - "ACTIVE" : The base plan is active and available for new subscribers. + /// - "INACTIVE" : The base plan is inactive and only available for existing + /// subscribers. + core.String? state; + + BasePlan({ + this.autoRenewingBasePlanType, + this.basePlanId, + this.offerTags, + this.otherRegionsConfig, + this.prepaidBasePlanType, + this.regionalConfigs, + this.state, + }); + + BasePlan.fromJson(core.Map json_) + : this( + autoRenewingBasePlanType: + json_.containsKey('autoRenewingBasePlanType') + ? AutoRenewingBasePlanType.fromJson( + json_['autoRenewingBasePlanType'] + as core.Map) + : null, + basePlanId: json_.containsKey('basePlanId') + ? json_['basePlanId'] as core.String + : null, + offerTags: json_.containsKey('offerTags') + ? (json_['offerTags'] as core.List) + .map((value) => OfferTag.fromJson( + value as core.Map)) + .toList() + : null, + otherRegionsConfig: json_.containsKey('otherRegionsConfig') + ? OtherRegionsBasePlanConfig.fromJson(json_['otherRegionsConfig'] + as core.Map) + : null, + prepaidBasePlanType: json_.containsKey('prepaidBasePlanType') + ? PrepaidBasePlanType.fromJson(json_['prepaidBasePlanType'] + as core.Map) + : null, + regionalConfigs: json_.containsKey('regionalConfigs') + ? (json_['regionalConfigs'] as core.List) + .map((value) => RegionalBasePlanConfig.fromJson( + value as core.Map)) + .toList() + : null, + state: + json_.containsKey('state') ? json_['state'] as core.String : null, + ); + + core.Map toJson() => { + if (autoRenewingBasePlanType != null) + 'autoRenewingBasePlanType': autoRenewingBasePlanType!, + if (basePlanId != null) 'basePlanId': basePlanId!, + if (offerTags != null) 'offerTags': offerTags!, + if (otherRegionsConfig != null) + 'otherRegionsConfig': otherRegionsConfig!, + if (prepaidBasePlanType != null) + 'prepaidBasePlanType': prepaidBasePlanType!, + if (regionalConfigs != null) 'regionalConfigs': regionalConfigs!, + if (state != null) 'state': state!, + }; +} + +/// Request message for BatchGetSubscriptionOffers endpoint. +class BatchGetSubscriptionOffersRequest { + /// A list of update requests of up to 100 elements. + /// + /// All requests must update different subscriptions. + /// + /// Required. + core.List? requests; + + BatchGetSubscriptionOffersRequest({ + this.requests, + }); + + BatchGetSubscriptionOffersRequest.fromJson(core.Map json_) + : this( + requests: json_.containsKey('requests') + ? (json_['requests'] as core.List) + .map((value) => GetSubscriptionOfferRequest.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (requests != null) 'requests': requests!, + }; +} + +/// Response message for BatchGetSubscriptionOffers endpoint. +class BatchGetSubscriptionOffersResponse { + core.List? subscriptionOffers; + + BatchGetSubscriptionOffersResponse({ + this.subscriptionOffers, + }); + + BatchGetSubscriptionOffersResponse.fromJson(core.Map json_) + : this( + subscriptionOffers: json_.containsKey('subscriptionOffers') + ? (json_['subscriptionOffers'] as core.List) + .map((value) => SubscriptionOffer.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (subscriptionOffers != null) + 'subscriptionOffers': subscriptionOffers!, + }; +} + +/// Response message for BatchGetSubscriptions endpoint. +class BatchGetSubscriptionsResponse { + /// The list of requested subscriptions, in the same order as the request. + core.List? subscriptions; + + BatchGetSubscriptionsResponse({ + this.subscriptions, + }); + + BatchGetSubscriptionsResponse.fromJson(core.Map json_) + : this( + subscriptions: json_.containsKey('subscriptions') + ? (json_['subscriptions'] as core.List) + .map((value) => Subscription.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (subscriptions != null) 'subscriptions': subscriptions!, + }; +} + +/// Request message for BatchMigrateBasePlanPrices. +class BatchMigrateBasePlanPricesRequest { + /// Up to 100 price migration requests. + /// + /// All requests must update different base plans. + /// + /// Required. + core.List? requests; + + BatchMigrateBasePlanPricesRequest({ + this.requests, + }); + + BatchMigrateBasePlanPricesRequest.fromJson(core.Map json_) + : this( + requests: json_.containsKey('requests') + ? (json_['requests'] as core.List) + .map((value) => MigrateBasePlanPricesRequest.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (requests != null) 'requests': requests!, + }; +} + +/// Response message for BatchMigrateBasePlanPrices. +class BatchMigrateBasePlanPricesResponse { + /// Contains one response per requested price migration, in the same order as + /// the request. + core.List? responses; + + BatchMigrateBasePlanPricesResponse({ + this.responses, + }); + + BatchMigrateBasePlanPricesResponse.fromJson(core.Map json_) + : this( + responses: json_.containsKey('responses') + ? (json_['responses'] as core.List) + .map((value) => MigrateBasePlanPricesResponse.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (responses != null) 'responses': responses!, + }; +} + +/// Request message for BatchUpdateBasePlanStates. +class BatchUpdateBasePlanStatesRequest { + /// The update request list of up to 100 elements. + /// + /// All requests must update different base plans. + /// + /// Required. + core.List? requests; + + BatchUpdateBasePlanStatesRequest({ + this.requests, + }); + + BatchUpdateBasePlanStatesRequest.fromJson(core.Map json_) + : this( + requests: json_.containsKey('requests') + ? (json_['requests'] as core.List) + .map((value) => UpdateBasePlanStateRequest.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (requests != null) 'requests': requests!, + }; +} + +/// Response message for BatchUpdateBasePlanStates. +class BatchUpdateBasePlanStatesResponse { + /// The list of updated subscriptions. + /// + /// This list will match the requests one to one, in the same order. + core.List? subscriptions; + + BatchUpdateBasePlanStatesResponse({ + this.subscriptions, + }); + + BatchUpdateBasePlanStatesResponse.fromJson(core.Map json_) + : this( + subscriptions: json_.containsKey('subscriptions') + ? (json_['subscriptions'] as core.List) + .map((value) => Subscription.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (subscriptions != null) 'subscriptions': subscriptions!, + }; +} + +/// Request message for BatchUpdateSubscriptionOfferStates. +class BatchUpdateSubscriptionOfferStatesRequest { + /// The update request list of up to 100 elements. + /// + /// All requests must update different offers. + /// + /// Required. + core.List? requests; + + BatchUpdateSubscriptionOfferStatesRequest({ + this.requests, + }); + + BatchUpdateSubscriptionOfferStatesRequest.fromJson(core.Map json_) + : this( + requests: json_.containsKey('requests') + ? (json_['requests'] as core.List) + .map((value) => UpdateSubscriptionOfferStateRequest.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (requests != null) 'requests': requests!, + }; +} + +/// Response message for BatchUpdateSubscriptionOfferStates. +class BatchUpdateSubscriptionOfferStatesResponse { + /// The updated subscription offers list. + core.List? subscriptionOffers; + + BatchUpdateSubscriptionOfferStatesResponse({ + this.subscriptionOffers, + }); + + BatchUpdateSubscriptionOfferStatesResponse.fromJson(core.Map json_) + : this( + subscriptionOffers: json_.containsKey('subscriptionOffers') + ? (json_['subscriptionOffers'] as core.List) + .map((value) => SubscriptionOffer.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (subscriptionOffers != null) + 'subscriptionOffers': subscriptionOffers!, + }; +} + +/// Request message for BatchUpdateSubscriptionOffers. +class BatchUpdateSubscriptionOffersRequest { + /// A list of update requests of up to 100 elements. + /// + /// All requests must update different subscription offers. + /// + /// Required. + core.List? requests; + + BatchUpdateSubscriptionOffersRequest({ + this.requests, + }); + + BatchUpdateSubscriptionOffersRequest.fromJson(core.Map json_) + : this( + requests: json_.containsKey('requests') + ? (json_['requests'] as core.List) + .map((value) => UpdateSubscriptionOfferRequest.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (requests != null) 'requests': requests!, + }; +} + +/// Response message for BatchUpdateSubscriptionOffers. +class BatchUpdateSubscriptionOffersResponse { + /// The updated subscription offers list. + core.List? subscriptionOffers; + + BatchUpdateSubscriptionOffersResponse({ + this.subscriptionOffers, + }); + + BatchUpdateSubscriptionOffersResponse.fromJson(core.Map json_) + : this( + subscriptionOffers: json_.containsKey('subscriptionOffers') + ? (json_['subscriptionOffers'] as core.List) + .map((value) => SubscriptionOffer.fromJson( + value as core.Map)) + .toList() + : null, + ); - /// Region-specific information for this base plan. - core.List? regionalConfigs; + core.Map toJson() => { + if (subscriptionOffers != null) + 'subscriptionOffers': subscriptionOffers!, + }; +} - /// The state of the base plan, i.e. whether it's active. +/// Request message for BatchUpdateSubscription. +class BatchUpdateSubscriptionsRequest { + /// A list of update requests of up to 100 elements. /// - /// Draft and inactive base plans can be activated or deleted. Active base - /// plans can be made inactive. Inactive base plans can be canceled. This - /// field cannot be changed by updating the resource. Use the dedicated - /// endpoints instead. + /// All requests must update different subscriptions. /// - /// Output only. - /// Possible string values are: - /// - "STATE_UNSPECIFIED" : Unspecified state. - /// - "DRAFT" : The base plan is currently in a draft state, and hasn't been - /// activated. It can be safely deleted at this point. - /// - "ACTIVE" : The base plan is active and available for new subscribers. - /// - "INACTIVE" : The base plan is inactive and only available for existing - /// subscribers. - core.String? state; + /// Required. + core.List? requests; - BasePlan({ - this.autoRenewingBasePlanType, - this.basePlanId, - this.offerTags, - this.otherRegionsConfig, - this.prepaidBasePlanType, - this.regionalConfigs, - this.state, + BatchUpdateSubscriptionsRequest({ + this.requests, }); - BasePlan.fromJson(core.Map json_) + BatchUpdateSubscriptionsRequest.fromJson(core.Map json_) : this( - autoRenewingBasePlanType: - json_.containsKey('autoRenewingBasePlanType') - ? AutoRenewingBasePlanType.fromJson( - json_['autoRenewingBasePlanType'] - as core.Map) - : null, - basePlanId: json_.containsKey('basePlanId') - ? json_['basePlanId'] as core.String - : null, - offerTags: json_.containsKey('offerTags') - ? (json_['offerTags'] as core.List) - .map((value) => OfferTag.fromJson( + requests: json_.containsKey('requests') + ? (json_['requests'] as core.List) + .map((value) => UpdateSubscriptionRequest.fromJson( value as core.Map)) .toList() : null, - otherRegionsConfig: json_.containsKey('otherRegionsConfig') - ? OtherRegionsBasePlanConfig.fromJson(json_['otherRegionsConfig'] - as core.Map) - : null, - prepaidBasePlanType: json_.containsKey('prepaidBasePlanType') - ? PrepaidBasePlanType.fromJson(json_['prepaidBasePlanType'] - as core.Map) - : null, - regionalConfigs: json_.containsKey('regionalConfigs') - ? (json_['regionalConfigs'] as core.List) - .map((value) => RegionalBasePlanConfig.fromJson( + ); + + core.Map toJson() => { + if (requests != null) 'requests': requests!, + }; +} + +/// Response message for BatchUpdateSubscription. +class BatchUpdateSubscriptionsResponse { + /// The updated subscriptions list. + core.List? subscriptions; + + BatchUpdateSubscriptionsResponse({ + this.subscriptions, + }); + + BatchUpdateSubscriptionsResponse.fromJson(core.Map json_) + : this( + subscriptions: json_.containsKey('subscriptions') + ? (json_['subscriptions'] as core.List) + .map((value) => Subscription.fromJson( value as core.Map)) .toList() : null, - state: - json_.containsKey('state') ? json_['state'] as core.String : null, ); core.Map toJson() => { - if (autoRenewingBasePlanType != null) - 'autoRenewingBasePlanType': autoRenewingBasePlanType!, - if (basePlanId != null) 'basePlanId': basePlanId!, - if (offerTags != null) 'offerTags': offerTags!, - if (otherRegionsConfig != null) - 'otherRegionsConfig': otherRegionsConfig!, - if (prepaidBasePlanType != null) - 'prepaidBasePlanType': prepaidBasePlanType!, - if (regionalConfigs != null) 'regionalConfigs': regionalConfigs!, - if (state != null) 'state': state!, + if (subscriptions != null) 'subscriptions': subscriptions!, }; } @@ -6362,6 +8036,12 @@ class BundlesListResponse { }; } +/// Request message for CancelAppRecovery. +typedef CancelAppRecoveryRequest = $Empty; + +/// Response message for CancelAppRecovery. +typedef CancelAppRecoveryResponse = $Empty; + /// Result of the cancel survey when the subscription was canceled by the user. class CancelSurveyResult { /// The reason the user selected in the cancel survey. @@ -6664,11 +8344,180 @@ class CountryTargeting { }; } +/// Request message for CreateDraftAppRecovery. +class CreateDraftAppRecoveryRequest { + /// Action type is remote in-app update. + /// + /// As a consequence of this action, a downloadable recovery module is also + /// created for testing purposes. + RemoteInAppUpdate? remoteInAppUpdate; + + /// Specifies targeting criteria for the recovery action such as regions, + /// android sdk versions, app versions etc. + Targeting? targeting; + + CreateDraftAppRecoveryRequest({ + this.remoteInAppUpdate, + this.targeting, + }); + + CreateDraftAppRecoveryRequest.fromJson(core.Map json_) + : this( + remoteInAppUpdate: json_.containsKey('remoteInAppUpdate') + ? RemoteInAppUpdate.fromJson(json_['remoteInAppUpdate'] + as core.Map) + : null, + targeting: json_.containsKey('targeting') + ? Targeting.fromJson( + json_['targeting'] as core.Map) + : null, + ); + + core.Map toJson() => { + if (remoteInAppUpdate != null) 'remoteInAppUpdate': remoteInAppUpdate!, + if (targeting != null) 'targeting': targeting!, + }; +} + /// Request message for DeactivateBasePlan. -typedef DeactivateBasePlanRequest = $Empty; +class DeactivateBasePlanRequest { + /// The unique base plan ID of the base plan to deactivate. + /// + /// Required. + core.String? basePlanId; + + /// The latency tolerance for the propagation of this product update. + /// + /// Defaults to latency-sensitive. + /// + /// Optional. + /// Possible string values are: + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED" : Defaults to + /// PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE. + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE" : The update will + /// propagate to clients within several minutes on average and up to a few + /// hours in rare cases. Throughput is limited to 7,200 updates per app per + /// hour. + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" : The update will + /// propagate to clients within 24 hours. Supports high throughput of up to + /// 720,000 updates per app per hour using batch modification methods. + core.String? latencyTolerance; + + /// The parent app (package name) of the base plan to deactivate. + /// + /// Required. + core.String? packageName; + + /// The parent subscription (ID) of the base plan to deactivate. + /// + /// Required. + core.String? productId; + + DeactivateBasePlanRequest({ + this.basePlanId, + this.latencyTolerance, + this.packageName, + this.productId, + }); + + DeactivateBasePlanRequest.fromJson(core.Map json_) + : this( + basePlanId: json_.containsKey('basePlanId') + ? json_['basePlanId'] as core.String + : null, + latencyTolerance: json_.containsKey('latencyTolerance') + ? json_['latencyTolerance'] as core.String + : null, + packageName: json_.containsKey('packageName') + ? json_['packageName'] as core.String + : null, + productId: json_.containsKey('productId') + ? json_['productId'] as core.String + : null, + ); + + core.Map toJson() => { + if (basePlanId != null) 'basePlanId': basePlanId!, + if (latencyTolerance != null) 'latencyTolerance': latencyTolerance!, + if (packageName != null) 'packageName': packageName!, + if (productId != null) 'productId': productId!, + }; +} /// Request message for DeactivateSubscriptionOffer. -typedef DeactivateSubscriptionOfferRequest = $Empty; +class DeactivateSubscriptionOfferRequest { + /// The parent base plan (ID) of the offer to deactivate. + /// + /// Required. + core.String? basePlanId; + + /// The latency tolerance for the propagation of this product update. + /// + /// Defaults to latency-sensitive. + /// + /// Optional. + /// Possible string values are: + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED" : Defaults to + /// PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE. + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE" : The update will + /// propagate to clients within several minutes on average and up to a few + /// hours in rare cases. Throughput is limited to 7,200 updates per app per + /// hour. + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" : The update will + /// propagate to clients within 24 hours. Supports high throughput of up to + /// 720,000 updates per app per hour using batch modification methods. + core.String? latencyTolerance; + + /// The unique offer ID of the offer to deactivate. + /// + /// Required. + core.String? offerId; + + /// The parent app (package name) of the offer to deactivate. + /// + /// Required. + core.String? packageName; + + /// The parent subscription (ID) of the offer to deactivate. + /// + /// Required. + core.String? productId; + + DeactivateSubscriptionOfferRequest({ + this.basePlanId, + this.latencyTolerance, + this.offerId, + this.packageName, + this.productId, + }); + + DeactivateSubscriptionOfferRequest.fromJson(core.Map json_) + : this( + basePlanId: json_.containsKey('basePlanId') + ? json_['basePlanId'] as core.String + : null, + latencyTolerance: json_.containsKey('latencyTolerance') + ? json_['latencyTolerance'] as core.String + : null, + offerId: json_.containsKey('offerId') + ? json_['offerId'] as core.String + : null, + packageName: json_.containsKey('packageName') + ? json_['packageName'] as core.String + : null, + productId: json_.containsKey('productId') + ? json_['productId'] as core.String + : null, + ); + + core.Map toJson() => { + if (basePlanId != null) 'basePlanId': basePlanId!, + if (latencyTolerance != null) 'latencyTolerance': latencyTolerance!, + if (offerId != null) 'offerId': offerId!, + if (packageName != null) 'packageName': packageName!, + if (productId != null) 'productId': productId!, + }; +} /// Information related to deferred item replacement. class DeferredItemReplacement { @@ -6739,6 +8588,12 @@ class DeobfuscationFilesUploadResponse { }; } +/// Request message for DeployAppRecovery. +typedef DeployAppRecoveryRequest = $Empty; + +/// Response message for DeployAppRecovery. +typedef DeployAppRecoveryResponse = $Empty; + /// Developer entry from conversation between user and developer. class DeveloperComment { /// The last time at which this comment was updated. @@ -7827,6 +9682,14 @@ class GeneratedApksPerSigningKey { /// with a key corresponding to certificate_sha256_hash. core.List? generatedAssetPackSlices; + /// Generated recovery apks for recovery actions signed with a key + /// corresponding to certificate_sha256_hash. + /// + /// This includes all generated recovery APKs, also those in draft or + /// cancelled state. This field is not set if no recovery actions were created + /// for this signing key. + core.List? generatedRecoveryModules; + /// List of generated split APKs, signed with a key corresponding to /// certificate_sha256_hash. core.List? generatedSplitApks; @@ -7848,6 +9711,7 @@ class GeneratedApksPerSigningKey { GeneratedApksPerSigningKey({ this.certificateSha256Hash, this.generatedAssetPackSlices, + this.generatedRecoveryModules, this.generatedSplitApks, this.generatedStandaloneApks, this.generatedUniversalApk, @@ -7866,6 +9730,13 @@ class GeneratedApksPerSigningKey { value as core.Map)) .toList() : null, + generatedRecoveryModules: + json_.containsKey('generatedRecoveryModules') + ? (json_['generatedRecoveryModules'] as core.List) + .map((value) => GeneratedRecoveryApk.fromJson( + value as core.Map)) + .toList() + : null, generatedSplitApks: json_.containsKey('generatedSplitApks') ? (json_['generatedSplitApks'] as core.List) .map((value) => GeneratedSplitApk.fromJson( @@ -7893,6 +9764,8 @@ class GeneratedApksPerSigningKey { 'certificateSha256Hash': certificateSha256Hash!, if (generatedAssetPackSlices != null) 'generatedAssetPackSlices': generatedAssetPackSlices!, + if (generatedRecoveryModules != null) + 'generatedRecoveryModules': generatedRecoveryModules!, if (generatedSplitApks != null) 'generatedSplitApks': generatedSplitApks!, if (generatedStandaloneApks != null) @@ -7903,30 +9776,89 @@ class GeneratedApksPerSigningKey { }; } -/// Download metadata for an asset pack slice. -class GeneratedAssetPackSlice { +/// Download metadata for an asset pack slice. +class GeneratedAssetPackSlice { + /// Download ID, which uniquely identifies the APK to download. + /// + /// Should be supplied to `generatedapks.download` method. + core.String? downloadId; + + /// Name of the module that this asset slice belongs to. + core.String? moduleName; + + /// Asset slice ID. + core.String? sliceId; + + /// Asset module version. + core.String? version; + + GeneratedAssetPackSlice({ + this.downloadId, + this.moduleName, + this.sliceId, + this.version, + }); + + GeneratedAssetPackSlice.fromJson(core.Map json_) + : this( + downloadId: json_.containsKey('downloadId') + ? json_['downloadId'] as core.String + : null, + moduleName: json_.containsKey('moduleName') + ? json_['moduleName'] as core.String + : null, + sliceId: json_.containsKey('sliceId') + ? json_['sliceId'] as core.String + : null, + version: json_.containsKey('version') + ? json_['version'] as core.String + : null, + ); + + core.Map toJson() => { + if (downloadId != null) 'downloadId': downloadId!, + if (moduleName != null) 'moduleName': moduleName!, + if (sliceId != null) 'sliceId': sliceId!, + if (version != null) 'version': version!, + }; +} + +/// Download metadata for an app recovery module. +class GeneratedRecoveryApk { /// Download ID, which uniquely identifies the APK to download. /// /// Should be supplied to `generatedapks.download` method. core.String? downloadId; - /// Name of the module that this asset slice belongs to. + /// Name of the module which recovery apk belongs to. core.String? moduleName; - /// Asset slice ID. - core.String? sliceId; - - /// Asset module version. - core.String? version; + /// ID of the recovery action. + core.String? recoveryId; - GeneratedAssetPackSlice({ + /// The status of the recovery action corresponding to the recovery apk. + /// Possible string values are: + /// - "RECOVERY_STATUS_UNSPECIFIED" : RecoveryStatus is unspecified. + /// - "RECOVERY_STATUS_ACTIVE" : The app recovery action has not been canceled + /// since it has been created. + /// - "RECOVERY_STATUS_CANCELED" : The recovery action has been canceled. The + /// action cannot be resumed. + /// - "RECOVERY_STATUS_DRAFT" : The recovery action is in the draft state and + /// has not yet been deployed to users. + /// - "RECOVERY_STATUS_GENERATION_IN_PROGRESS" : The recovery action is + /// generating recovery apks. + /// - "RECOVERY_STATUS_GENERATION_FAILED" : The app recovery action generation + /// has failed. + core.String? recoveryStatus; + + GeneratedRecoveryApk({ this.downloadId, this.moduleName, - this.sliceId, - this.version, + this.recoveryId, + this.recoveryStatus, }); - GeneratedAssetPackSlice.fromJson(core.Map json_) + GeneratedRecoveryApk.fromJson(core.Map json_) : this( downloadId: json_.containsKey('downloadId') ? json_['downloadId'] as core.String @@ -7934,19 +9866,19 @@ class GeneratedAssetPackSlice { moduleName: json_.containsKey('moduleName') ? json_['moduleName'] as core.String : null, - sliceId: json_.containsKey('sliceId') - ? json_['sliceId'] as core.String + recoveryId: json_.containsKey('recoveryId') + ? json_['recoveryId'] as core.String : null, - version: json_.containsKey('version') - ? json_['version'] as core.String + recoveryStatus: json_.containsKey('recoveryStatus') + ? json_['recoveryStatus'] as core.String : null, ); core.Map toJson() => { if (downloadId != null) 'downloadId': downloadId!, if (moduleName != null) 'moduleName': moduleName!, - if (sliceId != null) 'sliceId': sliceId!, - if (version != null) 'version': version!, + if (recoveryId != null) 'recoveryId': recoveryId!, + if (recoveryStatus != null) 'recoveryStatus': recoveryStatus!, }; } @@ -8053,6 +9985,59 @@ class GeneratedUniversalApk { }; } +/// Request message for GetSubscriptionOffer. +class GetSubscriptionOfferRequest { + /// The parent base plan (ID) of the offer to get. + /// + /// Required. + core.String? basePlanId; + + /// The unique offer ID of the offer to get. + /// + /// Required. + core.String? offerId; + + /// The parent app (package name) of the offer to get. + /// + /// Required. + core.String? packageName; + + /// The parent subscription (ID) of the offer to get. + /// + /// Required. + core.String? productId; + + GetSubscriptionOfferRequest({ + this.basePlanId, + this.offerId, + this.packageName, + this.productId, + }); + + GetSubscriptionOfferRequest.fromJson(core.Map json_) + : this( + basePlanId: json_.containsKey('basePlanId') + ? json_['basePlanId'] as core.String + : null, + offerId: json_.containsKey('offerId') + ? json_['offerId'] as core.String + : null, + packageName: json_.containsKey('packageName') + ? json_['packageName'] as core.String + : null, + productId: json_.containsKey('productId') + ? json_['productId'] as core.String + : null, + ); + + core.Map toJson() => { + if (basePlanId != null) 'basePlanId': basePlanId!, + if (offerId != null) 'offerId': offerId!, + if (packageName != null) 'packageName': packageName!, + if (productId != null) 'productId': productId!, + }; +} + /// An access grant resource. class Grant { /// The permissions granted to the user for this app. @@ -8427,6 +10412,159 @@ class InAppProductListing { }; } +/// Request to delete multiple in-app products. +class InappproductsBatchDeleteRequest { + /// Individual delete requests. + /// + /// At least one request is required. Can contain up to 100 requests. All + /// requests must correspond to different in-app products. + core.List? requests; + + InappproductsBatchDeleteRequest({ + this.requests, + }); + + InappproductsBatchDeleteRequest.fromJson(core.Map json_) + : this( + requests: json_.containsKey('requests') + ? (json_['requests'] as core.List) + .map((value) => InappproductsDeleteRequest.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (requests != null) 'requests': requests!, + }; +} + +/// Response message for BatchGetSubscriptions endpoint. +class InappproductsBatchGetResponse { + /// The list of requested in-app products, in the same order as the request. + core.List? inappproduct; + + InappproductsBatchGetResponse({ + this.inappproduct, + }); + + InappproductsBatchGetResponse.fromJson(core.Map json_) + : this( + inappproduct: json_.containsKey('inappproduct') + ? (json_['inappproduct'] as core.List) + .map((value) => InAppProduct.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (inappproduct != null) 'inappproduct': inappproduct!, + }; +} + +/// Request to update or insert one or more in-app products. +class InappproductsBatchUpdateRequest { + /// Individual update requests. + /// + /// At least one request is required. Can contain up to 100 requests. All + /// requests must correspond to different in-app products. + /// + /// Required. + core.List? requests; + + InappproductsBatchUpdateRequest({ + this.requests, + }); + + InappproductsBatchUpdateRequest.fromJson(core.Map json_) + : this( + requests: json_.containsKey('requests') + ? (json_['requests'] as core.List) + .map((value) => InappproductsUpdateRequest.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (requests != null) 'requests': requests!, + }; +} + +/// Response for a batch in-app product update. +class InappproductsBatchUpdateResponse { + /// The updated or inserted in-app products. + core.List? inappproducts; + + InappproductsBatchUpdateResponse({ + this.inappproducts, + }); + + InappproductsBatchUpdateResponse.fromJson(core.Map json_) + : this( + inappproducts: json_.containsKey('inappproducts') + ? (json_['inappproducts'] as core.List) + .map((value) => InAppProduct.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (inappproducts != null) 'inappproducts': inappproducts!, + }; +} + +/// Request to delete an in-app product. +class InappproductsDeleteRequest { + /// The latency tolerance for the propagation of this product update. + /// + /// Defaults to latency-sensitive. + /// + /// Optional. + /// Possible string values are: + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED" : Defaults to + /// PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE. + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE" : The update will + /// propagate to clients within several minutes on average and up to a few + /// hours in rare cases. Throughput is limited to 7,200 updates per app per + /// hour. + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" : The update will + /// propagate to clients within 24 hours. Supports high throughput of up to + /// 720,000 updates per app per hour using batch modification methods. + core.String? latencyTolerance; + + /// Package name of the app. + core.String? packageName; + + /// Unique identifier for the in-app product. + core.String? sku; + + InappproductsDeleteRequest({ + this.latencyTolerance, + this.packageName, + this.sku, + }); + + InappproductsDeleteRequest.fromJson(core.Map json_) + : this( + latencyTolerance: json_.containsKey('latencyTolerance') + ? json_['latencyTolerance'] as core.String + : null, + packageName: json_.containsKey('packageName') + ? json_['packageName'] as core.String + : null, + sku: json_.containsKey('sku') ? json_['sku'] as core.String : null, + ); + + core.Map toJson() => { + if (latencyTolerance != null) 'latencyTolerance': latencyTolerance!, + if (packageName != null) 'packageName': packageName!, + if (sku != null) 'sku': sku!, + }; +} + /// Response listing all in-app products. class InappproductsListResponse { /// All in-app products. @@ -8478,6 +10616,87 @@ class InappproductsListResponse { }; } +/// Request to update an in-app product. +class InappproductsUpdateRequest { + /// If set to true, and the in-app product with the given package_name and sku + /// doesn't exist, the in-app product will be created. + core.bool? allowMissing; + + /// If true the prices for all regions targeted by the parent app that don't + /// have a price specified for this in-app product will be auto converted to + /// the target currency based on the default price. + /// + /// Defaults to false. + core.bool? autoConvertMissingPrices; + + /// The new in-app product. + InAppProduct? inappproduct; + + /// The latency tolerance for the propagation of this product update. + /// + /// Defaults to latency-sensitive. + /// + /// Optional. + /// Possible string values are: + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED" : Defaults to + /// PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE. + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE" : The update will + /// propagate to clients within several minutes on average and up to a few + /// hours in rare cases. Throughput is limited to 7,200 updates per app per + /// hour. + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" : The update will + /// propagate to clients within 24 hours. Supports high throughput of up to + /// 720,000 updates per app per hour using batch modification methods. + core.String? latencyTolerance; + + /// Package name of the app. + core.String? packageName; + + /// Unique identifier for the in-app product. + core.String? sku; + + InappproductsUpdateRequest({ + this.allowMissing, + this.autoConvertMissingPrices, + this.inappproduct, + this.latencyTolerance, + this.packageName, + this.sku, + }); + + InappproductsUpdateRequest.fromJson(core.Map json_) + : this( + allowMissing: json_.containsKey('allowMissing') + ? json_['allowMissing'] as core.bool + : null, + autoConvertMissingPrices: + json_.containsKey('autoConvertMissingPrices') + ? json_['autoConvertMissingPrices'] as core.bool + : null, + inappproduct: json_.containsKey('inappproduct') + ? InAppProduct.fromJson( + json_['inappproduct'] as core.Map) + : null, + latencyTolerance: json_.containsKey('latencyTolerance') + ? json_['latencyTolerance'] as core.String + : null, + packageName: json_.containsKey('packageName') + ? json_['packageName'] as core.String + : null, + sku: json_.containsKey('sku') ? json_['sku'] as core.String : null, + ); + + core.Map toJson() => { + if (allowMissing != null) 'allowMissing': allowMissing!, + if (autoConvertMissingPrices != null) + 'autoConvertMissingPrices': autoConvertMissingPrices!, + if (inappproduct != null) 'inappproduct': inappproduct!, + if (latencyTolerance != null) 'latencyTolerance': latencyTolerance!, + if (packageName != null) 'packageName': packageName!, + if (sku != null) 'sku': sku!, + }; +} + /// An artifact resource which gets created when uploading an APK or Android App /// Bundle through internal app sharing. class InternalAppSharingArtifact { @@ -8617,6 +10836,32 @@ class LanguageTargeting { }; } +/// Response message for ListAppRecoveries. +/// +/// -- api-linter: core::0158::response-next-page-token-field=disabled +class ListAppRecoveriesResponse { + /// List of recovery actions associated with the requested package name. + core.List? recoveryActions; + + ListAppRecoveriesResponse({ + this.recoveryActions, + }); + + ListAppRecoveriesResponse.fromJson(core.Map json_) + : this( + recoveryActions: json_.containsKey('recoveryActions') + ? (json_['recoveryActions'] as core.List) + .map((value) => AppRecoveryAction.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (recoveryActions != null) 'recoveryActions': recoveryActions!, + }; +} + /// Response listing existing device tier configs. class ListDeviceTierConfigsResponse { /// Device tier configs created by the developer. @@ -8930,6 +11175,42 @@ class ManagedProductTaxAndComplianceSettings { /// Request message for MigrateBasePlanPrices. class MigrateBasePlanPricesRequest { + /// The unique base plan ID of the base plan to update prices on. + /// + /// Required. + core.String? basePlanId; + + /// The latency tolerance for the propagation of this product update. + /// + /// Defaults to latency-sensitive. + /// + /// Optional. + /// Possible string values are: + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED" : Defaults to + /// PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE. + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE" : The update will + /// propagate to clients within several minutes on average and up to a few + /// hours in rare cases. Throughput is limited to 7,200 updates per app per + /// hour. + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" : The update will + /// propagate to clients within 24 hours. Supports high throughput of up to + /// 720,000 updates per app per hour using batch modification methods. + core.String? latencyTolerance; + + /// Package name of the parent app. + /// + /// Must be equal to the package_name field on the Subscription resource. + /// + /// Required. + core.String? packageName; + + /// The ID of the subscription to update. + /// + /// Must be equal to the product_id field on the Subscription resource. + /// + /// Required. + core.String? productId; + /// The regional prices to update. /// /// Required. @@ -8942,12 +11223,28 @@ class MigrateBasePlanPricesRequest { RegionsVersion? regionsVersion; MigrateBasePlanPricesRequest({ + this.basePlanId, + this.latencyTolerance, + this.packageName, + this.productId, this.regionalPriceMigrations, this.regionsVersion, }); MigrateBasePlanPricesRequest.fromJson(core.Map json_) : this( + basePlanId: json_.containsKey('basePlanId') + ? json_['basePlanId'] as core.String + : null, + latencyTolerance: json_.containsKey('latencyTolerance') + ? json_['latencyTolerance'] as core.String + : null, + packageName: json_.containsKey('packageName') + ? json_['packageName'] as core.String + : null, + productId: json_.containsKey('productId') + ? json_['productId'] as core.String + : null, regionalPriceMigrations: json_.containsKey('regionalPriceMigrations') ? (json_['regionalPriceMigrations'] as core.List) .map((value) => RegionalPriceMigrationConfig.fromJson( @@ -8961,6 +11258,10 @@ class MigrateBasePlanPricesRequest { ); core.Map toJson() => { + if (basePlanId != null) 'basePlanId': basePlanId!, + if (latencyTolerance != null) 'latencyTolerance': latencyTolerance!, + if (packageName != null) 'packageName': packageName!, + if (productId != null) 'productId': productId!, if (regionalPriceMigrations != null) 'regionalPriceMigrations': regionalPriceMigrations!, if (regionsVersion != null) 'regionsVersion': regionsVersion!, @@ -10086,7 +12387,7 @@ class RegionalTaxRateInfo { /// You must tell us if your app contains streaming products to correctly /// charge US state and local sales tax. /// - /// Field only supported in United States. + /// Field only supported in the United States. core.bool? eligibleForStreamingServiceTaxRate; /// To collect communications or amusement taxes in the United States, choose @@ -10147,11 +12448,39 @@ class RegionalTaxRateInfo { ); core.Map toJson() => { - if (eligibleForStreamingServiceTaxRate != null) - 'eligibleForStreamingServiceTaxRate': - eligibleForStreamingServiceTaxRate!, - if (streamingTaxType != null) 'streamingTaxType': streamingTaxType!, - if (taxTier != null) 'taxTier': taxTier!, + if (eligibleForStreamingServiceTaxRate != null) + 'eligibleForStreamingServiceTaxRate': + eligibleForStreamingServiceTaxRate!, + if (streamingTaxType != null) 'streamingTaxType': streamingTaxType!, + if (taxTier != null) 'taxTier': taxTier!, + }; +} + +/// Region targeting data for app recovery action targeting. +class Regions { + /// Regions targeted by the recovery action. + /// + /// Region codes are ISO 3166 Alpha-2 country codes. For example, US stands + /// for United States of America. See + /// https://www.iso.org/iso-3166-country-codes.html for the complete list of + /// country codes. + core.List? regionCode; + + Regions({ + this.regionCode, + }); + + Regions.fromJson(core.Map json_) + : this( + regionCode: json_.containsKey('regionCode') + ? (json_['regionCode'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + ); + + core.Map toJson() => { + if (regionCode != null) 'regionCode': regionCode!, }; } @@ -10188,6 +12517,97 @@ class RegionsVersion { }; } +/// Object representation for Remote in-app update action type. +class RemoteInAppUpdate { + /// Set to true if Remote In-App Update action type is needed. + /// + /// Required. + core.bool? isRemoteInAppUpdateRequested; + + RemoteInAppUpdate({ + this.isRemoteInAppUpdateRequested, + }); + + RemoteInAppUpdate.fromJson(core.Map json_) + : this( + isRemoteInAppUpdateRequested: + json_.containsKey('isRemoteInAppUpdateRequested') + ? json_['isRemoteInAppUpdateRequested'] as core.bool + : null, + ); + + core.Map toJson() => { + if (isRemoteInAppUpdateRequested != null) + 'isRemoteInAppUpdateRequested': isRemoteInAppUpdateRequested!, + }; +} + +/// Data related to Remote In-App Update action such as recovered user count, +/// affected user count etc. +class RemoteInAppUpdateData { + /// Data related to the recovery action at bundle level. + core.List? remoteAppUpdateDataPerBundle; + + RemoteInAppUpdateData({ + this.remoteAppUpdateDataPerBundle, + }); + + RemoteInAppUpdateData.fromJson(core.Map json_) + : this( + remoteAppUpdateDataPerBundle: + json_.containsKey('remoteAppUpdateDataPerBundle') + ? (json_['remoteAppUpdateDataPerBundle'] as core.List) + .map((value) => RemoteInAppUpdateDataPerBundle.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (remoteAppUpdateDataPerBundle != null) + 'remoteAppUpdateDataPerBundle': remoteAppUpdateDataPerBundle!, + }; +} + +/// Data related to the recovery action at bundle level. +class RemoteInAppUpdateDataPerBundle { + /// Total number of devices which have been rescued. + core.String? recoveredDeviceCount; + + /// Total number of devices affected by this recovery action associated with + /// bundle of the app. + core.String? totalDeviceCount; + + /// Version Code corresponding to the target bundle. + core.String? versionCode; + + RemoteInAppUpdateDataPerBundle({ + this.recoveredDeviceCount, + this.totalDeviceCount, + this.versionCode, + }); + + RemoteInAppUpdateDataPerBundle.fromJson(core.Map json_) + : this( + recoveredDeviceCount: json_.containsKey('recoveredDeviceCount') + ? json_['recoveredDeviceCount'] as core.String + : null, + totalDeviceCount: json_.containsKey('totalDeviceCount') + ? json_['totalDeviceCount'] as core.String + : null, + versionCode: json_.containsKey('versionCode') + ? json_['versionCode'] as core.String + : null, + ); + + core.Map toJson() => { + if (recoveredDeviceCount != null) + 'recoveredDeviceCount': recoveredDeviceCount!, + if (totalDeviceCount != null) 'totalDeviceCount': totalDeviceCount!, + if (versionCode != null) 'versionCode': versionCode!, + }; +} + /// Information specific to cancellations caused by subscription replacement. typedef ReplacementCancellation = $Empty; @@ -10349,6 +12769,93 @@ class ReviewsReplyResponse { }; } +/// Revocation context of the purchases.subscriptionsv2.revoke API. +class RevocationContext { + /// Used when users should be refunded a prorated amount they paid for their + /// subscription based on the amount of time remaining in a subscription. + /// + /// Optional. + RevocationContextProratedRefund? proratedRefund; + + RevocationContext({ + this.proratedRefund, + }); + + RevocationContext.fromJson(core.Map json_) + : this( + proratedRefund: json_.containsKey('proratedRefund') + ? RevocationContextProratedRefund.fromJson(json_['proratedRefund'] + as core.Map) + : null, + ); + + core.Map toJson() => { + if (proratedRefund != null) 'proratedRefund': proratedRefund!, + }; +} + +/// Used to determine if the refund type in the RevocationContext is a prorated +/// refund. +typedef RevocationContextProratedRefund = $Empty; + +/// Request for the purchases.subscriptionsv2.revoke API. +class RevokeSubscriptionPurchaseRequest { + /// Additional details around the subscription revocation. + /// + /// Required. + RevocationContext? revocationContext; + + RevokeSubscriptionPurchaseRequest({ + this.revocationContext, + }); + + RevokeSubscriptionPurchaseRequest.fromJson(core.Map json_) + : this( + revocationContext: json_.containsKey('revocationContext') + ? RevocationContext.fromJson(json_['revocationContext'] + as core.Map) + : null, + ); + + core.Map toJson() => { + if (revocationContext != null) 'revocationContext': revocationContext!, + }; +} + +/// Response for the purchases.subscriptionsv2.revoke API. +typedef RevokeSubscriptionPurchaseResponse = $Empty; + +/// Request to update Safety Labels of an app. +class SafetyLabelsUpdateRequest { + /// Contents of the CSV file containing Data Safety responses. + /// + /// For the format of this file, see the Help Center documentation at + /// https://support.google.com/googleplay/android-developer/answer/10787469?#zippy=%2Cunderstand-the-csv-format + /// To download an up to date template, follow the steps at + /// https://support.google.com/googleplay/android-developer/answer/10787469?#zippy=%2Cexport-to-a-csv-file + /// + /// Required. + core.String? safetyLabels; + + SafetyLabelsUpdateRequest({ + this.safetyLabels, + }); + + SafetyLabelsUpdateRequest.fromJson(core.Map json_) + : this( + safetyLabels: json_.containsKey('safetyLabels') + ? json_['safetyLabels'] as core.String + : null, + ); + + core.Map toJson() => { + if (safetyLabels != null) 'safetyLabels': safetyLabels!, + }; +} + +/// Response for SafetyLabelsUpdate rpc. +typedef SafetyLabelsUpdateResponse = $Empty; + /// Represents a screen density. class ScreenDensity { /// Alias for a screen density. @@ -10636,13 +13143,12 @@ class SubscribeWithGoogleInfo { /// A single subscription for an app. class Subscription { - /// Whether this subscription is archived. - /// - /// Archived subscriptions are not available to any subscriber any longer, - /// cannot be updated, and are not returned in list requests unless the show - /// archived flag is passed in. + /// Deprecated: subscription archiving is not supported. /// /// Output only. + @core.Deprecated( + 'Not supported. Member documentation may have more information.', + ) core.bool? archived; /// The set of base plans for this subscription. @@ -12009,6 +14515,65 @@ class SystemFeature { /// Information specific to cancellations initiated by Google system. typedef SystemInitiatedCancellation = $Empty; +/// Targeting details for a recovery action such as regions, android sdk levels, +/// app versions etc. +class Targeting { + /// All users are targeted. + AllUsers? allUsers; + + /// Targeting is based on android api levels of devices. + AndroidSdks? androidSdks; + + /// Targeting is based on the user account region. + Regions? regions; + + /// Target version codes as a list. + AppVersionList? versionList; + + /// Target version codes as a range. + AppVersionRange? versionRange; + + Targeting({ + this.allUsers, + this.androidSdks, + this.regions, + this.versionList, + this.versionRange, + }); + + Targeting.fromJson(core.Map json_) + : this( + allUsers: json_.containsKey('allUsers') + ? AllUsers.fromJson( + json_['allUsers'] as core.Map) + : null, + androidSdks: json_.containsKey('androidSdks') + ? AndroidSdks.fromJson( + json_['androidSdks'] as core.Map) + : null, + regions: json_.containsKey('regions') + ? Regions.fromJson( + json_['regions'] as core.Map) + : null, + versionList: json_.containsKey('versionList') + ? AppVersionList.fromJson( + json_['versionList'] as core.Map) + : null, + versionRange: json_.containsKey('versionRange') + ? AppVersionRange.fromJson( + json_['versionRange'] as core.Map) + : null, + ); + + core.Map toJson() => { + if (allUsers != null) 'allUsers': allUsers!, + if (androidSdks != null) 'androidSdks': androidSdks!, + if (regions != null) 'regions': regions!, + if (versionList != null) 'versionList': versionList!, + if (versionRange != null) 'versionRange': versionRange!, + }; +} + /// Targeting information about the generated apks. class TargetingInfo { /// List of created asset slices. @@ -12079,6 +14644,48 @@ class TargetingRuleScope { }; } +/// Update type for targeting. +/// +/// Note it is always a subset Targeting. +class TargetingUpdate { + /// All users are targeted. + AllUsers? allUsers; + + /// Additional android sdk levels are targeted by the recovery action. + AndroidSdks? androidSdks; + + /// Additional regions are targeted by the recovery action. + Regions? regions; + + TargetingUpdate({ + this.allUsers, + this.androidSdks, + this.regions, + }); + + TargetingUpdate.fromJson(core.Map json_) + : this( + allUsers: json_.containsKey('allUsers') + ? AllUsers.fromJson( + json_['allUsers'] as core.Map) + : null, + androidSdks: json_.containsKey('androidSdks') + ? AndroidSdks.fromJson( + json_['androidSdks'] as core.Map) + : null, + regions: json_.containsKey('regions') + ? Regions.fromJson( + json_['regions'] as core.Map) + : null, + ); + + core.Map toJson() => { + if (allUsers != null) 'allUsers': allUsers!, + if (androidSdks != null) 'androidSdks': androidSdks!, + if (regions != null) 'regions': regions!, + }; +} + /// Whether this subscription purchase is a test purchase. typedef TestPurchase = $Empty; @@ -12523,6 +15130,252 @@ class TracksListResponse { }; } +/// Request message to update the state of a subscription base plan. +class UpdateBasePlanStateRequest { + /// Activates a base plan. + /// + /// Once activated, base plans will be available to new subscribers. + ActivateBasePlanRequest? activateBasePlanRequest; + + /// Deactivates a base plan. + /// + /// Once deactivated, the base plan will become unavailable to new + /// subscribers, but existing subscribers will maintain their subscription + DeactivateBasePlanRequest? deactivateBasePlanRequest; + + UpdateBasePlanStateRequest({ + this.activateBasePlanRequest, + this.deactivateBasePlanRequest, + }); + + UpdateBasePlanStateRequest.fromJson(core.Map json_) + : this( + activateBasePlanRequest: json_.containsKey('activateBasePlanRequest') + ? ActivateBasePlanRequest.fromJson( + json_['activateBasePlanRequest'] + as core.Map) + : null, + deactivateBasePlanRequest: + json_.containsKey('deactivateBasePlanRequest') + ? DeactivateBasePlanRequest.fromJson( + json_['deactivateBasePlanRequest'] + as core.Map) + : null, + ); + + core.Map toJson() => { + if (activateBasePlanRequest != null) + 'activateBasePlanRequest': activateBasePlanRequest!, + if (deactivateBasePlanRequest != null) + 'deactivateBasePlanRequest': deactivateBasePlanRequest!, + }; +} + +/// Request message for UpdateSubscriptionOffer. +class UpdateSubscriptionOfferRequest { + /// If set to true, and the subscription offer with the given package_name, + /// product_id, base_plan_id and offer_id doesn't exist, an offer will be + /// created. + /// + /// If a new offer is created, update_mask is ignored. + /// + /// Optional. + core.bool? allowMissing; + + /// The latency tolerance for the propagation of this product update. + /// + /// Defaults to latency-sensitive. + /// + /// Optional. + /// Possible string values are: + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED" : Defaults to + /// PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE. + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE" : The update will + /// propagate to clients within several minutes on average and up to a few + /// hours in rare cases. Throughput is limited to 7,200 updates per app per + /// hour. + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" : The update will + /// propagate to clients within 24 hours. Supports high throughput of up to + /// 720,000 updates per app per hour using batch modification methods. + core.String? latencyTolerance; + + /// The version of the available regions being used for the + /// subscription_offer. + /// + /// Required. + RegionsVersion? regionsVersion; + + /// The subscription offer to update. + /// + /// Required. + SubscriptionOffer? subscriptionOffer; + + /// The list of fields to be updated. + /// + /// Required. + core.String? updateMask; + + UpdateSubscriptionOfferRequest({ + this.allowMissing, + this.latencyTolerance, + this.regionsVersion, + this.subscriptionOffer, + this.updateMask, + }); + + UpdateSubscriptionOfferRequest.fromJson(core.Map json_) + : this( + allowMissing: json_.containsKey('allowMissing') + ? json_['allowMissing'] as core.bool + : null, + latencyTolerance: json_.containsKey('latencyTolerance') + ? json_['latencyTolerance'] as core.String + : null, + regionsVersion: json_.containsKey('regionsVersion') + ? RegionsVersion.fromJson(json_['regionsVersion'] + as core.Map) + : null, + subscriptionOffer: json_.containsKey('subscriptionOffer') + ? SubscriptionOffer.fromJson(json_['subscriptionOffer'] + as core.Map) + : null, + updateMask: json_.containsKey('updateMask') + ? json_['updateMask'] as core.String + : null, + ); + + core.Map toJson() => { + if (allowMissing != null) 'allowMissing': allowMissing!, + if (latencyTolerance != null) 'latencyTolerance': latencyTolerance!, + if (regionsVersion != null) 'regionsVersion': regionsVersion!, + if (subscriptionOffer != null) 'subscriptionOffer': subscriptionOffer!, + if (updateMask != null) 'updateMask': updateMask!, + }; +} + +/// Request message to update the state of a subscription offer. +class UpdateSubscriptionOfferStateRequest { + /// Activates an offer. + /// + /// Once activated, the offer will be available to new subscribers. + ActivateSubscriptionOfferRequest? activateSubscriptionOfferRequest; + + /// Deactivates an offer. + /// + /// Once deactivated, the offer will become unavailable to new subscribers, + /// but existing subscribers will maintain their subscription + DeactivateSubscriptionOfferRequest? deactivateSubscriptionOfferRequest; + + UpdateSubscriptionOfferStateRequest({ + this.activateSubscriptionOfferRequest, + this.deactivateSubscriptionOfferRequest, + }); + + UpdateSubscriptionOfferStateRequest.fromJson(core.Map json_) + : this( + activateSubscriptionOfferRequest: + json_.containsKey('activateSubscriptionOfferRequest') + ? ActivateSubscriptionOfferRequest.fromJson( + json_['activateSubscriptionOfferRequest'] + as core.Map) + : null, + deactivateSubscriptionOfferRequest: + json_.containsKey('deactivateSubscriptionOfferRequest') + ? DeactivateSubscriptionOfferRequest.fromJson( + json_['deactivateSubscriptionOfferRequest'] + as core.Map) + : null, + ); + + core.Map toJson() => { + if (activateSubscriptionOfferRequest != null) + 'activateSubscriptionOfferRequest': activateSubscriptionOfferRequest!, + if (deactivateSubscriptionOfferRequest != null) + 'deactivateSubscriptionOfferRequest': + deactivateSubscriptionOfferRequest!, + }; +} + +/// Request message for UpdateSubscription. +class UpdateSubscriptionRequest { + /// If set to true, and the subscription with the given package_name and + /// product_id doesn't exist, the subscription will be created. + /// + /// If a new subscription is created, update_mask is ignored. + /// + /// Optional. + core.bool? allowMissing; + + /// The latency tolerance for the propagation of this product update. + /// + /// Defaults to latency-sensitive. + /// + /// Optional. + /// Possible string values are: + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_UNSPECIFIED" : Defaults to + /// PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE. + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_SENSITIVE" : The update will + /// propagate to clients within several minutes on average and up to a few + /// hours in rare cases. Throughput is limited to 7,200 updates per app per + /// hour. + /// - "PRODUCT_UPDATE_LATENCY_TOLERANCE_LATENCY_TOLERANT" : The update will + /// propagate to clients within 24 hours. Supports high throughput of up to + /// 720,000 updates per app per hour using batch modification methods. + core.String? latencyTolerance; + + /// The version of the available regions being used for the subscription. + /// + /// Required. + RegionsVersion? regionsVersion; + + /// The subscription to update. + /// + /// Required. + Subscription? subscription; + + /// The list of fields to be updated. + /// + /// Required. + core.String? updateMask; + + UpdateSubscriptionRequest({ + this.allowMissing, + this.latencyTolerance, + this.regionsVersion, + this.subscription, + this.updateMask, + }); + + UpdateSubscriptionRequest.fromJson(core.Map json_) + : this( + allowMissing: json_.containsKey('allowMissing') + ? json_['allowMissing'] as core.bool + : null, + latencyTolerance: json_.containsKey('latencyTolerance') + ? json_['latencyTolerance'] as core.String + : null, + regionsVersion: json_.containsKey('regionsVersion') + ? RegionsVersion.fromJson(json_['regionsVersion'] + as core.Map) + : null, + subscription: json_.containsKey('subscription') + ? Subscription.fromJson( + json_['subscription'] as core.Map) + : null, + updateMask: json_.containsKey('updateMask') + ? json_['updateMask'] as core.String + : null, + ); + + core.Map toJson() => { + if (allowMissing != null) 'allowMissing': allowMissing!, + if (latencyTolerance != null) 'latencyTolerance': latencyTolerance!, + if (regionsVersion != null) 'regionsVersion': regionsVersion!, + if (subscription != null) 'subscription': subscription!, + if (updateMask != null) 'updateMask': updateMask!, + }; +} + /// Represents a targeting rule of the form: User currently has {scope} \[with /// billing period {billing_period}\]. class UpgradeTargetingRule { diff --git a/generated/googleapis/lib/apigateway/v1.dart b/generated/googleapis/lib/apigateway/v1.dart index 71e327e40..c78d2b243 100644 --- a/generated/googleapis/lib/apigateway/v1.dart +++ b/generated/googleapis/lib/apigateway/v1.dart @@ -2006,14 +2006,31 @@ class ApigatewayBinding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -2022,12 +2039,19 @@ class ApigatewayBinding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; ApigatewayBinding({ diff --git a/generated/googleapis/lib/apigee/v1.dart b/generated/googleapis/lib/apigee/v1.dart index 72b819a7b..14aeae999 100644 --- a/generated/googleapis/lib/apigee/v1.dart +++ b/generated/googleapis/lib/apigee/v1.dart @@ -301,9 +301,14 @@ class OrganizationsResource { /// Delete an Apigee organization. /// /// For organizations with BillingType EVALUATION, an immediate deletion is - /// performed. For paid organizations, a soft-deletion is performed. The - /// organization can be restored within the soft-deletion period which can be - /// controlled using the retention field in the request. + /// performed. For paid organizations (Subscription or Pay-as-you-go), a + /// soft-deletion is performed. The organization can be restored within the + /// soft-deletion period, which is specified using the `retention` field in + /// the request or by filing a support ticket with Apigee. During the data + /// retention period specified in the request, the Apigee organization cannot + /// be recreated in the same Google Cloud project. **IMPORTANT: The default + /// data retention setting for this operation is 7 days. To permanently delete + /// the organization in 24 hours, set the retention parameter to `MINIMUM`.** /// /// Request parameters: /// @@ -316,7 +321,9 @@ class OrganizationsResource { /// how long Organization data will be retained after the initial delete /// operation completes. During this period, the Organization may be restored /// to its last known state. After this period, the Organization will no - /// longer be able to be restored. + /// longer be able to be restored. **Note: During the data retention period + /// specified using this field, the Apigee organization cannot be recreated in + /// the same GCP project.** /// Possible string values are: /// - "DELETION_RETENTION_UNSPECIFIED" : Default data retention setting of /// seven days will be applied. @@ -520,6 +527,43 @@ class OrganizationsResource { response_ as core.Map); } + /// GetSecuritySettings gets the security settings for API Security. + /// + /// Request parameters: + /// + /// [name] - Required. The name of the SecuritySettings to retrieve. This will + /// always be: 'organizations/{org}/securitySettings'. + /// Value must have pattern `^organizations/\[^/\]+/securitySettings$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleCloudApigeeV1SecuritySettings]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future getSecuritySettings( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return GoogleCloudApigeeV1SecuritySettings.fromJson( + response_ as core.Map); + } + /// Lists the service accounts with the permissions required to allow the /// Synchronizer to download environment data from the control plane. /// @@ -751,6 +795,54 @@ class OrganizationsResource { return GoogleCloudApigeeV1Organization.fromJson( response_ as core.Map); } + + /// UpdateSecuritySettings updates the current security settings for API + /// Security. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [name] - Identifier. Full resource name is always + /// `organizations/{org}/securitySettings`. + /// Value must have pattern `^organizations/\[^/\]+/securitySettings$`. + /// + /// [updateMask] - Optional. The list of fields to update. Allowed fields are: + /// - ml_retraining_feedback_enabled + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleCloudApigeeV1SecuritySettings]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future updateSecuritySettings( + GoogleCloudApigeeV1SecuritySettings request, + core.String name, { + core.String? updateMask, + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if (updateMask != null) 'updateMask': [updateMask], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'PATCH', + body: body_, + queryParams: queryParams_, + ); + return GoogleCloudApigeeV1SecuritySettings.fromJson( + response_ as core.Map); + } } class OrganizationsAnalyticsResource { @@ -2386,6 +2478,54 @@ class OrganizationsApisKeyvaluemapsEntriesResource { return GoogleCloudApigeeV1ListKeyValueEntriesResponse.fromJson( response_ as core.Map); } + + /// Update key value entry scoped to an organization, environment, or API + /// proxy for an existing key. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [name] - Required. Scope as indicated by the URI in which to create the + /// key value map entry. Use **one** of the following structures in your + /// request: * + /// `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}`. * + /// `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}` + /// * `organizations/{organization}/keyvaluemaps/{keyvaluemap}`. + /// Value must have pattern + /// `^organizations/\[^/\]+/apis/\[^/\]+/keyvaluemaps/\[^/\]+/entries/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleCloudApigeeV1KeyValueEntry]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future update( + GoogleCloudApigeeV1KeyValueEntry request, + core.String name, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'PUT', + body: body_, + queryParams: queryParams_, + ); + return GoogleCloudApigeeV1KeyValueEntry.fromJson( + response_ as core.Map); + } } class OrganizationsApisRevisionsResource { @@ -4932,7 +5072,8 @@ class OrganizationsDevelopersAppsKeysResource { /// Request parameters: /// /// [parent] - Parent of the developer app key. Use the following structure in - /// your request: `organizations/{org}/developers/{developer_email}/apps` + /// your request: + /// 'organizations/{org}/developers/{developerEmail}/apps/{appName}' /// Value must have pattern /// `^organizations/\[^/\]+/developers/\[^/\]+/apps/\[^/\]+$`. /// @@ -5291,7 +5432,8 @@ class OrganizationsDevelopersAppsKeysCreateResource { /// Request parameters: /// /// [parent] - Parent of the developer app key. Use the following structure in - /// your request: `organizations/{org}/developers/{developer_email}/apps` + /// your request: + /// 'organizations/{org}/developers/{developerEmail}/apps/{appName}' /// Value must have pattern /// `^organizations/\[^/\]+/developers/\[^/\]+/apps/\[^/\]+$`. /// @@ -5992,7 +6134,7 @@ class OrganizationsEnvgroupsResource { /// environment group in the following format: `organizations/{org}`. /// Value must have pattern `^organizations/\[^/\]+$`. /// - /// [name] - ID of the environment group. Overrides any ID in the + /// [name] - Optional. ID of the environment group. Overrides any ID in the /// environment_group resource. /// /// [$fields] - Selector specifying which fields to include in a partial @@ -6215,7 +6357,7 @@ class OrganizationsEnvgroupsResource { /// \`organizations/{org}/envgroups/{envgroup}. /// Value must have pattern `^organizations/\[^/\]+/envgroups/\[^/\]+$`. /// - /// [updateMask] - List of fields to be updated. + /// [updateMask] - Optional. List of fields to be updated. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -9565,6 +9707,54 @@ class OrganizationsEnvironmentsKeyvaluemapsEntriesResource { return GoogleCloudApigeeV1ListKeyValueEntriesResponse.fromJson( response_ as core.Map); } + + /// Update key value entry scoped to an organization, environment, or API + /// proxy for an existing key. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [name] - Required. Scope as indicated by the URI in which to create the + /// key value map entry. Use **one** of the following structures in your + /// request: * + /// `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}`. * + /// `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}` + /// * `organizations/{organization}/keyvaluemaps/{keyvaluemap}`. + /// Value must have pattern + /// `^organizations/\[^/\]+/environments/\[^/\]+/keyvaluemaps/\[^/\]+/entries/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleCloudApigeeV1KeyValueEntry]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future update( + GoogleCloudApigeeV1KeyValueEntry request, + core.String name, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'PUT', + body: body_, + queryParams: queryParams_, + ); + return GoogleCloudApigeeV1KeyValueEntry.fromJson( + response_ as core.Map); + } } class OrganizationsEnvironmentsOptimizedStatsResource { @@ -10688,6 +10878,54 @@ class OrganizationsEnvironmentsSecurityIncidentsResource { commons.ApiRequester client) : _requester = client; + /// BatchUpdateSecurityIncident updates multiple existing security incidents. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [parent] - Optional. The parent resource shared by all security incidents + /// being updated. If this is set, the parent field in the + /// UpdateSecurityIncidentRequest messages must either be empty or match this + /// field. + /// Value must have pattern `^organizations/\[^/\]+/environments/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a + /// [GoogleCloudApigeeV1BatchUpdateSecurityIncidentsResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future + batchUpdate( + GoogleCloudApigeeV1BatchUpdateSecurityIncidentsRequest request, + core.String parent, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + + core.Uri.encodeFull('$parent') + + '/securityIncidents:batchUpdate'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return GoogleCloudApigeeV1BatchUpdateSecurityIncidentsResponse.fromJson( + response_ as core.Map); + } + /// GetSecurityIncident gets the specified security incident. /// /// Returns NOT_FOUND if security incident is not present for the specified @@ -10785,6 +11023,57 @@ class OrganizationsEnvironmentsSecurityIncidentsResource { return GoogleCloudApigeeV1ListSecurityIncidentsResponse.fromJson( response_ as core.Map); } + + /// UpdateSecurityIncidents updates an existing security incident. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [name] - Immutable. Name of the security incident resource. Format: + /// organizations/{org}/environments/{environment}/securityIncidents/{incident} + /// Example: + /// organizations/apigee-org/environments/dev/securityIncidents/1234-5678-9101-1111 + /// Value must have pattern + /// `^organizations/\[^/\]+/environments/\[^/\]+/securityIncidents/\[^/\]+$`. + /// + /// [updateMask] - Required. The list of fields to update. Allowed fields are: + /// LINT.IfChange(allowed_update_fields_comment) - observability + /// LINT.ThenChange() + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleCloudApigeeV1SecurityIncident]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future patch( + GoogleCloudApigeeV1SecurityIncident request, + core.String name, { + core.String? updateMask, + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if (updateMask != null) 'updateMask': [updateMask], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'PATCH', + body: body_, + queryParams: queryParams_, + ); + return GoogleCloudApigeeV1SecurityIncident.fromJson( + response_ as core.Map); + } } class OrganizationsEnvironmentsSecurityReportsResource { @@ -13607,6 +13896,54 @@ class OrganizationsKeyvaluemapsEntriesResource { return GoogleCloudApigeeV1ListKeyValueEntriesResponse.fromJson( response_ as core.Map); } + + /// Update key value entry scoped to an organization, environment, or API + /// proxy for an existing key. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [name] - Required. Scope as indicated by the URI in which to create the + /// key value map entry. Use **one** of the following structures in your + /// request: * + /// `organizations/{organization}/apis/{api}/keyvaluemaps/{keyvaluemap}`. * + /// `organizations/{organization}/environments/{environment}/keyvaluemaps/{keyvaluemap}` + /// * `organizations/{organization}/keyvaluemaps/{keyvaluemap}`. + /// Value must have pattern + /// `^organizations/\[^/\]+/keyvaluemaps/\[^/\]+/entries/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleCloudApigeeV1KeyValueEntry]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future update( + GoogleCloudApigeeV1KeyValueEntry request, + core.String name, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'PUT', + body: body_, + queryParams: queryParams_, + ); + return GoogleCloudApigeeV1KeyValueEntry.fromJson( + response_ as core.Map); + } } class OrganizationsOperationsResource { @@ -17377,6 +17714,63 @@ class GoogleCloudApigeeV1Attributes { }; } +/// Request for BatchUpdateSecurityIncident. +class GoogleCloudApigeeV1BatchUpdateSecurityIncidentsRequest { + /// The request message specifying the resources to update. + /// + /// A maximum of 1000 can be modified in a batch. + /// + /// Optional. Required. + core.List? requests; + + GoogleCloudApigeeV1BatchUpdateSecurityIncidentsRequest({ + this.requests, + }); + + GoogleCloudApigeeV1BatchUpdateSecurityIncidentsRequest.fromJson( + core.Map json_) + : this( + requests: json_.containsKey('requests') + ? (json_['requests'] as core.List) + .map((value) => + GoogleCloudApigeeV1UpdateSecurityIncidentRequest.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (requests != null) 'requests': requests!, + }; +} + +/// Response for BatchUpdateSecurityIncident. +class GoogleCloudApigeeV1BatchUpdateSecurityIncidentsResponse { + /// Updated security incidents + /// + /// Output only. + core.List? securityIncidents; + + GoogleCloudApigeeV1BatchUpdateSecurityIncidentsResponse({ + this.securityIncidents, + }); + + GoogleCloudApigeeV1BatchUpdateSecurityIncidentsResponse.fromJson( + core.Map json_) + : this( + securityIncidents: json_.containsKey('securityIncidents') + ? (json_['securityIncidents'] as core.List) + .map((value) => GoogleCloudApigeeV1SecurityIncident.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (securityIncidents != null) 'securityIncidents': securityIncidents!, + }; +} + /// CanaryEvaluation represents the canary analysis between two versions of the /// runtime that is serving requests. class GoogleCloudApigeeV1CanaryEvaluation { @@ -20225,11 +20619,16 @@ class GoogleCloudApigeeV1Environment { /// Optional. core.String? displayName; - /// Url of the forward proxy to be applied to the runtime instances in this + /// URI of the forward proxy to be applied to the runtime instances in this /// environment. /// - /// Must be in the format of {scheme}://{hostname}:{port}. Note that scheme - /// must be one of "http" or "https", and port must be supplied. + /// Must be in the format of {scheme}://{hostname}:{port}. Note that the + /// scheme must be one of "http" or "https", and the port must be supplied. To + /// remove a forward proxy setting, update the field to an empty value. Note: + /// At this time, PUT operations to add forwardProxyUri to an existing + /// environment fail if the environment has nodeConfig set up. To successfully + /// add the forwardProxyUri setting in this case, include the NodeConfig + /// details with the request. /// /// Optional. core.String? forwardProxyUri; @@ -20275,10 +20674,11 @@ class GoogleCloudApigeeV1Environment { /// Optional. /// Possible string values are: /// - "ENVIRONMENT_TYPE_UNSPECIFIED" : Environment type not specified. - /// - "BASE" : Base environment has limited capacity and capabilities and are - /// usually used when you are getting started with Apigee or while - /// experimenting. Refer to Apigee's public documentation for more details. - /// - "INTERMEDIATE" : This is the default type and it supports API management + /// - "BASE" : This is the default type. Base environment has limited capacity + /// and capabilities and are usually used when you are getting started with + /// Apigee or while experimenting. Refer to Apigee's public documentation for + /// more details. + /// - "INTERMEDIATE" : Intermediate environment supports API management /// features and higher capacity than Base environment. Refer to Apigee's /// public documentation for more details. /// - "COMPREHENSIVE" : Comprehensive environment supports advanced @@ -26891,20 +27291,58 @@ typedef GoogleCloudApigeeV1SecurityActionAllow = $Empty; /// /// A valid SecurityAction must contain at least one condition. Within a /// condition, each element is ORed. Across conditions elements are ANDed. For -/// example if a SecurityAction has the following: api_keys: \["key1", "key2"\] -/// and developers: \["dev1", "dev2"\] then this is interpreted as: enforce the -/// action if the incoming request has ((api_key = "key1" OR api_key="key") AND -/// (developer="dev1" OR developer="dev2")) +/// example if a SecurityAction has the following: ip_address_ranges: \["ip1", +/// "ip2"\] and bot_reasons: \["Flooder", "Robot Abuser"\] then this is +/// interpreted as: enforce the action if the incoming request has +/// ((ip_address_ranges = "ip1" OR ip_address_ranges = "ip2") AND +/// (bot_reasons="Flooder" OR bot_reasons="Robot Abuser")). Conditions other +/// than ip_address_ranges and bot_reasons cannot be ANDed. class GoogleCloudApigeeV1SecurityActionConditionConfig { + /// A list of access_tokens. + /// + /// Limit 1000 per action. + /// + /// Optional. + core.List? accessTokens; + + /// A list of API keys. + /// + /// Limit 1000 per action. + /// + /// Optional. + core.List? apiKeys; + + /// A list of API Products. + /// + /// Limit 1000 per action. + /// + /// Optional. + core.List? apiProducts; + /// A list of Bot Reasons. /// /// Current options: Flooder, Brute Guessor, Static Content Scraper, OAuth - /// Abuser, Robot Abuser, TorListRule, Advanced Anomaly Detection and Advanced - /// API Scraper. + /// Abuser, Robot Abuser, TorListRule, Advanced Anomaly Detection, Advanced + /// API Scraper, Search Engine Crawlers, Public Clouds, Public Cloud AWS, + /// Public Cloud Azure, and Public Cloud Google. /// /// Optional. core.List? botReasons; + /// A list of developer apps. + /// + /// Limit 1000 per action. + /// + /// Optional. + core.List? developerApps; + + /// A list of developers. + /// + /// Limit 1000 per action. + /// + /// Optional. + core.List? developers; + /// A list of IP addresses. /// /// This could be either IPv4 or IPv6. Limited to 100 per action. @@ -26912,28 +27350,77 @@ class GoogleCloudApigeeV1SecurityActionConditionConfig { /// Optional. core.List? ipAddressRanges; + /// A list of user agents to deny. + /// + /// We look for exact matches. Limit 50 per action. + /// + /// Optional. + core.List? userAgents; + GoogleCloudApigeeV1SecurityActionConditionConfig({ + this.accessTokens, + this.apiKeys, + this.apiProducts, this.botReasons, + this.developerApps, + this.developers, this.ipAddressRanges, + this.userAgents, }); GoogleCloudApigeeV1SecurityActionConditionConfig.fromJson(core.Map json_) : this( + accessTokens: json_.containsKey('accessTokens') + ? (json_['accessTokens'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + apiKeys: json_.containsKey('apiKeys') + ? (json_['apiKeys'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + apiProducts: json_.containsKey('apiProducts') + ? (json_['apiProducts'] as core.List) + .map((value) => value as core.String) + .toList() + : null, botReasons: json_.containsKey('botReasons') ? (json_['botReasons'] as core.List) .map((value) => value as core.String) .toList() : null, + developerApps: json_.containsKey('developerApps') + ? (json_['developerApps'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + developers: json_.containsKey('developers') + ? (json_['developers'] as core.List) + .map((value) => value as core.String) + .toList() + : null, ipAddressRanges: json_.containsKey('ipAddressRanges') ? (json_['ipAddressRanges'] as core.List) .map((value) => value as core.String) .toList() : null, + userAgents: json_.containsKey('userAgents') + ? (json_['userAgents'] as core.List) + .map((value) => value as core.String) + .toList() + : null, ); core.Map toJson() => { + if (accessTokens != null) 'accessTokens': accessTokens!, + if (apiKeys != null) 'apiKeys': apiKeys!, + if (apiProducts != null) 'apiProducts': apiProducts!, if (botReasons != null) 'botReasons': botReasons!, + if (developerApps != null) 'developerApps': developerApps!, + if (developers != null) 'developers': developers!, if (ipAddressRanges != null) 'ipAddressRanges': ipAddressRanges!, + if (userAgents != null) 'userAgents': userAgents!, }; } @@ -27088,6 +27575,11 @@ class GoogleCloudApigeeV1SecurityIncident { /// Output only. core.String? lastDetectedTime; + /// The time when the incident observability was last changed. + /// + /// Output only. + core.String? lastObservabilityChangeTime; + /// Name of the security incident resource. /// /// Format: @@ -27098,6 +27590,17 @@ class GoogleCloudApigeeV1SecurityIncident { /// Immutable. core.String? name; + /// Indicates if the user archived this incident. + /// + /// Optional. + /// Possible string values are: + /// - "OBSERVABILITY_UNSPECIFIED" : The incident observability is unspecified. + /// - "ACTIVE" : The incident is currently active. Can change to this status + /// from archived. + /// - "ARCHIVED" : The incident is currently archived and was archived by the + /// customer. + core.String? observability; + /// Risk level of the incident. /// /// Output only. @@ -27116,7 +27619,9 @@ class GoogleCloudApigeeV1SecurityIncident { this.displayName, this.firstDetectedTime, this.lastDetectedTime, + this.lastObservabilityChangeTime, this.name, + this.observability, this.riskLevel, this.trafficCount, }); @@ -27137,7 +27642,14 @@ class GoogleCloudApigeeV1SecurityIncident { lastDetectedTime: json_.containsKey('lastDetectedTime') ? json_['lastDetectedTime'] as core.String : null, + lastObservabilityChangeTime: + json_.containsKey('lastObservabilityChangeTime') + ? json_['lastObservabilityChangeTime'] as core.String + : null, name: json_.containsKey('name') ? json_['name'] as core.String : null, + observability: json_.containsKey('observability') + ? json_['observability'] as core.String + : null, riskLevel: json_.containsKey('riskLevel') ? json_['riskLevel'] as core.String : null, @@ -27151,7 +27663,10 @@ class GoogleCloudApigeeV1SecurityIncident { if (displayName != null) 'displayName': displayName!, if (firstDetectedTime != null) 'firstDetectedTime': firstDetectedTime!, if (lastDetectedTime != null) 'lastDetectedTime': lastDetectedTime!, + if (lastObservabilityChangeTime != null) + 'lastObservabilityChangeTime': lastObservabilityChangeTime!, if (name != null) 'name': name!, + if (observability != null) 'observability': observability!, if (riskLevel != null) 'riskLevel': riskLevel!, if (trafficCount != null) 'trafficCount': trafficCount!, }; @@ -27162,7 +27677,10 @@ class GoogleCloudApigeeV1SecurityProfile { /// Description of the security profile. core.String? description; - /// Display name of the security profile. + /// DEPRECATED: DO NOT USE Display name of the security profile. + @core.Deprecated( + 'Not supported. Member documentation may have more information.', + ) core.String? displayName; /// List of environments attached to security profile. @@ -27200,12 +27718,15 @@ class GoogleCloudApigeeV1SecurityProfile { /// Output only. core.String? revisionId; - /// The time when revision was published. + /// DEPRECATED: DO NOT USE The time when revision was published. /// /// Once published, the security profile revision cannot be updated further /// and can be attached to environments. /// /// Output only. + @core.Deprecated( + 'Not supported. Member documentation may have more information.', + ) core.String? revisionPublishTime; /// The time when revision was updated. @@ -27345,7 +27866,10 @@ class GoogleCloudApigeeV1SecurityProfileEnvironmentAssociation { /// Immutable. core.String? name; - /// Revision ID of the security profile. + /// DEPRECATED: DO NOT USE Revision ID of the security profile. + @core.Deprecated( + 'Not supported. Member documentation may have more information.', + ) core.String? securityProfileRevisionId; GoogleCloudApigeeV1SecurityProfileEnvironmentAssociation({ @@ -27892,6 +28416,39 @@ class GoogleCloudApigeeV1SecurityReportResultView { }; } +/// SecuritySettings reflects the current state of the SecuritySettings feature. +class GoogleCloudApigeeV1SecuritySettings { + /// If true the user consents to the use of ML models for Abuse detection. + /// + /// Optional. + core.bool? mlRetrainingFeedbackEnabled; + + /// Identifier. + /// + /// Full resource name is always `organizations/{org}/securitySettings`. + core.String? name; + + GoogleCloudApigeeV1SecuritySettings({ + this.mlRetrainingFeedbackEnabled, + this.name, + }); + + GoogleCloudApigeeV1SecuritySettings.fromJson(core.Map json_) + : this( + mlRetrainingFeedbackEnabled: + json_.containsKey('mlRetrainingFeedbackEnabled') + ? json_['mlRetrainingFeedbackEnabled'] as core.bool + : null, + name: json_.containsKey('name') ? json_['name'] as core.String : null, + ); + + core.Map toJson() => { + if (mlRetrainingFeedbackEnabled != null) + 'mlRetrainingFeedbackEnabled': mlRetrainingFeedbackEnabled!, + if (name != null) 'name': name!, + }; +} + class GoogleCloudApigeeV1ServiceIssuersMapping { /// List of trusted issuer email ids. core.List? emailIds; @@ -29154,6 +29711,46 @@ class GoogleCloudApigeeV1UpdateError { }; } +/// Request for UpdateSecurityIncident. +class GoogleCloudApigeeV1UpdateSecurityIncidentRequest { + /// The security incident to update. + /// + /// Must contain all existing populated fields of the current incident. + /// + /// Required. + GoogleCloudApigeeV1SecurityIncident? securityIncident; + + /// The list of fields to update. + /// + /// Allowed fields are: LINT.IfChange(allowed_update_fields_comment) - + /// observability LINT.ThenChange() + /// + /// Required. + core.String? updateMask; + + GoogleCloudApigeeV1UpdateSecurityIncidentRequest({ + this.securityIncident, + this.updateMask, + }); + + GoogleCloudApigeeV1UpdateSecurityIncidentRequest.fromJson(core.Map json_) + : this( + securityIncident: json_.containsKey('securityIncident') + ? GoogleCloudApigeeV1SecurityIncident.fromJson( + json_['securityIncident'] + as core.Map) + : null, + updateMask: json_.containsKey('updateMask') + ? json_['updateMask'] as core.String + : null, + ); + + core.Map toJson() => { + if (securityIncident != null) 'securityIncident': securityIncident!, + if (updateMask != null) 'updateMask': updateMask!, + }; +} + /// Specifies the audit configuration for a service. /// /// The configuration determines which permission types are logged, and what @@ -29245,14 +29842,31 @@ class GoogleIamV1Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -29261,12 +29875,19 @@ class GoogleIamV1Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; GoogleIamV1Binding({ diff --git a/generated/googleapis/lib/appengine/v1.dart b/generated/googleapis/lib/appengine/v1.dart index 6aa739287..85fcd978b 100644 --- a/generated/googleapis/lib/appengine/v1.dart +++ b/generated/googleapis/lib/appengine/v1.dart @@ -4799,6 +4799,9 @@ class Runtime { /// Date when Runtime is deprecated. Date? deprecationDate; + /// User-friendly display name, e.g. 'Node.js 12', etc. + core.String? displayName; + /// Date when Runtime is end of support. Date? endOfSupportDate; @@ -4824,16 +4827,21 @@ class Runtime { /// - "END_OF_SUPPORT" : The runtime is end of support. core.String? stage; + /// Supported operating systems for the runtime, e.g., 'ubuntu22', etc. + core.List? supportedOperatingSystems; + /// Warning messages, e.g., a deprecation warning. core.List? warnings; Runtime({ this.decommissionedDate, this.deprecationDate, + this.displayName, this.endOfSupportDate, this.environment, this.name, this.stage, + this.supportedOperatingSystems, this.warnings, }); @@ -4847,6 +4855,9 @@ class Runtime { ? Date.fromJson(json_['deprecationDate'] as core.Map) : null, + displayName: json_.containsKey('displayName') + ? json_['displayName'] as core.String + : null, endOfSupportDate: json_.containsKey('endOfSupportDate') ? Date.fromJson(json_['endOfSupportDate'] as core.Map) @@ -4857,6 +4868,12 @@ class Runtime { name: json_.containsKey('name') ? json_['name'] as core.String : null, stage: json_.containsKey('stage') ? json_['stage'] as core.String : null, + supportedOperatingSystems: + json_.containsKey('supportedOperatingSystems') + ? (json_['supportedOperatingSystems'] as core.List) + .map((value) => value as core.String) + .toList() + : null, warnings: json_.containsKey('warnings') ? (json_['warnings'] as core.List) .map((value) => value as core.String) @@ -4868,10 +4885,13 @@ class Runtime { if (decommissionedDate != null) 'decommissionedDate': decommissionedDate!, if (deprecationDate != null) 'deprecationDate': deprecationDate!, + if (displayName != null) 'displayName': displayName!, if (endOfSupportDate != null) 'endOfSupportDate': endOfSupportDate!, if (environment != null) 'environment': environment!, if (name != null) 'name': name!, if (stage != null) 'stage': stage!, + if (supportedOperatingSystems != null) + 'supportedOperatingSystems': supportedOperatingSystems!, if (warnings != null) 'warnings': warnings!, }; } diff --git a/generated/googleapis/lib/apphub/v1.dart b/generated/googleapis/lib/apphub/v1.dart new file mode 100644 index 000000000..13fea4e26 --- /dev/null +++ b/generated/googleapis/lib/apphub/v1.dart @@ -0,0 +1,3542 @@ +// This is a generated file (see the discoveryapis_generator project). + +// ignore_for_file: camel_case_types +// ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use_from_same_package +// ignore_for_file: lines_longer_than_80_chars +// ignore_for_file: non_constant_identifier_names +// ignore_for_file: prefer_interpolation_to_compose_strings +// ignore_for_file: unnecessary_brace_in_string_interps +// ignore_for_file: unnecessary_lambdas +// ignore_for_file: unnecessary_string_interpolations + +/// App Hub API - v1 +/// +/// For more information, see +/// +/// Create an instance of [AppHubApi] to access these resources: +/// +/// - [ProjectsResource] +/// - [ProjectsLocationsResource] +/// - [ProjectsLocationsApplicationsResource] +/// - [ProjectsLocationsApplicationsServicesResource] +/// - [ProjectsLocationsApplicationsWorkloadsResource] +/// - [ProjectsLocationsDiscoveredServicesResource] +/// - [ProjectsLocationsDiscoveredWorkloadsResource] +/// - [ProjectsLocationsOperationsResource] +/// - [ProjectsLocationsServiceProjectAttachmentsResource] +library; + +import 'dart:async' as async; +import 'dart:convert' as convert; +import 'dart:core' as core; + +import 'package:_discoveryapis_commons/_discoveryapis_commons.dart' as commons; +import 'package:http/http.dart' as http; + +import '../shared.dart'; +import '../src/user_agent.dart'; + +export 'package:_discoveryapis_commons/_discoveryapis_commons.dart' + show ApiRequestError, DetailedApiRequestError; + +class AppHubApi { + /// See, edit, configure, and delete your Google Cloud data and see the email + /// address for your Google Account. + static const cloudPlatformScope = + 'https://www.googleapis.com/auth/cloud-platform'; + + final commons.ApiRequester _requester; + + ProjectsResource get projects => ProjectsResource(_requester); + + AppHubApi(http.Client client, + {core.String rootUrl = 'https://apphub.googleapis.com/', + core.String servicePath = ''}) + : _requester = + commons.ApiRequester(client, rootUrl, servicePath, requestHeaders); +} + +class ProjectsResource { + final commons.ApiRequester _requester; + + ProjectsLocationsResource get locations => + ProjectsLocationsResource(_requester); + + ProjectsResource(commons.ApiRequester client) : _requester = client; +} + +class ProjectsLocationsResource { + final commons.ApiRequester _requester; + + ProjectsLocationsApplicationsResource get applications => + ProjectsLocationsApplicationsResource(_requester); + ProjectsLocationsDiscoveredServicesResource get discoveredServices => + ProjectsLocationsDiscoveredServicesResource(_requester); + ProjectsLocationsDiscoveredWorkloadsResource get discoveredWorkloads => + ProjectsLocationsDiscoveredWorkloadsResource(_requester); + ProjectsLocationsOperationsResource get operations => + ProjectsLocationsOperationsResource(_requester); + ProjectsLocationsServiceProjectAttachmentsResource + get serviceProjectAttachments => + ProjectsLocationsServiceProjectAttachmentsResource(_requester); + + ProjectsLocationsResource(commons.ApiRequester client) : _requester = client; + + /// Detaches a service project from a host project. + /// + /// You can call this API from either a host or service project. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [name] - Required. Value for name. + /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [DetachServiceProjectAttachmentResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future + detachServiceProjectAttachment( + DetachServiceProjectAttachmentRequest request, + core.String name, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + + core.Uri.encodeFull('$name') + + ':detachServiceProjectAttachment'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return DetachServiceProjectAttachmentResponse.fromJson( + response_ as core.Map); + } + + /// Gets information about a location. + /// + /// Request parameters: + /// + /// [name] - Resource name for the location. + /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Location]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return Location.fromJson(response_ as core.Map); + } + + /// Lists information about the supported locations for this service. + /// + /// Request parameters: + /// + /// [name] - The resource that owns the locations collection, if applicable. + /// Value must have pattern `^projects/\[^/\]+$`. + /// + /// [filter] - A filter to narrow down results to a preferred subset. The + /// filtering language accepts strings like `"displayName=tokyo"`, and is + /// documented in more detail in \[AIP-160\](https://google.aip.dev/160). + /// + /// [pageSize] - The maximum number of results to return. If not set, the + /// service selects a default. + /// + /// [pageToken] - A page token received from the `next_page_token` field in + /// the response. Send that page token to receive the subsequent page. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [ListLocationsResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future list( + core.String name, { + core.String? filter, + core.int? pageSize, + core.String? pageToken, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (filter != null) 'filter': [filter], + if (pageSize != null) 'pageSize': ['${pageSize}'], + if (pageToken != null) 'pageToken': [pageToken], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name') + '/locations'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return ListLocationsResponse.fromJson( + response_ as core.Map); + } + + /// Looks up a service project attachment. + /// + /// You can call this API from either a host or service project. + /// + /// Request parameters: + /// + /// [name] - Required. Value for name. + /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [LookupServiceProjectAttachmentResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future + lookupServiceProjectAttachment( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + + core.Uri.encodeFull('$name') + + ':lookupServiceProjectAttachment'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return LookupServiceProjectAttachmentResponse.fromJson( + response_ as core.Map); + } +} + +class ProjectsLocationsApplicationsResource { + final commons.ApiRequester _requester; + + ProjectsLocationsApplicationsServicesResource get services => + ProjectsLocationsApplicationsServicesResource(_requester); + ProjectsLocationsApplicationsWorkloadsResource get workloads => + ProjectsLocationsApplicationsWorkloadsResource(_requester); + + ProjectsLocationsApplicationsResource(commons.ApiRequester client) + : _requester = client; + + /// Creates an Application in a host project and location. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [parent] - Required. Value for parent. + /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. + /// + /// [applicationId] - Required. The Application identifier. Must contain only + /// lowercase letters, numbers or hyphens, with the first character a letter, + /// the last a letter or a number, and a 63 character maximum. + /// + /// [requestId] - Optional. An optional request ID to identify requests. + /// Specify a unique request ID so that if you must retry your request, the + /// server will know to ignore the request if it has already been completed. + /// The server will guarantee that for at least 60 minutes since the first + /// request. For example, consider a situation where you make an initial + /// request and the request times out. If you make the request again with the + /// same request ID, the server can check if original operation with the same + /// request ID was received, and if so, will ignore the second request. This + /// prevents clients from accidentally creating duplicate commitments. The + /// request ID must be a valid UUID with the exception that zero UUID is not + /// supported (00000000-0000-0000-0000-000000000000). + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future create( + Application request, + core.String parent, { + core.String? applicationId, + core.String? requestId, + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if (applicationId != null) 'applicationId': [applicationId], + if (requestId != null) 'requestId': [requestId], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/applications'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + + /// Deletes an Application in a host project and location. + /// + /// Request parameters: + /// + /// [name] - Required. Value for name. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/applications/\[^/\]+$`. + /// + /// [requestId] - Optional. An optional request ID to identify requests. + /// Specify a unique request ID so that if you must retry your request, the + /// server will know to ignore the request if it has already been completed. + /// The server will guarantee that for at least 60 minutes after the first + /// request. For example, consider a situation where you make an initial + /// request and the request times out. If you make the request again with the + /// same request ID, the server can check if original operation with the same + /// request ID was received, and if so, will ignore the second request. This + /// prevents clients from accidentally creating duplicate commitments. The + /// request ID must be a valid UUID with the exception that zero UUID is not + /// supported (00000000-0000-0000-0000-000000000000). + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future delete( + core.String name, { + core.String? requestId, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'DELETE', + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + + /// Gets an Application in a host project and location. + /// + /// Request parameters: + /// + /// [name] - Required. Value for name. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/applications/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Application]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return Application.fromJson( + response_ as core.Map); + } + + /// Gets the access control policy for a resource. + /// + /// Returns an empty policy if the resource exists and does not have a policy + /// set. + /// + /// Request parameters: + /// + /// [resource] - REQUIRED: The resource for which the policy is being + /// requested. See + /// [Resource names](https://cloud.google.com/apis/design/resource_names) for + /// the appropriate value for this field. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/applications/\[^/\]+$`. + /// + /// [options_requestedPolicyVersion] - Optional. The maximum policy version + /// that will be used to format the policy. Valid values are 0, 1, and 3. + /// Requests specifying an invalid value will be rejected. Requests for + /// policies with any conditional role bindings must specify version 3. + /// Policies with no conditional role bindings may specify any valid value or + /// leave the field unset. The policy in the response might use the policy + /// version that you specified, or it might use a lower policy version. For + /// example, if you specify version 3, but the policy has no conditional role + /// bindings, the response uses version 1. To learn which resources support + /// conditions in their IAM policies, see the + /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Policy]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future getIamPolicy( + core.String resource, { + core.int? options_requestedPolicyVersion, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (options_requestedPolicyVersion != null) + 'options.requestedPolicyVersion': ['${options_requestedPolicyVersion}'], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$resource') + ':getIamPolicy'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return Policy.fromJson(response_ as core.Map); + } + + /// Lists Applications in a host project and location. + /// + /// Request parameters: + /// + /// [parent] - Required. Value for parent. + /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. + /// + /// [filter] - Optional. Filtering results + /// + /// [orderBy] - Optional. Hint for how to order the results + /// + /// [pageSize] - Optional. Requested page size. Server may return fewer items + /// than requested. If unspecified, server will pick an appropriate default. + /// + /// [pageToken] - Optional. A token identifying a page of results the server + /// should return. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [ListApplicationsResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future list( + core.String parent, { + core.String? filter, + core.String? orderBy, + core.int? pageSize, + core.String? pageToken, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (filter != null) 'filter': [filter], + if (orderBy != null) 'orderBy': [orderBy], + if (pageSize != null) 'pageSize': ['${pageSize}'], + if (pageToken != null) 'pageToken': [pageToken], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/applications'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return ListApplicationsResponse.fromJson( + response_ as core.Map); + } + + /// Updates an Application in a host project and location. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [name] - Identifier. The resource name of an Application. Format: + /// "projects/{host-project-id}/locations/{location}/applications/{application-id}" + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/applications/\[^/\]+$`. + /// + /// [requestId] - Optional. An optional request ID to identify requests. + /// Specify a unique request ID so that if you must retry your request, the + /// server will know to ignore the request if it has already been completed. + /// The server will guarantee that for at least 60 minutes since the first + /// request. For example, consider a situation where you make an initial + /// request and the request times out. If you make the request again with the + /// same request ID, the server can check if original operation with the same + /// request ID was received, and if so, will ignore the second request. This + /// prevents clients from accidentally creating duplicate commitments. The + /// request ID must be a valid UUID with the exception that zero UUID is not + /// supported (00000000-0000-0000-0000-000000000000). + /// + /// [updateMask] - Required. Field mask is used to specify the fields to be + /// overwritten in the Application resource by the update. The fields + /// specified in the update_mask are relative to the resource, not the full + /// request. The API changes the values of the fields as specified in the + /// update_mask. The API ignores the values of all fields not covered by the + /// update_mask. You can also unset a field by not specifying it in the + /// updated message, but adding the field to the mask. This clears whatever + /// value the field previously had. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future patch( + Application request, + core.String name, { + core.String? requestId, + core.String? updateMask, + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], + if (updateMask != null) 'updateMask': [updateMask], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'PATCH', + body: body_, + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + + /// Sets the access control policy on the specified resource. + /// + /// Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, + /// and `PERMISSION_DENIED` errors. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [resource] - REQUIRED: The resource for which the policy is being + /// specified. See + /// [Resource names](https://cloud.google.com/apis/design/resource_names) for + /// the appropriate value for this field. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/applications/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Policy]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future setIamPolicy( + SetIamPolicyRequest request, + core.String resource, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$resource') + ':setIamPolicy'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Policy.fromJson(response_ as core.Map); + } + + /// Returns permissions that a caller has on the specified resource. + /// + /// If the resource does not exist, this will return an empty set of + /// permissions, not a `NOT_FOUND` error. Note: This operation is designed to + /// be used for building permission-aware UIs and command-line tools, not for + /// authorization checking. This operation may "fail open" without warning. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [resource] - REQUIRED: The resource for which the policy detail is being + /// requested. See + /// [Resource names](https://cloud.google.com/apis/design/resource_names) for + /// the appropriate value for this field. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/applications/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [TestIamPermissionsResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future testIamPermissions( + TestIamPermissionsRequest request, + core.String resource, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = + 'v1/' + core.Uri.encodeFull('$resource') + ':testIamPermissions'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return TestIamPermissionsResponse.fromJson( + response_ as core.Map); + } +} + +class ProjectsLocationsApplicationsServicesResource { + final commons.ApiRequester _requester; + + ProjectsLocationsApplicationsServicesResource(commons.ApiRequester client) + : _requester = client; + + /// Creates a Service in an Application. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [parent] - Required. Value for parent. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/applications/\[^/\]+$`. + /// + /// [requestId] - Optional. An optional request ID to identify requests. + /// Specify a unique request ID so that if you must retry your request, the + /// server will know to ignore the request if it has already been completed. + /// The server will guarantee that for at least 60 minutes since the first + /// request. For example, consider a situation where you make an initial + /// request and the request times out. If you make the request again with the + /// same request ID, the server can check if original operation with the same + /// request ID was received, and if so, will ignore the second request. This + /// prevents clients from accidentally creating duplicate commitments. The + /// request ID must be a valid UUID with the exception that zero UUID is not + /// supported (00000000-0000-0000-0000-000000000000). + /// + /// [serviceId] - Required. The Service identifier. Must contain only + /// lowercase letters, numbers or hyphens, with the first character a letter, + /// the last a letter or a number, and a 63 character maximum. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future create( + Service request, + core.String parent, { + core.String? requestId, + core.String? serviceId, + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], + if (serviceId != null) 'serviceId': [serviceId], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/services'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + + /// Deletes a Service in an Application. + /// + /// Request parameters: + /// + /// [name] - Required. Value for name. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/applications/\[^/\]+/services/\[^/\]+$`. + /// + /// [requestId] - Optional. An optional request ID to identify requests. + /// Specify a unique request ID so that if you must retry your request, the + /// server will know to ignore the request if it has already been completed. + /// The server will guarantee that for at least 60 minutes after the first + /// request. For example, consider a situation where you make an initial + /// request and the request times out. If you make the request again with the + /// same request ID, the server can check if original operation with the same + /// request ID was received, and if so, will ignore the second request. This + /// prevents clients from accidentally creating duplicate commitments. The + /// request ID must be a valid UUID with the exception that zero UUID is not + /// supported (00000000-0000-0000-0000-000000000000). + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future delete( + core.String name, { + core.String? requestId, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'DELETE', + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + + /// Gets a Service in an Application. + /// + /// Request parameters: + /// + /// [name] - Required. Value for name. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/applications/\[^/\]+/services/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Service]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return Service.fromJson(response_ as core.Map); + } + + /// List Services in an Application. + /// + /// Request parameters: + /// + /// [parent] - Required. Value for parent. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/applications/\[^/\]+$`. + /// + /// [filter] - Optional. Filtering results + /// + /// [orderBy] - Optional. Hint for how to order the results + /// + /// [pageSize] - Optional. Requested page size. Server may return fewer items + /// than requested. If unspecified, server will pick an appropriate default. + /// + /// [pageToken] - Optional. A token identifying a page of results the server + /// should return. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [ListServicesResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future list( + core.String parent, { + core.String? filter, + core.String? orderBy, + core.int? pageSize, + core.String? pageToken, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (filter != null) 'filter': [filter], + if (orderBy != null) 'orderBy': [orderBy], + if (pageSize != null) 'pageSize': ['${pageSize}'], + if (pageToken != null) 'pageToken': [pageToken], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/services'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return ListServicesResponse.fromJson( + response_ as core.Map); + } + + /// Updates a Service in an Application. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [name] - Identifier. The resource name of a Service. Format: + /// "projects/{host-project-id}/locations/{location}/applications/{application-id}/services/{service-id}" + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/applications/\[^/\]+/services/\[^/\]+$`. + /// + /// [requestId] - Optional. An optional request ID to identify requests. + /// Specify a unique request ID so that if you must retry your request, the + /// server will know to ignore the request if it has already been completed. + /// The server will guarantee that for at least 60 minutes since the first + /// request. For example, consider a situation where you make an initial + /// request and the request times out. If you make the request again with the + /// same request ID, the server can check if original operation with the same + /// request ID was received, and if so, will ignore the second request. This + /// prevents clients from accidentally creating duplicate commitments. The + /// request ID must be a valid UUID with the exception that zero UUID is not + /// supported (00000000-0000-0000-0000-000000000000). + /// + /// [updateMask] - Required. Field mask is used to specify the fields to be + /// overwritten in the Service resource by the update. The fields specified in + /// the update_mask are relative to the resource, not the full request. The + /// API changes the values of the fields as specified in the update_mask. The + /// API ignores the values of all fields not covered by the update_mask. You + /// can also unset a field by not specifying it in the updated message, but + /// adding the field to the mask. This clears whatever value the field + /// previously had. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future patch( + Service request, + core.String name, { + core.String? requestId, + core.String? updateMask, + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], + if (updateMask != null) 'updateMask': [updateMask], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'PATCH', + body: body_, + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } +} + +class ProjectsLocationsApplicationsWorkloadsResource { + final commons.ApiRequester _requester; + + ProjectsLocationsApplicationsWorkloadsResource(commons.ApiRequester client) + : _requester = client; + + /// Creates a Workload in an Application. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [parent] - Required. Value for parent. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/applications/\[^/\]+$`. + /// + /// [requestId] - Optional. An optional request ID to identify requests. + /// Specify a unique request ID so that if you must retry your request, the + /// server will know to ignore the request if it has already been completed. + /// The server will guarantee that for at least 60 minutes since the first + /// request. For example, consider a situation where you make an initial + /// request and the request times out. If you make the request again with the + /// same request ID, the server can check if original operation with the same + /// request ID was received, and if so, will ignore the second request. This + /// prevents clients from accidentally creating duplicate commitments. The + /// request ID must be a valid UUID with the exception that zero UUID is not + /// supported (00000000-0000-0000-0000-000000000000). + /// + /// [workloadId] - Required. The Workload identifier. Must contain only + /// lowercase letters, numbers or hyphens, with the first character a letter, + /// the last a letter or a number, and a 63 character maximum. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future create( + Workload request, + core.String parent, { + core.String? requestId, + core.String? workloadId, + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], + if (workloadId != null) 'workloadId': [workloadId], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/workloads'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + + /// Deletes a Workload in an Application. + /// + /// Request parameters: + /// + /// [name] - Required. Value for name. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/applications/\[^/\]+/workloads/\[^/\]+$`. + /// + /// [requestId] - Optional. An optional request ID to identify requests. + /// Specify a unique request ID so that if you must retry your request, the + /// server will know to ignore the request if it has already been completed. + /// The server will guarantee that for at least 60 minutes after the first + /// request. For example, consider a situation where you make an initial + /// request and the request times out. If you make the request again with the + /// same request ID, the server can check if original operation with the same + /// request ID was received, and if so, will ignore the second request. This + /// prevents clients from accidentally creating duplicate commitments. The + /// request ID must be a valid UUID with the exception that zero UUID is not + /// supported (00000000-0000-0000-0000-000000000000). + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future delete( + core.String name, { + core.String? requestId, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'DELETE', + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + + /// Gets a Workload in an Application. + /// + /// Request parameters: + /// + /// [name] - Required. Value for name. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/applications/\[^/\]+/workloads/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Workload]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return Workload.fromJson(response_ as core.Map); + } + + /// Lists Workloads in an Application. + /// + /// Request parameters: + /// + /// [parent] - Required. Value for parent. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/applications/\[^/\]+$`. + /// + /// [filter] - Optional. Filtering results + /// + /// [orderBy] - Optional. Hint for how to order the results + /// + /// [pageSize] - Optional. Requested page size. Server may return fewer items + /// than requested. If unspecified, server will pick an appropriate default. + /// + /// [pageToken] - Optional. A token identifying a page of results the server + /// should return. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [ListWorkloadsResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future list( + core.String parent, { + core.String? filter, + core.String? orderBy, + core.int? pageSize, + core.String? pageToken, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (filter != null) 'filter': [filter], + if (orderBy != null) 'orderBy': [orderBy], + if (pageSize != null) 'pageSize': ['${pageSize}'], + if (pageToken != null) 'pageToken': [pageToken], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/workloads'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return ListWorkloadsResponse.fromJson( + response_ as core.Map); + } + + /// Updates a Workload in an Application. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [name] - Identifier. The resource name of the Workload. Format: + /// "projects/{host-project-id}/locations/{location}/applications/{application-id}/workloads/{workload-id}" + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/applications/\[^/\]+/workloads/\[^/\]+$`. + /// + /// [requestId] - Optional. An optional request ID to identify requests. + /// Specify a unique request ID so that if you must retry your request, the + /// server will know to ignore the request if it has already been completed. + /// The server will guarantee that for at least 60 minutes since the first + /// request. For example, consider a situation where you make an initial + /// request and the request times out. If you make the request again with the + /// same request ID, the server can check if original operation with the same + /// request ID was received, and if so, will ignore the second request. This + /// prevents clients from accidentally creating duplicate commitments. The + /// request ID must be a valid UUID with the exception that zero UUID is not + /// supported (00000000-0000-0000-0000-000000000000). + /// + /// [updateMask] - Required. Field mask is used to specify the fields to be + /// overwritten in the Workload resource by the update. The fields specified + /// in the update_mask are relative to the resource, not the full request. The + /// API changes the values of the fields as specified in the update_mask. The + /// API ignores the values of all fields not covered by the update_mask. You + /// can also unset a field by not specifying it in the updated message, but + /// adding the field to the mask. This clears whatever value the field + /// previously had. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future patch( + Workload request, + core.String name, { + core.String? requestId, + core.String? updateMask, + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], + if (updateMask != null) 'updateMask': [updateMask], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'PATCH', + body: body_, + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } +} + +class ProjectsLocationsDiscoveredServicesResource { + final commons.ApiRequester _requester; + + ProjectsLocationsDiscoveredServicesResource(commons.ApiRequester client) + : _requester = client; + + /// Gets a discovered service in a host project and location. + /// + /// Request parameters: + /// + /// [name] - Required. Value for name. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/discoveredServices/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [DiscoveredService]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return DiscoveredService.fromJson( + response_ as core.Map); + } + + /// Lists discovered services that can be added to an application in a host + /// project and location. + /// + /// Request parameters: + /// + /// [parent] - Required. Value for parent. + /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. + /// + /// [filter] - Optional. Filtering results + /// + /// [orderBy] - Optional. Hint for how to order the results + /// + /// [pageSize] - Optional. Requested page size. Server may return fewer items + /// than requested. If unspecified, server will pick an appropriate default. + /// + /// [pageToken] - Optional. A token identifying a page of results the server + /// should return. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [ListDiscoveredServicesResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future list( + core.String parent, { + core.String? filter, + core.String? orderBy, + core.int? pageSize, + core.String? pageToken, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (filter != null) 'filter': [filter], + if (orderBy != null) 'orderBy': [orderBy], + if (pageSize != null) 'pageSize': ['${pageSize}'], + if (pageToken != null) 'pageToken': [pageToken], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/discoveredServices'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return ListDiscoveredServicesResponse.fromJson( + response_ as core.Map); + } +} + +class ProjectsLocationsDiscoveredWorkloadsResource { + final commons.ApiRequester _requester; + + ProjectsLocationsDiscoveredWorkloadsResource(commons.ApiRequester client) + : _requester = client; + + /// Gets a discovered workload in a host project and location. + /// + /// Request parameters: + /// + /// [name] - Required. Value for name. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/discoveredWorkloads/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [DiscoveredWorkload]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return DiscoveredWorkload.fromJson( + response_ as core.Map); + } + + /// Lists discovered workloads that can be added to an application in a host + /// project and location. + /// + /// Request parameters: + /// + /// [parent] - Required. Value for parent. + /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. + /// + /// [filter] - Optional. Filtering results + /// + /// [orderBy] - Optional. Hint for how to order the results + /// + /// [pageSize] - Optional. Requested page size. Server may return fewer items + /// than requested. If unspecified, server will pick an appropriate default. + /// + /// [pageToken] - Optional. A token identifying a page of results the server + /// should return. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [ListDiscoveredWorkloadsResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future list( + core.String parent, { + core.String? filter, + core.String? orderBy, + core.int? pageSize, + core.String? pageToken, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (filter != null) 'filter': [filter], + if (orderBy != null) 'orderBy': [orderBy], + if (pageSize != null) 'pageSize': ['${pageSize}'], + if (pageToken != null) 'pageToken': [pageToken], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = + 'v1/' + core.Uri.encodeFull('$parent') + '/discoveredWorkloads'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return ListDiscoveredWorkloadsResponse.fromJson( + response_ as core.Map); + } +} + +class ProjectsLocationsOperationsResource { + final commons.ApiRequester _requester; + + ProjectsLocationsOperationsResource(commons.ApiRequester client) + : _requester = client; + + /// Starts asynchronous cancellation on a long-running operation. + /// + /// The server makes a best effort to cancel the operation, but success is not + /// guaranteed. If the server doesn't support this method, it returns + /// `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation + /// or other methods to check whether the cancellation succeeded or whether + /// the operation completed despite cancellation. On successful cancellation, + /// the operation is not deleted; instead, it becomes an operation with an + /// Operation.error value with a google.rpc.Status.code of 1, corresponding to + /// `Code.CANCELLED`. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [name] - The name of the operation resource to be cancelled. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/operations/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Empty]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future cancel( + CancelOperationRequest request, + core.String name, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':cancel'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Empty.fromJson(response_ as core.Map); + } + + /// Deletes a long-running operation. + /// + /// This method indicates that the client is no longer interested in the + /// operation result. It does not cancel the operation. If the server doesn't + /// support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. + /// + /// Request parameters: + /// + /// [name] - The name of the operation resource to be deleted. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/operations/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Empty]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future delete( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'DELETE', + queryParams: queryParams_, + ); + return Empty.fromJson(response_ as core.Map); + } + + /// Gets the latest state of a long-running operation. + /// + /// Clients can use this method to poll the operation result at intervals as + /// recommended by the API service. + /// + /// Request parameters: + /// + /// [name] - The name of the operation resource. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/operations/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + + /// Lists operations that match the specified filter in the request. + /// + /// If the server doesn't support this method, it returns `UNIMPLEMENTED`. + /// + /// Request parameters: + /// + /// [name] - The name of the operation's parent resource. + /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. + /// + /// [filter] - The standard list filter. + /// + /// [pageSize] - The standard list page size. + /// + /// [pageToken] - The standard list page token. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [ListOperationsResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future list( + core.String name, { + core.String? filter, + core.int? pageSize, + core.String? pageToken, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (filter != null) 'filter': [filter], + if (pageSize != null) 'pageSize': ['${pageSize}'], + if (pageToken != null) 'pageToken': [pageToken], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name') + '/operations'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return ListOperationsResponse.fromJson( + response_ as core.Map); + } +} + +class ProjectsLocationsServiceProjectAttachmentsResource { + final commons.ApiRequester _requester; + + ProjectsLocationsServiceProjectAttachmentsResource( + commons.ApiRequester client) + : _requester = client; + + /// Attaches a service project to the host project. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [parent] - Required. Value for parent. + /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. + /// + /// [requestId] - Optional. An optional request ID to identify requests. + /// Specify a unique request ID so that if you must retry your request, the + /// server will know to ignore the request if it has already been completed. + /// The server will guarantee that for at least 60 minutes since the first + /// request. For example, consider a situation where you make an initial + /// request and the request times out. If you make the request again with the + /// same request ID, the server can check if original operation with the same + /// request ID was received, and if so, will ignore the second request. This + /// prevents clients from accidentally creating duplicate commitments. The + /// request ID must be a valid UUID with the exception that zero UUID is not + /// supported (00000000-0000-0000-0000-000000000000). + /// + /// [serviceProjectAttachmentId] - Required. The service project attachment + /// identifier must contain the project_id of the service project specified in + /// the service_project_attachment.service_project field. Hint: + /// "projects/{project_id}" + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future create( + ServiceProjectAttachment request, + core.String parent, { + core.String? requestId, + core.String? serviceProjectAttachmentId, + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], + if (serviceProjectAttachmentId != null) + 'serviceProjectAttachmentId': [serviceProjectAttachmentId], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = + 'v1/' + core.Uri.encodeFull('$parent') + '/serviceProjectAttachments'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + + /// Deletes a service project attached to the host project. + /// + /// Request parameters: + /// + /// [name] - Required. Value for name. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/serviceProjectAttachments/\[^/\]+$`. + /// + /// [requestId] - Optional. An optional request ID to identify requests. + /// Specify a unique request ID so that if you must retry your request, the + /// server will know to ignore the request if it has already been completed. + /// The server will guarantee that for at least 60 minutes after the first + /// request. For example, consider a situation where you make an initial + /// request and the request times out. If you make the request again with the + /// same request ID, the server can check if original operation with the same + /// request ID was received, and if so, will ignore the second request. This + /// prevents clients from accidentally creating duplicate commitments. The + /// request ID must be a valid UUID with the exception that zero UUID is not + /// supported (00000000-0000-0000-0000-000000000000). + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future delete( + core.String name, { + core.String? requestId, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'DELETE', + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + + /// Gets a service project attached to the host project. + /// + /// Request parameters: + /// + /// [name] - Required. Value for name. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/serviceProjectAttachments/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [ServiceProjectAttachment]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return ServiceProjectAttachment.fromJson( + response_ as core.Map); + } + + /// List service projects attached to the host project. + /// + /// Request parameters: + /// + /// [parent] - Required. Value for parent. + /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. + /// + /// [filter] - Optional. Filtering results + /// + /// [orderBy] - Optional. Hint for how to order the results + /// + /// [pageSize] - Optional. Requested page size. Server may return fewer items + /// than requested. If unspecified, server will pick an appropriate default. + /// + /// [pageToken] - Optional. A token identifying a page of results the server + /// should return. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [ListServiceProjectAttachmentsResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future list( + core.String parent, { + core.String? filter, + core.String? orderBy, + core.int? pageSize, + core.String? pageToken, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (filter != null) 'filter': [filter], + if (orderBy != null) 'orderBy': [orderBy], + if (pageSize != null) 'pageSize': ['${pageSize}'], + if (pageToken != null) 'pageToken': [pageToken], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = + 'v1/' + core.Uri.encodeFull('$parent') + '/serviceProjectAttachments'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return ListServiceProjectAttachmentsResponse.fromJson( + response_ as core.Map); + } +} + +/// Application defines the governance boundary for App Hub Entities that +/// perform a logical end-to-end business function. +/// +/// App Hub supports application level IAM permission to align with governance +/// requirements. +class Application { + /// Consumer provided attributes. + /// + /// Optional. + Attributes? attributes; + + /// Create time. + /// + /// Output only. + core.String? createTime; + + /// User-defined description of an Application. + /// + /// Can have a maximum length of 2048 characters. + /// + /// Optional. + core.String? description; + + /// User-defined name for the Application. + /// + /// Can have a maximum length of 63 characters. + /// + /// Optional. + core.String? displayName; + + /// Identifier. + /// + /// The resource name of an Application. Format: + /// "projects/{host-project-id}/locations/{location}/applications/{application-id}" + core.String? name; + + /// Defines what data can be included into this Application. + /// + /// Limits which Services and Workloads can be registered. + /// + /// Required. Immutable. + Scope? scope; + + /// Application state. + /// + /// Output only. + /// Possible string values are: + /// - "STATE_UNSPECIFIED" : Unspecified state. + /// - "CREATING" : The Application is being created. + /// - "ACTIVE" : The Application is ready to register Services and Workloads. + /// - "DELETING" : The Application is being deleted. + core.String? state; + + /// A universally unique identifier (in UUID4 format) for the `Application`. + /// + /// Output only. + core.String? uid; + + /// Update time. + /// + /// Output only. + core.String? updateTime; + + Application({ + this.attributes, + this.createTime, + this.description, + this.displayName, + this.name, + this.scope, + this.state, + this.uid, + this.updateTime, + }); + + Application.fromJson(core.Map json_) + : this( + attributes: json_.containsKey('attributes') + ? Attributes.fromJson( + json_['attributes'] as core.Map) + : null, + createTime: json_.containsKey('createTime') + ? json_['createTime'] as core.String + : null, + description: json_.containsKey('description') + ? json_['description'] as core.String + : null, + displayName: json_.containsKey('displayName') + ? json_['displayName'] as core.String + : null, + name: json_.containsKey('name') ? json_['name'] as core.String : null, + scope: json_.containsKey('scope') + ? Scope.fromJson( + json_['scope'] as core.Map) + : null, + state: + json_.containsKey('state') ? json_['state'] as core.String : null, + uid: json_.containsKey('uid') ? json_['uid'] as core.String : null, + updateTime: json_.containsKey('updateTime') + ? json_['updateTime'] as core.String + : null, + ); + + core.Map toJson() => { + if (attributes != null) 'attributes': attributes!, + if (createTime != null) 'createTime': createTime!, + if (description != null) 'description': description!, + if (displayName != null) 'displayName': displayName!, + if (name != null) 'name': name!, + if (scope != null) 'scope': scope!, + if (state != null) 'state': state!, + if (uid != null) 'uid': uid!, + if (updateTime != null) 'updateTime': updateTime!, + }; +} + +/// Consumer provided attributes. +class Attributes { + /// Business team that ensures user needs are met and value is delivered + /// + /// Optional. + core.List? businessOwners; + + /// User-defined criticality information. + /// + /// Optional. + Criticality? criticality; + + /// Developer team that owns development and coding. + /// + /// Optional. + core.List? developerOwners; + + /// User-defined environment information. + /// + /// Optional. + Environment? environment; + + /// Operator team that ensures runtime and operations. + /// + /// Optional. + core.List? operatorOwners; + + Attributes({ + this.businessOwners, + this.criticality, + this.developerOwners, + this.environment, + this.operatorOwners, + }); + + Attributes.fromJson(core.Map json_) + : this( + businessOwners: json_.containsKey('businessOwners') + ? (json_['businessOwners'] as core.List) + .map((value) => ContactInfo.fromJson( + value as core.Map)) + .toList() + : null, + criticality: json_.containsKey('criticality') + ? Criticality.fromJson( + json_['criticality'] as core.Map) + : null, + developerOwners: json_.containsKey('developerOwners') + ? (json_['developerOwners'] as core.List) + .map((value) => ContactInfo.fromJson( + value as core.Map)) + .toList() + : null, + environment: json_.containsKey('environment') + ? Environment.fromJson( + json_['environment'] as core.Map) + : null, + operatorOwners: json_.containsKey('operatorOwners') + ? (json_['operatorOwners'] as core.List) + .map((value) => ContactInfo.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (businessOwners != null) 'businessOwners': businessOwners!, + if (criticality != null) 'criticality': criticality!, + if (developerOwners != null) 'developerOwners': developerOwners!, + if (environment != null) 'environment': environment!, + if (operatorOwners != null) 'operatorOwners': operatorOwners!, + }; +} + +/// Specifies the audit configuration for a service. +/// +/// The configuration determines which permission types are logged, and what +/// identities, if any, are exempted from logging. An AuditConfig must have one +/// or more AuditLogConfigs. If there are AuditConfigs for both `allServices` +/// and a specific service, the union of the two AuditConfigs is used for that +/// service: the log_types specified in each AuditConfig are enabled, and the +/// exempted_members in each AuditLogConfig are exempted. Example Policy with +/// multiple AuditConfigs: { "audit_configs": \[ { "service": "allServices", +/// "audit_log_configs": \[ { "log_type": "DATA_READ", "exempted_members": \[ +/// "user:jose@example.com" \] }, { "log_type": "DATA_WRITE" }, { "log_type": +/// "ADMIN_READ" } \] }, { "service": "sampleservice.googleapis.com", +/// "audit_log_configs": \[ { "log_type": "DATA_READ" }, { "log_type": +/// "DATA_WRITE", "exempted_members": \[ "user:aliya@example.com" \] } \] } \] } +/// For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ +/// logging. It also exempts `jose@example.com` from DATA_READ logging, and +/// `aliya@example.com` from DATA_WRITE logging. +class AuditConfig { + /// The configuration for logging of each type of permission. + core.List? auditLogConfigs; + + /// Specifies a service that will be enabled for audit logging. + /// + /// For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. + /// `allServices` is a special value that covers all services. + core.String? service; + + AuditConfig({ + this.auditLogConfigs, + this.service, + }); + + AuditConfig.fromJson(core.Map json_) + : this( + auditLogConfigs: json_.containsKey('auditLogConfigs') + ? (json_['auditLogConfigs'] as core.List) + .map((value) => AuditLogConfig.fromJson( + value as core.Map)) + .toList() + : null, + service: json_.containsKey('service') + ? json_['service'] as core.String + : null, + ); + + core.Map toJson() => { + if (auditLogConfigs != null) 'auditLogConfigs': auditLogConfigs!, + if (service != null) 'service': service!, + }; +} + +/// Provides the configuration for logging a type of permissions. +/// +/// Example: { "audit_log_configs": \[ { "log_type": "DATA_READ", +/// "exempted_members": \[ "user:jose@example.com" \] }, { "log_type": +/// "DATA_WRITE" } \] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while +/// exempting jose@example.com from DATA_READ logging. +typedef AuditLogConfig = $AuditLogConfig; + +/// Associates `members`, or principals, with a `role`. +class Binding { + /// The condition that is associated with this binding. + /// + /// If the condition evaluates to `true`, then this binding applies to the + /// current request. If the condition evaluates to `false`, then this binding + /// does not apply to the current request. However, a different role binding + /// might grant the same role to one or more of the principals in this + /// binding. To learn which resources support conditions in their IAM + /// policies, see the + /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). + Expr? condition; + + /// Specifies the principals requesting access for a Google Cloud resource. + /// + /// `members` can have the following values: * `allUsers`: A special + /// identifier that represents anyone who is on the internet; with or without + /// a Google account. * `allAuthenticatedUsers`: A special identifier that + /// represents anyone who is authenticated with a Google account or a service + /// account. Does not include identities that come from external identity + /// providers (IdPs) through identity federation. * `user:{emailid}`: An email + /// address that represents a specific Google account. For example, + /// `alice@example.com` . * `serviceAccount:{emailid}`: An email address that + /// represents a Google service account. For example, + /// `my-other-app@appspot.gserviceaccount.com`. * + /// `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An + /// identifier for a + /// [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). + /// For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * + /// `group:{emailid}`: An email address that represents a Google group. For + /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain + /// (primary) that represents all the users of that domain. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, + /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If + /// the service account is undeleted, this value reverts to + /// `serviceAccount:{emailid}` and the undeleted service account retains the + /// role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email + /// address (plus unique identifier) representing a Google group that has been + /// recently deleted. For example, + /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, + /// this value reverts to `group:{emailid}` and the recovered group retains + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. + core.List? members; + + /// Role that is assigned to the list of `members`, or principals. + /// + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). + core.String? role; + + Binding({ + this.condition, + this.members, + this.role, + }); + + Binding.fromJson(core.Map json_) + : this( + condition: json_.containsKey('condition') + ? Expr.fromJson( + json_['condition'] as core.Map) + : null, + members: json_.containsKey('members') + ? (json_['members'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + role: json_.containsKey('role') ? json_['role'] as core.String : null, + ); + + core.Map toJson() => { + if (condition != null) 'condition': condition!, + if (members != null) 'members': members!, + if (role != null) 'role': role!, + }; +} + +/// The request message for Operations.CancelOperation. +typedef CancelOperationRequest = $Empty; + +/// Contact information of stakeholders. +class ContactInfo { + /// Contact's name. + /// + /// Can have a maximum length of 63 characters. + /// + /// Optional. + core.String? displayName; + + /// Email address of the contacts. + /// + /// Required. + core.String? email; + + ContactInfo({ + this.displayName, + this.email, + }); + + ContactInfo.fromJson(core.Map json_) + : this( + displayName: json_.containsKey('displayName') + ? json_['displayName'] as core.String + : null, + email: + json_.containsKey('email') ? json_['email'] as core.String : null, + ); + + core.Map toJson() => { + if (displayName != null) 'displayName': displayName!, + if (email != null) 'email': email!, + }; +} + +/// Criticality of the Application, Service, or Workload +class Criticality { + /// Criticality Type. + /// + /// Required. + /// Possible string values are: + /// - "TYPE_UNSPECIFIED" : Unspecified type. + /// - "MISSION_CRITICAL" : Mission critical service, application or workload. + /// - "HIGH" : High impact. + /// - "MEDIUM" : Medium impact. + /// - "LOW" : Low impact. + core.String? type; + + Criticality({ + this.type, + }); + + Criticality.fromJson(core.Map json_) + : this( + type: json_.containsKey('type') ? json_['type'] as core.String : null, + ); + + core.Map toJson() => { + if (type != null) 'type': type!, + }; +} + +/// Request for DetachServiceProjectAttachment. +typedef DetachServiceProjectAttachmentRequest = $Empty; + +/// Response for DetachServiceProjectAttachment. +typedef DetachServiceProjectAttachmentResponse = $Empty; + +/// DiscoveredService is a network/api interface that exposes some functionality +/// to clients for consumption over the network. +/// +/// A discovered service can be registered to a App Hub service. +class DiscoveredService { + /// Identifier. + /// + /// The resource name of the discovered service. Format: + /// "projects/{host-project-id}/locations/{location}/discoveredServices/{uuid}"" + core.String? name; + + /// Properties of an underlying compute resource that can comprise a Service. + /// + /// These are immutable. + /// + /// Output only. + ServiceProperties? serviceProperties; + + /// Reference to an underlying networking resource that can comprise a + /// Service. + /// + /// These are immutable. + /// + /// Output only. + ServiceReference? serviceReference; + + DiscoveredService({ + this.name, + this.serviceProperties, + this.serviceReference, + }); + + DiscoveredService.fromJson(core.Map json_) + : this( + name: json_.containsKey('name') ? json_['name'] as core.String : null, + serviceProperties: json_.containsKey('serviceProperties') + ? ServiceProperties.fromJson(json_['serviceProperties'] + as core.Map) + : null, + serviceReference: json_.containsKey('serviceReference') + ? ServiceReference.fromJson(json_['serviceReference'] + as core.Map) + : null, + ); + + core.Map toJson() => { + if (name != null) 'name': name!, + if (serviceProperties != null) 'serviceProperties': serviceProperties!, + if (serviceReference != null) 'serviceReference': serviceReference!, + }; +} + +/// DiscoveredWorkload is a binary deployment (such as managed instance groups +/// (MIGs) and GKE deployments) that performs the smallest logical subset of +/// business functionality. +/// +/// A discovered workload can be registered to an App Hub Workload. +class DiscoveredWorkload { + /// Identifier. + /// + /// The resource name of the discovered workload. Format: + /// "projects/{host-project-id}/locations/{location}/discoveredWorkloads/{uuid}" + core.String? name; + + /// Properties of an underlying compute resource represented by the Workload. + /// + /// These are immutable. + /// + /// Output only. + WorkloadProperties? workloadProperties; + + /// Reference of an underlying compute resource represented by the Workload. + /// + /// These are immutable. + /// + /// Output only. + WorkloadReference? workloadReference; + + DiscoveredWorkload({ + this.name, + this.workloadProperties, + this.workloadReference, + }); + + DiscoveredWorkload.fromJson(core.Map json_) + : this( + name: json_.containsKey('name') ? json_['name'] as core.String : null, + workloadProperties: json_.containsKey('workloadProperties') + ? WorkloadProperties.fromJson(json_['workloadProperties'] + as core.Map) + : null, + workloadReference: json_.containsKey('workloadReference') + ? WorkloadReference.fromJson(json_['workloadReference'] + as core.Map) + : null, + ); + + core.Map toJson() => { + if (name != null) 'name': name!, + if (workloadProperties != null) + 'workloadProperties': workloadProperties!, + if (workloadReference != null) 'workloadReference': workloadReference!, + }; +} + +/// 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); } +typedef Empty = $Empty; + +/// Environment of the Application, Service, or Workload +class Environment { + /// Environment Type. + /// + /// Required. + /// Possible string values are: + /// - "TYPE_UNSPECIFIED" : Unspecified type. + /// - "PRODUCTION" : Production environment. + /// - "STAGING" : Staging environment. + /// - "TEST" : Test environment. + /// - "DEVELOPMENT" : Development environment. + core.String? type; + + Environment({ + this.type, + }); + + Environment.fromJson(core.Map json_) + : this( + type: json_.containsKey('type') ? json_['type'] as core.String : null, + ); + + core.Map toJson() => { + if (type != null) 'type': type!, + }; +} + +/// Represents a textual expression in the Common Expression Language (CEL) +/// syntax. +/// +/// CEL is a C-like expression language. The syntax and semantics of CEL are +/// documented at https://github.com/google/cel-spec. Example (Comparison): +/// title: "Summary size limit" description: "Determines if a summary is less +/// than 100 chars" expression: "document.summary.size() \< 100" Example +/// (Equality): title: "Requestor is owner" description: "Determines if +/// requestor is the document owner" expression: "document.owner == +/// request.auth.claims.email" Example (Logic): title: "Public documents" +/// description: "Determine whether the document should be publicly visible" +/// expression: "document.type != 'private' && document.type != 'internal'" +/// Example (Data Manipulation): title: "Notification string" description: +/// "Create a notification string with a timestamp." expression: "'New message +/// received at ' + string(document.create_time)" The exact variables and +/// functions that may be referenced within an expression are determined by the +/// service that evaluates it. See the service documentation for additional +/// information. +typedef Expr = $Expr; + +/// Response for ListApplications. +class ListApplicationsResponse { + /// List of Applications. + core.List? applications; + + /// A token identifying a page of results the server should return. + core.String? nextPageToken; + + /// Locations that could not be reached. + core.List? unreachable; + + ListApplicationsResponse({ + this.applications, + this.nextPageToken, + this.unreachable, + }); + + ListApplicationsResponse.fromJson(core.Map json_) + : this( + applications: json_.containsKey('applications') + ? (json_['applications'] as core.List) + .map((value) => Application.fromJson( + value as core.Map)) + .toList() + : null, + nextPageToken: json_.containsKey('nextPageToken') + ? json_['nextPageToken'] as core.String + : null, + unreachable: json_.containsKey('unreachable') + ? (json_['unreachable'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + ); + + core.Map toJson() => { + if (applications != null) 'applications': applications!, + if (nextPageToken != null) 'nextPageToken': nextPageToken!, + if (unreachable != null) 'unreachable': unreachable!, + }; +} + +/// Response for ListDiscoveredServices. +class ListDiscoveredServicesResponse { + /// List of discovered services. + core.List? discoveredServices; + + /// A token identifying a page of results the server should return. + core.String? nextPageToken; + + /// Locations that could not be reached. + core.List? unreachable; + + ListDiscoveredServicesResponse({ + this.discoveredServices, + this.nextPageToken, + this.unreachable, + }); + + ListDiscoveredServicesResponse.fromJson(core.Map json_) + : this( + discoveredServices: json_.containsKey('discoveredServices') + ? (json_['discoveredServices'] as core.List) + .map((value) => DiscoveredService.fromJson( + value as core.Map)) + .toList() + : null, + nextPageToken: json_.containsKey('nextPageToken') + ? json_['nextPageToken'] as core.String + : null, + unreachable: json_.containsKey('unreachable') + ? (json_['unreachable'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + ); + + core.Map toJson() => { + if (discoveredServices != null) + 'discoveredServices': discoveredServices!, + if (nextPageToken != null) 'nextPageToken': nextPageToken!, + if (unreachable != null) 'unreachable': unreachable!, + }; +} + +/// Response for ListDiscoveredWorkloads. +class ListDiscoveredWorkloadsResponse { + /// List of discovered workloads. + core.List? discoveredWorkloads; + + /// A token identifying a page of results the server should return. + core.String? nextPageToken; + + /// Locations that could not be reached. + core.List? unreachable; + + ListDiscoveredWorkloadsResponse({ + this.discoveredWorkloads, + this.nextPageToken, + this.unreachable, + }); + + ListDiscoveredWorkloadsResponse.fromJson(core.Map json_) + : this( + discoveredWorkloads: json_.containsKey('discoveredWorkloads') + ? (json_['discoveredWorkloads'] as core.List) + .map((value) => DiscoveredWorkload.fromJson( + value as core.Map)) + .toList() + : null, + nextPageToken: json_.containsKey('nextPageToken') + ? json_['nextPageToken'] as core.String + : null, + unreachable: json_.containsKey('unreachable') + ? (json_['unreachable'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + ); + + core.Map toJson() => { + if (discoveredWorkloads != null) + 'discoveredWorkloads': discoveredWorkloads!, + if (nextPageToken != null) 'nextPageToken': nextPageToken!, + if (unreachable != null) 'unreachable': unreachable!, + }; +} + +/// The response message for Locations.ListLocations. +class ListLocationsResponse { + /// A list of locations that matches the specified filter in the request. + core.List? locations; + + /// The standard List next-page token. + core.String? nextPageToken; + + ListLocationsResponse({ + this.locations, + this.nextPageToken, + }); + + ListLocationsResponse.fromJson(core.Map json_) + : this( + locations: json_.containsKey('locations') + ? (json_['locations'] as core.List) + .map((value) => Location.fromJson( + value as core.Map)) + .toList() + : null, + nextPageToken: json_.containsKey('nextPageToken') + ? json_['nextPageToken'] as core.String + : null, + ); + + core.Map toJson() => { + if (locations != null) 'locations': locations!, + if (nextPageToken != null) 'nextPageToken': nextPageToken!, + }; +} + +/// The response message for Operations.ListOperations. +class ListOperationsResponse { + /// The standard List next-page token. + core.String? nextPageToken; + + /// A list of operations that matches the specified filter in the request. + core.List? operations; + + ListOperationsResponse({ + this.nextPageToken, + this.operations, + }); + + ListOperationsResponse.fromJson(core.Map json_) + : this( + nextPageToken: json_.containsKey('nextPageToken') + ? json_['nextPageToken'] as core.String + : null, + operations: json_.containsKey('operations') + ? (json_['operations'] as core.List) + .map((value) => Operation.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (nextPageToken != null) 'nextPageToken': nextPageToken!, + if (operations != null) 'operations': operations!, + }; +} + +/// Response for ListServiceProjectAttachments. +class ListServiceProjectAttachmentsResponse { + /// A token identifying a page of results the server should return. + core.String? nextPageToken; + + /// List of service project attachments. + core.List? serviceProjectAttachments; + + /// Locations that could not be reached. + core.List? unreachable; + + ListServiceProjectAttachmentsResponse({ + this.nextPageToken, + this.serviceProjectAttachments, + this.unreachable, + }); + + ListServiceProjectAttachmentsResponse.fromJson(core.Map json_) + : this( + nextPageToken: json_.containsKey('nextPageToken') + ? json_['nextPageToken'] as core.String + : null, + serviceProjectAttachments: + json_.containsKey('serviceProjectAttachments') + ? (json_['serviceProjectAttachments'] as core.List) + .map((value) => ServiceProjectAttachment.fromJson( + value as core.Map)) + .toList() + : null, + unreachable: json_.containsKey('unreachable') + ? (json_['unreachable'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + ); + + core.Map toJson() => { + if (nextPageToken != null) 'nextPageToken': nextPageToken!, + if (serviceProjectAttachments != null) + 'serviceProjectAttachments': serviceProjectAttachments!, + if (unreachable != null) 'unreachable': unreachable!, + }; +} + +/// Response for ListServices. +class ListServicesResponse { + /// A token identifying a page of results the server should return. + core.String? nextPageToken; + + /// List of Services. + core.List? services; + + /// Locations that could not be reached. + core.List? unreachable; + + ListServicesResponse({ + this.nextPageToken, + this.services, + this.unreachable, + }); + + ListServicesResponse.fromJson(core.Map json_) + : this( + nextPageToken: json_.containsKey('nextPageToken') + ? json_['nextPageToken'] as core.String + : null, + services: json_.containsKey('services') + ? (json_['services'] as core.List) + .map((value) => Service.fromJson( + value as core.Map)) + .toList() + : null, + unreachable: json_.containsKey('unreachable') + ? (json_['unreachable'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + ); + + core.Map toJson() => { + if (nextPageToken != null) 'nextPageToken': nextPageToken!, + if (services != null) 'services': services!, + if (unreachable != null) 'unreachable': unreachable!, + }; +} + +/// Response for ListWorkloads. +class ListWorkloadsResponse { + /// A token identifying a page of results the server should return. + core.String? nextPageToken; + + /// Locations that could not be reached. + core.List? unreachable; + + /// List of Workloads. + core.List? workloads; + + ListWorkloadsResponse({ + this.nextPageToken, + this.unreachable, + this.workloads, + }); + + ListWorkloadsResponse.fromJson(core.Map json_) + : this( + nextPageToken: json_.containsKey('nextPageToken') + ? json_['nextPageToken'] as core.String + : null, + unreachable: json_.containsKey('unreachable') + ? (json_['unreachable'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + workloads: json_.containsKey('workloads') + ? (json_['workloads'] as core.List) + .map((value) => Workload.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (nextPageToken != null) 'nextPageToken': nextPageToken!, + if (unreachable != null) 'unreachable': unreachable!, + if (workloads != null) 'workloads': workloads!, + }; +} + +/// A resource that represents a Google Cloud location. +typedef Location = $Location00; + +/// Response for LookupServiceProjectAttachment. +class LookupServiceProjectAttachmentResponse { + /// Service project attachment for a project if exists, empty otherwise. + ServiceProjectAttachment? serviceProjectAttachment; + + LookupServiceProjectAttachmentResponse({ + this.serviceProjectAttachment, + }); + + LookupServiceProjectAttachmentResponse.fromJson(core.Map json_) + : this( + serviceProjectAttachment: + json_.containsKey('serviceProjectAttachment') + ? ServiceProjectAttachment.fromJson( + json_['serviceProjectAttachment'] + as core.Map) + : null, + ); + + core.Map toJson() => { + if (serviceProjectAttachment != null) + 'serviceProjectAttachment': serviceProjectAttachment!, + }; +} + +/// This resource represents a long-running operation that is the result of a +/// network API call. +class Operation { + /// If the value is `false`, it means the operation is still in progress. + /// + /// If `true`, the operation is completed, and either `error` or `response` is + /// available. + core.bool? done; + + /// The error result of the operation in case of failure or cancellation. + Status? error; + + /// Service-specific metadata associated with the operation. + /// + /// It typically contains progress information and common metadata such as + /// create time. Some services might not provide such metadata. Any method + /// that returns a long-running operation should document the metadata type, + /// if any. + /// + /// The values for Object must be JSON objects. It can consist of `num`, + /// `String`, `bool` and `null` as well as `Map` and `List` values. + core.Map? metadata; + + /// The server-assigned name, which is only unique within the same service + /// that originally returns it. + /// + /// If you use the default HTTP mapping, the `name` should be a resource name + /// ending with `operations/{unique_id}`. + core.String? name; + + /// The normal, successful response of the operation. + /// + /// If the original method returns no data on success, such as `Delete`, the + /// response is `google.protobuf.Empty`. If the original method is standard + /// `Get`/`Create`/`Update`, the response should be the resource. For other + /// methods, the response should have the type `XxxResponse`, where `Xxx` is + /// the original method name. For example, if the original method name is + /// `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`. + /// + /// The values for Object must be JSON objects. It can consist of `num`, + /// `String`, `bool` and `null` as well as `Map` and `List` values. + core.Map? response; + + Operation({ + this.done, + this.error, + this.metadata, + this.name, + this.response, + }); + + Operation.fromJson(core.Map json_) + : this( + done: json_.containsKey('done') ? json_['done'] as core.bool : null, + error: json_.containsKey('error') + ? Status.fromJson( + json_['error'] as core.Map) + : null, + metadata: json_.containsKey('metadata') + ? json_['metadata'] as core.Map + : null, + name: json_.containsKey('name') ? json_['name'] as core.String : null, + response: json_.containsKey('response') + ? json_['response'] as core.Map + : null, + ); + + core.Map toJson() => { + if (done != null) 'done': done!, + if (error != null) 'error': error!, + if (metadata != null) 'metadata': metadata!, + if (name != null) 'name': name!, + if (response != null) 'response': response!, + }; +} + +/// An Identity and Access Management (IAM) policy, which specifies access +/// controls for Google Cloud resources. +/// +/// A `Policy` is a collection of `bindings`. A `binding` binds one or more +/// `members`, or principals, to a single `role`. Principals can be user +/// accounts, service accounts, Google groups, and domains (such as G Suite). A +/// `role` is a named list of permissions; each `role` can be an IAM predefined +/// role or a user-created custom role. For some types of Google Cloud +/// resources, a `binding` can also specify a `condition`, which is a logical +/// expression that allows access to a resource only if the expression evaluates +/// to `true`. A condition can add constraints based on attributes of the +/// request, the resource, or both. To learn which resources support conditions +/// in their IAM policies, see the +/// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). +/// **JSON example:** ``` { "bindings": [ { "role": +/// "roles/resourcemanager.organizationAdmin", "members": [ +/// "user:mike@example.com", "group:admins@example.com", "domain:google.com", +/// "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, { "role": +/// "roles/resourcemanager.organizationViewer", "members": [ +/// "user:eve@example.com" ], "condition": { "title": "expirable access", +/// "description": "Does not grant access after Sep 2020", "expression": +/// "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ], "etag": +/// "BwWWja0YfJA=", "version": 3 } ``` **YAML example:** ``` bindings: - +/// members: - user:mike@example.com - group:admins@example.com - +/// domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com +/// role: roles/resourcemanager.organizationAdmin - members: - +/// user:eve@example.com role: roles/resourcemanager.organizationViewer +/// condition: title: expirable access description: Does not grant access after +/// Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') +/// etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, +/// see the [IAM documentation](https://cloud.google.com/iam/docs/). +class Policy { + /// Specifies cloud audit logging configuration for this policy. + core.List? auditConfigs; + + /// Associates a list of `members`, or principals, with a `role`. + /// + /// Optionally, may specify a `condition` that determines how and when the + /// `bindings` are applied. Each of the `bindings` must contain at least one + /// principal. The `bindings` in a `Policy` can refer to up to 1,500 + /// principals; up to 250 of these principals can be Google groups. Each + /// occurrence of a principal counts towards these limits. For example, if the + /// `bindings` grant 50 different roles to `user:alice@example.com`, and not + /// to any other principal, then you can add another 1,450 principals to the + /// `bindings` in the `Policy`. + core.List? bindings; + + /// `etag` is used for optimistic concurrency control as a way to help prevent + /// simultaneous updates of a policy from overwriting each other. + /// + /// It is strongly suggested that systems make use of the `etag` in the + /// read-modify-write cycle to perform policy updates in order to avoid race + /// conditions: An `etag` is returned in the response to `getIamPolicy`, and + /// systems are expected to put that etag in the request to `setIamPolicy` to + /// ensure that their change will be applied to the same version of the + /// policy. **Important:** If you use IAM Conditions, you must include the + /// `etag` field whenever you call `setIamPolicy`. If you omit this field, + /// then IAM allows you to overwrite a version `3` policy with a version `1` + /// policy, and all of the conditions in the version `3` policy are lost. + core.String? etag; + core.List get etagAsBytes => convert.base64.decode(etag!); + + set etagAsBytes(core.List bytes_) { + etag = + convert.base64.encode(bytes_).replaceAll('/', '_').replaceAll('+', '-'); + } + + /// Specifies the format of the policy. + /// + /// Valid values are `0`, `1`, and `3`. Requests that specify an invalid value + /// are rejected. Any operation that affects conditional role bindings must + /// specify version `3`. This requirement applies to the following operations: + /// * Getting a policy that includes a conditional role binding * Adding a + /// conditional role binding to a policy * Changing a conditional role binding + /// in a policy * Removing any role binding, with or without a condition, from + /// a policy that includes conditions **Important:** If you use IAM + /// Conditions, you must include the `etag` field whenever you call + /// `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a + /// version `3` policy with a version `1` policy, and all of the conditions in + /// the version `3` policy are lost. If a policy does not include any + /// conditions, operations on that policy may specify any valid version or + /// leave the field unset. To learn which resources support conditions in + /// their IAM policies, see the + /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). + core.int? version; + + Policy({ + this.auditConfigs, + this.bindings, + this.etag, + this.version, + }); + + Policy.fromJson(core.Map json_) + : this( + auditConfigs: json_.containsKey('auditConfigs') + ? (json_['auditConfigs'] as core.List) + .map((value) => AuditConfig.fromJson( + value as core.Map)) + .toList() + : null, + bindings: json_.containsKey('bindings') + ? (json_['bindings'] as core.List) + .map((value) => Binding.fromJson( + value as core.Map)) + .toList() + : null, + etag: json_.containsKey('etag') ? json_['etag'] as core.String : null, + version: json_.containsKey('version') + ? json_['version'] as core.int + : null, + ); + + core.Map toJson() => { + if (auditConfigs != null) 'auditConfigs': auditConfigs!, + if (bindings != null) 'bindings': bindings!, + if (etag != null) 'etag': etag!, + if (version != null) 'version': version!, + }; +} + +/// Scope of an application. +class Scope { + /// Scope Type. + /// + /// Required. + /// Possible string values are: + /// - "TYPE_UNSPECIFIED" : Unspecified type. + /// - "REGIONAL" : Regional type. + core.String? type; + + Scope({ + this.type, + }); + + Scope.fromJson(core.Map json_) + : this( + type: json_.containsKey('type') ? json_['type'] as core.String : null, + ); + + core.Map toJson() => { + if (type != null) 'type': type!, + }; +} + +/// Service is an App Hub data model that contains a discovered service, which +/// represents a network/api interface that exposes some functionality to +/// clients for consumption over the network. +class Service { + /// Consumer provided attributes. + /// + /// Optional. + Attributes? attributes; + + /// Create time. + /// + /// Output only. + core.String? createTime; + + /// User-defined description of a Service. + /// + /// Can have a maximum length of 2048 characters. + /// + /// Optional. + core.String? description; + + /// The resource name of the original discovered service. + /// + /// Required. Immutable. + core.String? discoveredService; + + /// User-defined name for the Service. + /// + /// Can have a maximum length of 63 characters. + /// + /// Optional. + core.String? displayName; + + /// Identifier. + /// + /// The resource name of a Service. Format: + /// "projects/{host-project-id}/locations/{location}/applications/{application-id}/services/{service-id}" + core.String? name; + + /// Properties of an underlying compute resource that can comprise a Service. + /// + /// These are immutable. + /// + /// Output only. + ServiceProperties? serviceProperties; + + /// Reference to an underlying networking resource that can comprise a + /// Service. + /// + /// These are immutable. + /// + /// Output only. + ServiceReference? serviceReference; + + /// Service state. + /// + /// Output only. + /// Possible string values are: + /// - "STATE_UNSPECIFIED" : Unspecified state. + /// - "CREATING" : The service is being created. + /// - "ACTIVE" : The service is ready. + /// - "DELETING" : The service is being deleted. + /// - "DETACHED" : The underlying networking resources have been deleted. + core.String? state; + + /// A universally unique identifier (UUID) for the `Service` in the UUID4 + /// format. + /// + /// Output only. + core.String? uid; + + /// Update time. + /// + /// Output only. + core.String? updateTime; + + Service({ + this.attributes, + this.createTime, + this.description, + this.discoveredService, + this.displayName, + this.name, + this.serviceProperties, + this.serviceReference, + this.state, + this.uid, + this.updateTime, + }); + + Service.fromJson(core.Map json_) + : this( + attributes: json_.containsKey('attributes') + ? Attributes.fromJson( + json_['attributes'] as core.Map) + : null, + createTime: json_.containsKey('createTime') + ? json_['createTime'] as core.String + : null, + description: json_.containsKey('description') + ? json_['description'] as core.String + : null, + discoveredService: json_.containsKey('discoveredService') + ? json_['discoveredService'] as core.String + : null, + displayName: json_.containsKey('displayName') + ? json_['displayName'] as core.String + : null, + name: json_.containsKey('name') ? json_['name'] as core.String : null, + serviceProperties: json_.containsKey('serviceProperties') + ? ServiceProperties.fromJson(json_['serviceProperties'] + as core.Map) + : null, + serviceReference: json_.containsKey('serviceReference') + ? ServiceReference.fromJson(json_['serviceReference'] + as core.Map) + : null, + state: + json_.containsKey('state') ? json_['state'] as core.String : null, + uid: json_.containsKey('uid') ? json_['uid'] as core.String : null, + updateTime: json_.containsKey('updateTime') + ? json_['updateTime'] as core.String + : null, + ); + + core.Map toJson() => { + if (attributes != null) 'attributes': attributes!, + if (createTime != null) 'createTime': createTime!, + if (description != null) 'description': description!, + if (discoveredService != null) 'discoveredService': discoveredService!, + if (displayName != null) 'displayName': displayName!, + if (name != null) 'name': name!, + if (serviceProperties != null) 'serviceProperties': serviceProperties!, + if (serviceReference != null) 'serviceReference': serviceReference!, + if (state != null) 'state': state!, + if (uid != null) 'uid': uid!, + if (updateTime != null) 'updateTime': updateTime!, + }; +} + +/// ServiceProjectAttachment represents an attachment from a service project to +/// a host project. +/// +/// Service projects contain the underlying cloud infrastructure resources, and +/// expose these resources to the host project through a +/// ServiceProjectAttachment. With the attachments, the host project can provide +/// an aggregated view of resources across all service projects. +class ServiceProjectAttachment { + /// Create time. + /// + /// Output only. + core.String? createTime; + + /// Identifier. + /// + /// The resource name of a ServiceProjectAttachment. Format: + /// "projects/{host-project-id}/locations/global/serviceProjectAttachments/{service-project-id}." + core.String? name; + + /// Service project name in the format: "projects/abc" or "projects/123". + /// + /// As input, project name with either project id or number are accepted. As + /// output, this field will contain project number. + /// + /// Required. Immutable. + core.String? serviceProject; + + /// ServiceProjectAttachment state. + /// + /// Output only. + /// Possible string values are: + /// - "STATE_UNSPECIFIED" : Unspecified state. + /// - "CREATING" : The ServiceProjectAttachment is being created. + /// - "ACTIVE" : The ServiceProjectAttachment is ready. This means Services + /// and Workloads under the corresponding ServiceProjectAttachment is ready + /// for registration. + /// - "DELETING" : The ServiceProjectAttachment is being deleted. + core.String? state; + + /// A globally unique identifier (in UUID4 format) for the + /// `ServiceProjectAttachment`. + /// + /// Output only. + core.String? uid; + + ServiceProjectAttachment({ + this.createTime, + this.name, + this.serviceProject, + this.state, + this.uid, + }); + + ServiceProjectAttachment.fromJson(core.Map json_) + : this( + createTime: json_.containsKey('createTime') + ? json_['createTime'] as core.String + : null, + name: json_.containsKey('name') ? json_['name'] as core.String : null, + serviceProject: json_.containsKey('serviceProject') + ? json_['serviceProject'] as core.String + : null, + state: + json_.containsKey('state') ? json_['state'] as core.String : null, + uid: json_.containsKey('uid') ? json_['uid'] as core.String : null, + ); + + core.Map toJson() => { + if (createTime != null) 'createTime': createTime!, + if (name != null) 'name': name!, + if (serviceProject != null) 'serviceProject': serviceProject!, + if (state != null) 'state': state!, + if (uid != null) 'uid': uid!, + }; +} + +/// Properties of an underlying cloud resource that can comprise a Service. +class ServiceProperties { + /// The service project identifier that the underlying cloud resource resides + /// in. + /// + /// Output only. + core.String? gcpProject; + + /// The location that the underlying resource resides in, for example, + /// us-west1. + /// + /// Output only. + core.String? location; + + /// The location that the underlying resource resides in if it is zonal, for + /// example, us-west1-a). + /// + /// Output only. + core.String? zone; + + ServiceProperties({ + this.gcpProject, + this.location, + this.zone, + }); + + ServiceProperties.fromJson(core.Map json_) + : this( + gcpProject: json_.containsKey('gcpProject') + ? json_['gcpProject'] as core.String + : null, + location: json_.containsKey('location') + ? json_['location'] as core.String + : null, + zone: json_.containsKey('zone') ? json_['zone'] as core.String : null, + ); + + core.Map toJson() => { + if (gcpProject != null) 'gcpProject': gcpProject!, + if (location != null) 'location': location!, + if (zone != null) 'zone': zone!, + }; +} + +/// Reference to an underlying networking resource that can comprise a Service. +class ServiceReference { + /// The underlying resource URI (For example, URI of Forwarding Rule, URL Map, + /// and Backend Service). + /// + /// Output only. + core.String? uri; + + ServiceReference({ + this.uri, + }); + + ServiceReference.fromJson(core.Map json_) + : this( + uri: json_.containsKey('uri') ? json_['uri'] as core.String : null, + ); + + core.Map toJson() => { + if (uri != null) 'uri': uri!, + }; +} + +/// Request message for `SetIamPolicy` method. +class SetIamPolicyRequest { + /// REQUIRED: The complete policy to be applied to the `resource`. + /// + /// The size of the policy is limited to a few 10s of KB. An empty policy is a + /// valid policy but certain Google Cloud services (such as Projects) might + /// reject them. + Policy? policy; + + /// OPTIONAL: A FieldMask specifying which fields of the policy to modify. + /// + /// Only the fields in the mask will be modified. If no mask is provided, the + /// following default mask is used: `paths: "bindings, etag"` + core.String? updateMask; + + SetIamPolicyRequest({ + this.policy, + this.updateMask, + }); + + SetIamPolicyRequest.fromJson(core.Map json_) + : this( + policy: json_.containsKey('policy') + ? Policy.fromJson( + json_['policy'] as core.Map) + : null, + updateMask: json_.containsKey('updateMask') + ? json_['updateMask'] as core.String + : null, + ); + + core.Map toJson() => { + if (policy != null) 'policy': policy!, + if (updateMask != null) 'updateMask': updateMask!, + }; +} + +/// 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). +typedef Status = $Status; + +/// Request message for `TestIamPermissions` method. +typedef TestIamPermissionsRequest = $TestIamPermissionsRequest00; + +/// Response message for `TestIamPermissions` method. +typedef TestIamPermissionsResponse = $PermissionsResponse; + +/// Workload is an App Hub data model that contains a discovered workload, which +/// represents a binary deployment (such as managed instance groups (MIGs) and +/// GKE deployments) that performs the smallest logical subset of business +/// functionality. +class Workload { + /// Consumer provided attributes. + /// + /// Optional. + Attributes? attributes; + + /// Create time. + /// + /// Output only. + core.String? createTime; + + /// User-defined description of a Workload. + /// + /// Can have a maximum length of 2048 characters. + /// + /// Optional. + core.String? description; + + /// The resource name of the original discovered workload. + /// + /// Required. Immutable. + core.String? discoveredWorkload; + + /// User-defined name for the Workload. + /// + /// Can have a maximum length of 63 characters. + /// + /// Optional. + core.String? displayName; + + /// Identifier. + /// + /// The resource name of the Workload. Format: + /// "projects/{host-project-id}/locations/{location}/applications/{application-id}/workloads/{workload-id}" + core.String? name; + + /// Workload state. + /// + /// Output only. + /// Possible string values are: + /// - "STATE_UNSPECIFIED" : Unspecified state. + /// - "CREATING" : The Workload is being created. + /// - "ACTIVE" : The Workload is ready. + /// - "DELETING" : The Workload is being deleted. + /// - "DETACHED" : The underlying compute resources have been deleted. + core.String? state; + + /// A universally unique identifier (UUID) for the `Workload` in the UUID4 + /// format. + /// + /// Output only. + core.String? uid; + + /// Update time. + /// + /// Output only. + core.String? updateTime; + + /// Properties of an underlying compute resource represented by the Workload. + /// + /// These are immutable. + /// + /// Output only. + WorkloadProperties? workloadProperties; + + /// Reference of an underlying compute resource represented by the Workload. + /// + /// These are immutable. + /// + /// Output only. + WorkloadReference? workloadReference; + + Workload({ + this.attributes, + this.createTime, + this.description, + this.discoveredWorkload, + this.displayName, + this.name, + this.state, + this.uid, + this.updateTime, + this.workloadProperties, + this.workloadReference, + }); + + Workload.fromJson(core.Map json_) + : this( + attributes: json_.containsKey('attributes') + ? Attributes.fromJson( + json_['attributes'] as core.Map) + : null, + createTime: json_.containsKey('createTime') + ? json_['createTime'] as core.String + : null, + description: json_.containsKey('description') + ? json_['description'] as core.String + : null, + discoveredWorkload: json_.containsKey('discoveredWorkload') + ? json_['discoveredWorkload'] as core.String + : null, + displayName: json_.containsKey('displayName') + ? json_['displayName'] as core.String + : null, + name: json_.containsKey('name') ? json_['name'] as core.String : null, + state: + json_.containsKey('state') ? json_['state'] as core.String : null, + uid: json_.containsKey('uid') ? json_['uid'] as core.String : null, + updateTime: json_.containsKey('updateTime') + ? json_['updateTime'] as core.String + : null, + workloadProperties: json_.containsKey('workloadProperties') + ? WorkloadProperties.fromJson(json_['workloadProperties'] + as core.Map) + : null, + workloadReference: json_.containsKey('workloadReference') + ? WorkloadReference.fromJson(json_['workloadReference'] + as core.Map) + : null, + ); + + core.Map toJson() => { + if (attributes != null) 'attributes': attributes!, + if (createTime != null) 'createTime': createTime!, + if (description != null) 'description': description!, + if (discoveredWorkload != null) + 'discoveredWorkload': discoveredWorkload!, + if (displayName != null) 'displayName': displayName!, + if (name != null) 'name': name!, + if (state != null) 'state': state!, + if (uid != null) 'uid': uid!, + if (updateTime != null) 'updateTime': updateTime!, + if (workloadProperties != null) + 'workloadProperties': workloadProperties!, + if (workloadReference != null) 'workloadReference': workloadReference!, + }; +} + +/// Properties of an underlying compute resource represented by the Workload. +class WorkloadProperties { + /// The service project identifier that the underlying cloud resource resides + /// in. + /// + /// Empty for non cloud resources. + /// + /// Output only. + core.String? gcpProject; + + /// The location that the underlying compute resource resides in (e.g + /// us-west1). + /// + /// Output only. + core.String? location; + + /// The location that the underlying compute resource resides in if it is + /// zonal (e.g us-west1-a). + /// + /// Output only. + core.String? zone; + + WorkloadProperties({ + this.gcpProject, + this.location, + this.zone, + }); + + WorkloadProperties.fromJson(core.Map json_) + : this( + gcpProject: json_.containsKey('gcpProject') + ? json_['gcpProject'] as core.String + : null, + location: json_.containsKey('location') + ? json_['location'] as core.String + : null, + zone: json_.containsKey('zone') ? json_['zone'] as core.String : null, + ); + + core.Map toJson() => { + if (gcpProject != null) 'gcpProject': gcpProject!, + if (location != null) 'location': location!, + if (zone != null) 'zone': zone!, + }; +} + +/// Reference of an underlying compute resource represented by the Workload. +class WorkloadReference { + /// The underlying compute resource uri. + /// + /// Output only. + core.String? uri; + + WorkloadReference({ + this.uri, + }); + + WorkloadReference.fromJson(core.Map json_) + : this( + uri: json_.containsKey('uri') ? json_['uri'] as core.String : null, + ); + + core.Map toJson() => { + if (uri != null) 'uri': uri!, + }; +} diff --git a/generated/googleapis/lib/artifactregistry/v1.dart b/generated/googleapis/lib/artifactregistry/v1.dart index 4514a26a5..cf7a08b12 100644 --- a/generated/googleapis/lib/artifactregistry/v1.dart +++ b/generated/googleapis/lib/artifactregistry/v1.dart @@ -2413,14 +2413,31 @@ class Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -2429,12 +2446,19 @@ class Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; Binding({ @@ -2546,12 +2570,6 @@ class CleanupPolicyCondition { /// - "ANY" : Applies to all versions. core.String? tagState; - /// DEPRECATED: Use older_than. - @core.Deprecated( - 'Not supported. Member documentation may have more information.', - ) - core.String? versionAge; - /// Match versions by version name prefix. /// /// Applied on any prefix match. @@ -2563,7 +2581,6 @@ class CleanupPolicyCondition { this.packageNamePrefixes, this.tagPrefixes, this.tagState, - this.versionAge, this.versionNamePrefixes, }); @@ -2588,9 +2605,6 @@ class CleanupPolicyCondition { tagState: json_.containsKey('tagState') ? json_['tagState'] as core.String : null, - versionAge: json_.containsKey('versionAge') - ? json_['versionAge'] as core.String - : null, versionNamePrefixes: json_.containsKey('versionNamePrefixes') ? (json_['versionNamePrefixes'] as core.List) .map((value) => value as core.String) @@ -2605,7 +2619,6 @@ class CleanupPolicyCondition { 'packageNamePrefixes': packageNamePrefixes!, if (tagPrefixes != null) 'tagPrefixes': tagPrefixes!, if (tagState != null) 'tagState': tagState!, - if (versionAge != null) 'versionAge': versionAge!, if (versionNamePrefixes != null) 'versionNamePrefixes': versionNamePrefixes!, }; @@ -4191,6 +4204,14 @@ class Repository { /// The user-provided description of the repository. core.String? description; + /// If this is true, aunspecified repo type will be treated as error. + /// + /// Is used for new repo types that don't have any specific fields. Right now + /// is used by AOSS team when creating repos for customers. + /// + /// Optional. + core.bool? disallowUnspecifiedMode; + /// Docker repository config contains repository level configuration for the /// repositories of docker type. DockerRepositoryConfig? dockerConfig; @@ -4276,6 +4297,7 @@ class Repository { this.cleanupPolicyDryRun, this.createTime, this.description, + this.disallowUnspecifiedMode, this.dockerConfig, this.format, this.kmsKeyName, @@ -4312,6 +4334,9 @@ class Repository { description: json_.containsKey('description') ? json_['description'] as core.String : null, + disallowUnspecifiedMode: json_.containsKey('disallowUnspecifiedMode') + ? json_['disallowUnspecifiedMode'] as core.bool + : null, dockerConfig: json_.containsKey('dockerConfig') ? DockerRepositoryConfig.fromJson( json_['dockerConfig'] as core.Map) @@ -4362,6 +4387,8 @@ class Repository { 'cleanupPolicyDryRun': cleanupPolicyDryRun!, if (createTime != null) 'createTime': createTime!, if (description != null) 'description': description!, + if (disallowUnspecifiedMode != null) + 'disallowUnspecifiedMode': disallowUnspecifiedMode!, if (dockerConfig != null) 'dockerConfig': dockerConfig!, if (format != null) 'format': format!, if (kmsKeyName != null) 'kmsKeyName': kmsKeyName!, diff --git a/generated/googleapis/lib/assuredworkloads/v1.dart b/generated/googleapis/lib/assuredworkloads/v1.dart index 257c03dc0..7e4172e30 100644 --- a/generated/googleapis/lib/assuredworkloads/v1.dart +++ b/generated/googleapis/lib/assuredworkloads/v1.dart @@ -352,6 +352,48 @@ class OrganizationsLocationsWorkloadsResource { response_ as core.Map); } + /// Enable resource violation monitoring for a workload. + /// + /// Request parameters: + /// + /// [name] - Required. The `name` field is used to identify the workload. + /// Format: + /// organizations/{org_id}/locations/{location_id}/workloads/{workload_id} + /// Value must have pattern + /// `^organizations/\[^/\]+/locations/\[^/\]+/workloads/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a + /// [GoogleCloudAssuredworkloadsV1EnableResourceMonitoringResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future + enableResourceMonitoring( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = + 'v1/' + core.Uri.encodeFull('$name') + ':enableResourceMonitoring'; + + final response_ = await _requester.request( + url_, + 'POST', + queryParams: queryParams_, + ); + return GoogleCloudAssuredworkloadsV1EnableResourceMonitoringResponse + .fromJson(response_ as core.Map); + } + /// Gets Assured Workload associated with a CRM Node /// /// Request parameters: @@ -763,7 +805,7 @@ class OrganizationsLocationsWorkloadsViolationsResource { } } -/// Request for acknowledging the violation Next Id: 5 +/// Request for acknowledging the violation class GoogleCloudAssuredworkloadsV1AcknowledgeViolationRequest { /// Acknowledge type of specified violation. /// @@ -907,6 +949,9 @@ class GoogleCloudAssuredworkloadsV1AssetMoveAnalysis { }; } +/// Response for EnableResourceMonitoring endpoint. +typedef GoogleCloudAssuredworkloadsV1EnableResourceMonitoringResponse = $Empty; + /// Response of ListViolations endpoint. class GoogleCloudAssuredworkloadsV1ListViolationsResponse { /// The next page token. diff --git a/generated/googleapis/lib/authorizedbuyersmarketplace/v1.dart b/generated/googleapis/lib/authorizedbuyersmarketplace/v1.dart index d7a4bcc17..e425b1bca 100644 --- a/generated/googleapis/lib/authorizedbuyersmarketplace/v1.dart +++ b/generated/googleapis/lib/authorizedbuyersmarketplace/v1.dart @@ -2432,6 +2432,8 @@ class CreativeRequirements { /// creative format. /// - "DISPLAY" : Banner creatives such as image or HTML5 assets. /// - "VIDEO" : Video creatives that can be played in a video player. + /// - "AUDIO" : Audio creatives that can play during audio content or point to + /// a third party ad server. core.String? creativeFormat; /// Specifies the creative pre-approval policy. diff --git a/generated/googleapis/lib/backupdr/v1.dart b/generated/googleapis/lib/backupdr/v1.dart index cec3b6e92..dabeba39f 100644 --- a/generated/googleapis/lib/backupdr/v1.dart +++ b/generated/googleapis/lib/backupdr/v1.dart @@ -19,6 +19,7 @@ /// /// - [ProjectsResource] /// - [ProjectsLocationsResource] +/// - [ProjectsLocationsBackupVaultsResource] /// - [ProjectsLocationsManagementServersResource] /// - [ProjectsLocationsOperationsResource] library; @@ -65,6 +66,8 @@ class ProjectsResource { class ProjectsLocationsResource { final commons.ApiRequester _requester; + ProjectsLocationsBackupVaultsResource get backupVaults => + ProjectsLocationsBackupVaultsResource(_requester); ProjectsLocationsManagementServersResource get managementServers => ProjectsLocationsManagementServersResource(_requester); ProjectsLocationsOperationsResource get operations => @@ -160,6 +163,64 @@ class ProjectsLocationsResource { } } +class ProjectsLocationsBackupVaultsResource { + final commons.ApiRequester _requester; + + ProjectsLocationsBackupVaultsResource(commons.ApiRequester client) + : _requester = client; + + /// Returns permissions that a caller has on the specified resource. + /// + /// If the resource does not exist, this will return an empty set of + /// permissions, not a `NOT_FOUND` error. Note: This operation is designed to + /// be used for building permission-aware UIs and command-line tools, not for + /// authorization checking. This operation may "fail open" without warning. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [resource] - REQUIRED: The resource for which the policy detail is being + /// requested. See + /// [Resource names](https://cloud.google.com/apis/design/resource_names) for + /// the appropriate value for this field. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/backupVaults/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [TestIamPermissionsResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future testIamPermissions( + TestIamPermissionsRequest request, + core.String resource, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = + 'v1/' + core.Uri.encodeFull('$resource') + ':testIamPermissions'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return TestIamPermissionsResponse.fromJson( + response_ as core.Map); + } +} + class ProjectsLocationsManagementServersResource { final commons.ApiRequester _requester; @@ -808,14 +869,31 @@ class Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -824,12 +902,19 @@ class Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; Binding({ @@ -1081,7 +1166,7 @@ class ManagementServer { /// The type of the ManagementServer resource. /// - /// Required. + /// Optional. /// Possible string values are: /// - "INSTANCE_TYPE_UNSPECIFIED" : Instance type is not mentioned. /// - "BACKUP_RESTORE" : Instance for backup and restore management (i.e., diff --git a/generated/googleapis/lib/baremetalsolution/v2.dart b/generated/googleapis/lib/baremetalsolution/v2.dart index 55ee390ae..33ac2f2a5 100644 --- a/generated/googleapis/lib/baremetalsolution/v2.dart +++ b/generated/googleapis/lib/baremetalsolution/v2.dart @@ -405,6 +405,43 @@ class ProjectsLocationsInstancesResource { response_ as core.Map); } + /// Load auth info for a server. + /// + /// Request parameters: + /// + /// [name] - Required. Name of the server. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/instances/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [LoadInstanceAuthInfoResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future loadAuthInfo( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v2/' + core.Uri.encodeFull('$name') + ':loadAuthInfo'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return LoadInstanceAuthInfoResponse.fromJson( + response_ as core.Map); + } + /// Update details of a single server. /// /// [request] - The metadata request object. @@ -2479,6 +2516,14 @@ class Instance { /// Output only. core.bool? interactiveSerialConsoleEnabled; + /// Name of the KMS crypto key version used to encrypt the initial passwords. + /// + /// The key has to have ASYMMETRIC_DECRYPT purpose. Format is + /// `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}/cryptoKeyVersions/{version}`. + /// + /// Optional. + core.String? kmsKeyVersion; + /// Labels as key value pairs. core.Map? labels; @@ -2541,6 +2586,11 @@ class Instance { /// Immutable. core.String? pod; + /// List of SSH Keys used during instance provisioning. + /// + /// Optional. + core.List? sshKeys; + /// The state of the server. /// /// Output only. @@ -2580,6 +2630,7 @@ class Instance { this.hyperthreadingEnabled, this.id, this.interactiveSerialConsoleEnabled, + this.kmsKeyVersion, this.labels, this.logicalInterfaces, this.loginInfo, @@ -2590,6 +2641,7 @@ class Instance { this.networks, this.osImage, this.pod, + this.sshKeys, this.state, this.updateTime, this.volumes, @@ -2612,6 +2664,9 @@ class Instance { json_.containsKey('interactiveSerialConsoleEnabled') ? json_['interactiveSerialConsoleEnabled'] as core.bool : null, + kmsKeyVersion: json_.containsKey('kmsKeyVersion') + ? json_['kmsKeyVersion'] as core.String + : null, labels: json_.containsKey('labels') ? (json_['labels'] as core.Map).map( (key, value) => core.MapEntry( @@ -2653,6 +2708,11 @@ class Instance { ? json_['osImage'] as core.String : null, pod: json_.containsKey('pod') ? json_['pod'] as core.String : null, + sshKeys: json_.containsKey('sshKeys') + ? (json_['sshKeys'] as core.List) + .map((value) => value as core.String) + .toList() + : null, state: json_.containsKey('state') ? json_['state'] as core.String : null, updateTime: json_.containsKey('updateTime') @@ -2677,6 +2737,7 @@ class Instance { if (id != null) 'id': id!, if (interactiveSerialConsoleEnabled != null) 'interactiveSerialConsoleEnabled': interactiveSerialConsoleEnabled!, + if (kmsKeyVersion != null) 'kmsKeyVersion': kmsKeyVersion!, if (labels != null) 'labels': labels!, if (logicalInterfaces != null) 'logicalInterfaces': logicalInterfaces!, if (loginInfo != null) 'loginInfo': loginInfo!, @@ -2687,6 +2748,7 @@ class Instance { if (networks != null) 'networks': networks!, if (osImage != null) 'osImage': osImage!, if (pod != null) 'pod': pod!, + if (sshKeys != null) 'sshKeys': sshKeys!, if (state != null) 'state': state!, if (updateTime != null) 'updateTime': updateTime!, if (volumes != null) 'volumes': volumes!, @@ -2723,6 +2785,11 @@ class InstanceConfig { /// [Available types](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations) core.String? instanceType; + /// Name of the KMS crypto key version used to encrypt the initial passwords. + /// + /// The key has to have ASYMMETRIC_DECRYPT purpose. + core.String? kmsKeyVersion; + /// List of logical interfaces for the instance. /// /// The number of logical interfaces will be the same as number of hardware @@ -2775,6 +2842,7 @@ class InstanceConfig { this.hyperthreading, this.id, this.instanceType, + this.kmsKeyVersion, this.logicalInterfaces, this.name, this.networkConfig, @@ -2801,6 +2869,9 @@ class InstanceConfig { instanceType: json_.containsKey('instanceType') ? json_['instanceType'] as core.String : null, + kmsKeyVersion: json_.containsKey('kmsKeyVersion') + ? json_['kmsKeyVersion'] as core.String + : null, logicalInterfaces: json_.containsKey('logicalInterfaces') ? (json_['logicalInterfaces'] as core.List) .map((value) => @@ -2839,6 +2910,7 @@ class InstanceConfig { if (hyperthreading != null) 'hyperthreading': hyperthreading!, if (id != null) 'id': id!, if (instanceType != null) 'instanceType': instanceType!, + if (kmsKeyVersion != null) 'kmsKeyVersion': kmsKeyVersion!, if (logicalInterfaces != null) 'logicalInterfaces': logicalInterfaces!, if (name != null) 'name': name!, if (networkConfig != null) 'networkConfig': networkConfig!, @@ -3345,6 +3417,45 @@ class ListVolumesResponse { }; } +/// Response for LoadInstanceAuthInfo. +class LoadInstanceAuthInfoResponse { + /// List of ssh keys. + core.List? sshKeys; + + /// Map of username to the user account info. + core.Map? userAccounts; + + LoadInstanceAuthInfoResponse({ + this.sshKeys, + this.userAccounts, + }); + + LoadInstanceAuthInfoResponse.fromJson(core.Map json_) + : this( + sshKeys: json_.containsKey('sshKeys') + ? (json_['sshKeys'] as core.List) + .map((value) => SSHKey.fromJson( + value as core.Map)) + .toList() + : null, + userAccounts: json_.containsKey('userAccounts') + ? (json_['userAccounts'] as core.Map) + .map( + (key, value) => core.MapEntry( + key, + UserAccount.fromJson( + value as core.Map), + ), + ) + : null, + ); + + core.Map toJson() => { + if (sshKeys != null) 'sshKeys': sshKeys!, + if (userAccounts != null) 'userAccounts': userAccounts!, + }; +} + /// A resource that represents a Google Cloud location. typedef Location = $Location00; @@ -3441,7 +3552,7 @@ class Lun { /// Display if this LUN can be shared between multiple physical servers. core.bool? shareable; - /// The size of this LUN, in gigabytes. + /// The size of this LUN, in GiB. core.String? sizeGb; /// The state of this storage volume. @@ -4943,6 +5054,35 @@ class SubmitProvisioningConfigResponse { }; } +/// User account provisioned for the customer. +class UserAccount { + /// Encrypted initial password value. + core.String? encryptedPassword; + + /// KMS CryptoKey Version used to encrypt the password. + core.String? kmsKeyVersion; + + UserAccount({ + this.encryptedPassword, + this.kmsKeyVersion, + }); + + UserAccount.fromJson(core.Map json_) + : this( + encryptedPassword: json_.containsKey('encryptedPassword') + ? json_['encryptedPassword'] as core.String + : null, + kmsKeyVersion: json_.containsKey('kmsKeyVersion') + ? json_['kmsKeyVersion'] as core.String + : null, + ); + + core.Map toJson() => { + if (encryptedPassword != null) 'encryptedPassword': encryptedPassword!, + if (kmsKeyVersion != null) 'kmsKeyVersion': kmsKeyVersion!, + }; +} + /// A network VRF. class VRF { /// The name of the VRF. @@ -5164,6 +5304,8 @@ class Volume { /// - "VOLUME_PERFORMANCE_TIER_SHARED" : Regular volumes, shared aggregates. /// - "VOLUME_PERFORMANCE_TIER_ASSIGNED" : Assigned aggregates. /// - "VOLUME_PERFORMANCE_TIER_HT" : High throughput aggregates. + /// - "VOLUME_PERFORMANCE_TIER_QOS2_PERFORMANCE" : QoS 2.0 high performance + /// storage. core.String? performanceTier; /// Pod name. @@ -5411,6 +5553,8 @@ class VolumeConfig { /// - "VOLUME_PERFORMANCE_TIER_SHARED" : Regular volumes, shared aggregates. /// - "VOLUME_PERFORMANCE_TIER_ASSIGNED" : Assigned aggregates. /// - "VOLUME_PERFORMANCE_TIER_HT" : High throughput aggregates. + /// - "VOLUME_PERFORMANCE_TIER_QOS2_PERFORMANCE" : QoS 2.0 high performance + /// storage. core.String? performanceTier; /// Volume protocol. diff --git a/generated/googleapis/lib/batch/v1.dart b/generated/googleapis/lib/batch/v1.dart index d92434db3..c491a6c0f 100644 --- a/generated/googleapis/lib/batch/v1.dart +++ b/generated/googleapis/lib/batch/v1.dart @@ -12,7 +12,7 @@ /// Batch API - v1 /// -/// An API to manage the running of batch jobs on Google Cloud Platform. +/// An API to manage the running of batch resources on Google Cloud Platform. /// /// For more information, see /// @@ -40,7 +40,7 @@ import '../src/user_agent.dart'; export 'package:_discoveryapis_commons/_discoveryapis_commons.dart' show ApiRequestError, DetailedApiRequestError; -/// An API to manage the running of batch jobs on Google Cloud Platform. +/// An API to manage the running of batch resources on Google Cloud Platform. class BatchApi { /// See, edit, configure, and delete your Google Cloud data and see the email /// address for your Google Account. @@ -1460,9 +1460,9 @@ class AllocationPolicy { /// The network policy. /// - /// If you define an instance template in the InstancePolicyOrTemplate field, - /// Batch will use the network settings in the instance template instead of - /// this field. + /// If you define an instance template in the `InstancePolicyOrTemplate` + /// field, Batch will use the network settings in the instance template + /// instead of this field. NetworkPolicy? network; /// The placement policy. @@ -1471,6 +1471,15 @@ class AllocationPolicy { /// Service account that VMs will run as. ServiceAccount? serviceAccount; + /// Tags applied to the VM instances. + /// + /// The tags identify valid sources or targets for network firewalls. Each tag + /// must be 1-63 characters long, and comply with + /// [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). + /// + /// Optional. + core.List? tags; + AllocationPolicy({ this.instances, this.labels, @@ -1478,6 +1487,7 @@ class AllocationPolicy { this.network, this.placement, this.serviceAccount, + this.tags, }); AllocationPolicy.fromJson(core.Map json_) @@ -1512,6 +1522,11 @@ class AllocationPolicy { ? ServiceAccount.fromJson(json_['serviceAccount'] as core.Map) : null, + tags: json_.containsKey('tags') + ? (json_['tags'] as core.List) + .map((value) => value as core.String) + .toList() + : null, ); core.Map toJson() => { @@ -1521,6 +1536,7 @@ class AllocationPolicy { if (network != null) 'network': network!, if (placement != null) 'placement': placement!, if (serviceAccount != null) 'serviceAccount': serviceAccount!, + if (tags != null) 'tags': tags!, }; } @@ -1589,9 +1605,37 @@ class Barrier { /// The request message for Operations.CancelOperation. typedef CancelOperationRequest = $Empty; -/// CloudLoggingOption contains additional settings for cloud logging generated -/// by Batch job. -typedef CloudLoggingOption = $Empty; +/// `CloudLoggingOption` contains additional settings for Cloud Logging logs +/// generated by Batch job. +class CloudLoggingOption { + /// Set this flag to true to change the + /// [monitored resource type](https://cloud.google.com/monitoring/api/resources) + /// for Cloud Logging logs generated by this Batch job from the + /// \[`batch.googleapis.com/Job`\](https://cloud.google.com/monitoring/api/resources#tag_batch.googleapis.com/Job) + /// type to the formerly used + /// \[`generic_task`\](https://cloud.google.com/monitoring/api/resources#tag_generic_task) + /// type. + /// + /// Optional. + core.bool? useGenericTaskMonitoredResource; + + CloudLoggingOption({ + this.useGenericTaskMonitoredResource, + }); + + CloudLoggingOption.fromJson(core.Map json_) + : this( + useGenericTaskMonitoredResource: + json_.containsKey('useGenericTaskMonitoredResource') + ? json_['useGenericTaskMonitoredResource'] as core.bool + : null, + ); + + core.Map toJson() => { + if (useGenericTaskMonitoredResource != null) + 'useGenericTaskMonitoredResource': useGenericTaskMonitoredResource!, + }; +} /// Compute resource requirements. /// @@ -1678,6 +1722,22 @@ class Container { /// ENTRYPOINT. core.List? commands; + /// If set to true, this container runnable uses Image streaming. + /// + /// Use Image streaming to allow the runnable to initialize without waiting + /// for the entire container image to download, which can significantly reduce + /// startup time for large container images. When `enableImageStreaming` is + /// set to true, the container runtime is [containerd](https://containerd.io/) + /// instead of Docker. Additionally, this container runnable only supports the + /// following `container` subfields: `imageUri`, `commands[]`, `entrypoint`, + /// and `volumes[]`; any other `container` subfields are ignored. For more + /// information about the requirements and limitations for using Image + /// streaming with Batch, see the \[`image-streaming` sample on + /// GitHub\](https://github.com/GoogleCloudPlatform/batch-samples/tree/main/api-samples/image-streaming). + /// + /// Optional. + core.bool? enableImageStreaming; + /// Overrides the `ENTRYPOINT` specified in the container. core.String? entrypoint; @@ -1688,16 +1748,31 @@ class Container { /// running this container, e.g. "--network host". core.String? options; - /// Optional password for logging in to a docker registry. - /// - /// If password matches `projects / * /secrets / * /versions / * ` then Batch - /// will read the password from the Secret Manager; + /// Required if the container image is from a private Docker registry. + /// + /// The password to login to the Docker registry that contains the image. For + /// security, it is strongly recommended to specify an encrypted password by + /// using a Secret Manager secret: `projects / * /secrets / * /versions / * `. + /// Warning: If you specify the password using plain text, you risk the + /// password being exposed to any users who can view the job or its logs. To + /// avoid this risk, specify a secret that contains the password instead. + /// Learn more about + /// [Secret Manager](https://cloud.google.com/secret-manager/docs/) and + /// [using Secret Manager with Batch](https://cloud.google.com/batch/docs/create-run-job-secret-manager). core.String? password; - /// Optional username for logging in to a docker registry. - /// - /// If username matches `projects / * /secrets / * /versions / * ` then Batch - /// will read the username from the Secret Manager. + /// Required if the container image is from a private Docker registry. + /// + /// The username to login to the Docker registry that contains the image. You + /// can either specify the username directly by using plain text or specify an + /// encrypted username by using a Secret Manager secret: `projects / * + /// /secrets / * /versions / * `. However, using a secret is recommended for + /// enhanced security. Caution: If you specify the username using plain text, + /// you risk the username being exposed to any users who can view the job or + /// its logs. To avoid this risk, specify a secret that contains the username + /// instead. Learn more about + /// [Secret Manager](https://cloud.google.com/secret-manager/docs/) and + /// [using Secret Manager with Batch](https://cloud.google.com/batch/docs/create-run-job-secret-manager). core.String? username; /// Volumes to mount (bind mount) from the host machine files or directories @@ -1716,6 +1791,7 @@ class Container { Container({ this.blockExternalNetwork, this.commands, + this.enableImageStreaming, this.entrypoint, this.imageUri, this.options, @@ -1734,6 +1810,9 @@ class Container { .map((value) => value as core.String) .toList() : null, + enableImageStreaming: json_.containsKey('enableImageStreaming') + ? json_['enableImageStreaming'] as core.bool + : null, entrypoint: json_.containsKey('entrypoint') ? json_['entrypoint'] as core.String : null, @@ -1760,6 +1839,8 @@ class Container { if (blockExternalNetwork != null) 'blockExternalNetwork': blockExternalNetwork!, if (commands != null) 'commands': commands!, + if (enableImageStreaming != null) + 'enableImageStreaming': enableImageStreaming!, if (entrypoint != null) 'entrypoint': entrypoint!, if (imageUri != null) 'imageUri': imageUri!, if (options != null) 'options': options!, @@ -2203,7 +2284,7 @@ class Job { /// Required. core.List? taskGroups; - /// A system generated unique ID (in UUID4 format) for the Job. + /// A system generated unique ID for the Job. /// /// Output only. core.String? uid; @@ -2627,8 +2708,8 @@ class LocationPolicy { class LogsPolicy { /// Additional settings for Cloud Logging. /// - /// It will only take effect when the destination of LogsPolicy is set to - /// CLOUD_LOGGING. + /// It will only take effect when the destination of `LogsPolicy` is set to + /// `CLOUD_LOGGING`. /// /// Optional. CloudLoggingOption? cloudLoggingOption; @@ -3370,9 +3451,19 @@ class TaskGroup { /// the TaskGroup and set the BATCH_HOSTS_FILE environment variable to the /// path of that file. /// - /// Defaults to false. + /// Defaults to false. The host file supports up to 1000 VMs. core.bool? requireHostsFile; + /// If not set or set to false, Batch uses the root user to execute runnables. + /// + /// If set to true, Batch runs the runnables using a non-root user. Currently, + /// the non-root user Batch used is generated by OS Login. For more + /// information, see + /// [About OS Login](https://cloud.google.com/compute/docs/oslogin). + /// + /// Optional. + core.bool? runAsNonRoot; + /// Scheduling policy for Tasks in the TaskGroup. /// /// The default value is AS_SOON_AS_POSSIBLE. @@ -3417,6 +3508,7 @@ class TaskGroup { this.parallelism, this.permissiveSsh, this.requireHostsFile, + this.runAsNonRoot, this.schedulingPolicy, this.taskCount, this.taskCountPerNode, @@ -3436,6 +3528,9 @@ class TaskGroup { requireHostsFile: json_.containsKey('requireHostsFile') ? json_['requireHostsFile'] as core.bool : null, + runAsNonRoot: json_.containsKey('runAsNonRoot') + ? json_['runAsNonRoot'] as core.bool + : null, schedulingPolicy: json_.containsKey('schedulingPolicy') ? json_['schedulingPolicy'] as core.String : null, @@ -3462,6 +3557,7 @@ class TaskGroup { if (parallelism != null) 'parallelism': parallelism!, if (permissiveSsh != null) 'permissiveSsh': permissiveSsh!, if (requireHostsFile != null) 'requireHostsFile': requireHostsFile!, + if (runAsNonRoot != null) 'runAsNonRoot': runAsNonRoot!, if (schedulingPolicy != null) 'schedulingPolicy': schedulingPolicy!, if (taskCount != null) 'taskCount': taskCount!, if (taskCountPerNode != null) 'taskCountPerNode': taskCountPerNode!, diff --git a/generated/googleapis/lib/beyondcorp/v1.dart b/generated/googleapis/lib/beyondcorp/v1.dart index 86a229344..5aa9f3476 100644 --- a/generated/googleapis/lib/beyondcorp/v1.dart +++ b/generated/googleapis/lib/beyondcorp/v1.dart @@ -4091,14 +4091,31 @@ class GoogleIamV1Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -4107,12 +4124,19 @@ class GoogleIamV1Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; GoogleIamV1Binding({ diff --git a/generated/googleapis/lib/bigquery/v2.dart b/generated/googleapis/lib/bigquery/v2.dart index 33b6aa51e..45e26437b 100644 --- a/generated/googleapis/lib/bigquery/v2.dart +++ b/generated/googleapis/lib/bigquery/v2.dart @@ -115,9 +115,11 @@ class DatasetsResource { /// /// Request parameters: /// - /// [projectId] - Project ID of the dataset being deleted + /// [projectId] - Required. Project ID of the dataset being deleted + /// Value must have pattern `^\[^/\]+$`. /// - /// [datasetId] - Dataset ID of dataset being deleted + /// [datasetId] - Required. Dataset ID of dataset being deleted + /// Value must have pattern `^\[^/\]+$`. /// /// [deleteContents] - If True, delete all the tables in the dataset. If False /// and the dataset contains tables, the request will fail. Default is False @@ -142,9 +144,9 @@ class DatasetsResource { }; final url_ = 'projects/' + - commons.escapeVariable('$projectId') + + core.Uri.encodeFull('$projectId') + '/datasets/' + - commons.escapeVariable('$datasetId'); + core.Uri.encodeFull('$datasetId'); await _requester.request( url_, @@ -158,13 +160,23 @@ class DatasetsResource { /// /// Request parameters: /// - /// [projectId] - Project ID of the requested dataset + /// [projectId] - Required. Project ID of the requested dataset + /// Value must have pattern `^\[^/\]+$`. /// - /// [datasetId] - Dataset ID of the requested dataset + /// [datasetId] - Required. Dataset ID of the requested dataset + /// Value must have pattern `^\[^/\]+$`. /// - /// [datasetView] - Specifies the view that determines which dataset + /// [datasetView] - Optional. Specifies the view that determines which dataset /// information is returned. By default, metadata and ACL information are - /// returned. Allowed values: METADATA, ACL, FULL. + /// returned. + /// Possible string values are: + /// - "DATASET_VIEW_UNSPECIFIED" : The default value. Default to the FULL + /// view. + /// - "METADATA" : Includes metadata information for the dataset, such as + /// location, etag, lastModifiedTime, etc. + /// - "ACL" : Includes ACL information for the dataset, which defines dataset + /// access for one or more entities. + /// - "FULL" : Includes both dataset metadata and ACL information. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -188,9 +200,9 @@ class DatasetsResource { }; final url_ = 'projects/' + - commons.escapeVariable('$projectId') + + core.Uri.encodeFull('$projectId') + '/datasets/' + - commons.escapeVariable('$datasetId'); + core.Uri.encodeFull('$datasetId'); final response_ = await _requester.request( url_, @@ -206,7 +218,8 @@ class DatasetsResource { /// /// Request parameters: /// - /// [projectId] - Project ID of the new dataset + /// [projectId] - Required. Project ID of the new dataset + /// Value must have pattern `^\[^/\]+$`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -228,8 +241,7 @@ class DatasetsResource { if ($fields != null) 'fields': [$fields], }; - final url_ = - 'projects/' + commons.escapeVariable('$projectId') + '/datasets'; + final url_ = 'projects/' + core.Uri.encodeFull('$projectId') + '/datasets'; final response_ = await _requester.request( url_, @@ -240,22 +252,27 @@ class DatasetsResource { return Dataset.fromJson(response_ as core.Map); } - /// Lists all datasets in the specified project to which you have been granted - /// the READER dataset role. + /// Lists all datasets in the specified project to which the user has been + /// granted the READER dataset role. /// /// Request parameters: /// - /// [projectId] - Project ID of the datasets to be listed + /// [projectId] - Required. Project ID of the datasets to be listed + /// Value must have pattern `^\[^/\]+$`. /// /// [all] - Whether to list all datasets, including hidden ones /// /// [filter] - An expression for filtering the results of the request by - /// label. The syntax is "labels.\\[:\\]". Multiple filters can - /// be ANDed together by connecting with a space. Example: - /// "labels.department:receiving labels.active". See Filtering datasets using - /// labels for details. + /// label. The syntax is \"labels.\\[:\\]\". Multiple filters + /// can be ANDed together by connecting with a space. Example: + /// \"labels.department:receiving labels.active\". See \[Filtering datasets + /// using + /// labels\](/bigquery/docs/labeling-datasets#filtering_datasets_using_labels) + /// for details. /// - /// [maxResults] - The maximum number of results to return + /// [maxResults] - The maximum number of results to return in a single + /// response page. Leverage the page tokens to iterate through the entire + /// collection. /// /// [pageToken] - Page token, returned by a previous call, to request the next /// page of results @@ -286,8 +303,7 @@ class DatasetsResource { if ($fields != null) 'fields': [$fields], }; - final url_ = - 'projects/' + commons.escapeVariable('$projectId') + '/datasets'; + final url_ = 'projects/' + core.Uri.encodeFull('$projectId') + '/datasets'; final response_ = await _requester.request( url_, @@ -302,15 +318,17 @@ class DatasetsResource { /// /// The update method replaces the entire dataset resource, whereas the patch /// method only replaces fields that are provided in the submitted dataset - /// resource. This method supports patch semantics. + /// resource. This method supports RFC5789 patch semantics. /// /// [request] - The metadata request object. /// /// Request parameters: /// - /// [projectId] - Project ID of the dataset being updated + /// [projectId] - Required. Project ID of the dataset being updated + /// Value must have pattern `^\[^/\]+$`. /// - /// [datasetId] - Dataset ID of the dataset being updated + /// [datasetId] - Required. Dataset ID of the dataset being updated + /// Value must have pattern `^\[^/\]+$`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -334,9 +352,9 @@ class DatasetsResource { }; final url_ = 'projects/' + - commons.escapeVariable('$projectId') + + core.Uri.encodeFull('$projectId') + '/datasets/' + - commons.escapeVariable('$datasetId'); + core.Uri.encodeFull('$datasetId'); final response_ = await _requester.request( url_, @@ -347,6 +365,57 @@ class DatasetsResource { return Dataset.fromJson(response_ as core.Map); } + /// Undeletes a dataset which is within time travel window based on datasetId. + /// + /// If a time is specified, the dataset version deleted at that time is + /// undeleted, else the last live version is undeleted. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [projectId] - Required. Project ID of the dataset to be undeleted + /// Value must have pattern `^\[^/\]+$`. + /// + /// [datasetId] - Required. Dataset ID of dataset being deleted + /// Value must have pattern `^\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Dataset]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future undelete( + UndeleteDatasetRequest request, + core.String projectId, + core.String datasetId, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + core.Uri.encodeFull('$projectId') + + '/datasets/' + + core.Uri.encodeFull('$datasetId') + + ':undelete'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Dataset.fromJson(response_ as core.Map); + } + /// Updates information in an existing dataset. /// /// The update method replaces the entire dataset resource, whereas the patch @@ -357,9 +426,11 @@ class DatasetsResource { /// /// Request parameters: /// - /// [projectId] - Project ID of the dataset being updated + /// [projectId] - Required. Project ID of the dataset being updated + /// Value must have pattern `^\[^/\]+$`. /// - /// [datasetId] - Dataset ID of the dataset being updated + /// [datasetId] - Required. Dataset ID of the dataset being updated + /// Value must have pattern `^\[^/\]+$`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -383,9 +454,9 @@ class DatasetsResource { }; final url_ = 'projects/' + - commons.escapeVariable('$projectId') + + core.Uri.encodeFull('$projectId') + '/datasets/' + - commons.escapeVariable('$datasetId'); + core.Uri.encodeFull('$datasetId'); final response_ = await _requester.request( url_, @@ -410,12 +481,17 @@ class JobsResource { /// /// Request parameters: /// - /// [projectId] - \[Required\] Project ID of the job to cancel + /// [projectId] - Required. Project ID of the job to cancel + /// Value must have pattern `^\[^/\]+$`. /// - /// [jobId] - \[Required\] Job ID of the job to cancel + /// [jobId] - Required. Job ID of the job to cancel + /// Value must have pattern `^\[^/\]+$`. /// - /// [location] - The geographic location of the job. Required except for US - /// and EU. See details at + /// [location] - The geographic location of the job. You must specify the + /// location to run the job for the following scenarios: - If the location to + /// run a job is not in the `us` or the `eu` multi-regional location - If the + /// job's location is in a single region (for example, `us-central1`) For more + /// information, see /// https://cloud.google.com/bigquery/docs/locations#specifying_your_location. /// /// [$fields] - Selector specifying which fields to include in a partial @@ -440,9 +516,9 @@ class JobsResource { }; final url_ = 'projects/' + - commons.escapeVariable('$projectId') + + core.Uri.encodeFull('$projectId') + '/jobs/' + - commons.escapeVariable('$jobId') + + core.Uri.encodeFull('$jobId') + '/cancel'; final response_ = await _requester.request( @@ -514,12 +590,17 @@ class JobsResource { /// /// Request parameters: /// - /// [projectId] - \[Required\] Project ID of the requested job + /// [projectId] - Required. Project ID of the requested job. + /// Value must have pattern `^\[^/\]+$`. /// - /// [jobId] - \[Required\] Job ID of the requested job + /// [jobId] - Required. Job ID of the requested job. + /// Value must have pattern `^\[^/\]+$`. /// - /// [location] - The geographic location of the job. Required except for US - /// and EU. See details at + /// [location] - The geographic location of the job. You must specify the + /// location to run the job for the following scenarios: - If the location to + /// run a job is not in the `us` or the `eu` multi-regional location - If the + /// job's location is in a single region (for example, `us-central1`) For more + /// information, see /// https://cloud.google.com/bigquery/docs/locations#specifying_your_location. /// /// [$fields] - Selector specifying which fields to include in a partial @@ -544,9 +625,9 @@ class JobsResource { }; final url_ = 'projects/' + - commons.escapeVariable('$projectId') + + core.Uri.encodeFull('$projectId') + '/jobs/' + - commons.escapeVariable('$jobId'); + core.Uri.encodeFull('$jobId'); final response_ = await _requester.request( url_, @@ -556,28 +637,44 @@ class JobsResource { return Job.fromJson(response_ as core.Map); } - /// Retrieves the results of a query job. + /// RPC to get the results of a query job. /// /// Request parameters: /// - /// [projectId] - \[Required\] Project ID of the query job + /// [projectId] - Required. Project ID of the query job. + /// Value must have pattern `^\[^/\]+$`. + /// + /// [jobId] - Required. Job ID of the query job. + /// Value must have pattern `^\[^/\]+$`. /// - /// [jobId] - \[Required\] Job ID of the query job + /// [formatOptions_useInt64Timestamp] - Optional. Output timestamp as usec + /// int64. Default is false. /// - /// [location] - The geographic location where the job should run. Required - /// except for US and EU. See details at + /// [location] - The geographic location of the job. You must specify the + /// location to run the job for the following scenarios: - If the location to + /// run a job is not in the `us` or the `eu` multi-regional location - If the + /// job's location is in a single region (for example, `us-central1`) For more + /// information, see /// https://cloud.google.com/bigquery/docs/locations#specifying_your_location. /// - /// [maxResults] - Maximum number of results to read + /// [maxResults] - Maximum number of results to read. /// /// [pageToken] - Page token, returned by a previous call, to request the next - /// page of results + /// page of results. /// - /// [startIndex] - Zero-based index of the starting row + /// [startIndex] - Zero-based index of the starting row. /// - /// [timeoutMs] - How long to wait for the query to complete, in milliseconds, - /// before returning. Default is 10 seconds. If the timeout passes before the - /// job completes, the 'jobComplete' field in the response will be false + /// [timeoutMs] - Optional: Specifies the maximum amount of time, in + /// milliseconds, that the client is willing to wait for the query to + /// complete. By default, this limit is 10 seconds (10,000 milliseconds). If + /// the query is complete, the jobComplete field in the response is true. If + /// the query has not yet completed, jobComplete is false. You can request a + /// longer timeout period in the timeoutMs field. However, the call is not + /// guaranteed to wait for the specified timeout; it typically returns after + /// around 200 seconds (200,000 milliseconds), even if the query is not + /// complete. If jobComplete is false, you can continue to wait for the query + /// to complete by calling the getQueryResults method until the jobComplete + /// field in the getQueryResults response is true. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -592,6 +689,7 @@ class JobsResource { async.Future getQueryResults( core.String projectId, core.String jobId, { + core.bool? formatOptions_useInt64Timestamp, core.String? location, core.int? maxResults, core.String? pageToken, @@ -600,6 +698,10 @@ class JobsResource { core.String? $fields, }) async { final queryParams_ = >{ + if (formatOptions_useInt64Timestamp != null) + 'formatOptions.useInt64Timestamp': [ + '${formatOptions_useInt64Timestamp}' + ], if (location != null) 'location': [location], if (maxResults != null) 'maxResults': ['${maxResults}'], if (pageToken != null) 'pageToken': [pageToken], @@ -609,9 +711,9 @@ class JobsResource { }; final url_ = 'projects/' + - commons.escapeVariable('$projectId') + + core.Uri.encodeFull('$projectId') + '/queries/' + - commons.escapeVariable('$jobId'); + core.Uri.encodeFull('$jobId'); final response_ = await _requester.request( url_, @@ -624,13 +726,19 @@ class JobsResource { /// Starts a new asynchronous job. /// - /// Requires the Can View project role. + /// This API has two different kinds of endpoint URIs, as this method supports + /// a variety of use cases. * The *Metadata* URI is used for most + /// interactions, as it accepts the job configuration directly. * The *Upload* + /// URI is ONLY for the case when you're sending both a load job configuration + /// and a data stream together. In this case, the Upload URI accepts the job + /// configuration and the data as two distinct multipart MIME parts. /// /// [request] - The metadata request object. /// /// Request parameters: /// - /// [projectId] - Project ID of the project that will be billed for the job + /// [projectId] - Project ID of project that will be billed for the job. + /// Value must have pattern `^\[^/\]+$`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -662,14 +770,14 @@ class JobsResource { core.String url_; if (uploadMedia == null) { - url_ = 'projects/' + commons.escapeVariable('$projectId') + '/jobs'; + url_ = 'projects/' + core.Uri.encodeFull('$projectId') + '/jobs'; } else if (uploadOptions is commons.ResumableUploadOptions) { url_ = '/resumable/upload/bigquery/v2/projects/' + - commons.escapeVariable('$projectId') + + core.Uri.encodeFull('$projectId') + '/jobs'; } else { url_ = '/upload/bigquery/v2/projects/' + - commons.escapeVariable('$projectId') + + core.Uri.encodeFull('$projectId') + '/jobs'; } @@ -693,26 +801,29 @@ class JobsResource { /// /// Request parameters: /// - /// [projectId] - Project ID of the jobs to list + /// [projectId] - Project ID of the jobs to list. + /// Value must have pattern `^\[^/\]+$`. /// /// [allUsers] - Whether to display jobs owned by all users in the project. - /// Default false + /// Default False. /// /// [maxCreationTime] - Max value for job creation time, in milliseconds since /// the POSIX epoch. If set, only jobs created before or at this timestamp are - /// returned + /// returned. /// - /// [maxResults] - Maximum number of results to return + /// [maxResults] - The maximum number of results to return in a single + /// response page. Leverage the page tokens to iterate through the entire + /// collection. /// /// [minCreationTime] - Min value for job creation time, in milliseconds since /// the POSIX epoch. If set, only jobs created after or at this timestamp are - /// returned + /// returned. /// /// [pageToken] - Page token, returned by a previous call, to request the next - /// page of results + /// page of results. /// - /// [parentJobId] - If set, retrieves only jobs whose parent is this job. - /// Otherwise, retrieves only jobs which have no parent + /// [parentJobId] - If set, show only child jobs of the specified parent. + /// Otherwise, show all top-level jobs. /// /// [projection] - Restrict information returned to a set of selected fields /// Possible string values are: @@ -755,7 +866,7 @@ class JobsResource { if ($fields != null) 'fields': [$fields], }; - final url_ = 'projects/' + commons.escapeVariable('$projectId') + '/jobs'; + final url_ = 'projects/' + core.Uri.encodeFull('$projectId') + '/jobs'; final response_ = await _requester.request( url_, @@ -772,7 +883,8 @@ class JobsResource { /// /// Request parameters: /// - /// [projectId] - Project ID of the project billed for the query + /// [projectId] - Required. Project ID of the query request. + /// Value must have pattern `^\[^/\]+$`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -794,8 +906,7 @@ class JobsResource { if ($fields != null) 'fields': [$fields], }; - final url_ = - 'projects/' + commons.escapeVariable('$projectId') + '/queries'; + final url_ = 'projects/' + core.Uri.encodeFull('$projectId') + '/queries'; final response_ = await _requester.request( url_, @@ -1025,12 +1136,13 @@ class ProjectsResource { ProjectsResource(commons.ApiRequester client) : _requester = client; - /// Returns the email address of the service account for your project used for - /// interactions with Google Cloud KMS. + /// RPC to get the service account for a project used for interactions with + /// Google Cloud KMS /// /// Request parameters: /// - /// [projectId] - Project ID for which the service account is requested. + /// [projectId] - Required. ID of the project. + /// Value must have pattern `^\[^/\]+$`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -1051,7 +1163,7 @@ class ProjectsResource { }; final url_ = - 'projects/' + commons.escapeVariable('$projectId') + '/serviceAccount'; + 'projects/' + core.Uri.encodeFull('$projectId') + '/serviceAccount'; final response_ = await _requester.request( url_, @@ -1062,14 +1174,22 @@ class ProjectsResource { response_ as core.Map); } - /// Lists all projects to which you have been granted any project role. + /// RPC to list projects to which the user has been granted any project role. + /// + /// Users of this method are encouraged to consider the + /// [Resource Manager](https://cloud.google.com/resource-manager/docs/) API, + /// which provides the underlying data for this method and has more + /// capabilities. /// /// Request parameters: /// - /// [maxResults] - Maximum number of results to return + /// [maxResults] - `maxResults` unset returns all results, up to 50 per page. + /// Additionally, the number of projects in a page may be fewer than + /// `maxResults` because projects are retrieved and then filtered to only + /// projects with the BigQuery API enabled. /// /// [pageToken] - Page token, returned by a previous call, to request the next - /// page of results + /// page of results. If not present, no further pages are present. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -1555,17 +1675,18 @@ class TabledataResource { /// Streams data into BigQuery one record at a time without needing to run a /// load job. /// - /// Requires the WRITER dataset role. - /// /// [request] - The metadata request object. /// /// Request parameters: /// - /// [projectId] - Project ID of the destination table. + /// [projectId] - Required. Project ID of the destination. + /// Value must have pattern `^\[^/\]+$`. /// - /// [datasetId] - Dataset ID of the destination table. + /// [datasetId] - Required. Dataset ID of the destination. + /// Value must have pattern `^\[^/\]+$`. /// - /// [tableId] - Table ID of the destination table. + /// [tableId] - Required. Table ID of the destination. + /// Value must have pattern `^\[^/\]+$`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -1590,11 +1711,11 @@ class TabledataResource { }; final url_ = 'projects/' + - commons.escapeVariable('$projectId') + + core.Uri.encodeFull('$projectId') + '/datasets/' + - commons.escapeVariable('$datasetId') + + core.Uri.encodeFull('$datasetId') + '/tables/' + - commons.escapeVariable('$tableId') + + core.Uri.encodeFull('$tableId') + '/insertAll'; final response_ = await _requester.request( @@ -1607,27 +1728,32 @@ class TabledataResource { response_ as core.Map); } - /// Retrieves table data from a specified set of rows. - /// - /// Requires the READER dataset role. + /// List the content of a table in rows. /// /// Request parameters: /// - /// [projectId] - Project ID of the table to read + /// [projectId] - Required. Project id of the table to list. + /// Value must have pattern `^\[^/\]+$`. + /// + /// [datasetId] - Required. Dataset id of the table to list. + /// Value must have pattern `^\[^/\]+$`. /// - /// [datasetId] - Dataset ID of the table to read + /// [tableId] - Required. Table id of the table to list. + /// Value must have pattern `^\[^/\]+$`. /// - /// [tableId] - Table ID of the table to read + /// [formatOptions_useInt64Timestamp] - Optional. Output timestamp as usec + /// int64. Default is false. /// - /// [maxResults] - Maximum number of results to return + /// [maxResults] - Row limit of the table. /// - /// [pageToken] - Page token, returned by a previous call, identifying the - /// result set + /// [pageToken] - To retrieve the next page of table data, set this field to + /// the string provided in the pageToken field of the response body from your + /// previous call to tabledata.list. /// - /// [selectedFields] - List of fields to return (comma-separated). If - /// unspecified, all fields are returned + /// [selectedFields] - Subset of fields to return, supports select into sub + /// fields. Example: selected_fields = "a,e.d.f"; /// - /// [startIndex] - Zero-based index of the starting row to read + /// [startIndex] - Start row index of the table. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -1643,6 +1769,7 @@ class TabledataResource { core.String projectId, core.String datasetId, core.String tableId, { + core.bool? formatOptions_useInt64Timestamp, core.int? maxResults, core.String? pageToken, core.String? selectedFields, @@ -1650,6 +1777,10 @@ class TabledataResource { core.String? $fields, }) async { final queryParams_ = >{ + if (formatOptions_useInt64Timestamp != null) + 'formatOptions.useInt64Timestamp': [ + '${formatOptions_useInt64Timestamp}' + ], if (maxResults != null) 'maxResults': ['${maxResults}'], if (pageToken != null) 'pageToken': [pageToken], if (selectedFields != null) 'selectedFields': [selectedFields], @@ -1658,11 +1789,11 @@ class TabledataResource { }; final url_ = 'projects/' + - commons.escapeVariable('$projectId') + + core.Uri.encodeFull('$projectId') + '/datasets/' + - commons.escapeVariable('$datasetId') + + core.Uri.encodeFull('$datasetId') + '/tables/' + - commons.escapeVariable('$tableId') + + core.Uri.encodeFull('$tableId') + '/data'; final response_ = await _requester.request( @@ -1686,11 +1817,14 @@ class TablesResource { /// /// Request parameters: /// - /// [projectId] - Project ID of the table to delete + /// [projectId] - Required. Project ID of the table to delete + /// Value must have pattern `^\[^/\]+$`. /// - /// [datasetId] - Dataset ID of the table to delete + /// [datasetId] - Required. Dataset ID of the table to delete + /// Value must have pattern `^\[^/\]+$`. /// - /// [tableId] - Table ID of the table to delete + /// [tableId] - Required. Table ID of the table to delete + /// Value must have pattern `^\[^/\]+$`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -1711,11 +1845,11 @@ class TablesResource { }; final url_ = 'projects/' + - commons.escapeVariable('$projectId') + + core.Uri.encodeFull('$projectId') + '/datasets/' + - commons.escapeVariable('$datasetId') + + core.Uri.encodeFull('$datasetId') + '/tables/' + - commons.escapeVariable('$tableId'); + core.Uri.encodeFull('$tableId'); await _requester.request( url_, @@ -1732,31 +1866,38 @@ class TablesResource { /// /// Request parameters: /// - /// [projectId] - Project ID of the requested table + /// [projectId] - Required. Project ID of the requested table + /// Value must have pattern `^\[^/\]+$`. /// - /// [datasetId] - Dataset ID of the requested table + /// [datasetId] - Required. Dataset ID of the requested table + /// Value must have pattern `^\[^/\]+$`. /// - /// [tableId] - Table ID of the requested table + /// [tableId] - Required. Table ID of the requested table + /// Value must have pattern `^\[^/\]+$`. /// - /// [selectedFields] - List of fields to return (comma-separated). If - /// unspecified, all fields are returned + /// [selectedFields] - List of table schema fields to return + /// (comma-separated). If unspecified, all fields are returned. A fieldMask + /// cannot be used here because the fields will automatically be converted + /// from camelCase to snake_case and the conversion will fail if there are + /// underscores. Since these are fields in BigQuery table schemas, underscores + /// are allowed. /// - /// [view] - Specifies the view that determines which table information is - /// returned. By default, basic table information and storage statistics - /// (STORAGE_STATS) are returned. + /// [view] - Optional. Specifies the view that determines which table + /// information is returned. By default, basic table information and storage + /// statistics (STORAGE_STATS) are returned. /// Possible string values are: + /// - "TABLE_METADATA_VIEW_UNSPECIFIED" : The default value. Default to the + /// STORAGE_STATS view. /// - "BASIC" : Includes basic table information including schema and /// partitioning specification. This view does not include storage statistics /// such as numRows or numBytes. This view is significantly more efficient and /// should be used to support high query rates. - /// - "FULL" : Includes all table information, including storage statistics. - /// It returns same information as STORAGE_STATS view, but may contain - /// additional information in the future. /// - "STORAGE_STATS" : Includes all information in the BASIC view as well as /// storage statistics (numBytes, numLongTermBytes, numRows and /// lastModifiedTime). - /// - "TABLE_METADATA_VIEW_UNSPECIFIED" : The default value. Default to the - /// STORAGE_STATS view. + /// - "FULL" : Includes all table information, including storage statistics. + /// It returns same information as STORAGE_STATS view, but may contain + /// additional information in the future. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -1783,11 +1924,11 @@ class TablesResource { }; final url_ = 'projects/' + - commons.escapeVariable('$projectId') + + core.Uri.encodeFull('$projectId') + '/datasets/' + - commons.escapeVariable('$datasetId') + + core.Uri.encodeFull('$datasetId') + '/tables/' + - commons.escapeVariable('$tableId'); + core.Uri.encodeFull('$tableId'); final response_ = await _requester.request( url_, @@ -1850,9 +1991,11 @@ class TablesResource { /// /// Request parameters: /// - /// [projectId] - Project ID of the new table + /// [projectId] - Required. Project ID of the new table + /// Value must have pattern `^\[^/\]+$`. /// - /// [datasetId] - Dataset ID of the new table + /// [datasetId] - Required. Dataset ID of the new table + /// Value must have pattern `^\[^/\]+$`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -1876,9 +2019,9 @@ class TablesResource { }; final url_ = 'projects/' + - commons.escapeVariable('$projectId') + + core.Uri.encodeFull('$projectId') + '/datasets/' + - commons.escapeVariable('$datasetId') + + core.Uri.encodeFull('$datasetId') + '/tables'; final response_ = await _requester.request( @@ -1896,11 +2039,15 @@ class TablesResource { /// /// Request parameters: /// - /// [projectId] - Project ID of the tables to list + /// [projectId] - Required. Project ID of the tables to list + /// Value must have pattern `^\[^/\]+$`. /// - /// [datasetId] - Dataset ID of the tables to list + /// [datasetId] - Required. Dataset ID of the tables to list + /// Value must have pattern `^\[^/\]+$`. /// - /// [maxResults] - Maximum number of results to return + /// [maxResults] - The maximum number of results to return in a single + /// response page. Leverage the page tokens to iterate through the entire + /// collection. /// /// [pageToken] - Page token, returned by a previous call, to request the next /// page of results @@ -1929,9 +2076,9 @@ class TablesResource { }; final url_ = 'projects/' + - commons.escapeVariable('$projectId') + + core.Uri.encodeFull('$projectId') + '/datasets/' + - commons.escapeVariable('$datasetId') + + core.Uri.encodeFull('$datasetId') + '/tables'; final response_ = await _requester.request( @@ -1946,20 +2093,23 @@ class TablesResource { /// /// The update method replaces the entire table resource, whereas the patch /// method only replaces fields that are provided in the submitted table - /// resource. This method supports patch semantics. + /// resource. This method supports RFC5789 patch semantics. /// /// [request] - The metadata request object. /// /// Request parameters: /// - /// [projectId] - Project ID of the table to update + /// [projectId] - Required. Project ID of the table to update + /// Value must have pattern `^\[^/\]+$`. /// - /// [datasetId] - Dataset ID of the table to update + /// [datasetId] - Required. Dataset ID of the table to update + /// Value must have pattern `^\[^/\]+$`. /// - /// [tableId] - Table ID of the table to update + /// [tableId] - Required. Table ID of the table to update + /// Value must have pattern `^\[^/\]+$`. /// - /// [autodetectSchema] - When true will autodetect schema, else will keep - /// original schema + /// [autodetectSchema] - Optional. When true will autodetect schema, else will + /// keep original schema /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -1987,11 +2137,11 @@ class TablesResource { }; final url_ = 'projects/' + - commons.escapeVariable('$projectId') + + core.Uri.encodeFull('$projectId') + '/datasets/' + - commons.escapeVariable('$datasetId') + + core.Uri.encodeFull('$datasetId') + '/tables/' + - commons.escapeVariable('$tableId'); + core.Uri.encodeFull('$tableId'); final response_ = await _requester.request( url_, @@ -2101,22 +2251,25 @@ class TablesResource { /// Updates information in an existing table. /// - /// The update method replaces the entire table resource, whereas the patch - /// method only replaces fields that are provided in the submitted table + /// The update method replaces the entire Table resource, whereas the patch + /// method only replaces fields that are provided in the submitted Table /// resource. /// /// [request] - The metadata request object. /// /// Request parameters: /// - /// [projectId] - Project ID of the table to update + /// [projectId] - Required. Project ID of the table to update + /// Value must have pattern `^\[^/\]+$`. /// - /// [datasetId] - Dataset ID of the table to update + /// [datasetId] - Required. Dataset ID of the table to update + /// Value must have pattern `^\[^/\]+$`. /// - /// [tableId] - Table ID of the table to update + /// [tableId] - Required. Table ID of the table to update + /// Value must have pattern `^\[^/\]+$`. /// - /// [autodetectSchema] - When true will autodetect schema, else will keep - /// original schema + /// [autodetectSchema] - Optional. When true will autodetect schema, else will + /// keep original schema /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -2144,11 +2297,11 @@ class TablesResource { }; final url_ = 'projects/' + - commons.escapeVariable('$projectId') + + core.Uri.encodeFull('$projectId') + '/datasets/' + - commons.escapeVariable('$datasetId') + + core.Uri.encodeFull('$datasetId') + '/tables/' + - commons.escapeVariable('$tableId'); + core.Uri.encodeFull('$tableId'); final response_ = await _requester.request( url_, @@ -2253,6 +2406,48 @@ class AggregateClassificationMetrics { }; } +/// Represents privacy policy associated with "aggregation threshold" method. +class AggregationThresholdPolicy { + /// The privacy unit column(s) associated with this policy. + /// + /// For now, only one column per data source object (table, view) is allowed + /// as a privacy unit column. Representing as a repeated field in metadata for + /// extensibility to multiple columns in future. Duplicates and Repeated + /// struct fields are not allowed. For nested fields, use dot notation + /// ("outer.inner") + /// + /// Optional. + core.List? privacyUnitColumns; + + /// The threshold for the "aggregation threshold" policy. + /// + /// Optional. + core.String? threshold; + + AggregationThresholdPolicy({ + this.privacyUnitColumns, + this.threshold, + }); + + AggregationThresholdPolicy.fromJson(core.Map json_) + : this( + privacyUnitColumns: json_.containsKey('privacyUnitColumns') + ? (json_['privacyUnitColumns'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + threshold: json_.containsKey('threshold') + ? json_['threshold'] as core.String + : null, + ); + + core.Map toJson() => { + if (privacyUnitColumns != null) + 'privacyUnitColumns': privacyUnitColumns!, + if (threshold != null) 'threshold': threshold!, + }; +} + /// Input/output argument of a function or a stored procedure. class Argument { /// Defaults to FIXED_TYPE. @@ -2331,6 +2526,52 @@ class Argument { }; } +/// Arima coefficients. +class ArimaCoefficients { + /// Auto-regressive coefficients, an array of double. + core.List? autoRegressiveCoefficients; + + /// Intercept coefficient, just a double not an array. + core.double? interceptCoefficient; + + /// Moving-average coefficients, an array of double. + core.List? movingAverageCoefficients; + + ArimaCoefficients({ + this.autoRegressiveCoefficients, + this.interceptCoefficient, + this.movingAverageCoefficients, + }); + + ArimaCoefficients.fromJson(core.Map json_) + : this( + autoRegressiveCoefficients: + json_.containsKey('autoRegressiveCoefficients') + ? (json_['autoRegressiveCoefficients'] as core.List) + .map((value) => (value as core.num).toDouble()) + .toList() + : null, + interceptCoefficient: json_.containsKey('interceptCoefficient') + ? (json_['interceptCoefficient'] as core.num).toDouble() + : null, + movingAverageCoefficients: + json_.containsKey('movingAverageCoefficients') + ? (json_['movingAverageCoefficients'] as core.List) + .map((value) => (value as core.num).toDouble()) + .toList() + : null, + ); + + core.Map toJson() => { + if (autoRegressiveCoefficients != null) + 'autoRegressiveCoefficients': autoRegressiveCoefficients!, + if (interceptCoefficient != null) + 'interceptCoefficient': interceptCoefficient!, + if (movingAverageCoefficients != null) + 'movingAverageCoefficients': movingAverageCoefficients!, + }; +} + /// ARIMA model fitting metrics. class ArimaFittingMetrics { /// AIC. @@ -2469,43 +2710,15 @@ class ArimaForecastingMetrics { }; } -/// Arima order, can be used for both non-seasonal and seasonal parts. -class ArimaOrder { - /// Order of the differencing part. - core.String? d; - - /// Order of the autoregressive part. - core.String? p; - - /// Order of the moving-average part. - core.String? q; - - ArimaOrder({ - this.d, - this.p, - this.q, - }); - - ArimaOrder.fromJson(core.Map json_) - : this( - d: json_.containsKey('d') ? json_['d'] as core.String : null, - p: json_.containsKey('p') ? json_['p'] as core.String : null, - q: json_.containsKey('q') ? json_['q'] as core.String : null, - ); - - core.Map toJson() => { - if (d != null) 'd': d!, - if (p != null) 'p': p!, - if (q != null) 'q': q!, - }; -} +/// Arima model information. +class ArimaModelInfo { + /// Arima coefficients. + ArimaCoefficients? arimaCoefficients; -/// Model evaluation metrics for a single ARIMA forecasting model. -class ArimaSingleModelForecastingMetrics { /// Arima fitting metrics. ArimaFittingMetrics? arimaFittingMetrics; - /// Is arima model fitted with drift or not. + /// Whether Arima model fitted with drift or not. /// /// It is always false when d is not 1. core.bool? hasDrift; @@ -2542,7 +2755,8 @@ class ArimaSingleModelForecastingMetrics { /// values here are same as the order of time_series_id_columns. core.List? timeSeriesIds; - ArimaSingleModelForecastingMetrics({ + ArimaModelInfo({ + this.arimaCoefficients, this.arimaFittingMetrics, this.hasDrift, this.hasHolidayEffect, @@ -2554,8 +2768,12 @@ class ArimaSingleModelForecastingMetrics { this.timeSeriesIds, }); - ArimaSingleModelForecastingMetrics.fromJson(core.Map json_) + ArimaModelInfo.fromJson(core.Map json_) : this( + arimaCoefficients: json_.containsKey('arimaCoefficients') + ? ArimaCoefficients.fromJson(json_['arimaCoefficients'] + as core.Map) + : null, arimaFittingMetrics: json_.containsKey('arimaFittingMetrics') ? ArimaFittingMetrics.fromJson(json_['arimaFittingMetrics'] as core.Map) @@ -2592,6 +2810,7 @@ class ArimaSingleModelForecastingMetrics { ); core.Map toJson() => { + if (arimaCoefficients != null) 'arimaCoefficients': arimaCoefficients!, if (arimaFittingMetrics != null) 'arimaFittingMetrics': arimaFittingMetrics!, if (hasDrift != null) 'hasDrift': hasDrift!, @@ -2605,32 +2824,210 @@ class ArimaSingleModelForecastingMetrics { }; } -/// Specifies the audit configuration for a service. -/// -/// The configuration determines which permission types are logged, and what -/// identities, if any, are exempted from logging. An AuditConfig must have one -/// or more AuditLogConfigs. If there are AuditConfigs for both `allServices` -/// and a specific service, the union of the two AuditConfigs is used for that -/// service: the log_types specified in each AuditConfig are enabled, and the -/// exempted_members in each AuditLogConfig are exempted. Example Policy with -/// multiple AuditConfigs: { "audit_configs": \[ { "service": "allServices", -/// "audit_log_configs": \[ { "log_type": "DATA_READ", "exempted_members": \[ -/// "user:jose@example.com" \] }, { "log_type": "DATA_WRITE" }, { "log_type": -/// "ADMIN_READ" } \] }, { "service": "sampleservice.googleapis.com", -/// "audit_log_configs": \[ { "log_type": "DATA_READ" }, { "log_type": -/// "DATA_WRITE", "exempted_members": \[ "user:aliya@example.com" \] } \] } \] } -/// For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ -/// logging. It also exempts `jose@example.com` from DATA_READ logging, and -/// `aliya@example.com` from DATA_WRITE logging. -class AuditConfig { - /// The configuration for logging of each type of permission. - core.List? auditLogConfigs; +/// Arima order, can be used for both non-seasonal and seasonal parts. +class ArimaOrder { + /// Order of the differencing part. + core.String? d; - /// Specifies a service that will be enabled for audit logging. - /// - /// For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. - /// `allServices` is a special value that covers all services. - core.String? service; + /// Order of the autoregressive part. + core.String? p; + + /// Order of the moving-average part. + core.String? q; + + ArimaOrder({ + this.d, + this.p, + this.q, + }); + + ArimaOrder.fromJson(core.Map json_) + : this( + d: json_.containsKey('d') ? json_['d'] as core.String : null, + p: json_.containsKey('p') ? json_['p'] as core.String : null, + q: json_.containsKey('q') ? json_['q'] as core.String : null, + ); + + core.Map toJson() => { + if (d != null) 'd': d!, + if (p != null) 'p': p!, + if (q != null) 'q': q!, + }; +} + +/// (Auto-)arima fitting result. +/// +/// Wrap everything in ArimaResult for easier refactoring if we want to use +/// model-specific iteration results. +class ArimaResult { + /// This message is repeated because there are multiple arima models fitted in + /// auto-arima. + /// + /// For non-auto-arima model, its size is one. + core.List? arimaModelInfo; + + /// Seasonal periods. + /// + /// Repeated because multiple periods are supported for one time series. + core.List? seasonalPeriods; + + ArimaResult({ + this.arimaModelInfo, + this.seasonalPeriods, + }); + + ArimaResult.fromJson(core.Map json_) + : this( + arimaModelInfo: json_.containsKey('arimaModelInfo') + ? (json_['arimaModelInfo'] as core.List) + .map((value) => ArimaModelInfo.fromJson( + value as core.Map)) + .toList() + : null, + seasonalPeriods: json_.containsKey('seasonalPeriods') + ? (json_['seasonalPeriods'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + ); + + core.Map toJson() => { + if (arimaModelInfo != null) 'arimaModelInfo': arimaModelInfo!, + if (seasonalPeriods != null) 'seasonalPeriods': seasonalPeriods!, + }; +} + +/// Model evaluation metrics for a single ARIMA forecasting model. +class ArimaSingleModelForecastingMetrics { + /// Arima fitting metrics. + ArimaFittingMetrics? arimaFittingMetrics; + + /// Is arima model fitted with drift or not. + /// + /// It is always false when d is not 1. + core.bool? hasDrift; + + /// If true, holiday_effect is a part of time series decomposition result. + core.bool? hasHolidayEffect; + + /// If true, spikes_and_dips is a part of time series decomposition result. + core.bool? hasSpikesAndDips; + + /// If true, step_changes is a part of time series decomposition result. + core.bool? hasStepChanges; + + /// Non-seasonal order. + ArimaOrder? nonSeasonalOrder; + + /// Seasonal periods. + /// + /// Repeated because multiple periods are supported for one time series. + core.List? seasonalPeriods; + + /// The time_series_id value for this time series. + /// + /// It will be one of the unique values from the time_series_id_column + /// specified during ARIMA model training. Only present when + /// time_series_id_column training option was used. + core.String? timeSeriesId; + + /// The tuple of time_series_ids identifying this time series. + /// + /// It will be one of the unique tuples of values present in the + /// time_series_id_columns specified during ARIMA model training. Only present + /// when time_series_id_columns training option was used and the order of + /// values here are same as the order of time_series_id_columns. + core.List? timeSeriesIds; + + ArimaSingleModelForecastingMetrics({ + this.arimaFittingMetrics, + this.hasDrift, + this.hasHolidayEffect, + this.hasSpikesAndDips, + this.hasStepChanges, + this.nonSeasonalOrder, + this.seasonalPeriods, + this.timeSeriesId, + this.timeSeriesIds, + }); + + ArimaSingleModelForecastingMetrics.fromJson(core.Map json_) + : this( + arimaFittingMetrics: json_.containsKey('arimaFittingMetrics') + ? ArimaFittingMetrics.fromJson(json_['arimaFittingMetrics'] + as core.Map) + : null, + hasDrift: json_.containsKey('hasDrift') + ? json_['hasDrift'] as core.bool + : null, + hasHolidayEffect: json_.containsKey('hasHolidayEffect') + ? json_['hasHolidayEffect'] as core.bool + : null, + hasSpikesAndDips: json_.containsKey('hasSpikesAndDips') + ? json_['hasSpikesAndDips'] as core.bool + : null, + hasStepChanges: json_.containsKey('hasStepChanges') + ? json_['hasStepChanges'] as core.bool + : null, + nonSeasonalOrder: json_.containsKey('nonSeasonalOrder') + ? ArimaOrder.fromJson(json_['nonSeasonalOrder'] + as core.Map) + : null, + seasonalPeriods: json_.containsKey('seasonalPeriods') + ? (json_['seasonalPeriods'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + timeSeriesId: json_.containsKey('timeSeriesId') + ? json_['timeSeriesId'] as core.String + : null, + timeSeriesIds: json_.containsKey('timeSeriesIds') + ? (json_['timeSeriesIds'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + ); + + core.Map toJson() => { + if (arimaFittingMetrics != null) + 'arimaFittingMetrics': arimaFittingMetrics!, + if (hasDrift != null) 'hasDrift': hasDrift!, + if (hasHolidayEffect != null) 'hasHolidayEffect': hasHolidayEffect!, + if (hasSpikesAndDips != null) 'hasSpikesAndDips': hasSpikesAndDips!, + if (hasStepChanges != null) 'hasStepChanges': hasStepChanges!, + if (nonSeasonalOrder != null) 'nonSeasonalOrder': nonSeasonalOrder!, + if (seasonalPeriods != null) 'seasonalPeriods': seasonalPeriods!, + if (timeSeriesId != null) 'timeSeriesId': timeSeriesId!, + if (timeSeriesIds != null) 'timeSeriesIds': timeSeriesIds!, + }; +} + +/// Specifies the audit configuration for a service. +/// +/// The configuration determines which permission types are logged, and what +/// identities, if any, are exempted from logging. An AuditConfig must have one +/// or more AuditLogConfigs. If there are AuditConfigs for both `allServices` +/// and a specific service, the union of the two AuditConfigs is used for that +/// service: the log_types specified in each AuditConfig are enabled, and the +/// exempted_members in each AuditLogConfig are exempted. Example Policy with +/// multiple AuditConfigs: { "audit_configs": \[ { "service": "allServices", +/// "audit_log_configs": \[ { "log_type": "DATA_READ", "exempted_members": \[ +/// "user:jose@example.com" \] }, { "log_type": "DATA_WRITE" }, { "log_type": +/// "ADMIN_READ" } \] }, { "service": "sampleservice.googleapis.com", +/// "audit_log_configs": \[ { "log_type": "DATA_READ" }, { "log_type": +/// "DATA_WRITE", "exempted_members": \[ "user:aliya@example.com" \] } \] } \] } +/// For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ +/// logging. It also exempts `jose@example.com` from DATA_READ logging, and +/// `aliya@example.com` from DATA_WRITE logging. +class AuditConfig { + /// The configuration for logging of each type of permission. + core.List? auditLogConfigs; + + /// Specifies a service that will be enabled for audit logging. + /// + /// For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. + /// `allServices` is a special value that covers all services. + core.String? service; AuditConfig({ this.auditLogConfigs, @@ -2664,6 +3061,7 @@ class AuditConfig { /// exempting jose@example.com from DATA_READ logging. typedef AuditLogConfig = $AuditLogConfig; +/// Options for external data sources. class AvroOptions { /// If sourceFormat is set to "AVRO", indicates whether to interpret logical /// types as the corresponding BigQuery data type (for example, TIMESTAMP), @@ -2689,13 +3087,28 @@ class AvroOptions { }; } +/// Reason why BI Engine didn't accelerate the query (or sub-query). class BiEngineReason { - /// \[Output-only\] High-level BI Engine reason for partial or disabled + /// High-level BI Engine reason for partial or disabled acceleration + /// + /// Output only. + /// Possible string values are: + /// - "CODE_UNSPECIFIED" : BiEngineReason not specified. + /// - "NO_RESERVATION" : No reservation available for BI Engine acceleration. + /// - "INSUFFICIENT_RESERVATION" : Not enough memory available for BI Engine + /// acceleration. + /// - "UNSUPPORTED_SQL_TEXT" : This particular SQL text is not supported for + /// acceleration by BI Engine. + /// - "INPUT_TOO_LARGE" : Input too large for acceleration by BI Engine. + /// - "OTHER_REASON" : Catch-all code for all other cases for partial or + /// disabled acceleration. + /// - "TABLE_EXCLUDED" : One or more tables were not eligible for BI Engine /// acceleration. core.String? code; - /// \[Output-only\] Free form human-readable reason for partial or disabled - /// acceleration. + /// Free form human-readable reason for partial or disabled acceleration. + /// + /// Output only. core.String? message; BiEngineReason({ @@ -2717,13 +3130,34 @@ class BiEngineReason { }; } +/// Statistics for a BI Engine specific query. +/// +/// Populated as part of JobStatistics2 class BiEngineStatistics { - /// \[Output-only\] Specifies which mode of BI Engine acceleration was - /// performed (if any). + /// Specifies which mode of BI Engine acceleration was performed (if any). + /// + /// Output only. + /// Possible string values are: + /// - "BI_ENGINE_ACCELERATION_MODE_UNSPECIFIED" : BiEngineMode type not + /// specified. + /// - "BI_ENGINE_DISABLED" : BI Engine acceleration was attempted but + /// disabled. bi_engine_reasons specifies a more detailed reason. + /// - "PARTIAL_INPUT" : Some inputs were accelerated using BI Engine. See + /// bi_engine_reasons for why parts of the query were not accelerated. + /// - "FULL_INPUT" : All of the query inputs were accelerated using BI Engine. + /// - "FULL_QUERY" : All of the query was accelerated using BI Engine. core.String? accelerationMode; - /// \[Output-only\] Specifies which mode of BI Engine acceleration was - /// performed (if any). + /// Specifies which mode of BI Engine acceleration was performed (if any). + /// + /// Output only. + /// Possible string values are: + /// - "ACCELERATION_MODE_UNSPECIFIED" : BiEngineMode type not specified. + /// - "DISABLED" : BI Engine disabled the acceleration. bi_engine_reasons + /// specifies a more detailed reason. + /// - "PARTIAL" : Part of the query was accelerated using BI Engine. See + /// bi_engine_reasons for why parts of the query were not accelerated. + /// - "FULL" : All of the query was accelerated using BI Engine. core.String? biEngineMode; /// In case of DISABLED or PARTIAL bi_engine_mode, these contain the @@ -2761,39 +3195,41 @@ class BiEngineStatistics { }; } +/// Configuration for BigLake managed tables. class BigLakeConfiguration { - /// Required and immutable. + /// The connection specifying the credentials to be used to read and write to + /// external storage, such as Cloud Storage. /// - /// Credential reference for accessing external storage system. Normalized as - /// project_id.location_id.connection_id. + /// The connection_id can have the form + /// "\.\.\" or + /// "projects/\/locations/\/connections/\". /// /// Required. core.String? connectionId; - /// Required and immutable. - /// - /// Open source file format that the table data is stored in. Currently only - /// PARQUET is supported. + /// The file format the table data is stored in. /// /// Required. + /// Possible string values are: + /// - "FILE_FORMAT_UNSPECIFIED" : Default Value. + /// - "PARQUET" : Apache Parquet format. core.String? fileFormat; - /// Required and immutable. + /// The fully qualified location prefix of the external folder where table + /// data is stored. /// - /// Fully qualified location prefix of the external folder where data is - /// stored. Normalized to standard format: "gs:////". Starts with "gs://" - /// rather than "/bigstore/". Ends with "/". Does not contain "*". See also - /// BigLakeStorageMetadata on how it is used. + /// The '*' wildcard character is not allowed. The URI should be in the format + /// "gs://bucket/path_to_table/" /// /// Required. core.String? storageUri; - /// Required and immutable. - /// - /// Open source file format that the table data is stored in. Currently only - /// PARQUET is supported. + /// The table format the metadata only snapshots are stored in. /// /// Required. + /// Possible string values are: + /// - "TABLE_FORMAT_UNSPECIFIED" : Default Value. + /// - "ICEBERG" : Apache Iceberg format. core.String? tableFormat; BigLakeConfiguration({ @@ -2828,16 +3264,10 @@ class BigLakeConfiguration { } class BigQueryModelTraining { - /// \[Output-only, Beta\] Index of current ML training iteration. - /// - /// Updated during create model query job to show job progress. + /// Deprecated. core.int? currentIteration; - /// \[Output-only, Beta\] Expected number of iterations for the create model - /// query job specified as num_iterations in the input query. - /// - /// The actual total number of iterations may be less than this number due to - /// early stop. + /// Deprecated. core.String? expectedTotalIterations; BigQueryModelTraining({ @@ -2862,6 +3292,7 @@ class BigQueryModelTraining { }; } +/// Information related to a Bigtable column. class BigtableColumn { /// The encoding of the values when the type is not STRING. /// @@ -2875,8 +3306,8 @@ class BigtableColumn { core.String? encoding; /// If the qualifier is not a valid BigQuery field identifier i.e. does not - /// match \[a-zA-Z\]\[a-zA-Z0-9_\]*, a valid identifier must be provided as - /// the column field name and is used as field name in queries. + /// match a-zA-Z*, a valid identifier must be provided as the column field + /// name and is used as field name in queries. /// /// Optional. core.String? fieldName; @@ -2898,8 +3329,8 @@ class BigtableColumn { /// specified in the qualifier_string field. Otherwise, a base-64 encoded /// value must be set to qualifier_encoded. The column field name is the same /// as the column qualifier. However, if the qualifier is not a valid BigQuery - /// field identifier i.e. does not match \[a-zA-Z\]\[a-zA-Z0-9_\]*, a valid - /// identifier must be provided as field_name. + /// field identifier i.e. does not match a-zA-Z*, a valid identifier must be + /// provided as field_name. /// /// Required. core.String? qualifierEncoded; @@ -2911,15 +3342,17 @@ class BigtableColumn { convert.base64.encode(bytes_).replaceAll('/', '_').replaceAll('+', '-'); } + /// Qualifier string. core.String? qualifierString; /// The type to convert the value in cells of this column. /// /// The values are expected to be encoded using HBase Bytes.toBytes function /// when using the BINARY encoding value. Following BigQuery types are allowed - /// (case-sensitive) - BYTES STRING INTEGER FLOAT BOOLEAN Default type is - /// BYTES. 'type' can also be set at the column family level. However, the - /// setting at this level takes precedence if 'type' is set at both levels. + /// (case-sensitive): * BYTES * STRING * INTEGER * FLOAT * BOOLEAN * JSON + /// Default type is BYTES. 'type' can also be set at the column family level. + /// However, the setting at this level takes precedence if 'type' is set at + /// both levels. /// /// Optional. core.String? type; @@ -2963,6 +3396,7 @@ class BigtableColumn { }; } +/// Information related to a Bigtable column family. class BigtableColumnFamily { /// Lists of columns that should be exposed as individual fields as opposed to /// a list of (column name, value) pairs. @@ -3001,9 +3435,9 @@ class BigtableColumnFamily { /// /// The values are expected to be encoded using HBase Bytes.toBytes function /// when using the BINARY encoding value. Following BigQuery types are allowed - /// (case-sensitive) - BYTES STRING INTEGER FLOAT BOOLEAN Default type is - /// BYTES. This can be overridden for a specific column by listing that column - /// in 'columns' and specifying a type for it. + /// (case-sensitive): * BYTES * STRING * INTEGER * FLOAT * BOOLEAN * JSON + /// Default type is BYTES. This can be overridden for a specific column by + /// listing that column in 'columns' and specifying a type for it. /// /// Optional. core.String? type; @@ -3045,6 +3479,7 @@ class BigtableColumnFamily { }; } +/// Options specific to Google Cloud Bigtable data sources. class BigtableOptions { /// List of column families to expose in the table schema along with their /// types. @@ -3068,6 +3503,15 @@ class BigtableOptions { /// Optional. core.bool? ignoreUnspecifiedColumnFamilies; + /// If field is true, then each column family will be read as a single JSON + /// column. + /// + /// Otherwise they are read as a repeated cell structure containing + /// timestamp/value tuples. The default value is false. + /// + /// Optional. + core.bool? outputColumnFamiliesAsJson; + /// If field is true, then the rowkey column families will be read and /// converted to string. /// @@ -3080,6 +3524,7 @@ class BigtableOptions { BigtableOptions({ this.columnFamilies, this.ignoreUnspecifiedColumnFamilies, + this.outputColumnFamiliesAsJson, this.readRowkeyAsString, }); @@ -3095,6 +3540,10 @@ class BigtableOptions { json_.containsKey('ignoreUnspecifiedColumnFamilies') ? json_['ignoreUnspecifiedColumnFamilies'] as core.bool : null, + outputColumnFamiliesAsJson: + json_.containsKey('outputColumnFamiliesAsJson') + ? json_['outputColumnFamiliesAsJson'] as core.bool + : null, readRowkeyAsString: json_.containsKey('readRowkeyAsString') ? json_['readRowkeyAsString'] as core.bool : null, @@ -3104,6 +3553,8 @@ class BigtableOptions { if (columnFamilies != null) 'columnFamilies': columnFamilies!, if (ignoreUnspecifiedColumnFamilies != null) 'ignoreUnspecifiedColumnFamilies': ignoreUnspecifiedColumnFamilies!, + if (outputColumnFamiliesAsJson != null) + 'outputColumnFamiliesAsJson': outputColumnFamiliesAsJson!, if (readRowkeyAsString != null) 'readRowkeyAsString': readRowkeyAsString!, }; @@ -3283,14 +3734,31 @@ class Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -3299,12 +3767,19 @@ class Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; Binding({ @@ -3335,31 +3810,19 @@ class Binding { } class BqmlIterationResult { - /// \[Output-only, Beta\] Time taken to run the training iteration in - /// milliseconds. + /// Deprecated. core.String? durationMs; - /// \[Output-only, Beta\] Eval loss computed on the eval data at the end of - /// the iteration. - /// - /// The eval loss is used for early stopping to avoid overfitting. No eval - /// loss if eval_split_method option is specified as no_split or auto_split - /// with input data size less than 500 rows. + /// Deprecated. core.double? evalLoss; - /// \[Output-only, Beta\] Index of the ML training iteration, starting from - /// zero for each training run. + /// Deprecated. core.int? index; - /// \[Output-only, Beta\] Learning rate used for this iteration, it varies for - /// different training iterations if learn_rate_strategy option is not - /// constant. + /// Deprecated. core.double? learnRate; - /// \[Output-only, Beta\] Training loss computed on the training data at the - /// end of the iteration. - /// - /// The training loss function is defined by model type. + /// Deprecated. core.double? trainingLoss; BqmlIterationResult({ @@ -3396,12 +3859,7 @@ class BqmlIterationResult { }; } -/// \[Output-only, Beta\] Training options used by this training run. -/// -/// These options are mutable for subsequent training runs. Default values are -/// explicitly stored for options not specified in the input query of the first -/// training run. For subsequent training runs, any option not explicitly -/// specified in the input query will be copied from the previous training run. +/// Deprecated. class BqmlTrainingRunTrainingOptions { core.bool? earlyStop; core.double? l1Reg; @@ -3471,27 +3929,16 @@ class BqmlTrainingRunTrainingOptions { } class BqmlTrainingRun { - /// \[Output-only, Beta\] List of each iteration results. + /// Deprecated. core.List? iterationResults; - /// \[Output-only, Beta\] Training run start time in milliseconds since the - /// epoch. + /// Deprecated. core.DateTime? startTime; - /// \[Output-only, Beta\] Different state applicable for a training run. - /// - /// IN PROGRESS: Training run is in progress. FAILED: Training run ended due - /// to a non-retryable failure. SUCCEEDED: Training run successfully - /// completed. CANCELLED: Training run cancelled by the user. + /// Deprecated. core.String? state; - /// \[Output-only, Beta\] Training options used by this training run. - /// - /// These options are mutable for subsequent training runs. Default values are - /// explicitly stored for options not specified in the input query of the - /// first training run. For subsequent training runs, any option not - /// explicitly specified in the input query will be copied from the previous - /// training run. + /// Deprecated. BqmlTrainingRunTrainingOptions? trainingOptions; BqmlTrainingRun({ @@ -3585,6 +4032,7 @@ class CategoryCount { }; } +/// Information about base table and clone time of a table clone. class CloneDefinition { /// Reference describing the ID of the table that was cloned. /// @@ -3661,13 +4109,53 @@ class Cluster { }; } +/// Information about a single cluster for clustering model. +class ClusterInfo { + /// Centroid id. + core.String? centroidId; + + /// Cluster radius, the average distance from centroid to each point assigned + /// to the cluster. + core.double? clusterRadius; + + /// Cluster size, the total number of points assigned to the cluster. + core.String? clusterSize; + + ClusterInfo({ + this.centroidId, + this.clusterRadius, + this.clusterSize, + }); + + ClusterInfo.fromJson(core.Map json_) + : this( + centroidId: json_.containsKey('centroidId') + ? json_['centroidId'] as core.String + : null, + clusterRadius: json_.containsKey('clusterRadius') + ? (json_['clusterRadius'] as core.num).toDouble() + : null, + clusterSize: json_.containsKey('clusterSize') + ? json_['clusterSize'] as core.String + : null, + ); + + core.Map toJson() => { + if (centroidId != null) 'centroidId': centroidId!, + if (clusterRadius != null) 'clusterRadius': clusterRadius!, + if (clusterSize != null) 'clusterSize': clusterSize!, + }; +} + +/// Configures table clustering. class Clustering { - /// \[Repeated\] One or more fields on which data should be clustered. + /// One or more fields on which data should be clustered. /// - /// Only top-level, non-repeated, simple-type fields are supported. When you - /// cluster a table using multiple columns, the order of columns you specify - /// is important. The order of the specified columns determines the sort order - /// of the data. + /// Only top-level, non-repeated, simple-type fields are supported. The + /// ordering of the clustering fields should be prioritized from most to least + /// important for filtering purposes. Additional information on limitations + /// can be found here: + /// https://cloud.google.com/bigquery/docs/creating-clustered-tables#limitations core.List? fields; Clustering({ @@ -3764,15 +4252,29 @@ class ConfusionMatrix { }; } +/// A connection-level property to customize query behavior. +/// +/// Under JDBC, these correspond directly to connection properties passed to the +/// DriverManager. Under ODBC, these correspond to properties in the connection +/// string. Currently supported connection properties: * **dataset_project_id**: +/// represents the default project for datasets that are used in the query. +/// Setting the system variable `@@dataset_project_id` achieves the same +/// behavior. For more information about system variables, see: +/// https://cloud.google.com/bigquery/docs/reference/system-variables * +/// **time_zone**: represents the default timezone used to run the query. * +/// **session_id**: associates the query with a given session. * +/// **query_label**: associates the query with a given job label. If set, all +/// subsequent queries in a script or session will have this label. For the +/// format in which a you can specify a query label, see labels in the +/// JobConfiguration resource type: +/// https://cloud.google.com/bigquery/docs/reference/rest/v2/Job#jobconfiguration +/// Additional properties are allowed, but ignored. Specifying multiple +/// connection properties with the same key returns an error. class ConnectionProperty { - /// Name of the connection property to set. - /// - /// Required. + /// The key of the property to set. core.String? key; - /// Value of the connection property. - /// - /// Required. + /// The value of the property to set. core.String? value; ConnectionProperty({ @@ -3793,6 +4295,7 @@ class ConnectionProperty { }; } +/// Information related to a CSV data source. class CsvOptions { /// Indicates if BigQuery should accept rows that are missing trailing /// optional columns. @@ -3815,32 +4318,36 @@ class CsvOptions { /// The character encoding of the data. /// - /// The supported values are UTF-8 or ISO-8859-1. The default value is UTF-8. - /// BigQuery decodes the data after the raw, binary data has been split using - /// the values of the quote and fieldDelimiter properties. + /// The supported values are UTF-8, ISO-8859-1, UTF-16BE, UTF-16LE, UTF-32BE, + /// and UTF-32LE. The default value is UTF-8. BigQuery decodes the data after + /// the raw, binary data has been split using the values of the quote and + /// fieldDelimiter properties. /// /// Optional. core.String? encoding; - /// The separator for fields in a CSV file. + /// The separator character for fields in a CSV file. /// - /// BigQuery converts the string to ISO-8859-1 encoding, and then uses the - /// first byte of the encoded string to split the data in its raw, binary - /// state. BigQuery also supports the escape sequence "\t" to specify a tab - /// separator. The default value is a comma (','). + /// The separator is interpreted as a single byte. For files encoded in + /// ISO-8859-1, any single character can be used as a separator. For files + /// encoded in UTF-8, characters represented in decimal range 1-127 + /// (U+0001-U+007F) can be used without any modification. UTF-8 characters + /// encoded with multiple bytes (i.e. U+0080 and above) will have only the + /// first byte used for separating fields. The remaining bytes will be treated + /// as a part of the field. BigQuery also supports the escape sequence "\t" + /// (U+0009) to specify a tab separator. The default value is comma (",", + /// U+002C). /// /// Optional. core.String? fieldDelimiter; - /// An custom string that will represent a NULL value in CSV import data. + /// A custom string that will represent a NULL value in CSV import data. /// /// Optional. core.String? nullMarker; - /// Preserves the embedded ASCII control characters (the first 32 characters - /// in the ASCII-table, from '\x00' to '\x1F') when loading from CSV. - /// - /// Only applicable to CSV, ignored for other formats. + /// Indicates if the embedded ASCII control characters (the first 32 + /// characters in the ASCII-table, from '\x00' to '\x1F') are preserved. /// /// Optional. core.bool? preserveAsciiControlCharacters; @@ -3849,10 +4356,13 @@ class CsvOptions { /// /// BigQuery converts the string to ISO-8859-1 encoding, and then uses the /// first byte of the encoded string to split the data in its raw, binary - /// state. The default value is a double-quote ('"'). If your data does not + /// state. The default value is a double-quote ("). If your data does not /// contain quoted sections, set the property value to an empty string. If /// your data contains quoted newline characters, you must also set the - /// allowQuotedNewlines property to true. + /// allowQuotedNewlines property to true. To include the specific quote + /// character within a quoted value, precede it with an additional matching + /// quote character. For example, if you want to escape the default character + /// ' " ', use ' "" '. /// /// Optional. core.String? quote; @@ -3927,14 +4437,34 @@ class CsvOptions { }; } -class DataMaskingStatistics { - /// \[Output-only\] \[Preview\] Whether any accessed data was protected by - /// data masking. +/// Options for data format adjustments. +class DataFormatOptions { + /// Output timestamp as usec int64. /// - /// The actual evaluation is done by accessStats.masked_field_count \> 0. - /// Since this is only used for the discovery_doc generation purpose, as long - /// as the type (boolean) matches, client library can leverage this. The - /// actual evaluation of the variable is done else-where. + /// Default is false. + /// + /// Optional. + core.bool? useInt64Timestamp; + + DataFormatOptions({ + this.useInt64Timestamp, + }); + + DataFormatOptions.fromJson(core.Map json_) + : this( + useInt64Timestamp: json_.containsKey('useInt64Timestamp') + ? json_['useInt64Timestamp'] as core.bool + : null, + ); + + core.Map toJson() => { + if (useInt64Timestamp != null) 'useInt64Timestamp': useInt64Timestamp!, + }; +} + +/// Statistics for data-masking. +class DataMaskingStatistics { + /// Whether any accessed data was protected by the data masking. core.bool? dataMaskingApplied; DataMaskingStatistics({ @@ -3997,6 +4527,7 @@ class DataSplitResult { }; } +/// An object that defines dataset access for an entity. class DatasetAccess { /// \[Pick one\] A grant authorizing all resources of a particular type in a /// particular dataset access to this dataset. @@ -4025,13 +4556,12 @@ class DatasetAccess { /// An IAM role ID that should be granted to the user, group, or domain /// specified in this access entry. /// - /// The following legacy mappings will be applied: OWNER - /// roles/bigquery.dataOwner WRITER roles/bigquery.dataEditor READER - /// roles/bigquery.dataViewer This field will accept any of the above formats, - /// but will return only the legacy format. For example, if you set this field - /// to "roles/bigquery.dataOwner", it will be returned back as "OWNER". - /// - /// Required. + /// The following legacy mappings will be applied: OWNER \<=\> + /// roles/bigquery.dataOwner WRITER \<=\> roles/bigquery.dataEditor READER + /// \<=\> roles/bigquery.dataViewer This field will accept any of the above + /// formats, but will return only the legacy format. For example, if you set + /// this field to "roles/bigquery.dataOwner", it will be returned back as + /// "OWNER". core.String? role; /// \[Pick one\] A routine from a different dataset to grant access to. @@ -4059,10 +4589,10 @@ class DatasetAccess { /// \[Pick one\] A view from a different dataset to grant access to. /// - /// Queries executed against that view will have read access to tables in this - /// dataset. The role field is not required when this field is set. If that - /// view is updated by any user, access to the view needs to be granted again - /// via an update operation. + /// Queries executed against that view will have read access to + /// views/tables/routines in this dataset. The role field is not required when + /// this field is set. If that view is updated by any user, access to the view + /// needs to be granted again via an update operation. TableReference? view; DatasetAccess({ @@ -4122,6 +4652,9 @@ class DatasetAccess { }; } +/// A global tag managed by Resource Manager. +/// +/// https://cloud.google.com/iam/docs/tags-access-control#definitions class DatasetTags { /// The namespaced friendly name of the tag key, e.g. "12345/environment" /// where 12345 is org id. @@ -4129,7 +4662,7 @@ class DatasetTags { /// Required. core.String? tagKey; - /// Friendly short name of the tag value, e.g. "production". + /// The friendly short name of the tag value, e.g. "production". /// /// Required. core.String? tagValue; @@ -4169,8 +4702,9 @@ class Dataset { /// Optional. core.List? access; - /// \[Output-only\] The time when this dataset was created, in milliseconds - /// since the epoch. + /// The time when this dataset was created, in milliseconds since the epoch. + /// + /// Output only. core.String? creationTime; /// A reference that identifies the dataset. @@ -4178,35 +4712,68 @@ class Dataset { /// Required. DatasetReference? datasetReference; - /// \[Output-only\] The default collation of the dataset. + /// Defines the default collation specification of future tables created in + /// the dataset. + /// + /// If a table is created in this dataset without table-level default + /// collation, then the table inherits the dataset default collation, which is + /// applied to the string fields that do not have explicit collation + /// specified. A change to this field affects only tables created afterwards, + /// and does not alter the existing tables. The following values are + /// supported: * 'und:ci': undetermined locale, case insensitive. * '': empty + /// string. Default to case-sensitive behavior. + /// + /// Optional. core.String? defaultCollation; - EncryptionConfiguration? defaultEncryptionConfiguration; - /// The default partition expiration for all partitioned tables in the - /// dataset, in milliseconds. + /// The default encryption key for all tables in the dataset. /// /// Once this property is set, all newly-created partitioned tables in the - /// dataset will have an expirationMs property in the timePartitioning - /// settings set to this value, and changing the value will only affect new - /// tables, not existing ones. The storage in a partition will have an - /// expiration time of its partition time plus this value. Setting this - /// property overrides the use of defaultTableExpirationMs for partitioned - /// tables: only one of defaultTableExpirationMs and - /// defaultPartitionExpirationMs will be used for any new partitioned table. - /// If you provide an explicit timePartitioning.expirationMs when creating or - /// updating a partitioned table, that value takes precedence over the default - /// partition expiration time indicated by this property. + /// dataset will have encryption key set to this value, unless table creation + /// request (or query) overrides the key. + EncryptionConfiguration? defaultEncryptionConfiguration; + + /// This default partition expiration, expressed in milliseconds. /// - /// Optional. + /// When new time-partitioned tables are created in a dataset where this + /// property is set, the table will inherit this value, propagated as the + /// `TimePartitioning.expirationMs` property on the new table. If you set + /// `TimePartitioning.expirationMs` explicitly when creating a table, the + /// `defaultPartitionExpirationMs` of the containing dataset is ignored. When + /// creating a partitioned table, if `defaultPartitionExpirationMs` is set, + /// the `defaultTableExpirationMs` value is ignored and the table will not be + /// inherit a table expiration deadline. core.String? defaultPartitionExpirationMs; - /// \[Output-only\] The default rounding mode of the dataset. + /// Defines the default rounding mode specification of new tables created + /// within this dataset. + /// + /// During table creation, if this field is specified, the table within this + /// dataset will inherit the default rounding mode of the dataset. Setting the + /// default rounding mode on a table overrides this option. Existing tables in + /// the dataset are unaffected. If columns are defined during that table + /// creation, they will immediately inherit the table's default rounding mode, + /// unless otherwise specified. + /// + /// Optional. + /// Possible string values are: + /// - "ROUNDING_MODE_UNSPECIFIED" : Unspecified will default to using + /// ROUND_HALF_AWAY_FROM_ZERO. + /// - "ROUND_HALF_AWAY_FROM_ZERO" : ROUND_HALF_AWAY_FROM_ZERO rounds half + /// values away from zero when applying precision and scale upon writing of + /// NUMERIC and BIGNUMERIC values. For Scale: 0 1.1, 1.2, 1.3, 1.4 =\> 1 1.5, + /// 1.6, 1.7, 1.8, 1.9 =\> 2 + /// - "ROUND_HALF_EVEN" : ROUND_HALF_EVEN rounds half values to the nearest + /// even value when applying precision and scale upon writing of NUMERIC and + /// BIGNUMERIC values. For Scale: 0 1.1, 1.2, 1.3, 1.4 =\> 1 1.5 =\> 2 1.6, + /// 1.7, 1.8, 1.9 =\> 2 2.5 =\> 2 core.String? defaultRoundingMode; /// The default lifetime of all tables in the dataset, in milliseconds. /// - /// The minimum value is 3600000 milliseconds (one hour). Once this property - /// is set, all newly-created tables in the dataset will have an + /// The minimum lifetime value is 3600000 milliseconds (one hour). To clear an + /// existing default expiration with a PATCH request, set to 0. Once this + /// property is set, all newly-created tables in the dataset will have an /// expirationTime property set to the creation time plus the value in this /// property, and changing the value will only affect new tables, not existing /// ones. When the expirationTime for a given table is reached, that table @@ -4223,11 +4790,13 @@ class Dataset { /// Optional. core.String? description; - /// \[Output-only\] A hash of the resource. + /// A hash of the resource. + /// + /// Output only. core.String? etag; - /// Information about the external metadata storage where the dataset is - /// defined. + /// Reference to a read-only external dataset defined in data catalogs outside + /// of BigQuery. /// /// Filled out when the dataset type is EXTERNAL. /// @@ -4239,20 +4808,28 @@ class Dataset { /// Optional. core.String? friendlyName; - /// \[Output-only\] The fully-qualified unique name of the dataset in the - /// format projectId:datasetId. + /// The fully-qualified unique name of the dataset in the format + /// projectId:datasetId. /// /// The dataset name without the project name is given in the datasetId field. /// When creating a new dataset, leave this field blank, and instead specify /// the datasetId field. + /// + /// Output only. core.String? id; - /// Indicates if table names are case insensitive in the dataset. + /// TRUE if the dataset and its table names are case-insensitive, otherwise + /// FALSE. + /// + /// By default, this is FALSE, which means the dataset and its table names are + /// case-sensitive. This field does not affect routine references. /// /// Optional. core.bool? isCaseInsensitive; - /// \[Output-only\] The resource type. + /// The resource type. + /// + /// Output only. core.String? kind; /// The labels associated with this dataset. @@ -4262,41 +4839,77 @@ class Dataset { /// Dataset Labels for more information. core.Map? labels; - /// \[Output-only\] The date when this dataset or any of its tables was last - /// modified, in milliseconds since the epoch. + /// The date when this dataset was last modified, in milliseconds since the + /// epoch. + /// + /// Output only. core.String? lastModifiedTime; + /// The source dataset reference when the dataset is of type LINKED. + /// + /// For all other dataset types it is not set. This field cannot be updated + /// once it is set. Any attempt to update this field using Update and Patch + /// API Operations will be ignored. + /// + /// Optional. + LinkedDatasetSource? linkedDatasetSource; + /// The geographic location where the dataset should reside. /// - /// The default value is US. See details at - /// https://cloud.google.com/bigquery/docs/locations. + /// See https://cloud.google.com/bigquery/docs/locations for supported + /// locations. core.String? location; - /// Number of hours for the max time travel for all tables in the dataset. + /// Defines the time travel window in hours. + /// + /// The value can be from 48 to 168 hours (2 to 7 days). The default value is + /// 168 hours if this is not set. /// /// Optional. core.String? maxTimeTravelHours; - /// \[Output-only\] Reserved for future use. + /// Reserved for future use. + /// + /// Output only. + core.bool? satisfiesPzi; + + /// Reserved for future use. + /// + /// Output only. core.bool? satisfiesPzs; - /// \[Output-only\] A URL that can be used to access the resource again. + /// A URL that can be used to access the resource again. /// /// You can use this URL in Get or Update requests to the resource. + /// + /// Output only. core.String? selfLink; - /// Storage billing model to be used for all tables in the dataset. - /// - /// Can be set to PHYSICAL. Default is LOGICAL. + /// Updates storage_billing_model for the dataset. /// /// Optional. + /// Possible string values are: + /// - "STORAGE_BILLING_MODEL_UNSPECIFIED" : Value not set. + /// - "LOGICAL" : Billing for logical bytes. + /// - "PHYSICAL" : Billing for physical bytes. core.String? storageBillingModel; - /// \[Optional\]The tags associated with this dataset. + /// Tags for the Dataset. /// - /// Tag keys are globally unique. + /// Output only. core.List? tags; + /// Same as `type` in `ListFormatDataset`. + /// + /// The type of the dataset, one of: * DEFAULT - only accessible by owner and + /// authorized accounts, * PUBLIC - accessible by everyone, * LINKED - linked + /// dataset, * EXTERNAL - dataset with definition in external metadata + /// catalog. -- *BIGLAKE_METASTORE - dataset that references a database + /// created in BigLakeMetastore service. -- + /// + /// Output only. + core.String? type; + Dataset({ this.access, this.creationTime, @@ -4315,12 +4928,15 @@ class Dataset { this.kind, this.labels, this.lastModifiedTime, + this.linkedDatasetSource, this.location, this.maxTimeTravelHours, + this.satisfiesPzi, this.satisfiesPzs, this.selfLink, this.storageBillingModel, this.tags, + this.type, }); Dataset.fromJson(core.Map json_) @@ -4387,12 +5003,19 @@ class Dataset { lastModifiedTime: json_.containsKey('lastModifiedTime') ? json_['lastModifiedTime'] as core.String : null, + linkedDatasetSource: json_.containsKey('linkedDatasetSource') + ? LinkedDatasetSource.fromJson(json_['linkedDatasetSource'] + as core.Map) + : null, location: json_.containsKey('location') ? json_['location'] as core.String : null, maxTimeTravelHours: json_.containsKey('maxTimeTravelHours') ? json_['maxTimeTravelHours'] as core.String : null, + satisfiesPzi: json_.containsKey('satisfiesPzi') + ? json_['satisfiesPzi'] as core.bool + : null, satisfiesPzs: json_.containsKey('satisfiesPzs') ? json_['satisfiesPzs'] as core.bool : null, @@ -4408,6 +5031,7 @@ class Dataset { value as core.Map)) .toList() : null, + type: json_.containsKey('type') ? json_['type'] as core.String : null, ); core.Map toJson() => { @@ -4433,22 +5057,36 @@ class Dataset { if (kind != null) 'kind': kind!, if (labels != null) 'labels': labels!, if (lastModifiedTime != null) 'lastModifiedTime': lastModifiedTime!, + if (linkedDatasetSource != null) + 'linkedDatasetSource': linkedDatasetSource!, if (location != null) 'location': location!, if (maxTimeTravelHours != null) 'maxTimeTravelHours': maxTimeTravelHours!, + if (satisfiesPzi != null) 'satisfiesPzi': satisfiesPzi!, if (satisfiesPzs != null) 'satisfiesPzs': satisfiesPzs!, if (selfLink != null) 'selfLink': selfLink!, if (storageBillingModel != null) 'storageBillingModel': storageBillingModel!, if (tags != null) 'tags': tags!, + if (type != null) 'type': type!, }; } +/// Grants all resources of particular types in a particular dataset read access +/// to the current dataset. +/// +/// Similar to how individually authorized views work, updates to any resource +/// granted through its dataset (including creation of new resources) requires +/// read permission to referenced resources, plus write permission to the +/// authorizing dataset. class DatasetAccessEntry { - /// The dataset this entry applies to. - /// - /// Required. + /// The dataset this entry applies to DatasetReference? dataset; + + /// Which resources in the dataset this entry applies to. + /// + /// Currently, only views are supported, but additional target types may be + /// added in the future. core.List? targetTypes; DatasetAccessEntry({ @@ -4475,6 +5113,8 @@ class DatasetAccessEntry { }; } +/// A dataset resource with only a subset of fields, to be returned in a list of +/// datasets. class DatasetListDatasets { /// The dataset reference. /// @@ -4482,7 +5122,9 @@ class DatasetListDatasets { /// project ID or dataset ID. DatasetReference? datasetReference; - /// A descriptive name for the dataset, if one exists. + /// An alternate name for the dataset. + /// + /// The friendly name is purely decorative in nature. core.String? friendlyName; /// The fully-qualified, unique, opaque ID of the dataset. @@ -4490,7 +5132,7 @@ class DatasetListDatasets { /// The resource type. /// - /// This property always returns the value "bigquery#dataset". + /// This property always returns the value "bigquery#dataset" core.String? kind; /// The labels associated with this dataset. @@ -4498,7 +5140,7 @@ class DatasetListDatasets { /// You can use these to organize and group your datasets. core.Map? labels; - /// The geographic location where the data resides. + /// The geographic location where the dataset resides. core.String? location; DatasetListDatasets({ @@ -4544,6 +5186,7 @@ class DatasetListDatasets { }; } +/// Response format for a page of results when listing datasets. class DatasetList { /// An array of the dataset resources in the project. /// @@ -4556,11 +5199,15 @@ class DatasetList { /// /// You can use this property to determine if the page has changed since the /// last request. + /// + /// Output only. core.String? etag; - /// The list type. + /// The resource type. + /// + /// This property always returns the value "bigquery#datasetList" /// - /// This property always returns the value "bigquery#datasetList". + /// Output only. core.String? kind; /// A token that can be used to request the next results page. @@ -4568,11 +5215,18 @@ class DatasetList { /// This property is omitted on the final results page. core.String? nextPageToken; + /// A list of skipped locations that were unreachable. + /// + /// For more information about BigQuery locations, see: + /// https://cloud.google.com/bigquery/docs/locations. Example: "europe-west5" + core.List? unreachable; + DatasetList({ this.datasets, this.etag, this.kind, this.nextPageToken, + this.unreachable, }); DatasetList.fromJson(core.Map json_) @@ -4588,6 +5242,11 @@ class DatasetList { nextPageToken: json_.containsKey('nextPageToken') ? json_['nextPageToken'] as core.String : null, + unreachable: json_.containsKey('unreachable') + ? (json_['unreachable'] as core.List) + .map((value) => value as core.String) + .toList() + : null, ); core.Map toJson() => { @@ -4595,6 +5254,7 @@ class DatasetList { if (etag != null) 'etag': etag!, if (kind != null) 'kind': kind!, if (nextPageToken != null) 'nextPageToken': nextPageToken!, + if (unreachable != null) 'unreachable': unreachable!, }; } @@ -4633,6 +5293,7 @@ class DatasetReference { }; } +/// Properties for the destination table. class DestinationTableProperties { /// The description for the destination table. /// @@ -4643,14 +5304,13 @@ class DestinationTableProperties { /// Optional. core.String? description; - /// \[Internal\] This field is for Google internal use only. + /// Internal use only. core.DateTime? expirationTime; - /// The friendly name for the destination table. + /// Friendly name for the destination table. /// - /// This will only be used if the destination table is newly created. If the - /// table already exists and a value different than the current friendly name - /// is provided, the job will fail. + /// If the table already exists, it should be same as the existing friendly + /// name. /// /// Optional. core.String? friendlyName; @@ -4726,20 +5386,27 @@ class DimensionalityReductionMetrics { }; } +/// Detailed statistics for DML statements class DmlStatistics { /// Number of deleted Rows. /// /// populated by DML DELETE, MERGE and TRUNCATE statements. + /// + /// Output only. core.String? deletedRowCount; /// Number of inserted Rows. /// - /// Populated by DML INSERT and MERGE statements. + /// Populated by DML INSERT and MERGE statements + /// + /// Output only. core.String? insertedRowCount; /// Number of updated Rows. /// /// Populated by DML UPDATE and MERGE statements. + /// + /// Output only. core.String? updatedRowCount; DmlStatistics({ @@ -4909,6 +5576,7 @@ class Entry { }; } +/// Error details. class ErrorProto { /// Debugging information. /// @@ -5048,10 +5716,20 @@ class EvaluationMetrics { }; } +/// A single stage of query execution. class ExplainQueryStage { /// Number of parallel input segments completed. core.String? completedParallelInputs; + /// Compute mode for this stage. + /// + /// Output only. + /// Possible string values are: + /// - "COMPUTE_MODE_UNSPECIFIED" : ComputeMode type not specified. + /// - "BIGQUERY" : This stage was processed using BigQuery slots. + /// - "BI_ENGINE" : This stage was processed using BI Engine compute. + core.String? computeMode; + /// Milliseconds the average shard spent on CPU-bound tasks. core.String? computeMsAvg; @@ -5064,19 +5742,19 @@ class ExplainQueryStage { /// Relative amount of time the slowest shard spent on CPU-bound tasks. core.double? computeRatioMax; - /// Stage end time represented as milliseconds since epoch. + /// Stage end time represented as milliseconds since the epoch. core.String? endMs; - /// Unique ID for stage within plan. + /// Unique ID for the stage within the plan. core.String? id; /// IDs for stages that are inputs to this stage. core.List? inputStages; - /// Human-readable name for stage. + /// Human-readable name for the stage. core.String? name; - /// Number of parallel input segments to be processed. + /// Number of parallel input segments to be processed core.String? parallelInputs; /// Milliseconds the average shard spent reading input. @@ -5106,10 +5784,10 @@ class ExplainQueryStage { /// Slot-milliseconds used by the stage. core.String? slotMs; - /// Stage start time represented as milliseconds since epoch. + /// Stage start time represented as milliseconds since the epoch. core.String? startMs; - /// Current status for the stage. + /// Current status for this stage. core.String? status; /// List of operations within the stage in dependency order (approximately @@ -5142,6 +5820,7 @@ class ExplainQueryStage { ExplainQueryStage({ this.completedParallelInputs, + this.computeMode, this.computeMsAvg, this.computeMsMax, this.computeRatioAvg, @@ -5178,6 +5857,9 @@ class ExplainQueryStage { completedParallelInputs: json_.containsKey('completedParallelInputs') ? json_['completedParallelInputs'] as core.String : null, + computeMode: json_.containsKey('computeMode') + ? json_['computeMode'] as core.String + : null, computeMsAvg: json_.containsKey('computeMsAvg') ? json_['computeMsAvg'] as core.String : null, @@ -5271,6 +5953,7 @@ class ExplainQueryStage { core.Map toJson() => { if (completedParallelInputs != null) 'completedParallelInputs': completedParallelInputs!, + if (computeMode != null) 'computeMode': computeMode!, if (computeMsAvg != null) 'computeMsAvg': computeMsAvg!, if (computeMsMax != null) 'computeMsMax': computeMsMax!, if (computeRatioAvg != null) 'computeRatioAvg': computeRatioAvg!, @@ -5305,11 +5988,12 @@ class ExplainQueryStage { }; } +/// An operation within a stage. class ExplainQueryStep { /// Machine-readable operation type. core.String? kind; - /// Human-readable stage descriptions. + /// Human-readable description of the step(s). core.List? substeps; ExplainQueryStep({ @@ -5365,6 +6049,39 @@ class Explanation { }; } +/// Statistics for the EXPORT DATA statement as part of Query Job. +/// +/// EXTRACT JOB statistics are populated in JobStatistics4. +class ExportDataStatistics { + /// Number of destination files generated in case of EXPORT DATA statement + /// only. + core.String? fileCount; + + /// \[Alpha\] Number of destination rows generated in case of EXPORT DATA + /// statement only. + core.String? rowCount; + + ExportDataStatistics({ + this.fileCount, + this.rowCount, + }); + + ExportDataStatistics.fromJson(core.Map json_) + : this( + fileCount: json_.containsKey('fileCount') + ? json_['fileCount'] as core.String + : null, + rowCount: json_.containsKey('rowCount') + ? json_['rowCount'] as core.String + : null, + ); + + core.Map toJson() => { + if (fileCount != null) 'fileCount': fileCount!, + if (rowCount != null) 'rowCount': rowCount!, + }; +} + /// Represents a textual expression in the Common Expression Language (CEL) /// syntax. /// @@ -5391,7 +6108,9 @@ class ExternalDataConfiguration { /// Any option specified explicitly will be honored. core.bool? autodetect; - /// Additional properties to set if sourceFormat is set to Avro. + /// Additional properties to set if sourceFormat is set to AVRO. + /// + /// Optional. AvroOptions? avroOptions; /// Additional options if sourceFormat is set to BIGTABLE. @@ -5403,15 +6122,25 @@ class ExternalDataConfiguration { /// /// Possible values include GZIP and NONE. The default value is NONE. This /// setting is ignored for Google Cloud Bigtable, Google Cloud Datastore - /// backups and Avro formats. + /// backups, Avro, ORC and Parquet formats. An empty string is an invalid + /// value. /// /// Optional. core.String? compression; - /// \[Optional, Trusted Tester\] Connection for external data source. + /// The connection specifying the credentials to be used to read external + /// storage, such as Azure Blob, Cloud Storage, or S3. + /// + /// The connection_id can have the form + /// "\.\.\" or + /// "projects/\/locations/\/connections/\". + /// + /// Optional. core.String? connectionId; /// Additional properties to set if sourceFormat is set to CSV. + /// + /// Optional. CsvOptions? csvOptions; /// Defines the list of possible SQL data types to which the source decimal @@ -5425,17 +6154,15 @@ class ExternalDataConfiguration { /// the type supporting the widest range in the specified list is picked, and /// if a value exceeds the supported range when reading the data, an error /// will be thrown. Example: Suppose the value of this field is \["NUMERIC", - /// "BIGNUMERIC"\]. If (precision,scale) is: (38,9) -\> NUMERIC; (39,9) -\> - /// BIGNUMERIC (NUMERIC cannot hold 30 integer digits); (38,10) -\> BIGNUMERIC - /// (NUMERIC cannot hold 10 fractional digits); (76,38) -\> BIGNUMERIC; - /// (77,38) -\> BIGNUMERIC (error if value exeeds supported range). This field - /// cannot contain duplicate types. The order of the types in this field is - /// ignored. For example, \["BIGNUMERIC", "NUMERIC"\] is the same as - /// \["NUMERIC", "BIGNUMERIC"\] and NUMERIC always takes precedence over - /// BIGNUMERIC. Defaults to \["NUMERIC", "STRING"\] for ORC and \["NUMERIC"\] - /// for the other file formats. - /// - /// Optional. + /// "BIGNUMERIC"\]. If (precision,scale) is: * (38,9) -\> NUMERIC; * (39,9) + /// -\> BIGNUMERIC (NUMERIC cannot hold 30 integer digits); * (38,10) -\> + /// BIGNUMERIC (NUMERIC cannot hold 10 fractional digits); * (76,38) -\> + /// BIGNUMERIC; * (77,38) -\> BIGNUMERIC (error if value exeeds supported + /// range). This field cannot contain duplicate types. The order of the types + /// in this field is ignored. For example, \["BIGNUMERIC", "NUMERIC"\] is the + /// same as \["NUMERIC", "BIGNUMERIC"\] and NUMERIC always takes precedence + /// over BIGNUMERIC. Defaults to \["NUMERIC", "STRING"\] for ORC and + /// \["NUMERIC"\] for the other file formats. core.List? decimalTargetTypes; /// Specifies how source URIs are interpreted for constructing the file set to @@ -5446,6 +6173,13 @@ class ExternalDataConfiguration { /// storage systems. /// /// Optional. + /// Possible string values are: + /// - "FILE_SET_SPEC_TYPE_FILE_SYSTEM_MATCH" : This option expands source URIs + /// by listing files from the object store. It is the default behavior if + /// FileSetSpecType is not set. + /// - "FILE_SET_SPEC_TYPE_NEW_LINE_DELIMITED_MANIFEST" : This option indicates + /// that the provided URIs are newline-delimited manifest files, with one URI + /// per line. Wildcard URIs are not supported. core.String? fileSetSpecType; /// Additional options if sourceFormat is set to GOOGLE_SHEETS. @@ -5453,7 +6187,11 @@ class ExternalDataConfiguration { /// Optional. GoogleSheetsOptions? googleSheetsOptions; - /// Options to configure hive partitioning support. + /// When set, configures hive partitioning support. + /// + /// Not all storage formats support hive partitioning -- requesting hive + /// partitioning on an unsupported format will lead to an error, as will + /// providing an invalid specification. /// /// Optional. HivePartitioningOptions? hivePartitioningOptions; @@ -5468,22 +6206,38 @@ class ExternalDataConfiguration { /// extra value: CSV: Trailing columns JSON: Named values that don't match any /// column names Google Cloud Bigtable: This setting is ignored. Google Cloud /// Datastore backups: This setting is ignored. Avro: This setting is ignored. + /// ORC: This setting is ignored. Parquet: This setting is ignored. /// /// Optional. core.bool? ignoreUnknownValues; - /// Additional properties to set if `sourceFormat` is set to - /// `NEWLINE_DELIMITED_JSON`. + /// Load option to be used together with source_format newline-delimited JSON + /// to indicate that a variant of JSON is being loaded. + /// + /// To load newline-delimited GeoJSON, specify GEOJSON (and source_format must + /// be set to NEWLINE_DELIMITED_JSON). + /// + /// Optional. + /// Possible string values are: + /// - "JSON_EXTENSION_UNSPECIFIED" : The default if provided value is not one + /// included in the enum, or the value is not specified. The source formate is + /// parsed without any modification. + /// - "GEOJSON" : Use GeoJSON variant of JSON. See + /// https://tools.ietf.org/html/rfc7946. + core.String? jsonExtension; + + /// Additional properties to set if sourceFormat is set to JSON. + /// + /// Optional. JsonOptions? jsonOptions; /// The maximum number of bad records that BigQuery can ignore when reading /// data. /// /// If the number of bad records exceeds this value, an invalid error is - /// returned in the job result. This is only valid for CSV, JSON, and Google - /// Sheets. The default value is 0, which requires that all records are valid. - /// This setting is ignored for Google Cloud Bigtable, Google Cloud Datastore - /// backups and Avro formats. + /// returned in the job result. The default value is 0, which requires that + /// all records are valid. This setting is ignored for Google Cloud Bigtable, + /// Google Cloud Datastore backups, Avro, ORC and Parquet formats. /// /// Optional. core.int? maxBadRecords; @@ -5493,6 +6247,14 @@ class ExternalDataConfiguration { /// Set this to enable caching of metadata from external data source. /// /// Optional. + /// Possible string values are: + /// - "METADATA_CACHE_MODE_UNSPECIFIED" : Unspecified metadata cache mode. + /// - "AUTOMATIC" : Set this mode to trigger automatic background refresh of + /// metadata cache from the external source. Queries will use the latest + /// available cache version within the table's maxStaleness interval. + /// - "MANUAL" : Set this mode to enable triggering manual refresh of the + /// metadata cache from external source. Queries will use the latest manually + /// triggered cache version within the table's maxStaleness interval. core.String? metadataCacheMode; /// ObjectMetadata is used to create Object Tables. @@ -5500,22 +6262,32 @@ class ExternalDataConfiguration { /// Object Tables contain a listing of objects (with their metadata) found at /// the source_uris. If ObjectMetadata is set, source_format should be /// omitted. Currently SIMPLE is the only supported Object Metadata type. + /// + /// Optional. + /// Possible string values are: + /// - "OBJECT_METADATA_UNSPECIFIED" : Unspecified by default. + /// - "DIRECTORY" : A synonym for `SIMPLE`. + /// - "SIMPLE" : Directory listing of objects. core.String? objectMetadata; - /// Additional properties to set if sourceFormat is set to Parquet. + /// Additional properties to set if sourceFormat is set to PARQUET. + /// + /// Optional. ParquetOptions? parquetOptions; - /// Provide a referencing file with the expected table schema. + /// When creating an external table, the user can provide a reference file + /// with the table schema. /// - /// Enabled for the format: AVRO, PARQUET, ORC. + /// This is enabled for the following formats: AVRO, PARQUET, ORC. /// /// Optional. core.String? referenceFileSchemaUri; /// The schema for the data. /// - /// Schema is required for CSV and JSON formats. Schema is disallowed for - /// Google Cloud Bigtable, Cloud Datastore backups, and Avro formats. + /// Schema is required for CSV and JSON formats if autodetect is not on. + /// Schema is disallowed for Google Cloud Bigtable, Cloud Datastore backups, + /// Avro, ORC and Parquet formats. /// /// Optional. TableSchema? schema; @@ -5525,8 +6297,9 @@ class ExternalDataConfiguration { /// For CSV files, specify "CSV". For Google sheets, specify "GOOGLE_SHEETS". /// For newline-delimited JSON, specify "NEWLINE_DELIMITED_JSON". For Avro /// files, specify "AVRO". For Google Cloud Datastore backups, specify - /// "DATASTORE_BACKUP". \[Beta\] For Google Cloud Bigtable, specify - /// "BIGTABLE". + /// "DATASTORE_BACKUP". For Apache Iceberg tables, specify "ICEBERG". For ORC + /// files, specify "ORC". For Parquet files, specify "PARQUET". \[Beta\] For + /// Google Cloud Bigtable, specify "BIGTABLE". /// /// Required. core.String? sourceFormat; @@ -5556,6 +6329,7 @@ class ExternalDataConfiguration { this.googleSheetsOptions, this.hivePartitioningOptions, this.ignoreUnknownValues, + this.jsonExtension, this.jsonOptions, this.maxBadRecords, this.metadataCacheMode, @@ -5610,6 +6384,9 @@ class ExternalDataConfiguration { ignoreUnknownValues: json_.containsKey('ignoreUnknownValues') ? json_['ignoreUnknownValues'] as core.bool : null, + jsonExtension: json_.containsKey('jsonExtension') + ? json_['jsonExtension'] as core.String + : null, jsonOptions: json_.containsKey('jsonOptions') ? JsonOptions.fromJson( json_['jsonOptions'] as core.Map) @@ -5660,6 +6437,7 @@ class ExternalDataConfiguration { 'hivePartitioningOptions': hivePartitioningOptions!, if (ignoreUnknownValues != null) 'ignoreUnknownValues': ignoreUnknownValues!, + if (jsonExtension != null) 'jsonExtension': jsonExtension!, if (jsonOptions != null) 'jsonOptions': jsonOptions!, if (maxBadRecords != null) 'maxBadRecords': maxBadRecords!, if (metadataCacheMode != null) 'metadataCacheMode': metadataCacheMode!, @@ -5673,6 +6451,7 @@ class ExternalDataConfiguration { }; } +/// Configures the access a dataset defined in an external metadata storage. class ExternalDatasetReference { /// The connection id that is used to access the external_source. /// @@ -5708,6 +6487,72 @@ class ExternalDatasetReference { }; } +/// The external service cost is a portion of the total cost, these costs are +/// not additive with total_bytes_billed. +/// +/// Moreover, this field only track external service costs that will show up as +/// BigQuery costs (e.g. training BigQuery ML job with google cloud CAIP or +/// Automl Tables services), not other costs which may be accrued by running the +/// query (e.g. reading from Bigtable or Cloud Storage). The external service +/// costs with different billing sku (e.g. CAIP job is charged based on VM +/// usage) are converted to BigQuery billed_bytes and slot_ms with equivalent +/// amount of US dollars. Services may not directly correlate to these metrics, +/// but these are the equivalents for billing purposes. Output only. +class ExternalServiceCost { + /// External service cost in terms of bigquery bytes billed. + core.String? bytesBilled; + + /// External service cost in terms of bigquery bytes processed. + core.String? bytesProcessed; + + /// External service name. + core.String? externalService; + + /// Non-preemptable reserved slots used for external job. + /// + /// For example, reserved slots for Cloua AI Platform job are the VM usages + /// converted to BigQuery slot with equivalent mount of price. + core.String? reservedSlotCount; + + /// External service cost in terms of bigquery slot milliseconds. + core.String? slotMs; + + ExternalServiceCost({ + this.bytesBilled, + this.bytesProcessed, + this.externalService, + this.reservedSlotCount, + this.slotMs, + }); + + ExternalServiceCost.fromJson(core.Map json_) + : this( + bytesBilled: json_.containsKey('bytesBilled') + ? json_['bytesBilled'] as core.String + : null, + bytesProcessed: json_.containsKey('bytesProcessed') + ? json_['bytesProcessed'] as core.String + : null, + externalService: json_.containsKey('externalService') + ? json_['externalService'] as core.String + : null, + reservedSlotCount: json_.containsKey('reservedSlotCount') + ? json_['reservedSlotCount'] as core.String + : null, + slotMs: json_.containsKey('slotMs') + ? json_['slotMs'] as core.String + : null, + ); + + core.Map toJson() => { + if (bytesBilled != null) 'bytesBilled': bytesBilled!, + if (bytesProcessed != null) 'bytesProcessed': bytesProcessed!, + if (externalService != null) 'externalService': externalService!, + if (reservedSlotCount != null) 'reservedSlotCount': reservedSlotCount!, + if (slotMs != null) 'slotMs': slotMs!, + }; +} + /// Representative value of a single feature within the cluster. class FeatureValue { /// The categorical feature value. @@ -5774,16 +6619,19 @@ class GetIamPolicyRequest { /// Encapsulates settings provided to GetIamPolicy. typedef GetPolicyOptions = $GetPolicyOptions; +/// Response object of GetQueryResults. class GetQueryResultsResponse { /// Whether the query result was fetched from the query cache. core.bool? cacheHit; - /// \[Output-only\] The first errors or warnings encountered during the - /// running of the job. + /// The first errors or warnings encountered during the running of the job. /// /// The final message includes the number of errors that caused the process to /// stop. Errors here do not necessarily mean that the job has completed or - /// was unsuccessful. + /// was unsuccessful. For more information about error messages, see + /// [Error messages](https://cloud.google.com/bigquery/docs/error-messages). + /// + /// Output only. core.List? errors; /// A hash of this response. @@ -5806,12 +6654,17 @@ class GetQueryResultsResponse { /// The resource type of the response. core.String? kind; - /// \[Output-only\] The number of rows affected by a DML statement. + /// The number of rows affected by a DML statement. /// /// Present only for DML statements INSERT, UPDATE or DELETE. + /// + /// Output only. core.String? numDmlAffectedRows; /// A token used for paging results. + /// + /// When this token is non-empty, it indicates additional results are + /// available. core.String? pageToken; /// An object with as many results as can be contained within the maximum @@ -5819,7 +6672,8 @@ class GetQueryResultsResponse { /// /// To get any additional rows, you can call GetQueryResults and specify the /// jobReference returned above. Present only when the query completes - /// successfully. + /// successfully. The REST-based representation of this data leverages a + /// series of JSON f,v objects for indicating fields and values. core.List? rows; /// The schema of the results. @@ -5913,6 +6767,7 @@ class GetQueryResultsResponse { }; } +/// Response object of GetServiceAccount class GetServiceAccountResponse { /// The service account email address. core.String? email; @@ -5976,6 +6831,7 @@ class GlobalExplanation { }; } +/// Options specific to Google Sheets data sources. class GoogleSheetsOptions { /// Range of a sheet to query from. /// @@ -5990,15 +6846,15 @@ class GoogleSheetsOptions { /// reading the data. /// /// The default value is 0. This property is useful if you have header rows - /// that should be skipped. When autodetect is on, behavior is the following: - /// * skipLeadingRows unspecified - Autodetect tries to detect headers in the - /// first row. If they are not detected, the row is read as data. Otherwise - /// data is read starting from the second row. * skipLeadingRows is 0 - - /// Instructs autodetect that there are no headers and data should be read - /// starting from the first row. * skipLeadingRows = N \> 0 - Autodetect skips - /// N-1 rows and tries to detect headers in row N. If headers are not - /// detected, row N is just skipped. Otherwise row N is used to extract column - /// names for the detected schema. + /// that should be skipped. When autodetect is on, the behavior is the + /// following: * skipLeadingRows unspecified - Autodetect tries to detect + /// headers in the first row. If they are not detected, the row is read as + /// data. Otherwise data is read starting from the second row. * + /// skipLeadingRows is 0 - Instructs autodetect that there are no headers and + /// data should be read starting from the first row. * skipLeadingRows = N \> + /// 0 - Autodetect skips N-1 rows and tries to detect headers in row N. If + /// headers are not detected, row N is just skipped. Otherwise row N is used + /// to extract column names for the detected schema. /// /// Optional. core.String? skipLeadingRows; @@ -6023,25 +6879,81 @@ class GoogleSheetsOptions { }; } +/// High cardinality join detailed information. +class HighCardinalityJoin { + /// Count of left input rows. + /// + /// Output only. + core.String? leftRows; + + /// Count of the output rows. + /// + /// Output only. + core.String? outputRows; + + /// Count of right input rows. + /// + /// Output only. + core.String? rightRows; + + /// The index of the join operator in the ExplainQueryStep lists. + /// + /// Output only. + core.int? stepIndex; + + HighCardinalityJoin({ + this.leftRows, + this.outputRows, + this.rightRows, + this.stepIndex, + }); + + HighCardinalityJoin.fromJson(core.Map json_) + : this( + leftRows: json_.containsKey('leftRows') + ? json_['leftRows'] as core.String + : null, + outputRows: json_.containsKey('outputRows') + ? json_['outputRows'] as core.String + : null, + rightRows: json_.containsKey('rightRows') + ? json_['rightRows'] as core.String + : null, + stepIndex: json_.containsKey('stepIndex') + ? json_['stepIndex'] as core.int + : null, + ); + + core.Map toJson() => { + if (leftRows != null) 'leftRows': leftRows!, + if (outputRows != null) 'outputRows': outputRows!, + if (rightRows != null) 'rightRows': rightRows!, + if (stepIndex != null) 'stepIndex': stepIndex!, + }; +} + +/// Options for configuring hive partitioning detect. class HivePartitioningOptions { - /// \[Output-only\] For permanent external tables, this field is populated - /// with the hive partition keys in the order they were inferred. + /// For permanent external tables, this field is populated with the hive + /// partition keys in the order they were inferred. /// /// The types of the partition keys can be deduced by checking the table /// schema (which will include the partition keys). Not every API will /// populate this field in the output. For example, Tables.Get will populate /// it, but Tables.List will not contain this field. + /// + /// Output only. core.List? fields; /// When set, what mode of hive partitioning to use when reading data. /// - /// The following modes are supported. (1) AUTO: automatically infer partition - /// key name(s) and type(s). (2) STRINGS: automatically infer partition key - /// name(s). All types are interpreted as strings. (3) CUSTOM: partition key - /// schema is encoded in the source URI prefix. Not all storage formats - /// support hive partitioning. Requesting hive partitioning on an unsupported - /// format will lead to an error. Currently supported types include: AVRO, - /// CSV, JSON, ORC and Parquet. + /// The following modes are supported: * AUTO: automatically infer partition + /// key name(s) and type(s). * STRINGS: automatically infer partition key + /// name(s). All types are strings. * CUSTOM: partition key schema is encoded + /// in the source URI prefix. Not all storage formats support hive + /// partitioning. Requesting hive partitioning on an unsupported format will + /// lead to an error. Currently supported formats are: JSON, CSV, ORC, Avro + /// and Parquet. /// /// Optional. core.String? mode; @@ -6051,21 +6963,26 @@ class HivePartitioningOptions { /// /// Note that this field should only be true when creating a permanent /// external table or querying a temporary external table. Hive-partitioned - /// loads with requirePartitionFilter explicitly set to true will fail. + /// loads with require_partition_filter explicitly set to true will fail. /// /// Optional. core.bool? requirePartitionFilter; /// When hive partition detection is requested, a common prefix for all source - /// uris should be supplied. + /// uris must be required. /// /// The prefix must end immediately before the partition key encoding begins. - /// For example, consider files following this data layout. - /// gs://bucket/path_to_table/dt=2019-01-01/country=BR/id=7/file.avro - /// gs://bucket/path_to_table/dt=2018-12-31/country=CA/id=3/file.avro When + /// For example, consider files following this data layout: + /// gs://bucket/path_to_table/dt=2019-06-01/country=USA/id=7/file.avro + /// gs://bucket/path_to_table/dt=2019-05-31/country=CA/id=3/file.avro When /// hive partitioning is requested with either AUTO or STRINGS detection, the /// common prefix can be either of gs://bucket/path_to_table or - /// gs://bucket/path_to_table/ (trailing slash does not matter). + /// gs://bucket/path_to_table/. CUSTOM detection requires encoding the + /// partitioning schema immediately after the common prefix. For CUSTOM, any + /// of * gs://bucket/path_to_table/{dt:DATE}/{country:STRING}/{id:INTEGER} * + /// gs://bucket/path_to_table/{dt:STRING}/{country:STRING}/{id:INTEGER} * + /// gs://bucket/path_to_table/{dt:DATE}/{country:STRING}/{id:STRING} would all + /// be valid source URI prefixes. /// /// Optional. core.String? sourceUriPrefix; @@ -6435,21 +7352,68 @@ class HparamTuningTrial { }; } +/// Reason about why no search index was used in the search query (or +/// sub-query). class IndexUnusedReason { - /// \[Output-only\] Specifies the base table involved in the reason that no - /// search index was used. + /// Specifies the base table involved in the reason that no search index was + /// used. TableReference? baseTable; - /// \[Output-only\] Specifies the high-level reason for the scenario when no - /// search index was used. + /// Specifies the high-level reason for the scenario when no search index was + /// used. + /// Possible string values are: + /// - "CODE_UNSPECIFIED" : Code not specified. + /// - "INDEX_CONFIG_NOT_AVAILABLE" : Indicates the search index configuration + /// has not been created. + /// - "PENDING_INDEX_CREATION" : Indicates the search index creation has not + /// been completed. + /// - "BASE_TABLE_TRUNCATED" : Indicates the base table has been truncated + /// (rows have been removed from table with TRUNCATE TABLE statement) since + /// the last time the search index was refreshed. + /// - "INDEX_CONFIG_MODIFIED" : Indicates the search index configuration has + /// been changed since the last time the search index was refreshed. + /// - "TIME_TRAVEL_QUERY" : Indicates the search query accesses data at a + /// timestamp before the last time the search index was refreshed. + /// - "NO_PRUNING_POWER" : Indicates the usage of search index will not + /// contribute to any pruning improvement for the search function, e.g. when + /// the search predicate is in a disjunction with other non-search predicates. + /// - "UNINDEXED_SEARCH_FIELDS" : Indicates the search index does not cover + /// all fields in the search function. + /// - "UNSUPPORTED_SEARCH_PATTERN" : Indicates the search index does not + /// support the given search query pattern. + /// - "OPTIMIZED_WITH_MATERIALIZED_VIEW" : Indicates the query has been + /// optimized by using a materialized view. + /// - "SECURED_BY_DATA_MASKING" : Indicates the query has been secured by data + /// masking, and thus search indexes are not applicable. + /// - "MISMATCHED_TEXT_ANALYZER" : Indicates that the search index and the + /// search function call do not have the same text analyzer. + /// - "BASE_TABLE_TOO_SMALL" : Indicates the base table is too small (below a + /// certain threshold). The index does not provide noticeable search + /// performance gains when the base table is too small. + /// - "BASE_TABLE_TOO_LARGE" : Indicates that the total size of indexed base + /// tables in your organization exceeds your region's limit and the index is + /// not used in the query. To index larger base tables, you can use your own + /// reservation for index-management jobs. + /// - "ESTIMATED_PERFORMANCE_GAIN_TOO_LOW" : Indicates that the estimated + /// performance gain from using the search index is too low for the given + /// search query. + /// - "NOT_SUPPORTED_IN_STANDARD_EDITION" : Indicates that search indexes can + /// not be used for search query with STANDARD edition. + /// - "INDEX_SUPPRESSED_BY_FUNCTION_OPTION" : Indicates that an option in the + /// search function that cannot make use of the index has been selected. + /// - "QUERY_CACHE_HIT" : Indicates that the query was cached, and thus the + /// search index was not used. + /// - "INTERNAL_ERROR" : Indicates an internal error that causes the search + /// index to be unused. + /// - "OTHER_REASON" : Indicates that the reason search indexes cannot be used + /// in the query is not covered by any of the other IndexUnusedReason options. core.String? code; - /// \[Output-only\] Specifies the name of the unused search index, if - /// available. + /// Specifies the name of the unused search index, if available. core.String? indexName; - /// \[Output-only\] Free form human-readable reason for the scenario when no - /// search index was used. + /// Free form human-readable reason for the scenario when no search index was + /// used. core.String? message; IndexUnusedReason({ @@ -6482,6 +7446,31 @@ class IndexUnusedReason { }; } +/// Details about the input data change insight. +class InputDataChange { + /// Records read difference percentage compared to a previous run. + /// + /// Output only. + core.double? recordsReadDiffPercentage; + + InputDataChange({ + this.recordsReadDiffPercentage, + }); + + InputDataChange.fromJson(core.Map json_) + : this( + recordsReadDiffPercentage: + json_.containsKey('recordsReadDiffPercentage') + ? (json_['recordsReadDiffPercentage'] as core.num).toDouble() + : null, + ); + + core.Map toJson() => { + if (recordsReadDiffPercentage != null) + 'recordsReadDiffPercentage': recordsReadDiffPercentage!, + }; +} + /// An array of int. class IntArray { /// Elements in the int array. @@ -6608,7 +7597,14 @@ class IntRange { }; } +/// Information about a single iteration of the training run. class IterationResult { + /// Arima result. + ArimaResult? arimaResult; + + /// Information about top clusters for clustering models. + core.List? clusterInfos; + /// Time taken to run the iteration in milliseconds. core.String? durationMs; @@ -6621,19 +7617,35 @@ class IterationResult { /// Learn rate used for this iteration. core.double? learnRate; + /// The information of the principal components. + core.List? principalComponentInfos; + /// Loss computed on the training data at the end of iteration. core.double? trainingLoss; IterationResult({ + this.arimaResult, + this.clusterInfos, this.durationMs, this.evalLoss, this.index, this.learnRate, + this.principalComponentInfos, this.trainingLoss, }); IterationResult.fromJson(core.Map json_) : this( + arimaResult: json_.containsKey('arimaResult') + ? ArimaResult.fromJson( + json_['arimaResult'] as core.Map) + : null, + clusterInfos: json_.containsKey('clusterInfos') + ? (json_['clusterInfos'] as core.List) + .map((value) => ClusterInfo.fromJson( + value as core.Map)) + .toList() + : null, durationMs: json_.containsKey('durationMs') ? json_['durationMs'] as core.String : null, @@ -6644,16 +7656,26 @@ class IterationResult { learnRate: json_.containsKey('learnRate') ? (json_['learnRate'] as core.num).toDouble() : null, + principalComponentInfos: json_.containsKey('principalComponentInfos') + ? (json_['principalComponentInfos'] as core.List) + .map((value) => PrincipalComponentInfo.fromJson( + value as core.Map)) + .toList() + : null, trainingLoss: json_.containsKey('trainingLoss') ? (json_['trainingLoss'] as core.num).toDouble() : null, ); core.Map toJson() => { + if (arimaResult != null) 'arimaResult': arimaResult!, + if (clusterInfos != null) 'clusterInfos': clusterInfos!, if (durationMs != null) 'durationMs': durationMs!, if (evalLoss != null) 'evalLoss': evalLoss!, if (index != null) 'index': index!, if (learnRate != null) 'learnRate': learnRate!, + if (principalComponentInfos != null) + 'principalComponentInfos': principalComponentInfos!, if (trainingLoss != null) 'trainingLoss': trainingLoss!, }; } @@ -6664,43 +7686,65 @@ class Job { /// Required. JobConfiguration? configuration; - /// \[Output-only\] A hash of this resource. + /// A hash of this resource. + /// + /// Output only. core.String? etag; - /// \[Output-only\] Opaque ID field of the job + /// Opaque ID field of the job. + /// + /// Output only. core.String? id; - /// \[Output-only\] If set, it provides the reason why a Job was created. + /// If set, it provides the reason why a Job was created. /// /// If not set, it should be treated as the default: REQUESTED. This feature /// is not yet available. Jobs will always be created. /// - /// The values for Object must be JSON objects. It can consist of `num`, - /// `String`, `bool` and `null` as well as `Map` and `List` values. - core.Object? jobCreationReason; + /// Output only. + JobCreationReason? jobCreationReason; /// Reference describing the unique-per-user name of the job. /// /// Optional. JobReference? jobReference; - /// \[Output-only\] The type of the resource. + /// The type of the resource. + /// + /// Output only. core.String? kind; - /// \[Output-only\] A URL that can be used to access this resource again. + /// \[Full-projection-only\] String representation of identity of requesting + /// party. + /// + /// Populated for both first- and third-party identities. Only present for + /// APIs that support third-party identities. + /// + /// Output only. + core.String? principalSubject; + + /// A URL that can be used to access the resource again. + /// + /// Output only. core.String? selfLink; - /// \[Output-only\] Information about the job, including starting time and - /// ending time of the job. + /// Information about the job, including starting time and ending time of the + /// job. + /// + /// Output only. JobStatistics? statistics; - /// \[Output-only\] The status of this job. + /// The status of this job. /// /// Examine this value when polling an asynchronous job to see if the job is /// complete. + /// + /// Output only. JobStatus? status; - /// \[Output-only\] Email address of the user who ran the job. + /// Email address of the user who ran the job. + /// + /// Output only. core.String? userEmail; Job({ @@ -6710,6 +7754,7 @@ class Job { this.jobCreationReason, this.jobReference, this.kind, + this.principalSubject, this.selfLink, this.statistics, this.status, @@ -6725,13 +7770,17 @@ class Job { etag: json_.containsKey('etag') ? json_['etag'] as core.String : null, id: json_.containsKey('id') ? json_['id'] as core.String : null, jobCreationReason: json_.containsKey('jobCreationReason') - ? json_['jobCreationReason'] + ? JobCreationReason.fromJson(json_['jobCreationReason'] + as core.Map) : null, jobReference: json_.containsKey('jobReference') ? JobReference.fromJson( json_['jobReference'] as core.Map) : null, kind: json_.containsKey('kind') ? json_['kind'] as core.String : null, + principalSubject: json_.containsKey('principal_subject') + ? json_['principal_subject'] as core.String + : null, selfLink: json_.containsKey('selfLink') ? json_['selfLink'] as core.String : null, @@ -6755,6 +7804,7 @@ class Job { if (jobCreationReason != null) 'jobCreationReason': jobCreationReason!, if (jobReference != null) 'jobReference': jobReference!, if (kind != null) 'kind': kind!, + if (principalSubject != null) 'principal_subject': principalSubject!, if (selfLink != null) 'selfLink': selfLink!, if (statistics != null) 'statistics': statistics!, if (status != null) 'status': status!, @@ -6762,6 +7812,7 @@ class Job { }; } +/// Describes format of a jobs cancellation response. class JobCancelResponse { /// The final state of the job. Job? job; @@ -6807,14 +7858,16 @@ class JobConfiguration { /// Job timeout in milliseconds. /// - /// If this time limit is exceeded, BigQuery may attempt to terminate the job. + /// If this time limit is exceeded, BigQuery might attempt to stop the job. /// /// Optional. core.String? jobTimeoutMs; - /// \[Output-only\] The type of the job. + /// The type of the job. /// /// Can be QUERY, LOAD, EXTRACT, COPY or UNKNOWN. + /// + /// Output only. core.String? jobType; /// The labels associated with this job. @@ -6891,19 +7944,22 @@ class JobConfiguration { }; } +/// JobConfigurationExtract configures a job that exports data from a BigQuery +/// table into Google Cloud Storage. class JobConfigurationExtract { /// The compression type to use for exported files. /// - /// Possible values include GZIP, DEFLATE, SNAPPY, and NONE. The default value - /// is NONE. DEFLATE and SNAPPY are only supported for Avro. Not applicable - /// when extracting models. + /// Possible values include DEFLATE, GZIP, NONE, SNAPPY, and ZSTD. The default + /// value is NONE. Not all compression formats are support for all file + /// formats. DEFLATE is only supported for Avro. ZSTD is only supported for + /// Parquet. Not applicable when extracting models. /// /// Optional. core.String? compression; /// The exported file format. /// - /// Possible values include CSV, NEWLINE_DELIMITED_JSON, PARQUET or AVRO for + /// Possible values include CSV, NEWLINE_DELIMITED_JSON, PARQUET, or AVRO for /// tables and ML_TF_SAVED_MODEL or ML_XGBOOST_BOOSTER for models. The default /// value for tables is CSV. Tables with nested or repeated fields cannot be /// exported as CSV. The default value for models is ML_TF_SAVED_MODEL. @@ -6922,13 +7978,19 @@ class JobConfigurationExtract { /// extracted table should be written. core.List? destinationUris; - /// Delimiter to use between fields in the exported data. + /// When extracting data in CSV format, this defines the delimiter to use + /// between fields in the exported data. /// /// Default is ','. Not applicable when extracting models. /// /// Optional. core.String? fieldDelimiter; + /// Model extract options only applicable when extracting models. + /// + /// Optional. + ModelExtractOptions? modelExtractOptions; + /// Whether to print out a header row in the results. /// /// Default is true. Not applicable when extracting models. @@ -6942,14 +8004,9 @@ class JobConfigurationExtract { /// A reference to the table being exported. TableReference? sourceTable; - /// If destinationFormat is set to "AVRO", this flag indicates whether to - /// enable extracting applicable column types (such as TIMESTAMP) to their - /// corresponding AVRO logical types (timestamp-micros), instead of only using - /// their raw types (avro-long). + /// Whether to use logical types when extracting to AVRO format. /// /// Not applicable when extracting models. - /// - /// Optional. core.bool? useAvroLogicalTypes; JobConfigurationExtract({ @@ -6958,6 +8015,7 @@ class JobConfigurationExtract { this.destinationUri, this.destinationUris, this.fieldDelimiter, + this.modelExtractOptions, this.printHeader, this.sourceModel, this.sourceTable, @@ -6983,6 +8041,10 @@ class JobConfigurationExtract { fieldDelimiter: json_.containsKey('fieldDelimiter') ? json_['fieldDelimiter'] as core.String : null, + modelExtractOptions: json_.containsKey('modelExtractOptions') + ? ModelExtractOptions.fromJson(json_['modelExtractOptions'] + as core.Map) + : null, printHeader: json_.containsKey('printHeader') ? json_['printHeader'] as core.bool : null, @@ -7005,6 +8067,8 @@ class JobConfigurationExtract { if (destinationUri != null) 'destinationUri': destinationUri!, if (destinationUris != null) 'destinationUris': destinationUris!, if (fieldDelimiter != null) 'fieldDelimiter': fieldDelimiter!, + if (modelExtractOptions != null) + 'modelExtractOptions': modelExtractOptions!, if (printHeader != null) 'printHeader': printHeader!, if (sourceModel != null) 'sourceModel': sourceModel!, if (sourceTable != null) 'sourceTable': sourceTable!, @@ -7013,6 +8077,8 @@ class JobConfigurationExtract { }; } +/// JobConfigurationLoad contains the configuration properties for loading data +/// into a destination table. class JobConfigurationLoad { /// Accept rows that are missing trailing optional columns. /// @@ -7036,19 +8102,36 @@ class JobConfigurationLoad { /// Optional. core.bool? autodetect; - /// \[Beta\] Clustering specification for the destination table. - /// - /// Must be specified with time-based partitioning, data in the table will be - /// first partitioned and subsequently clustered. + /// Clustering specification for the destination table. Clustering? clustering; - /// Connection properties. + /// Connection properties which can modify the load job behavior. + /// + /// Currently, only the 'session_id' connection property is supported, and is + /// used to resolve _SESSION appearing as the dataset id. + /// + /// Optional. core.List? connectionProperties; + /// \[Experimental\] Configures the load job to only copy files to the + /// destination BigLake managed table with an external storage_uri, without + /// reading file content and writing them to new files. + /// + /// Copying files only is supported when: * source_uris are in the same + /// external storage system as the destination table but they do not overlap + /// with storage_uri of the destination table. * source_format is the same + /// file format as the destination table. * destination_table is an existing + /// BigLake managed table. Its schema does not have default value expression. + /// It schema does not have type parameters other than precision and scale. * + /// No options other than the above are specified. + /// + /// Optional. + core.bool? copyFilesOnly; + /// Specifies whether the job is allowed to create new tables. /// - /// The following values are supported: CREATE_IF_NEEDED: If the table does - /// not exist, BigQuery creates the table. CREATE_NEVER: The table must + /// The following values are supported: * CREATE_IF_NEEDED: If the table does + /// not exist, BigQuery creates the table. * CREATE_NEVER: The table must /// already exist. If it does not, a 'notFound' error is returned in the job /// result. The default value is CREATE_IF_NEEDED. Creation, truncation and /// append actions occur as one atomic update upon job completion. @@ -7056,11 +8139,17 @@ class JobConfigurationLoad { /// Optional. core.String? createDisposition; - /// If true, creates a new session, where session id will be a server - /// generated random id. + /// If this property is true, the job creates a new session using a randomly + /// generated session_id. /// - /// If false, runs query with an existing session_id passed in - /// ConnectionProperty, otherwise runs the load job in non-session mode. + /// To continue using a created session with subsequent queries, pass the + /// existing session identifier as a `ConnectionProperty` value. The session + /// identifier is returned as part of the `SessionInfo` message within the + /// query statistics. The new session's location will be set to + /// `Job.JobReference.location` if it is present, otherwise it's set to the + /// default location based on existing routing logic. + /// + /// Optional. core.bool? createSession; /// Defines the list of possible SQL data types to which the source decimal @@ -7074,20 +8163,18 @@ class JobConfigurationLoad { /// the type supporting the widest range in the specified list is picked, and /// if a value exceeds the supported range when reading the data, an error /// will be thrown. Example: Suppose the value of this field is \["NUMERIC", - /// "BIGNUMERIC"\]. If (precision,scale) is: (38,9) -\> NUMERIC; (39,9) -\> - /// BIGNUMERIC (NUMERIC cannot hold 30 integer digits); (38,10) -\> BIGNUMERIC - /// (NUMERIC cannot hold 10 fractional digits); (76,38) -\> BIGNUMERIC; - /// (77,38) -\> BIGNUMERIC (error if value exeeds supported range). This field - /// cannot contain duplicate types. The order of the types in this field is - /// ignored. For example, \["BIGNUMERIC", "NUMERIC"\] is the same as - /// \["NUMERIC", "BIGNUMERIC"\] and NUMERIC always takes precedence over - /// BIGNUMERIC. Defaults to \["NUMERIC", "STRING"\] for ORC and \["NUMERIC"\] - /// for the other file formats. - /// - /// Optional. + /// "BIGNUMERIC"\]. If (precision,scale) is: * (38,9) -\> NUMERIC; * (39,9) + /// -\> BIGNUMERIC (NUMERIC cannot hold 30 integer digits); * (38,10) -\> + /// BIGNUMERIC (NUMERIC cannot hold 10 fractional digits); * (76,38) -\> + /// BIGNUMERIC; * (77,38) -\> BIGNUMERIC (error if value exeeds supported + /// range). This field cannot contain duplicate types. The order of the types + /// in this field is ignored. For example, \["BIGNUMERIC", "NUMERIC"\] is the + /// same as \["NUMERIC", "BIGNUMERIC"\] and NUMERIC always takes precedence + /// over BIGNUMERIC. Defaults to \["NUMERIC", "STRING"\] for ORC and + /// \["NUMERIC"\] for the other file formats. core.List? decimalTargetTypes; - /// Custom encryption configuration (e.g., Cloud KMS keys). + /// Custom encryption configuration (e.g., Cloud KMS keys) EncryptionConfiguration? destinationEncryptionConfiguration; /// The destination table to load the data into. @@ -7095,27 +8182,40 @@ class JobConfigurationLoad { /// Required. TableReference? destinationTable; - /// \[Beta\] \[Optional\] Properties with which to create the destination - /// table if it is new. + /// \[Experimental\] Properties with which to create the destination table if + /// it is new. + /// + /// Optional. DestinationTableProperties? destinationTableProperties; /// The character encoding of the data. /// - /// The supported values are UTF-8 or ISO-8859-1. The default value is UTF-8. - /// BigQuery decodes the data after the raw, binary data has been split using - /// the values of the quote and fieldDelimiter properties. + /// The supported values are UTF-8, ISO-8859-1, UTF-16BE, UTF-16LE, UTF-32BE, + /// and UTF-32LE. The default value is UTF-8. BigQuery decodes the data after + /// the raw, binary data has been split using the values of the `quote` and + /// `fieldDelimiter` properties. If you don't specify an encoding, or if you + /// specify a UTF-8 encoding when the CSV file is not UTF-8 encoded, BigQuery + /// attempts to convert the data to UTF-8. Generally, your data loads + /// successfully, but it may not match byte-for-byte what you expect. To avoid + /// this, specify the correct encoding by using the `--encoding` flag. If + /// BigQuery can't convert a character other than the ASCII `0` character, + /// BigQuery converts the character to the standard Unicode replacement + /// character: �. /// /// Optional. core.String? encoding; - /// The separator for fields in a CSV file. + /// The separator character for fields in a CSV file. /// - /// The separator can be any ISO-8859-1 single-byte character. To use a - /// character in the range 128-255, you must encode the character as UTF8. - /// BigQuery converts the string to ISO-8859-1 encoding, and then uses the - /// first byte of the encoded string to split the data in its raw, binary - /// state. BigQuery also supports the escape sequence "\t" to specify a tab - /// separator. The default value is a comma (','). + /// The separator is interpreted as a single byte. For files encoded in + /// ISO-8859-1, any single character can be used as a separator. For files + /// encoded in UTF-8, characters represented in decimal range 1-127 + /// (U+0001-U+007F) can be used without any modification. UTF-8 characters + /// encoded with multiple bytes (i.e. U+0080 and above) will have only the + /// first byte used for separating fields. The remaining bytes will be treated + /// as a part of the field. BigQuery also supports the escape sequence "\t" + /// (U+0009) to specify a tab separator. The default value is comma (",", + /// U+002C). /// /// Optional. core.String? fieldDelimiter; @@ -7123,14 +8223,25 @@ class JobConfigurationLoad { /// Specifies how source URIs are interpreted for constructing the file set to /// load. /// - /// By default source URIs are expanded against the underlying storage. Other - /// options include specifying manifest files. Only applicable to object - /// storage systems. + /// By default, source URIs are expanded against the underlying storage. You + /// can also specify manifest files to control how the file set is + /// constructed. This option is only applicable to object storage systems. /// /// Optional. + /// Possible string values are: + /// - "FILE_SET_SPEC_TYPE_FILE_SYSTEM_MATCH" : This option expands source URIs + /// by listing files from the object store. It is the default behavior if + /// FileSetSpecType is not set. + /// - "FILE_SET_SPEC_TYPE_NEW_LINE_DELIMITED_MANIFEST" : This option indicates + /// that the provided URIs are newline-delimited manifest files, with one URI + /// per line. Wildcard URIs are not supported. core.String? fileSetSpecType; - /// Options to configure hive partitioning support. + /// When set, configures hive partitioning support. + /// + /// Not all storage formats support hive partitioning -- requesting hive + /// partitioning on an unsupported format will lead to an error, as will + /// providing an invalid specification. /// /// Optional. HivePartitioningOptions? hivePartitioningOptions; @@ -7143,27 +8254,34 @@ class JobConfigurationLoad { /// an invalid error is returned in the job result. The default value is /// false. The sourceFormat property determines what BigQuery treats as an /// extra value: CSV: Trailing columns JSON: Named values that don't match any - /// column names + /// column names in the table schema Avro, Parquet, ORC: Fields in the file + /// schema that don't exist in the table schema. /// /// Optional. core.bool? ignoreUnknownValues; - /// If sourceFormat is set to newline-delimited JSON, indicates whether it - /// should be processed as a JSON variant such as GeoJSON. + /// Load option to be used together with source_format newline-delimited JSON + /// to indicate that a variant of JSON is being loaded. /// - /// For a sourceFormat other than JSON, omit this field. If the sourceFormat - /// is newline-delimited JSON: - for newline-delimited GeoJSON: set to - /// GEOJSON. + /// To load newline-delimited GeoJSON, specify GEOJSON (and source_format must + /// be set to NEWLINE_DELIMITED_JSON). /// /// Optional. + /// Possible string values are: + /// - "JSON_EXTENSION_UNSPECIFIED" : The default if provided value is not one + /// included in the enum, or the value is not specified. The source formate is + /// parsed without any modification. + /// - "GEOJSON" : Use GeoJSON variant of JSON. See + /// https://tools.ietf.org/html/rfc7946. core.String? jsonExtension; /// The maximum number of bad records that BigQuery can ignore when running /// the job. /// /// If the number of bad records exceeds this value, an invalid error is - /// returned in the job result. This is only valid for CSV and JSON. The - /// default value is 0, which requires that all records are valid. + /// returned in the job result. The default value is 0, which requires that + /// all records are valid. This is only supported for CSV and + /// NEWLINE_DELIMITED_JSON file formats. /// /// Optional. core.int? maxBadRecords; @@ -7180,15 +8298,14 @@ class JobConfigurationLoad { /// Optional. core.String? nullMarker; - /// Options to configure parquet support. + /// Additional properties to set if sourceFormat is set to PARQUET. /// /// Optional. ParquetOptions? parquetOptions; - /// Preserves the embedded ASCII control characters (the first 32 characters - /// in the ASCII-table, from '\x00' to '\x1F') when loading from CSV. - /// - /// Only applicable to CSV, ignored for other formats. + /// When sourceFormat is set to "CSV", this indicates whether the embedded + /// ASCII control characters (the first 32 characters in the ASCII-table, from + /// '\x00' to '\x1F') are preserved. /// /// Optional. core.bool? preserveAsciiControlCharacters; @@ -7209,18 +8326,25 @@ class JobConfigurationLoad { /// state. The default value is a double-quote ('"'). If your data does not /// contain quoted sections, set the property value to an empty string. If /// your data contains quoted newline characters, you must also set the - /// allowQuotedNewlines property to true. + /// allowQuotedNewlines property to true. To include the specific quote + /// character within a quoted value, precede it with an additional matching + /// quote character. For example, if you want to escape the default character + /// ' " ', use ' "" '. @default " /// /// Optional. core.String? quote; - /// \[TrustedTester\] Range partitioning specification for this table. + /// Range partitioning specification for the destination table. /// /// Only one of timePartitioning and rangePartitioning should be specified. RangePartitioning? rangePartitioning; - /// User provided referencing file with the expected reader schema, Available - /// for the format: AVRO, PARQUET, ORC. + /// The user can provide a reference file with the reader schema. + /// + /// This file is only loaded if it is part of source URIs, but is not loaded + /// otherwise. It is enabled for the following formats: AVRO, PARQUET, ORC. + /// + /// Optional. core.String? referenceFileSchemaUri; /// The schema for the destination table. @@ -7252,8 +8376,8 @@ class JobConfigurationLoad { /// WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination /// table is a partition of a table, specified by partition decorators. For /// normal tables, WRITE_TRUNCATE will always overwrite the schema. One or - /// more of the following values are specified: ALLOW_FIELD_ADDITION: allow - /// adding a nullable field to the schema. ALLOW_FIELD_RELAXATION: allow + /// more of the following values are specified: * ALLOW_FIELD_ADDITION: allow + /// adding a nullable field to the schema. * ALLOW_FIELD_RELAXATION: allow /// relaxing a required field in the original schema to nullable. core.List? schemaUpdateOptions; @@ -7261,7 +8385,15 @@ class JobConfigurationLoad { /// loading the data. /// /// The default value is 0. This property is useful if you have header rows in - /// the file that should be skipped. + /// the file that should be skipped. When autodetect is on, the behavior is + /// the following: * skipLeadingRows unspecified - Autodetect tries to detect + /// headers in the first row. If they are not detected, the row is read as + /// data. Otherwise data is read starting from the second row. * + /// skipLeadingRows is 0 - Instructs autodetect that there are no headers and + /// data should be read starting from the first row. * skipLeadingRows = N \> + /// 0 - Autodetect skips N-1 rows and tries to detect headers in row N. If + /// headers are not detected, row N is just skipped. Otherwise row N is used + /// to extract column names for the detected schema. /// /// Optional. core.int? skipLeadingRows; @@ -7303,14 +8435,15 @@ class JobConfigurationLoad { /// Specifies the action that occurs if the destination table already exists. /// - /// The following values are supported: WRITE_TRUNCATE: If the table already - /// exists, BigQuery overwrites the table data. WRITE_APPEND: If the table - /// already exists, BigQuery appends the data to the table. WRITE_EMPTY: If - /// the table already exists and contains data, a 'duplicate' error is - /// returned in the job result. The default value is WRITE_APPEND. Each action - /// is atomic and only occurs if BigQuery is able to complete the job - /// successfully. Creation, truncation and append actions occur as one atomic - /// update upon job completion. + /// The following values are supported: * WRITE_TRUNCATE: If the table already + /// exists, BigQuery overwrites the data, removes the constraints and uses the + /// schema from the load job. * WRITE_APPEND: If the table already exists, + /// BigQuery appends the data to the table. * WRITE_EMPTY: If the table + /// already exists and contains data, a 'duplicate' error is returned in the + /// job result. The default value is WRITE_APPEND. Each action is atomic and + /// only occurs if BigQuery is able to complete the job successfully. + /// Creation, truncation and append actions occur as one atomic update upon + /// job completion. /// /// Optional. core.String? writeDisposition; @@ -7321,6 +8454,7 @@ class JobConfigurationLoad { this.autodetect, this.clustering, this.connectionProperties, + this.copyFilesOnly, this.createDisposition, this.createSession, this.decimalTargetTypes, @@ -7374,6 +8508,9 @@ class JobConfigurationLoad { value as core.Map)) .toList() : null, + copyFilesOnly: json_.containsKey('copyFilesOnly') + ? json_['copyFilesOnly'] as core.bool + : null, createDisposition: json_.containsKey('createDisposition') ? json_['createDisposition'] as core.String : null, @@ -7495,6 +8632,7 @@ class JobConfigurationLoad { if (clustering != null) 'clustering': clustering!, if (connectionProperties != null) 'connectionProperties': connectionProperties!, + if (copyFilesOnly != null) 'copyFilesOnly': copyFilesOnly!, if (createDisposition != null) 'createDisposition': createDisposition!, if (createSession != null) 'createSession': createSession!, if (decimalTargetTypes != null) @@ -7539,25 +8677,23 @@ class JobConfigurationLoad { }; } +/// JobConfigurationQuery configures a BigQuery query job. class JobConfigurationQuery { /// If true and query uses legacy SQL dialect, allows the query to produce /// arbitrarily large result tables at a slight cost in performance. /// - /// Requires destinationTable to be set. For standard SQL queries, this flag - /// is ignored and large results are always allowed. However, you must still - /// set destinationTable when result size exceeds the allowed maximum response + /// Requires destinationTable to be set. For GoogleSQL queries, this flag is + /// ignored and large results are always allowed. However, you must still set + /// destinationTable when result size exceeds the allowed maximum response /// size. /// /// Optional. core.bool? allowLargeResults; - /// \[Beta\] Clustering specification for the destination table. - /// - /// Must be specified with time-based partitioning, data in the table will be - /// first partitioned and subsequently clustered. + /// Clustering specification for the destination table. Clustering? clustering; - /// Connection properties. + /// Connection properties which can modify the query behavior. core.List? connectionProperties; /// Specifies whether the query should be executed as a continuous query. @@ -7569,8 +8705,8 @@ class JobConfigurationQuery { /// Specifies whether the job is allowed to create new tables. /// - /// The following values are supported: CREATE_IF_NEEDED: If the table does - /// not exist, BigQuery creates the table. CREATE_NEVER: The table must + /// The following values are supported: * CREATE_IF_NEEDED: If the table does + /// not exist, BigQuery creates the table. * CREATE_NEVER: The table must /// already exist. If it does not, a 'notFound' error is returned in the job /// result. The default value is CREATE_IF_NEEDED. Creation, truncation and /// append actions occur as one atomic update upon job completion. @@ -7578,29 +8714,36 @@ class JobConfigurationQuery { /// Optional. core.String? createDisposition; - /// If true, creates a new session, where session id will be a server - /// generated random id. + /// If this property is true, the job creates a new session using a randomly + /// generated session_id. /// - /// If false, runs query with an existing session_id passed in - /// ConnectionProperty, otherwise runs query in non-session mode. + /// To continue using a created session with subsequent queries, pass the + /// existing session identifier as a `ConnectionProperty` value. The session + /// identifier is returned as part of the `SessionInfo` message within the + /// query statistics. The new session's location will be set to + /// `Job.JobReference.location` if it is present, otherwise it's set to the + /// default location based on existing routing logic. core.bool? createSession; /// Specifies the default dataset to use for unqualified table names in the /// query. /// - /// Note that this does not alter behavior of unqualified dataset names. + /// This setting does not alter behavior of unqualified dataset names. Setting + /// the system variable `@@dataset_id` achieves the same behavior. See + /// https://cloud.google.com/bigquery/docs/reference/system-variables for more + /// information on system variables. /// /// Optional. DatasetReference? defaultDataset; - /// Custom encryption configuration (e.g., Cloud KMS keys). + /// Custom encryption configuration (e.g., Cloud KMS keys) EncryptionConfiguration? destinationEncryptionConfiguration; /// Describes the table where the query results should be stored. /// - /// If not present, a new table will be created to store the results. This - /// property must be set for large results that exceed the maximum response - /// size. + /// This property must be set for large results that exceed the maximum + /// response size. For queries that produce anonymous (cached) results, this + /// field will be populated by BigQuery. /// /// Optional. TableReference? destinationTable; @@ -7608,19 +8751,24 @@ class JobConfigurationQuery { /// If true and query uses legacy SQL dialect, flattens all nested and /// repeated fields in the query results. /// - /// allowLargeResults must be true if this is set to false. For standard SQL + /// allowLargeResults must be true if this is set to false. For GoogleSQL /// queries, this flag is ignored and results are never flattened. /// /// Optional. core.bool? flattenResults; - /// Limits the billing tier for this job. + /// Maximum billing tier allowed for this query. /// - /// Queries that have resource usage beyond this tier will fail (without - /// incurring a charge). If unspecified, this will be set to your project - /// default. + /// The billing tier controls the amount of compute resources allotted to the + /// query, and multiplies the on-demand cost of the query accordingly. A query + /// that runs within its allotted resources will succeed and indicate its + /// billing tier in statistics.query.billingTier, but if the query exceeds its + /// allotted resources, it will fail with billingTierLimitExceeded. WARNING: + /// The billed byte amount can be multiplied by an amount up to this number! + /// Most users should not need to alter this setting, and we recommend that + /// you avoid introducing new uses of it. /// - /// Optional. + /// Optional. Deprecated. core.int? maximumBillingTier; /// Limits the bytes billed for this job. @@ -7628,11 +8776,9 @@ class JobConfigurationQuery { /// Queries that will have bytes billed beyond this limit will fail (without /// incurring a charge). If unspecified, this will be set to your project /// default. - /// - /// Optional. core.String? maximumBytesBilled; - /// Standard SQL only. + /// GoogleSQL only. /// /// Set to POSITIONAL to use positional (?) query parameters or to NAMED to /// use named (@myparam) query parameters in this query. @@ -7654,15 +8800,15 @@ class JobConfigurationQuery { /// SQL query text to execute. /// /// The useLegacySql field can be used to indicate whether the query uses - /// legacy SQL or standard SQL. + /// legacy SQL or GoogleSQL. /// /// Required. core.String? query; - /// Query parameters for standard SQL queries. + /// Query parameters for GoogleSQL queries. core.List? queryParameters; - /// \[TrustedTester\] Range partitioning specification for this table. + /// Range partitioning specification for the destination table. /// /// Only one of timePartitioning and rangePartitioning should be specified. RangePartitioning? rangePartitioning; @@ -7674,16 +8820,29 @@ class JobConfigurationQuery { /// WRITE_APPEND; when writeDisposition is WRITE_TRUNCATE and the destination /// table is a partition of a table, specified by partition decorators. For /// normal tables, WRITE_TRUNCATE will always overwrite the schema. One or - /// more of the following values are specified: ALLOW_FIELD_ADDITION: allow - /// adding a nullable field to the schema. ALLOW_FIELD_RELAXATION: allow + /// more of the following values are specified: * ALLOW_FIELD_ADDITION: allow + /// adding a nullable field to the schema. * ALLOW_FIELD_RELAXATION: allow /// relaxing a required field in the original schema to nullable. core.List? schemaUpdateOptions; - /// If querying an external data source outside of BigQuery, describes the - /// data format, location and other properties of the data source. + /// Options controlling the execution of scripts. + ScriptOptions? scriptOptions; + + /// System variables for GoogleSQL queries. /// - /// By defining these properties, the data source can then be queried as if it - /// were a standard BigQuery table. + /// A system variable is output if the variable is settable and its value + /// differs from the system default. "@@" prefix is not included in the name + /// of the System variables. + /// + /// Output only. + SystemVariables? systemVariables; + + /// You can specify external table definitions, which operate as ephemeral + /// tables that can be queried. + /// + /// These definitions are configured using a JSON map, where the string key + /// represents the table identifier, and the value is the corresponding + /// external data configuration object. /// /// Optional. core.Map? tableDefinitions; @@ -7696,9 +8855,11 @@ class JobConfigurationQuery { /// Specifies whether to use BigQuery's legacy SQL dialect for this query. /// /// The default value is true. If set to false, the query will use BigQuery's - /// standard SQL: https://cloud.google.com/bigquery/sql-reference/ When + /// GoogleSQL: https://cloud.google.com/bigquery/sql-reference/ When /// useLegacySql is set to false, the value of flattenResults is ignored; /// query will be run as if flattenResults is false. + /// + /// Optional. core.bool? useLegacySql; /// Whether to look for the result in the query cache. @@ -7716,14 +8877,15 @@ class JobConfigurationQuery { /// Specifies the action that occurs if the destination table already exists. /// - /// The following values are supported: WRITE_TRUNCATE: If the table already - /// exists, BigQuery overwrites the table data and uses the schema from the - /// query result. WRITE_APPEND: If the table already exists, BigQuery appends - /// the data to the table. WRITE_EMPTY: If the table already exists and - /// contains data, a 'duplicate' error is returned in the job result. The - /// default value is WRITE_EMPTY. Each action is atomic and only occurs if - /// BigQuery is able to complete the job successfully. Creation, truncation - /// and append actions occur as one atomic update upon job completion. + /// The following values are supported: * WRITE_TRUNCATE: If the table already + /// exists, BigQuery overwrites the data, removes the constraints, and uses + /// the schema from the query result. * WRITE_APPEND: If the table already + /// exists, BigQuery appends the data to the table. * WRITE_EMPTY: If the + /// table already exists and contains data, a 'duplicate' error is returned in + /// the job result. The default value is WRITE_EMPTY. Each action is atomic + /// and only occurs if BigQuery is able to complete the job successfully. + /// Creation, truncation and append actions occur as one atomic update upon + /// job completion. /// /// Optional. core.String? writeDisposition; @@ -7748,6 +8910,8 @@ class JobConfigurationQuery { this.queryParameters, this.rangePartitioning, this.schemaUpdateOptions, + this.scriptOptions, + this.systemVariables, this.tableDefinitions, this.timePartitioning, this.useLegacySql, @@ -7829,6 +8993,14 @@ class JobConfigurationQuery { .map((value) => value as core.String) .toList() : null, + scriptOptions: json_.containsKey('scriptOptions') + ? ScriptOptions.fromJson( + json_['scriptOptions'] as core.Map) + : null, + systemVariables: json_.containsKey('systemVariables') + ? SystemVariables.fromJson(json_['systemVariables'] + as core.Map) + : null, tableDefinitions: json_.containsKey('tableDefinitions') ? (json_['tableDefinitions'] as core.Map) @@ -7888,6 +9060,8 @@ class JobConfigurationQuery { if (rangePartitioning != null) 'rangePartitioning': rangePartitioning!, if (schemaUpdateOptions != null) 'schemaUpdateOptions': schemaUpdateOptions!, + if (scriptOptions != null) 'scriptOptions': scriptOptions!, + if (systemVariables != null) 'systemVariables': systemVariables!, if (tableDefinitions != null) 'tableDefinitions': tableDefinitions!, if (timePartitioning != null) 'timePartitioning': timePartitioning!, if (useLegacySql != null) 'useLegacySql': useLegacySql!, @@ -7898,11 +9072,16 @@ class JobConfigurationQuery { }; } +/// JobConfigurationTableCopy configures a job that copies data from one table +/// to another. +/// +/// For more information on copying tables, see +/// [Copy a table](https://cloud.google.com/bigquery/docs/managing-tables#copy-table). class JobConfigurationTableCopy { /// Specifies whether the job is allowed to create new tables. /// - /// The following values are supported: CREATE_IF_NEEDED: If the table does - /// not exist, BigQuery creates the table. CREATE_NEVER: The table must + /// The following values are supported: * CREATE_IF_NEEDED: If the table does + /// not exist, BigQuery creates the table. * CREATE_NEVER: The table must /// already exist. If it does not, a 'notFound' error is returned in the job /// result. The default value is CREATE_IF_NEEDED. Creation, truncation and /// append actions occur as one atomic update upon job completion. @@ -7918,12 +9097,9 @@ class JobConfigurationTableCopy { /// Expired tables will be deleted and their storage reclaimed. /// /// Optional. - /// - /// The values for Object must be JSON objects. It can consist of `num`, - /// `String`, `bool` and `null` as well as `Map` and `List` values. - core.Object? destinationExpirationTime; + core.String? destinationExpirationTime; - /// The destination table + /// The destination table. /// /// Required. TableReference? destinationTable; @@ -7931,6 +9107,15 @@ class JobConfigurationTableCopy { /// Supported operation types in table copy job. /// /// Optional. + /// Possible string values are: + /// - "OPERATION_TYPE_UNSPECIFIED" : Unspecified operation type. + /// - "COPY" : The source and destination table have the same table type. + /// - "SNAPSHOT" : The source table type is TABLE and the destination table + /// type is SNAPSHOT. + /// - "RESTORE" : The source table type is SNAPSHOT and the destination table + /// type is TABLE. + /// - "CLONE" : The source and destination table have the same table type, but + /// only bill for unique data. core.String? operationType; /// \[Pick one\] Source table to copy. @@ -7941,14 +9126,15 @@ class JobConfigurationTableCopy { /// Specifies the action that occurs if the destination table already exists. /// - /// The following values are supported: WRITE_TRUNCATE: If the table already - /// exists, BigQuery overwrites the table data. WRITE_APPEND: If the table - /// already exists, BigQuery appends the data to the table. WRITE_EMPTY: If - /// the table already exists and contains data, a 'duplicate' error is - /// returned in the job result. The default value is WRITE_EMPTY. Each action - /// is atomic and only occurs if BigQuery is able to complete the job - /// successfully. Creation, truncation and append actions occur as one atomic - /// update upon job completion. + /// The following values are supported: * WRITE_TRUNCATE: If the table already + /// exists, BigQuery overwrites the table data and uses the schema and table + /// constraints from the source table. * WRITE_APPEND: If the table already + /// exists, BigQuery appends the data to the table. * WRITE_EMPTY: If the + /// table already exists and contains data, a 'duplicate' error is returned in + /// the job result. The default value is WRITE_EMPTY. Each action is atomic + /// and only occurs if BigQuery is able to complete the job successfully. + /// Creation, truncation and append actions occur as one atomic update upon + /// job completion. /// /// Optional. core.String? writeDisposition; @@ -7977,7 +9163,7 @@ class JobConfigurationTableCopy { : null, destinationExpirationTime: json_.containsKey('destinationExpirationTime') - ? json_['destinationExpirationTime'] + ? json_['destinationExpirationTime'] as core.String : null, destinationTable: json_.containsKey('destinationTable') ? TableReference.fromJson(json_['destinationTable'] @@ -8016,8 +9202,51 @@ class JobConfigurationTableCopy { }; } +/// Reason about why a Job was created from a +/// \[`jobs.query`\](https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/query) +/// method when used with `JOB_CREATION_OPTIONAL` Job creation mode. +/// +/// For +/// \[`jobs.insert`\](https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/insert) +/// method calls it will always be `REQUESTED`. This feature is not yet +/// available. Jobs will always be created. +class JobCreationReason { + /// Specifies the high level reason why a Job was created. + /// + /// Output only. + /// Possible string values are: + /// - "CODE_UNSPECIFIED" : Reason is not specified. + /// - "REQUESTED" : Job creation was requested. + /// - "LONG_RUNNING" : The query request ran beyond a system defined timeout + /// specified by the + /// [timeoutMs field in the QueryRequest](https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/query#queryrequest). + /// As a result it was considered a long running operation for which a job was + /// created. + /// - "LARGE_RESULTS" : The results from the query cannot fit in the response. + /// - "OTHER" : BigQuery has determined that the query needs to be executed as + /// a Job. + core.String? code; + + JobCreationReason({ + this.code, + }); + + JobCreationReason.fromJson(core.Map json_) + : this( + code: json_.containsKey('code') ? json_['code'] as core.String : null, + ); + + core.Map toJson() => { + if (code != null) 'code': code!, + }; +} + +/// ListFormatJob is a partial projection of job information returned as part of +/// a jobs.list response. class JobListJobs { - /// \[Full-projection-only\] Specifies the job configuration. + /// Describes the job configuration. + /// + /// Required. JobConfiguration? configuration; /// A result object that will be present only if the job has failed. @@ -8026,23 +9255,32 @@ class JobListJobs { /// Unique opaque ID of the job. core.String? id; - /// Job reference uniquely identifying the job. + /// Unique opaque ID of the job. JobReference? jobReference; /// The resource type. core.String? kind; + /// \[Full-projection-only\] String representation of identity of requesting + /// party. + /// + /// Populated for both first- and third-party identities. Only present for + /// APIs that support third-party identities. + core.String? principalSubject; + /// Running state of the job. /// /// When the state is DONE, errorResult can be checked to determine whether /// the job succeeded or failed. core.String? state; - /// \[Output-only\] Information about the job, including starting time and - /// ending time of the job. + /// Information about the job, including starting time and ending time of the + /// job. + /// + /// Output only. JobStatistics? statistics; - /// \[Full-projection-only\] Describes the state of the job. + /// \[Full-projection-only\] Describes the status of this job. JobStatus? status; /// \[Full-projection-only\] Email address of the user who ran the job. @@ -8054,6 +9292,7 @@ class JobListJobs { this.id, this.jobReference, this.kind, + this.principalSubject, this.state, this.statistics, this.status, @@ -8076,6 +9315,9 @@ class JobListJobs { json_['jobReference'] as core.Map) : null, kind: json_.containsKey('kind') ? json_['kind'] as core.String : null, + principalSubject: json_.containsKey('principal_subject') + ? json_['principal_subject'] as core.String + : null, state: json_.containsKey('state') ? json_['state'] as core.String : null, statistics: json_.containsKey('statistics') @@ -8097,6 +9339,7 @@ class JobListJobs { if (id != null) 'id': id!, if (jobReference != null) 'jobReference': jobReference!, if (kind != null) 'kind': kind!, + if (principalSubject != null) 'principal_subject': principalSubject!, if (state != null) 'state': state!, if (statistics != null) 'statistics': statistics!, if (status != null) 'status': status!, @@ -8104,6 +9347,7 @@ class JobListJobs { }; } +/// JobList is the response format for a jobs.list call. class JobList { /// A hash of this page of results. core.String? etag; @@ -8117,11 +9361,18 @@ class JobList { /// A token to request the next page of results. core.String? nextPageToken; + /// A list of skipped locations that were unreachable. + /// + /// For more information about BigQuery locations, see: + /// https://cloud.google.com/bigquery/docs/locations. Example: "europe-west5" + core.List? unreachable; + JobList({ this.etag, this.jobs, this.kind, this.nextPageToken, + this.unreachable, }); JobList.fromJson(core.Map json_) @@ -8137,6 +9388,11 @@ class JobList { nextPageToken: json_.containsKey('nextPageToken') ? json_['nextPageToken'] as core.String : null, + unreachable: json_.containsKey('unreachable') + ? (json_['unreachable'] as core.List) + .map((value) => value as core.String) + .toList() + : null, ); core.Map toJson() => { @@ -8144,9 +9400,11 @@ class JobList { if (jobs != null) 'jobs': jobs!, if (kind != null) 'kind': kind!, if (nextPageToken != null) 'nextPageToken': nextPageToken!, + if (unreachable != null) 'unreachable': unreachable!, }; } +/// A job reference is a fully qualified identifier for referring to a job. class JobReference { /// The ID of the job. /// @@ -8158,8 +9416,10 @@ class JobReference { /// The geographic location of the job. /// - /// See details at - /// https://cloud.google.com/bigquery/docs/locations#specifying_your_location. + /// The default value is US. For more information about BigQuery locations, + /// see: https://cloud.google.com/bigquery/docs/locations + /// + /// Optional. core.String? location; /// The ID of the project containing this job. @@ -8192,12 +9452,12 @@ class JobReference { }; } +/// Job resource usage breakdown by reservation. class JobStatisticsReservationUsage { - /// \[Output-only\] Reservation name or "unreserved" for on-demand resources - /// usage. + /// Reservation name or "unreserved" for on-demand resources usage. core.String? name; - /// \[Output-only\] Slot-milliseconds the job spent in the given reservation. + /// Total slot milliseconds used by the reservation for a particular job. core.String? slotMs; JobStatisticsReservationUsage({ @@ -8219,85 +9479,139 @@ class JobStatisticsReservationUsage { }; } +/// Statistics for a single job execution. class JobStatistics { - /// \[TrustedTester\] \[Output-only\] Job progress (0.0 -\> 1.0) for LOAD and - /// EXTRACT jobs. + /// \[TrustedTester\] Job progress (0.0 -\> 1.0) for LOAD and EXTRACT jobs. + /// + /// Output only. core.double? completionRatio; - /// \[Output-only\] Statistics for a copy job. + /// Statistics for a copy job. + /// + /// Output only. JobStatistics5? copy; - /// \[Output-only\] Creation time of this job, in milliseconds since the - /// epoch. + /// Creation time of this job, in milliseconds since the epoch. /// /// This field will be present on all jobs. + /// + /// Output only. core.String? creationTime; - /// \[Output-only\] Statistics for data masking. + /// Statistics for data-masking. /// /// Present only for query and extract jobs. + /// + /// Output only. DataMaskingStatistics? dataMaskingStatistics; - /// \[Output-only\] End time of this job, in milliseconds since the epoch. + /// End time of this job, in milliseconds since the epoch. /// /// This field will be present whenever a job is in the DONE state. + /// + /// Output only. core.String? endTime; - /// \[Output-only\] Statistics for an extract job. + /// Statistics for an extract job. + /// + /// Output only. JobStatistics4? extract; - /// \[Output-only\] Statistics for a load job. + /// The duration in milliseconds of the execution of the final attempt of this + /// job, as BigQuery may internally re-attempt to execute the job. + /// + /// Output only. + core.String? finalExecutionDurationMs; + + /// Statistics for a load job. + /// + /// Output only. JobStatistics3? load; - /// \[Output-only\] Number of child jobs executed. + /// Number of child jobs executed. + /// + /// Output only. core.String? numChildJobs; - /// \[Output-only\] If this is a child job, the id of the parent. + /// If this is a child job, specifies the job ID of the parent. + /// + /// Output only. core.String? parentJobId; - /// \[Output-only\] Statistics for a query job. + /// Statistics for a query job. + /// + /// Output only. JobStatistics2? query; - /// \[Output-only\] Quotas which delayed this job's start time. + /// Quotas which delayed this job's start time. + /// + /// Output only. core.List? quotaDeferments; - /// \[Output-only\] Job resource usage breakdown by reservation. + /// Job resource usage breakdown by reservation. + /// + /// This field reported misleading information and will no longer be + /// populated. + /// + /// Output only. + @core.Deprecated( + 'Not supported. Member documentation may have more information.', + ) core.List? reservationUsage; - /// \[Output-only\] Name of the primary reservation assigned to this job. + /// Name of the primary reservation assigned to this job. /// /// Note that this could be different than reservations reported in the /// reservation usage field if parent reservations were used to execute this /// job. + /// + /// Output only. core.String? reservationId; - /// \[Output-only\] \[Preview\] Statistics for row-level security. + /// Statistics for row-level security. /// /// Present only for query and extract jobs. + /// + /// Output only. RowLevelSecurityStatistics? rowLevelSecurityStatistics; - /// \[Output-only\] Statistics for a child job of a script. + /// If this a child job of a script, specifies information about the context + /// of this job within the script. + /// + /// Output only. ScriptStatistics? scriptStatistics; - /// \[Output-only\] \[Preview\] Information of the session if this job is part - /// of one. + /// Information of the session if this job is part of one. + /// + /// Output only. SessionInfo? sessionInfo; - /// \[Output-only\] Start time of this job, in milliseconds since the epoch. + /// Start time of this job, in milliseconds since the epoch. /// /// This field will be present when the job transitions from the PENDING state /// to either RUNNING or DONE. + /// + /// Output only. core.String? startTime; - /// \[Output-only\] \[Deprecated\] Use the bytes processed in the query - /// statistics instead. + /// Total bytes processed for the job. + /// + /// Output only. core.String? totalBytesProcessed; - /// \[Output-only\] Slot-milliseconds for the job. + /// Slot-milliseconds for the job. + /// + /// Output only. core.String? totalSlotMs; - /// \[Output-only\] \[Alpha\] Information of the multi-statement transaction - /// if this job is part of one. + /// \[Alpha\] Information of the multi-statement transaction if this job is + /// part of one. + /// + /// This property is only expected on a child job or a job that is in a + /// session. A script parent job is not part of the transaction started in the + /// script. + /// + /// Output only. TransactionInfo? transactionInfo; JobStatistics({ @@ -8307,6 +9621,7 @@ class JobStatistics { this.dataMaskingStatistics, this.endTime, this.extract, + this.finalExecutionDurationMs, this.load, this.numChildJobs, this.parentJobId, @@ -8346,6 +9661,10 @@ class JobStatistics { ? JobStatistics4.fromJson( json_['extract'] as core.Map) : null, + finalExecutionDurationMs: + json_.containsKey('finalExecutionDurationMs') + ? json_['finalExecutionDurationMs'] as core.String + : null, load: json_.containsKey('load') ? JobStatistics3.fromJson( json_['load'] as core.Map) @@ -8411,6 +9730,8 @@ class JobStatistics { 'dataMaskingStatistics': dataMaskingStatistics!, if (endTime != null) 'endTime': endTime!, if (extract != null) 'extract': extract!, + if (finalExecutionDurationMs != null) + 'finalExecutionDurationMs': finalExecutionDurationMs!, if (load != null) 'load': load!, if (numChildJobs != null) 'numChildJobs': numChildJobs!, if (parentJobId != null) 'parentJobId': parentJobId!, @@ -8430,15 +9751,12 @@ class JobStatistics { }; } +/// Job resource usage breakdown by reservation. class JobStatistics2ReservationUsage { /// Reservation name or "unreserved" for on-demand resources usage. - /// - /// Output only. core.String? name; - /// Slot-milliseconds the job spent in the given reservation. - /// - /// Output only. + /// Total slot milliseconds used by the reservation for a particular job. core.String? slotMs; JobStatistics2ReservationUsage({ @@ -8460,14 +9778,22 @@ class JobStatistics2ReservationUsage { }; } +/// Statistics for a query job. class JobStatistics2 { /// BI Engine specific Statistics. /// - /// \[Output only\] BI Engine specific Statistics. + /// Output only. BiEngineStatistics? biEngineStatistics; /// Billing tier for the job. /// + /// This is a BigQuery-specific concept which is not related to the Google + /// Cloud notion of "free tier". The value here is a measure of the query's + /// resource consumption relative to the amount of data scanned. For on-demand + /// queries, the limit is 100, and all queries within this limit are billed at + /// the standard on-demand rates. On-demand queries that exceed this limit + /// will fail with a billingTierLimitExceeded error. + /// /// Output only. core.int? billingTier; @@ -8476,17 +9802,31 @@ class JobStatistics2 { /// Output only. core.bool? cacheHit; - /// \[Preview\] The number of row access policies affected by a DDL statement. + /// Referenced dataset for DCL statement. + /// + /// Output only. + DatasetReference? dclTargetDataset; + + /// Referenced table for DCL statement. + /// + /// Output only. + TableReference? dclTargetTable; + + /// Referenced view for DCL statement. + /// + /// Output only. + TableReference? dclTargetView; + + /// The number of row access policies affected by a DDL statement. /// /// Present only for DROP ALL ROW ACCESS POLICIES queries. /// /// Output only. core.String? ddlAffectedRowAccessPolicyCount; - /// The DDL destination table. + /// The table after rename. /// - /// Present only for ALTER TABLE RENAME TO queries. Note that ddl_target_table - /// is used just for its type information. + /// Present only for ALTER TABLE RENAME TO query. /// /// Output only. TableReference? ddlDestinationTable; @@ -8494,28 +9834,24 @@ class JobStatistics2 { /// The DDL operation performed, possibly dependent on the pre-existence of /// the DDL target. /// - /// Possible values (new values might be added in the future): "CREATE": The - /// query created the DDL target. "SKIP": No-op. Example cases: the query is - /// CREATE TABLE IF NOT EXISTS while the table already exists, or the query is - /// DROP TABLE IF EXISTS while the table does not exist. "REPLACE": The query - /// replaced the DDL target. Example case: the query is CREATE OR REPLACE - /// TABLE, and the table already exists. "DROP": The query deleted the DDL - /// target. + /// Output only. core.String? ddlOperationPerformed; /// The DDL target dataset. /// - /// Present only for CREATE/ALTER/DROP/UNDROP SCHEMA queries. + /// Present only for CREATE/ALTER/DROP SCHEMA(dataset) queries. /// /// Output only. DatasetReference? ddlTargetDataset; - /// The DDL target routine. + /// \[Beta\] The DDL target routine. /// /// Present only for CREATE/DROP FUNCTION/PROCEDURE queries. + /// + /// Output only. RoutineReference? ddlTargetRoutine; - /// \[Preview\] The DDL target row access policy. + /// The DDL target row access policy. /// /// Present only for CREATE/DROP ROW ACCESS POLICY queries. /// @@ -8530,8 +9866,8 @@ class JobStatistics2 { /// Output only. TableReference? ddlTargetTable; - /// Detailed statistics for DML statements Present only for DML statements - /// INSERT, UPDATE, DELETE or TRUNCATE. + /// Detailed statistics for DML statements INSERT, UPDATE, DELETE, MERGE or + /// TRUNCATE. /// /// Output only. DmlStatistics? dmlStats; @@ -8541,18 +9877,43 @@ class JobStatistics2 { /// Output only. core.String? estimatedBytesProcessed; + /// Stats for EXPORT DATA statement. + /// + /// Output only. + ExportDataStatistics? exportDataStatistics; + + /// Job cost breakdown as bigquery internal cost and external service costs. + /// + /// Output only. + core.List? externalServiceCosts; + + /// Statistics for a LOAD query. + /// + /// Output only. + LoadQueryStatistics? loadQueryStatistics; + + /// Statistics of materialized views of a query job. + /// + /// Output only. + MaterializedViewStatistics? materializedViewStatistics; + + /// Statistics of metadata cache usage in a query for BigLake tables. + /// + /// Output only. + MetadataCacheStatistics? metadataCacheStatistics; + /// Statistics of a BigQuery ML training job. /// /// Output only. MlStatistics? mlStatistics; - /// \[Output only, Beta\] Information about create model query job progress. + /// Deprecated. BigQueryModelTraining? modelTraining; - /// \[Output only, Beta\] Deprecated; do not use. + /// Deprecated. core.int? modelTrainingCurrentIteration; - /// \[Output only, Beta\] Deprecated; do not use. + /// Deprecated. core.String? modelTrainingExpectedTotalIteration; /// The number of rows affected by a DML statement. @@ -8562,13 +9923,22 @@ class JobStatistics2 { /// Output only. core.String? numDmlAffectedRows; + /// Performance insights. + /// + /// Output only. + PerformanceInsights? performanceInsights; + + /// Query optimization information for a QUERY job. + /// + /// Output only. + QueryInfo? queryInfo; + /// Describes execution plan for the query. /// /// Output only. core.List? queryPlan; - /// Referenced routines (persistent user-defined functions and stored - /// procedures) for the job. + /// Referenced routines for the job. /// /// Output only. core.List? referencedRoutines; @@ -8582,7 +9952,13 @@ class JobStatistics2 { /// Job resource usage breakdown by reservation. /// + /// This field reported misleading information and will no longer be + /// populated. + /// /// Output only. + @core.Deprecated( + 'Not supported. Member documentation may have more information.', + ) core.List? reservationUsage; /// The schema of the results. @@ -8604,32 +9980,104 @@ class JobStatistics2 { /// The type of query statement, if valid. /// - /// Possible values (new values might be added in the future): "SELECT": - /// SELECT query. "INSERT": INSERT query; see - /// https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language. - /// "UPDATE": UPDATE query; see - /// https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language. - /// "DELETE": DELETE query; see - /// https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language. - /// "MERGE": MERGE query; see - /// https://cloud.google.com/bigquery/docs/reference/standard-sql/data-manipulation-language. - /// "ALTER_TABLE": ALTER TABLE query. "ALTER_VIEW": ALTER VIEW query. - /// "ASSERT": ASSERT condition AS 'description'. "CREATE_FUNCTION": CREATE - /// FUNCTION query. "CREATE_MODEL": CREATE \[OR REPLACE\] MODEL ... AS SELECT - /// ... . "CREATE_PROCEDURE": CREATE PROCEDURE query. "CREATE_TABLE": CREATE - /// \[OR REPLACE\] TABLE without AS SELECT. "CREATE_TABLE_AS_SELECT": CREATE - /// \[OR REPLACE\] TABLE ... AS SELECT ... . "CREATE_VIEW": CREATE \[OR - /// REPLACE\] VIEW ... AS SELECT ... . "DROP_FUNCTION" : DROP FUNCTION query. - /// "DROP_PROCEDURE": DROP PROCEDURE query. "DROP_TABLE": DROP TABLE query. - /// "DROP_VIEW": DROP VIEW query. + /// Possible values: * `SELECT`: + /// \[`SELECT`\](/bigquery/docs/reference/standard-sql/query-syntax#select_list) + /// statement. * `ASSERT`: + /// \[`ASSERT`\](/bigquery/docs/reference/standard-sql/debugging-statements#assert) + /// statement. * `INSERT`: + /// \[`INSERT`\](/bigquery/docs/reference/standard-sql/dml-syntax#insert_statement) + /// statement. * `UPDATE`: + /// \[`UPDATE`\](/bigquery/docs/reference/standard-sql/query-syntax#update_statement) + /// statement. * `DELETE`: + /// \[`DELETE`\](/bigquery/docs/reference/standard-sql/data-manipulation-language) + /// statement. * `MERGE`: + /// \[`MERGE`\](/bigquery/docs/reference/standard-sql/data-manipulation-language) + /// statement. * `CREATE_TABLE`: \[`CREATE + /// TABLE`\](/bigquery/docs/reference/standard-sql/data-definition-language#create_table_statement) + /// statement, without `AS SELECT`. * `CREATE_TABLE_AS_SELECT`: \[`CREATE + /// TABLE AS + /// SELECT`\](/bigquery/docs/reference/standard-sql/data-definition-language#query_statement) + /// statement. * `CREATE_VIEW`: \[`CREATE + /// VIEW`\](/bigquery/docs/reference/standard-sql/data-definition-language#create_view_statement) + /// statement. * `CREATE_MODEL`: \[`CREATE + /// MODEL`\](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-create#create_model_statement) + /// statement. * `CREATE_MATERIALIZED_VIEW`: \[`CREATE MATERIALIZED + /// VIEW`\](/bigquery/docs/reference/standard-sql/data-definition-language#create_materialized_view_statement) + /// statement. * `CREATE_FUNCTION`: \[`CREATE + /// FUNCTION`\](/bigquery/docs/reference/standard-sql/data-definition-language#create_function_statement) + /// statement. * `CREATE_TABLE_FUNCTION`: \[`CREATE TABLE + /// FUNCTION`\](/bigquery/docs/reference/standard-sql/data-definition-language#create_table_function_statement) + /// statement. * `CREATE_PROCEDURE`: \[`CREATE + /// PROCEDURE`\](/bigquery/docs/reference/standard-sql/data-definition-language#create_procedure) + /// statement. * `CREATE_ROW_ACCESS_POLICY`: \[`CREATE ROW ACCESS + /// POLICY`\](/bigquery/docs/reference/standard-sql/data-definition-language#create_row_access_policy_statement) + /// statement. * `CREATE_SCHEMA`: \[`CREATE + /// SCHEMA`\](/bigquery/docs/reference/standard-sql/data-definition-language#create_schema_statement) + /// statement. * `CREATE_SNAPSHOT_TABLE`: \[`CREATE SNAPSHOT + /// TABLE`\](/bigquery/docs/reference/standard-sql/data-definition-language#create_snapshot_table_statement) + /// statement. * `CREATE_SEARCH_INDEX`: \[`CREATE SEARCH + /// INDEX`\](/bigquery/docs/reference/standard-sql/data-definition-language#create_search_index_statement) + /// statement. * `DROP_TABLE`: \[`DROP + /// TABLE`\](/bigquery/docs/reference/standard-sql/data-definition-language#drop_table_statement) + /// statement. * `DROP_EXTERNAL_TABLE`: \[`DROP EXTERNAL + /// TABLE`\](/bigquery/docs/reference/standard-sql/data-definition-language#drop_external_table_statement) + /// statement. * `DROP_VIEW`: \[`DROP + /// VIEW`\](/bigquery/docs/reference/standard-sql/data-definition-language#drop_view_statement) + /// statement. * `DROP_MODEL`: \[`DROP + /// MODEL`\](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-drop-model) + /// statement. * `DROP_MATERIALIZED_VIEW`: \[`DROP MATERIALIZED + /// VIEW`\](/bigquery/docs/reference/standard-sql/data-definition-language#drop_materialized_view_statement) + /// statement. * `DROP_FUNCTION` : \[`DROP + /// FUNCTION`\](/bigquery/docs/reference/standard-sql/data-definition-language#drop_function_statement) + /// statement. * `DROP_TABLE_FUNCTION` : \[`DROP TABLE + /// FUNCTION`\](/bigquery/docs/reference/standard-sql/data-definition-language#drop_table_function) + /// statement. * `DROP_PROCEDURE`: \[`DROP + /// PROCEDURE`\](/bigquery/docs/reference/standard-sql/data-definition-language#drop_procedure_statement) + /// statement. * `DROP_SEARCH_INDEX`: \[`DROP SEARCH + /// INDEX`\](/bigquery/docs/reference/standard-sql/data-definition-language#drop_search_index) + /// statement. * `DROP_SCHEMA`: \[`DROP + /// SCHEMA`\](/bigquery/docs/reference/standard-sql/data-definition-language#drop_schema_statement) + /// statement. * `DROP_SNAPSHOT_TABLE`: \[`DROP SNAPSHOT + /// TABLE`\](/bigquery/docs/reference/standard-sql/data-definition-language#drop_snapshot_table_statement) + /// statement. * `DROP_ROW_ACCESS_POLICY`: \[`DROP [ALL] ROW ACCESS + /// POLICY|POLICIES`\](/bigquery/docs/reference/standard-sql/data-definition-language#drop_row_access_policy_statement) + /// statement. * `ALTER_TABLE`: \[`ALTER + /// TABLE`\](/bigquery/docs/reference/standard-sql/data-definition-language#alter_table_set_options_statement) + /// statement. * `ALTER_VIEW`: \[`ALTER + /// VIEW`\](/bigquery/docs/reference/standard-sql/data-definition-language#alter_view_set_options_statement) + /// statement. * `ALTER_MATERIALIZED_VIEW`: \[`ALTER MATERIALIZED + /// VIEW`\](/bigquery/docs/reference/standard-sql/data-definition-language#alter_materialized_view_set_options_statement) + /// statement. * `ALTER_SCHEMA`: \[`ALTER + /// SCHEMA`\](/bigquery/docs/reference/standard-sql/data-definition-language#aalter_schema_set_options_statement) + /// statement. * `SCRIPT`: + /// \[`SCRIPT`\](/bigquery/docs/reference/standard-sql/procedural-language). * + /// `TRUNCATE_TABLE`: \[`TRUNCATE + /// TABLE`\](/bigquery/docs/reference/standard-sql/dml-syntax#truncate_table_statement) + /// statement. * `CREATE_EXTERNAL_TABLE`: \[`CREATE EXTERNAL + /// TABLE`\](/bigquery/docs/reference/standard-sql/data-definition-language#create_external_table_statement) + /// statement. * `EXPORT_DATA`: \[`EXPORT + /// DATA`\](/bigquery/docs/reference/standard-sql/other-statements#export_data_statement) + /// statement. * `EXPORT_MODEL`: \[`EXPORT + /// MODEL`\](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-export-model) + /// statement. * `LOAD_DATA`: \[`LOAD + /// DATA`\](/bigquery/docs/reference/standard-sql/other-statements#load_data_statement) + /// statement. * `CALL`: + /// \[`CALL`\](/bigquery/docs/reference/standard-sql/procedural-language#call) + /// statement. + /// + /// Output only. core.String? statementType; - /// \[Beta\] Describes a timeline of job execution. + /// Describes a timeline of job execution. /// /// Output only. core.List? timeline; - /// Total bytes billed for the job. + /// If the project is configured to use on-demand pricing, then this field + /// contains the total bytes billed for the job. + /// + /// If the project is configured to use flat-rate pricing, then you are not + /// billed for bytes and this field is informational only. /// /// Output only. core.String? totalBytesBilled; @@ -8661,18 +10109,30 @@ class JobStatistics2 { /// Output only. core.String? totalSlotMs; - /// \[Output-only\] Total bytes transferred for cross-cloud queries such as - /// Cross Cloud Transfer and CREATE TABLE AS SELECT (CTAS). + /// Total bytes transferred for cross-cloud queries such as Cross Cloud + /// Transfer and CREATE TABLE AS SELECT (CTAS). + /// + /// Output only. core.String? transferredBytes; - /// Standard SQL only: list of undeclared query parameters detected during a - /// dry run validation. + /// GoogleSQL only: list of undeclared query parameters detected during a dry + /// run validation. + /// + /// Output only. core.List? undeclaredQueryParameters; + /// Vector Search query specific statistics. + /// + /// Output only. + VectorSearchStatistics? vectorSearchStatistics; + JobStatistics2({ this.biEngineStatistics, this.billingTier, this.cacheHit, + this.dclTargetDataset, + this.dclTargetTable, + this.dclTargetView, this.ddlAffectedRowAccessPolicyCount, this.ddlDestinationTable, this.ddlOperationPerformed, @@ -8682,11 +10142,18 @@ class JobStatistics2 { this.ddlTargetTable, this.dmlStats, this.estimatedBytesProcessed, + this.exportDataStatistics, + this.externalServiceCosts, + this.loadQueryStatistics, + this.materializedViewStatistics, + this.metadataCacheStatistics, this.mlStatistics, this.modelTraining, this.modelTrainingCurrentIteration, this.modelTrainingExpectedTotalIteration, this.numDmlAffectedRows, + this.performanceInsights, + this.queryInfo, this.queryPlan, this.referencedRoutines, this.referencedTables, @@ -8703,6 +10170,7 @@ class JobStatistics2 { this.totalSlotMs, this.transferredBytes, this.undeclaredQueryParameters, + this.vectorSearchStatistics, }); JobStatistics2.fromJson(core.Map json_) @@ -8717,6 +10185,18 @@ class JobStatistics2 { cacheHit: json_.containsKey('cacheHit') ? json_['cacheHit'] as core.bool : null, + dclTargetDataset: json_.containsKey('dclTargetDataset') + ? DatasetReference.fromJson(json_['dclTargetDataset'] + as core.Map) + : null, + dclTargetTable: json_.containsKey('dclTargetTable') + ? TableReference.fromJson(json_['dclTargetTable'] + as core.Map) + : null, + dclTargetView: json_.containsKey('dclTargetView') + ? TableReference.fromJson( + json_['dclTargetView'] as core.Map) + : null, ddlAffectedRowAccessPolicyCount: json_.containsKey('ddlAffectedRowAccessPolicyCount') ? json_['ddlAffectedRowAccessPolicyCount'] as core.String @@ -8753,6 +10233,31 @@ class JobStatistics2 { estimatedBytesProcessed: json_.containsKey('estimatedBytesProcessed') ? json_['estimatedBytesProcessed'] as core.String : null, + exportDataStatistics: json_.containsKey('exportDataStatistics') + ? ExportDataStatistics.fromJson(json_['exportDataStatistics'] + as core.Map) + : null, + externalServiceCosts: json_.containsKey('externalServiceCosts') + ? (json_['externalServiceCosts'] as core.List) + .map((value) => ExternalServiceCost.fromJson( + value as core.Map)) + .toList() + : null, + loadQueryStatistics: json_.containsKey('loadQueryStatistics') + ? LoadQueryStatistics.fromJson(json_['loadQueryStatistics'] + as core.Map) + : null, + materializedViewStatistics: + json_.containsKey('materializedViewStatistics') + ? MaterializedViewStatistics.fromJson( + json_['materializedViewStatistics'] + as core.Map) + : null, + metadataCacheStatistics: json_.containsKey('metadataCacheStatistics') + ? MetadataCacheStatistics.fromJson( + json_['metadataCacheStatistics'] + as core.Map) + : null, mlStatistics: json_.containsKey('mlStatistics') ? MlStatistics.fromJson( json_['mlStatistics'] as core.Map) @@ -8772,6 +10277,14 @@ class JobStatistics2 { numDmlAffectedRows: json_.containsKey('numDmlAffectedRows') ? json_['numDmlAffectedRows'] as core.String : null, + performanceInsights: json_.containsKey('performanceInsights') + ? PerformanceInsights.fromJson(json_['performanceInsights'] + as core.Map) + : null, + queryInfo: json_.containsKey('queryInfo') + ? QueryInfo.fromJson( + json_['queryInfo'] as core.Map) + : null, queryPlan: json_.containsKey('queryPlan') ? (json_['queryPlan'] as core.List) .map((value) => ExplainQueryStage.fromJson( @@ -8844,6 +10357,10 @@ class JobStatistics2 { value as core.Map)) .toList() : null, + vectorSearchStatistics: json_.containsKey('vectorSearchStatistics') + ? VectorSearchStatistics.fromJson(json_['vectorSearchStatistics'] + as core.Map) + : null, ); core.Map toJson() => { @@ -8851,6 +10368,9 @@ class JobStatistics2 { 'biEngineStatistics': biEngineStatistics!, if (billingTier != null) 'billingTier': billingTier!, if (cacheHit != null) 'cacheHit': cacheHit!, + if (dclTargetDataset != null) 'dclTargetDataset': dclTargetDataset!, + if (dclTargetTable != null) 'dclTargetTable': dclTargetTable!, + if (dclTargetView != null) 'dclTargetView': dclTargetView!, if (ddlAffectedRowAccessPolicyCount != null) 'ddlAffectedRowAccessPolicyCount': ddlAffectedRowAccessPolicyCount!, if (ddlDestinationTable != null) @@ -8865,6 +10385,16 @@ class JobStatistics2 { if (dmlStats != null) 'dmlStats': dmlStats!, if (estimatedBytesProcessed != null) 'estimatedBytesProcessed': estimatedBytesProcessed!, + if (exportDataStatistics != null) + 'exportDataStatistics': exportDataStatistics!, + if (externalServiceCosts != null) + 'externalServiceCosts': externalServiceCosts!, + if (loadQueryStatistics != null) + 'loadQueryStatistics': loadQueryStatistics!, + if (materializedViewStatistics != null) + 'materializedViewStatistics': materializedViewStatistics!, + if (metadataCacheStatistics != null) + 'metadataCacheStatistics': metadataCacheStatistics!, if (mlStatistics != null) 'mlStatistics': mlStatistics!, if (modelTraining != null) 'modelTraining': modelTraining!, if (modelTrainingCurrentIteration != null) @@ -8874,6 +10404,9 @@ class JobStatistics2 { modelTrainingExpectedTotalIteration!, if (numDmlAffectedRows != null) 'numDmlAffectedRows': numDmlAffectedRows!, + if (performanceInsights != null) + 'performanceInsights': performanceInsights!, + if (queryInfo != null) 'queryInfo': queryInfo!, if (queryPlan != null) 'queryPlan': queryPlan!, if (referencedRoutines != null) 'referencedRoutines': referencedRoutines!, @@ -8895,41 +10428,60 @@ class JobStatistics2 { if (transferredBytes != null) 'transferredBytes': transferredBytes!, if (undeclaredQueryParameters != null) 'undeclaredQueryParameters': undeclaredQueryParameters!, + if (vectorSearchStatistics != null) + 'vectorSearchStatistics': vectorSearchStatistics!, }; } +/// Statistics for a load job. class JobStatistics3 { - /// \[Output-only\] The number of bad records encountered. + /// The number of bad records encountered. /// /// Note that if the job has failed because of more bad records encountered /// than the maximum allowed in the load job configuration, then this number /// can be less than the total number of bad records present in the input /// data. + /// + /// Output only. core.String? badRecords; - /// \[Output-only\] Number of bytes of source data in a load job. + /// Number of bytes of source data in a load job. + /// + /// Output only. core.String? inputFileBytes; - /// \[Output-only\] Number of source files in a load job. + /// Number of source files in a load job. + /// + /// Output only. core.String? inputFiles; - /// \[Output-only\] Size of the loaded data in bytes. + /// Size of the loaded data in bytes. /// /// Note that while a load job is in the running state, this value may change. + /// + /// Output only. core.String? outputBytes; - /// \[Output-only\] Number of rows imported in a load job. + /// Number of rows imported in a load job. /// /// Note that while an import job is in the running state, this value may /// change. + /// + /// Output only. core.String? outputRows; + /// Describes a timeline of job execution. + /// + /// Output only. + core.List? timeline; + JobStatistics3({ this.badRecords, this.inputFileBytes, this.inputFiles, this.outputBytes, this.outputRows, + this.timeline, }); JobStatistics3.fromJson(core.Map json_) @@ -8949,6 +10501,12 @@ class JobStatistics3 { outputRows: json_.containsKey('outputRows') ? json_['outputRows'] as core.String : null, + timeline: json_.containsKey('timeline') + ? (json_['timeline'] as core.List) + .map((value) => QueryTimelineSample.fromJson( + value as core.Map)) + .toList() + : null, ); core.Map toJson() => { @@ -8957,25 +10515,39 @@ class JobStatistics3 { if (inputFiles != null) 'inputFiles': inputFiles!, if (outputBytes != null) 'outputBytes': outputBytes!, if (outputRows != null) 'outputRows': outputRows!, + if (timeline != null) 'timeline': timeline!, }; } +/// Statistics for an extract job. class JobStatistics4 { - /// \[Output-only\] Number of files per destination URI or URI pattern - /// specified in the extract configuration. + /// Number of files per destination URI or URI pattern specified in the + /// extract configuration. /// /// These values will be in the same order as the URIs specified in the /// 'destinationUris' field. + /// + /// Output only. core.List? destinationUriFileCounts; - /// \[Output-only\] Number of user bytes extracted into the result. + /// Number of user bytes extracted into the result. /// - /// This is the byte count as computed by BigQuery for billing purposes. + /// This is the byte count as computed by BigQuery for billing purposes and + /// doesn't have any relationship with the number of actual result bytes + /// extracted in the desired format. + /// + /// Output only. core.String? inputBytes; + /// Describes a timeline of job execution. + /// + /// Output only. + core.List? timeline; + JobStatistics4({ this.destinationUriFileCounts, this.inputBytes, + this.timeline, }); JobStatistics4.fromJson(core.Map json_) @@ -8989,20 +10561,32 @@ class JobStatistics4 { inputBytes: json_.containsKey('inputBytes') ? json_['inputBytes'] as core.String : null, + timeline: json_.containsKey('timeline') + ? (json_['timeline'] as core.List) + .map((value) => QueryTimelineSample.fromJson( + value as core.Map)) + .toList() + : null, ); core.Map toJson() => { if (destinationUriFileCounts != null) 'destinationUriFileCounts': destinationUriFileCounts!, if (inputBytes != null) 'inputBytes': inputBytes!, + if (timeline != null) 'timeline': timeline!, }; } +/// Statistics for a copy job. class JobStatistics5 { - /// \[Output-only\] Number of logical bytes copied to the destination table. + /// Number of logical bytes copied to the destination table. + /// + /// Output only. core.String? copiedLogicalBytes; - /// \[Output-only\] Number of rows copied to the destination table. + /// Number of rows copied to the destination table. + /// + /// Output only. core.String? copiedRows; JobStatistics5({ @@ -9028,20 +10612,27 @@ class JobStatistics5 { } class JobStatus { - /// \[Output-only\] Final error result of the job. + /// Final error result of the job. /// /// If present, indicates that the job has completed and was unsuccessful. + /// + /// Output only. ErrorProto? errorResult; - /// \[Output-only\] The first errors encountered during the running of the - /// job. + /// The first errors encountered during the running of the job. /// /// The final message includes the number of errors that caused the process to - /// stop. Errors here do not necessarily mean that the job has completed or - /// was unsuccessful. + /// stop. Errors here do not necessarily mean that the job has not completed + /// or was unsuccessful. + /// + /// Output only. core.List? errors; - /// \[Output-only\] Running state of the job. + /// Running state of the job. + /// + /// Valid states include 'PENDING', 'RUNNING', and 'DONE'. + /// + /// Output only. core.String? state; JobStatus({ @@ -9076,6 +10667,7 @@ class JobStatus { /// Represents a single JSON object. typedef JsonObject = core.Map; +/// Json Options for load and make external tables. class JsonOptions { /// The character encoding of the data. /// @@ -9101,6 +10693,28 @@ class JsonOptions { }; } +/// A dataset source type which refers to another BigQuery dataset. +class LinkedDatasetSource { + /// The source dataset reference contains project numbers and not project ids. + DatasetReference? sourceDataset; + + LinkedDatasetSource({ + this.sourceDataset, + }); + + LinkedDatasetSource.fromJson(core.Map json_) + : this( + sourceDataset: json_.containsKey('sourceDataset') + ? DatasetReference.fromJson( + json_['sourceDataset'] as core.Map) + : null, + ); + + core.Map toJson() => { + if (sourceDataset != null) 'sourceDataset': sourceDataset!, + }; +} + /// Response format for a single page when listing BigQuery ML models. class ListModelsResponse { /// Models in the requested dataset. @@ -9204,24 +10818,196 @@ class ListRowAccessPoliciesResponse { }; } -class MaterializedViewDefinition { - /// Allow non incremental materialized view definition. +/// Statistics for a LOAD query. +class LoadQueryStatistics { + /// The number of bad records encountered while processing a LOAD query. + /// + /// Note that if the job has failed because of more bad records encountered + /// than the maximum allowed in the load job configuration, then this number + /// can be less than the total number of bad records present in the input + /// data. + /// + /// Output only. + core.String? badRecords; + + /// This field is deprecated. /// - /// The default value is "false". + /// The number of bytes of source data copied over the network for a `LOAD` + /// query. `transferred_bytes` has the canonical value for physical + /// transferred bytes, which is used for BigQuery Omni billing. + /// + /// Output only. + @core.Deprecated( + 'Not supported. Member documentation may have more information.', + ) + core.String? bytesTransferred; + + /// Number of bytes of source data in a LOAD query. + /// + /// Output only. + core.String? inputFileBytes; + + /// Number of source files in a LOAD query. + /// + /// Output only. + core.String? inputFiles; + + /// Size of the loaded data in bytes. + /// + /// Note that while a LOAD query is in the running state, this value may + /// change. + /// + /// Output only. + core.String? outputBytes; + + /// Number of rows imported in a LOAD query. + /// + /// Note that while a LOAD query is in the running state, this value may + /// change. + /// + /// Output only. + core.String? outputRows; + + LoadQueryStatistics({ + this.badRecords, + this.bytesTransferred, + this.inputFileBytes, + this.inputFiles, + this.outputBytes, + this.outputRows, + }); + + LoadQueryStatistics.fromJson(core.Map json_) + : this( + badRecords: json_.containsKey('badRecords') + ? json_['badRecords'] as core.String + : null, + bytesTransferred: json_.containsKey('bytesTransferred') + ? json_['bytesTransferred'] as core.String + : null, + inputFileBytes: json_.containsKey('inputFileBytes') + ? json_['inputFileBytes'] as core.String + : null, + inputFiles: json_.containsKey('inputFiles') + ? json_['inputFiles'] as core.String + : null, + outputBytes: json_.containsKey('outputBytes') + ? json_['outputBytes'] as core.String + : null, + outputRows: json_.containsKey('outputRows') + ? json_['outputRows'] as core.String + : null, + ); + + core.Map toJson() => { + if (badRecords != null) 'badRecords': badRecords!, + if (bytesTransferred != null) 'bytesTransferred': bytesTransferred!, + if (inputFileBytes != null) 'inputFileBytes': inputFileBytes!, + if (inputFiles != null) 'inputFiles': inputFiles!, + if (outputBytes != null) 'outputBytes': outputBytes!, + if (outputRows != null) 'outputRows': outputRows!, + }; +} + +/// A materialized view considered for a query job. +class MaterializedView { + /// Whether the materialized view is chosen for the query. + /// + /// A materialized view can be chosen to rewrite multiple parts of the same + /// query. If a materialized view is chosen to rewrite any part of the query, + /// then this field is true, even if the materialized view was not chosen to + /// rewrite others parts. + core.bool? chosen; + + /// If present, specifies a best-effort estimation of the bytes saved by using + /// the materialized view rather than its base tables. + core.String? estimatedBytesSaved; + + /// If present, specifies the reason why the materialized view was not chosen + /// for the query. + /// Possible string values are: + /// - "REJECTED_REASON_UNSPECIFIED" : Default unspecified value. + /// - "NO_DATA" : View has no cached data because it has not refreshed yet. + /// - "COST" : The estimated cost of the view is more expensive than another + /// view or the base table. Note: The estimate cost might not match the billed + /// cost. + /// - "BASE_TABLE_TRUNCATED" : View has no cached data because a base table is + /// truncated. + /// - "BASE_TABLE_DATA_CHANGE" : View is invalidated because of a data change + /// in one or more base tables. It could be any recent change if the + /// \[`max_staleness`\](https://cloud.google.com/bigquery/docs/materialized-views-create#max_staleness) + /// option is not set for the view, or otherwise any change outside of the + /// staleness window. + /// - "BASE_TABLE_PARTITION_EXPIRATION_CHANGE" : View is invalidated because a + /// base table's partition expiration has changed. + /// - "BASE_TABLE_EXPIRED_PARTITION" : View is invalidated because a base + /// table's partition has expired. + /// - "BASE_TABLE_INCOMPATIBLE_METADATA_CHANGE" : View is invalidated because + /// a base table has an incompatible metadata change. + /// - "TIME_ZONE" : View is invalidated because it was refreshed with a time + /// zone other than that of the current job. + /// - "OUT_OF_TIME_TRAVEL_WINDOW" : View is outside the time travel window. + /// - "BASE_TABLE_FINE_GRAINED_SECURITY_POLICY" : View is inaccessible to the + /// user because of a fine-grained security policy on one of its base tables. + /// - "BASE_TABLE_TOO_STALE" : One of the view's base tables is too stale. For + /// example, the cached metadata of a biglake table needs to be updated. + core.String? rejectedReason; + + /// The candidate materialized view. + TableReference? tableReference; + + MaterializedView({ + this.chosen, + this.estimatedBytesSaved, + this.rejectedReason, + this.tableReference, + }); + + MaterializedView.fromJson(core.Map json_) + : this( + chosen: + json_.containsKey('chosen') ? json_['chosen'] as core.bool : null, + estimatedBytesSaved: json_.containsKey('estimatedBytesSaved') + ? json_['estimatedBytesSaved'] as core.String + : null, + rejectedReason: json_.containsKey('rejectedReason') + ? json_['rejectedReason'] as core.String + : null, + tableReference: json_.containsKey('tableReference') + ? TableReference.fromJson(json_['tableReference'] + as core.Map) + : null, + ); + + core.Map toJson() => { + if (chosen != null) 'chosen': chosen!, + if (estimatedBytesSaved != null) + 'estimatedBytesSaved': estimatedBytesSaved!, + if (rejectedReason != null) 'rejectedReason': rejectedReason!, + if (tableReference != null) 'tableReference': tableReference!, + }; +} + +/// Definition and configuration of a materialized view. +class MaterializedViewDefinition { + /// This option declares authors intention to construct a materialized view + /// that will not be refreshed incrementally. /// /// Optional. core.bool? allowNonIncrementalDefinition; - /// \[TrustedTester\] Enable automatic refresh of the materialized view when - /// the base table is updated. + /// Enable automatic refresh of the materialized view when the base table is + /// updated. /// /// The default value is "true". /// /// Optional. core.bool? enableRefresh; - /// \[Output-only\] \[TrustedTester\] The time when this materialized view was - /// last modified, in milliseconds since the epoch. + /// The time when this materialized view was last refreshed, in milliseconds + /// since the epoch. + /// + /// Output only. core.String? lastRefreshTime; /// Max staleness of data that could be returned when materizlized view is @@ -9237,13 +11023,12 @@ class MaterializedViewDefinition { convert.base64.encode(bytes_).replaceAll('/', '_').replaceAll('+', '-'); } - /// A query whose result is persisted. + /// A query whose results are persisted. /// /// Required. core.String? query; - /// \[TrustedTester\] The maximum frequency at which this materialized view - /// will be refreshed. + /// The maximum frequency at which this materialized view will be refreshed. /// /// The default value is "1800000" (30 minutes). /// @@ -9292,8 +11077,114 @@ class MaterializedViewDefinition { }; } +/// Statistics of materialized views considered in a query job. +class MaterializedViewStatistics { + /// Materialized views considered for the query job. + /// + /// Only certain materialized views are used. For a detailed list, see the + /// child message. If many materialized views are considered, then the list + /// might be incomplete. + core.List? materializedView; + + MaterializedViewStatistics({ + this.materializedView, + }); + + MaterializedViewStatistics.fromJson(core.Map json_) + : this( + materializedView: json_.containsKey('materializedView') + ? (json_['materializedView'] as core.List) + .map((value) => MaterializedView.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (materializedView != null) 'materializedView': materializedView!, + }; +} + +/// Status of a materialized view. +/// +/// The last refresh timestamp status is omitted here, but is present in the +/// MaterializedViewDefinition message. +class MaterializedViewStatus { + /// Error result of the last automatic refresh. + /// + /// If present, indicates that the last automatic refresh was unsuccessful. + /// + /// Output only. + ErrorProto? lastRefreshStatus; + + /// Refresh watermark of materialized view. + /// + /// The base tables' data were collected into the materialized view cache + /// until this time. + /// + /// Output only. + core.String? refreshWatermark; + + MaterializedViewStatus({ + this.lastRefreshStatus, + this.refreshWatermark, + }); + + MaterializedViewStatus.fromJson(core.Map json_) + : this( + lastRefreshStatus: json_.containsKey('lastRefreshStatus') + ? ErrorProto.fromJson(json_['lastRefreshStatus'] + as core.Map) + : null, + refreshWatermark: json_.containsKey('refreshWatermark') + ? json_['refreshWatermark'] as core.String + : null, + ); + + core.Map toJson() => { + if (lastRefreshStatus != null) 'lastRefreshStatus': lastRefreshStatus!, + if (refreshWatermark != null) 'refreshWatermark': refreshWatermark!, + }; +} + +/// Statistics for metadata caching in BigLake tables. +class MetadataCacheStatistics { + /// Set for the Metadata caching eligible tables referenced in the query. + core.List? tableMetadataCacheUsage; + + MetadataCacheStatistics({ + this.tableMetadataCacheUsage, + }); + + MetadataCacheStatistics.fromJson(core.Map json_) + : this( + tableMetadataCacheUsage: json_.containsKey('tableMetadataCacheUsage') + ? (json_['tableMetadataCacheUsage'] as core.List) + .map((value) => TableMetadataCacheUsage.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (tableMetadataCacheUsage != null) + 'tableMetadataCacheUsage': tableMetadataCacheUsage!, + }; +} + +/// Job statistics specific to a BigQuery ML training job. class MlStatistics { + /// Trials of a \[hyperparameter tuning + /// job\](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview) + /// sorted by trial_id. + /// + /// Output only. + core.List? hparamTrials; + /// Results for all completed iterations. + /// + /// Empty for \[hyperparameter tuning + /// jobs\](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview). core.List? iterationResults; /// Maximum number of iterations specified as max_iterations in the 'CREATE @@ -9301,15 +11192,66 @@ class MlStatistics { /// /// The actual number of iterations may be less than this number due to early /// stop. + /// + /// Output only. core.String? maxIterations; + /// The type of the model that is being trained. + /// + /// Output only. + /// Possible string values are: + /// - "MODEL_TYPE_UNSPECIFIED" : Default value. + /// - "LINEAR_REGRESSION" : Linear regression model. + /// - "LOGISTIC_REGRESSION" : Logistic regression based classification model. + /// - "KMEANS" : K-means clustering model. + /// - "MATRIX_FACTORIZATION" : Matrix factorization model. + /// - "DNN_CLASSIFIER" : DNN classifier model. + /// - "TENSORFLOW" : An imported TensorFlow model. + /// - "DNN_REGRESSOR" : DNN regressor model. + /// - "XGBOOST" : An imported XGBoost model. + /// - "BOOSTED_TREE_REGRESSOR" : Boosted tree regressor model. + /// - "BOOSTED_TREE_CLASSIFIER" : Boosted tree classifier model. + /// - "ARIMA" : ARIMA model. + /// - "AUTOML_REGRESSOR" : AutoML Tables regression model. + /// - "AUTOML_CLASSIFIER" : AutoML Tables classification model. + /// - "PCA" : Prinpical Component Analysis model. + /// - "DNN_LINEAR_COMBINED_CLASSIFIER" : Wide-and-deep classifier model. + /// - "DNN_LINEAR_COMBINED_REGRESSOR" : Wide-and-deep regressor model. + /// - "AUTOENCODER" : Autoencoder model. + /// - "ARIMA_PLUS" : New name for the ARIMA model. + /// - "ARIMA_PLUS_XREG" : ARIMA with external regressors. + /// - "RANDOM_FOREST_REGRESSOR" : Random forest regressor model. + /// - "RANDOM_FOREST_CLASSIFIER" : Random forest classifier model. + /// - "TENSORFLOW_LITE" : An imported TensorFlow Lite model. + /// - "ONNX" : An imported ONNX model. + core.String? modelType; + + /// Training type of the job. + /// + /// Output only. + /// Possible string values are: + /// - "TRAINING_TYPE_UNSPECIFIED" : Unspecified training type. + /// - "SINGLE_TRAINING" : Single training with fixed parameter space. + /// - "HPARAM_TUNING" : \[Hyperparameter tuning + /// training\](/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-hp-tuning-overview). + core.String? trainingType; + MlStatistics({ + this.hparamTrials, this.iterationResults, this.maxIterations, + this.modelType, + this.trainingType, }); MlStatistics.fromJson(core.Map json_) : this( + hparamTrials: json_.containsKey('hparamTrials') + ? (json_['hparamTrials'] as core.List) + .map((value) => HparamTuningTrial.fromJson( + value as core.Map)) + .toList() + : null, iterationResults: json_.containsKey('iterationResults') ? (json_['iterationResults'] as core.List) .map((value) => IterationResult.fromJson( @@ -9319,11 +11261,20 @@ class MlStatistics { maxIterations: json_.containsKey('maxIterations') ? json_['maxIterations'] as core.String : null, + modelType: json_.containsKey('modelType') + ? json_['modelType'] as core.String + : null, + trainingType: json_.containsKey('trainingType') + ? json_['trainingType'] as core.String + : null, ); core.Map toJson() => { + if (hparamTrials != null) 'hparamTrials': hparamTrials!, if (iterationResults != null) 'iterationResults': iterationResults!, if (maxIterations != null) 'maxIterations': maxIterations!, + if (modelType != null) 'modelType': modelType!, + if (trainingType != null) 'trainingType': trainingType!, }; } @@ -9636,10 +11587,7 @@ class Model { }; } -/// \[Output-only, Beta\] Model options used for the first training run. -/// -/// These options are immutable for subsequent training runs. Default values are -/// used for any options not specified in the input query. +/// Deprecated. class ModelDefinitionModelOptions { core.List? labels; core.String? lossType; @@ -9674,16 +11622,10 @@ class ModelDefinitionModelOptions { } class ModelDefinition { - /// \[Output-only, Beta\] Model options used for the first training run. - /// - /// These options are immutable for subsequent training runs. Default values - /// are used for any options not specified in the input query. + /// Deprecated. ModelDefinitionModelOptions? modelOptions; - /// \[Output-only, Beta\] Information about ml training runs, each training - /// run comprises of multiple iterations and there may be multiple training - /// runs for the model if warm start is used or if a user decides to continue - /// a previously cancelled query. + /// Deprecated. core.List? trainingRuns; ModelDefinition({ @@ -9711,6 +11653,34 @@ class ModelDefinition { }; } +/// Options related to model extraction. +class ModelExtractOptions { + /// The 1-based ID of the trial to be exported from a hyperparameter tuning + /// model. + /// + /// If not specified, the trial with id = + /// \[Model\](/bigquery/docs/reference/rest/v2/models#resource:-model).defaultTrialId + /// is exported. This field is ignored for models not trained with + /// hyperparameter tuning. + core.String? trialId; + + ModelExtractOptions({ + this.trialId, + }); + + ModelExtractOptions.fromJson(core.Map json_) + : this( + trialId: json_.containsKey('trialId') + ? json_['trialId'] as core.String + : null, + ); + + core.Map toJson() => { + if (trialId != null) 'trialId': trialId!, + }; +} + +/// Id path of a model. class ModelReference { /// The ID of the dataset containing this model. /// @@ -9793,6 +11763,7 @@ class MultiClassClassificationMetrics { }; } +/// Parquet Options for load and make external tables. class ParquetOptions { /// Indicates whether to use schema inference specifically for Parquet LIST /// logical type. @@ -9828,6 +11799,68 @@ class ParquetOptions { }; } +/// Performance insights for the job. +class PerformanceInsights { + /// Average execution ms of previous runs. + /// + /// Indicates the job ran slow compared to previous executions. To find + /// previous executions, use INFORMATION_SCHEMA tables and filter jobs with + /// same query hash. + /// + /// Output only. + core.String? avgPreviousExecutionMs; + + /// Query stage performance insights compared to previous runs, for diagnosing + /// performance regression. + /// + /// Output only. + core.List? stagePerformanceChangeInsights; + + /// Standalone query stage performance insights, for exploring potential + /// improvements. + /// + /// Output only. + core.List? + stagePerformanceStandaloneInsights; + + PerformanceInsights({ + this.avgPreviousExecutionMs, + this.stagePerformanceChangeInsights, + this.stagePerformanceStandaloneInsights, + }); + + PerformanceInsights.fromJson(core.Map json_) + : this( + avgPreviousExecutionMs: json_.containsKey('avgPreviousExecutionMs') + ? json_['avgPreviousExecutionMs'] as core.String + : null, + stagePerformanceChangeInsights: + json_.containsKey('stagePerformanceChangeInsights') + ? (json_['stagePerformanceChangeInsights'] as core.List) + .map((value) => StagePerformanceChangeInsight.fromJson( + value as core.Map)) + .toList() + : null, + stagePerformanceStandaloneInsights: json_ + .containsKey('stagePerformanceStandaloneInsights') + ? (json_['stagePerformanceStandaloneInsights'] as core.List) + .map((value) => StagePerformanceStandaloneInsight.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (avgPreviousExecutionMs != null) + 'avgPreviousExecutionMs': avgPreviousExecutionMs!, + if (stagePerformanceChangeInsights != null) + 'stagePerformanceChangeInsights': stagePerformanceChangeInsights!, + if (stagePerformanceStandaloneInsights != null) + 'stagePerformanceStandaloneInsights': + stagePerformanceStandaloneInsights!, + }; +} + /// An Identity and Access Management (IAM) policy, which specifies access /// controls for Google Cloud resources. /// @@ -9949,8 +11982,97 @@ class Policy { }; } +/// Principal component infos, used only for eigen decomposition based models, +/// e.g., PCA. +/// +/// Ordered by explained_variance in the descending order. +class PrincipalComponentInfo { + /// The explained_variance is pre-ordered in the descending order to compute + /// the cumulative explained variance ratio. + core.double? cumulativeExplainedVarianceRatio; + + /// Explained variance by this principal component, which is simply the + /// eigenvalue. + core.double? explainedVariance; + + /// Explained_variance over the total explained variance. + core.double? explainedVarianceRatio; + + /// Id of the principal component. + core.String? principalComponentId; + + PrincipalComponentInfo({ + this.cumulativeExplainedVarianceRatio, + this.explainedVariance, + this.explainedVarianceRatio, + this.principalComponentId, + }); + + PrincipalComponentInfo.fromJson(core.Map json_) + : this( + cumulativeExplainedVarianceRatio: + json_.containsKey('cumulativeExplainedVarianceRatio') + ? (json_['cumulativeExplainedVarianceRatio'] as core.num) + .toDouble() + : null, + explainedVariance: json_.containsKey('explainedVariance') + ? (json_['explainedVariance'] as core.num).toDouble() + : null, + explainedVarianceRatio: json_.containsKey('explainedVarianceRatio') + ? (json_['explainedVarianceRatio'] as core.num).toDouble() + : null, + principalComponentId: json_.containsKey('principalComponentId') + ? json_['principalComponentId'] as core.String + : null, + ); + + core.Map toJson() => { + if (cumulativeExplainedVarianceRatio != null) + 'cumulativeExplainedVarianceRatio': cumulativeExplainedVarianceRatio!, + if (explainedVariance != null) 'explainedVariance': explainedVariance!, + if (explainedVarianceRatio != null) + 'explainedVarianceRatio': explainedVarianceRatio!, + if (principalComponentId != null) + 'principalComponentId': principalComponentId!, + }; +} + +/// Represents privacy policy that contains the privacy requirements specified +/// by the data owner. +/// +/// Currently, this is only supported on views. +class PrivacyPolicy { + /// Policy used for aggregation thresholds. + /// + /// Optional. + AggregationThresholdPolicy? aggregationThresholdPolicy; + + PrivacyPolicy({ + this.aggregationThresholdPolicy, + }); + + PrivacyPolicy.fromJson(core.Map json_) + : this( + aggregationThresholdPolicy: + json_.containsKey('aggregationThresholdPolicy') + ? AggregationThresholdPolicy.fromJson( + json_['aggregationThresholdPolicy'] + as core.Map) + : null, + ); + + core.Map toJson() => { + if (aggregationThresholdPolicy != null) + 'aggregationThresholdPolicy': aggregationThresholdPolicy!, + }; +} + +/// Information about a single project. class ProjectListProjects { /// A descriptive name for this project. + /// + /// A wrapper is used here because friendlyName can be set to the empty + /// string. core.String? friendlyName; /// An opaque ID of this project. @@ -9998,20 +12120,24 @@ class ProjectListProjects { }; } +/// Response object of ListProjects class ProjectList { - /// A hash of the page of results + /// A hash of the page of results. core.String? etag; - /// The type of list. + /// The resource type of the response. core.String? kind; - /// A token to request the next page of results. + /// Use this token to request the next page of results. core.String? nextPageToken; - /// Projects to which you have at least READ access. + /// Projects to which the user has at least READ access. core.List? projects; - /// The total number of projects in the list. + /// The total number of projects in the page. + /// + /// A wrapper is used here because the field should still be in the response + /// when the value is 0. core.int? totalItems; ProjectList({ @@ -10049,6 +12175,7 @@ class ProjectList { }; } +/// A unique reference to a project. class ProjectReference { /// ID of the project. /// @@ -10073,6 +12200,35 @@ class ProjectReference { }; } +/// Query optimization information for a QUERY job. +class QueryInfo { + /// Information about query optimizations. + /// + /// Output only. + /// + /// The values for Object must be JSON objects. It can consist of `num`, + /// `String`, `bool` and `null` as well as `Map` and `List` values. + core.Map? optimizationDetails; + + QueryInfo({ + this.optimizationDetails, + }); + + QueryInfo.fromJson(core.Map json_) + : this( + optimizationDetails: json_.containsKey('optimizationDetails') + ? json_['optimizationDetails'] + as core.Map + : null, + ); + + core.Map toJson() => { + if (optimizationDetails != null) + 'optimizationDetails': optimizationDetails!, + }; +} + +/// A parameter given to a query. class QueryParameter { /// If unset, this is a positional parameter. /// @@ -10117,6 +12273,7 @@ class QueryParameter { }; } +/// The type of a struct parameter. class QueryParameterTypeStructTypes { /// Human-oriented description of the field. /// @@ -10158,12 +12315,18 @@ class QueryParameterTypeStructTypes { }; } +/// The type of a query parameter. class QueryParameterType { /// The type of the array's elements, if this is an array. /// /// Optional. QueryParameterType? arrayType; + /// The element type of the range, if this is a range. + /// + /// Optional. + QueryParameterType? rangeElementType; + /// The types of the fields of this struct, in order, if this is a struct. /// /// Optional. @@ -10176,6 +12339,7 @@ class QueryParameterType { QueryParameterType({ this.arrayType, + this.rangeElementType, this.structTypes, this.type, }); @@ -10186,6 +12350,10 @@ class QueryParameterType { ? QueryParameterType.fromJson( json_['arrayType'] as core.Map) : null, + rangeElementType: json_.containsKey('rangeElementType') + ? QueryParameterType.fromJson(json_['rangeElementType'] + as core.Map) + : null, structTypes: json_.containsKey('structTypes') ? (json_['structTypes'] as core.List) .map((value) => QueryParameterTypeStructTypes.fromJson( @@ -10197,20 +12365,25 @@ class QueryParameterType { core.Map toJson() => { if (arrayType != null) 'arrayType': arrayType!, + if (rangeElementType != null) 'rangeElementType': rangeElementType!, if (structTypes != null) 'structTypes': structTypes!, if (type != null) 'type': type!, }; } +/// The value of a query parameter. class QueryParameterValue { /// The array values, if this is an array type. /// /// Optional. core.List? arrayValues; - /// The struct field values, in order of the struct type's declaration. + /// The range value, if this is a range type. /// /// Optional. + RangeValue? rangeValue; + + /// The struct field values. core.Map? structValues; /// The value of this value, if a simple scalar type. @@ -10220,6 +12393,7 @@ class QueryParameterValue { QueryParameterValue({ this.arrayValues, + this.rangeValue, this.structValues, this.value, }); @@ -10232,6 +12406,10 @@ class QueryParameterValue { value as core.Map)) .toList() : null, + rangeValue: json_.containsKey('rangeValue') + ? RangeValue.fromJson( + json_['rangeValue'] as core.Map) + : null, structValues: json_.containsKey('structValues') ? (json_['structValues'] as core.Map) .map( @@ -10248,13 +12426,17 @@ class QueryParameterValue { core.Map toJson() => { if (arrayValues != null) 'arrayValues': arrayValues!, + if (rangeValue != null) 'rangeValue': rangeValue!, if (structValues != null) 'structValues': structValues!, if (value != null) 'value': value!, }; } +/// Describes the format of the jobs.query request. class QueryRequest { - /// Connection properties. + /// Connection properties which can modify the query behavior. + /// + /// Optional. core.List? connectionProperties; /// Specifies whether the query should be executed as a continuous query. @@ -10264,11 +12446,14 @@ class QueryRequest { /// Optional. core.bool? continuous; - /// If true, creates a new session, where session id will be a server - /// generated random id. + /// If true, creates a new session using a randomly generated session_id. /// /// If false, runs query with an existing session_id passed in - /// ConnectionProperty, otherwise runs query in non-session mode. + /// ConnectionProperty, otherwise runs query in non-session mode. The session + /// location will be set to QueryRequest.location if it is present, otherwise + /// it's set to the default location based on existing routing logic. + /// + /// Optional. core.bool? createSession; /// Specifies the default datasetId and projectId to assume for any @@ -10289,6 +12474,11 @@ class QueryRequest { /// Optional. core.bool? dryRun; + /// Output format adjustments. + /// + /// Optional. + DataFormatOptions? formatOptions; + /// If not set, jobs are always required. /// /// If set, the query request will follow the behavior described @@ -10296,18 +12486,29 @@ class QueryRequest { /// created. /// /// Optional. + /// Possible string values are: + /// - "JOB_CREATION_MODE_UNSPECIFIED" : If unspecified JOB_CREATION_REQUIRED + /// is the default. + /// - "JOB_CREATION_REQUIRED" : Default. Job creation is always required. + /// - "JOB_CREATION_OPTIONAL" : Job creation is optional. Returning immediate + /// results is prioritized. BigQuery will automatically determine if a Job + /// needs to be created. The conditions under which BigQuery can decide to not + /// create a Job are subject to change. If Job creation is required, + /// JOB_CREATION_REQUIRED mode should be used, which is the default. core.String? jobCreationMode; /// The resource type of the request. core.String? kind; - /// The labels associated with this job. + /// The labels associated with this query. /// - /// You can use these to organize and group your jobs. Label keys and values + /// Labels can be used to organize and group query jobs. Label keys and values /// can be no longer than 63 characters, can only contain lowercase letters, /// numeric characters, underscores and dashes. International characters are - /// allowed. Label values are optional. Label keys must start with a letter - /// and each label in the list must have a different key. + /// allowed. Label keys must start with a letter and each label in the list + /// must have a different key. + /// + /// Optional. core.Map? labels; /// The geographic location where the job should run. @@ -10326,35 +12527,34 @@ class QueryRequest { /// Optional. core.int? maxResults; - /// Limits the bytes billed for this job. + /// Limits the bytes billed for this query. /// - /// Queries that will have bytes billed beyond this limit will fail (without - /// incurring a charge). If unspecified, this will be set to your project - /// default. + /// Queries with bytes billed above this limit will fail (without incurring a + /// charge). If unspecified, the project default is used. /// /// Optional. core.String? maximumBytesBilled; - /// Standard SQL only. + /// GoogleSQL only. /// /// Set to POSITIONAL to use positional (?) query parameters or to NAMED to /// use named (@myparam) query parameters in this query. core.String? parameterMode; /// This property is deprecated. - /// - /// Deprecated. + @core.Deprecated( + 'Not supported. Member documentation may have more information.', + ) core.bool? preserveNulls; - /// A query string, following the BigQuery query syntax, of the query to - /// execute. + /// A query string to execute, using Google Standard SQL or legacy SQL syntax. /// - /// Example: "SELECT count(f1) FROM \[myProjectId:myDatasetId.myTableId\]". + /// Example: "SELECT COUNT(f1) FROM myProjectId.myDatasetId.myTableId". /// /// Required. core.String? query; - /// Query parameters for Standard SQL queries. + /// Query parameters for GoogleSQL queries. core.List? queryParameters; /// A unique user provided identifier to ensure idempotent behavior for @@ -10366,8 +12566,8 @@ class QueryRequest { /// they are nullipotent by definition. 3. For the purposes of idempotency /// ensured by the request_id, a request is considered duplicate of another /// only if they have the same request_id and are actually duplicates. When - /// determining whether a request is a duplicate of the previous request, all - /// parameters in the request that may affect the behavior are considered. For + /// determining whether a request is a duplicate of another request, all + /// parameters in the request that may affect the result are considered. For /// example, query, connection_properties, query_parameters, use_legacy_sql /// are parameters that affect the result and are considered when determining /// whether a request is a duplicate, but properties like timeout_ms don't @@ -10379,16 +12579,22 @@ class QueryRequest { /// lifetime is limited to 15 minutes. In other words, if two requests are /// sent with the same request_id, but more than 15 minutes apart, idempotency /// is not guaranteed. + /// + /// Optional. core.String? requestId; - /// How long to wait for the query to complete, in milliseconds, before the - /// request times out and returns. + /// Optional: Specifies the maximum amount of time, in milliseconds, that the + /// client is willing to wait for the query to complete. /// - /// Note that this is only a timeout for the request, not the query. If the - /// query takes longer to run than the timeout value, the call returns without - /// any results and with the 'jobComplete' flag set to false. You can call - /// GetQueryResults() to wait for the query to complete and read the results. - /// The default value is 10000 milliseconds (10 seconds). + /// By default, this limit is 10 seconds (10,000 milliseconds). If the query + /// is complete, the jobComplete field in the response is true. If the query + /// has not yet completed, jobComplete is false. You can request a longer + /// timeout period in the timeoutMs field. However, the call is not guaranteed + /// to wait for the specified timeout; it typically returns after around 200 + /// seconds (200,000 milliseconds), even if the query is not complete. If + /// jobComplete is false, you can continue to wait for the query to complete + /// by calling the getQueryResults method until the jobComplete field in the + /// getQueryResults response is true. /// /// Optional. core.int? timeoutMs; @@ -10396,7 +12602,7 @@ class QueryRequest { /// Specifies whether to use BigQuery's legacy SQL dialect for this query. /// /// The default value is true. If set to false, the query will use BigQuery's - /// standard SQL: https://cloud.google.com/bigquery/sql-reference/ When + /// GoogleSQL: https://cloud.google.com/bigquery/sql-reference/ When /// useLegacySql is set to false, the value of flattenResults is ignored; /// query will be run as if flattenResults is false. core.bool? useLegacySql; @@ -10415,6 +12621,7 @@ class QueryRequest { this.createSession, this.defaultDataset, this.dryRun, + this.formatOptions, this.jobCreationMode, this.kind, this.labels, @@ -10451,6 +12658,10 @@ class QueryRequest { : null, dryRun: json_.containsKey('dryRun') ? json_['dryRun'] as core.bool : null, + formatOptions: json_.containsKey('formatOptions') + ? DataFormatOptions.fromJson( + json_['formatOptions'] as core.Map) + : null, jobCreationMode: json_.containsKey('jobCreationMode') ? json_['jobCreationMode'] as core.String : null, @@ -10507,6 +12718,7 @@ class QueryRequest { if (createSession != null) 'createSession': createSession!, if (defaultDataset != null) 'defaultDataset': defaultDataset!, if (dryRun != null) 'dryRun': dryRun!, + if (formatOptions != null) 'formatOptions': formatOptions!, if (jobCreationMode != null) 'jobCreationMode': jobCreationMode!, if (kind != null) 'kind': kind!, if (labels != null) 'labels': labels!, @@ -10529,16 +12741,20 @@ class QueryResponse { /// Whether the query result was fetched from the query cache. core.bool? cacheHit; - /// \[Output-only\] Detailed statistics for DML statements Present only for - /// DML statements INSERT, UPDATE, DELETE or TRUNCATE. + /// Detailed statistics for DML statements INSERT, UPDATE, DELETE, MERGE or + /// TRUNCATE. + /// + /// Output only. DmlStatistics? dmlStats; - /// \[Output-only\] The first errors or warnings encountered during the - /// running of the job. + /// The first errors or warnings encountered during the running of the job. /// /// The final message includes the number of errors that caused the process to /// stop. Errors here do not necessarily mean that the job has completed or - /// was unsuccessful. + /// was unsuccessful. For more information about error messages, see + /// [Error messages](https://cloud.google.com/bigquery/docs/error-messages). + /// + /// Output only. core.List? errors; /// Whether the query has completed or not. @@ -10556,10 +12772,7 @@ class QueryResponse { /// available. Jobs will always be created. /// /// Optional. - /// - /// The values for Object must be JSON objects. It can consist of `num`, - /// `String`, `bool` and `null` as well as `Map` and `List` values. - core.Object? jobCreationReason; + JobCreationReason? jobCreationReason; /// Reference to the Job that was created to run the query. /// @@ -10572,12 +12785,20 @@ class QueryResponse { /// The resource type. core.String? kind; - /// \[Output-only\] The number of rows affected by a DML statement. + /// The number of rows affected by a DML statement. /// /// Present only for DML statements INSERT, UPDATE or DELETE. + /// + /// Output only. core.String? numDmlAffectedRows; /// A token used for paging results. + /// + /// A non-empty token indicates that additional results are available. To see + /// additional results, query the + /// \[`jobs.getQueryResults`\](https://cloud.google.com/bigquery/docs/reference/rest/v2/jobs/getQueryResults) + /// method. For more information, see + /// [Paging through table data](https://cloud.google.com/bigquery/docs/paging-results). core.String? pageToken; /// Query ID for the completed query. @@ -10598,8 +12819,9 @@ class QueryResponse { /// Present only when the query completes successfully. TableSchema? schema; - /// \[Output-only\] \[Preview\] Information of the session if this job is part - /// of one. + /// Information of the session if this job is part of one. + /// + /// Output only. SessionInfo? sessionInfo; /// The total number of bytes processed for this query. @@ -10649,7 +12871,8 @@ class QueryResponse { ? json_['jobComplete'] as core.bool : null, jobCreationReason: json_.containsKey('jobCreationReason') - ? json_['jobCreationReason'] + ? JobCreationReason.fromJson(json_['jobCreationReason'] + as core.Map) : null, jobReference: json_.containsKey('jobReference') ? JobReference.fromJson( @@ -10708,8 +12931,9 @@ class QueryResponse { }; } +/// Summary of the state of query execution at a given time. class QueryTimelineSample { - /// Total number of units currently being processed by workers. + /// Total number of active workers. /// /// This does not correspond directly to slot usage. This is the largest value /// observed since the last sample. @@ -10723,8 +12947,8 @@ class QueryTimelineSample { /// Units of work that can be scheduled immediately. /// - /// Providing additional slots for these units of work will speed up the - /// query, provided no other query in the reservation needs additional slots. + /// Providing additional slots for these units of work will accelerate the + /// query, if no other query in the reservation needs additional slots. core.String? estimatedRunnableUnits; /// Total units of work remaining for the query. @@ -10778,15 +13002,15 @@ class QueryTimelineSample { }; } -/// \[TrustedTester\] \[Required\] Defines the ranges for range partitioning. +/// \[Experimental\] Defines the ranges for range partitioning. class RangePartitioningRange { - /// \[TrustedTester\] \[Required\] The end of range partitioning, exclusive. + /// \[Experimental\] The end of range partitioning, exclusive. core.String? end; - /// \[TrustedTester\] \[Required\] The width of each interval. + /// \[Experimental\] The width of each interval. core.String? interval; - /// \[TrustedTester\] \[Required\] The start of range partitioning, inclusive. + /// \[Experimental\] The start of range partitioning, inclusive. core.String? start; RangePartitioningRange({ @@ -10813,13 +13037,15 @@ class RangePartitioningRange { } class RangePartitioning { - /// \[TrustedTester\] \[Required\] The table is partitioned by this field. + /// \[Experimental\] The table is partitioned by this field. /// /// The field must be a top-level NULLABLE/REQUIRED field. The only supported /// type is INTEGER/INT64. + /// + /// Required. core.String? field; - /// \[TrustedTester\] \[Required\] Defines the ranges for range partitioning. + /// \[Experimental\] Defines the ranges for range partitioning. RangePartitioningRange? range; RangePartitioning({ @@ -10843,6 +13069,45 @@ class RangePartitioning { }; } +/// Represents the value of a range. +class RangeValue { + /// The end value of the range. + /// + /// A missing value represents an unbounded end. + /// + /// Optional. + QueryParameterValue? end; + + /// The start value of the range. + /// + /// A missing value represents an unbounded start. + /// + /// Optional. + QueryParameterValue? start; + + RangeValue({ + this.end, + this.start, + }); + + RangeValue.fromJson(core.Map json_) + : this( + end: json_.containsKey('end') + ? QueryParameterValue.fromJson( + json_['end'] as core.Map) + : null, + start: json_.containsKey('start') + ? QueryParameterValue.fromJson( + json_['start'] as core.Map) + : null, + ); + + core.Map toJson() => { + if (end != null) 'end': end!, + if (start != null) 'start': start!, + }; +} + /// Evaluation metrics used by weighted-ALS models specified by /// feedback_type=implicit. class RankingMetrics { @@ -11065,14 +13330,30 @@ class RemoteModelInfo { /// - "CLOUD_AI_NATURAL_LANGUAGE_V1" : V1 Cloud AI Natural Language API. See /// more details at \[REST Resource: /// documents\](https://cloud.google.com/natural-language/docs/reference/rest/v1/documents). + /// - "CLOUD_AI_SPEECH_TO_TEXT_V2" : V2 Speech-to-Text API. See more details + /// at \[Google Cloud Speech-to-Text V2 + /// API\](https://cloud.google.com/speech-to-text/v2/docs) core.String? remoteServiceType; + /// The name of the speech recognizer to use for speech recognition. + /// + /// The expected format is + /// `projects/{project}/locations/{location}/recognizers/{recognizer}`. + /// Customers can specify this field at model creation. If not specified, a + /// default recognizer `projects/{model + /// project}/locations/global/recognizers/_` will be used. See more details at + /// [recognizers](https://cloud.google.com/speech-to-text/v2/docs/reference/rest/v2/projects.locations.recognizers) + /// + /// Output only. + core.String? speechRecognizer; + RemoteModelInfo({ this.connection, this.endpoint, this.maxBatchingRows, this.remoteModelVersion, this.remoteServiceType, + this.speechRecognizer, }); RemoteModelInfo.fromJson(core.Map json_) @@ -11092,6 +13373,9 @@ class RemoteModelInfo { remoteServiceType: json_.containsKey('remoteServiceType') ? json_['remoteServiceType'] as core.String : null, + speechRecognizer: json_.containsKey('speechRecognizer') + ? json_['speechRecognizer'] as core.String + : null, ); core.Map toJson() => { @@ -11101,6 +13385,7 @@ class RemoteModelInfo { if (remoteModelVersion != null) 'remoteModelVersion': remoteModelVersion!, if (remoteServiceType != null) 'remoteServiceType': remoteServiceType!, + if (speechRecognizer != null) 'speechRecognizer': speechRecognizer!, }; } @@ -11258,12 +13543,17 @@ class Routine { /// Optional. SparkOptions? sparkOptions; - /// Can be set for procedures only. + /// Use this option to catch many common errors. /// - /// If true (default), the definition body will be validated in the creation - /// and the updates of the procedure. For procedures with an argument of ANY - /// TYPE, the definition body validtion is not supported at creation/update - /// time, and thus this field must be set to false explicitly. + /// Error checking is not exhaustive, and successfully creating a procedure + /// doesn't guarantee that the procedure will successfully execute at runtime. + /// If `strictMode` is set to `TRUE`, the procedure body is further checked + /// for errors such as non-existent tables or columns. The `CREATE PROCEDURE` + /// statement fails if the body fails any of these checks. If `strictMode` is + /// set to `FALSE`, the procedure body is checked only for syntax. For + /// procedures that invoke themselves recursively, specify `strictMode=FALSE` + /// to avoid non-existent procedure errors during validation. Default value is + /// `TRUE`. /// /// Optional. core.bool? strictMode; @@ -11379,6 +13669,7 @@ class Routine { }; } +/// Id path of a routine. class RoutineReference { /// The ID of the dataset containing this routine. /// @@ -11532,6 +13823,7 @@ class RowAccessPolicy { }; } +/// Id path of a row access policy. class RowAccessPolicyReference { /// The ID of the dataset containing this row access policy. /// @@ -11587,9 +13879,9 @@ class RowAccessPolicyReference { }; } +/// Statistics for row-level security. class RowLevelSecurityStatistics { - /// \[Output-only\] \[Preview\] Whether any accessed data was protected by row - /// access policies. + /// Whether any accessed data was protected by row access policies. core.bool? rowLevelSecurityApplied; RowLevelSecurityStatistics({ @@ -11609,24 +13901,98 @@ class RowLevelSecurityStatistics { }; } +/// Options related to script execution. +class ScriptOptions { + /// Determines which statement in the script represents the "key result", used + /// to populate the schema and query results of the script job. + /// + /// Default is LAST. + /// Possible string values are: + /// - "KEY_RESULT_STATEMENT_KIND_UNSPECIFIED" : Default value. + /// - "LAST" : The last result determines the key result. + /// - "FIRST_SELECT" : The first SELECT statement determines the key result. + core.String? keyResultStatement; + + /// Limit on the number of bytes billed per statement. + /// + /// Exceeding this budget results in an error. + core.String? statementByteBudget; + + /// Timeout period for each statement in a script. + core.String? statementTimeoutMs; + + ScriptOptions({ + this.keyResultStatement, + this.statementByteBudget, + this.statementTimeoutMs, + }); + + ScriptOptions.fromJson(core.Map json_) + : this( + keyResultStatement: json_.containsKey('keyResultStatement') + ? json_['keyResultStatement'] as core.String + : null, + statementByteBudget: json_.containsKey('statementByteBudget') + ? json_['statementByteBudget'] as core.String + : null, + statementTimeoutMs: json_.containsKey('statementTimeoutMs') + ? json_['statementTimeoutMs'] as core.String + : null, + ); + + core.Map toJson() => { + if (keyResultStatement != null) + 'keyResultStatement': keyResultStatement!, + if (statementByteBudget != null) + 'statementByteBudget': statementByteBudget!, + if (statementTimeoutMs != null) + 'statementTimeoutMs': statementTimeoutMs!, + }; +} + +/// Represents the location of the statement/expression being evaluated. +/// +/// Line and column numbers are defined as follows: - Line and column numbers +/// start with one. That is, line 1 column 1 denotes the start of the script. - +/// When inside a stored procedure, all line/column numbers are relative to the +/// procedure body, not the script in which the procedure was defined. - +/// Start/end positions exclude leading/trailing comments and whitespace. The +/// end position always ends with a ";", when present. - Multi-byte Unicode +/// characters are treated as just one column. - If the original script (or +/// procedure definition) contains TAB characters, a tab "snaps" the indentation +/// forward to the nearest multiple of 8 characters, plus 1. For example, a TAB +/// on column 1, 2, 3, 4, 5, 6 , or 8 will advance the next character to column +/// 9. A TAB on column 9, 10, 11, 12, 13, 14, 15, or 16 will advance the next +/// character to column 17. class ScriptStackFrame { - /// \[Output-only\] One-based end column. + /// One-based end column. + /// + /// Output only. core.int? endColumn; - /// \[Output-only\] One-based end line. + /// One-based end line. + /// + /// Output only. core.int? endLine; - /// \[Output-only\] Name of the active procedure, empty if in a top-level - /// script. + /// Name of the active procedure, empty if in a top-level script. + /// + /// Output only. core.String? procedureId; - /// \[Output-only\] One-based start column. + /// One-based start column. + /// + /// Output only. core.int? startColumn; - /// \[Output-only\] One-based start line. + /// One-based start line. + /// + /// Output only. core.int? startLine; - /// \[Output-only\] Text of the current statement/expression. + /// Text of the current statement/expression. + /// + /// Output only. core.String? text; ScriptStackFrame({ @@ -11668,8 +14034,14 @@ class ScriptStackFrame { }; } +/// Job statistics specific to the child job of a script. class ScriptStatistics { - /// \[Output-only\] Whether this child job was a statement or expression. + /// Whether this child job was a statement or expression. + /// Possible string values are: + /// - "EVALUATION_KIND_UNSPECIFIED" : Default value. + /// - "STATEMENT" : The statement appears directly in the script. + /// - "EXPRESSION" : The statement evaluates an expression that appears in the + /// script. core.String? evaluationKind; /// Stack trace showing the line/column/procedure name of each frame on the @@ -11702,14 +14074,28 @@ class ScriptStatistics { }; } +/// Statistics for a search query. +/// +/// Populated as part of JobStatistics2. class SearchStatistics { - /// When index_usage_mode is UNUSED or PARTIALLY_USED, this field explains why - /// index was not used in all or part of the search query. + /// When `indexUsageMode` is `UNUSED` or `PARTIALLY_USED`, this field explains + /// why indexes were not used in all or part of the search query. /// - /// If index_usage_mode is FULLLY_USED, this field is not populated. + /// If `indexUsageMode` is `FULLY_USED`, this field is not populated. core.List? indexUnusedReasons; - /// Specifies index usage mode for the query. + /// Specifies the index usage mode for the query. + /// Possible string values are: + /// - "INDEX_USAGE_MODE_UNSPECIFIED" : Index usage mode not specified. + /// - "UNUSED" : No search indexes were used in the search query. See + /// \[`indexUnusedReasons`\] + /// (/bigquery/docs/reference/rest/v2/Job#IndexUnusedReason) for detailed + /// reasons. + /// - "PARTIALLY_USED" : Part of the search query used search indexes. See + /// \[`indexUnusedReasons`\] + /// (/bigquery/docs/reference/rest/v2/Job#IndexUnusedReason) for why other + /// parts of the query did not use search indexes. + /// - "FULLY_USED" : The entire search query used search indexes. core.String? indexUsageMode; SearchStatistics({ @@ -11737,8 +14123,11 @@ class SearchStatistics { }; } +/// \[Preview\] Information related to sessions. class SessionInfo { - /// \[Output-only\] // \[Preview\] Id of the session. + /// The id of the session. + /// + /// Output only. core.String? sessionId; SessionInfo({ @@ -11794,6 +14183,7 @@ class SetIamPolicyRequest { }; } +/// Information about base table and snapshot time of the snapshot. class SnapshotDefinition { /// Reference describing the ID of the table that was snapshot. /// @@ -11831,11 +14221,16 @@ class SnapshotDefinition { }; } +/// Spark job logs can be filtered by these fields in Cloud Logging. class SparkLoggingInfo { - /// \[Output-only\] Project ID used for logging + /// Project ID where the Spark logs were written. + /// + /// Output only. core.String? projectId; - /// \[Output-only\] Resource type used for logging + /// Resource type used for logging. + /// + /// Output only. core.String? resourceType; SparkLoggingInfo({ @@ -11997,21 +14392,68 @@ class SparkOptions { }; } +/// Statistics for a BigSpark query. +/// +/// Populated as part of JobStatistics2 class SparkStatistics { - /// \[Output-only\] Endpoints generated for the Spark job. + /// Endpoints returned from Dataproc. + /// + /// Key list: - history_server_endpoint: A link to Spark job UI. + /// + /// Output only. core.Map? endpoints; - /// \[Output-only\] Logging info is used to generate a link to Cloud Logging. + /// The Google Cloud Storage bucket that is used as the default filesystem by + /// the Spark application. + /// + /// This fields is only filled when the Spark procedure uses the INVOKER + /// security mode. It is inferred from the system variable + /// @@spark_proc_properties.staging_bucket if it is provided. Otherwise, + /// BigQuery creates a default staging bucket for the job and returns the + /// bucket name in this field. Example: * `gs://[bucket_name]` + /// + /// Output only. + core.String? gcsStagingBucket; + + /// The Cloud KMS encryption key that is used to protect the resources created + /// by the Spark job. + /// + /// If the Spark procedure uses DEFINER security mode, the Cloud KMS key is + /// inferred from the Spark connection associated with the procedure if it is + /// provided. Otherwise the key is inferred from the default key of the Spark + /// connection's project if the CMEK organization policy is enforced. If the + /// Spark procedure uses INVOKER security mode, the Cloud KMS encryption key + /// is inferred from the system variable @@spark_proc_properties.kms_key_name + /// if it is provided. Otherwise, the key is inferred fromt he default key of + /// the BigQuery job's project if the CMEK organization policy is enforced. + /// Example: * + /// `projects/[kms_project_id]/locations/[region]/keyRings/[key_region]/cryptoKeys/[key]` + /// + /// Output only. + core.String? kmsKeyName; + + /// Logging info is used to generate a link to Cloud Logging. + /// + /// Output only. SparkLoggingInfo? loggingInfo; - /// \[Output-only\] Spark job id if a Spark job is created successfully. + /// Spark job ID if a Spark job is created successfully. + /// + /// Output only. core.String? sparkJobId; - /// \[Output-only\] Location where the Spark job is executed. + /// Location where the Spark job is executed. + /// + /// A location is selected by BigQueury for jobs configured to run in a + /// multi-region. + /// + /// Output only. core.String? sparkJobLocation; SparkStatistics({ this.endpoints, + this.gcsStagingBucket, + this.kmsKeyName, this.loggingInfo, this.sparkJobId, this.sparkJobLocation, @@ -12027,6 +14469,12 @@ class SparkStatistics { ), ) : null, + gcsStagingBucket: json_.containsKey('gcsStagingBucket') + ? json_['gcsStagingBucket'] as core.String + : null, + kmsKeyName: json_.containsKey('kmsKeyName') + ? json_['kmsKeyName'] as core.String + : null, loggingInfo: json_.containsKey('loggingInfo') ? SparkLoggingInfo.fromJson( json_['loggingInfo'] as core.Map) @@ -12041,12 +14489,122 @@ class SparkStatistics { core.Map toJson() => { if (endpoints != null) 'endpoints': endpoints!, + if (gcsStagingBucket != null) 'gcsStagingBucket': gcsStagingBucket!, + if (kmsKeyName != null) 'kmsKeyName': kmsKeyName!, if (loggingInfo != null) 'loggingInfo': loggingInfo!, if (sparkJobId != null) 'sparkJobId': sparkJobId!, if (sparkJobLocation != null) 'sparkJobLocation': sparkJobLocation!, }; } +/// Performance insights compared to the previous executions for a specific +/// stage. +class StagePerformanceChangeInsight { + /// Input data change insight of the query stage. + /// + /// Output only. + InputDataChange? inputDataChange; + + /// The stage id that the insight mapped to. + /// + /// Output only. + core.String? stageId; + + StagePerformanceChangeInsight({ + this.inputDataChange, + this.stageId, + }); + + StagePerformanceChangeInsight.fromJson(core.Map json_) + : this( + inputDataChange: json_.containsKey('inputDataChange') + ? InputDataChange.fromJson(json_['inputDataChange'] + as core.Map) + : null, + stageId: json_.containsKey('stageId') + ? json_['stageId'] as core.String + : null, + ); + + core.Map toJson() => { + if (inputDataChange != null) 'inputDataChange': inputDataChange!, + if (stageId != null) 'stageId': stageId!, + }; +} + +/// Standalone performance insights for a specific stage. +class StagePerformanceStandaloneInsight { + /// If present, the stage had the following reasons for being disqualified + /// from BI Engine execution. + /// + /// Output only. + core.List? biEngineReasons; + + /// High cardinality joins in the stage. + /// + /// Output only. + core.List? highCardinalityJoins; + + /// True if the stage has insufficient shuffle quota. + /// + /// Output only. + core.bool? insufficientShuffleQuota; + + /// True if the stage has a slot contention issue. + /// + /// Output only. + core.bool? slotContention; + + /// The stage id that the insight mapped to. + /// + /// Output only. + core.String? stageId; + + StagePerformanceStandaloneInsight({ + this.biEngineReasons, + this.highCardinalityJoins, + this.insufficientShuffleQuota, + this.slotContention, + this.stageId, + }); + + StagePerformanceStandaloneInsight.fromJson(core.Map json_) + : this( + biEngineReasons: json_.containsKey('biEngineReasons') + ? (json_['biEngineReasons'] as core.List) + .map((value) => BiEngineReason.fromJson( + value as core.Map)) + .toList() + : null, + highCardinalityJoins: json_.containsKey('highCardinalityJoins') + ? (json_['highCardinalityJoins'] as core.List) + .map((value) => HighCardinalityJoin.fromJson( + value as core.Map)) + .toList() + : null, + insufficientShuffleQuota: + json_.containsKey('insufficientShuffleQuota') + ? json_['insufficientShuffleQuota'] as core.bool + : null, + slotContention: json_.containsKey('slotContention') + ? json_['slotContention'] as core.bool + : null, + stageId: json_.containsKey('stageId') + ? json_['stageId'] as core.String + : null, + ); + + core.Map toJson() => { + if (biEngineReasons != null) 'biEngineReasons': biEngineReasons!, + if (highCardinalityJoins != null) + 'highCardinalityJoins': highCardinalityJoins!, + if (insufficientShuffleQuota != null) + 'insufficientShuffleQuota': insufficientShuffleQuota!, + if (slotContention != null) 'slotContention': slotContention!, + if (stageId != null) 'stageId': stageId!, + }; +} + /// The data type of a variable such as a function argument. /// /// Examples include: * INT64: `{"typeKind": "INT64"}` * ARRAY: { "typeKind": @@ -12216,17 +14774,22 @@ class StandardSqlTableType { } class Streamingbuffer { - /// \[Output-only\] A lower-bound estimate of the number of bytes currently in - /// the streaming buffer. + /// A lower-bound estimate of the number of bytes currently in the streaming + /// buffer. + /// + /// Output only. core.String? estimatedBytes; - /// \[Output-only\] A lower-bound estimate of the number of rows currently in - /// the streaming buffer. + /// A lower-bound estimate of the number of rows currently in the streaming + /// buffer. + /// + /// Output only. core.String? estimatedRows; - /// \[Output-only\] Contains the timestamp of the oldest entry in the - /// streaming buffer, in milliseconds since the epoch, if the streaming buffer - /// is available. + /// Contains the timestamp of the oldest entry in the streaming buffer, in + /// milliseconds since the epoch, if the streaming buffer is available. + /// + /// Output only. core.String? oldestEntryTime; Streamingbuffer({ @@ -12278,29 +14841,105 @@ class StringHparamSearchSpace { }; } +/// System variables given to a query. +class SystemVariables { + /// Data type for each system variable. + /// + /// Output only. + core.Map? types; + + /// Value for each system variable. + /// + /// Output only. + /// + /// The values for Object must be JSON objects. It can consist of `num`, + /// `String`, `bool` and `null` as well as `Map` and `List` values. + core.Map? values; + + SystemVariables({ + this.types, + this.values, + }); + + SystemVariables.fromJson(core.Map json_) + : this( + types: json_.containsKey('types') + ? (json_['types'] as core.Map).map( + (key, value) => core.MapEntry( + key, + StandardSqlDataType.fromJson( + value as core.Map), + ), + ) + : null, + values: json_.containsKey('values') + ? json_['values'] as core.Map + : null, + ); + + core.Map toJson() => { + if (types != null) 'types': types!, + if (values != null) 'values': values!, + }; +} + class Table { /// Specifies the configuration of a BigLake managed table. /// /// Optional. BigLakeConfiguration? biglakeConfiguration; - /// \[Output-only\] Clone definition. + /// Contains information about the clone. + /// + /// This value is set via the clone operation. + /// + /// Output only. CloneDefinition? cloneDefinition; - /// \[Beta\] Clustering specification for the table. + /// Clustering specification for the table. /// - /// Must be specified with partitioning, data in the table will be first - /// partitioned and subsequently clustered. + /// Must be specified with time-based partitioning, data in the table will be + /// first partitioned and subsequently clustered. Clustering? clustering; - /// \[Output-only\] The time when this table was created, in milliseconds - /// since the epoch. + /// The time when this table was created, in milliseconds since the epoch. + /// + /// Output only. core.String? creationTime; - /// \[Output-only\] The default collation of the table. + /// Defines the default collation specification of new STRING fields in the + /// table. + /// + /// During table creation or update, if a STRING field is added to this table + /// without explicit collation specified, then the table inherits the table + /// default collation. A change to this field affects only fields added + /// afterwards, and does not alter the existing fields. The following values + /// are supported: * 'und:ci': undetermined locale, case insensitive. * '': + /// empty string. Default to case-sensitive behavior. + /// + /// Optional. core.String? defaultCollation; - /// \[Output-only\] The default rounding mode of the table. + /// Defines the default rounding mode specification of new decimal fields + /// (NUMERIC OR BIGNUMERIC) in the table. + /// + /// During table creation or update, if a decimal field is added to this table + /// without an explicit rounding mode specified, then the field inherits the + /// table default rounding mode. Changing this field doesn't affect existing + /// fields. + /// + /// Optional. + /// Possible string values are: + /// - "ROUNDING_MODE_UNSPECIFIED" : Unspecified will default to using + /// ROUND_HALF_AWAY_FROM_ZERO. + /// - "ROUND_HALF_AWAY_FROM_ZERO" : ROUND_HALF_AWAY_FROM_ZERO rounds half + /// values away from zero when applying precision and scale upon writing of + /// NUMERIC and BIGNUMERIC values. For Scale: 0 1.1, 1.2, 1.3, 1.4 =\> 1 1.5, + /// 1.6, 1.7, 1.8, 1.9 =\> 2 + /// - "ROUND_HALF_EVEN" : ROUND_HALF_EVEN rounds half values to the nearest + /// even value when applying precision and scale upon writing of NUMERIC and + /// BIGNUMERIC values. For Scale: 0 1.1, 1.2, 1.3, 1.4 =\> 1 1.5 =\> 2 1.6, + /// 1.7, 1.8, 1.9 =\> 2 2.5 =\> 2 core.String? defaultRoundingMode; /// A user-friendly description of this table. @@ -12311,11 +14950,9 @@ class Table { /// Custom encryption configuration (e.g., Cloud KMS keys). EncryptionConfiguration? encryptionConfiguration; - /// \[Output-only\] A hash of the table metadata. + /// A hash of this resource. /// - /// Used to ensure there were no concurrent modifications to the resource when - /// attempting an update. Not guaranteed to change when the table contents or - /// the fields numRows, numBytes, numLongTermBytes or lastModifiedTime change. + /// Output only. core.String? etag; /// The time when this table expires, in milliseconds since the epoch. @@ -12342,10 +14979,12 @@ class Table { /// Optional. core.String? friendlyName; - /// \[Output-only\] An opaque ID uniquely identifying the table. + /// An opaque ID uniquely identifying the table. + /// + /// Output only. core.String? id; - /// \[Output-only\] The type of the resource. + /// The type of resource ID. core.String? kind; /// The labels associated with this table. @@ -12357,104 +14996,129 @@ class Table { /// and each label in the list must have a different key. core.Map? labels; - /// \[Output-only\] The time when this table was last modified, in - /// milliseconds since the epoch. + /// The time when this table was last modified, in milliseconds since the + /// epoch. + /// + /// Output only. core.String? lastModifiedTime; - /// \[Output-only\] The geographic location where the table resides. + /// The geographic location where the table resides. /// /// This value is inherited from the dataset. + /// + /// Output only. core.String? location; - /// Materialized view definition. + /// The materialized view definition. /// /// Optional. MaterializedViewDefinition? materializedView; - /// Max staleness of data that could be returned when table or materialized - /// view is queried (formatted as Google SQL Interval type). + /// The materialized view status. + /// + /// Output only. + MaterializedViewStatus? materializedViewStatus; + + /// The maximum staleness of data that could be returned when the table (or + /// stale MV) is queried. + /// + /// Staleness encoded as a string encoding of sql IntervalValue type. /// /// Optional. core.String? maxStaleness; - core.List get maxStalenessAsBytes => - convert.base64.decode(maxStaleness!); - - set maxStalenessAsBytes(core.List bytes_) { - maxStaleness = - convert.base64.encode(bytes_).replaceAll('/', '_').replaceAll('+', '-'); - } - /// \[Output-only, Beta\] Present iff this table represents a ML model. - /// - /// Describes the training information for the model, and it is required to - /// run 'PREDICT' queries. + /// Deprecated. ModelDefinition? model; - /// \[Output-only\] Number of logical bytes that are less than 90 days old. + /// Number of logical bytes that are less than 90 days old. + /// + /// Output only. core.String? numActiveLogicalBytes; - /// \[Output-only\] Number of physical bytes less than 90 days old. + /// Number of physical bytes less than 90 days old. /// /// This data is not kept in real time, and might be delayed by a few seconds /// to a few minutes. + /// + /// Output only. core.String? numActivePhysicalBytes; - /// \[Output-only\] The size of this table in bytes, excluding any data in the + /// The size of this table in logical bytes, excluding any data in the /// streaming buffer. + /// + /// Output only. core.String? numBytes; - /// \[Output-only\] The number of bytes in the table that are considered - /// "long-term storage". + /// The number of logical bytes in the table that are considered "long-term + /// storage". + /// + /// Output only. core.String? numLongTermBytes; - /// \[Output-only\] Number of logical bytes that are more than 90 days old. + /// Number of logical bytes that are more than 90 days old. + /// + /// Output only. core.String? numLongTermLogicalBytes; - /// \[Output-only\] Number of physical bytes more than 90 days old. + /// Number of physical bytes more than 90 days old. /// /// This data is not kept in real time, and might be delayed by a few seconds /// to a few minutes. + /// + /// Output only. core.String? numLongTermPhysicalBytes; - /// \[Output-only\] The number of partitions present in the table or - /// materialized view. + /// The number of partitions present in the table or materialized view. /// /// This data is not kept in real time, and might be delayed by a few seconds /// to a few minutes. + /// + /// Output only. core.String? numPartitions; - /// \[Output-only\] \[TrustedTester\] The physical size of this table in - /// bytes, excluding any data in the streaming buffer. + /// The physical size of this table in bytes. /// - /// This includes compression and storage used for time travel. + /// This includes storage used for time travel. + /// + /// Output only. core.String? numPhysicalBytes; - /// \[Output-only\] The number of rows of data in this table, excluding any - /// data in the streaming buffer. + /// The number of rows of data in this table, excluding any data in the + /// streaming buffer. + /// + /// Output only. core.String? numRows; - /// \[Output-only\] Number of physical bytes used by time travel storage - /// (deleted or changed data). + /// Number of physical bytes used by time travel storage (deleted or changed + /// data). /// /// This data is not kept in real time, and might be delayed by a few seconds /// to a few minutes. + /// + /// Output only. core.String? numTimeTravelPhysicalBytes; - /// \[Output-only\] Total number of logical bytes in the table or materialized - /// view. + /// Total number of logical bytes in the table or materialized view. + /// + /// Output only. core.String? numTotalLogicalBytes; - /// \[Output-only\] The physical size of this table in bytes. + /// The physical size of this table in bytes. /// /// This also includes storage used for time travel. This data is not kept in /// real time, and might be delayed by a few seconds to a few minutes. + /// + /// Output only. core.String? numTotalPhysicalBytes; - /// \[TrustedTester\] Range partitioning specification for this table. - /// - /// Only one of timePartitioning and rangePartitioning should be specified. + /// If specified, configures range partitioning for this table. RangePartitioning? rangePartitioning; + /// Table references of all replicas currently active on the table. + /// + /// Optional. Output only. + core.List? replicas; + /// If set to true, queries over this table require a partition filter that /// can be used for partition elimination to be specified. /// @@ -12478,20 +15142,28 @@ class Table { /// Optional. TableSchema? schema; - /// \[Output-only\] A URL that can be used to access this resource again. + /// A URL that can be used to access this resource again. + /// + /// Output only. core.String? selfLink; - /// \[Output-only\] Snapshot definition. + /// Contains information about the snapshot. + /// + /// This value is set via snapshot creation. + /// + /// Output only. SnapshotDefinition? snapshotDefinition; - /// \[Output-only\] Contains information regarding this table's streaming - /// buffer, if one is present. + /// Contains information regarding this table's streaming buffer, if one is + /// present. /// /// This field will be absent if the table is not being streamed to or if /// there is no data in the streaming buffer. + /// + /// Output only. Streamingbuffer? streamingBuffer; - /// The table constraints on the table. + /// Tables Primary Key and Foreign Key information /// /// Optional. TableConstraints? tableConstraints; @@ -12501,19 +15173,27 @@ class Table { /// Required. TableReference? tableReference; - /// Time-based partitioning specification for this table. + /// Table replication info for table created `AS REPLICA` DDL like: `CREATE + /// MATERIALIZED VIEW mv1 AS REPLICA OF src_mv` /// - /// Only one of timePartitioning and rangePartitioning should be specified. + /// Optional. + TableReplicationInfo? tableReplicationInfo; + + /// If specified, configures time-based partitioning for this table. TimePartitioning? timePartitioning; - /// \[Output-only\] Describes the table type. + /// Describes the table type. /// - /// The following values are supported: TABLE: A normal BigQuery table. VIEW: - /// A virtual table defined by a SQL query. SNAPSHOT: An immutable, read-only - /// table that is a copy of another table. \[TrustedTester\] - /// MATERIALIZED_VIEW: SQL query whose result is persisted. EXTERNAL: A table - /// that references data stored in an external storage system, such as Google - /// Cloud Storage. The default value is TABLE. + /// The following values are supported: * `TABLE`: A normal BigQuery table. * + /// `VIEW`: A virtual table defined by a SQL query. * `EXTERNAL`: A table that + /// references data stored in an external storage system, such as Google Cloud + /// Storage. * `MATERIALIZED_VIEW`: A precomputed view defined by a SQL query. + /// * `SNAPSHOT`: An immutable BigQuery table that preserves the contents of a + /// base table at a particular time. See additional information on \[table + /// snapshots\](/bigquery/docs/table-snapshots-intro). The default value is + /// `TABLE`. + /// + /// Output only. core.String? type; /// The view definition. @@ -12540,6 +15220,7 @@ class Table { this.lastModifiedTime, this.location, this.materializedView, + this.materializedViewStatus, this.maxStaleness, this.model, this.numActiveLogicalBytes, @@ -12555,6 +15236,7 @@ class Table { this.numTotalLogicalBytes, this.numTotalPhysicalBytes, this.rangePartitioning, + this.replicas, this.requirePartitionFilter, this.resourceTags, this.schema, @@ -12563,6 +15245,7 @@ class Table { this.streamingBuffer, this.tableConstraints, this.tableReference, + this.tableReplicationInfo, this.timePartitioning, this.type, this.view, @@ -12632,6 +15315,10 @@ class Table { ? MaterializedViewDefinition.fromJson(json_['materializedView'] as core.Map) : null, + materializedViewStatus: json_.containsKey('materializedViewStatus') + ? MaterializedViewStatus.fromJson(json_['materializedViewStatus'] + as core.Map) + : null, maxStaleness: json_.containsKey('maxStaleness') ? json_['maxStaleness'] as core.String : null, @@ -12681,6 +15368,12 @@ class Table { ? RangePartitioning.fromJson(json_['rangePartitioning'] as core.Map) : null, + replicas: json_.containsKey('replicas') + ? (json_['replicas'] as core.List) + .map((value) => TableReference.fromJson( + value as core.Map)) + .toList() + : null, requirePartitionFilter: json_.containsKey('requirePartitionFilter') ? json_['requirePartitionFilter'] as core.bool : null, @@ -12716,6 +15409,10 @@ class Table { ? TableReference.fromJson(json_['tableReference'] as core.Map) : null, + tableReplicationInfo: json_.containsKey('tableReplicationInfo') + ? TableReplicationInfo.fromJson(json_['tableReplicationInfo'] + as core.Map) + : null, timePartitioning: json_.containsKey('timePartitioning') ? TimePartitioning.fromJson(json_['timePartitioning'] as core.Map) @@ -12750,6 +15447,8 @@ class Table { if (lastModifiedTime != null) 'lastModifiedTime': lastModifiedTime!, if (location != null) 'location': location!, if (materializedView != null) 'materializedView': materializedView!, + if (materializedViewStatus != null) + 'materializedViewStatus': materializedViewStatus!, if (maxStaleness != null) 'maxStaleness': maxStaleness!, if (model != null) 'model': model!, if (numActiveLogicalBytes != null) @@ -12772,6 +15471,7 @@ class Table { if (numTotalPhysicalBytes != null) 'numTotalPhysicalBytes': numTotalPhysicalBytes!, if (rangePartitioning != null) 'rangePartitioning': rangePartitioning!, + if (replicas != null) 'replicas': replicas!, if (requirePartitionFilter != null) 'requirePartitionFilter': requirePartitionFilter!, if (resourceTags != null) 'resourceTags': resourceTags!, @@ -12782,6 +15482,8 @@ class Table { if (streamingBuffer != null) 'streamingBuffer': streamingBuffer!, if (tableConstraints != null) 'tableConstraints': tableConstraints!, if (tableReference != null) 'tableReference': tableReference!, + if (tableReplicationInfo != null) + 'tableReplicationInfo': tableReplicationInfo!, if (timePartitioning != null) 'timePartitioning': timePartitioning!, if (type != null) 'type': type!, if (view != null) 'view': view!, @@ -12809,8 +15511,17 @@ class TableCell { }; } +/// The pair of the foreign key column and primary key column. class TableConstraintsForeignKeysColumnReferences { + /// The column in the primary key that are referenced by the + /// referencing_column. + /// + /// Required. core.String? referencedColumn; + + /// The column that composes the foreign key. + /// + /// Required. core.String? referencingColumn; TableConstraintsForeignKeysColumnReferences({ @@ -12865,8 +15576,16 @@ class TableConstraintsForeignKeysReferencedTable { }; } +/// Represents a foreign key constraint on a table's columns. class TableConstraintsForeignKeys { + /// The columns that compose the foreign key. + /// + /// Required. core.List? columnReferences; + + /// Set only if the foreign key constraint is named. + /// + /// Optional. core.String? name; TableConstraintsForeignKeysReferencedTable? referencedTable; @@ -12900,10 +15619,11 @@ class TableConstraintsForeignKeys { }; } -/// The primary key of the table. -/// -/// Optional. +/// Represents the primary key constraint on a table's columns. class TableConstraintsPrimaryKey { + /// The columns that are composed of the primary key constraint. + /// + /// Required. core.List? columns; TableConstraintsPrimaryKey({ @@ -12924,15 +15644,16 @@ class TableConstraintsPrimaryKey { }; } +/// The TableConstraints defines the primary key and foreign key. class TableConstraints { - /// The foreign keys of the tables. + /// Present only if the table has a foreign key. + /// + /// The foreign key is not enforced. /// /// Optional. core.List? foreignKeys; - /// The primary key of the table. - /// - /// Optional. + /// Represents the primary key constraint on a table's columns. TableConstraintsPrimaryKey? primaryKey; TableConstraints({ @@ -12960,21 +15681,16 @@ class TableConstraints { }; } +/// Data for a single insertion row. class TableDataInsertAllRequestRows { - /// A unique ID for each row. - /// - /// BigQuery uses this property to detect duplicate insertion requests on a - /// best-effort basis. + /// Insertion ID for best-effort deduplication. /// - /// Optional. + /// This feature is not recommended, and users seeking stronger insertion + /// semantics are encouraged to use other mechanisms such as the BigQuery + /// Write API. core.String? insertId; - /// A JSON object that contains a row of data. - /// - /// The object's properties and values must match the destination table's - /// schema. - /// - /// Required. + /// Data for a single row. JsonObject? json; TableDataInsertAllRequestRows({ @@ -12998,6 +15714,7 @@ class TableDataInsertAllRequestRows { }; } +/// Request for sending a single streaming insert. class TableDataInsertAllRequest { /// Accept rows that contain values that do not match the schema. /// @@ -13008,9 +15725,12 @@ class TableDataInsertAllRequest { core.bool? ignoreUnknownValues; /// The resource type of the response. + /// + /// The value is not checked at the backend. Historically, it has been set to + /// "bigquery#tableDataInsertAllRequest" but you are not required to set it. + /// + /// Optional. core.String? kind; - - /// The rows to insert. core.List? rows; /// Insert all valid rows of a request, even if invalid rows exist. @@ -13028,14 +15748,25 @@ class TableDataInsertAllRequest { /// the base template table. See /// https://cloud.google.com/bigquery/streaming-data-into-bigquery#template-tables /// for considerations when working with templates tables. + /// + /// Optional. core.String? templateSuffix; + /// Unique request trace id. + /// + /// Used for debugging purposes only. It is case-sensitive, limited to up to + /// 36 ASCII characters. A UUID is recommended. + /// + /// Optional. + core.String? traceId; + TableDataInsertAllRequest({ this.ignoreUnknownValues, this.kind, this.rows, this.skipInvalidRows, this.templateSuffix, + this.traceId, }); TableDataInsertAllRequest.fromJson(core.Map json_) @@ -13056,6 +15787,9 @@ class TableDataInsertAllRequest { templateSuffix: json_.containsKey('templateSuffix') ? json_['templateSuffix'] as core.String : null, + traceId: json_.containsKey('traceId') + ? json_['traceId'] as core.String + : null, ); core.Map toJson() => { @@ -13065,9 +15799,11 @@ class TableDataInsertAllRequest { if (rows != null) 'rows': rows!, if (skipInvalidRows != null) 'skipInvalidRows': skipInvalidRows!, if (templateSuffix != null) 'templateSuffix': templateSuffix!, + if (traceId != null) 'traceId': traceId!, }; } +/// Error details about a single row's insertion. class TableDataInsertAllResponseInsertErrors { /// Error information for the row indicated by the index property. core.List? errors; @@ -13097,11 +15833,12 @@ class TableDataInsertAllResponseInsertErrors { }; } +/// Describes the format of a streaming insert response. class TableDataInsertAllResponse { - /// An array of errors for rows that were not inserted. + /// Describes specific errors encountered while processing the request. core.List? insertErrors; - /// The resource type of the response. + /// Returns "bigquery#tableDataInsertAllResponse". core.String? kind; TableDataInsertAllResponse({ @@ -13143,7 +15880,9 @@ class TableDataList { /// Rows of results. core.List? rows; - /// The total number of rows in the complete table. + /// Total rows of the entire table. + /// + /// In order to show default value 0 we have to present it as string. core.String? totalRows; TableDataList({ @@ -13181,14 +15920,9 @@ class TableDataList { }; } -/// The categories attached to this field, used for field-level access control. -/// -/// Optional. +/// Deprecated. class TableFieldSchemaCategories { - /// A list of category resource names. - /// - /// For example, "projects/1/taxonomies/2/categories/3". At most 5 categories - /// are allowed. + /// Deprecated. core.List? names; TableFieldSchemaCategories({ @@ -13209,11 +15943,16 @@ class TableFieldSchemaCategories { }; } +/// The policy tags attached to this field, used for field-level access control. +/// +/// If not set, defaults to empty policy_tags. +/// +/// Optional. class TableFieldSchemaPolicyTags { - /// A list of category resource names. + /// A list of policy tag resource names. /// - /// For example, "projects/1/location/eu/taxonomies/2/policyTags/3". At most 1 - /// policy tag is allowed. + /// For example, "projects/1/locations/eu/taxonomies/2/policyTags/3". At most + /// 1 policy tag is currently allowed. core.List? names; TableFieldSchemaPolicyTags({ @@ -13234,14 +15973,13 @@ class TableFieldSchemaPolicyTags { }; } -/// The subtype of the RANGE, if the type of this field is RANGE. -/// -/// If the type is RANGE, this field is required. Possible values for the field -/// element type of a RANGE include: - DATE - DATETIME - TIMESTAMP -/// -/// Optional. +/// Represents the type of a field element. class TableFieldSchemaRangeElementType { - /// The field element type of a RANGE + /// The type of a field element. + /// + /// See TableFieldSchema.type. + /// + /// Required. core.String? type; TableFieldSchemaRangeElementType({ @@ -13258,29 +15996,22 @@ class TableFieldSchemaRangeElementType { }; } +/// A field in TableSchema class TableFieldSchema { - /// The categories attached to this field, used for field-level access - /// control. - /// - /// Optional. + /// Deprecated. TableFieldSchemaCategories? categories; - /// Collation specification of the field. + /// Field collation can be set only when the type of field is STRING. /// - /// It only can be set on string type field. + /// The following values are supported: * 'und:ci': undetermined locale, case + /// insensitive. * '': empty string. Default to case-sensitive behavior. /// /// Optional. core.String? collation; - /// A SQL expression to specify the default value for this field. - /// - /// It can only be set for top level fields (columns). You can use struct or - /// array expression to specify default value for the entire struct or array. - /// The valid SQL expressions are: - Literals for all data types, including - /// STRUCT and ARRAY. - Following functions: - CURRENT_TIMESTAMP - - /// CURRENT_TIME - CURRENT_DATE - CURRENT_DATETIME - GENERATE_UUID - RAND - - /// SESSION_USER - ST_GEOGPOINT - Struct or array composed with the above - /// allowed functions, for example, \[CURRENT_DATE(), DATE '2020-01-01'\] + /// A SQL expression to specify the + /// [default value](https://cloud.google.com/bigquery/docs/default-values) for + /// this field. /// /// Optional. core.String? defaultValueExpression; @@ -13324,6 +16055,13 @@ class TableFieldSchema { /// /// Required. core.String? name; + + /// The policy tags attached to this field, used for field-level access + /// control. + /// + /// If not set, defaults to empty policy_tags. + /// + /// Optional. TableFieldSchemaPolicyTags? policyTags; /// Precision (maximum number of total digits in base 10) and scale (maximum @@ -13334,33 +16072,38 @@ class TableFieldSchema { /// "BIGNUMERIC". If precision and scale are not specified, no value range /// constraint is imposed on this field insofar as values are permitted by the /// type. Values of this NUMERIC or BIGNUMERIC field must be in this range - /// when: - Precision (P) and scale (S) are specified: \[-10P-S + 10-S, 10P-S - /// - 10-S\] - Precision (P) is specified but not scale (and thus scale is + /// when: * Precision (P) and scale (S) are specified: \[-10P-S + 10-S, 10P-S + /// - 10-S\] * Precision (P) is specified but not scale (and thus scale is /// interpreted to be equal to zero): \[-10P + 1, 10P - 1\]. Acceptable values - /// for precision and scale if both are specified: - If type = "NUMERIC": 1 ≤ - /// precision - scale ≤ 29 and 0 ≤ scale ≤ 9. - If type = "BIGNUMERIC": 1 ≤ + /// for precision and scale if both are specified: * If type = "NUMERIC": 1 ≤ + /// precision - scale ≤ 29 and 0 ≤ scale ≤ 9. * If type = "BIGNUMERIC": 1 ≤ /// precision - scale ≤ 38 and 0 ≤ scale ≤ 38. Acceptable values for precision /// if only precision is specified but not scale (and thus scale is - /// interpreted to be equal to zero): - If type = "NUMERIC": 1 ≤ precision ≤ - /// 29. - If type = "BIGNUMERIC": 1 ≤ precision ≤ 38. If scale is specified + /// interpreted to be equal to zero): * If type = "NUMERIC": 1 ≤ precision ≤ + /// 29. * If type = "BIGNUMERIC": 1 ≤ precision ≤ 38. If scale is specified /// but not precision, then it is invalid. /// /// Optional. core.String? precision; - /// The subtype of the RANGE, if the type of this field is RANGE. - /// - /// If the type is RANGE, this field is required. Possible values for the - /// field element type of a RANGE include: - DATE - DATETIME - TIMESTAMP - /// - /// Optional. + /// Represents the type of a field element. TableFieldSchemaRangeElementType? rangeElementType; - /// Rounding Mode specification of the field. - /// - /// It only can be set on NUMERIC or BIGNUMERIC type fields. + /// Specifies the rounding mode to be used when storing values of NUMERIC and + /// BIGNUMERIC type. /// /// Optional. + /// Possible string values are: + /// - "ROUNDING_MODE_UNSPECIFIED" : Unspecified will default to using + /// ROUND_HALF_AWAY_FROM_ZERO. + /// - "ROUND_HALF_AWAY_FROM_ZERO" : ROUND_HALF_AWAY_FROM_ZERO rounds half + /// values away from zero when applying precision and scale upon writing of + /// NUMERIC and BIGNUMERIC values. For Scale: 0 1.1, 1.2, 1.3, 1.4 =\> 1 1.5, + /// 1.6, 1.7, 1.8, 1.9 =\> 2 + /// - "ROUND_HALF_EVEN" : ROUND_HALF_EVEN rounds half values to the nearest + /// even value when applying precision and scale upon writing of NUMERIC and + /// BIGNUMERIC values. For Scale: 0 1.1, 1.2, 1.3, 1.4 =\> 1 1.5 =\> 2 1.6, + /// 1.7, 1.8, 1.9 =\> 2 2.5 =\> 2 core.String? roundingMode; /// See documentation for precision. @@ -13370,11 +16113,10 @@ class TableFieldSchema { /// The field data type. /// - /// Possible values include STRING, BYTES, INTEGER, INT64 (same as INTEGER), - /// FLOAT, FLOAT64 (same as FLOAT), NUMERIC, BIGNUMERIC, BOOLEAN, BOOL (same - /// as BOOLEAN), TIMESTAMP, DATE, TIME, DATETIME, INTERVAL, RECORD (where - /// RECORD indicates that the field contains a nested schema) or STRUCT (same - /// as RECORD). + /// Possible values include: * STRING * BYTES * INTEGER (or INT64) * FLOAT (or + /// FLOAT64) * BOOLEAN (or BOOL) * TIMESTAMP * DATE * TIME * DATETIME * + /// GEOGRAPHY * NUMERIC * BIGNUMERIC * JSON * RECORD (or STRUCT) Use of + /// RECORD/STRUCT indicates that the field contains a nested schema. /// /// Required. core.String? type; @@ -13461,46 +16203,55 @@ class TableFieldSchema { }; } -/// Additional details for a view. +/// Information about a logical view. class TableListTablesView { - /// True if view is defined in legacy SQL dialect, false if in standard SQL. + /// Specifices the privacy policy for the view. + PrivacyPolicy? privacyPolicy; + + /// True if view is defined in legacy SQL dialect, false if in GoogleSQL. core.bool? useLegacySql; TableListTablesView({ + this.privacyPolicy, this.useLegacySql, }); TableListTablesView.fromJson(core.Map json_) : this( + privacyPolicy: json_.containsKey('privacyPolicy') + ? PrivacyPolicy.fromJson( + json_['privacyPolicy'] as core.Map) + : null, useLegacySql: json_.containsKey('useLegacySql') ? json_['useLegacySql'] as core.bool : null, ); core.Map toJson() => { + if (privacyPolicy != null) 'privacyPolicy': privacyPolicy!, if (useLegacySql != null) 'useLegacySql': useLegacySql!, }; } class TableListTables { - /// \[Beta\] Clustering specification for this table, if configured. + /// Clustering specification for this table, if configured. Clustering? clustering; /// The time when this table was created, in milliseconds since the epoch. + /// + /// Output only. core.String? creationTime; /// The time when this table expires, in milliseconds since the epoch. /// /// If not present, the table will persist indefinitely. Expired tables will /// be deleted and their storage reclaimed. - /// - /// Optional. core.String? expirationTime; /// The user-friendly name for this table. core.String? friendlyName; - /// An opaque ID of the table + /// An opaque ID of the table. core.String? id; /// The resource type. @@ -13511,21 +16262,27 @@ class TableListTables { /// You can use these to organize and group your tables. core.Map? labels; - /// The range partitioning specification for this table, if configured. + /// The range partitioning for this table. RangePartitioning? rangePartitioning; - /// A reference uniquely identifying the table. + /// If set to true, queries including this table must specify a partition + /// filter. + /// + /// This filter is used for partition elimination. + /// + /// Optional. + core.bool? requirePartitionFilter; + + /// A reference uniquely identifying table. TableReference? tableReference; - /// The time-based partitioning specification for this table, if configured. + /// The time-based partitioning for this table. TimePartitioning? timePartitioning; /// The type of table. - /// - /// Possible values are: TABLE, VIEW. core.String? type; - /// Additional details for a view. + /// Information about a logical view. TableListTablesView? view; TableListTables({ @@ -13537,6 +16294,7 @@ class TableListTables { this.kind, this.labels, this.rangePartitioning, + this.requirePartitionFilter, this.tableReference, this.timePartitioning, this.type, @@ -13572,6 +16330,9 @@ class TableListTables { ? RangePartitioning.fromJson(json_['rangePartitioning'] as core.Map) : null, + requirePartitionFilter: json_.containsKey('requirePartitionFilter') + ? json_['requirePartitionFilter'] as core.bool + : null, tableReference: json_.containsKey('tableReference') ? TableReference.fromJson(json_['tableReference'] as core.Map) @@ -13596,6 +16357,8 @@ class TableListTables { if (kind != null) 'kind': kind!, if (labels != null) 'labels': labels!, if (rangePartitioning != null) 'rangePartitioning': rangePartitioning!, + if (requirePartitionFilter != null) + 'requirePartitionFilter': requirePartitionFilter!, if (tableReference != null) 'tableReference': tableReference!, if (timePartitioning != null) 'timePartitioning': timePartitioning!, if (type != null) 'type': type!, @@ -13603,6 +16366,7 @@ class TableListTables { }; } +/// Partial projection of the metadata for a given table in a list response. class TableList { /// A hash of this page of results. core.String? etag; @@ -13654,6 +16418,63 @@ class TableList { }; } +/// Table level detail on the usage of metadata caching. +/// +/// Only set for Metadata caching eligible tables referenced in the query. +class TableMetadataCacheUsage { + /// Free form human-readable reason metadata caching was unused for the job. + core.String? explanation; + + /// Metadata caching eligible table referenced in the query. + TableReference? tableReference; + + /// \[Table type\](/bigquery/docs/reference/rest/v2/tables#Table.FIELDS.type). + core.String? tableType; + + /// Reason for not using metadata caching for the table. + /// Possible string values are: + /// - "UNUSED_REASON_UNSPECIFIED" : Unused reasons not specified. + /// - "EXCEEDED_MAX_STALENESS" : Metadata cache was outside the table's + /// maxStaleness. + /// - "METADATA_CACHING_NOT_ENABLED" : Metadata caching feature is not + /// enabled. \[Update BigLake tables\] + /// (/bigquery/docs/create-cloud-storage-table-biglake#update-biglake-tables) + /// to enable the metadata caching. + /// - "OTHER_REASON" : Other unknown reason. + core.String? unusedReason; + + TableMetadataCacheUsage({ + this.explanation, + this.tableReference, + this.tableType, + this.unusedReason, + }); + + TableMetadataCacheUsage.fromJson(core.Map json_) + : this( + explanation: json_.containsKey('explanation') + ? json_['explanation'] as core.String + : null, + tableReference: json_.containsKey('tableReference') + ? TableReference.fromJson(json_['tableReference'] + as core.Map) + : null, + tableType: json_.containsKey('tableType') + ? json_['tableType'] as core.String + : null, + unusedReason: json_.containsKey('unusedReason') + ? json_['unusedReason'] as core.String + : null, + ); + + core.Map toJson() => { + if (explanation != null) 'explanation': explanation!, + if (tableReference != null) 'tableReference': tableReference!, + if (tableType != null) 'tableType': tableType!, + if (unusedReason != null) 'unusedReason': unusedReason!, + }; +} + class TableReference { /// The ID of the dataset containing this table. /// @@ -13667,8 +16488,13 @@ class TableReference { /// The ID of the table. /// - /// The ID must contain only letters (a-z, A-Z), numbers (0-9), or underscores - /// (_). The maximum length is 1,024 characters. + /// The ID can contain Unicode characters in category L (letter), M (mark), N + /// (number), Pc (connector, including underscore), Pd (dash), and Zs (space). + /// For more information, see + /// [General Category](https://wikipedia.org/wiki/Unicode_character_property#General_Category). + /// The maximum length is 1,024 characters. Certain operations allow suffixing + /// of the table ID with a partition decorator, such as + /// `sample_table$20190123`. /// /// Required. core.String? tableId; @@ -13699,6 +16525,83 @@ class TableReference { }; } +/// Replication info of a table created using `AS REPLICA` DDL like: `CREATE +/// MATERIALIZED VIEW mv1 AS REPLICA OF src_mv` +class TableReplicationInfo { + /// If source is a materialized view, this field signifies the last refresh + /// time of the source. + /// + /// Optional. Output only. + core.String? replicatedSourceLastRefreshTime; + + /// Replication error that will permanently stopped table replication. + /// + /// Optional. Output only. + ErrorProto? replicationError; + + /// Specifies the interval at which the source table is polled for updates. + /// + /// Required. + core.String? replicationIntervalMs; + + /// Replication status of configured replication. + /// + /// Optional. Output only. + /// Possible string values are: + /// - "REPLICATION_STATUS_UNSPECIFIED" : Default value. + /// - "ACTIVE" : Replication is Active with no errors. + /// - "SOURCE_DELETED" : Source object is deleted. + /// - "PERMISSION_DENIED" : Source revoked replication permissions. + /// - "UNSUPPORTED_CONFIGURATION" : Source configuration doesn’t allow + /// replication. + core.String? replicationStatus; + + /// Source table reference that is replicated. + /// + /// Required. + TableReference? sourceTable; + + TableReplicationInfo({ + this.replicatedSourceLastRefreshTime, + this.replicationError, + this.replicationIntervalMs, + this.replicationStatus, + this.sourceTable, + }); + + TableReplicationInfo.fromJson(core.Map json_) + : this( + replicatedSourceLastRefreshTime: + json_.containsKey('replicatedSourceLastRefreshTime') + ? json_['replicatedSourceLastRefreshTime'] as core.String + : null, + replicationError: json_.containsKey('replicationError') + ? ErrorProto.fromJson(json_['replicationError'] + as core.Map) + : null, + replicationIntervalMs: json_.containsKey('replicationIntervalMs') + ? json_['replicationIntervalMs'] as core.String + : null, + replicationStatus: json_.containsKey('replicationStatus') + ? json_['replicationStatus'] as core.String + : null, + sourceTable: json_.containsKey('sourceTable') + ? TableReference.fromJson( + json_['sourceTable'] as core.Map) + : null, + ); + + core.Map toJson() => { + if (replicatedSourceLastRefreshTime != null) + 'replicatedSourceLastRefreshTime': replicatedSourceLastRefreshTime!, + if (replicationError != null) 'replicationError': replicationError!, + if (replicationIntervalMs != null) + 'replicationIntervalMs': replicationIntervalMs!, + if (replicationStatus != null) 'replicationStatus': replicationStatus!, + if (sourceTable != null) 'sourceTable': sourceTable!, + }; +} + class TableRow { /// Represents a single row in the result set, consisting of one or more /// fields. @@ -13723,6 +16626,7 @@ class TableRow { }; } +/// Schema of a table class TableSchema { /// Describes the fields in a table. core.List? fields; @@ -13753,30 +16657,37 @@ typedef TestIamPermissionsRequest = $TestIamPermissionsRequest00; typedef TestIamPermissionsResponse = $PermissionsResponse; class TimePartitioning { - /// Number of milliseconds for which to keep the storage for partitions in the - /// table. + /// Number of milliseconds for which to keep the storage for a partition. /// - /// The storage in a partition will have an expiration time of its partition - /// time plus this value. + /// A wrapper is used here because 0 is an invalid value. /// /// Optional. core.String? expirationMs; - /// \[Beta\] \[Optional\] If not set, the table is partitioned by pseudo - /// column, referenced via either '_PARTITIONTIME' as TIMESTAMP type, or - /// '_PARTITIONDATE' as DATE type. + /// If not set, the table is partitioned by pseudo column '_PARTITIONTIME'; if + /// set, the table is partitioned by this field. /// - /// If field is specified, the table is instead partitioned by this field. The - /// field must be a top-level TIMESTAMP or DATE field. Its mode must be - /// NULLABLE or REQUIRED. + /// The field must be a top-level TIMESTAMP or DATE field. Its mode must be + /// NULLABLE or REQUIRED. A wrapper is used here because an empty string is an + /// invalid value. + /// + /// Optional. core.String? field; + + /// If set to true, queries over this table require a partition filter that + /// can be used for partition elimination to be specified. + /// + /// This field is deprecated; please set the field with the same name on the + /// table itself instead. This field needs a wrapper because we want to output + /// the default value, false, if the user explicitly set it. + @core.Deprecated( + 'Not supported. Member documentation may have more information.', + ) core.bool? requirePartitionFilter; /// The supported types are DAY, HOUR, MONTH, and YEAR, which will generate /// one partition per day, hour, month, and year, respectively. /// - /// When the type is not specified, the default behavior is DAY. - /// /// Required. core.String? type; @@ -14947,8 +17858,11 @@ class TrainingRun { }; } +/// \[Alpha\] Information of a multi-statement transaction. class TransactionInfo { - /// \[Output-only\] // \[Alpha\] Id of the transaction. + /// \[Alpha\] Id of the transaction. + /// + /// Output only. core.String? transactionId; TransactionInfo({ @@ -15009,10 +17923,35 @@ class TransformColumn { }; } +/// Request format for undeleting a dataset. +class UndeleteDatasetRequest { + /// The exact time when the dataset was deleted. + /// + /// If not specified, it will undelete the most recently deleted version. + /// + /// Optional. + core.String? deletionTime; + + UndeleteDatasetRequest({ + this.deletionTime, + }); + + UndeleteDatasetRequest.fromJson(core.Map json_) + : this( + deletionTime: json_.containsKey('deletionTime') + ? json_['deletionTime'] as core.String + : null, + ); + + core.Map toJson() => { + if (deletionTime != null) 'deletionTime': deletionTime!, + }; +} + /// This is used for defining User Defined Function (UDF) resources only when /// using legacy SQL. /// -/// Users of Standard SQL should leverage either DDL (e.g. CREATE \[TEMPORARY\] +/// Users of GoogleSQL should leverage either DDL (e.g. CREATE \[TEMPORARY\] /// FUNCTION ... ) or the Routines API to define UDF resources. For additional /// information on migrating, see: /// https://cloud.google.com/bigquery/docs/reference/standard-sql/migrating-from-legacy-sql#differences_in_user-defined_javascript_functions @@ -15049,7 +17988,62 @@ class UserDefinedFunctionResource { }; } +/// Statistics for a vector search query. +/// +/// Populated as part of JobStatistics2. +class VectorSearchStatistics { + /// When `indexUsageMode` is `UNUSED` or `PARTIALLY_USED`, this field explains + /// why indexes were not used in all or part of the vector search query. + /// + /// If `indexUsageMode` is `FULLY_USED`, this field is not populated. + core.List? indexUnusedReasons; + + /// Specifies the index usage mode for the query. + /// Possible string values are: + /// - "INDEX_USAGE_MODE_UNSPECIFIED" : Index usage mode not specified. + /// - "UNUSED" : No vector indexes were used in the vector search query. See + /// \[`indexUnusedReasons`\] + /// (/bigquery/docs/reference/rest/v2/Job#IndexUnusedReason) for detailed + /// reasons. + /// - "PARTIALLY_USED" : Part of the vector search query used vector indexes. + /// See \[`indexUnusedReasons`\] + /// (/bigquery/docs/reference/rest/v2/Job#IndexUnusedReason) for why other + /// parts of the query did not use vector indexes. + /// - "FULLY_USED" : The entire vector search query used vector indexes. + core.String? indexUsageMode; + + VectorSearchStatistics({ + this.indexUnusedReasons, + this.indexUsageMode, + }); + + VectorSearchStatistics.fromJson(core.Map json_) + : this( + indexUnusedReasons: json_.containsKey('indexUnusedReasons') + ? (json_['indexUnusedReasons'] as core.List) + .map((value) => IndexUnusedReason.fromJson( + value as core.Map)) + .toList() + : null, + indexUsageMode: json_.containsKey('indexUsageMode') + ? json_['indexUsageMode'] as core.String + : null, + ); + + core.Map toJson() => { + if (indexUnusedReasons != null) + 'indexUnusedReasons': indexUnusedReasons!, + if (indexUsageMode != null) 'indexUsageMode': indexUsageMode!, + }; +} + +/// Describes the definition of a logical view. class ViewDefinition { + /// Specifices the privacy policy for the view. + /// + /// Optional. + PrivacyPolicy? privacyPolicy; + /// A query that BigQuery executes when the view is referenced. /// /// Required. @@ -15058,21 +18052,22 @@ class ViewDefinition { /// True if the column names are explicitly specified. /// /// For example by using the 'CREATE VIEW v(c1, c2) AS ...' syntax. Can only - /// be set using BigQuery's standard SQL: - /// https://cloud.google.com/bigquery/sql-reference/ + /// be set for GoogleSQL views. core.bool? useExplicitColumnNames; /// Specifies whether to use BigQuery's legacy SQL for this view. /// /// The default value is true. If set to false, the view will use BigQuery's - /// standard SQL: https://cloud.google.com/bigquery/sql-reference/ Queries and - /// views that reference this view must use the same flag value. + /// GoogleSQL: https://cloud.google.com/bigquery/sql-reference/ Queries and + /// views that reference this view must use the same flag value. A wrapper is + /// used here because the default value is True. core.bool? useLegacySql; /// Describes user-defined function resources used in the query. core.List? userDefinedFunctionResources; ViewDefinition({ + this.privacyPolicy, this.query, this.useExplicitColumnNames, this.useLegacySql, @@ -15081,6 +18076,10 @@ class ViewDefinition { ViewDefinition.fromJson(core.Map json_) : this( + privacyPolicy: json_.containsKey('privacyPolicy') + ? PrivacyPolicy.fromJson( + json_['privacyPolicy'] as core.Map) + : null, query: json_.containsKey('query') ? json_['query'] as core.String : null, useExplicitColumnNames: json_.containsKey('useExplicitColumnNames') @@ -15099,6 +18098,7 @@ class ViewDefinition { ); core.Map toJson() => { + if (privacyPolicy != null) 'privacyPolicy': privacyPolicy!, if (query != null) 'query': query!, if (useExplicitColumnNames != null) 'useExplicitColumnNames': useExplicitColumnNames!, diff --git a/generated/googleapis/lib/bigqueryconnection/v1.dart b/generated/googleapis/lib/bigqueryconnection/v1.dart new file mode 100644 index 000000000..65f6a3d0e --- /dev/null +++ b/generated/googleapis/lib/bigqueryconnection/v1.dart @@ -0,0 +1,1692 @@ +// This is a generated file (see the discoveryapis_generator project). + +// ignore_for_file: camel_case_types +// ignore_for_file: comment_references +// ignore_for_file: deprecated_member_use_from_same_package +// ignore_for_file: lines_longer_than_80_chars +// ignore_for_file: non_constant_identifier_names +// ignore_for_file: prefer_interpolation_to_compose_strings +// ignore_for_file: unnecessary_brace_in_string_interps +// ignore_for_file: unnecessary_lambdas +// ignore_for_file: unnecessary_string_interpolations + +/// BigQuery Connection API - v1 +/// +/// Allows users to manage BigQuery connections to external data sources. +/// +/// For more information, see +/// +/// +/// Create an instance of [BigQueryConnectionServiceApi] to access these +/// resources: +/// +/// - [ProjectsResource] +/// - [ProjectsLocationsResource] +/// - [ProjectsLocationsConnectionsResource] +library; + +import 'dart:async' as async; +import 'dart:convert' as convert; +import 'dart:core' as core; + +import 'package:_discoveryapis_commons/_discoveryapis_commons.dart' as commons; +import 'package:http/http.dart' as http; + +import '../shared.dart'; +import '../src/user_agent.dart'; + +export 'package:_discoveryapis_commons/_discoveryapis_commons.dart' + show ApiRequestError, DetailedApiRequestError; + +/// Allows users to manage BigQuery connections to external data sources. +class BigQueryConnectionServiceApi { + /// View and manage your data in Google BigQuery and see the email address for + /// your Google Account + static const bigqueryScope = 'https://www.googleapis.com/auth/bigquery'; + + /// See, edit, configure, and delete your Google Cloud data and see the email + /// address for your Google Account. + static const cloudPlatformScope = + 'https://www.googleapis.com/auth/cloud-platform'; + + final commons.ApiRequester _requester; + + ProjectsResource get projects => ProjectsResource(_requester); + + BigQueryConnectionServiceApi(http.Client client, + {core.String rootUrl = 'https://bigqueryconnection.googleapis.com/', + core.String servicePath = ''}) + : _requester = + commons.ApiRequester(client, rootUrl, servicePath, requestHeaders); +} + +class ProjectsResource { + final commons.ApiRequester _requester; + + ProjectsLocationsResource get locations => + ProjectsLocationsResource(_requester); + + ProjectsResource(commons.ApiRequester client) : _requester = client; +} + +class ProjectsLocationsResource { + final commons.ApiRequester _requester; + + ProjectsLocationsConnectionsResource get connections => + ProjectsLocationsConnectionsResource(_requester); + + ProjectsLocationsResource(commons.ApiRequester client) : _requester = client; +} + +class ProjectsLocationsConnectionsResource { + final commons.ApiRequester _requester; + + ProjectsLocationsConnectionsResource(commons.ApiRequester client) + : _requester = client; + + /// Creates a new connection. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [parent] - Required. Parent resource name. Must be in the format + /// `projects/{project_id}/locations/{location_id}` + /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. + /// + /// [connectionId] - Optional. Connection id that should be assigned to the + /// created connection. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Connection]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future create( + Connection request, + core.String parent, { + core.String? connectionId, + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if (connectionId != null) 'connectionId': [connectionId], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/connections'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Connection.fromJson( + response_ as core.Map); + } + + /// Deletes connection and associated credential. + /// + /// Request parameters: + /// + /// [name] - Required. Name of the deleted connection, for example: + /// `projects/{project_id}/locations/{location_id}/connections/{connection_id}` + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/connections/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Empty]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future delete( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'DELETE', + queryParams: queryParams_, + ); + return Empty.fromJson(response_ as core.Map); + } + + /// Returns specified connection. + /// + /// Request parameters: + /// + /// [name] - Required. Name of the requested connection, for example: + /// `projects/{project_id}/locations/{location_id}/connections/{connection_id}` + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/connections/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Connection]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return Connection.fromJson( + response_ as core.Map); + } + + /// Gets the access control policy for a resource. + /// + /// Returns an empty policy if the resource exists and does not have a policy + /// set. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [resource] - REQUIRED: The resource for which the policy is being + /// requested. See + /// [Resource names](https://cloud.google.com/apis/design/resource_names) for + /// the appropriate value for this field. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/connections/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Policy]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future getIamPolicy( + GetIamPolicyRequest request, + core.String resource, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$resource') + ':getIamPolicy'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Policy.fromJson(response_ as core.Map); + } + + /// Returns a list of connections in the given project. + /// + /// Request parameters: + /// + /// [parent] - Required. Parent resource name. Must be in the form: + /// `projects/{project_id}/locations/{location_id}` + /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. + /// + /// [pageSize] - Required. Page size. + /// + /// [pageToken] - Page token. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [ListConnectionsResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future list( + core.String parent, { + core.int? pageSize, + core.String? pageToken, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (pageSize != null) 'pageSize': ['${pageSize}'], + if (pageToken != null) 'pageToken': [pageToken], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/connections'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return ListConnectionsResponse.fromJson( + response_ as core.Map); + } + + /// Updates the specified connection. + /// + /// For security reasons, also resets credential if connection properties are + /// in the update field mask. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [name] - Required. Name of the connection to update, for example: + /// `projects/{project_id}/locations/{location_id}/connections/{connection_id}` + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/connections/\[^/\]+$`. + /// + /// [updateMask] - Required. Update mask for the connection fields to be + /// updated. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Connection]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future patch( + Connection request, + core.String name, { + core.String? updateMask, + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if (updateMask != null) 'updateMask': [updateMask], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'PATCH', + body: body_, + queryParams: queryParams_, + ); + return Connection.fromJson( + response_ as core.Map); + } + + /// Sets the access control policy on the specified resource. + /// + /// Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, + /// and `PERMISSION_DENIED` errors. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [resource] - REQUIRED: The resource for which the policy is being + /// specified. See + /// [Resource names](https://cloud.google.com/apis/design/resource_names) for + /// the appropriate value for this field. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/connections/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Policy]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future setIamPolicy( + SetIamPolicyRequest request, + core.String resource, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$resource') + ':setIamPolicy'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Policy.fromJson(response_ as core.Map); + } + + /// Returns permissions that a caller has on the specified resource. + /// + /// If the resource does not exist, this will return an empty set of + /// permissions, not a `NOT_FOUND` error. Note: This operation is designed to + /// be used for building permission-aware UIs and command-line tools, not for + /// authorization checking. This operation may "fail open" without warning. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [resource] - REQUIRED: The resource for which the policy detail is being + /// requested. See + /// [Resource names](https://cloud.google.com/apis/design/resource_names) for + /// the appropriate value for this field. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/connections/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [TestIamPermissionsResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future testIamPermissions( + TestIamPermissionsRequest request, + core.String resource, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = + 'v1/' + core.Uri.encodeFull('$resource') + ':testIamPermissions'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return TestIamPermissionsResponse.fromJson( + response_ as core.Map); + } +} + +/// Specifies the audit configuration for a service. +/// +/// The configuration determines which permission types are logged, and what +/// identities, if any, are exempted from logging. An AuditConfig must have one +/// or more AuditLogConfigs. If there are AuditConfigs for both `allServices` +/// and a specific service, the union of the two AuditConfigs is used for that +/// service: the log_types specified in each AuditConfig are enabled, and the +/// exempted_members in each AuditLogConfig are exempted. Example Policy with +/// multiple AuditConfigs: { "audit_configs": \[ { "service": "allServices", +/// "audit_log_configs": \[ { "log_type": "DATA_READ", "exempted_members": \[ +/// "user:jose@example.com" \] }, { "log_type": "DATA_WRITE" }, { "log_type": +/// "ADMIN_READ" } \] }, { "service": "sampleservice.googleapis.com", +/// "audit_log_configs": \[ { "log_type": "DATA_READ" }, { "log_type": +/// "DATA_WRITE", "exempted_members": \[ "user:aliya@example.com" \] } \] } \] } +/// For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ +/// logging. It also exempts `jose@example.com` from DATA_READ logging, and +/// `aliya@example.com` from DATA_WRITE logging. +class AuditConfig { + /// The configuration for logging of each type of permission. + core.List? auditLogConfigs; + + /// Specifies a service that will be enabled for audit logging. + /// + /// For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. + /// `allServices` is a special value that covers all services. + core.String? service; + + AuditConfig({ + this.auditLogConfigs, + this.service, + }); + + AuditConfig.fromJson(core.Map json_) + : this( + auditLogConfigs: json_.containsKey('auditLogConfigs') + ? (json_['auditLogConfigs'] as core.List) + .map((value) => AuditLogConfig.fromJson( + value as core.Map)) + .toList() + : null, + service: json_.containsKey('service') + ? json_['service'] as core.String + : null, + ); + + core.Map toJson() => { + if (auditLogConfigs != null) 'auditLogConfigs': auditLogConfigs!, + if (service != null) 'service': service!, + }; +} + +/// Provides the configuration for logging a type of permissions. +/// +/// Example: { "audit_log_configs": \[ { "log_type": "DATA_READ", +/// "exempted_members": \[ "user:jose@example.com" \] }, { "log_type": +/// "DATA_WRITE" } \] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while +/// exempting jose@example.com from DATA_READ logging. +typedef AuditLogConfig = $AuditLogConfig; + +/// Authentication method for Amazon Web Services (AWS) that uses Google owned +/// Google service account to assume into customer's AWS IAM Role. +class AwsAccessRole { + /// The user’s AWS IAM Role that trusts the Google-owned AWS IAM user + /// Connection. + core.String? iamRoleId; + + /// A unique Google-owned and Google-generated identity for the Connection. + /// + /// This identity will be used to access the user's AWS IAM Role. + core.String? identity; + + AwsAccessRole({ + this.iamRoleId, + this.identity, + }); + + AwsAccessRole.fromJson(core.Map json_) + : this( + iamRoleId: json_.containsKey('iamRoleId') + ? json_['iamRoleId'] as core.String + : null, + identity: json_.containsKey('identity') + ? json_['identity'] as core.String + : null, + ); + + core.Map toJson() => { + if (iamRoleId != null) 'iamRoleId': iamRoleId!, + if (identity != null) 'identity': identity!, + }; +} + +/// Connection properties specific to Amazon Web Services (AWS). +class AwsProperties { + /// Authentication using Google owned service account to assume into + /// customer's AWS IAM Role. + AwsAccessRole? accessRole; + + AwsProperties({ + this.accessRole, + }); + + AwsProperties.fromJson(core.Map json_) + : this( + accessRole: json_.containsKey('accessRole') + ? AwsAccessRole.fromJson( + json_['accessRole'] as core.Map) + : null, + ); + + core.Map toJson() => { + if (accessRole != null) 'accessRole': accessRole!, + }; +} + +/// Container for connection properties specific to Azure. +class AzureProperties { + /// The name of the Azure Active Directory Application. + /// + /// Output only. + core.String? application; + + /// The client id of the Azure Active Directory Application. + /// + /// Output only. + core.String? clientId; + + /// The id of customer's directory that host the data. + core.String? customerTenantId; + + /// The client ID of the user's Azure Active Directory Application used for a + /// federated connection. + core.String? federatedApplicationClientId; + + /// A unique Google-owned and Google-generated identity for the Connection. + /// + /// This identity will be used to access the user's Azure Active Directory + /// Application. + /// + /// Output only. + core.String? identity; + + /// The object id of the Azure Active Directory Application. + /// + /// Output only. + core.String? objectId; + + /// The URL user will be redirected to after granting consent during + /// connection setup. + core.String? redirectUri; + + AzureProperties({ + this.application, + this.clientId, + this.customerTenantId, + this.federatedApplicationClientId, + this.identity, + this.objectId, + this.redirectUri, + }); + + AzureProperties.fromJson(core.Map json_) + : this( + application: json_.containsKey('application') + ? json_['application'] as core.String + : null, + clientId: json_.containsKey('clientId') + ? json_['clientId'] as core.String + : null, + customerTenantId: json_.containsKey('customerTenantId') + ? json_['customerTenantId'] as core.String + : null, + federatedApplicationClientId: + json_.containsKey('federatedApplicationClientId') + ? json_['federatedApplicationClientId'] as core.String + : null, + identity: json_.containsKey('identity') + ? json_['identity'] as core.String + : null, + objectId: json_.containsKey('objectId') + ? json_['objectId'] as core.String + : null, + redirectUri: json_.containsKey('redirectUri') + ? json_['redirectUri'] as core.String + : null, + ); + + core.Map toJson() => { + if (application != null) 'application': application!, + if (clientId != null) 'clientId': clientId!, + if (customerTenantId != null) 'customerTenantId': customerTenantId!, + if (federatedApplicationClientId != null) + 'federatedApplicationClientId': federatedApplicationClientId!, + if (identity != null) 'identity': identity!, + if (objectId != null) 'objectId': objectId!, + if (redirectUri != null) 'redirectUri': redirectUri!, + }; +} + +/// Associates `members`, or principals, with a `role`. +class Binding { + /// The condition that is associated with this binding. + /// + /// If the condition evaluates to `true`, then this binding applies to the + /// current request. If the condition evaluates to `false`, then this binding + /// does not apply to the current request. However, a different role binding + /// might grant the same role to one or more of the principals in this + /// binding. To learn which resources support conditions in their IAM + /// policies, see the + /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). + Expr? condition; + + /// Specifies the principals requesting access for a Google Cloud resource. + /// + /// `members` can have the following values: * `allUsers`: A special + /// identifier that represents anyone who is on the internet; with or without + /// a Google account. * `allAuthenticatedUsers`: A special identifier that + /// represents anyone who is authenticated with a Google account or a service + /// account. Does not include identities that come from external identity + /// providers (IdPs) through identity federation. * `user:{emailid}`: An email + /// address that represents a specific Google account. For example, + /// `alice@example.com` . * `serviceAccount:{emailid}`: An email address that + /// represents a Google service account. For example, + /// `my-other-app@appspot.gserviceaccount.com`. * + /// `serviceAccount:{projectid}.svc.id.goog[{namespace}/{kubernetes-sa}]`: An + /// identifier for a + /// [Kubernetes service account](https://cloud.google.com/kubernetes-engine/docs/how-to/kubernetes-service-accounts). + /// For example, `my-project.svc.id.goog[my-namespace/my-kubernetes-sa]`. * + /// `group:{emailid}`: An email address that represents a Google group. For + /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain + /// (primary) that represents all the users of that domain. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, + /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If + /// the service account is undeleted, this value reverts to + /// `serviceAccount:{emailid}` and the undeleted service account retains the + /// role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email + /// address (plus unique identifier) representing a Google group that has been + /// recently deleted. For example, + /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, + /// this value reverts to `group:{emailid}` and the recovered group retains + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. + core.List? members; + + /// Role that is assigned to the list of `members`, or principals. + /// + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). + core.String? role; + + Binding({ + this.condition, + this.members, + this.role, + }); + + Binding.fromJson(core.Map json_) + : this( + condition: json_.containsKey('condition') + ? Expr.fromJson( + json_['condition'] as core.Map) + : null, + members: json_.containsKey('members') + ? (json_['members'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + role: json_.containsKey('role') ? json_['role'] as core.String : null, + ); + + core.Map toJson() => { + if (condition != null) 'condition': condition!, + if (members != null) 'members': members!, + if (role != null) 'role': role!, + }; +} + +/// Container for connection properties for delegation of access to GCP +/// resources. +class CloudResourceProperties { + /// The account ID of the service created for the purpose of this connection. + /// + /// The service account does not have any permissions associated with it when + /// it is created. After creation, customers delegate permissions to the + /// service account. When the connection is used in the context of an + /// operation in BigQuery, the service account will be used to connect to the + /// desired resources in GCP. The account ID is in the form of: + /// @gcp-sa-bigquery-cloudresource.iam.gserviceaccount.com + /// + /// Output only. + core.String? serviceAccountId; + + CloudResourceProperties({ + this.serviceAccountId, + }); + + CloudResourceProperties.fromJson(core.Map json_) + : this( + serviceAccountId: json_.containsKey('serviceAccountId') + ? json_['serviceAccountId'] as core.String + : null, + ); + + core.Map toJson() => { + if (serviceAccountId != null) 'serviceAccountId': serviceAccountId!, + }; +} + +/// Connection properties specific to Cloud Spanner. +class CloudSpannerProperties { + /// Cloud Spanner database in the form \`project/instance/database' + core.String? database; + + /// Cloud Spanner database role for fine-grained access control. + /// + /// The Cloud Spanner admin should have provisioned the database role with + /// appropriate permissions, such as `SELECT` and `INSERT`. Other users should + /// only use roles provided by their Cloud Spanner admins. For more details, + /// see \[About fine-grained access + /// control\](https://cloud.google.com/spanner/docs/fgac-about). REQUIRES: The + /// database role name must start with a letter, and can only contain letters, + /// numbers, and underscores. + /// + /// Optional. + core.String? databaseRole; + + /// Allows setting max parallelism per query when executing on Spanner + /// independent compute resources. + /// + /// If unspecified, default values of parallelism are chosen that are + /// dependent on the Cloud Spanner instance configuration. REQUIRES: + /// `use_parallelism` must be set. REQUIRES: `use_data_boost` must be set. + core.int? maxParallelism; + + /// If set, the request will be executed via Spanner independent compute + /// resources. + /// + /// REQUIRES: `use_parallelism` must be set. + core.bool? useDataBoost; + + /// If parallelism should be used when reading from Cloud Spanner + core.bool? useParallelism; + + /// Deprecated: prefer use_data_boost instead. + /// + /// If the serverless analytics service should be used to read data from Cloud + /// Spanner. Note: `use_parallelism` must be set when using serverless + /// analytics. + @core.Deprecated( + 'Not supported. Member documentation may have more information.', + ) + core.bool? useServerlessAnalytics; + + CloudSpannerProperties({ + this.database, + this.databaseRole, + this.maxParallelism, + this.useDataBoost, + this.useParallelism, + this.useServerlessAnalytics, + }); + + CloudSpannerProperties.fromJson(core.Map json_) + : this( + database: json_.containsKey('database') + ? json_['database'] as core.String + : null, + databaseRole: json_.containsKey('databaseRole') + ? json_['databaseRole'] as core.String + : null, + maxParallelism: json_.containsKey('maxParallelism') + ? json_['maxParallelism'] as core.int + : null, + useDataBoost: json_.containsKey('useDataBoost') + ? json_['useDataBoost'] as core.bool + : null, + useParallelism: json_.containsKey('useParallelism') + ? json_['useParallelism'] as core.bool + : null, + useServerlessAnalytics: json_.containsKey('useServerlessAnalytics') + ? json_['useServerlessAnalytics'] as core.bool + : null, + ); + + core.Map toJson() => { + if (database != null) 'database': database!, + if (databaseRole != null) 'databaseRole': databaseRole!, + if (maxParallelism != null) 'maxParallelism': maxParallelism!, + if (useDataBoost != null) 'useDataBoost': useDataBoost!, + if (useParallelism != null) 'useParallelism': useParallelism!, + if (useServerlessAnalytics != null) + 'useServerlessAnalytics': useServerlessAnalytics!, + }; +} + +/// Credential info for the Cloud SQL. +class CloudSqlCredential { + /// The password for the credential. + core.String? password; + + /// The username for the credential. + core.String? username; + + CloudSqlCredential({ + this.password, + this.username, + }); + + CloudSqlCredential.fromJson(core.Map json_) + : this( + password: json_.containsKey('password') + ? json_['password'] as core.String + : null, + username: json_.containsKey('username') + ? json_['username'] as core.String + : null, + ); + + core.Map toJson() => { + if (password != null) 'password': password!, + if (username != null) 'username': username!, + }; +} + +/// Connection properties specific to the Cloud SQL. +class CloudSqlProperties { + /// Input only. + /// + /// Cloud SQL credential. + CloudSqlCredential? credential; + + /// Database name. + core.String? database; + + /// Cloud SQL instance ID in the form `project:location:instance`. + core.String? instanceId; + + /// The account ID of the service used for the purpose of this connection. + /// + /// When the connection is used in the context of an operation in BigQuery, + /// this service account will serve as the identity being used for connecting + /// to the CloudSQL instance specified in this connection. + /// + /// Output only. + core.String? serviceAccountId; + + /// Type of the Cloud SQL database. + /// Possible string values are: + /// - "DATABASE_TYPE_UNSPECIFIED" : Unspecified database type. + /// - "POSTGRES" : Cloud SQL for PostgreSQL. + /// - "MYSQL" : Cloud SQL for MySQL. + core.String? type; + + CloudSqlProperties({ + this.credential, + this.database, + this.instanceId, + this.serviceAccountId, + this.type, + }); + + CloudSqlProperties.fromJson(core.Map json_) + : this( + credential: json_.containsKey('credential') + ? CloudSqlCredential.fromJson( + json_['credential'] as core.Map) + : null, + database: json_.containsKey('database') + ? json_['database'] as core.String + : null, + instanceId: json_.containsKey('instanceId') + ? json_['instanceId'] as core.String + : null, + serviceAccountId: json_.containsKey('serviceAccountId') + ? json_['serviceAccountId'] as core.String + : null, + type: json_.containsKey('type') ? json_['type'] as core.String : null, + ); + + core.Map toJson() => { + if (credential != null) 'credential': credential!, + if (database != null) 'database': database!, + if (instanceId != null) 'instanceId': instanceId!, + if (serviceAccountId != null) 'serviceAccountId': serviceAccountId!, + if (type != null) 'type': type!, + }; +} + +/// Configuration parameters to establish connection with an external data +/// source, except the credential attributes. +class Connection { + /// Amazon Web Services (AWS) properties. + AwsProperties? aws; + + /// Azure properties. + AzureProperties? azure; + + /// Cloud Resource properties. + CloudResourceProperties? cloudResource; + + /// Cloud Spanner properties. + CloudSpannerProperties? cloudSpanner; + + /// Cloud SQL properties. + CloudSqlProperties? cloudSql; + + /// Connector configuration. + /// + /// Optional. + ConnectorConfiguration? configuration; + + /// The creation timestamp of the connection. + /// + /// Output only. + core.String? creationTime; + + /// User provided description. + core.String? description; + + /// User provided display name for the connection. + core.String? friendlyName; + + /// True, if credential is configured for this connection. + /// + /// Output only. + core.bool? hasCredential; + + /// The Cloud KMS key that is used for encryption. + /// + /// Example: + /// `projects/[kms_project_id]/locations/[region]/keyRings/[key_region]/cryptoKeys/[key]` + /// + /// Optional. + core.String? kmsKeyName; + + /// The last update timestamp of the connection. + /// + /// Output only. + core.String? lastModifiedTime; + + /// The resource name of the connection in the form of: + /// `projects/{project_id}/locations/{location_id}/connections/{connection_id}` + /// + /// Output only. + core.String? name; + + /// Salesforce DataCloud properties. + /// + /// This field is intended for use only by Salesforce partner projects. This + /// field contains properties for your Salesforce DataCloud connection. + /// + /// Optional. + SalesforceDataCloudProperties? salesforceDataCloud; + + /// Spark properties. + SparkProperties? spark; + + Connection({ + this.aws, + this.azure, + this.cloudResource, + this.cloudSpanner, + this.cloudSql, + this.configuration, + this.creationTime, + this.description, + this.friendlyName, + this.hasCredential, + this.kmsKeyName, + this.lastModifiedTime, + this.name, + this.salesforceDataCloud, + this.spark, + }); + + Connection.fromJson(core.Map json_) + : this( + aws: json_.containsKey('aws') + ? AwsProperties.fromJson( + json_['aws'] as core.Map) + : null, + azure: json_.containsKey('azure') + ? AzureProperties.fromJson( + json_['azure'] as core.Map) + : null, + cloudResource: json_.containsKey('cloudResource') + ? CloudResourceProperties.fromJson( + json_['cloudResource'] as core.Map) + : null, + cloudSpanner: json_.containsKey('cloudSpanner') + ? CloudSpannerProperties.fromJson( + json_['cloudSpanner'] as core.Map) + : null, + cloudSql: json_.containsKey('cloudSql') + ? CloudSqlProperties.fromJson( + json_['cloudSql'] as core.Map) + : null, + configuration: json_.containsKey('configuration') + ? ConnectorConfiguration.fromJson( + json_['configuration'] as core.Map) + : null, + creationTime: json_.containsKey('creationTime') + ? json_['creationTime'] as core.String + : null, + description: json_.containsKey('description') + ? json_['description'] as core.String + : null, + friendlyName: json_.containsKey('friendlyName') + ? json_['friendlyName'] as core.String + : null, + hasCredential: json_.containsKey('hasCredential') + ? json_['hasCredential'] as core.bool + : null, + kmsKeyName: json_.containsKey('kmsKeyName') + ? json_['kmsKeyName'] as core.String + : null, + lastModifiedTime: json_.containsKey('lastModifiedTime') + ? json_['lastModifiedTime'] as core.String + : null, + name: json_.containsKey('name') ? json_['name'] as core.String : null, + salesforceDataCloud: json_.containsKey('salesforceDataCloud') + ? SalesforceDataCloudProperties.fromJson( + json_['salesforceDataCloud'] + as core.Map) + : null, + spark: json_.containsKey('spark') + ? SparkProperties.fromJson( + json_['spark'] as core.Map) + : null, + ); + + core.Map toJson() => { + if (aws != null) 'aws': aws!, + if (azure != null) 'azure': azure!, + if (cloudResource != null) 'cloudResource': cloudResource!, + if (cloudSpanner != null) 'cloudSpanner': cloudSpanner!, + if (cloudSql != null) 'cloudSql': cloudSql!, + if (configuration != null) 'configuration': configuration!, + if (creationTime != null) 'creationTime': creationTime!, + if (description != null) 'description': description!, + if (friendlyName != null) 'friendlyName': friendlyName!, + if (hasCredential != null) 'hasCredential': hasCredential!, + if (kmsKeyName != null) 'kmsKeyName': kmsKeyName!, + if (lastModifiedTime != null) 'lastModifiedTime': lastModifiedTime!, + if (name != null) 'name': name!, + if (salesforceDataCloud != null) + 'salesforceDataCloud': salesforceDataCloud!, + if (spark != null) 'spark': spark!, + }; +} + +/// Represents concrete parameter values for Connector Configuration. +class ConnectorConfiguration { + /// Client authentication. + ConnectorConfigurationAuthentication? authentication; + + /// The ID of the Connector these parameters are configured for. + /// + /// Required. Immutable. + core.String? connectorId; + + /// Specifies how to reach the remote system this connection is pointing to. + ConnectorConfigurationEndpoint? endpoint; + + ConnectorConfiguration({ + this.authentication, + this.connectorId, + this.endpoint, + }); + + ConnectorConfiguration.fromJson(core.Map json_) + : this( + authentication: json_.containsKey('authentication') + ? ConnectorConfigurationAuthentication.fromJson( + json_['authentication'] + as core.Map) + : null, + connectorId: json_.containsKey('connectorId') + ? json_['connectorId'] as core.String + : null, + endpoint: json_.containsKey('endpoint') + ? ConnectorConfigurationEndpoint.fromJson( + json_['endpoint'] as core.Map) + : null, + ); + + core.Map toJson() => { + if (authentication != null) 'authentication': authentication!, + if (connectorId != null) 'connectorId': connectorId!, + if (endpoint != null) 'endpoint': endpoint!, + }; +} + +/// Client authentication. +class ConnectorConfigurationAuthentication { + /// Username/password authentication. + ConnectorConfigurationUsernamePassword? usernamePassword; + + ConnectorConfigurationAuthentication({ + this.usernamePassword, + }); + + ConnectorConfigurationAuthentication.fromJson(core.Map json_) + : this( + usernamePassword: json_.containsKey('usernamePassword') + ? ConnectorConfigurationUsernamePassword.fromJson( + json_['usernamePassword'] + as core.Map) + : null, + ); + + core.Map toJson() => { + if (usernamePassword != null) 'usernamePassword': usernamePassword!, + }; +} + +/// Remote endpoint specification. +class ConnectorConfigurationEndpoint { + /// Host and port in a format of `hostname:port` as defined in + /// https://www.ietf.org/rfc/rfc3986.html#section-3.2.2 and + /// https://www.ietf.org/rfc/rfc3986.html#section-3.2.3. + core.String? hostPort; + + ConnectorConfigurationEndpoint({ + this.hostPort, + }); + + ConnectorConfigurationEndpoint.fromJson(core.Map json_) + : this( + hostPort: json_.containsKey('hostPort') + ? json_['hostPort'] as core.String + : null, + ); + + core.Map toJson() => { + if (hostPort != null) 'hostPort': hostPort!, + }; +} + +/// Secret value parameter. +class ConnectorConfigurationSecret { + /// Input only. + /// + /// Secret as plaintext. + core.String? plaintext; + + /// Indicates type of secret. + /// + /// Can be used to check type of stored secret value even if it's + /// `INPUT_ONLY`. + /// + /// Output only. + /// Possible string values are: + /// - "SECRET_TYPE_UNSPECIFIED" + /// - "PLAINTEXT" + core.String? secretType; + + ConnectorConfigurationSecret({ + this.plaintext, + this.secretType, + }); + + ConnectorConfigurationSecret.fromJson(core.Map json_) + : this( + plaintext: json_.containsKey('plaintext') + ? json_['plaintext'] as core.String + : null, + secretType: json_.containsKey('secretType') + ? json_['secretType'] as core.String + : null, + ); + + core.Map toJson() => { + if (plaintext != null) 'plaintext': plaintext!, + if (secretType != null) 'secretType': secretType!, + }; +} + +/// Username and Password authentication. +class ConnectorConfigurationUsernamePassword { + /// Password. + /// + /// Required. + ConnectorConfigurationSecret? password; + + /// Username. + /// + /// Required. + core.String? username; + + ConnectorConfigurationUsernamePassword({ + this.password, + this.username, + }); + + ConnectorConfigurationUsernamePassword.fromJson(core.Map json_) + : this( + password: json_.containsKey('password') + ? ConnectorConfigurationSecret.fromJson( + json_['password'] as core.Map) + : null, + username: json_.containsKey('username') + ? json_['username'] as core.String + : null, + ); + + core.Map toJson() => { + if (password != null) 'password': password!, + if (username != null) 'username': username!, + }; +} + +/// 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); } +typedef Empty = $Empty; + +/// Represents a textual expression in the Common Expression Language (CEL) +/// syntax. +/// +/// CEL is a C-like expression language. The syntax and semantics of CEL are +/// documented at https://github.com/google/cel-spec. Example (Comparison): +/// title: "Summary size limit" description: "Determines if a summary is less +/// than 100 chars" expression: "document.summary.size() \< 100" Example +/// (Equality): title: "Requestor is owner" description: "Determines if +/// requestor is the document owner" expression: "document.owner == +/// request.auth.claims.email" Example (Logic): title: "Public documents" +/// description: "Determine whether the document should be publicly visible" +/// expression: "document.type != 'private' && document.type != 'internal'" +/// Example (Data Manipulation): title: "Notification string" description: +/// "Create a notification string with a timestamp." expression: "'New message +/// received at ' + string(document.create_time)" The exact variables and +/// functions that may be referenced within an expression are determined by the +/// service that evaluates it. See the service documentation for additional +/// information. +typedef Expr = $Expr; + +/// Request message for `GetIamPolicy` method. +class GetIamPolicyRequest { + /// OPTIONAL: A `GetPolicyOptions` object for specifying options to + /// `GetIamPolicy`. + GetPolicyOptions? options; + + GetIamPolicyRequest({ + this.options, + }); + + GetIamPolicyRequest.fromJson(core.Map json_) + : this( + options: json_.containsKey('options') + ? GetPolicyOptions.fromJson( + json_['options'] as core.Map) + : null, + ); + + core.Map toJson() => { + if (options != null) 'options': options!, + }; +} + +/// Encapsulates settings provided to GetIamPolicy. +typedef GetPolicyOptions = $GetPolicyOptions; + +/// The response for ConnectionService.ListConnections. +class ListConnectionsResponse { + /// List of connections. + core.List? connections; + + /// Next page token. + core.String? nextPageToken; + + ListConnectionsResponse({ + this.connections, + this.nextPageToken, + }); + + ListConnectionsResponse.fromJson(core.Map json_) + : this( + connections: json_.containsKey('connections') + ? (json_['connections'] as core.List) + .map((value) => Connection.fromJson( + value as core.Map)) + .toList() + : null, + nextPageToken: json_.containsKey('nextPageToken') + ? json_['nextPageToken'] as core.String + : null, + ); + + core.Map toJson() => { + if (connections != null) 'connections': connections!, + if (nextPageToken != null) 'nextPageToken': nextPageToken!, + }; +} + +/// Configuration of the Dataproc Metastore Service. +class MetastoreServiceConfig { + /// Resource name of an existing Dataproc Metastore service. + /// + /// Example: * + /// `projects/[project_id]/locations/[region]/services/[service_id]` + /// + /// Optional. + core.String? metastoreService; + + MetastoreServiceConfig({ + this.metastoreService, + }); + + MetastoreServiceConfig.fromJson(core.Map json_) + : this( + metastoreService: json_.containsKey('metastoreService') + ? json_['metastoreService'] as core.String + : null, + ); + + core.Map toJson() => { + if (metastoreService != null) 'metastoreService': metastoreService!, + }; +} + +/// An Identity and Access Management (IAM) policy, which specifies access +/// controls for Google Cloud resources. +/// +/// A `Policy` is a collection of `bindings`. A `binding` binds one or more +/// `members`, or principals, to a single `role`. Principals can be user +/// accounts, service accounts, Google groups, and domains (such as G Suite). A +/// `role` is a named list of permissions; each `role` can be an IAM predefined +/// role or a user-created custom role. For some types of Google Cloud +/// resources, a `binding` can also specify a `condition`, which is a logical +/// expression that allows access to a resource only if the expression evaluates +/// to `true`. A condition can add constraints based on attributes of the +/// request, the resource, or both. To learn which resources support conditions +/// in their IAM policies, see the +/// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). +/// **JSON example:** ``` { "bindings": [ { "role": +/// "roles/resourcemanager.organizationAdmin", "members": [ +/// "user:mike@example.com", "group:admins@example.com", "domain:google.com", +/// "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, { "role": +/// "roles/resourcemanager.organizationViewer", "members": [ +/// "user:eve@example.com" ], "condition": { "title": "expirable access", +/// "description": "Does not grant access after Sep 2020", "expression": +/// "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ], "etag": +/// "BwWWja0YfJA=", "version": 3 } ``` **YAML example:** ``` bindings: - +/// members: - user:mike@example.com - group:admins@example.com - +/// domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com +/// role: roles/resourcemanager.organizationAdmin - members: - +/// user:eve@example.com role: roles/resourcemanager.organizationViewer +/// condition: title: expirable access description: Does not grant access after +/// Sep 2020 expression: request.time < timestamp('2020-10-01T00:00:00.000Z') +/// etag: BwWWja0YfJA= version: 3 ``` For a description of IAM and its features, +/// see the [IAM documentation](https://cloud.google.com/iam/docs/). +class Policy { + /// Specifies cloud audit logging configuration for this policy. + core.List? auditConfigs; + + /// Associates a list of `members`, or principals, with a `role`. + /// + /// Optionally, may specify a `condition` that determines how and when the + /// `bindings` are applied. Each of the `bindings` must contain at least one + /// principal. The `bindings` in a `Policy` can refer to up to 1,500 + /// principals; up to 250 of these principals can be Google groups. Each + /// occurrence of a principal counts towards these limits. For example, if the + /// `bindings` grant 50 different roles to `user:alice@example.com`, and not + /// to any other principal, then you can add another 1,450 principals to the + /// `bindings` in the `Policy`. + core.List? bindings; + + /// `etag` is used for optimistic concurrency control as a way to help prevent + /// simultaneous updates of a policy from overwriting each other. + /// + /// It is strongly suggested that systems make use of the `etag` in the + /// read-modify-write cycle to perform policy updates in order to avoid race + /// conditions: An `etag` is returned in the response to `getIamPolicy`, and + /// systems are expected to put that etag in the request to `setIamPolicy` to + /// ensure that their change will be applied to the same version of the + /// policy. **Important:** If you use IAM Conditions, you must include the + /// `etag` field whenever you call `setIamPolicy`. If you omit this field, + /// then IAM allows you to overwrite a version `3` policy with a version `1` + /// policy, and all of the conditions in the version `3` policy are lost. + core.String? etag; + core.List get etagAsBytes => convert.base64.decode(etag!); + + set etagAsBytes(core.List bytes_) { + etag = + convert.base64.encode(bytes_).replaceAll('/', '_').replaceAll('+', '-'); + } + + /// Specifies the format of the policy. + /// + /// Valid values are `0`, `1`, and `3`. Requests that specify an invalid value + /// are rejected. Any operation that affects conditional role bindings must + /// specify version `3`. This requirement applies to the following operations: + /// * Getting a policy that includes a conditional role binding * Adding a + /// conditional role binding to a policy * Changing a conditional role binding + /// in a policy * Removing any role binding, with or without a condition, from + /// a policy that includes conditions **Important:** If you use IAM + /// Conditions, you must include the `etag` field whenever you call + /// `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a + /// version `3` policy with a version `1` policy, and all of the conditions in + /// the version `3` policy are lost. If a policy does not include any + /// conditions, operations on that policy may specify any valid version or + /// leave the field unset. To learn which resources support conditions in + /// their IAM policies, see the + /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). + core.int? version; + + Policy({ + this.auditConfigs, + this.bindings, + this.etag, + this.version, + }); + + Policy.fromJson(core.Map json_) + : this( + auditConfigs: json_.containsKey('auditConfigs') + ? (json_['auditConfigs'] as core.List) + .map((value) => AuditConfig.fromJson( + value as core.Map)) + .toList() + : null, + bindings: json_.containsKey('bindings') + ? (json_['bindings'] as core.List) + .map((value) => Binding.fromJson( + value as core.Map)) + .toList() + : null, + etag: json_.containsKey('etag') ? json_['etag'] as core.String : null, + version: json_.containsKey('version') + ? json_['version'] as core.int + : null, + ); + + core.Map toJson() => { + if (auditConfigs != null) 'auditConfigs': auditConfigs!, + if (bindings != null) 'bindings': bindings!, + if (etag != null) 'etag': etag!, + if (version != null) 'version': version!, + }; +} + +/// Connection properties specific to Salesforce DataCloud. +/// +/// This is intended for use only by Salesforce partner projects. +class SalesforceDataCloudProperties { + /// A unique Google-owned and Google-generated service account identity for + /// the connection. + /// + /// Output only. + core.String? identity; + + /// The URL to the user's Salesforce DataCloud instance. + core.String? instanceUri; + + /// The ID of the user's Salesforce tenant. + core.String? tenantId; + + SalesforceDataCloudProperties({ + this.identity, + this.instanceUri, + this.tenantId, + }); + + SalesforceDataCloudProperties.fromJson(core.Map json_) + : this( + identity: json_.containsKey('identity') + ? json_['identity'] as core.String + : null, + instanceUri: json_.containsKey('instanceUri') + ? json_['instanceUri'] as core.String + : null, + tenantId: json_.containsKey('tenantId') + ? json_['tenantId'] as core.String + : null, + ); + + core.Map toJson() => { + if (identity != null) 'identity': identity!, + if (instanceUri != null) 'instanceUri': instanceUri!, + if (tenantId != null) 'tenantId': tenantId!, + }; +} + +/// Request message for `SetIamPolicy` method. +class SetIamPolicyRequest { + /// REQUIRED: The complete policy to be applied to the `resource`. + /// + /// The size of the policy is limited to a few 10s of KB. An empty policy is a + /// valid policy but certain Google Cloud services (such as Projects) might + /// reject them. + Policy? policy; + + /// OPTIONAL: A FieldMask specifying which fields of the policy to modify. + /// + /// Only the fields in the mask will be modified. If no mask is provided, the + /// following default mask is used: `paths: "bindings, etag"` + core.String? updateMask; + + SetIamPolicyRequest({ + this.policy, + this.updateMask, + }); + + SetIamPolicyRequest.fromJson(core.Map json_) + : this( + policy: json_.containsKey('policy') + ? Policy.fromJson( + json_['policy'] as core.Map) + : null, + updateMask: json_.containsKey('updateMask') + ? json_['updateMask'] as core.String + : null, + ); + + core.Map toJson() => { + if (policy != null) 'policy': policy!, + if (updateMask != null) 'updateMask': updateMask!, + }; +} + +/// Configuration of the Spark History Server. +class SparkHistoryServerConfig { + /// Resource name of an existing Dataproc Cluster to act as a Spark History + /// Server for the connection. + /// + /// Example: * + /// `projects/[project_id]/regions/[region]/clusters/[cluster_name]` + /// + /// Optional. + core.String? dataprocCluster; + + SparkHistoryServerConfig({ + this.dataprocCluster, + }); + + SparkHistoryServerConfig.fromJson(core.Map json_) + : this( + dataprocCluster: json_.containsKey('dataprocCluster') + ? json_['dataprocCluster'] as core.String + : null, + ); + + core.Map toJson() => { + if (dataprocCluster != null) 'dataprocCluster': dataprocCluster!, + }; +} + +/// Container for connection properties to execute stored procedures for Apache +/// Spark. +class SparkProperties { + /// Dataproc Metastore Service configuration for the connection. + /// + /// Optional. + MetastoreServiceConfig? metastoreServiceConfig; + + /// The account ID of the service created for the purpose of this connection. + /// + /// The service account does not have any permissions associated with it when + /// it is created. After creation, customers delegate permissions to the + /// service account. When the connection is used in the context of a stored + /// procedure for Apache Spark in BigQuery, the service account is used to + /// connect to the desired resources in Google Cloud. The account ID is in the + /// form of: bqcx--@gcp-sa-bigquery-consp.iam.gserviceaccount.com + /// + /// Output only. + core.String? serviceAccountId; + + /// Spark History Server configuration for the connection. + /// + /// Optional. + SparkHistoryServerConfig? sparkHistoryServerConfig; + + SparkProperties({ + this.metastoreServiceConfig, + this.serviceAccountId, + this.sparkHistoryServerConfig, + }); + + SparkProperties.fromJson(core.Map json_) + : this( + metastoreServiceConfig: json_.containsKey('metastoreServiceConfig') + ? MetastoreServiceConfig.fromJson(json_['metastoreServiceConfig'] + as core.Map) + : null, + serviceAccountId: json_.containsKey('serviceAccountId') + ? json_['serviceAccountId'] as core.String + : null, + sparkHistoryServerConfig: + json_.containsKey('sparkHistoryServerConfig') + ? SparkHistoryServerConfig.fromJson( + json_['sparkHistoryServerConfig'] + as core.Map) + : null, + ); + + core.Map toJson() => { + if (metastoreServiceConfig != null) + 'metastoreServiceConfig': metastoreServiceConfig!, + if (serviceAccountId != null) 'serviceAccountId': serviceAccountId!, + if (sparkHistoryServerConfig != null) + 'sparkHistoryServerConfig': sparkHistoryServerConfig!, + }; +} + +/// Request message for `TestIamPermissions` method. +typedef TestIamPermissionsRequest = $TestIamPermissionsRequest00; + +/// Response message for `TestIamPermissions` method. +typedef TestIamPermissionsResponse = $PermissionsResponse; diff --git a/generated/googleapis/lib/bigquerydatapolicy/v1.dart b/generated/googleapis/lib/bigquerydatapolicy/v1.dart index db7bb2b40..6b6ed62a2 100644 --- a/generated/googleapis/lib/bigquerydatapolicy/v1.dart +++ b/generated/googleapis/lib/bigquerydatapolicy/v1.dart @@ -582,14 +582,31 @@ class Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -598,12 +615,19 @@ class Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; Binding({ diff --git a/generated/googleapis/lib/bigquerydatatransfer/v1.dart b/generated/googleapis/lib/bigquerydatatransfer/v1.dart index ba61d3996..3095dd716 100644 --- a/generated/googleapis/lib/bigquerydatatransfer/v1.dart +++ b/generated/googleapis/lib/bigquerydatatransfer/v1.dart @@ -418,6 +418,53 @@ class ProjectsLocationsResource { return ListLocationsResponse.fromJson( response_ as core.Map); } + + /// Unenroll data sources in a user project. + /// + /// This allows users to remove transfer configurations for these data + /// sources. They will no longer appear in the ListDataSources RPC and will + /// also no longer appear in the + /// [BigQuery UI](https://console.cloud.google.com/bigquery). Data transfers + /// configurations of unenrolled data sources will not be scheduled. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [name] - The name of the project resource in the form: + /// `projects/{project_id}` + /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Empty]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future unenrollDataSources( + UnenrollDataSourcesRequest request, + core.String name, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':unenrollDataSources'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Empty.fromJson(response_ as core.Map); + } } class ProjectsLocationsDataSourcesResource { @@ -2515,14 +2562,14 @@ class ScheduleOptions { /// /// A transfer run cannot be scheduled at or after the end time. The end time /// can be changed at any moment. The time when a data transfer can be - /// trigerred manually is not limited by this option. + /// triggered manually is not limited by this option. core.String? endTime; /// Specifies time to start scheduling transfer runs. /// /// The first run will be scheduled at or after the start time according to a /// recurrence pattern defined in the schedule string. The start time can be - /// changed at any moment. The time when a data transfer can be trigerred + /// changed at any moment. The time when a data transfer can be triggered /// manually is not limited by this option. core.String? startTime; @@ -2757,7 +2804,7 @@ class TransferConfig { /// Is this config disabled. /// - /// When set to true, no runs are scheduled for a given transfer. + /// When set to true, no runs will be scheduled for this transfer config. core.bool? disabled; /// User specified display name for the data transfer. @@ -2794,7 +2841,7 @@ class TransferConfig { /// associated with this transfer config finish. /// /// The format for specifying a pubsub topic is: - /// `projects/{project}/topics/{topic}` + /// `projects/{project_id}/topics/{topic_id}` core.String? notificationPubsubTopic; /// Information about the user whose credentials are used to transfer data. @@ -3045,7 +3092,7 @@ class TransferRun { /// finishes. /// /// The format for specifying a pubsub topic is: - /// `projects/{project}/topics/{topic}` + /// `projects/{project_id}/topics/{topic_id}` /// /// Output only. core.String? notificationPubsubTopic; @@ -3197,6 +3244,32 @@ class TransferRun { }; } +/// A request to unenroll a set of data sources so they are no longer visible in +/// the BigQuery UI's `Transfer` tab. +class UnenrollDataSourcesRequest { + /// Data sources that are unenrolled. + /// + /// It is required to provide at least one data source id. + core.List? dataSourceIds; + + UnenrollDataSourcesRequest({ + this.dataSourceIds, + }); + + UnenrollDataSourcesRequest.fromJson(core.Map json_) + : this( + dataSourceIds: json_.containsKey('dataSourceIds') + ? (json_['dataSourceIds'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + ); + + core.Map toJson() => { + if (dataSourceIds != null) 'dataSourceIds': dataSourceIds!, + }; +} + /// Information about a user. class UserInfo { /// E-mail address of the user. diff --git a/generated/googleapis/lib/bigtableadmin/v2.dart b/generated/googleapis/lib/bigtableadmin/v2.dart index e817e7586..e92fb1db9 100644 --- a/generated/googleapis/lib/bigtableadmin/v2.dart +++ b/generated/googleapis/lib/bigtableadmin/v2.dart @@ -104,89 +104,6 @@ class OperationsResource { OperationsResource(commons.ApiRequester client) : _requester = client; - /// Starts asynchronous cancellation on a long-running operation. - /// - /// The server makes a best effort to cancel the operation, but success is not - /// guaranteed. If the server doesn't support this method, it returns - /// `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation - /// or other methods to check whether the cancellation succeeded or whether - /// the operation completed despite cancellation. On successful cancellation, - /// the operation is not deleted; instead, it becomes an operation with an - /// Operation.error value with a google.rpc.Status.code of 1, corresponding to - /// `Code.CANCELLED`. - /// - /// Request parameters: - /// - /// [name] - The name of the operation resource to be cancelled. - /// Value must have pattern `^operations/.*$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Empty]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future cancel( - core.String name, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v2/' + core.Uri.encodeFull('$name') + ':cancel'; - - final response_ = await _requester.request( - url_, - 'POST', - queryParams: queryParams_, - ); - return Empty.fromJson(response_ as core.Map); - } - - /// Deletes a long-running operation. - /// - /// This method indicates that the client is no longer interested in the - /// operation result. It does not cancel the operation. If the server doesn't - /// support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. - /// - /// Request parameters: - /// - /// [name] - The name of the operation resource to be deleted. - /// Value must have pattern `^operations/.*$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Empty]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future delete( - core.String name, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v2/' + core.Uri.encodeFull('$name'); - - final response_ = await _requester.request( - url_, - 'DELETE', - queryParams: queryParams_, - ); - return Empty.fromJson(response_ as core.Map); - } - /// Gets the latest state of a long-running operation. /// /// Clients can use this method to poll the operation result at intervals as @@ -1925,7 +1842,10 @@ class ProjectsInstancesTablesResource { /// Permanently drop/delete a row range from a specified table. /// /// The request can specify whether to delete all rows in a table, or only - /// those that match a particular prefix. + /// those that match a particular prefix. Note that row key prefixes used here + /// are treated as service data. For more information about how service data + /// is handled, see the + /// [Google Cloud Privacy Notice](https://cloud.google.com/terms/cloud-privacy-notice). /// /// [request] - The metadata request object. /// @@ -2479,41 +2399,6 @@ class ProjectsLocationsResource { ProjectsLocationsResource(commons.ApiRequester client) : _requester = client; - /// Gets information about a location. - /// - /// Request parameters: - /// - /// [name] - Resource name for the location. - /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Location]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String name, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v2/' + core.Uri.encodeFull('$name'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return Location.fromJson(response_ as core.Map); - } - /// Lists information about the supported locations for this service. /// /// Request parameters: @@ -2842,7 +2727,7 @@ class Backup { /// Name of the backup from which this backup was copied. /// /// If a backup is not created by copying a backup, this field will be empty. - /// Values are of the form: projects//instances//backups/. + /// Values are of the form: projects//instances//clusters//backups/ /// /// Output only. core.String? sourceBackup; @@ -2944,7 +2829,7 @@ class BackupInfo { /// Name of the backup from which this backup was copied. /// /// If a backup is not created by copying a backup, this field will be empty. - /// Values are of the form: projects//instances//backups/. + /// Values are of the form: projects//instances//clusters//backups/ /// /// Output only. core.String? sourceBackup; @@ -3029,14 +2914,31 @@ class Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -3045,12 +2947,19 @@ class Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; Binding({ @@ -3113,14 +3022,8 @@ class CheckConsistencyRequest { /// Required. core.String? consistencyToken; - /// Checks that reads using an app profile with `StandardIsolation` can see - /// all writes committed before the token was created, even if the read and - /// write target different clusters. - StandardReadRemoteWrites? standardReadRemoteWrites; - CheckConsistencyRequest({ this.consistencyToken, - this.standardReadRemoteWrites, }); CheckConsistencyRequest.fromJson(core.Map json_) @@ -3128,18 +3031,10 @@ class CheckConsistencyRequest { consistencyToken: json_.containsKey('consistencyToken') ? json_['consistencyToken'] as core.String : null, - standardReadRemoteWrites: - json_.containsKey('standardReadRemoteWrites') - ? StandardReadRemoteWrites.fromJson( - json_['standardReadRemoteWrites'] - as core.Map) - : null, ); core.Map toJson() => { if (consistencyToken != null) 'consistencyToken': consistencyToken!, - if (standardReadRemoteWrites != null) - 'standardReadRemoteWrites': standardReadRemoteWrites!, }; } @@ -4542,6 +4437,11 @@ class Modification { /// Request message for /// google.bigtable.admin.v2.BigtableTableAdmin.ModifyColumnFamilies class ModifyColumnFamiliesRequest { + /// If true, ignore safety checks when modifying the column families. + /// + /// Optional. + core.bool? ignoreWarnings; + /// Modifications to be atomically applied to the specified table's families. /// /// Entries are applied in order, meaning that earlier modifications can be @@ -4552,11 +4452,15 @@ class ModifyColumnFamiliesRequest { core.List? modifications; ModifyColumnFamiliesRequest({ + this.ignoreWarnings, this.modifications, }); ModifyColumnFamiliesRequest.fromJson(core.Map json_) : this( + ignoreWarnings: json_.containsKey('ignoreWarnings') + ? json_['ignoreWarnings'] as core.bool + : null, modifications: json_.containsKey('modifications') ? (json_['modifications'] as core.List) .map((value) => Modification.fromJson( @@ -4566,6 +4470,7 @@ class ModifyColumnFamiliesRequest { ); core.Map toJson() => { + if (ignoreWarnings != null) 'ignoreWarnings': ignoreWarnings!, if (modifications != null) 'modifications': modifications!, }; } @@ -4997,10 +4902,6 @@ class StandardIsolation { }; } -/// Checks that all writes before the consistency token was generated is -/// replicated in every cluster and readable. -typedef StandardReadRemoteWrites = $Empty; - /// The `Status` type defines a logical error model that is suitable for /// different programming environments, including REST APIs and RPC APIs. /// diff --git a/generated/googleapis/lib/binaryauthorization/v1.dart b/generated/googleapis/lib/binaryauthorization/v1.dart index ac1530639..663c8bbb0 100644 --- a/generated/googleapis/lib/binaryauthorization/v1.dart +++ b/generated/googleapis/lib/binaryauthorization/v1.dart @@ -24,6 +24,8 @@ /// - [ProjectsResource] /// - [ProjectsAttestorsResource] /// - [ProjectsPlatformsResource] +/// - [ProjectsPlatformsGkeResource] +/// - [ProjectsPlatformsGkePoliciesResource] /// - [ProjectsPlatformsPoliciesResource] /// - [ProjectsPolicyResource] /// - [SystempolicyResource] @@ -588,12 +590,78 @@ class ProjectsAttestorsResource { class ProjectsPlatformsResource { final commons.ApiRequester _requester; + ProjectsPlatformsGkeResource get gke => + ProjectsPlatformsGkeResource(_requester); ProjectsPlatformsPoliciesResource get policies => ProjectsPlatformsPoliciesResource(_requester); ProjectsPlatformsResource(commons.ApiRequester client) : _requester = client; } +class ProjectsPlatformsGkeResource { + final commons.ApiRequester _requester; + + ProjectsPlatformsGkePoliciesResource get policies => + ProjectsPlatformsGkePoliciesResource(_requester); + + ProjectsPlatformsGkeResource(commons.ApiRequester client) + : _requester = client; +} + +class ProjectsPlatformsGkePoliciesResource { + final commons.ApiRequester _requester; + + ProjectsPlatformsGkePoliciesResource(commons.ApiRequester client) + : _requester = client; + + /// Evaluates a Kubernetes object versus a GKE platform policy. + /// + /// Returns `NOT_FOUND` if the policy doesn't exist, `INVALID_ARGUMENT` if the + /// policy or request is malformed and `PERMISSION_DENIED` if the client does + /// not have sufficient permissions. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [name] - Required. The name of the platform policy to evaluate in the + /// format `projects / * /platforms / * /policies / * `. + /// Value must have pattern + /// `^projects/\[^/\]+/platforms/gke/policies/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [EvaluateGkePolicyResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future evaluate( + EvaluateGkePolicyRequest request, + core.String name, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':evaluate'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return EvaluateGkePolicyResponse.fromJson( + response_ as core.Map); + } +} + class ProjectsPlatformsPoliciesResource { final commons.ApiRequester _requester; @@ -1126,6 +1194,27 @@ class AdmissionWhitelistPattern { }; } +/// Result of evaluating an image name allowlist. +class AllowlistResult { + /// The allowlist pattern that the image matched. + core.String? matchedPattern; + + AllowlistResult({ + this.matchedPattern, + }); + + AllowlistResult.fromJson(core.Map json_) + : this( + matchedPattern: json_.containsKey('matchedPattern') + ? json_['matchedPattern'] as core.String + : null, + ); + + core.Map toJson() => { + if (matchedPattern != null) 'matchedPattern': matchedPattern!, + }; +} + /// An attestation authenticator that will be used to verify attestations. /// /// Typically this is just a set of public keys. Conceptually, an authenticator @@ -1248,8 +1337,11 @@ class AttestationOccurrence { /// Specifies the locations for fetching the provenance attestations. class AttestationSource { - /// The IDs of the GCP projects storing the SLSA attestations as Container - /// Analysis Occurrences. + /// The IDs of the Google Cloud projects that store the SLSA attestations as + /// Container Analysis Occurrences, in the format `projects/[PROJECT_ID]`. + /// + /// Maximum number of `container_analysis_attestation_projects` allowed in + /// each `AttestationSource` is 10. core.List? containerAnalysisAttestationProjects; AttestationSource({ @@ -1445,14 +1537,31 @@ class Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -1461,12 +1570,19 @@ class Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; Binding({ @@ -1534,6 +1650,14 @@ class Check { /// Optional. ImageFreshnessCheck? imageFreshnessCheck; + /// Require that an image was signed by Cosign with a trusted key. + /// + /// This check requires that both the image and signature are stored in + /// Artifact Registry. + /// + /// Optional. + SigstoreSignatureCheck? sigstoreSignatureCheck; + /// Require a SimpleSigning-type attestation for every image in the /// deployment. /// @@ -1563,6 +1687,7 @@ class Check { this.displayName, this.imageAllowlist, this.imageFreshnessCheck, + this.sigstoreSignatureCheck, this.simpleSigningAttestationCheck, this.slsaCheck, this.trustedDirectoryCheck, @@ -1585,6 +1710,10 @@ class Check { ? ImageFreshnessCheck.fromJson(json_['imageFreshnessCheck'] as core.Map) : null, + sigstoreSignatureCheck: json_.containsKey('sigstoreSignatureCheck') + ? SigstoreSignatureCheck.fromJson(json_['sigstoreSignatureCheck'] + as core.Map) + : null, simpleSigningAttestationCheck: json_.containsKey('simpleSigningAttestationCheck') ? SimpleSigningAttestationCheck.fromJson( @@ -1611,6 +1740,8 @@ class Check { if (imageAllowlist != null) 'imageAllowlist': imageAllowlist!, if (imageFreshnessCheck != null) 'imageFreshnessCheck': imageFreshnessCheck!, + if (sigstoreSignatureCheck != null) + 'sigstoreSignatureCheck': sigstoreSignatureCheck!, if (simpleSigningAttestationCheck != null) 'simpleSigningAttestationCheck': simpleSigningAttestationCheck!, if (slsaCheck != null) 'slsaCheck': slsaCheck!, @@ -1621,6 +1752,91 @@ class Check { }; } +/// Result of evaluating one check. +class CheckResult { + /// If the image was exempted by an allow_pattern in the check, contains the + /// pattern that the image name matched. + AllowlistResult? allowlistResult; + + /// The name of the check. + core.String? displayName; + + /// If a check was evaluated, contains the result of the check. + EvaluationResult? evaluationResult; + + /// Explanation of this check result. + core.String? explanation; + + /// The index of the check. + core.String? index; + + /// The type of the check. + core.String? type; + + CheckResult({ + this.allowlistResult, + this.displayName, + this.evaluationResult, + this.explanation, + this.index, + this.type, + }); + + CheckResult.fromJson(core.Map json_) + : this( + allowlistResult: json_.containsKey('allowlistResult') + ? AllowlistResult.fromJson(json_['allowlistResult'] + as core.Map) + : null, + displayName: json_.containsKey('displayName') + ? json_['displayName'] as core.String + : null, + evaluationResult: json_.containsKey('evaluationResult') + ? EvaluationResult.fromJson(json_['evaluationResult'] + as core.Map) + : null, + explanation: json_.containsKey('explanation') + ? json_['explanation'] as core.String + : null, + index: + json_.containsKey('index') ? json_['index'] as core.String : null, + type: json_.containsKey('type') ? json_['type'] as core.String : null, + ); + + core.Map toJson() => { + if (allowlistResult != null) 'allowlistResult': allowlistResult!, + if (displayName != null) 'displayName': displayName!, + if (evaluationResult != null) 'evaluationResult': evaluationResult!, + if (explanation != null) 'explanation': explanation!, + if (index != null) 'index': index!, + if (type != null) 'type': type!, + }; +} + +/// Result of evaluating one or more checks. +class CheckResults { + /// Per-check details. + core.List? results; + + CheckResults({ + this.results, + }); + + CheckResults.fromJson(core.Map json_) + : this( + results: json_.containsKey('results') + ? (json_['results'] as core.List) + .map((value) => CheckResult.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (results != null) 'results': results!, + }; +} + /// A conjunction of policy checks, scoped to a particular namespace or /// Kubernetes service account. /// @@ -1699,6 +1915,72 @@ class CheckSet { }; } +/// Result of evaluating one check set. +class CheckSetResult { + /// If the image was exempted by an allow_pattern in the check set, contains + /// the pattern that the image name matched. + AllowlistResult? allowlistResult; + + /// If checks were evaluated, contains the results of evaluating each check. + CheckResults? checkResults; + + /// The name of the check set. + core.String? displayName; + + /// Explanation of this check set result. + /// + /// Only populated if no checks were evaluated. + core.String? explanation; + + /// The index of the check set. + core.String? index; + + /// The scope of the check set. + Scope? scope; + + CheckSetResult({ + this.allowlistResult, + this.checkResults, + this.displayName, + this.explanation, + this.index, + this.scope, + }); + + CheckSetResult.fromJson(core.Map json_) + : this( + allowlistResult: json_.containsKey('allowlistResult') + ? AllowlistResult.fromJson(json_['allowlistResult'] + as core.Map) + : null, + checkResults: json_.containsKey('checkResults') + ? CheckResults.fromJson( + json_['checkResults'] as core.Map) + : null, + displayName: json_.containsKey('displayName') + ? json_['displayName'] as core.String + : null, + explanation: json_.containsKey('explanation') + ? json_['explanation'] as core.String + : null, + index: + json_.containsKey('index') ? json_['index'] as core.String : null, + scope: json_.containsKey('scope') + ? Scope.fromJson( + json_['scope'] as core.Map) + : null, + ); + + core.Map toJson() => { + if (allowlistResult != null) 'allowlistResult': allowlistResult!, + if (checkResults != null) 'checkResults': checkResults!, + if (displayName != null) 'displayName': displayName!, + if (explanation != null) 'explanation': explanation!, + if (index != null) 'index': index!, + if (scope != null) 'scope': scope!, + }; +} + /// A generic empty message that you can re-use to avoid defining duplicated /// empty messages in your APIs. /// @@ -1707,6 +1989,98 @@ class CheckSet { /// (google.protobuf.Empty); } typedef Empty = $Empty; +/// Request message for PlatformPolicyEvaluationService.EvaluateGkePolicy. +class EvaluateGkePolicyRequest { + /// JSON or YAML blob representing a Kubernetes resource. + /// + /// Required. + /// + /// The values for Object must be JSON objects. It can consist of `num`, + /// `String`, `bool` and `null` as well as `Map` and `List` values. + core.Map? resource; + + EvaluateGkePolicyRequest({ + this.resource, + }); + + EvaluateGkePolicyRequest.fromJson(core.Map json_) + : this( + resource: json_.containsKey('resource') + ? json_['resource'] as core.Map + : null, + ); + + core.Map toJson() => { + if (resource != null) 'resource': resource!, + }; +} + +/// Response message for PlatformPolicyEvaluationService.EvaluateGkePolicy. +class EvaluateGkePolicyResponse { + /// Evaluation result for each Pod contained in the request. + core.List? results; + + /// The result of evaluating all Pods in the request. + /// Possible string values are: + /// - "VERDICT_UNSPECIFIED" : Not specified. This should never be used. + /// - "CONFORMANT" : All Pods in the request conform to the policy. + /// - "NON_CONFORMANT" : At least one Pod does not conform to the policy. + /// - "ERROR" : Encountered at least one error evaluating a Pod and all other + /// Pods conform to the policy. Non-conformance has precedence over errors. + core.String? verdict; + + EvaluateGkePolicyResponse({ + this.results, + this.verdict, + }); + + EvaluateGkePolicyResponse.fromJson(core.Map json_) + : this( + results: json_.containsKey('results') + ? (json_['results'] as core.List) + .map((value) => PodResult.fromJson( + value as core.Map)) + .toList() + : null, + verdict: json_.containsKey('verdict') + ? json_['verdict'] as core.String + : null, + ); + + core.Map toJson() => { + if (results != null) 'results': results!, + if (verdict != null) 'verdict': verdict!, + }; +} + +/// Result of evaluating one check. +class EvaluationResult { + /// The result of evaluating this check. + /// Possible string values are: + /// - "CHECK_VERDICT_UNSPECIFIED" : Not specified. This should never be used. + /// - "CONFORMANT" : The check was successfully evaluated and the image + /// satisfied the check. + /// - "NON_CONFORMANT" : The check was successfully evaluated and the image + /// did not satisfy the check. + /// - "ERROR" : The check was not successfully evaluated. + core.String? verdict; + + EvaluationResult({ + this.verdict, + }); + + EvaluationResult.fromJson(core.Map json_) + : this( + verdict: json_.containsKey('verdict') + ? json_['verdict'] as core.String + : null, + ); + + core.Map toJson() => { + if (verdict != null) 'verdict': verdict!, + }; +} + /// Represents a textual expression in the Common Expression Language (CEL) /// syntax. /// @@ -1951,6 +2325,72 @@ class ImageFreshnessCheck { }; } +/// Result of evaluating one image. +class ImageResult { + /// If the image was exempted by a top-level allow_pattern, contains the + /// allowlist pattern that the image name matched. + AllowlistResult? allowlistResult; + + /// If a check set was evaluated, contains the result of the check set. + /// + /// Empty if there were no check sets. + CheckSetResult? checkSetResult; + + /// Explanation of this image result. + /// + /// Only populated if no check sets were evaluated. + core.String? explanation; + + /// Image URI from the request. + core.String? imageUri; + + /// The result of evaluating this image. + /// Possible string values are: + /// - "IMAGE_VERDICT_UNSPECIFIED" : Not specified. This should never be used. + /// - "CONFORMANT" : Image conforms to the policy. + /// - "NON_CONFORMANT" : Image does not conform to the policy. + /// - "ERROR" : Error evaluating the image. Non-conformance has precedence + /// over errors. + core.String? verdict; + + ImageResult({ + this.allowlistResult, + this.checkSetResult, + this.explanation, + this.imageUri, + this.verdict, + }); + + ImageResult.fromJson(core.Map json_) + : this( + allowlistResult: json_.containsKey('allowlistResult') + ? AllowlistResult.fromJson(json_['allowlistResult'] + as core.Map) + : null, + checkSetResult: json_.containsKey('checkSetResult') + ? CheckSetResult.fromJson(json_['checkSetResult'] + as core.Map) + : null, + explanation: json_.containsKey('explanation') + ? json_['explanation'] as core.String + : null, + imageUri: json_.containsKey('imageUri') + ? json_['imageUri'] as core.String + : null, + verdict: json_.containsKey('verdict') + ? json_['verdict'] as core.String + : null, + ); + + core.Map toJson() => { + if (allowlistResult != null) 'allowlistResult': allowlistResult!, + if (checkSetResult != null) 'checkSetResult': checkSetResult!, + if (explanation != null) 'explanation': explanation!, + if (imageUri != null) 'imageUri': imageUri!, + if (verdict != null) 'verdict': verdict!, + }; +} + typedef Jwt = $Jwt; /// Response message for BinauthzManagementServiceV1.ListAttestors. @@ -2203,6 +2643,72 @@ class PlatformPolicy { }; } +/// Result of evaluating the whole GKE policy for one Pod. +class PodResult { + /// Per-image details. + core.List? imageResults; + + /// The Kubernetes namespace of the Pod. + core.String? kubernetesNamespace; + + /// The Kubernetes service account of the Pod. + core.String? kubernetesServiceAccount; + + /// The name of the Pod. + core.String? podName; + + /// The result of evaluating this Pod. + /// Possible string values are: + /// - "POD_VERDICT_UNSPECIFIED" : Not specified. This should never be used. + /// - "CONFORMANT" : All images conform to the policy. + /// - "NON_CONFORMANT" : At least one image does not conform to the policy. + /// - "ERROR" : Encountered at least one error evaluating an image and all + /// other images with non-error verdicts conform to the policy. + /// Non-conformance has precedence over errors. + core.String? verdict; + + PodResult({ + this.imageResults, + this.kubernetesNamespace, + this.kubernetesServiceAccount, + this.podName, + this.verdict, + }); + + PodResult.fromJson(core.Map json_) + : this( + imageResults: json_.containsKey('imageResults') + ? (json_['imageResults'] as core.List) + .map((value) => ImageResult.fromJson( + value as core.Map)) + .toList() + : null, + kubernetesNamespace: json_.containsKey('kubernetesNamespace') + ? json_['kubernetesNamespace'] as core.String + : null, + kubernetesServiceAccount: + json_.containsKey('kubernetesServiceAccount') + ? json_['kubernetesServiceAccount'] as core.String + : null, + podName: json_.containsKey('podName') + ? json_['podName'] as core.String + : null, + verdict: json_.containsKey('verdict') + ? json_['verdict'] as core.String + : null, + ); + + core.Map toJson() => { + if (imageResults != null) 'imageResults': imageResults!, + if (kubernetesNamespace != null) + 'kubernetesNamespace': kubernetesNamespace!, + if (kubernetesServiceAccount != null) + 'kubernetesServiceAccount': kubernetesServiceAccount!, + if (podName != null) 'podName': podName!, + if (verdict != null) 'verdict': verdict!, + }; +} + /// A policy for container image binary authorization. class Policy { /// Admission policy allowlisting. @@ -2495,6 +3001,133 @@ class SetIamPolicyRequest { /// message that holds this signature). typedef Signature = $Signature; +/// A Sigstore authority, used to verify signatures that are created by +/// Sigstore. +/// +/// An authority is analogous to an attestation authenticator, verifying that a +/// signature is valid or invalid. +class SigstoreAuthority { + /// A user-provided name for this `SigstoreAuthority`. + /// + /// This field has no effect on the policy evaluation behavior except to + /// improve readability of messages in evaluation results. + /// + /// Optional. + core.String? displayName; + + /// A simple set of public keys. + /// + /// A signature is considered valid if any keys in the set validate the + /// signature. + /// + /// Required. + SigstorePublicKeySet? publicKeySet; + + SigstoreAuthority({ + this.displayName, + this.publicKeySet, + }); + + SigstoreAuthority.fromJson(core.Map json_) + : this( + displayName: json_.containsKey('displayName') + ? json_['displayName'] as core.String + : null, + publicKeySet: json_.containsKey('publicKeySet') + ? SigstorePublicKeySet.fromJson( + json_['publicKeySet'] as core.Map) + : null, + ); + + core.Map toJson() => { + if (displayName != null) 'displayName': displayName!, + if (publicKeySet != null) 'publicKeySet': publicKeySet!, + }; +} + +/// A Sigstore public key. +/// +/// `SigstorePublicKey` is the public key material used to authenticate Sigstore +/// signatures. +class SigstorePublicKey { + /// The public key material in PEM format. + core.String? publicKeyPem; + + SigstorePublicKey({ + this.publicKeyPem, + }); + + SigstorePublicKey.fromJson(core.Map json_) + : this( + publicKeyPem: json_.containsKey('publicKeyPem') + ? json_['publicKeyPem'] as core.String + : null, + ); + + core.Map toJson() => { + if (publicKeyPem != null) 'publicKeyPem': publicKeyPem!, + }; +} + +/// A bundle of Sigstore public keys, used to verify Sigstore signatures. +/// +/// A signature is authenticated by a `SigstorePublicKeySet` if any of the keys +/// verify it. +class SigstorePublicKeySet { + /// `public_keys` must have at least one entry. + /// + /// Required. + core.List? publicKeys; + + SigstorePublicKeySet({ + this.publicKeys, + }); + + SigstorePublicKeySet.fromJson(core.Map json_) + : this( + publicKeys: json_.containsKey('publicKeys') + ? (json_['publicKeys'] as core.List) + .map((value) => SigstorePublicKey.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (publicKeys != null) 'publicKeys': publicKeys!, + }; +} + +/// A Sigstore signature check, which verifies the Sigstore signature associated +/// with an image. +class SigstoreSignatureCheck { + /// The authorities required by this check to verify the signature. + /// + /// A signature only needs to be verified by one authority to pass the check. + /// + /// Required. + core.List? sigstoreAuthorities; + + SigstoreSignatureCheck({ + this.sigstoreAuthorities, + }); + + SigstoreSignatureCheck.fromJson(core.Map json_) + : this( + sigstoreAuthorities: json_.containsKey('sigstoreAuthorities') + ? (json_['sigstoreAuthorities'] as core.List) + .map((value) => SigstoreAuthority.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (sigstoreAuthorities != null) + 'sigstoreAuthorities': sigstoreAuthorities!, + }; +} + /// Require a signed [DSSE](https://github.com/secure-systems-lab/dsse) /// attestation with type SimpleSigning. class SimpleSigningAttestationCheck { @@ -2510,14 +3143,16 @@ class SimpleSigningAttestationCheck { core.List? attestationAuthenticators; /// The projects where attestations are stored as Container Analysis - /// Occurrences. + /// Occurrences, in the format `projects/[PROJECT_ID]`. /// /// Only one attestation needs to successfully verify an image for this check /// to pass, so a single verified attestation found in any of /// `container_analysis_attestation_projects` is sufficient for the check to /// pass. When fetching Occurrences from Container Analysis, only - /// 'AttestationOccurrence' kinds are considered. In the future, additional - /// Occurrence kinds may be added to the query. + /// `AttestationOccurrence` kinds are considered. In the future, additional + /// Occurrence kinds may be added to the query. Maximum number of + /// `container_analysis_attestation_projects` allowed in each + /// `SimpleSigningAttestationCheck` is 10. /// /// Optional. core.List? containerAnalysisAttestationProjects; @@ -2908,7 +3543,9 @@ class VulnerabilityCheck { /// be made for each project to fetch vulnerabilities, and all valid /// vulnerabilities will be used to check against the vulnerability policy. If /// no valid scan is found in all projects configured here, an error will be - /// returned for the check. + /// returned for the check. Maximum number of + /// `container_analysis_vulnerability_projects` allowed in each + /// `VulnerabilityCheck` is 10. /// /// Optional. core.List? containerAnalysisVulnerabilityProjects; diff --git a/generated/googleapis/lib/blockchainnodeengine/v1.dart b/generated/googleapis/lib/blockchainnodeengine/v1.dart index bdbed87be..26ef5d555 100644 --- a/generated/googleapis/lib/blockchainnodeengine/v1.dart +++ b/generated/googleapis/lib/blockchainnodeengine/v1.dart @@ -658,7 +658,11 @@ class BlockchainNode { /// When true, the node is only accessible via Private Service Connect; no /// public endpoints are exposed. /// - /// Otherwise, the node is only accessible via public endpoints. See + /// Otherwise, the node is only accessible via public endpoints. Warning: + /// Private Service Connect enabled nodes may require a manual migration + /// effort to remain compatible with future versions of the product. If this + /// feature is enabled, you will be notified of these changes along with any + /// required action to avoid disruption. See /// https://cloud.google.com/vpc/docs/private-service-connect. /// /// Optional. @@ -842,16 +846,6 @@ class EthereumDetails { /// Immutable. core.bool? apiEnableDebug; - /// An Ethereum address which the beacon client will send fee rewards to if no - /// recipient is configured in the validator client. - /// - /// See https://lighthouse-book.sigmaprime.io/suggested-fee-recipient.html or - /// https://docs.prylabs.network/docs/execution-node/fee-recipient for - /// examples of how this is used. Note that while this is often described as - /// "suggested", as we run the execution node we can trust the execution node, - /// and therefore this is considered enforced. - core.String? beaconFeeRecipient; - /// The consensus client. /// /// Immutable. @@ -911,16 +905,20 @@ class EthereumDetails { /// blockchain's history state data dating back to the Genesis Block. core.String? nodeType; + /// Configuration for validator-related parameters on the beacon client, and + /// for any GCP-managed validator client. + ValidatorConfig? validatorConfig; + EthereumDetails({ this.additionalEndpoints, this.apiEnableAdmin, this.apiEnableDebug, - this.beaconFeeRecipient, this.consensusClient, this.executionClient, this.gethDetails, this.network, this.nodeType, + this.validatorConfig, }); EthereumDetails.fromJson(core.Map json_) @@ -935,9 +933,6 @@ class EthereumDetails { apiEnableDebug: json_.containsKey('apiEnableDebug') ? json_['apiEnableDebug'] as core.bool : null, - beaconFeeRecipient: json_.containsKey('beaconFeeRecipient') - ? json_['beaconFeeRecipient'] as core.String - : null, consensusClient: json_.containsKey('consensusClient') ? json_['consensusClient'] as core.String : null, @@ -954,6 +949,10 @@ class EthereumDetails { nodeType: json_.containsKey('nodeType') ? json_['nodeType'] as core.String : null, + validatorConfig: json_.containsKey('validatorConfig') + ? ValidatorConfig.fromJson(json_['validatorConfig'] + as core.Map) + : null, ); core.Map toJson() => { @@ -961,13 +960,12 @@ class EthereumDetails { 'additionalEndpoints': additionalEndpoints!, if (apiEnableAdmin != null) 'apiEnableAdmin': apiEnableAdmin!, if (apiEnableDebug != null) 'apiEnableDebug': apiEnableDebug!, - if (beaconFeeRecipient != null) - 'beaconFeeRecipient': beaconFeeRecipient!, if (consensusClient != null) 'consensusClient': consensusClient!, if (executionClient != null) 'executionClient': executionClient!, if (gethDetails != null) 'gethDetails': gethDetails!, if (network != null) 'network': network!, if (nodeType != null) 'nodeType': nodeType!, + if (validatorConfig != null) 'validatorConfig': validatorConfig!, }; } @@ -1267,3 +1265,58 @@ class Operation { /// 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). typedef Status = $Status; + +/// Configuration for validator-related parameters on the beacon client, and for +/// any GCP-managed validator client. +class ValidatorConfig { + /// An Ethereum address which the beacon client will send fee rewards to if no + /// recipient is configured in the validator client. + /// + /// See https://lighthouse-book.sigmaprime.io/suggested-fee-recipient.html or + /// https://docs.prylabs.network/docs/execution-node/fee-recipient for + /// examples of how this is used. Note that while this is often described as + /// "suggested", as we run the execution node we can trust the execution node, + /// and therefore this is considered enforced. + core.String? beaconFeeRecipient; + + /// When true, deploys a GCP-managed validator client alongside the beacon + /// client. + /// + /// Immutable. + core.bool? managedValidatorClient; + + /// URLs for MEV-relay services to use for block building. + /// + /// When set, a GCP-managed MEV-boost service is configured on the beacon + /// client. + core.List? mevRelayUrls; + + ValidatorConfig({ + this.beaconFeeRecipient, + this.managedValidatorClient, + this.mevRelayUrls, + }); + + ValidatorConfig.fromJson(core.Map json_) + : this( + beaconFeeRecipient: json_.containsKey('beaconFeeRecipient') + ? json_['beaconFeeRecipient'] as core.String + : null, + managedValidatorClient: json_.containsKey('managedValidatorClient') + ? json_['managedValidatorClient'] as core.bool + : null, + mevRelayUrls: json_.containsKey('mevRelayUrls') + ? (json_['mevRelayUrls'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + ); + + core.Map toJson() => { + if (beaconFeeRecipient != null) + 'beaconFeeRecipient': beaconFeeRecipient!, + if (managedValidatorClient != null) + 'managedValidatorClient': managedValidatorClient!, + if (mevRelayUrls != null) 'mevRelayUrls': mevRelayUrls!, + }; +} diff --git a/generated/googleapis/lib/books/v1.dart b/generated/googleapis/lib/books/v1.dart index f790b76ae..ae1278306 100644 --- a/generated/googleapis/lib/books/v1.dart +++ b/generated/googleapis/lib/books/v1.dart @@ -1468,6 +1468,8 @@ class MylibraryAnnotationsResource { /// /// [volumeId] - Volume id to get the summary for. /// + /// [source] - Optional. String to identify the originator of this request. + /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// @@ -1481,6 +1483,7 @@ class MylibraryAnnotationsResource { async.Future summary( core.List layerIds, core.String volumeId, { + core.String? source, core.String? $fields, }) async { if (layerIds.isEmpty) { @@ -1489,6 +1492,7 @@ class MylibraryAnnotationsResource { final queryParams_ = >{ 'layerIds': layerIds, 'volumeId': [volumeId], + if (source != null) 'source': [source], if ($fields != null) 'fields': [$fields], }; diff --git a/generated/googleapis/lib/calendar/v3.dart b/generated/googleapis/lib/calendar/v3.dart index abed125ee..2a0397194 100644 --- a/generated/googleapis/lib/calendar/v3.dart +++ b/generated/googleapis/lib/calendar/v3.dart @@ -1543,24 +1543,11 @@ class EventsResource { /// calendarList.list method. If you want to access the primary calendar of /// the currently logged in user, use the "primary" keyword. /// - /// [alwaysIncludeEmail] - Deprecated and ignored. A value will always be - /// returned in the email field for the organizer, creator and attendees, even - /// if no real email address is available (i.e. a generated, non-working value - /// will be provided). + /// [alwaysIncludeEmail] - Deprecated and ignored. /// - /// [eventTypes] - Event types to return. Optional. Possible values are: - /// - "default" - /// - "focusTime" - /// - "outOfOffice" - /// - "workingLocation"This parameter can be repeated multiple times to return - /// events of different types. Currently, these are the only allowed values - /// for this field: - /// - \["default", "focusTime", "outOfOffice"\] - /// - \["default", "focusTime", "outOfOffice", "workingLocation"\] - /// - \["workingLocation"\] The default is \["default", "focusTime", - /// "outOfOffice"\]. - /// Additional combinations of these four event types will be made available - /// in later releases. + /// [eventTypes] - Event types to return. Optional. This parameter can be + /// repeated multiple times to return events of different types. The default + /// is \["default", "focusTime", "outOfOffice"\]. /// /// [iCalUID] - Specifies an event ID in the iCalendar format to be provided /// in the response. Optional. Use this if you want to search for an event by @@ -1600,6 +1587,8 @@ class EventsResource { /// - location /// - attendee's displayName /// - attendee's email + /// - organizer's displayName + /// - organizer's email /// - workingLocationProperties.officeLocation.buildingId /// - workingLocationProperties.officeLocation.deskId /// - workingLocationProperties.officeLocation.label @@ -2084,24 +2073,11 @@ class EventsResource { /// calendarList.list method. If you want to access the primary calendar of /// the currently logged in user, use the "primary" keyword. /// - /// [alwaysIncludeEmail] - Deprecated and ignored. A value will always be - /// returned in the email field for the organizer, creator and attendees, even - /// if no real email address is available (i.e. a generated, non-working value - /// will be provided). + /// [alwaysIncludeEmail] - Deprecated and ignored. /// - /// [eventTypes] - Event types to return. Optional. Possible values are: - /// - "default" - /// - "focusTime" - /// - "outOfOffice" - /// - "workingLocation"This parameter can be repeated multiple times to return - /// events of different types. Currently, these are the only allowed values - /// for this field: - /// - \["default", "focusTime", "outOfOffice"\] - /// - \["default", "focusTime", "outOfOffice", "workingLocation"\] - /// - \["workingLocation"\] The default is \["default", "focusTime", - /// "outOfOffice"\]. - /// Additional combinations of these four event types will be made available - /// in later releases. + /// [eventTypes] - Event types to return. Optional. This parameter can be + /// repeated multiple times to return events of different types. The default + /// is \["default", "focusTime", "outOfOffice"\]. /// /// [iCalUID] - Specifies an event ID in the iCalendar format to be provided /// in the response. Optional. Use this if you want to search for an event by @@ -2141,6 +2117,8 @@ class EventsResource { /// - location /// - attendee's displayName /// - attendee's email + /// - organizer's displayName + /// - organizer's email /// - workingLocationProperties.officeLocation.buildingId /// - workingLocationProperties.officeLocation.deskId /// - workingLocationProperties.officeLocation.label @@ -4153,6 +4131,8 @@ class Event { EventExtendedProperties? extendedProperties; /// Focus Time event data. + /// + /// Used if eventType is focusTime. EventFocusTimeProperties? focusTimeProperties; /// A gadget that extends this event. @@ -4251,6 +4231,8 @@ class Event { EventDateTime? originalStartTime; /// Out of office event data. + /// + /// Used if eventType is outOfOffice. EventOutOfOfficeProperties? outOfOfficeProperties; /// If set to True, Event propagation is disabled. diff --git a/generated/googleapis/lib/certificatemanager/v1.dart b/generated/googleapis/lib/certificatemanager/v1.dart index 43b54c12b..ec991d9e1 100644 --- a/generated/googleapis/lib/certificatemanager/v1.dart +++ b/generated/googleapis/lib/certificatemanager/v1.dart @@ -2362,6 +2362,21 @@ class DnsAuthorization { /// / * /locations / * /dnsAuthorizations / * `. core.String? name; + /// Type of DnsAuthorization. + /// + /// If unset during resource creation the following default will be used: - in + /// location global: FIXED_RECORD. + /// + /// Immutable. + /// Possible string values are: + /// - "TYPE_UNSPECIFIED" : Type is unspecified. + /// - "FIXED_RECORD" : FIXED_RECORD DNS authorization uses DNS-01 validation + /// method. + /// - "PER_PROJECT_RECORD" : PER_PROJECT_RECORD DNS authorization allows for + /// independent management of Google-managed certificates with DNS + /// authorization across multiple projects. + core.String? type; + /// The last update timestamp of a DnsAuthorization. /// /// Output only. @@ -2374,6 +2389,7 @@ class DnsAuthorization { this.domain, this.labels, this.name, + this.type, this.updateTime, }); @@ -2401,6 +2417,7 @@ class DnsAuthorization { ) : null, name: json_.containsKey('name') ? json_['name'] as core.String : null, + type: json_.containsKey('type') ? json_['type'] as core.String : null, updateTime: json_.containsKey('updateTime') ? json_['updateTime'] as core.String : null, @@ -2413,6 +2430,7 @@ class DnsAuthorization { if (domain != null) 'domain': domain!, if (labels != null) 'labels': labels!, if (name != null) 'name': name!, + if (type != null) 'type': type!, if (updateTime != null) 'updateTime': updateTime!, }; } diff --git a/generated/googleapis/lib/chat/v1.dart b/generated/googleapis/lib/chat/v1.dart index 595d24fcb..4a9d15ab3 100644 --- a/generated/googleapis/lib/chat/v1.dart +++ b/generated/googleapis/lib/chat/v1.dart @@ -12,8 +12,8 @@ /// Google Chat API - v1 /// -/// Enables apps to fetch information and perform actions in Google Chat. -/// Authentication is a prerequisite for using the Google Chat REST API. +/// The Google Chat API lets you build Chat apps to integrate your services with +/// Google Chat and manage Chat resources such as spaces, members, and messages. /// /// For more information, see /// @@ -48,9 +48,8 @@ export 'package:_discoveryapis_commons/_discoveryapis_commons.dart' ResumableUploadOptions, UploadOptions; -/// Enables apps to fetch information and perform actions in Google Chat. -/// -/// Authentication is a prerequisite for using the Google Chat REST API. +/// The Google Chat API lets you build Chat apps to integrate your services with +/// Google Chat and manage Chat resources such as spaces, members, and messages. class HangoutsChatApi { /// Private Service: https://www.googleapis.com/auth/chat.bot static const chatBotScope = 'https://www.googleapis.com/auth/chat.bot'; @@ -99,8 +98,8 @@ class HangoutsChatApi { static const chatMessagesReadonlyScope = 'https://www.googleapis.com/auth/chat.messages.readonly'; - /// Create conversations and spaces and view or update metadata (including - /// history settings) in Google Chat + /// Create conversations and spaces and see or edit metadata (including + /// history settings and access settings) in Google Chat static const chatSpacesScope = 'https://www.googleapis.com/auth/chat.spaces'; /// Create new conversations in Google Chat @@ -260,6 +259,54 @@ class SpacesResource { SpacesResource(commons.ApiRequester client) : _requester = client; + /// Completes the + /// [import process](https://developers.google.com/chat/api/guides/import-data) + /// for the specified space and makes it visible to users. + /// + /// Requires app authentication and domain-wide delegation. For more + /// information, see + /// [Authorize Google Chat apps to import data](https://developers.google.com/chat/api/guides/authorize-import). + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [name] - Required. Resource name of the import mode space. Format: + /// `spaces/{space}` + /// Value must have pattern `^spaces/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [CompleteImportSpaceResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future completeImport( + CompleteImportSpaceRequest request, + core.String name, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':completeImport'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return CompleteImportSpaceResponse.fromJson( + response_ as core.Map); + } + /// Creates a named space. /// /// Spaces grouped by topics aren't supported. For an example, see @@ -475,9 +522,8 @@ class SpacesResource { /// /// Request parameters: /// - /// [filter] - Optional. A query filter. Requires - /// [user authentication](https://developers.google.com/chat/api/guides/auth/users). - /// You can filter spaces by the space type + /// [filter] - Optional. A query filter. You can filter spaces by the space + /// type /// (\[`space_type`\](https://developers.google.com/chat/api/reference/rest/v1/spaces#spacetype)). /// To filter by space type, you must specify valid enum value, such as /// `SPACE` or `GROUP_CHAT` (the `space_type` can't be @@ -485,11 +531,7 @@ class SpacesResource { /// operator. For example, the following queries are valid: ``` space_type = /// "SPACE" spaceType = "GROUP_CHAT" OR spaceType = "DIRECT_MESSAGE" ``` /// Invalid queries are rejected by the server with an `INVALID_ARGUMENT` - /// error. With - /// [app authentication](https://developers.google.com/chat/api/guides/auth/service-accounts), - /// this field is ignored and the query always returns all spaces. But the - /// Chat API still validates the query syntax, so invalid queries are still - /// rejected. + /// error. /// /// [pageSize] - Optional. The maximum number of spaces to return. The service /// might return fewer than this value. If unspecified, at most 100 spaces are @@ -573,7 +615,12 @@ class SpacesResource { /// [turning history on or off for the space](https://support.google.com/chat/answer/7664687) /// if /// [the organization allows users to change their history setting](https://support.google.com/a/answer/7664184). - /// Warning: mutually exclusive with all other field paths.) + /// Warning: mutually exclusive with all other field paths.) - Developer + /// Preview: `access_settings.audience` (Supports changing the + /// [access setting](https://support.google.com/chat/answer/11971020) of a + /// space. If no audience is specified in the access setting, the space's + /// access setting is updated to restricted. Warning: mutually exclusive with + /// all other field paths.) /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -892,6 +939,11 @@ class SpacesMembersResource { /// provided the page token. Passing different values to the other parameters /// might lead to unexpected results. /// + /// [showGroups] - Optional. When `true`, also returns memberships associated + /// with a Google Group, in addition to other types of memberships. If a + /// filter is set, Google Group memberships that don't match the filter + /// criteria aren't returned. + /// /// [showInvited] - Optional. When `true`, also returns memberships associated /// with invited members, in addition to other types of memberships. If a /// filter is set, invited memberships that don't match the filter criteria @@ -913,6 +965,7 @@ class SpacesMembersResource { core.String? filter, core.int? pageSize, core.String? pageToken, + core.bool? showGroups, core.bool? showInvited, core.String? $fields, }) async { @@ -920,6 +973,7 @@ class SpacesMembersResource { if (filter != null) 'filter': [filter], if (pageSize != null) 'pageSize': ['${pageSize}'], if (pageToken != null) 'pageToken': [pageToken], + if (showGroups != null) 'showGroups': ['${showGroups}'], if (showInvited != null) 'showInvited': ['${showInvited}'], if ($fields != null) 'fields': [$fields], }; @@ -965,19 +1019,16 @@ class SpacesMessagesResource { /// message. Format: `spaces/{space}` /// Value must have pattern `^spaces/\[^/\]+$`. /// - /// [messageId] - Optional. A custom name for a Chat message assigned at - /// creation. Must start with `client-` and contain only lowercase letters, - /// numbers, and hyphens up to 63 characters in length. Specify this field to - /// get, update, or delete the message with the specified value. Assigning a - /// custom name lets a a Chat app recall the message without saving the - /// message `name` from the \[response - /// body\](/chat/api/reference/rest/v1/spaces.messages/get#response-body) - /// returned when creating the message. Assigning a custom name doesn't - /// replace the generated `name` field, the message's resource name. Instead, - /// it sets the custom name as the `clientAssignedMessageId` field, which you - /// can reference while processing later operations, like updating or deleting - /// the message. For example usage, see - /// [Name a created message](https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message). + /// [messageId] - Optional. A custom ID for a message. Lets Chat apps get, + /// update, or delete a message without needing to store the system-assigned + /// ID in the message's resource name (represented in the message `name` + /// field). The value for this field must meet the following requirements: * + /// Begins with `client-`. For example, `client-custom-name` is a valid custom + /// ID, but `custom-name` is not. * Contains up to 63 characters and only + /// lowercase letters, numbers, and hyphens. * Is unique within a space. A + /// Chat app can't use the same custom ID for different messages. For details, + /// see + /// [Name a message](https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message). /// /// [messageReplyOption] - Optional. Specifies whether a message starts a /// thread or replies to one. Only supported in named spaces. @@ -1057,9 +1108,11 @@ class SpacesMessagesResource { /// /// Request parameters: /// - /// [name] - Required. Resource name of the message that you want to delete, - /// in the form `spaces / * /messages / * ` Example: - /// `spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB` + /// [name] - Required. Resource name of the message. Format: + /// `spaces/{space}/messages/{message}` If you've set a custom ID for your + /// message, you can use the value from the `clientAssignedMessageId` field + /// for `{message}`. For details, see + /// [Name a message](https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message). /// Value must have pattern `^spaces/\[^/\]+/messages/\[^/\]+$`. /// /// [force] - When `true`, deleting a message also deletes its threaded @@ -1113,12 +1166,11 @@ class SpacesMessagesResource { /// /// Request parameters: /// - /// [name] - Required. Resource name of the message to retrieve. Format: - /// `spaces/{space}/messages/{message}` If the message begins with `client-`, - /// then it has a custom name assigned by a Chat app that created it with the - /// Chat REST API. That Chat app (but not others) can pass the custom name to - /// get, update, or delete the message. To learn more, see - /// [create and name a message](https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message). + /// [name] - Required. Resource name of the message. Format: + /// `spaces/{space}/messages/{message}` If you've set a custom ID for your + /// message, you can use the value from the `clientAssignedMessageId` field + /// for `{message}`. For details, see + /// [Name a message](https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message). /// Value must have pattern `^spaces/\[^/\]+/messages/\[^/\]+$`. /// /// [$fields] - Selector specifying which fields to include in a partial @@ -1261,8 +1313,16 @@ class SpacesMessagesResource { /// /// Request parameters: /// - /// [name] - Resource name in the form `spaces / * /messages / * `. Example: - /// `spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB` + /// [name] - Resource name of the message. Format: + /// `spaces/{space}/messages/{message}` Where `{space}` is the ID of the space + /// where the message is posted and `{message}` is a system-assigned ID for + /// the message. For example, + /// `spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB`. If you set a custom + /// ID when you create a message, you can use this ID to specify the message + /// in a request by replacing `{message}` with the value from the + /// `clientAssignedMessageId` field. For example, + /// `spaces/AAAAAAAAAAA/messages/client-custom-name`. For details, see + /// [Name a message](https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message). /// Value must have pattern `^spaces/\[^/\]+/messages/\[^/\]+$`. /// /// [allowMissing] - Optional. If `true` and the message isn't found, a new @@ -1272,10 +1332,12 @@ class SpacesMessagesResource { /// or the request fails. /// /// [updateMask] - Required. The field paths to update. Separate multiple - /// values with commas. Currently supported field paths: - `text` - - /// `attachment` - `cards` (Requires \[app + /// values with commas or use `*` to update all field paths. Currently + /// supported field paths: - `text` - `attachment` - `cards` (Requires \[app /// authentication\](/chat/api/guides/auth/service-accounts).) - `cards_v2` /// (Requires \[app authentication\](/chat/api/guides/auth/service-accounts).) + /// - Developer Preview: `accessory_widgets` (Requires \[app + /// authentication\](/chat/api/guides/auth/service-accounts).) /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -1331,8 +1393,16 @@ class SpacesMessagesResource { /// /// Request parameters: /// - /// [name] - Resource name in the form `spaces / * /messages / * `. Example: - /// `spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB` + /// [name] - Resource name of the message. Format: + /// `spaces/{space}/messages/{message}` Where `{space}` is the ID of the space + /// where the message is posted and `{message}` is a system-assigned ID for + /// the message. For example, + /// `spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB`. If you set a custom + /// ID when you create a message, you can use this ID to specify the message + /// in a request by replacing `{message}` with the value from the + /// `clientAssignedMessageId` field. For example, + /// `spaces/AAAAAAAAAAA/messages/client-custom-name`. For details, see + /// [Name a message](https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message). /// Value must have pattern `^spaces/\[^/\]+/messages/\[^/\]+$`. /// /// [allowMissing] - Optional. If `true` and the message isn't found, a new @@ -1342,10 +1412,12 @@ class SpacesMessagesResource { /// or the request fails. /// /// [updateMask] - Required. The field paths to update. Separate multiple - /// values with commas. Currently supported field paths: - `text` - - /// `attachment` - `cards` (Requires \[app + /// values with commas or use `*` to update all field paths. Currently + /// supported field paths: - `text` - `attachment` - `cards` (Requires \[app /// authentication\](/chat/api/guides/auth/service-accounts).) - `cards_v2` /// (Requires \[app authentication\](/chat/api/guides/auth/service-accounts).) + /// - Developer Preview: `accessory_widgets` (Requires \[app + /// authentication\](/chat/api/guides/auth/service-accounts).) /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -2203,6 +2275,7 @@ class CardHeader { /// Only Chat apps can create cards. If your Chat app /// [authenticates as a user](https://developers.google.com/chat/api/guides/auth/users), /// the message can't contain cards. +/// [Card builder](https://addons.gsuite.google.com/uikit/builder) class CardWithId { /// A card. /// @@ -2236,12 +2309,12 @@ class CardWithId { }; } -/// Chat apps only. -/// /// For a `SelectionInput` widget that uses a multiselect menu, a data source -/// from Google Chat. The data source populates selection items for the -/// multiselect menu. For example, a user can select Google Chat spaces that -/// they're a member of. +/// from Google Chat. +/// +/// The data source populates selection items for the multiselect menu. For +/// example, a user can select Google Chat spaces that they're a member of. +/// [Google Chat apps](https://developers.google.com/chat): class ChatClientDataSourceMarkup { /// Google Chat spaces that the user is a member of. SpaceDataSource? spaceDataSource; @@ -2314,6 +2387,30 @@ class ChatClientDataSourceMarkup { /// resultBuilder.push(hexString); return resultBuilder.join(''); }; // ... typedef Color = $Color; +/// Request message for completing the import process for a space. +typedef CompleteImportSpaceRequest = $Empty; + +class CompleteImportSpaceResponse { + /// The import mode space. + Space? space; + + CompleteImportSpaceResponse({ + this.space, + }); + + CompleteImportSpaceResponse.fromJson(core.Map json_) + : this( + space: json_.containsKey('space') + ? Space.fromJson( + json_['space'] as core.Map) + : null, + ); + + core.Map toJson() => { + if (space != null) 'space': space!, + }; +} + /// Represents a custom emoji. class CustomEmoji { /// Unique key for the custom emoji resource. @@ -2567,7 +2664,9 @@ class FormAction { /// An action that describes the behavior when the form is submitted. /// /// For example, you can invoke an Apps Script script to handle the form. If the -/// action is triggered, the form values are sent to the server. +/// action is triggered, the form values are sent to the server. \[Google +/// Workspace Add-ons and Chat +/// apps\](https://developers.google.com/workspace/extend): class GoogleAppsCardV1Action { /// A custom function to invoke when the containing element is clicked or /// othrwise activated. @@ -2585,9 +2684,9 @@ class GoogleAppsCardV1Action { /// By specifying an `interaction`, the app can respond in special interactive /// ways. For example, by setting `interaction` to `OPEN_DIALOG`, the app can /// open a [dialog](https://developers.google.com/chat/how-tos/dialogs). When - /// specified, a loading indicator isn't shown. Supported by Chat apps, but - /// not Google Workspace Add-ons. If specified for an add-on, the entire card - /// is stripped and nothing is shown in the client. + /// specified, a loading indicator isn't shown. If specified for an add-on, + /// the entire card is stripped and nothing is shown in the client. + /// [Google Chat apps](https://developers.google.com/chat): /// /// Optional. /// Possible string values are: @@ -2596,9 +2695,9 @@ class GoogleAppsCardV1Action { /// - "OPEN_DIALOG" : Opens a /// [dialog](https://developers.google.com/chat/how-tos/dialogs), a windowed, /// card-based interface that Chat apps use to interact with users. Only - /// supported by Chat apps in response to button-clicks on card messages. Not - /// supported by Google Workspace Add-ons. If specified for an add-on, the - /// entire card is stripped and nothing is shown in the client. + /// supported by Chat apps in response to button-clicks on card messages. If + /// specified for an add-on, the entire card is stripped and nothing is shown + /// in the client. [Google Chat apps](https://developers.google.com/chat): core.String? interaction; /// Specifies the loading indicator that the action displays while making the @@ -2676,10 +2775,15 @@ class GoogleAppsCardV1Action { /// snooze type and snooze time in the list of string parameters. To learn more, /// see /// \[`CommonEventObject`\](https://developers.google.com/chat/api/reference/rest/v1/Event#commoneventobject). +/// \[Google Workspace Add-ons and Chat +/// apps\](https://developers.google.com/workspace/extend): typedef GoogleAppsCardV1ActionParameter = $ActionParameter; /// The style options for the border of a card or widget, including the border /// type and color. +/// +/// \[Google Workspace Add-ons and Chat +/// apps\](https://developers.google.com/workspace/extend): class GoogleAppsCardV1BorderStyle { /// The corner radius for the border. core.int? cornerRadius; @@ -2724,7 +2828,8 @@ class GoogleAppsCardV1BorderStyle { /// For an example in Google Chat apps, see /// [Button list](https://developers.google.com/chat/ui/widgets/button-list). To /// make an image a clickable button, specify an `Image` (not an -/// `ImageComponent`) and set an `onClick` action. +/// `ImageComponent`) and set an `onClick` action. \[Google Workspace Add-ons +/// and Chat apps\](https://developers.google.com/workspace/extend): class GoogleAppsCardV1Button { /// The alternative text that's used for accessibility. /// @@ -2816,6 +2921,8 @@ class GoogleAppsCardV1Button { /// /// For an example in Google Chat apps, see /// [Button list](https://developers.google.com/chat/ui/widgets/button-list). +/// \[Google Workspace Add-ons and Chat +/// apps\](https://developers.google.com/workspace/extend): class GoogleAppsCardV1ButtonList { /// An array of buttons. core.List? buttons; @@ -2844,8 +2951,9 @@ class GoogleAppsCardV1ButtonList { /// /// Cards support a defined layout, interactive UI elements like buttons, and /// rich media like images. Use cards to present detailed information, gather -/// information from users, and guide users to take a next step. To learn how to -/// build cards, see the following documentation: * For Google Chat apps, see +/// information from users, and guide users to take a next step. +/// [Card builder](https://addons.gsuite.google.com/uikit/builder) To learn how +/// to build cards, see the following documentation: * For Google Chat apps, see /// [Design dynamic, interactive, and consistent UIs with cards](https://developers.google.com/chat/ui). /// * For Google Workspace Add-ons, see \[Card-based /// interfaces\](https://developers.google.com/apps-script/add-ons/concepts/cards). @@ -2869,9 +2977,9 @@ class GoogleAppsCardV1ButtonList { class GoogleAppsCardV1Card { /// The card's actions. /// - /// Actions are added to the card's toolbar menu. Because Chat app cards have - /// no toolbar, `cardActions[]` isn't supported by Chat apps. For example, the - /// following JSON constructs a card action menu with `Settings` and `Send + /// Actions are added to the card's toolbar menu. \[Google Workspace + /// Add-ons\](https://developers.google.com/workspace/add-ons): For example, + /// the following JSON constructs a card action menu with `Settings` and `Send /// Feedback` options: ``` "card_actions": [ { "actionLabel": "Settings", /// "onClick": { "action": { "functionName": "goToView", "parameters": [ { /// "key": "viewType", "value": "SETTING" } ], "loadIndicator": @@ -2880,10 +2988,11 @@ class GoogleAppsCardV1Card { /// ``` core.List? cardActions; - /// In Google Workspace add-ons, sets the display properties of the + /// In Google Workspace Add-ons, sets the display properties of the /// `peekCardHeader`. /// - /// Not supported by Chat apps. + /// \[Google Workspace + /// Add-ons\](https://developers.google.com/workspace/add-ons): /// Possible string values are: /// - "DISPLAY_STYLE_UNSPECIFIED" : Don't use. Unspecified. /// - "PEEK" : The header of the card appears at the bottom of the sidebar, @@ -2897,10 +3006,12 @@ class GoogleAppsCardV1Card { /// The fixed footer shown at the bottom of this card. /// /// Setting `fixedFooter` without specifying a `primaryButton` or a - /// `secondaryButton` causes an error. Supported by Google Workspace Add-ons - /// and Chat apps. For Chat apps, you can use fixed footers in - /// [dialogs](https://developers.google.com/chat/how-tos/dialogs), but not + /// `secondaryButton` causes an error. For Chat apps, you can use fixed + /// footers in [dialogs](https://developers.google.com/chat/how-tos/dialogs), + /// but not /// [card messages](https://developers.google.com/chat/api/guides/v1/messages/create#create). + /// \[Google Workspace Add-ons and Chat + /// apps\](https://developers.google.com/workspace/extend): GoogleAppsCardV1CardFixedFooter? fixedFooter; /// The header of the card. @@ -2911,15 +3022,16 @@ class GoogleAppsCardV1Card { /// Name of the card. /// - /// Used as a card identifier in card navigation. Because Chat apps don't - /// support card navigation, they ignore this field. + /// Used as a card identifier in card navigation. \[Google Workspace + /// Add-ons\](https://developers.google.com/workspace/add-ons): core.String? name; /// When displaying contextual content, the peek card header acts as a /// placeholder so that the user can navigate forward between the homepage /// cards and the contextual cards. /// - /// Not supported by Chat apps. + /// \[Google Workspace + /// Add-ons\](https://developers.google.com/workspace/add-ons): GoogleAppsCardV1CardHeader? peekCardHeader; /// The divider style between sections. @@ -2999,7 +3111,8 @@ class GoogleAppsCardV1Card { /// A card action is the action associated with the card. /// /// For example, an invoice card might include actions such as delete invoice, -/// email invoice, or open the invoice in a browser. Not supported by Chat apps. +/// email invoice, or open the invoice in a browser. \[Google Workspace +/// Add-ons\](https://developers.google.com/workspace/add-ons): class GoogleAppsCardV1CardAction { /// The label that displays as the action menu item. core.String? actionLabel; @@ -3031,13 +3144,14 @@ class GoogleAppsCardV1CardAction { /// A persistent (sticky) footer that that appears at the bottom of the card. /// -/// For an example in Google Chat apps, see -/// [Card footer](https://developers.google.com/chat/ui/widgets/card-fixed-footer). /// Setting `fixedFooter` without specifying a `primaryButton` or a -/// `secondaryButton` causes an error. Supported by Google Workspace Add-ons and -/// Chat apps. For Chat apps, you can use fixed footers in -/// [dialogs](https://developers.google.com/chat/how-tos/dialogs), but not +/// `secondaryButton` causes an error. For Chat apps, you can use fixed footers +/// in [dialogs](https://developers.google.com/chat/how-tos/dialogs), but not /// [card messages](https://developers.google.com/chat/api/guides/v1/messages/create#create). +/// For an example in Google Chat apps, see +/// [Card footer](https://developers.google.com/chat/ui/widgets/card-fixed-footer). +/// \[Google Workspace Add-ons and Chat +/// apps\](https://developers.google.com/workspace/extend): class GoogleAppsCardV1CardFixedFooter { /// The primary button of the fixed footer. /// @@ -3077,11 +3191,16 @@ class GoogleAppsCardV1CardFixedFooter { /// /// For an example in Google Chat apps, see /// [Card header](https://developers.google.com/chat/ui/widgets/card-header). +/// \[Google Workspace Add-ons and Chat +/// apps\](https://developers.google.com/workspace/extend): class GoogleAppsCardV1CardHeader { /// The alternative text of this image that's used for accessibility. core.String? imageAltText; /// The shape used to crop the image. + /// + /// \[Google Workspace Add-ons and Chat + /// apps\](https://developers.google.com/workspace/extend): /// Possible string values are: /// - "SQUARE" : Default value. Applies a square mask to the image. For /// example, a 4x3 image becomes 3x3. @@ -3142,6 +3261,8 @@ class GoogleAppsCardV1CardHeader { } /// A column. +/// +/// [Google Chat apps](https://developers.google.com/chat): class GoogleAppsCardV1Column { /// Specifies whether widgets align to the left, right, or center of a column. /// Possible string values are: @@ -3156,6 +3277,8 @@ class GoogleAppsCardV1Column { core.String? horizontalAlignment; /// Specifies how a column fills the width of the card. + /// + /// [Google Chat apps](https://developers.google.com/chat): /// Possible string values are: /// - "HORIZONTAL_SIZE_STYLE_UNSPECIFIED" : Don't use. Unspecified. /// - "FILL_AVAILABLE_SPACE" : Default value. Column fills the available @@ -3166,6 +3289,8 @@ class GoogleAppsCardV1Column { core.String? horizontalSizeStyle; /// Specifies whether widgets align to the top, bottom, or center of a column. + /// + /// [Google Chat apps](https://developers.google.com/chat): /// Possible string values are: /// - "VERTICAL_ALIGNMENT_UNSPECIFIED" : Don't use. Unspecified. /// - "CENTER" : Default value. Aligns widgets to the center of a column. @@ -3214,7 +3339,7 @@ class GoogleAppsCardV1Column { }; } -/// The `Columns` widget displays up to 2 columns in a card message or dialog. +/// The `Columns` widget displays up to 2 columns in a card or dialog. /// /// You can add widgets to each column; the widgets appear in the order that /// they are specified. For an example in Google Chat apps, see @@ -3230,7 +3355,10 @@ class GoogleAppsCardV1Column { /// second column wraps if the screen width is less than or equal to 300 pt. * /// On Android devices, the second column wraps if the screen width is less than /// or equal to 320 dp. To include more than 2 columns, or to use rows, use the -/// `Grid` widget. Supported by Chat apps, but not Google Workspace Add-ons. +/// `Grid` widget. \[Google Workspace Add-ons and Chat +/// apps\](https://developers.google.com/workspace/extend): Columns for Google +/// Workspace Add-ons are in +/// [Developer Preview](https://developers.google.com/workspace/preview). class GoogleAppsCardV1Columns { /// An array of columns. /// @@ -3262,7 +3390,8 @@ class GoogleAppsCardV1Columns { /// [Date time picker](https://developers.google.com/chat/ui/widgets/date-time-picker). /// Users can input text or use the picker to select dates and times. If users /// input an invalid date or time, the picker shows an error that prompts users -/// to input the information correctly. +/// to input the information correctly. \[Google Workspace Add-ons and Chat +/// apps\](https://developers.google.com/workspace/extend): class GoogleAppsCardV1DateTimePicker { /// The text that prompts users to input a date, a time, or a date and time. /// @@ -3350,6 +3479,8 @@ class GoogleAppsCardV1DateTimePicker { /// /// For an example in Google Chat apps, see /// [Decorated text](https://developers.google.com/chat/ui/widgets/decorated-text). +/// \[Google Workspace Add-ons and Chat +/// apps\](https://developers.google.com/workspace/extend): class GoogleAppsCardV1DecoratedText { /// The text that appears below `text`. /// @@ -3475,8 +3606,10 @@ class GoogleAppsCardV1DecoratedText { /// Displays a divider between widgets as a horizontal line. /// /// For an example in Google Chat apps, see -/// [Divider](https://developers.google.com/chat/ui/widgets/divider). For -/// example, the following JSON creates a divider: ``` "divider": {} ``` +/// [Divider](https://developers.google.com/chat/ui/widgets/divider). \[Google +/// Workspace Add-ons and Chat +/// apps\](https://developers.google.com/workspace/extend): For example, the +/// following JSON creates a divider: ``` "divider": {} ``` typedef GoogleAppsCardV1Divider = $Empty; /// Displays a grid with a collection of items. @@ -3486,14 +3619,15 @@ typedef GoogleAppsCardV1Divider = $Empty; /// see [Grid](https://developers.google.com/chat/ui/widgets/grid). A grid /// supports any number of columns and items. The number of rows is determined /// by items divided by columns. A grid with 10 items and 2 columns has 5 rows. -/// A grid with 11 items and 2 columns has 6 rows. For example, the following -/// JSON creates a 2 column grid with a single item: ``` "grid": { "title": "A -/// fine collection of items", "columnCount": 2, "borderStyle": { "type": -/// "STROKE", "cornerRadius": 4 }, "items": [ { "image": { "imageUri": -/// "https://www.example.com/image.png", "cropStyle": { "type": "SQUARE" }, -/// "borderStyle": { "type": "STROKE" } }, "title": "An item", "textAlignment": -/// "CENTER" } ], "onClick": { "openLink": { "url": "https://www.example.com" } -/// } } ``` +/// A grid with 11 items and 2 columns has 6 rows. \[Google Workspace Add-ons +/// and Chat apps\](https://developers.google.com/workspace/extend): For +/// example, the following JSON creates a 2 column grid with a single item: ``` +/// "grid": { "title": "A fine collection of items", "columnCount": 2, +/// "borderStyle": { "type": "STROKE", "cornerRadius": 4 }, "items": [ { +/// "image": { "imageUri": "https://www.example.com/image.png", "cropStyle": { +/// "type": "SQUARE" }, "borderStyle": { "type": "STROKE" } }, "title": "An +/// item", "textAlignment": "CENTER" } ], "onClick": { "openLink": { "url": +/// "https://www.example.com" } } } ``` class GoogleAppsCardV1Grid { /// The border style to apply to each grid item. GoogleAppsCardV1BorderStyle? borderStyle; @@ -3557,7 +3691,9 @@ class GoogleAppsCardV1Grid { /// Represents an item in a grid layout. /// -/// Items can contain text, an image, or both text and an image. +/// Items can contain text, an image, or both text and an image. \[Google +/// Workspace Add-ons and Chat +/// apps\](https://developers.google.com/workspace/extend): class GoogleAppsCardV1GridItem { /// A user-specified identifier for this grid item. /// @@ -3623,7 +3759,8 @@ class GoogleAppsCardV1GridItem { /// [Icon](https://developers.google.com/chat/ui/widgets/icon). Supports /// \[built-in\](https://developers.google.com/chat/format-messages#builtinicons) /// and [custom](https://developers.google.com/chat/format-messages#customicons) -/// icons. +/// icons. \[Google Workspace Add-ons and Chat +/// apps\](https://developers.google.com/workspace/extend): class GoogleAppsCardV1Icon { /// A description of the icon used for accessibility. /// @@ -3698,7 +3835,9 @@ class GoogleAppsCardV1Icon { /// An image that is specified by a URL and can have an `onClick` action. /// /// For an example, see -/// [Image](https://developers.google.com/chat/ui/widgets/image). +/// [Image](https://developers.google.com/chat/ui/widgets/image). \[Google +/// Workspace Add-ons and Chat +/// apps\](https://developers.google.com/workspace/extend): class GoogleAppsCardV1Image { /// The alternative text of this image that's used for accessibility. core.String? altText; @@ -3740,6 +3879,9 @@ class GoogleAppsCardV1Image { } /// Represents an image. +/// +/// \[Google Workspace Add-ons and Chat +/// apps\](https://developers.google.com/workspace/extend): class GoogleAppsCardV1ImageComponent { /// The accessibility label for the image. core.String? altText; @@ -3788,8 +3930,10 @@ class GoogleAppsCardV1ImageComponent { /// Represents the crop style applied to an image. /// -/// For example, here's how to apply a 16:9 aspect ratio: ``` cropStyle { -/// "type": "RECTANGLE_CUSTOM", "aspectRatio": 16/9 } ``` +/// \[Google Workspace Add-ons and Chat +/// apps\](https://developers.google.com/workspace/extend): For example, here's +/// how to apply a 16:9 aspect ratio: ``` cropStyle { "type": +/// "RECTANGLE_CUSTOM", "aspectRatio": 16/9 } ``` class GoogleAppsCardV1ImageCropStyle { /// The aspect ratio to use if the crop type is `RECTANGLE_CUSTOM`. /// @@ -3828,21 +3972,25 @@ class GoogleAppsCardV1ImageCropStyle { /// Represents how to respond when users click an interactive element on a card, /// such as a button. +/// +/// \[Google Workspace Add-ons and Chat +/// apps\](https://developers.google.com/workspace/extend): class GoogleAppsCardV1OnClick { /// If specified, an action is triggered by this `onClick`. GoogleAppsCardV1Action? action; /// A new card is pushed to the card stack after clicking if specified. /// - /// Supported by Google Workspace Add-ons, but not Google Chat apps. + /// \[Google Workspace + /// Add-ons\](https://developers.google.com/workspace/add-ons): GoogleAppsCardV1Card? card; /// An add-on triggers this action when the action needs to open a link. /// /// This differs from the `open_link` above in that this needs to talk to /// server to get the link. Thus some preparation work is required for web - /// client to do before the open link action response comes back. Supported by - /// Google Workspace Add-ons, but not Google Chat apps. + /// client to do before the open link action response comes back. \[Google + /// Workspace Add-ons\](https://developers.google.com/workspace/add-ons): GoogleAppsCardV1Action? openDynamicLinkAction; /// If specified, this `onClick` triggers an open link action. @@ -3885,11 +4033,15 @@ class GoogleAppsCardV1OnClick { } /// Represents an `onClick` event that opens a hyperlink. +/// +/// \[Google Workspace Add-ons and Chat +/// apps\](https://developers.google.com/workspace/extend): class GoogleAppsCardV1OpenLink { /// Whether the client forgets about a link after opening it, or observes it /// until the window closes. /// - /// Not supported by Chat apps. + /// \[Google Workspace + /// Add-ons\](https://developers.google.com/workspace/add-ons): /// Possible string values are: /// - "NOTHING" : Default value. The card doesn't reload; nothing happens. /// - "RELOAD" : Reloads the card after the child window closes. If used in @@ -3901,7 +4053,8 @@ class GoogleAppsCardV1OpenLink { /// How to open a link. /// - /// Not supported by Chat apps. + /// \[Google Workspace + /// Add-ons\](https://developers.google.com/workspace/add-ons): /// Possible string values are: /// - "FULL_SIZE" : The link opens as a full-size window (if that's the frame /// used by the client). @@ -3935,10 +4088,11 @@ class GoogleAppsCardV1OpenLink { }; } -/// Chat apps only. -/// /// For a `SelectionInput` widget that uses a multiselect menu, a data source -/// from Google Workspace. Used to populate items in a multiselect menu. +/// from Google Workspace. +/// +/// Used to populate items in a multiselect menu. +/// [Google Chat apps](https://developers.google.com/chat): class GoogleAppsCardV1PlatformDataSource { /// A data source shared by all Google Workspace applications, such as users /// in a Google Workspace organization. @@ -3976,6 +4130,9 @@ class GoogleAppsCardV1PlatformDataSource { /// A section contains a collection of widgets that are rendered vertically in /// the order that they're specified. +/// +/// \[Google Workspace Add-ons and Chat +/// apps\](https://developers.google.com/workspace/extend): class GoogleAppsCardV1Section { /// Indicates whether this section is collapsible. /// @@ -4055,6 +4212,8 @@ class GoogleAppsCardV1Section { /// details about working with form inputs, see /// [Receive form data](https://developers.google.com/chat/ui/read-form-data). /// To collect undefined or abstract data from users, use the TextInput widget. +/// \[Google Workspace Add-ons and Chat +/// apps\](https://developers.google.com/workspace/extend): class GoogleAppsCardV1SelectionInput { /// An external data source, such as a relational data base. GoogleAppsCardV1Action? externalDataSource; @@ -4115,19 +4274,22 @@ class GoogleAppsCardV1SelectionInput { /// button. /// - "SWITCH" : A set of switches. Users can turn on one or more switches. /// - "DROPDOWN" : A dropdown menu. Users can select one item from the menu. - /// - "MULTI_SELECT" : Supported by Chat apps, but not Google Workspace - /// Add-ons. A multiselect menu for static or dynamic data. From the menu bar, - /// users select one or more items. Users can also input values to populate - /// dynamic data. For example, users can start typing the name of a Google - /// Chat space and the widget autosuggests the space. To populate items for a - /// multiselect menu, you can use one of the following types of data sources: - /// * Static data: Items are specified as `SelectionItem` objects in the - /// widget. Up to 100 items. * Google Workspace data: Items are populated + /// - "MULTI_SELECT" : A multiselect menu for static or dynamic data. From the + /// menu bar, users select one or more items. Users can also input values to + /// populate dynamic data. For example, users can start typing the name of a + /// Google Chat space and the widget autosuggests the space. To populate items + /// for a multiselect menu, you can use one of the following types of data + /// sources: * Static data: Items are specified as `SelectionItem` objects in + /// the widget. Up to 100 items. * Google Workspace data: Items are populated /// using data from Google Workspace, such as Google Workspace users or Google /// Chat spaces. * External data: Items are populated from an external data /// source outside of Google Workspace. For examples of how to implement /// multiselect menus, see the \[`SelectionInput` widget /// page\](https://developers.google.com/chat/ui/widgets/selection-input#multiselect-menu). + /// \[Google Workspace Add-ons and Chat + /// apps\](https://developers.google.com/workspace/extend): multiselect for + /// Google Workspace Add-ons are in + /// [Developer Preview](https://developers.google.com/workspace/preview). core.String? type; GoogleAppsCardV1SelectionInput({ @@ -4196,6 +4358,9 @@ class GoogleAppsCardV1SelectionInput { /// An item that users can select in a selection input, such as a checkbox or /// switch. +/// +/// \[Google Workspace Add-ons and Chat +/// apps\](https://developers.google.com/workspace/extend): class GoogleAppsCardV1SelectionItem { /// For multiselect menus, a text description or label that's displayed below /// the item's `text` field. @@ -4258,6 +4423,9 @@ class GoogleAppsCardV1SelectionItem { } /// One suggested value that users can enter in a text input field. +/// +/// \[Google Workspace Add-ons and Chat +/// apps\](https://developers.google.com/workspace/extend): class GoogleAppsCardV1SuggestionItem { /// The value of a suggested input to a text input field. /// @@ -4289,7 +4457,8 @@ class GoogleAppsCardV1SuggestionItem { /// When referring to JavaScript, some users might enter `javascript` and others /// `java script`. Suggesting `JavaScript` can standardize how users interact /// with your app. When specified, `TextInput.type` is always `SINGLE_LINE`, -/// even if it's set to `MULTIPLE_LINE`. +/// even if it's set to `MULTIPLE_LINE`. \[Google Workspace Add-ons and Chat +/// apps\](https://developers.google.com/workspace/extend): class GoogleAppsCardV1Suggestions { /// A list of suggestions used for autocomplete recommendations in text input /// fields. @@ -4316,9 +4485,14 @@ class GoogleAppsCardV1Suggestions { /// Either a toggle-style switch or a checkbox inside a `decoratedText` widget. /// -/// Only supported in the `decoratedText` widget. +/// \[Google Workspace Add-ons and Chat +/// apps\](https://developers.google.com/workspace/extend): Only supported in +/// the `decoratedText` widget. class GoogleAppsCardV1SwitchControl { /// How the switch appears in the user interface. + /// + /// \[Google Workspace Add-ons and Chat + /// apps\](https://developers.google.com/workspace/extend): /// Possible string values are: /// - "SWITCH" : A toggle-style switch. /// - "CHECKBOX" : Deprecated in favor of `CHECK_BOX`. @@ -4388,15 +4562,16 @@ class GoogleAppsCardV1SwitchControl { /// [Receive form data](https://developers.google.com/chat/ui/read-form-data). /// When you need to collect undefined or abstract data from users, use a text /// input. To collect defined or enumerated data from users, use the -/// SelectionInput widget. +/// SelectionInput widget. \[Google Workspace Add-ons and Chat +/// apps\](https://developers.google.com/workspace/extend): class GoogleAppsCardV1TextInput { /// 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 Google Chat apps. + /// here, such as running a custom function. \[Google Workspace + /// Add-ons\](https://developers.google.com/workspace/add-ons): /// /// Optional. GoogleAppsCardV1Action? autoCompleteAction; @@ -4420,7 +4595,8 @@ class GoogleAppsCardV1TextInput { /// `javascript` and others `java script`. Suggesting `JavaScript` can /// standardize how users interact with your app. When specified, /// `TextInput.type` is always `SINGLE_LINE`, even if it's set to - /// `MULTIPLE_LINE`. + /// `MULTIPLE_LINE`. \[Google Workspace Add-ons and Chat + /// apps\](https://developers.google.com/workspace/extend): GoogleAppsCardV1Suggestions? initialSuggestions; /// The text that appears above the text input field in the user interface. @@ -4448,8 +4624,8 @@ class GoogleAppsCardV1TextInput { /// Text that appears in the text input field when the field is empty. /// /// Use this text to prompt users to enter a value. For example, `Enter a - /// number from 0 to 100`. Supported by Google Chat apps, but not Google - /// Workspace Add-ons. + /// number from 0 to 100`. + /// [Google Chat apps](https://developers.google.com/chat): core.String? placeholderText; /// How a text input field appears in the user interface. @@ -4530,6 +4706,8 @@ class GoogleAppsCardV1TextInput { /// [Formatting text in Google Chat apps](https://developers.google.com/chat/format-messages#card-formatting) /// and \[Formatting text in Google Workspace /// Add-ons\](https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting). +/// \[Google Workspace Add-ons and Chat +/// apps\](https://developers.google.com/workspace/extend): class GoogleAppsCardV1TextParagraph { /// The text that's shown in the widget. core.String? text; @@ -4604,10 +4782,11 @@ class GoogleAppsCardV1Widget { /// A grid supports any number of columns and items. The number of rows is /// determined by the upper bounds of the number items divided by the number /// of columns. A grid with 10 items and 2 columns has 5 rows. A grid with 11 - /// items and 2 columns has 6 rows. For example, the following JSON creates a - /// 2 column grid with a single item: ``` "grid": { "title": "A fine - /// collection of items", "columnCount": 2, "borderStyle": { "type": "STROKE", - /// "cornerRadius": 4 }, "items": [ { "image": { "imageUri": + /// items and 2 columns has 6 rows. \[Google Workspace Add-ons and Chat + /// apps\](https://developers.google.com/workspace/extend): For example, the + /// following JSON creates a 2 column grid with a single item: ``` "grid": { + /// "title": "A fine collection of items", "columnCount": 2, "borderStyle": { + /// "type": "STROKE", "cornerRadius": 4 }, "items": [ { "image": { "imageUri": /// "https://www.example.com/image.png", "cropStyle": { "type": "SQUARE" }, /// "borderStyle": { "type": "STROKE" } }, "title": "An item", /// "textAlignment": "CENTER" } ], "onClick": { "openLink": { "url": @@ -4745,6 +4924,8 @@ class GoogleAppsCardV1Widget { } /// The supported widgets that you can include in a column. +/// +/// [Google Chat apps](https://developers.google.com/chat): class GoogleAppsCardV1Widgets { /// ButtonList widget. GoogleAppsCardV1ButtonList? buttonList; @@ -4820,11 +5001,34 @@ class GoogleAppsCardV1Widgets { }; } -/// Chat apps only. -/// +/// A Google Group in Google Chat. +class Group { + /// Resource name for a Google Group. + /// + /// Represents a + /// [group](https://cloud.google.com/identity/docs/reference/rest/v1/groups) + /// in Cloud Identity Groups API. Format: groups/{group} + core.String? name; + + Group({ + this.name, + }); + + Group.fromJson(core.Map json_) + : this( + name: json_.containsKey('name') ? json_['name'] as core.String : null, + ); + + core.Map toJson() => { + if (name != null) 'name': name!, + }; +} + /// For a `SelectionInput` widget that uses a multiselect menu, a data source -/// from a Google Workspace application. The data source populates selection -/// items for the multiselect menu. +/// from a Google Workspace application. +/// +/// The data source populates selection items for the multiselect menu. +/// [Google Chat apps](https://developers.google.com/chat): class HostAppDataSourceMarkup { /// A data source from Google Chat. ChatClientDataSourceMarkup? chatDataSource; @@ -5263,9 +5467,27 @@ class Membership { /// The creation time of the membership, such as when a member joined or was /// invited to join a space. /// - /// Output only. + /// This field is output only, except when used to import historical + /// memberships in import mode spaces. + /// + /// Optional. Immutable. core.String? createTime; + /// The deletion time of the membership, such as when a member left or was + /// removed from a space. + /// + /// This field is output only, except when used to import historical + /// memberships in import mode spaces. + /// + /// Optional. Immutable. + core.String? deleteTime; + + /// The Google Group the membership corresponds to. + /// + /// Only supports read operations. Other operations, like creating or updating + /// a membership, aren't currently supported. + Group? groupMember; + /// The Google Chat user or app the membership corresponds to. /// /// If your Chat app @@ -5313,6 +5535,8 @@ class Membership { Membership({ this.createTime, + this.deleteTime, + this.groupMember, this.member, this.name, this.role, @@ -5324,6 +5548,13 @@ class Membership { createTime: json_.containsKey('createTime') ? json_['createTime'] as core.String : null, + deleteTime: json_.containsKey('deleteTime') + ? json_['deleteTime'] as core.String + : null, + groupMember: json_.containsKey('groupMember') + ? Group.fromJson( + json_['groupMember'] as core.Map) + : null, member: json_.containsKey('member') ? User.fromJson( json_['member'] as core.Map) @@ -5336,6 +5567,8 @@ class Membership { core.Map toJson() => { if (createTime != null) 'createTime': createTime!, + if (deleteTime != null) 'deleteTime': deleteTime!, + if (groupMember != null) 'groupMember': groupMember!, if (member != null) 'member': member!, if (name != null) 'name': name!, if (role != null) 'role': role!, @@ -5388,31 +5621,28 @@ class Message { /// the messages can't contain cards. To learn about cards and how to create /// them, see /// [Design dynamic, interactive, and consistent UIs with cards](https://developers.google.com/chat/ui). + /// [Card builder](https://addons.gsuite.google.com/uikit/builder) core.List? cardsV2; - /// A custom name for a Chat message assigned at creation. - /// - /// Must start with `client-` and contain only lowercase letters, numbers, and - /// hyphens up to 63 characters in length. Specify this field to get, update, - /// or delete the message with the specified value. Assigning a custom name - /// lets a Chat app recall the message without saving the message `name` from - /// the \[response - /// body\](/chat/api/reference/rest/v1/spaces.messages/get#response-body) - /// returned when creating the message. Assigning a custom name doesn't - /// replace the generated `name` field, the message's resource name. Instead, - /// it sets the custom name as the `clientAssignedMessageId` field, which you - /// can reference while processing later operations, like updating or deleting - /// the message. For example usage, see - /// [Name a created message](https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message). + /// A custom ID for the message. + /// + /// You can use field to identify a message, or to get, delete, or update a + /// message. To set a custom ID, specify the + /// \[`messageId`\](https://developers.google.com/chat/api/reference/rest/v1/spaces.messages/create#body.QUERY_PARAMETERS.message_id) + /// field when you create the message. For details, see + /// [Name a message](https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message). + /// + /// Optional. core.String? clientAssignedMessageId; /// For spaces created in Chat, the time at which the message was created. /// - /// This field is output only, except when used in imported spaces. - /// [Developer Preview](https://developers.google.com/workspace/preview): For - /// imported spaces, set this field to the historical timestamp at which the - /// message was created in the source in order to preserve the original + /// This field is output only, except when used in import mode spaces. For + /// import mode spaces, set this field to the historical timestamp at which + /// the message was created in the source in order to preserve the original /// creation time. + /// + /// Optional. Immutable. core.String? createTime; /// The time at which the message was deleted in Google Chat. @@ -5471,11 +5701,33 @@ class Message { /// Output only. MatchedUrl? matchedUrl; - /// Resource name in the form `spaces / * /messages / * `. - /// - /// Example: `spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB` + /// Resource name of the message. + /// + /// Format: `spaces/{space}/messages/{message}` Where `{space}` is the ID of + /// the space where the message is posted and `{message}` is a system-assigned + /// ID for the message. For example, + /// `spaces/AAAAAAAAAAA/messages/BBBBBBBBBBB.BBBBBBBBBBB`. If you set a custom + /// ID when you create a message, you can use this ID to specify the message + /// in a request by replacing `{message}` with the value from the + /// `clientAssignedMessageId` field. For example, + /// `spaces/AAAAAAAAAAA/messages/client-custom-name`. For details, see + /// [Name a message](https://developers.google.com/chat/api/guides/v1/messages/create#name_a_created_message). core.String? name; + /// Input for creating a message, otherwise output only. + /// + /// The user that can view the message. When set, the message is private and + /// only visible to the specified user and the Chat app. Link previews and + /// attachments aren't supported for private messages. Only Chat apps can send + /// private messages. If your Chat app + /// [authenticates as a user](https://developers.google.com/chat/api/guides/auth/users) + /// to send a message, the message can't be private and must omit this field. + /// For details, see + /// [Send private messages to Google Chat users](https://developers.google.com/chat/api/guides/v1/messages/private). + /// + /// Immutable. + User? privateMessageViewer; + /// Information about a message that's quoted by a Google Chat user in a /// space. /// @@ -5551,6 +5803,7 @@ class Message { this.lastUpdateTime, this.matchedUrl, this.name, + this.privateMessageViewer, this.quotedMessageMetadata, this.sender, this.slashCommand, @@ -5632,6 +5885,10 @@ class Message { json_['matchedUrl'] as core.Map) : null, name: json_.containsKey('name') ? json_['name'] as core.String : null, + privateMessageViewer: json_.containsKey('privateMessageViewer') + ? User.fromJson(json_['privateMessageViewer'] + as core.Map) + : null, quotedMessageMetadata: json_.containsKey('quotedMessageMetadata') ? QuotedMessageMetadata.fromJson(json_['quotedMessageMetadata'] as core.Map) @@ -5678,6 +5935,8 @@ class Message { if (lastUpdateTime != null) 'lastUpdateTime': lastUpdateTime!, if (matchedUrl != null) 'matchedUrl': matchedUrl!, if (name != null) 'name': name!, + if (privateMessageViewer != null) + 'privateMessageViewer': privateMessageViewer!, if (quotedMessageMetadata != null) 'quotedMessageMetadata': quotedMessageMetadata!, if (sender != null) 'sender': sender!, @@ -6055,6 +6314,17 @@ class Space { /// Output only. core.bool? adminInstalled; + /// For spaces created in Chat, the time the space was created. + /// + /// This field is output only, except when used in import mode spaces. For + /// import mode spaces, set this field to the historical timestamp at which + /// the space was created in the source in order to preserve the original + /// creation time. Only populated in the output when `spaceType` is + /// `GROUP_CHAT` or `SPACE`. + /// + /// Optional. Immutable. + core.String? createTime; + /// The space's display name. /// /// Required when @@ -6079,6 +6349,15 @@ class Space { /// Immutable. core.bool? externalUserAllowed; + /// Whether this space is created in `Import Mode` as part of a data migration + /// into Google Workspace. + /// + /// While spaces are being imported, they aren't visible to users until the + /// import is complete. + /// + /// Optional. + core.bool? importMode; + /// Resource name of the space. /// /// Format: `spaces/{space}` @@ -6158,8 +6437,10 @@ class Space { Space({ this.adminInstalled, + this.createTime, this.displayName, this.externalUserAllowed, + this.importMode, this.name, this.singleUserBotDm, this.spaceDetails, @@ -6175,12 +6456,18 @@ class Space { adminInstalled: json_.containsKey('adminInstalled') ? json_['adminInstalled'] as core.bool : null, + createTime: json_.containsKey('createTime') + ? json_['createTime'] as core.String + : null, displayName: json_.containsKey('displayName') ? json_['displayName'] as core.String : null, externalUserAllowed: json_.containsKey('externalUserAllowed') ? json_['externalUserAllowed'] as core.bool : null, + importMode: json_.containsKey('importMode') + ? json_['importMode'] as core.bool + : null, name: json_.containsKey('name') ? json_['name'] as core.String : null, singleUserBotDm: json_.containsKey('singleUserBotDm') ? json_['singleUserBotDm'] as core.bool @@ -6206,9 +6493,11 @@ class Space { core.Map toJson() => { if (adminInstalled != null) 'adminInstalled': adminInstalled!, + if (createTime != null) 'createTime': createTime!, if (displayName != null) 'displayName': displayName!, if (externalUserAllowed != null) 'externalUserAllowed': externalUserAllowed!, + if (importMode != null) 'importMode': importMode!, if (name != null) 'name': name!, if (singleUserBotDm != null) 'singleUserBotDm': singleUserBotDm!, if (spaceDetails != null) 'spaceDetails': spaceDetails!, @@ -6225,6 +6514,7 @@ class Space { /// multiselect menu. /// /// Only populates spaces that the user is a member of. +/// [Google Chat apps](https://developers.google.com/chat): class SpaceDataSource { /// If set to `true`, the multiselect menu selects the current Google Chat /// space as an item by default. diff --git a/generated/googleapis/lib/chromemanagement/v1.dart b/generated/googleapis/lib/chromemanagement/v1.dart index 9c8bf6924..07da3dedf 100644 --- a/generated/googleapis/lib/chromemanagement/v1.dart +++ b/generated/googleapis/lib/chromemanagement/v1.dart @@ -1963,10 +1963,12 @@ class GoogleChromeManagementV1BatteryStatusReport { /// Output only. /// Possible string values are: /// - "BATTERY_HEALTH_UNSPECIFIED" : Health unknown. - /// - "BATTERY_HEALTH_NORMAL" : Battery is healthy. - /// - "BATTERY_REPLACE_SOON" : Battery is moderately unhealthy and should be - /// replaced soon. - /// - "BATTERY_REPLACE_NOW" : Battery is unhealthy and should be replaced. + /// - "BATTERY_HEALTH_NORMAL" : Battery is healthy, full charge capacity / + /// design capacity \> 80% + /// - "BATTERY_REPLACE_SOON" : Battery is moderately unhealthy and suggested + /// to be replaced soon, full charge capacity / design capacity 75% - 80% + /// - "BATTERY_REPLACE_NOW" : Battery is unhealthy and suggested to be + /// replaced, full charge capacity / design capacity \< 75% core.String? batteryHealth; /// Cycle count. diff --git a/generated/googleapis/lib/chromepolicy/v1.dart b/generated/googleapis/lib/chromepolicy/v1.dart index ca25e59db..cc7f84913 100644 --- a/generated/googleapis/lib/chromepolicy/v1.dart +++ b/generated/googleapis/lib/chromepolicy/v1.dart @@ -1202,8 +1202,15 @@ class GoogleChromePolicyVersionsV1FieldConstraints { /// The allowed range for numeric fields. GoogleChromePolicyVersionsV1NumericRangeConstraint? numericRangeConstraint; + /// Constraints on the uploaded file of a file policy. + /// + /// If present, this policy requires a URL that can be fetched by uploading a + /// file with the constraints specified in this proto. + GoogleChromePolicyVersionsV1UploadedFileConstraints? uploadedFileConstraints; + GoogleChromePolicyVersionsV1FieldConstraints({ this.numericRangeConstraint, + this.uploadedFileConstraints, }); GoogleChromePolicyVersionsV1FieldConstraints.fromJson(core.Map json_) @@ -1213,11 +1220,18 @@ class GoogleChromePolicyVersionsV1FieldConstraints { json_['numericRangeConstraint'] as core.Map) : null, + uploadedFileConstraints: json_.containsKey('uploadedFileConstraints') + ? GoogleChromePolicyVersionsV1UploadedFileConstraints.fromJson( + json_['uploadedFileConstraints'] + as core.Map) + : null, ); core.Map toJson() => { if (numericRangeConstraint != null) 'numericRangeConstraint': numericRangeConstraint!, + if (uploadedFileConstraints != null) + 'uploadedFileConstraints': uploadedFileConstraints!, }; } @@ -1713,6 +1727,12 @@ class GoogleChromePolicyVersionsV1PolicySchema { /// Output only. core.String? supportUri; + /// List indicates that the policy will only apply to devices/users on these + /// platforms. + /// + /// Output only. + core.List? supportedPlatforms; + /// Information about applicable target resources for the policy. /// /// Output only. @@ -1730,6 +1750,7 @@ class GoogleChromePolicyVersionsV1PolicySchema { this.policyDescription, this.schemaName, this.supportUri, + this.supportedPlatforms, this.validTargetResources, }); @@ -1787,6 +1808,11 @@ class GoogleChromePolicyVersionsV1PolicySchema { supportUri: json_.containsKey('supportUri') ? json_['supportUri'] as core.String : null, + supportedPlatforms: json_.containsKey('supportedPlatforms') + ? (json_['supportedPlatforms'] as core.List) + .map((value) => value as core.String) + .toList() + : null, validTargetResources: json_.containsKey('validTargetResources') ? (json_['validTargetResources'] as core.List) .map((value) => value as core.String) @@ -1809,6 +1835,8 @@ class GoogleChromePolicyVersionsV1PolicySchema { if (policyDescription != null) 'policyDescription': policyDescription!, if (schemaName != null) 'schemaName': schemaName!, if (supportUri != null) 'supportUri': supportUri!, + if (supportedPlatforms != null) + 'supportedPlatforms': supportedPlatforms!, if (validTargetResources != null) 'validTargetResources': validTargetResources!, }; @@ -2582,6 +2610,38 @@ class GoogleChromePolicyVersionsV1UploadPolicyFileResponse { }; } +/// Constraints on the uploaded file of a file policy. +class GoogleChromePolicyVersionsV1UploadedFileConstraints { + /// The size limit of uploaded files for a setting, in bytes. + core.String? sizeLimitBytes; + + /// File types that can be uploaded for a setting. + core.List? supportedContentTypes; + + GoogleChromePolicyVersionsV1UploadedFileConstraints({ + this.sizeLimitBytes, + this.supportedContentTypes, + }); + + GoogleChromePolicyVersionsV1UploadedFileConstraints.fromJson(core.Map json_) + : this( + sizeLimitBytes: json_.containsKey('sizeLimitBytes') + ? json_['sizeLimitBytes'] as core.String + : null, + supportedContentTypes: json_.containsKey('supportedContentTypes') + ? (json_['supportedContentTypes'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + ); + + core.Map toJson() => { + if (sizeLimitBytes != null) 'sizeLimitBytes': sizeLimitBytes!, + if (supportedContentTypes != null) + 'supportedContentTypes': supportedContentTypes!, + }; +} + /// A generic empty message that you can re-use to avoid defining duplicated /// empty messages in your APIs. /// diff --git a/generated/googleapis/lib/chromeuxreport/v1.dart b/generated/googleapis/lib/chromeuxreport/v1.dart index ddc54795c..bab2d75e2 100644 --- a/generated/googleapis/lib/chromeuxreport/v1.dart +++ b/generated/googleapis/lib/chromeuxreport/v1.dart @@ -232,6 +232,31 @@ class CollectionPeriod { /// google.protobuf.Timestamp typedef Date = $Date; +/// For enum metrics, provides fraction timeseries which add up to approximately +/// 1.0 per entry (k-th element into the repeated fractions field for any k \<= +/// len) across fraction_timeseries. +class FractionTimeseries { + /// Values between 0.0 and 1.0 (inclusive) and NaN. + core.List? fractions; + + FractionTimeseries({ + this.fractions, + }); + + FractionTimeseries.fromJson(core.Map json_) + : this( + fractions: json_.containsKey('fractions') + ? (json_['fractions'] as core.List) + .map((value) => (value as core.num).toDouble()) + .toList() + : null, + ); + + core.Map toJson() => { + if (fractions != null) 'fractions': fractions!, + }; +} + /// Key defines all the dimensions that identify this record as unique. class HistoryKey { /// The form factor is the device class that all users used to access the site @@ -475,6 +500,9 @@ class Metric { /// It contains a summary histogram of real world Chrome usage as a series of /// `bins`, where each bin has density values for a particular time period. class MetricTimeseries { + /// Mapping from labels to timeseries of fractions attributed to this label. + core.Map? fractionTimeseries; + /// The histogram of user experiences for a metric. /// /// The histogram will have at least one bin and the densities of all bins @@ -488,12 +516,24 @@ class MetricTimeseries { TimeseriesPercentiles? percentilesTimeseries; MetricTimeseries({ + this.fractionTimeseries, this.histogramTimeseries, this.percentilesTimeseries, }); MetricTimeseries.fromJson(core.Map json_) : this( + fractionTimeseries: json_.containsKey('fractionTimeseries') + ? (json_['fractionTimeseries'] + as core.Map) + .map( + (key, value) => core.MapEntry( + key, + FractionTimeseries.fromJson( + value as core.Map), + ), + ) + : null, histogramTimeseries: json_.containsKey('histogramTimeseries') ? (json_['histogramTimeseries'] as core.List) .map((value) => TimeseriesBin.fromJson( @@ -507,6 +547,8 @@ class MetricTimeseries { ); core.Map toJson() => { + if (fractionTimeseries != null) + 'fractionTimeseries': fractionTimeseries!, if (histogramTimeseries != null) 'histogramTimeseries': histogramTimeseries!, if (percentilesTimeseries != null) diff --git a/generated/googleapis/lib/classroom/v1.dart b/generated/googleapis/lib/classroom/v1.dart index d7b9974d2..238e02859 100644 --- a/generated/googleapis/lib/classroom/v1.dart +++ b/generated/googleapis/lib/classroom/v1.dart @@ -1294,9 +1294,9 @@ class CoursesCourseWorkResource { /// [updateMask] - Mask that identifies which fields on the course work to /// update. This field is required to do an update. The update fails if /// invalid fields are specified. If a field supports empty values, it can be - /// cleared by specifying it in the update mask and not in the CourseWork + /// cleared by specifying it in the update mask and not in the `CourseWork` /// object. If a field that does not support empty values is included in the - /// update mask and not set in the CourseWork object, an `INVALID_ARGUMENT` + /// update mask and not set in the `CourseWork` object, an `INVALID_ARGUMENT` /// error is returned. The following fields may be specified by teachers: * /// `title` * `description` * `state` * `due_date` * `due_time` * `max_points` /// * `scheduled_time` * `submission_modification_mode` * `topic_id` @@ -6441,8 +6441,8 @@ class Student { /// Student submission for course work. /// -/// StudentSubmission items are generated when a CourseWork item is created. -/// StudentSubmissions that have never been accessed (i.e. with `state` = NEW) +/// `StudentSubmission` items are generated when a `CourseWork` item is created. +/// Student submissions that have never been accessed (i.e. with `state` = NEW) /// may not have a creation time or update time. class StudentSubmission { /// Absolute link to the submission in the Classroom web UI. diff --git a/generated/googleapis/lib/cloudasset/v1.dart b/generated/googleapis/lib/cloudasset/v1.dart index e25ad4331..de80d2feb 100644 --- a/generated/googleapis/lib/cloudasset/v1.dart +++ b/generated/googleapis/lib/cloudasset/v1.dart @@ -192,16 +192,16 @@ class EffectiveIamPoliciesResource { /// returned. This can only be an organization number (such as /// "organizations/123"), a folder number (such as "folders/123"), a project /// ID (such as "projects/my-project-id"), or a project number (such as - /// "projects/12345"). To know how to get organization id, visit + /// "projects/12345"). To know how to get organization ID, visit /// [here ](https://cloud.google.com/resource-manager/docs/creating-managing-organization#retrieving_your_organization_id). - /// To know how to get folder or project id, visit + /// To know how to get folder or project ID, visit /// [here ](https://cloud.google.com/resource-manager/docs/creating-managing-folders#viewing_or_listing_folders_and_projects). /// Value must have pattern `^\[^/\]+/\[^/\]+$`. /// /// [names] - Required. The names refer to the /// [full_resource_names](https://cloud.google.com/asset-inventory/docs/resource-name-format) - /// of - /// [searchable asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types). + /// of the asset types + /// [supported by search APIs](https://cloud.google.com/asset-inventory/docs/supported-asset-types). /// A maximum of 20 resources' effective policies can be retrieved in a batch. /// /// [$fields] - Selector specifying which fields to include in a partial @@ -753,9 +753,9 @@ class V1Resource { /// organization number (such as "organizations/123"), a folder number (such /// as "folders/123"), a project ID (such as "projects/my-project-id"), or a /// project number (such as "projects/12345"). To know how to get organization - /// id, visit + /// ID, visit /// [here ](https://cloud.google.com/resource-manager/docs/creating-managing-organization#retrieving_your_organization_id). - /// To know how to get folder or project id, visit + /// To know how to get folder or project ID, visit /// [here ](https://cloud.google.com/resource-manager/docs/creating-managing-folders#viewing_or_listing_folders_and_projects). /// Value must have pattern `^\[^/\]+/\[^/\]+$`. /// @@ -978,9 +978,9 @@ class V1Resource { /// organization number (such as "organizations/123"), a folder number (such /// as "folders/123"), a project ID (such as "projects/my-project-id"), or a /// project number (such as "projects/12345"). To know how to get organization - /// id, visit + /// ID, visit /// [here ](https://cloud.google.com/resource-manager/docs/creating-managing-organization#retrieving_your_organization_id). - /// To know how to get folder or project id, visit + /// To know how to get folder or project ID, visit /// [here ](https://cloud.google.com/resource-manager/docs/creating-managing-folders#viewing_or_listing_folders_and_projects). /// Value must have pattern `^\[^/\]+/\[^/\]+$`. /// @@ -1149,15 +1149,49 @@ class V1Resource { /// Analyzes organization policies governed assets (Google Cloud resources or /// policies) under a scope. /// - /// This RPC supports custom constraints and the following 10 canned - /// constraints: * storage.uniformBucketLevelAccess * - /// iam.disableServiceAccountKeyCreation * iam.allowedPolicyMemberDomains * - /// compute.vmExternalIpAccess * appengine.enforceServiceAccountActAsCheck * - /// gcp.resourceLocations * compute.trustedImageProjects * - /// compute.skipDefaultNetworkCreation * compute.requireOsLogin * - /// compute.disableNestedVirtualization This RPC only returns either resources - /// of types supported by - /// [searchable asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types), + /// This RPC supports custom constraints and the following canned constraints: + /// * constraints/ainotebooks.accessMode * + /// constraints/ainotebooks.disableFileDownloads * + /// constraints/ainotebooks.disableRootAccess * + /// constraints/ainotebooks.disableTerminal * + /// constraints/ainotebooks.environmentOptions * + /// constraints/ainotebooks.requireAutoUpgradeSchedule * + /// constraints/ainotebooks.restrictVpcNetworks * + /// constraints/compute.disableGuestAttributesAccess * + /// constraints/compute.disableInstanceDataAccessApis * + /// constraints/compute.disableNestedVirtualization * + /// constraints/compute.disableSerialPortAccess * + /// constraints/compute.disableSerialPortLogging * + /// constraints/compute.disableVpcExternalIpv6 * + /// constraints/compute.requireOsLogin * constraints/compute.requireShieldedVm + /// * constraints/compute.restrictLoadBalancerCreationForTypes * + /// constraints/compute.restrictProtocolForwardingCreationForTypes * + /// constraints/compute.restrictXpnProjectLienRemoval * + /// constraints/compute.setNewProjectDefaultToZonalDNSOnly * + /// constraints/compute.skipDefaultNetworkCreation * + /// constraints/compute.trustedImageProjects * + /// constraints/compute.vmCanIpForward * + /// constraints/compute.vmExternalIpAccess * + /// constraints/gcp.detailedAuditLoggingMode * + /// constraints/gcp.resourceLocations * + /// constraints/iam.allowedPolicyMemberDomains * + /// constraints/iam.automaticIamGrantsForDefaultServiceAccounts * + /// constraints/iam.disableServiceAccountCreation * + /// constraints/iam.disableServiceAccountKeyCreation * + /// constraints/iam.disableServiceAccountKeyUpload * + /// constraints/iam.restrictCrossProjectServiceAccountLienRemoval * + /// constraints/iam.serviceAccountKeyExpiryHours * + /// constraints/resourcemanager.accessBoundaries * + /// constraints/resourcemanager.allowedExportDestinations * + /// constraints/sql.restrictAuthorizedNetworks * + /// constraints/sql.restrictNoncompliantDiagnosticDataAccess * + /// constraints/sql.restrictNoncompliantResourceCreation * + /// constraints/sql.restrictPublicIp * + /// constraints/storage.publicAccessPrevention * + /// constraints/storage.restrictAuthTypes * + /// constraints/storage.uniformBucketLevelAccess This RPC only returns either + /// resources of types + /// [supported by search APIs](https://cloud.google.com/asset-inventory/docs/supported-asset-types) /// or IAM policies. /// /// Request parameters: @@ -1532,8 +1566,8 @@ class V1Resource { /// /// [assetTypes] - Optional. A list of asset types that the IAM policies are /// attached to. If empty, it will search the IAM policies that are attached - /// to all the - /// [searchable asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types). + /// to all the asset types + /// [supported by search APIs](https://cloud.google.com/asset-inventory/docs/supported-asset-types) /// Regular expressions are also supported. For example: * /// "compute.googleapis.com.*" snapshots IAM policies attached to asset type /// starts with "compute.googleapis.com". * ".*Instance" snapshots IAM @@ -1656,8 +1690,8 @@ class V1Resource { /// Value must have pattern `^\[^/\]+/\[^/\]+$`. /// /// [assetTypes] - Optional. A list of asset types that this request searches - /// for. If empty, it will search all the - /// [searchable asset types](https://cloud.google.com/asset-inventory/docs/supported-asset-types). + /// for. If empty, it will search all the asset types + /// [supported by search APIs](https://cloud.google.com/asset-inventory/docs/supported-asset-types). /// Regular expressions are also supported. For example: * /// "compute.googleapis.com.*" snapshots resources whose asset type starts /// with "compute.googleapis.com". * ".*Instance" snapshots resources whose @@ -2710,14 +2744,31 @@ class Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -2726,12 +2777,19 @@ class Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; Binding({ @@ -2785,7 +2843,7 @@ class ConditionContext { }; } -/// The Condition evaluation. +/// The condition evaluation. class ConditionEvaluation { /// The evaluation result. /// Possible string values are: @@ -2794,7 +2852,7 @@ class ConditionEvaluation { /// - "FALSE" : The evaluation result is `false`. /// - "CONDITIONAL" : The evaluation result is `conditional` when the /// condition expression contains variables that are either missing input - /// values or have not been supported by Analyzer yet. + /// values or have not been supported by Policy Analyzer yet. core.String? evaluationValue; ConditionEvaluation({ @@ -3507,6 +3565,14 @@ class GoogleCloudAssetV1AnalyzeOrgPolicyGovernedAssetsResponseGovernedAsset { /// The IAM policies governed by the organization policies of the /// AnalyzeOrgPolicyGovernedAssetsRequest.constraint. class GoogleCloudAssetV1AnalyzeOrgPolicyGovernedAssetsResponseGovernedIamPolicy { + /// The asset type of the + /// AnalyzeOrgPolicyGovernedAssetsResponse.GovernedIamPolicy.attached_resource. + /// + /// Example: `cloudresourcemanager.googleapis.com/Project` See + /// [Cloud Asset Inventory Supported Asset Types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) + /// for all supported asset types. + core.String? assetType; + /// The full resource name of the resource on which this IAM policy is set. /// /// Example: @@ -3540,6 +3606,7 @@ class GoogleCloudAssetV1AnalyzeOrgPolicyGovernedAssetsResponseGovernedIamPolicy core.String? project; GoogleCloudAssetV1AnalyzeOrgPolicyGovernedAssetsResponseGovernedIamPolicy({ + this.assetType, this.attachedResource, this.folders, this.organization, @@ -3550,6 +3617,9 @@ class GoogleCloudAssetV1AnalyzeOrgPolicyGovernedAssetsResponseGovernedIamPolicy GoogleCloudAssetV1AnalyzeOrgPolicyGovernedAssetsResponseGovernedIamPolicy.fromJson( core.Map json_) : this( + assetType: json_.containsKey('assetType') + ? json_['assetType'] as core.String + : null, attachedResource: json_.containsKey('attachedResource') ? json_['attachedResource'] as core.String : null, @@ -3571,6 +3641,7 @@ class GoogleCloudAssetV1AnalyzeOrgPolicyGovernedAssetsResponseGovernedIamPolicy ); core.Map toJson() => { + if (assetType != null) 'assetType': assetType!, if (attachedResource != null) 'attachedResource': attachedResource!, if (folders != null) 'folders': folders!, if (organization != null) 'organization': organization!, @@ -3582,6 +3653,16 @@ class GoogleCloudAssetV1AnalyzeOrgPolicyGovernedAssetsResponseGovernedIamPolicy /// The Google Cloud resources governed by the organization policies of the /// AnalyzeOrgPolicyGovernedAssetsRequest.constraint. class GoogleCloudAssetV1AnalyzeOrgPolicyGovernedAssetsResponseGovernedResource { + /// The asset type of the + /// AnalyzeOrgPolicyGovernedAssetsResponse.GovernedResource.full_resource_name + /// Example: `cloudresourcemanager.googleapis.com/Project` See + /// [Cloud Asset Inventory Supported Asset Types](https://cloud.google.com/asset-inventory/docs/supported-asset-types) + /// for all supported asset types. + core.String? assetType; + + /// The effective tags on this resource. + core.List? effectiveTags; + /// The folder(s) that this resource belongs to, in the format of /// folders/{FOLDER_NUMBER}. /// @@ -3614,6 +3695,8 @@ class GoogleCloudAssetV1AnalyzeOrgPolicyGovernedAssetsResponseGovernedResource { core.String? project; GoogleCloudAssetV1AnalyzeOrgPolicyGovernedAssetsResponseGovernedResource({ + this.assetType, + this.effectiveTags, this.folders, this.fullResourceName, this.organization, @@ -3624,6 +3707,15 @@ class GoogleCloudAssetV1AnalyzeOrgPolicyGovernedAssetsResponseGovernedResource { GoogleCloudAssetV1AnalyzeOrgPolicyGovernedAssetsResponseGovernedResource.fromJson( core.Map json_) : this( + assetType: json_.containsKey('assetType') + ? json_['assetType'] as core.String + : null, + effectiveTags: json_.containsKey('effectiveTags') + ? (json_['effectiveTags'] as core.List) + .map((value) => EffectiveTagDetails.fromJson( + value as core.Map)) + .toList() + : null, folders: json_.containsKey('folders') ? (json_['folders'] as core.List) .map((value) => value as core.String) @@ -3644,6 +3736,8 @@ class GoogleCloudAssetV1AnalyzeOrgPolicyGovernedAssetsResponseGovernedResource { ); core.Map toJson() => { + if (assetType != null) 'assetType': assetType!, + if (effectiveTags != null) 'effectiveTags': effectiveTags!, if (folders != null) 'folders': folders!, if (fullResourceName != null) 'fullResourceName': fullResourceName!, if (organization != null) 'organization': organization!, @@ -3974,11 +4068,28 @@ class GoogleCloudAssetV1GovernedContainer { /// [hierarchy rules](https://cloud.google.com/resource-manager/docs/organization-policy/understanding-hierarchy). AnalyzerOrgPolicy? consolidatedPolicy; + /// The effective tags on this resource. + core.List? effectiveTags; + + /// The folder(s) that this resource belongs to, in the format of + /// folders/{FOLDER_NUMBER}. + /// + /// This field is available when the resource belongs (directly or + /// cascadingly) to one or more folders. + core.List? folders; + /// The /// [full resource name](https://cloud.google.com/asset-inventory/docs/resource-name-format) /// of an organization/folder/project resource. core.String? fullResourceName; + /// The organization that this resource belongs to, in the format of + /// organizations/{ORGANIZATION_NUMBER}. + /// + /// This field is available when the resource belongs (directly or + /// cascadingly) to an organization. + core.String? organization; + /// The /// [full resource name](https://cloud.google.com/asset-inventory/docs/resource-name-format) /// of the parent of @@ -3992,11 +4103,21 @@ class GoogleCloudAssetV1GovernedContainer { /// default policy, it will also appear in the list. core.List? policyBundle; + /// The project that this resource belongs to, in the format of + /// projects/{PROJECT_NUMBER}. + /// + /// This field is available when the resource belongs to a project. + core.String? project; + GoogleCloudAssetV1GovernedContainer({ this.consolidatedPolicy, + this.effectiveTags, + this.folders, this.fullResourceName, + this.organization, this.parent, this.policyBundle, + this.project, }); GoogleCloudAssetV1GovernedContainer.fromJson(core.Map json_) @@ -4005,9 +4126,23 @@ class GoogleCloudAssetV1GovernedContainer { ? AnalyzerOrgPolicy.fromJson(json_['consolidatedPolicy'] as core.Map) : null, + effectiveTags: json_.containsKey('effectiveTags') + ? (json_['effectiveTags'] as core.List) + .map((value) => EffectiveTagDetails.fromJson( + value as core.Map)) + .toList() + : null, + folders: json_.containsKey('folders') + ? (json_['folders'] as core.List) + .map((value) => value as core.String) + .toList() + : null, fullResourceName: json_.containsKey('fullResourceName') ? json_['fullResourceName'] as core.String : null, + organization: json_.containsKey('organization') + ? json_['organization'] as core.String + : null, parent: json_.containsKey('parent') ? json_['parent'] as core.String : null, @@ -4017,14 +4152,21 @@ class GoogleCloudAssetV1GovernedContainer { value as core.Map)) .toList() : null, + project: json_.containsKey('project') + ? json_['project'] as core.String + : null, ); core.Map toJson() => { if (consolidatedPolicy != null) 'consolidatedPolicy': consolidatedPolicy!, + if (effectiveTags != null) 'effectiveTags': effectiveTags!, + if (folders != null) 'folders': folders!, if (fullResourceName != null) 'fullResourceName': fullResourceName!, + if (organization != null) 'organization': organization!, if (parent != null) 'parent': parent!, if (policyBundle != null) 'policyBundle': policyBundle!, + if (project != null) 'project': project!, }; } @@ -4242,6 +4384,17 @@ class GoogleCloudAssetV1Rule { /// The evaluating condition for this rule. Expr? condition; + /// The condition evaluation result for this rule. + /// + /// Only populated if it meets all the following criteria: * There is a + /// condition defined for this rule. * This rule is within + /// AnalyzeOrgPolicyGovernedContainersResponse.GovernedContainer.consolidated_policy, + /// or + /// AnalyzeOrgPolicyGovernedAssetsResponse.GovernedAsset.consolidated_policy + /// when the AnalyzeOrgPolicyGovernedAssetsResponse.GovernedAsset has + /// AnalyzeOrgPolicyGovernedAssetsResponse.GovernedAsset.governed_resource. + ConditionEvaluation? conditionEvaluation; + /// Setting this to true means that all values are denied. /// /// This field can be set only in Policies for list constraints. @@ -4253,14 +4406,15 @@ class GoogleCloudAssetV1Rule { /// only in Policies for boolean constraints. core.bool? enforce; - /// List of values to be used for this PolicyRule. + /// List of values to be used for this policy rule. /// - /// This field can be set only in Policies for list constraints. + /// This field can be set only in policies for list constraints. GoogleCloudAssetV1StringValues? values; GoogleCloudAssetV1Rule({ this.allowAll, this.condition, + this.conditionEvaluation, this.denyAll, this.enforce, this.values, @@ -4275,6 +4429,10 @@ class GoogleCloudAssetV1Rule { ? Expr.fromJson( json_['condition'] as core.Map) : null, + conditionEvaluation: json_.containsKey('conditionEvaluation') + ? ConditionEvaluation.fromJson(json_['conditionEvaluation'] + as core.Map) + : null, denyAll: json_.containsKey('denyAll') ? json_['denyAll'] as core.bool : null, @@ -4290,6 +4448,8 @@ class GoogleCloudAssetV1Rule { core.Map toJson() => { if (allowAll != null) 'allowAll': allowAll!, if (condition != null) 'condition': condition!, + if (conditionEvaluation != null) + 'conditionEvaluation': conditionEvaluation!, if (denyAll != null) 'denyAll': denyAll!, if (enforce != null) 'enforce': enforce!, if (values != null) 'values': values!, @@ -4839,10 +4999,8 @@ class GoogleIdentityAccesscontextmanagerV1DevicePolicy { /// order for this request to succeed. class GoogleIdentityAccesscontextmanagerV1EgressFrom { /// A list of identities that are allowed access through this - /// \[EgressPolicy\]. - /// - /// Should be in the format of email address. The email address should - /// represent individual user or service account only. + /// \[EgressPolicy\], in the format of `user:{email_id}` or + /// `serviceAccount:{email_id}`. core.List? identities; /// Specifies the type of identities that are allowed access to outside the @@ -5039,10 +5197,8 @@ class GoogleIdentityAccesscontextmanagerV1EgressTo { /// request must satisfy what is defined in `sources` AND identity related /// fields in order to match. class GoogleIdentityAccesscontextmanagerV1IngressFrom { - /// A list of identities that are allowed access through this ingress policy. - /// - /// Should be in the format of email address. The email address should - /// represent individual user or service account only. + /// A list of identities that are allowed access through this ingress policy, + /// in the format of `user:{email_id}` or `serviceAccount:{email_id}`. core.List? identities; /// Specifies the type of identities that are allowed access from outside the @@ -5575,9 +5731,9 @@ class IamPolicyAnalysisQuery { /// can only be an organization number (such as "organizations/123"), a folder /// number (such as "folders/123"), a project ID (such as /// "projects/my-project-id"), or a project number (such as "projects/12345"). - /// To know how to get organization id, visit + /// To know how to get organization ID, visit /// [here ](https://cloud.google.com/resource-manager/docs/creating-managing-organization#retrieving_your_organization_id). - /// To know how to get folder or project id, visit + /// To know how to get folder or project ID, visit /// [here ](https://cloud.google.com/resource-manager/docs/creating-managing-folders#viewing_or_listing_folders_and_projects). /// /// Required. @@ -6519,6 +6675,20 @@ class OrgPolicyResult { /// [hierarchy rules](https://cloud.google.com/resource-manager/docs/organization-policy/understanding-hierarchy). AnalyzerOrgPolicy? consolidatedPolicy; + /// The folder(s) that this consolidated policy belongs to, in the format of + /// folders/{FOLDER_NUMBER}. + /// + /// This field is available when the consolidated policy belongs (directly or + /// cascadingly) to one or more folders. + core.List? folders; + + /// The organization that this consolidated policy belongs to, in the format + /// of organizations/{ORGANIZATION_NUMBER}. + /// + /// This field is available when the consolidated policy belongs (directly or + /// cascadingly) to an organization. + core.String? organization; + /// The ordered list of all organization policies from the /// AnalyzeOrgPoliciesResponse.OrgPolicyResult.consolidated_policy.attached_resource. /// @@ -6526,9 +6696,18 @@ class OrgPolicyResult { /// default policy, it will also appear in the list. core.List? policyBundle; + /// The project that this consolidated policy belongs to, in the format of + /// projects/{PROJECT_NUMBER}. + /// + /// This field is available when the consolidated policy belongs to a project. + core.String? project; + OrgPolicyResult({ this.consolidatedPolicy, + this.folders, + this.organization, this.policyBundle, + this.project, }); OrgPolicyResult.fromJson(core.Map json_) @@ -6537,18 +6716,32 @@ class OrgPolicyResult { ? AnalyzerOrgPolicy.fromJson(json_['consolidatedPolicy'] as core.Map) : null, + folders: json_.containsKey('folders') + ? (json_['folders'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + organization: json_.containsKey('organization') + ? json_['organization'] as core.String + : null, policyBundle: json_.containsKey('policyBundle') ? (json_['policyBundle'] as core.List) .map((value) => AnalyzerOrgPolicy.fromJson( value as core.Map)) .toList() : null, + project: json_.containsKey('project') + ? json_['project'] as core.String + : null, ); core.Map toJson() => { if (consolidatedPolicy != null) 'consolidatedPolicy': consolidatedPolicy!, + if (folders != null) 'folders': folders!, + if (organization != null) 'organization': organization!, if (policyBundle != null) 'policyBundle': policyBundle!, + if (project != null) 'project': project!, }; } @@ -7371,7 +7564,6 @@ class Resource { /// resource defined in the /// [IAM policy hierarchy](https://cloud.google.com/iam/docs/overview#policy_hierarchy). /// Example: `//cloudresourcemanager.googleapis.com/projects/my_project_123` - /// For third-party assets, this field may be set differently. core.String? parent; /// The REST URL for accessing the resource. @@ -8320,7 +8512,7 @@ class TableSchema { } /// The key and value for a -/// [tag](https://cloud.google.com/resource-manager/docs/tags/tags-overview), +/// [tag](https://cloud.google.com/resource-manager/docs/tags/tags-overview). class Tag { /// TagKey namespaced name, in the format of {ORG_ID}/{TAG_KEY_SHORT_NAME}. core.String? tagKey; diff --git a/generated/googleapis/lib/cloudbilling/v1.dart b/generated/googleapis/lib/cloudbilling/v1.dart index b03276a2c..59a8f216a 100644 --- a/generated/googleapis/lib/cloudbilling/v1.dart +++ b/generated/googleapis/lib/cloudbilling/v1.dart @@ -102,8 +102,7 @@ class BillingAccountsResource { /// Request parameters: /// /// [parent] - Optional. The parent to create a billing account from. Format: - /// - organizations/{organization_id} eg organizations/12345678 - - /// billingAccounts/{billing_account_id} eg + /// - `billingAccounts/{billing_account_id}`, for example, /// `billingAccounts/012345-567890-ABCDEF` /// /// [$fields] - Selector specifying which fields to include in a partial @@ -245,8 +244,8 @@ class BillingAccountsResource { /// [filter] - Options for how to filter the returned billing accounts. This /// only supports filtering for /// [subaccounts](https://cloud.google.com/billing/docs/concepts) under a - /// single provided parent billing account. (e.g. - /// "master_billing_account=billingAccounts/012345-678901-ABCDEF"). Boolean + /// single provided parent billing account. (for example, + /// `master_billing_account=billingAccounts/012345-678901-ABCDEF`). Boolean /// algebra and other fields are not currently supported. /// /// [pageSize] - Requested page size. The maximum page size is 100; this is @@ -258,9 +257,9 @@ class BillingAccountsResource { /// returned. /// /// [parent] - Optional. The parent resource to list billing accounts from. - /// Format: - organizations/{organization_id} eg organizations/12345678 - - /// billingAccounts/{billing_account_id} eg - /// `billingAccounts/012345-567890-ABCDEF` + /// Format: - `organizations/{organization_id}`, for example, + /// `organizations/12345678` - `billingAccounts/{billing_account_id}`, for + /// example, `billingAccounts/012345-567890-ABCDEF` /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -579,8 +578,7 @@ class BillingAccountsSubAccountsResource { /// Request parameters: /// /// [parent] - Optional. The parent to create a billing account from. Format: - /// - organizations/{organization_id} eg organizations/12345678 - - /// billingAccounts/{billing_account_id} eg + /// - `billingAccounts/{billing_account_id}`, for example, /// `billingAccounts/012345-567890-ABCDEF` /// Value must have pattern `^billingAccounts/\[^/\]+$`. /// @@ -623,16 +621,16 @@ class BillingAccountsSubAccountsResource { /// Request parameters: /// /// [parent] - Optional. The parent resource to list billing accounts from. - /// Format: - organizations/{organization_id} eg organizations/12345678 - - /// billingAccounts/{billing_account_id} eg - /// `billingAccounts/012345-567890-ABCDEF` + /// Format: - `organizations/{organization_id}`, for example, + /// `organizations/12345678` - `billingAccounts/{billing_account_id}`, for + /// example, `billingAccounts/012345-567890-ABCDEF` /// Value must have pattern `^billingAccounts/\[^/\]+$`. /// /// [filter] - Options for how to filter the returned billing accounts. This /// only supports filtering for /// [subaccounts](https://cloud.google.com/billing/docs/concepts) under a - /// single provided parent billing account. (e.g. - /// "master_billing_account=billingAccounts/012345-678901-ABCDEF"). Boolean + /// single provided parent billing account. (for example, + /// `master_billing_account=billingAccounts/012345-678901-ABCDEF`). Boolean /// algebra and other fields are not currently supported. /// /// [pageSize] - Requested page size. The maximum page size is 100; this is @@ -713,8 +711,7 @@ class OrganizationsBillingAccountsResource { /// Request parameters: /// /// [parent] - Optional. The parent to create a billing account from. Format: - /// - organizations/{organization_id} eg organizations/12345678 - - /// billingAccounts/{billing_account_id} eg + /// - `billingAccounts/{billing_account_id}`, for example, /// `billingAccounts/012345-567890-ABCDEF` /// Value must have pattern `^organizations/\[^/\]+$`. /// @@ -757,16 +754,16 @@ class OrganizationsBillingAccountsResource { /// Request parameters: /// /// [parent] - Optional. The parent resource to list billing accounts from. - /// Format: - organizations/{organization_id} eg organizations/12345678 - - /// billingAccounts/{billing_account_id} eg - /// `billingAccounts/012345-567890-ABCDEF` + /// Format: - `organizations/{organization_id}`, for example, + /// `organizations/12345678` - `billingAccounts/{billing_account_id}`, for + /// example, `billingAccounts/012345-567890-ABCDEF` /// Value must have pattern `^organizations/\[^/\]+$`. /// /// [filter] - Options for how to filter the returned billing accounts. This /// only supports filtering for /// [subaccounts](https://cloud.google.com/billing/docs/concepts) under a - /// single provided parent billing account. (e.g. - /// "master_billing_account=billingAccounts/012345-678901-ABCDEF"). Boolean + /// single provided parent billing account. (for example, + /// `master_billing_account=billingAccounts/012345-678901-ABCDEF`). Boolean /// algebra and other fields are not currently supported. /// /// [pageSize] - Requested page size. The maximum page size is 100; this is @@ -817,7 +814,7 @@ class OrganizationsBillingAccountsResource { /// Request parameters: /// /// [destinationParent] - Required. The resource name of the Organization to - /// reparent the billing account under. Must be of the form + /// move the billing account under. Must be of the form /// `organizations/{organization_id}`. /// Value must have pattern `^organizations/\[^/\]+$`. /// @@ -1247,7 +1244,7 @@ class BillingAccount { /// usage on associated projects. /// /// False if the billing account is closed, and therefore projects associated - /// with it will be unable to use paid services. + /// with it are unable to use paid services. /// /// Output only. core.bool? open; @@ -1256,8 +1253,8 @@ class BillingAccount { /// /// Use the `MoveBillingAccount` method to update the account's parent /// resource if it is a organization. Format: - - /// organizations/{organization_id}, for example: organizations/12345678 - - /// billingAccounts/{billing_account_id}, for example: + /// `organizations/{organization_id}`, for example, `organizations/12345678` - + /// `billingAccounts/{billing_account_id}`, for example, /// `billingAccounts/012345-567890-ABCDEF` /// /// Output only. @@ -1328,14 +1325,31 @@ class Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -1344,12 +1358,19 @@ class Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; Binding({ @@ -1640,8 +1661,7 @@ typedef Money = $Money; /// Request message for `MoveBillingAccount` RPC. class MoveBillingAccountRequest { - /// The resource name of the Organization to reparent the billing account - /// under. + /// The resource name of the Organization to move the billing account under. /// /// Must be of the form `organizations/{organization_id}`. /// diff --git a/generated/googleapis/lib/cloudbuild/v1.dart b/generated/googleapis/lib/cloudbuild/v1.dart index a00857e7b..c06108f9b 100644 --- a/generated/googleapis/lib/cloudbuild/v1.dart +++ b/generated/googleapis/lib/cloudbuild/v1.dart @@ -5641,6 +5641,7 @@ class GitFileSource { /// GitHub Enterprise). /// - "BITBUCKET_SERVER" : A Bitbucket Server-hosted repo. /// - "GITLAB" : A GitLab-hosted repo. + /// - "BITBUCKET_CLOUD" : A Bitbucket Cloud-hosted repo. core.String? repoType; /// The fully qualified resource name of the Repos API repository. @@ -6403,6 +6404,7 @@ class GitRepoSource { /// GitHub Enterprise). /// - "BITBUCKET_SERVER" : A Bitbucket Server-hosted repo. /// - "GITLAB" : A GitLab-hosted repo. + /// - "BITBUCKET_CLOUD" : A Bitbucket Cloud-hosted repo. core.String? repoType; /// The connected repository resource name, in the format `projects / * @@ -7231,16 +7233,29 @@ class PullRequestFilter { /// RE2 and described at https://github.com/google/re2/wiki/Syntax core.String? branch; - /// Configure builds to run whether a repository owner or collaborator need to - /// comment `/gcbrun`. + /// If CommentControl is enabled, depending on the setting, builds may not + /// fire until a repository writer comments `/gcbrun` on a pull request or + /// `/gcbrun` is in the pull request description. + /// + /// Only PR comments that contain `/gcbrun` will trigger builds. If + /// CommentControl is set to disabled, comments with `/gcbrun` from a user + /// with repository write permission or above will still trigger builds to + /// run. /// Possible string values are: - /// - "COMMENTS_DISABLED" : Do not require comments on Pull Requests before - /// builds are triggered. - /// - "COMMENTS_ENABLED" : Enforce that repository owners or collaborators - /// must comment on Pull Requests before builds are triggered. - /// - "COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY" : Enforce that - /// repository owners or collaborators must comment on external contributors' - /// Pull Requests before builds are triggered. + /// - "COMMENTS_DISABLED" : Do not require `/gcbrun` comments from a user with + /// repository write permission or above on pull requests before builds are + /// triggered. Comments that contain `/gcbrun` will still fire builds so this + /// should be thought of as comments not required. + /// - "COMMENTS_ENABLED" : Builds will only fire in response to pull requests + /// if: 1. The pull request author has repository write permission or above + /// and `/gcbrun` is in the PR description. 2. A user with repository writer + /// permissions or above comments `/gcbrun` on a pull request authored by any + /// user. + /// - "COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY" : Builds will only + /// fire in response to pull requests if: 1. The pull request author is a + /// repository writer or above. 2. If the author does not have write + /// permissions, a user with write permissions or above must comment `/gcbrun` + /// in order to fire a build. core.String? commentControl; /// If true, branches that do NOT match the git_ref will trigger a build. @@ -7524,6 +7539,7 @@ class RepositoryEventConfig { /// - "GITHUB_ENTERPRISE" : The SCM repo is GITHUB Enterprise. /// - "GITLAB_ENTERPRISE" : The SCM repo is GITLAB Enterprise. /// - "BITBUCKET_DATA_CENTER" : The SCM repo is BITBUCKET Data Center. + /// - "BITBUCKET_CLOUD" : The SCM repo is BITBUCKET Cloud. core.String? repositoryType; RepositoryEventConfig({ diff --git a/generated/googleapis/lib/cloudbuild/v2.dart b/generated/googleapis/lib/cloudbuild/v2.dart index df8932904..24d40defa 100644 --- a/generated/googleapis/lib/cloudbuild/v2.dart +++ b/generated/googleapis/lib/cloudbuild/v2.dart @@ -1260,14 +1260,31 @@ class Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -1276,12 +1293,19 @@ class Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; Binding({ @@ -1311,15 +1335,188 @@ class Binding { }; } +/// Configuration for connections to Bitbucket Cloud. +class BitbucketCloudConfig { + /// An access token with the `webhook`, `repository`, `repository:admin` and + /// `pullrequest` scope access. + /// + /// It can be either a workspace, project or repository access token. It's + /// recommended to use a system account to generate these credentials. + /// + /// Required. + UserCredential? authorizerCredential; + + /// An access token with the `repository` access. + /// + /// It can be either a workspace, project or repository access token. It's + /// recommended to use a system account to generate the credentials. + /// + /// Required. + UserCredential? readAuthorizerCredential; + + /// SecretManager resource containing the webhook secret used to verify + /// webhook events, formatted as `projects / * /secrets / * /versions / * `. + /// + /// Required. + core.String? webhookSecretSecretVersion; + + /// The Bitbucket Cloud Workspace ID to be connected to Google Cloud Platform. + /// + /// Required. + core.String? workspace; + + BitbucketCloudConfig({ + this.authorizerCredential, + this.readAuthorizerCredential, + this.webhookSecretSecretVersion, + this.workspace, + }); + + BitbucketCloudConfig.fromJson(core.Map json_) + : this( + authorizerCredential: json_.containsKey('authorizerCredential') + ? UserCredential.fromJson(json_['authorizerCredential'] + as core.Map) + : null, + readAuthorizerCredential: + json_.containsKey('readAuthorizerCredential') + ? UserCredential.fromJson(json_['readAuthorizerCredential'] + as core.Map) + : null, + webhookSecretSecretVersion: + json_.containsKey('webhookSecretSecretVersion') + ? json_['webhookSecretSecretVersion'] as core.String + : null, + workspace: json_.containsKey('workspace') + ? json_['workspace'] as core.String + : null, + ); + + core.Map toJson() => { + if (authorizerCredential != null) + 'authorizerCredential': authorizerCredential!, + if (readAuthorizerCredential != null) + 'readAuthorizerCredential': readAuthorizerCredential!, + if (webhookSecretSecretVersion != null) + 'webhookSecretSecretVersion': webhookSecretSecretVersion!, + if (workspace != null) 'workspace': workspace!, + }; +} + +/// Configuration for connections to Bitbucket Data Center. +class BitbucketDataCenterConfig { + /// A http access token with the `REPO_ADMIN` scope access. + /// + /// Required. + UserCredential? authorizerCredential; + + /// The URI of the Bitbucket Data Center instance or cluster this connection + /// is for. + /// + /// Required. + core.String? hostUri; + + /// A http access token with the `REPO_READ` access. + /// + /// Required. + UserCredential? readAuthorizerCredential; + + /// Version of the Bitbucket Data Center running on the `host_uri`. + /// + /// Output only. + core.String? serverVersion; + + /// Configuration for using Service Directory to privately connect to a + /// Bitbucket Data Center. + /// + /// This should only be set if the Bitbucket Data Center is hosted on-premises + /// and not reachable by public internet. If this field is left empty, calls + /// to the Bitbucket Data Center will be made over the public internet. + /// + /// Optional. + GoogleDevtoolsCloudbuildV2ServiceDirectoryConfig? serviceDirectoryConfig; + + /// SSL certificate to use for requests to the Bitbucket Data Center. + /// + /// Optional. + core.String? sslCa; + + /// SecretManager resource containing the webhook secret used to verify + /// webhook events, formatted as `projects / * /secrets / * /versions / * `. + /// + /// Required. Immutable. + core.String? webhookSecretSecretVersion; + + BitbucketDataCenterConfig({ + this.authorizerCredential, + this.hostUri, + this.readAuthorizerCredential, + this.serverVersion, + this.serviceDirectoryConfig, + this.sslCa, + this.webhookSecretSecretVersion, + }); + + BitbucketDataCenterConfig.fromJson(core.Map json_) + : this( + authorizerCredential: json_.containsKey('authorizerCredential') + ? UserCredential.fromJson(json_['authorizerCredential'] + as core.Map) + : null, + hostUri: json_.containsKey('hostUri') + ? json_['hostUri'] as core.String + : null, + readAuthorizerCredential: + json_.containsKey('readAuthorizerCredential') + ? UserCredential.fromJson(json_['readAuthorizerCredential'] + as core.Map) + : null, + serverVersion: json_.containsKey('serverVersion') + ? json_['serverVersion'] as core.String + : null, + serviceDirectoryConfig: json_.containsKey('serviceDirectoryConfig') + ? GoogleDevtoolsCloudbuildV2ServiceDirectoryConfig.fromJson( + json_['serviceDirectoryConfig'] + as core.Map) + : null, + sslCa: + json_.containsKey('sslCa') ? json_['sslCa'] as core.String : null, + webhookSecretSecretVersion: + json_.containsKey('webhookSecretSecretVersion') + ? json_['webhookSecretSecretVersion'] as core.String + : null, + ); + + core.Map toJson() => { + if (authorizerCredential != null) + 'authorizerCredential': authorizerCredential!, + if (hostUri != null) 'hostUri': hostUri!, + if (readAuthorizerCredential != null) + 'readAuthorizerCredential': readAuthorizerCredential!, + if (serverVersion != null) 'serverVersion': serverVersion!, + if (serviceDirectoryConfig != null) + 'serviceDirectoryConfig': serviceDirectoryConfig!, + if (sslCa != null) 'sslCa': sslCa!, + if (webhookSecretSecretVersion != null) + 'webhookSecretSecretVersion': webhookSecretSecretVersion!, + }; +} + /// The request message for Operations.CancelOperation. typedef CancelOperationRequest = $Empty; -/// A connection to a SCM like GitHub, GitHub Enterprise, Bitbucket Data Center -/// or GitLab. +/// A connection to a SCM like GitHub, GitHub Enterprise, Bitbucket Data Center, +/// Bitbucket Cloud or GitLab. class Connection { /// Allows clients to store small amounts of arbitrary data. core.Map? annotations; + /// Configuration for connections to Bitbucket Cloud. + BitbucketCloudConfig? bitbucketCloudConfig; + + /// Configuration for connections to Bitbucket Data Center. + BitbucketDataCenterConfig? bitbucketDataCenterConfig; + /// Server assigned timestamp for when the connection was created. /// /// Output only. @@ -1370,6 +1567,8 @@ class Connection { Connection({ this.annotations, + this.bitbucketCloudConfig, + this.bitbucketDataCenterConfig, this.createTime, this.disabled, this.etag, @@ -1393,6 +1592,16 @@ class Connection { ), ) : null, + bitbucketCloudConfig: json_.containsKey('bitbucketCloudConfig') + ? BitbucketCloudConfig.fromJson(json_['bitbucketCloudConfig'] + as core.Map) + : null, + bitbucketDataCenterConfig: + json_.containsKey('bitbucketDataCenterConfig') + ? BitbucketDataCenterConfig.fromJson( + json_['bitbucketDataCenterConfig'] + as core.Map) + : null, createTime: json_.containsKey('createTime') ? json_['createTime'] as core.String : null, @@ -1428,6 +1637,10 @@ class Connection { core.Map toJson() => { if (annotations != null) 'annotations': annotations!, + if (bitbucketCloudConfig != null) + 'bitbucketCloudConfig': bitbucketCloudConfig!, + if (bitbucketDataCenterConfig != null) + 'bitbucketDataCenterConfig': bitbucketDataCenterConfig!, if (createTime != null) 'createTime': createTime!, if (disabled != null) 'disabled': disabled!, if (etag != null) 'etag': etag!, diff --git a/generated/googleapis/lib/cloudchannel/v1.dart b/generated/googleapis/lib/cloudchannel/v1.dart index 613c932e6..3f39ebc73 100644 --- a/generated/googleapis/lib/cloudchannel/v1.dart +++ b/generated/googleapis/lib/cloudchannel/v1.dart @@ -3128,6 +3128,9 @@ class AccountsOffersResource { } } +@core.Deprecated( + 'Not supported. Member documentation may have more information.', +) class AccountsReportJobsResource { final commons.ApiRequester _requester; @@ -3135,6 +3138,10 @@ class AccountsReportJobsResource { /// Retrieves data generated by CloudChannelReportsService.RunReportJob. /// + /// Deprecated: Please use + /// [Export Channel Services data to BigQuery](https://cloud.google.com/channel/docs/rebilling/export-data-to-bigquery) + /// instead. + /// /// [request] - The metadata request object. /// /// Request parameters: @@ -3154,6 +3161,9 @@ class AccountsReportJobsResource { /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. + @core.Deprecated( + 'Not supported. Member documentation may have more information.', + ) async.Future fetchReportResults( GoogleCloudChannelV1FetchReportResultsRequest request, @@ -3179,6 +3189,9 @@ class AccountsReportJobsResource { } } +@core.Deprecated( + 'Not supported. Member documentation may have more information.', +) class AccountsReportsResource { final commons.ApiRequester _requester; @@ -3187,7 +3200,9 @@ class AccountsReportsResource { /// Lists the reports that RunReportJob can run. /// /// These reports include an ID, a description, and the list of columns that - /// will be in the result. + /// will be in the result. Deprecated: Please use + /// [Export Channel Services data to BigQuery](https://cloud.google.com/channel/docs/rebilling/export-data-to-bigquery) + /// instead. /// /// Request parameters: /// @@ -3217,6 +3232,9 @@ class AccountsReportsResource { /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. + @core.Deprecated( + 'Not supported. Member documentation may have more information.', + ) async.Future list( core.String parent, { core.String? languageCode, @@ -3255,7 +3273,9 @@ class AccountsReportsResource { /// GetOperation method of CloudChannelOperationsService. The Operation /// metadata contains an instance of OperationMetadata. To get the results of /// report generation, call CloudChannelReportsService.FetchReportResults with - /// the RunReportJobResponse.report_job. + /// the RunReportJobResponse.report_job. Deprecated: Please use + /// [Export Channel Services data to BigQuery](https://cloud.google.com/channel/docs/rebilling/export-data-to-bigquery) + /// instead. /// /// [request] - The metadata request object. /// @@ -3277,6 +3297,9 @@ class AccountsReportsResource { /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. + @core.Deprecated( + 'Not supported. Member documentation may have more information.', + ) async.Future run( GoogleCloudChannelV1RunReportJobRequest request, core.String name, { @@ -4294,7 +4317,8 @@ class GoogleCloudChannelV1ChannelPartnerRepricingConfig { /// Request message for CloudChannelService.CheckCloudIdentityAccountsExist. class GoogleCloudChannelV1CheckCloudIdentityAccountsExistRequest { - /// Domain to fetch for Cloud Identity account customer. + /// Domain to fetch for Cloud Identity account customers, including domained + /// and domainless. /// /// Required. core.String? domain; @@ -7772,7 +7796,7 @@ class GoogleCloudChannelV1RepricingConfig { /// json object. Deprecated: This is no longer supported. Use /// RepricingConfig.EntitlementGranularity instead. typedef GoogleCloudChannelV1RepricingConfigChannelPartnerGranularity - = $Shared02; + = $Shared01; /// Applies the repricing configuration at the entitlement level. class GoogleCloudChannelV1RepricingConfigEntitlementGranularity { diff --git a/generated/googleapis/lib/clouddeploy/v1.dart b/generated/googleapis/lib/clouddeploy/v1.dart index 6c4be6675..8e494ca26 100644 --- a/generated/googleapis/lib/clouddeploy/v1.dart +++ b/generated/googleapis/lib/clouddeploy/v1.dart @@ -18,6 +18,7 @@ /// /// - [ProjectsResource] /// - [ProjectsLocationsResource] +/// - [ProjectsLocationsCustomTargetTypesResource] /// - [ProjectsLocationsDeliveryPipelinesResource] /// - [ProjectsLocationsDeliveryPipelinesAutomationRunsResource] /// - [ProjectsLocationsDeliveryPipelinesAutomationsResource] @@ -70,6 +71,8 @@ class ProjectsResource { class ProjectsLocationsResource { final commons.ApiRequester _requester; + ProjectsLocationsCustomTargetTypesResource get customTargetTypes => + ProjectsLocationsCustomTargetTypesResource(_requester); ProjectsLocationsDeliveryPipelinesResource get deliveryPipelines => ProjectsLocationsDeliveryPipelinesResource(_requester); ProjectsLocationsOperationsResource get operations => @@ -202,6 +205,427 @@ class ProjectsLocationsResource { } } +class ProjectsLocationsCustomTargetTypesResource { + final commons.ApiRequester _requester; + + ProjectsLocationsCustomTargetTypesResource(commons.ApiRequester client) + : _requester = client; + + /// Creates a new CustomTargetType in a given project and location. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [parent] - Required. The parent collection in which the `CustomTargetType` + /// should be created. Format should be + /// `projects/{project_id}/locations/{location_name}`. + /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. + /// + /// [customTargetTypeId] - Required. ID of the `CustomTargetType`. + /// + /// [requestId] - Optional. A request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server knows + /// to ignore the request if it has already been completed. The server + /// guarantees that for at least 60 minutes after the first request. For + /// example, consider a situation where you make an initial request and the + /// request times out. If you make the request again with the same request ID, + /// the server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported + /// (00000000-0000-0000-0000-000000000000). + /// + /// [validateOnly] - Optional. If set to true, the request is validated and + /// the user is provided with an expected result, but no actual change is + /// made. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future create( + CustomTargetType request, + core.String parent, { + core.String? customTargetTypeId, + core.String? requestId, + core.bool? validateOnly, + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if (customTargetTypeId != null) + 'customTargetTypeId': [customTargetTypeId], + if (requestId != null) 'requestId': [requestId], + if (validateOnly != null) 'validateOnly': ['${validateOnly}'], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/customTargetTypes'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + + /// Deletes a single CustomTargetType. + /// + /// Request parameters: + /// + /// [name] - Required. The name of the `CustomTargetType` to delete. Format + /// must be + /// `projects/{project_id}/locations/{location_name}/customTargetTypes/{custom_target_type}`. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/customTargetTypes/\[^/\]+$`. + /// + /// [allowMissing] - Optional. If set to true, then deleting an already + /// deleted or non-existing `CustomTargetType` will succeed. + /// + /// [etag] - Optional. This checksum is computed by the server based on the + /// value of other fields, and may be sent on update and delete requests to + /// ensure the client has an up-to-date value before proceeding. + /// + /// [requestId] - Optional. A request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server knows + /// to ignore the request if it has already been completed. The server + /// guarantees that for at least 60 minutes after the first request. For + /// example, consider a situation where you make an initial request and the + /// request times out. If you make the request again with the same request ID, + /// the server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported + /// (00000000-0000-0000-0000-000000000000). + /// + /// [validateOnly] - Optional. If set to true, the request is validated but no + /// actual change is made. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future delete( + core.String name, { + core.bool? allowMissing, + core.String? etag, + core.String? requestId, + core.bool? validateOnly, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (allowMissing != null) 'allowMissing': ['${allowMissing}'], + if (etag != null) 'etag': [etag], + if (requestId != null) 'requestId': [requestId], + if (validateOnly != null) 'validateOnly': ['${validateOnly}'], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'DELETE', + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + + /// Gets details of a single CustomTargetType. + /// + /// Request parameters: + /// + /// [name] - Required. Name of the `CustomTargetType`. Format must be + /// `projects/{project_id}/locations/{location_name}/customTargetTypes/{custom_target_type}`. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/customTargetTypes/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [CustomTargetType]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return CustomTargetType.fromJson( + response_ as core.Map); + } + + /// Gets the access control policy for a resource. + /// + /// Returns an empty policy if the resource exists and does not have a policy + /// set. + /// + /// Request parameters: + /// + /// [resource] - REQUIRED: The resource for which the policy is being + /// requested. See + /// [Resource names](https://cloud.google.com/apis/design/resource_names) for + /// the appropriate value for this field. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/customTargetTypes/\[^/\]+$`. + /// + /// [options_requestedPolicyVersion] - Optional. The maximum policy version + /// that will be used to format the policy. Valid values are 0, 1, and 3. + /// Requests specifying an invalid value will be rejected. Requests for + /// policies with any conditional role bindings must specify version 3. + /// Policies with no conditional role bindings may specify any valid value or + /// leave the field unset. The policy in the response might use the policy + /// version that you specified, or it might use a lower policy version. For + /// example, if you specify version 3, but the policy has no conditional role + /// bindings, the response uses version 1. To learn which resources support + /// conditions in their IAM policies, see the + /// [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Policy]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future getIamPolicy( + core.String resource, { + core.int? options_requestedPolicyVersion, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (options_requestedPolicyVersion != null) + 'options.requestedPolicyVersion': ['${options_requestedPolicyVersion}'], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$resource') + ':getIamPolicy'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return Policy.fromJson(response_ as core.Map); + } + + /// Lists CustomTargetTypes in a given project and location. + /// + /// Request parameters: + /// + /// [parent] - Required. The parent that owns this collection of custom target + /// types. Format must be `projects/{project_id}/locations/{location_name}`. + /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. + /// + /// [filter] - Optional. Filter custom target types to be returned. See + /// https://google.aip.dev/160 for more details. + /// + /// [orderBy] - Optional. Field to sort by. See + /// https://google.aip.dev/132#ordering for more details. + /// + /// [pageSize] - Optional. The maximum number of `CustomTargetType` objects to + /// return. The service may return fewer than this value. If unspecified, at + /// most 50 `CustomTargetType` objects will be returned. The maximum value is + /// 1000; values above 1000 will be set to 1000. + /// + /// [pageToken] - Optional. A page token, received from a previous + /// `ListCustomTargetTypes` call. Provide this to retrieve the subsequent + /// page. When paginating, all other provided parameters match the call that + /// provided the page token. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [ListCustomTargetTypesResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future list( + core.String parent, { + core.String? filter, + core.String? orderBy, + core.int? pageSize, + core.String? pageToken, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (filter != null) 'filter': [filter], + if (orderBy != null) 'orderBy': [orderBy], + if (pageSize != null) 'pageSize': ['${pageSize}'], + if (pageToken != null) 'pageToken': [pageToken], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/customTargetTypes'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return ListCustomTargetTypesResponse.fromJson( + response_ as core.Map); + } + + /// Updates a single CustomTargetType. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [name] - Optional. Name of the `CustomTargetType`. Format is + /// `projects/{project}/locations/{location}/customTargetTypes/a-z{0,62}`. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/customTargetTypes/\[^/\]+$`. + /// + /// [allowMissing] - Optional. If set to true, updating a `CustomTargetType` + /// that does not exist will result in the creation of a new + /// `CustomTargetType`. + /// + /// [requestId] - Optional. A request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server knows + /// to ignore the request if it has already been completed. The server + /// guarantees that for at least 60 minutes after the first request. For + /// example, consider a situation where you make an initial request and the + /// request times out. If you make the request again with the same request ID, + /// the server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported + /// (00000000-0000-0000-0000-000000000000). + /// + /// [updateMask] - Required. Field mask is used to specify the fields to be + /// overwritten in the `CustomTargetType` resource by the update. The fields + /// specified in the update_mask are relative to the resource, not the full + /// request. A field will be overwritten if it's in the mask. If the user + /// doesn't provide a mask then all fields are overwritten. + /// + /// [validateOnly] - Optional. If set to true, the request is validated and + /// the user is provided with an expected result, but no actual change is + /// made. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future patch( + CustomTargetType request, + core.String name, { + core.bool? allowMissing, + core.String? requestId, + core.String? updateMask, + core.bool? validateOnly, + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if (allowMissing != null) 'allowMissing': ['${allowMissing}'], + if (requestId != null) 'requestId': [requestId], + if (updateMask != null) 'updateMask': [updateMask], + if (validateOnly != null) 'validateOnly': ['${validateOnly}'], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'PATCH', + body: body_, + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + + /// Sets the access control policy on the specified resource. + /// + /// Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, + /// and `PERMISSION_DENIED` errors. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [resource] - REQUIRED: The resource for which the policy is being + /// specified. See + /// [Resource names](https://cloud.google.com/apis/design/resource_names) for + /// the appropriate value for this field. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/customTargetTypes/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Policy]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future setIamPolicy( + SetIamPolicyRequest request, + core.String resource, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$resource') + ':setIamPolicy'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Policy.fromJson(response_ as core.Map); + } +} + class ProjectsLocationsDeliveryPipelinesResource { final commons.ApiRequester _requester; @@ -223,15 +647,15 @@ class ProjectsLocationsDeliveryPipelinesResource { /// /// [parent] - Required. The parent collection in which the `DeliveryPipeline` /// should be created. Format should be - /// projects/{project_id}/locations/{location_name}. + /// `projects/{project_id}/locations/{location_name}`. /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. /// /// [deliveryPipelineId] - Required. ID of the `DeliveryPipeline`. /// /// [requestId] - Optional. A request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. The server - /// will guarantee that for at least 60 minutes since the first request. For + /// unique request ID so that if you must retry your request, the server knows + /// to ignore the request if it has already been completed. The server + /// guarantees that for at least 60 minutes after the first request. For /// example, consider a situation where you make an initial request and the /// request times out. If you make the request again with the same request ID, /// the server can check if original operation with the same request ID was @@ -288,7 +712,7 @@ class ProjectsLocationsDeliveryPipelinesResource { /// /// [name] - Required. The name of the `DeliveryPipeline` to delete. Format /// should be - /// projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}. + /// `projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}`. /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/deliveryPipelines/\[^/\]+$`. /// @@ -304,9 +728,9 @@ class ProjectsLocationsDeliveryPipelinesResource { /// the pipeline has no child resources. /// /// [requestId] - Optional. A request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. The server - /// will guarantee that for at least 60 minutes after the first request. For + /// unique request ID so that if you must retry your request, the server knows + /// to ignore the request if it has already been completed. The server + /// guarantees that for at least 60 minutes after the first request. For /// example, consider a situation where you make an initial request and the /// request times out. If you make the request again with the same request ID, /// the server can check if original operation with the same request ID was @@ -361,7 +785,7 @@ class ProjectsLocationsDeliveryPipelinesResource { /// Request parameters: /// /// [name] - Required. Name of the `DeliveryPipeline`. Format must be - /// projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}. + /// `projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}`. /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/deliveryPipelines/\[^/\]+$`. /// @@ -456,7 +880,7 @@ class ProjectsLocationsDeliveryPipelinesResource { /// Request parameters: /// /// [parent] - Required. The parent, which owns this collection of pipelines. - /// Format must be projects/{project_id}/locations/{location_name}. + /// Format must be `projects/{project_id}/locations/{location_name}`. /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. /// /// [filter] - Filter pipelines to be returned. See https://google.aip.dev/160 @@ -519,7 +943,7 @@ class ProjectsLocationsDeliveryPipelinesResource { /// Request parameters: /// /// [name] - Optional. Name of the `DeliveryPipeline`. Format is - /// projects/{project}/ locations/{location}/deliveryPipelines/a-z{0,62}. + /// `projects/{project}/locations/{location}/deliveryPipelines/a-z{0,62}`. /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/deliveryPipelines/\[^/\]+$`. /// @@ -528,9 +952,9 @@ class ProjectsLocationsDeliveryPipelinesResource { /// `DeliveryPipeline`. /// /// [requestId] - Optional. A request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. The server - /// will guarantee that for at least 60 minutes since the first request. For + /// unique request ID so that if you must retry your request, the server knows + /// to ignore the request if it has already been completed. The server + /// guarantees that for at least 60 minutes after the first request. For /// example, consider a situation where you make an initial request and the /// request times out. If you make the request again with the same request ID, /// the server can check if original operation with the same request ID was @@ -542,8 +966,8 @@ class ProjectsLocationsDeliveryPipelinesResource { /// [updateMask] - Required. Field mask is used to specify the fields to be /// overwritten in the `DeliveryPipeline` resource by the update. The fields /// specified in the update_mask are relative to the resource, not the full - /// request. A field will be overwritten if it is in the mask. If the user - /// does not provide a mask then all fields will be overwritten. + /// request. A field will be overwritten if it's in the mask. If the user + /// doesn't provide a mask then all fields are overwritten. /// /// [validateOnly] - Optional. If set to true, the request is validated and /// the user is provided with an expected result, but no actual change is @@ -596,7 +1020,7 @@ class ProjectsLocationsDeliveryPipelinesResource { /// /// [name] - Required. The `DeliveryPipeline` for which the rollback `Rollout` /// should be created. Format should be - /// projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}. + /// `projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}`. /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/deliveryPipelines/\[^/\]+$`. /// @@ -750,7 +1174,7 @@ class ProjectsLocationsDeliveryPipelinesAutomationRunsResource { /// Request parameters: /// /// [name] - Required. Name of the `AutomationRun`. Format is - /// projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/automationRuns/{automation_run}. + /// `projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/automationRuns/{automation_run}`. /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/deliveryPipelines/\[^/\]+/automationRuns/\[^/\]+$`. /// @@ -791,7 +1215,7 @@ class ProjectsLocationsDeliveryPipelinesAutomationRunsResource { /// Request parameters: /// /// [name] - Required. Name of the `AutomationRun`. Format must be - /// projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/automationRuns/{automation_run}. + /// `projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/automationRuns/{automation_run}`. /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/deliveryPipelines/\[^/\]+/automationRuns/\[^/\]+$`. /// @@ -828,9 +1252,9 @@ class ProjectsLocationsDeliveryPipelinesAutomationRunsResource { /// /// Request parameters: /// - /// [parent] - Required. The parent, which owns this collection of - /// automationRuns. Format must be - /// projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}. + /// [parent] - Required. The parent `Delivery Pipeline`, which owns this + /// collection of automationRuns. Format must be + /// `projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}`. /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/deliveryPipelines/\[^/\]+$`. /// @@ -901,16 +1325,16 @@ class ProjectsLocationsDeliveryPipelinesAutomationsResource { /// /// [parent] - Required. The parent collection in which the `Automation` /// should be created. Format should be - /// projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}. + /// `projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}`. /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/deliveryPipelines/\[^/\]+$`. /// /// [automationId] - Required. ID of the `Automation`. /// /// [requestId] - Optional. A request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. The server - /// will guarantee that for at least 60 minutes since the first request. For + /// unique request ID so that if you must retry your request, the server knows + /// to ignore the request if it has already been completed. The server + /// guarantees that for at least 60 minutes after the first request. For /// example, consider a situation where you make an initial request and the /// request times out. If you make the request again with the same request ID, /// the server can check if original operation with the same request ID was @@ -966,7 +1390,7 @@ class ProjectsLocationsDeliveryPipelinesAutomationsResource { /// /// [name] - Required. The name of the `Automation` to delete. Format should /// be - /// projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/automations/{automation_name}. + /// `projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/automations/{automation_name}`. /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/deliveryPipelines/\[^/\]+/automations/\[^/\]+$`. /// @@ -979,9 +1403,9 @@ class ProjectsLocationsDeliveryPipelinesAutomationsResource { /// before proceeding. /// /// [requestId] - Optional. A request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. The server - /// will guarantee that for at least 60 minutes after the first request. For + /// unique request ID so that if you must retry your request, the server knows + /// to ignore the request if it has already been completed. The server + /// guarantees that for at least 60 minutes after the first request. For /// example, consider a situation where you make an initial request and the /// request times out. If you make the request again with the same request ID, /// the server can check if original operation with the same request ID was @@ -1034,7 +1458,7 @@ class ProjectsLocationsDeliveryPipelinesAutomationsResource { /// Request parameters: /// /// [name] - Required. Name of the `Automation`. Format must be - /// projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/automations/{automation_name}. + /// `projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/automations/{automation_name}`. /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/deliveryPipelines/\[^/\]+/automations/\[^/\]+$`. /// @@ -1071,9 +1495,9 @@ class ProjectsLocationsDeliveryPipelinesAutomationsResource { /// /// Request parameters: /// - /// [parent] - Required. The parent, which owns this collection of - /// automations. Format must be - /// projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}. + /// [parent] - Required. The parent `Delivery Pipeline`, which owns this + /// collection of automations. Format must be + /// `projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}`. /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/deliveryPipelines/\[^/\]+$`. /// @@ -1135,7 +1559,7 @@ class ProjectsLocationsDeliveryPipelinesAutomationsResource { /// Request parameters: /// /// [name] - Output only. Name of the `Automation`. Format is - /// projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/automations/{automation}. + /// `projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/automations/{automation}`. /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/deliveryPipelines/\[^/\]+/automations/\[^/\]+$`. /// @@ -1143,9 +1567,9 @@ class ProjectsLocationsDeliveryPipelinesAutomationsResource { /// does not exist will result in the creation of a new `Automation`. /// /// [requestId] - Optional. A request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. The server - /// will guarantee that for at least 60 minutes since the first request. For + /// unique request ID so that if you must retry your request, the server knows + /// to ignore the request if it has already been completed. The server + /// guarantees that for at least 60 minutes after the first request. For /// example, consider a situation where you make an initial request and the /// request times out. If you make the request again with the same request ID, /// the server can check if original operation with the same request ID was @@ -1157,8 +1581,8 @@ class ProjectsLocationsDeliveryPipelinesAutomationsResource { /// [updateMask] - Required. Field mask is used to specify the fields to be /// overwritten in the `Automation` resource by the update. The fields /// specified in the update_mask are relative to the resource, not the full - /// request. A field will be overwritten if it is in the mask. If the user - /// does not provide a mask then all fields will be overwritten. + /// request. A field will be overwritten if it's in the mask. If the user + /// doesn't provide a mask then all fields are overwritten. /// /// [validateOnly] - Optional. If set to true, the request is validated and /// the user is provided with an expected result, but no actual change is @@ -1221,8 +1645,7 @@ class ProjectsLocationsDeliveryPipelinesReleasesResource { /// Request parameters: /// /// [name] - Required. Name of the Release. Format is - /// projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/ - /// releases/{release}. + /// `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}`. /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/deliveryPipelines/\[^/\]+/releases/\[^/\]+$`. /// @@ -1266,16 +1689,16 @@ class ProjectsLocationsDeliveryPipelinesReleasesResource { /// /// [parent] - Required. The parent collection in which the `Release` should /// be created. Format should be - /// projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}. + /// `projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}`. /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/deliveryPipelines/\[^/\]+$`. /// /// [releaseId] - Required. ID of the `Release`. /// /// [requestId] - Optional. A request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. The server - /// will guarantee that for at least 60 minutes since the first request. For + /// unique request ID so that if you must retry your request, the server knows + /// to ignore the request if it has already been completed. The server + /// guarantees that for at least 60 minutes after the first request. For /// example, consider a situation where you make an initial request and the /// request times out. If you make the request again with the same request ID, /// the server can check if original operation with the same request ID was @@ -1330,7 +1753,7 @@ class ProjectsLocationsDeliveryPipelinesReleasesResource { /// Request parameters: /// /// [name] - Required. Name of the `Release`. Format must be - /// projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}. + /// `projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}`. /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/deliveryPipelines/\[^/\]+/releases/\[^/\]+$`. /// @@ -1444,8 +1867,7 @@ class ProjectsLocationsDeliveryPipelinesReleasesRolloutsResource { /// Request parameters: /// /// [name] - Required. Name of the Rollout. Format is - /// projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/ - /// releases/{release}/rollouts/{rollout}. + /// `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}/rollouts/{rollout}`. /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/deliveryPipelines/\[^/\]+/releases/\[^/\]+/rollouts/\[^/\]+$`. /// @@ -1488,8 +1910,7 @@ class ProjectsLocationsDeliveryPipelinesReleasesRolloutsResource { /// Request parameters: /// /// [name] - Required. Name of the Rollout. Format is - /// projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/ - /// releases/{release}/rollouts/{rollout}. + /// `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}/rollouts/{rollout}`. /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/deliveryPipelines/\[^/\]+/releases/\[^/\]+/rollouts/\[^/\]+$`. /// @@ -1532,8 +1953,7 @@ class ProjectsLocationsDeliveryPipelinesReleasesRolloutsResource { /// Request parameters: /// /// [name] - Required. Name of the Rollout. Format is - /// projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/ - /// releases/{release}/rollouts/{rollout}. + /// `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}/rollouts/{rollout}`. /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/deliveryPipelines/\[^/\]+/releases/\[^/\]+/rollouts/\[^/\]+$`. /// @@ -1577,14 +1997,14 @@ class ProjectsLocationsDeliveryPipelinesReleasesRolloutsResource { /// /// [parent] - Required. The parent collection in which the `Rollout` should /// be created. Format should be - /// projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}. + /// `projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}`. /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/deliveryPipelines/\[^/\]+/releases/\[^/\]+$`. /// /// [requestId] - Optional. A request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. The server - /// will guarantee that for at least 60 minutes since the first request. For + /// unique request ID so that if you must retry your request, the server knows + /// to ignore the request if it has already been completed. The server + /// guarantees that for at least 60 minutes after the first request. For /// example, consider a situation where you make an initial request and the /// request times out. If you make the request again with the same request ID, /// the server can check if original operation with the same request ID was @@ -1646,7 +2066,7 @@ class ProjectsLocationsDeliveryPipelinesReleasesRolloutsResource { /// Request parameters: /// /// [name] - Required. Name of the `Rollout`. Format must be - /// projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}/rollouts/{rollout_name}. + /// `projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}/rollouts/{rollout_name}`. /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/deliveryPipelines/\[^/\]+/releases/\[^/\]+/rollouts/\[^/\]+$`. /// @@ -1685,8 +2105,7 @@ class ProjectsLocationsDeliveryPipelinesReleasesRolloutsResource { /// Request parameters: /// /// [rollout] - Required. Name of the Rollout. Format is - /// projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/ - /// releases/{release}/rollouts/{rollout}. + /// `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}/rollouts/{rollout}`. /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/deliveryPipelines/\[^/\]+/releases/\[^/\]+/rollouts/\[^/\]+$`. /// @@ -1791,8 +2210,7 @@ class ProjectsLocationsDeliveryPipelinesReleasesRolloutsResource { /// Request parameters: /// /// [rollout] - Required. Name of the Rollout. Format is - /// projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/ - /// releases/{release}/rollouts/{rollout}. + /// `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}/rollouts/{rollout}`. /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/deliveryPipelines/\[^/\]+/releases/\[^/\]+/rollouts/\[^/\]+$`. /// @@ -1841,7 +2259,7 @@ class ProjectsLocationsDeliveryPipelinesReleasesRolloutsJobRunsResource { /// Request parameters: /// /// [name] - Required. Name of the `JobRun`. Format must be - /// projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}/rollouts/{rollout_name}/jobRuns/{job_run_name}. + /// `projects/{project_id}/locations/{location_name}/deliveryPipelines/{pipeline_name}/releases/{release_name}/rollouts/{rollout_name}/jobRuns/{job_run_name}`. /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/deliveryPipelines/\[^/\]+/releases/\[^/\]+/rollouts/\[^/\]+/jobRuns/\[^/\]+$`. /// @@ -1942,8 +2360,7 @@ class ProjectsLocationsDeliveryPipelinesReleasesRolloutsJobRunsResource { /// Request parameters: /// /// [name] - Required. Name of the `JobRun`. Format must be - /// projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/ - /// releases/{release}/rollouts/{rollout}/jobRuns/{jobRun}. + /// `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}/rollouts/{rollout}/jobRuns/{jobRun}`. /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/deliveryPipelines/\[^/\]+/releases/\[^/\]+/rollouts/\[^/\]+/jobRuns/\[^/\]+$`. /// @@ -2179,13 +2596,14 @@ class ProjectsLocationsTargetsResource { /// Request parameters: /// /// [parent] - Required. The parent collection in which the `Target` should be - /// created. Format should be projects/{project_id}/locations/{location_name}. + /// created. Format should be + /// `projects/{project_id}/locations/{location_name}`. /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. /// /// [requestId] - Optional. A request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. The server - /// will guarantee that for at least 60 minutes since the first request. For + /// unique request ID so that if you must retry your request, the server knows + /// to ignore the request if it has already been completed. The server + /// guarantees that for at least 60 minutes after the first request. For /// example, consider a situation where you make an initial request and the /// request times out. If you make the request again with the same request ID, /// the server can check if original operation with the same request ID was @@ -2242,7 +2660,7 @@ class ProjectsLocationsTargetsResource { /// Request parameters: /// /// [name] - Required. The name of the `Target` to delete. Format should be - /// projects/{project_id}/locations/{location_name}/targets/{target_name}. + /// `projects/{project_id}/locations/{location_name}/targets/{target_name}`. /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/targets/\[^/\]+$`. /// @@ -2254,9 +2672,9 @@ class ProjectsLocationsTargetsResource { /// ensure the client has an up-to-date value before proceeding. /// /// [requestId] - Optional. A request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. The server - /// will guarantee that for at least 60 minutes after the first request. For + /// unique request ID so that if you must retry your request, the server knows + /// to ignore the request if it has already been completed. The server + /// guarantees that for at least 60 minutes after the first request. For /// example, consider a situation where you make an initial request and the /// request times out. If you make the request again with the same request ID, /// the server can check if original operation with the same request ID was @@ -2309,7 +2727,7 @@ class ProjectsLocationsTargetsResource { /// Request parameters: /// /// [name] - Required. Name of the `Target`. Format must be - /// projects/{project_id}/locations/{location_name}/targets/{target_name}. + /// `projects/{project_id}/locations/{location_name}/targets/{target_name}`. /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/targets/\[^/\]+$`. /// @@ -2403,7 +2821,7 @@ class ProjectsLocationsTargetsResource { /// Request parameters: /// /// [parent] - Required. The parent, which owns this collection of targets. - /// Format must be projects/{project_id}/locations/{location_name}. + /// Format must be `projects/{project_id}/locations/{location_name}`. /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. /// /// [filter] - Optional. Filter targets to be returned. See @@ -2466,7 +2884,7 @@ class ProjectsLocationsTargetsResource { /// Request parameters: /// /// [name] - Optional. Name of the `Target`. Format is - /// projects/{project}/locations/{location}/targets/a-z{0,62}. + /// `projects/{project}/locations/{location}/targets/a-z{0,62}`. /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/targets/\[^/\]+$`. /// @@ -2474,9 +2892,9 @@ class ProjectsLocationsTargetsResource { /// not exist will result in the creation of a new `Target`. /// /// [requestId] - Optional. A request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. The server - /// will guarantee that for at least 60 minutes since the first request. For + /// unique request ID so that if you must retry your request, the server knows + /// to ignore the request if it has already been completed. The server + /// guarantees that for at least 60 minutes after the first request. For /// example, consider a situation where you make an initial request and the /// request times out. If you make the request again with the same request ID, /// the server can check if original operation with the same request ID was @@ -2488,8 +2906,8 @@ class ProjectsLocationsTargetsResource { /// [updateMask] - Required. Field mask is used to specify the fields to be /// overwritten in the Target resource by the update. The fields specified in /// the update_mask are relative to the resource, not the full request. A - /// field will be overwritten if it is in the mask. If the user does not - /// provide a mask then all fields will be overwritten. + /// field will be overwritten if it's in the mask. If the user doesn't provide + /// a mask then all fields are overwritten. /// /// [validateOnly] - Optional. If set to true, the request is validated and /// the user is provided with an expected result, but no actual change is @@ -2647,9 +3065,8 @@ typedef AdvanceChildRolloutJob = $Empty; class AdvanceChildRolloutJobRun { /// Name of the `ChildRollout`. /// - /// Format is projects/{project}/ - /// locations/{location}/deliveryPipelines/{deliveryPipeline}/ - /// releases/{release}/rollouts/a-z{0,62}. + /// Format is + /// `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}/rollouts/a-z{0,62}`. /// /// Output only. core.String? rollout; @@ -2682,7 +3099,7 @@ class AdvanceChildRolloutJobRun { /// Contains the information of an automated advance-rollout operation. class AdvanceRolloutOperation { - /// The phase to which the rollout will be advanced to. + /// The phase the rollout will be advanced to. /// /// Output only. core.String? destinationPhase; @@ -2768,7 +3185,7 @@ class AdvanceRolloutRule { /// ID of the rule. /// /// This id must be unique in the `Automation` resource to which this rule - /// belongs. The format is a-z{0,62}. + /// belongs. The format is `a-z{0,62}`. /// /// Required. core.String? id; @@ -2931,7 +3348,7 @@ typedef AuditLogConfig = $AuditLogConfig; /// An `Automation` resource in the Cloud Deploy API. /// /// An `Automation` enables the automation of manually driven actions for a -/// Delivery Pipeline, which includes Release promotion amongst Targets, Rollout +/// Delivery Pipeline, which includes Release promotion among Targets, Rollout /// repair and Rollout deployment strategy advancement. The intention of /// Automation is to reduce manual intervention in the continuous delivery /// process. @@ -2941,13 +3358,13 @@ class Automation { /// These attributes can only be set and used by the user, and not by Cloud /// Deploy. Annotations must meet the following constraints: * Annotations are /// key/value pairs. * Valid annotation keys have two segments: an optional - /// prefix and name, separated by a slash (/). * The name segment is required - /// and must be 63 characters or less, beginning and ending with an - /// alphanumeric character (\[a-z0-9A-Z\]) with dashes (-), underscores (_), - /// dots (.), and alphanumerics between. * The prefix is optional. If + /// prefix and name, separated by a slash (`/`). * The name segment is + /// required and must be 63 characters or less, beginning and ending with an + /// alphanumeric character (`[a-z0-9A-Z]`) with dashes (`-`), underscores + /// (`_`), dots (`.`), and alphanumerics between. * The prefix is optional. If /// specified, the prefix must be a DNS subdomain: a series of DNS labels - /// separated by dots(.), not longer than 253 characters in total, followed by - /// a slash (/). See + /// separated by dots(`.`), not longer than 253 characters in total, followed + /// by a slash (`/`). See /// https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set /// for more details. /// @@ -2991,7 +3408,7 @@ class Automation { /// Name of the `Automation`. /// /// Format is - /// projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/automations/{automation}. + /// `projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/automations/{automation}`. /// /// Output only. core.String? name; @@ -3265,8 +3682,7 @@ class AutomationRuleCondition { /// An `AutomationRun` resource in the Cloud Deploy API. /// -/// An `AutomationResource` represents an automation execution instance of an -/// automation rule. +/// An `AutomationRun` represents an execution instance of an automation rule. class AutomationRun { /// Advances a rollout to the next phase. /// @@ -3297,9 +3713,9 @@ class AutomationRun { /// Output only. core.String? etag; - /// Time the `AutomationRun` will expire. + /// Time the `AutomationRun` expires. /// - /// An `AutomationRun` will expire after 14 days from its creation date. + /// An `AutomationRun` expires after 14 days from its creation date. /// /// Output only. core.String? expireTime; @@ -3307,7 +3723,7 @@ class AutomationRun { /// Name of the `AutomationRun`. /// /// Format is - /// projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/automationRuns/{automation_run}. + /// `projects/{project}/locations/{location}/deliveryPipelines/{delivery_pipeline}/automationRuns/{automation_run}`. /// /// Output only. core.String? name; @@ -3347,7 +3763,7 @@ class AutomationRun { /// Explains the current state of the `AutomationRun`. /// - /// Present only an explanation is needed. + /// Present only when an explanation is needed. /// /// Output only. core.String? stateDescription; @@ -3500,14 +3916,31 @@ class Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -3516,12 +3949,19 @@ class Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; Binding({ @@ -3753,8 +4193,29 @@ class CloudRunConfig { /// CustomCanaryDeployments. core.bool? automaticTrafficControl; + /// A list of tags that are added to the canary revision while the canary + /// phase is in progress. + /// + /// Optional. + core.List? canaryRevisionTags; + + /// A list of tags that are added to the prior revision while the canary phase + /// is in progress. + /// + /// Optional. + core.List? priorRevisionTags; + + /// A list of tags that are added to the final stable revision when the stable + /// phase is applied. + /// + /// Optional. + core.List? stableRevisionTags; + CloudRunConfig({ this.automaticTrafficControl, + this.canaryRevisionTags, + this.priorRevisionTags, + this.stableRevisionTags, }); CloudRunConfig.fromJson(core.Map json_) @@ -3762,11 +4223,31 @@ class CloudRunConfig { automaticTrafficControl: json_.containsKey('automaticTrafficControl') ? json_['automaticTrafficControl'] as core.bool : null, + canaryRevisionTags: json_.containsKey('canaryRevisionTags') + ? (json_['canaryRevisionTags'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + priorRevisionTags: json_.containsKey('priorRevisionTags') + ? (json_['priorRevisionTags'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + stableRevisionTags: json_.containsKey('stableRevisionTags') + ? (json_['stableRevisionTags'] as core.List) + .map((value) => value as core.String) + .toList() + : null, ); core.Map toJson() => { if (automaticTrafficControl != null) 'automaticTrafficControl': automaticTrafficControl!, + if (canaryRevisionTags != null) + 'canaryRevisionTags': canaryRevisionTags!, + if (priorRevisionTags != null) 'priorRevisionTags': priorRevisionTags!, + if (stableRevisionTags != null) + 'stableRevisionTags': stableRevisionTags!, }; } @@ -3799,7 +4280,7 @@ class CloudRunLocation { class CloudRunMetadata { /// The name of the Cloud Run job that is associated with a `Rollout`. /// - /// Format is projects/{project}/locations/{location}/jobs/{job_name}. + /// Format is `projects/{project}/locations/{location}/jobs/{job_name}`. /// /// Output only. core.String? job; @@ -3811,7 +4292,7 @@ class CloudRunMetadata { /// The name of the Cloud Run Service that is associated with a `Rollout`. /// - /// Format is projects/{project}/locations/{location}/services/{service}. + /// Format is `projects/{project}/locations/{location}/services/{service}`. /// /// Output only. core.String? service; @@ -3857,7 +4338,7 @@ class CloudRunMetadata { class CloudRunRenderMetadata { /// The name of the Cloud Run Service in the rendered manifest. /// - /// Format is projects/{project}/locations/{location}/services/{service}. + /// Format is `projects/{project}/locations/{location}/services/{service}`. /// /// Output only. core.String? service; @@ -3918,72 +4399,343 @@ class Config { }; } -/// A createChildRollout Job. -typedef CreateChildRolloutJob = $Empty; +/// A createChildRollout Job. +typedef CreateChildRolloutJob = $Empty; + +/// CreateChildRolloutJobRun contains information specific to a +/// createChildRollout `JobRun`. +class CreateChildRolloutJobRun { + /// Name of the `ChildRollout`. + /// + /// Format is + /// `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}/rollouts/a-z{0,62}`. + /// + /// Output only. + core.String? rollout; + + /// The ID of the childRollout Phase initiated by this JobRun. + /// + /// Output only. + core.String? rolloutPhaseId; + + CreateChildRolloutJobRun({ + this.rollout, + this.rolloutPhaseId, + }); + + CreateChildRolloutJobRun.fromJson(core.Map json_) + : this( + rollout: json_.containsKey('rollout') + ? json_['rollout'] as core.String + : null, + rolloutPhaseId: json_.containsKey('rolloutPhaseId') + ? json_['rolloutPhaseId'] as core.String + : null, + ); + + core.Map toJson() => { + if (rollout != null) 'rollout': rollout!, + if (rolloutPhaseId != null) 'rolloutPhaseId': rolloutPhaseId!, + }; +} + +/// CustomCanaryDeployment represents the custom canary deployment +/// configuration. +class CustomCanaryDeployment { + /// Configuration for each phase in the canary deployment in the order + /// executed. + /// + /// Required. + core.List? phaseConfigs; + + CustomCanaryDeployment({ + this.phaseConfigs, + }); + + CustomCanaryDeployment.fromJson(core.Map json_) + : this( + phaseConfigs: json_.containsKey('phaseConfigs') + ? (json_['phaseConfigs'] as core.List) + .map((value) => PhaseConfig.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (phaseConfigs != null) 'phaseConfigs': phaseConfigs!, + }; +} + +/// CustomMetadata contains information from a user-defined operation. +class CustomMetadata { + /// Key-value pairs provided by the user-defined operation. + /// + /// Output only. + core.Map? values; + + CustomMetadata({ + this.values, + }); + + CustomMetadata.fromJson(core.Map json_) + : this( + values: json_.containsKey('values') + ? (json_['values'] as core.Map).map( + (key, value) => core.MapEntry( + key, + value as core.String, + ), + ) + : null, + ); + + core.Map toJson() => { + if (values != null) 'values': values!, + }; +} + +/// Information specifying a Custom Target. +class CustomTarget { + /// The name of the CustomTargetType. + /// + /// Format must be + /// `projects/{project}/locations/{location}/customTargetTypes/{custom_target_type}`. + /// + /// Required. + core.String? customTargetType; + + CustomTarget({ + this.customTargetType, + }); + + CustomTarget.fromJson(core.Map json_) + : this( + customTargetType: json_.containsKey('customTargetType') + ? json_['customTargetType'] as core.String + : null, + ); + + core.Map toJson() => { + if (customTargetType != null) 'customTargetType': customTargetType!, + }; +} + +/// CustomTargetDeployMetadata contains information from a Custom Target deploy +/// operation. +class CustomTargetDeployMetadata { + /// Skip message provided in the results of a custom deploy operation. + /// + /// Output only. + core.String? skipMessage; + + CustomTargetDeployMetadata({ + this.skipMessage, + }); + + CustomTargetDeployMetadata.fromJson(core.Map json_) + : this( + skipMessage: json_.containsKey('skipMessage') + ? json_['skipMessage'] as core.String + : null, + ); + + core.Map toJson() => { + if (skipMessage != null) 'skipMessage': skipMessage!, + }; +} + +/// CustomTargetSkaffoldActions represents the `CustomTargetType` configuration +/// using Skaffold custom actions. +class CustomTargetSkaffoldActions { + /// The Skaffold custom action responsible for deploy operations. + /// + /// Required. + core.String? deployAction; + + /// List of Skaffold modules Cloud Deploy will include in the Skaffold Config + /// as required before performing diagnose. + /// + /// Optional. + core.List? includeSkaffoldModules; + + /// The Skaffold custom action responsible for render operations. + /// + /// If not provided then Cloud Deploy will perform the render operations via + /// `skaffold render`. + /// + /// Optional. + core.String? renderAction; + + CustomTargetSkaffoldActions({ + this.deployAction, + this.includeSkaffoldModules, + this.renderAction, + }); + + CustomTargetSkaffoldActions.fromJson(core.Map json_) + : this( + deployAction: json_.containsKey('deployAction') + ? json_['deployAction'] as core.String + : null, + includeSkaffoldModules: json_.containsKey('includeSkaffoldModules') + ? (json_['includeSkaffoldModules'] as core.List) + .map((value) => SkaffoldModules.fromJson( + value as core.Map)) + .toList() + : null, + renderAction: json_.containsKey('renderAction') + ? json_['renderAction'] as core.String + : null, + ); + + core.Map toJson() => { + if (deployAction != null) 'deployAction': deployAction!, + if (includeSkaffoldModules != null) + 'includeSkaffoldModules': includeSkaffoldModules!, + if (renderAction != null) 'renderAction': renderAction!, + }; +} + +/// A `CustomTargetType` resource in the Cloud Deploy API. +/// +/// A `CustomTargetType` defines a type of custom target that can be referenced +/// in a `Target` in order to facilitate deploying to other systems besides the +/// supported runtimes. +class CustomTargetType { + /// User annotations. + /// + /// These attributes can only be set and used by the user, and not by Cloud + /// Deploy. See https://google.aip.dev/128#annotations for more details such + /// as format and size limitations. + /// + /// Optional. + core.Map? annotations; + + /// Time at which the `CustomTargetType` was created. + /// + /// Output only. + core.String? createTime; + + /// Configures render and deploy for the `CustomTargetType` using Skaffold + /// custom actions. + CustomTargetSkaffoldActions? customActions; + + /// Resource id of the `CustomTargetType`. + /// + /// Output only. + core.String? customTargetTypeId; + + /// Description of the `CustomTargetType`. + /// + /// Max length is 255 characters. + /// + /// Optional. + core.String? description; + + /// This checksum is computed by the server based on the value of other + /// fields, and may be sent on update and delete requests to ensure the client + /// has an up-to-date value before proceeding. + /// + /// Optional. + core.String? etag; + + /// Labels are attributes that can be set and used by both the user and by + /// Cloud Deploy. + /// + /// Labels must meet the following constraints: * Keys and values can contain + /// only lowercase letters, numeric characters, underscores, and dashes. * All + /// characters must use UTF-8 encoding, and international characters are + /// allowed. * Keys must start with a lowercase letter or international + /// character. * Each resource is limited to a maximum of 64 labels. Both keys + /// and values are additionally constrained to be \<= 128 bytes. + /// + /// Optional. + core.Map? labels; -/// CreateChildRolloutJobRun contains information specific to a -/// createChildRollout `JobRun`. -class CreateChildRolloutJobRun { - /// Name of the `ChildRollout`. + /// Name of the `CustomTargetType`. /// - /// Format is projects/{project}/ - /// locations/{location}/deliveryPipelines/{deliveryPipeline}/ - /// releases/{release}/rollouts/a-z{0,62}. + /// Format is + /// `projects/{project}/locations/{location}/customTargetTypes/a-z{0,62}`. + /// + /// Optional. + core.String? name; + + /// Unique identifier of the `CustomTargetType`. /// /// Output only. - core.String? rollout; + core.String? uid; - /// The ID of the childRollout Phase initiated by this JobRun. + /// Most recent time at which the `CustomTargetType` was updated. /// /// Output only. - core.String? rolloutPhaseId; + core.String? updateTime; - CreateChildRolloutJobRun({ - this.rollout, - this.rolloutPhaseId, + CustomTargetType({ + this.annotations, + this.createTime, + this.customActions, + this.customTargetTypeId, + this.description, + this.etag, + this.labels, + this.name, + this.uid, + this.updateTime, }); - CreateChildRolloutJobRun.fromJson(core.Map json_) + CustomTargetType.fromJson(core.Map json_) : this( - rollout: json_.containsKey('rollout') - ? json_['rollout'] as core.String + annotations: json_.containsKey('annotations') + ? (json_['annotations'] as core.Map) + .map( + (key, value) => core.MapEntry( + key, + value as core.String, + ), + ) : null, - rolloutPhaseId: json_.containsKey('rolloutPhaseId') - ? json_['rolloutPhaseId'] as core.String + createTime: json_.containsKey('createTime') + ? json_['createTime'] as core.String : null, - ); - - core.Map toJson() => { - if (rollout != null) 'rollout': rollout!, - if (rolloutPhaseId != null) 'rolloutPhaseId': rolloutPhaseId!, - }; -} - -/// CustomCanaryDeployment represents the custom canary deployment -/// configuration. -class CustomCanaryDeployment { - /// Configuration for each phase in the canary deployment in the order - /// executed. - /// - /// Required. - core.List? phaseConfigs; - - CustomCanaryDeployment({ - this.phaseConfigs, - }); - - CustomCanaryDeployment.fromJson(core.Map json_) - : this( - phaseConfigs: json_.containsKey('phaseConfigs') - ? (json_['phaseConfigs'] as core.List) - .map((value) => PhaseConfig.fromJson( - value as core.Map)) - .toList() + customActions: json_.containsKey('customActions') + ? CustomTargetSkaffoldActions.fromJson( + json_['customActions'] as core.Map) + : null, + customTargetTypeId: json_.containsKey('customTargetTypeId') + ? json_['customTargetTypeId'] as core.String + : null, + description: json_.containsKey('description') + ? json_['description'] as core.String + : null, + etag: json_.containsKey('etag') ? json_['etag'] as core.String : null, + labels: json_.containsKey('labels') + ? (json_['labels'] as core.Map).map( + (key, value) => core.MapEntry( + key, + value as core.String, + ), + ) + : null, + name: json_.containsKey('name') ? json_['name'] as core.String : null, + uid: json_.containsKey('uid') ? json_['uid'] as core.String : null, + updateTime: json_.containsKey('updateTime') + ? json_['updateTime'] as core.String : null, ); core.Map toJson() => { - if (phaseConfigs != null) 'phaseConfigs': phaseConfigs!, + if (annotations != null) 'annotations': annotations!, + if (createTime != null) 'createTime': createTime!, + if (customActions != null) 'customActions': customActions!, + if (customTargetTypeId != null) + 'customTargetTypeId': customTargetTypeId!, + if (description != null) 'description': description!, + if (etag != null) 'etag': etag!, + if (labels != null) 'labels': labels!, + if (name != null) 'name': name!, + if (uid != null) 'uid': uid!, + if (updateTime != null) 'updateTime': updateTime!, }; } @@ -4083,8 +4835,8 @@ class DeliveryPipeline { /// Name of the `DeliveryPipeline`. /// - /// Format is projects/{project}/ - /// locations/{location}/deliveryPipelines/a-z{0,62}. + /// Format is + /// `projects/{project}/locations/{location}/deliveryPipelines/a-z{0,62}`. /// /// Optional. core.String? name; @@ -4231,7 +4983,7 @@ class DeployJobRun { /// The resource name of the Cloud Build `Build` object that is used to /// deploy. /// - /// Format is projects/{project}/locations/{location}/builds/{build}. + /// Format is `projects/{project}/locations/{location}/builds/{build}`. /// /// Output only. core.String? build; @@ -4257,6 +5009,8 @@ class DeployJobRun { /// Build logs for more information. /// - "CLOUD_BUILD_REQUEST_FAILED" : Cloud Build failed to fulfill Cloud /// Deploy's request. See failure_message for additional details. + /// - "DEPLOY_FEATURE_NOT_SUPPORTED" : The deploy operation had a feature + /// configured that is not supported. core.String? failureCause; /// Additional information about the deploy failure, if available. @@ -4315,8 +5069,20 @@ class DeployJobRunMetadata { /// Output only. CloudRunMetadata? cloudRun; + /// Custom metadata provided by user-defined deploy operation. + /// + /// Output only. + CustomMetadata? custom; + + /// Custom Target metadata associated with a `DeployJobRun`. + /// + /// Output only. + CustomTargetDeployMetadata? customTarget; + DeployJobRunMetadata({ this.cloudRun, + this.custom, + this.customTarget, }); DeployJobRunMetadata.fromJson(core.Map json_) @@ -4325,10 +5091,20 @@ class DeployJobRunMetadata { ? CloudRunMetadata.fromJson( json_['cloudRun'] as core.Map) : null, + custom: json_.containsKey('custom') + ? CustomMetadata.fromJson( + json_['custom'] as core.Map) + : null, + customTarget: json_.containsKey('customTarget') + ? CustomTargetDeployMetadata.fromJson( + json_['customTarget'] as core.Map) + : null, ); core.Map toJson() => { if (cloudRun != null) 'cloudRun': cloudRun!, + if (custom != null) 'custom': custom!, + if (customTarget != null) 'customTarget': customTarget!, }; } @@ -4596,11 +5372,21 @@ class GatewayServiceMesh { /// Required. core.String? service; + /// The amount of time to migrate traffic back from the canary Service to the + /// original Service during the stable phase deployment. + /// + /// If specified, must be between 15s and 3600s. If unspecified, there is no + /// cutback time. + /// + /// Optional. + core.String? stableCutbackDuration; + GatewayServiceMesh({ this.deployment, this.httpRoute, this.routeUpdateWaitTime, this.service, + this.stableCutbackDuration, }); GatewayServiceMesh.fromJson(core.Map json_) @@ -4617,6 +5403,9 @@ class GatewayServiceMesh { service: json_.containsKey('service') ? json_['service'] as core.String : null, + stableCutbackDuration: json_.containsKey('stableCutbackDuration') + ? json_['stableCutbackDuration'] as core.String + : null, ); core.Map toJson() => { @@ -4625,6 +5414,8 @@ class GatewayServiceMesh { if (routeUpdateWaitTime != null) 'routeUpdateWaitTime': routeUpdateWaitTime!, if (service != null) 'service': service!, + if (stableCutbackDuration != null) + 'stableCutbackDuration': stableCutbackDuration!, }; } @@ -4633,7 +5424,7 @@ class GkeCluster { /// Information specifying a GKE Cluster. /// /// Format is - /// \`projects/{project_id}/locations/{location_id}/clusters/{cluster_id}. + /// `projects/{project_id}/locations/{location_id}/clusters/{cluster_id}`. core.String? cluster; /// If true, `cluster` is accessed using the private IP address of the control @@ -4877,9 +5668,8 @@ class JobRun { /// Name of the `JobRun`. /// - /// Format is projects/{project}/locations/{location}/ - /// deliveryPipelines/{deliveryPipeline}/releases/{releases}/rollouts/ - /// {rollouts}/jobRuns/{uuid}. + /// Format is + /// `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{releases}/rollouts/{rollouts}/jobRuns/{uuid}`. /// /// Optional. core.String? name; @@ -5094,7 +5884,7 @@ class ListAutomationRunsResponse { /// The response object from `ListAutomations`. class ListAutomationsResponse { - /// The `Automations` objects. + /// The `Automation` objects. core.List? automations; /// A token, which can be sent as `page_token` to retrieve the next page. @@ -5136,6 +5926,50 @@ class ListAutomationsResponse { }; } +/// The response object from `ListCustomTargetTypes.` +class ListCustomTargetTypesResponse { + /// The `CustomTargetType` objects. + core.List? customTargetTypes; + + /// A token, which can be sent as `page_token` to retrieve the next page. + /// + /// If this field is omitted, there are no subsequent pages. + core.String? nextPageToken; + + /// Locations that could not be reached. + core.List? unreachable; + + ListCustomTargetTypesResponse({ + this.customTargetTypes, + this.nextPageToken, + this.unreachable, + }); + + ListCustomTargetTypesResponse.fromJson(core.Map json_) + : this( + customTargetTypes: json_.containsKey('customTargetTypes') + ? (json_['customTargetTypes'] as core.List) + .map((value) => CustomTargetType.fromJson( + value as core.Map)) + .toList() + : null, + nextPageToken: json_.containsKey('nextPageToken') + ? json_['nextPageToken'] as core.String + : null, + unreachable: json_.containsKey('unreachable') + ? (json_['unreachable'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + ); + + core.Map toJson() => { + if (customTargetTypes != null) 'customTargetTypes': customTargetTypes!, + if (nextPageToken != null) 'nextPageToken': nextPageToken!, + if (unreachable != null) 'unreachable': unreachable!, + }; +} + /// The response object from `ListDeliveryPipelines`. class ListDeliveryPipelinesResponse { /// The `DeliveryPipeline` objects. @@ -5436,9 +6270,15 @@ class Metadata { /// Output only. CloudRunMetadata? cloudRun; + /// Custom metadata provided by user-defined `Rollout` operations. + /// + /// Output only. + CustomMetadata? custom; + Metadata({ this.automation, this.cloudRun, + this.custom, }); Metadata.fromJson(core.Map json_) @@ -5451,11 +6291,16 @@ class Metadata { ? CloudRunMetadata.fromJson( json_['cloudRun'] as core.Map) : null, + custom: json_.containsKey('custom') + ? CustomMetadata.fromJson( + json_['custom'] as core.Map) + : null, ); core.Map toJson() => { if (automation != null) 'automation': automation!, if (cloudRun != null) 'cloudRun': cloudRun!, + if (custom != null) 'custom': custom!, }; } @@ -6017,7 +6862,7 @@ class PostdeployJobRun { /// The resource name of the Cloud Build `Build` object that is used to /// execute the custom actions associated with the postdeploy Job. /// - /// Format is projects/{project}/locations/{location}/builds/{build}. + /// Format is `projects/{project}/locations/{location}/builds/{build}`. /// /// Output only. core.String? build; @@ -6128,7 +6973,7 @@ class PredeployJobRun { /// The resource name of the Cloud Build `Build` object that is used to /// execute the custom actions associated with the predeploy Job. /// - /// Format is projects/{project}/locations/{location}/builds/{build}. + /// Format is `projects/{project}/locations/{location}/builds/{build}`. /// /// Output only. core.String? build; @@ -6318,7 +7163,7 @@ class PromoteReleaseRule { /// ID of the rule. /// /// This id must be unique in the `Automation` resource to which this rule - /// belongs. The format is a-z{0,62}. + /// belongs. The format is `a-z{0,62}`. /// /// Required. core.String? id; @@ -6393,6 +7238,12 @@ class Release { /// Output only. core.String? createTime; + /// Snapshot of the custom target types referenced by the targets taken at + /// release creation time. + /// + /// Output only. + core.List? customTargetTypeSnapshots; + /// Snapshot of the parent pipeline taken at release creation time. /// /// Output only. @@ -6426,9 +7277,8 @@ class Release { /// Name of the `Release`. /// - /// Format is projects/{project}/ - /// locations/{location}/deliveryPipelines/{deliveryPipeline}/ - /// releases/a-z{0,62}. + /// Format is + /// `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/a-z{0,62}`. /// /// Optional. core.String? name; @@ -6495,6 +7345,7 @@ class Release { this.buildArtifacts, this.condition, this.createTime, + this.customTargetTypeSnapshots, this.deliveryPipelineSnapshot, this.deployParameters, this.description, @@ -6540,6 +7391,13 @@ class Release { createTime: json_.containsKey('createTime') ? json_['createTime'] as core.String : null, + customTargetTypeSnapshots: + json_.containsKey('customTargetTypeSnapshots') + ? (json_['customTargetTypeSnapshots'] as core.List) + .map((value) => CustomTargetType.fromJson( + value as core.Map)) + .toList() + : null, deliveryPipelineSnapshot: json_.containsKey('deliveryPipelineSnapshot') ? DeliveryPipeline.fromJson(json_['deliveryPipelineSnapshot'] @@ -6622,6 +7480,8 @@ class Release { if (buildArtifacts != null) 'buildArtifacts': buildArtifacts!, if (condition != null) 'condition': condition!, if (createTime != null) 'createTime': createTime!, + if (customTargetTypeSnapshots != null) + 'customTargetTypeSnapshots': customTargetTypeSnapshots!, if (deliveryPipelineSnapshot != null) 'deliveryPipelineSnapshot': deliveryPipelineSnapshot!, if (deployParameters != null) 'deployParameters': deployParameters!, @@ -6648,7 +7508,7 @@ class ReleaseCondition { /// Details around the Releases's overall status. ReleaseReadyCondition? releaseReadyCondition; - /// Details around the support state of the release's skaffold version. + /// Details around the support state of the release's Skaffold version. SkaffoldSupportedCondition? skaffoldSupportedCondition; ReleaseCondition({ @@ -6711,8 +7571,14 @@ class RenderMetadata { /// Output only. CloudRunRenderMetadata? cloudRun; + /// Custom metadata provided by user-defined render operation. + /// + /// Output only. + CustomMetadata? custom; + RenderMetadata({ this.cloudRun, + this.custom, }); RenderMetadata.fromJson(core.Map json_) @@ -6721,10 +7587,15 @@ class RenderMetadata { ? CloudRunRenderMetadata.fromJson( json_['cloudRun'] as core.Map) : null, + custom: json_.containsKey('custom') + ? CustomMetadata.fromJson( + json_['custom'] as core.Map) + : null, ); core.Map toJson() => { if (cloudRun != null) 'cloudRun': cloudRun!, + if (custom != null) 'custom': custom!, }; } @@ -6806,6 +7677,16 @@ class RepairRolloutOperation { /// Output only. core.String? currentRepairModeIndex; + /// The job ID for the Job to repair. + /// + /// Output only. + core.String? jobId; + + /// The phase ID of the phase that includes the job being repaired. + /// + /// Output only. + core.String? phaseId; + /// Records of the repair attempts. /// /// Each repair phase may have multiple retry attempts or single rollback @@ -6821,6 +7702,8 @@ class RepairRolloutOperation { RepairRolloutOperation({ this.currentRepairModeIndex, + this.jobId, + this.phaseId, this.repairPhases, this.rollout, }); @@ -6830,6 +7713,11 @@ class RepairRolloutOperation { currentRepairModeIndex: json_.containsKey('currentRepairModeIndex') ? json_['currentRepairModeIndex'] as core.String : null, + jobId: + json_.containsKey('jobId') ? json_['jobId'] as core.String : null, + phaseId: json_.containsKey('phaseId') + ? json_['phaseId'] as core.String + : null, repairPhases: json_.containsKey('repairPhases') ? (json_['repairPhases'] as core.List) .map((value) => RepairPhase.fromJson( @@ -6844,6 +7732,8 @@ class RepairRolloutOperation { core.Map toJson() => { if (currentRepairModeIndex != null) 'currentRepairModeIndex': currentRepairModeIndex!, + if (jobId != null) 'jobId': jobId!, + if (phaseId != null) 'phaseId': phaseId!, if (repairPhases != null) 'repairPhases': repairPhases!, if (rollout != null) 'rollout': rollout!, }; @@ -6860,7 +7750,7 @@ class RepairRolloutRule { /// ID of the rule. /// /// This id must be unique in the `Automation` resource to which this rule - /// belongs. The format is a-z{0,62}. + /// belongs. The format is `a-z{0,62}`. /// /// Required. core.String? id; @@ -6941,7 +7831,7 @@ class RepairRolloutRule { class Retry { /// Total number of retries. /// - /// Retry will skipped if set to 0; The minimum value is 1, and the maximum + /// Retry is skipped if set to 0; The minimum value is 1, and the maximum /// value is 10. /// /// Required. @@ -7102,11 +7992,17 @@ class RetryPhase { /// The job ID for the Job to retry. /// /// Output only. + @core.Deprecated( + 'Not supported. Member documentation may have more information.', + ) core.String? jobId; /// The phase ID of the phase that includes the job being retried. /// /// Output only. + @core.Deprecated( + 'Not supported. Member documentation may have more information.', + ) core.String? phaseId; /// The number of attempts that have been made. @@ -7404,9 +8300,8 @@ class Rollout { /// Name of the `ControllerRollout`. /// - /// Format is projects/{project}/ - /// locations/{location}/deliveryPipelines/{deliveryPipeline}/ - /// releases/{release}/rollouts/a-z{0,62}. + /// Format is + /// `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}/rollouts/a-z{0,62}`. /// /// Output only. core.String? controllerRollout; @@ -7438,10 +8333,12 @@ class Rollout { /// time. /// - "RELEASE_FAILED" : Release is in a failed state. /// - "RELEASE_ABANDONED" : Release is abandoned. - /// - "VERIFICATION_CONFIG_NOT_FOUND" : No skaffold verify configuration was + /// - "VERIFICATION_CONFIG_NOT_FOUND" : No Skaffold verify configuration was /// found. /// - "CLOUD_BUILD_REQUEST_FAILED" : Cloud Build failed to fulfill Cloud /// Deploy's request. See failure_message for additional details. + /// - "OPERATION_FEATURE_NOT_SUPPORTED" : A Rollout operation had a feature + /// configured that is not supported. core.String? deployFailureCause; /// Time at which the `Rollout` started deploying. @@ -7495,9 +8392,8 @@ class Rollout { /// Name of the `Rollout`. /// - /// Format is projects/{project}/ - /// locations/{location}/deliveryPipelines/{deliveryPipeline}/ - /// releases/{release}/rollouts/a-z{0,62}. + /// Format is + /// `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}/rollouts/a-z{0,62}`. /// /// Optional. core.String? name; @@ -7826,29 +8722,145 @@ class SetIamPolicyRequest { }; } +/// Cloud Storage bucket containing Skaffold Config modules. +class SkaffoldGCSSource { + /// Relative path from the source to the Skaffold file. + /// + /// Optional. + core.String? path; + + /// Cloud Storage source paths to copy recursively. + /// + /// For example, providing "gs://my-bucket/dir/configs / * " will result in + /// Skaffold copying all files within the "dir/configs" directory in the + /// bucket "my-bucket". + /// + /// Required. + core.String? source; + + SkaffoldGCSSource({ + this.path, + this.source, + }); + + SkaffoldGCSSource.fromJson(core.Map json_) + : this( + path: json_.containsKey('path') ? json_['path'] as core.String : null, + source: json_.containsKey('source') + ? json_['source'] as core.String + : null, + ); + + core.Map toJson() => { + if (path != null) 'path': path!, + if (source != null) 'source': source!, + }; +} + +/// Git repository containing Skaffold Config modules. +class SkaffoldGitSource { + /// Relative path from the repository root to the Skaffold file. + /// + /// Optional. + core.String? path; + + /// Git ref the package should be cloned from. + /// + /// Optional. + core.String? ref; + + /// Git repository the package should be cloned from. + /// + /// Required. + core.String? repo; + + SkaffoldGitSource({ + this.path, + this.ref, + this.repo, + }); + + SkaffoldGitSource.fromJson(core.Map json_) + : this( + path: json_.containsKey('path') ? json_['path'] as core.String : null, + ref: json_.containsKey('ref') ? json_['ref'] as core.String : null, + repo: json_.containsKey('repo') ? json_['repo'] as core.String : null, + ); + + core.Map toJson() => { + if (path != null) 'path': path!, + if (ref != null) 'ref': ref!, + if (repo != null) 'repo': repo!, + }; +} + +/// Skaffold Config modules and their remote source. +class SkaffoldModules { + /// The Skaffold Config modules to use from the specified source. + /// + /// Optional. + core.List? configs; + + /// Remote git repository containing the Skaffold Config modules. + SkaffoldGitSource? git; + + /// Cloud Storage bucket containing the Skaffold Config modules. + SkaffoldGCSSource? googleCloudStorage; + + SkaffoldModules({ + this.configs, + this.git, + this.googleCloudStorage, + }); + + SkaffoldModules.fromJson(core.Map json_) + : this( + configs: json_.containsKey('configs') + ? (json_['configs'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + git: json_.containsKey('git') + ? SkaffoldGitSource.fromJson( + json_['git'] as core.Map) + : null, + googleCloudStorage: json_.containsKey('googleCloudStorage') + ? SkaffoldGCSSource.fromJson(json_['googleCloudStorage'] + as core.Map) + : null, + ); + + core.Map toJson() => { + if (configs != null) 'configs': configs!, + if (git != null) 'git': git!, + if (googleCloudStorage != null) + 'googleCloudStorage': googleCloudStorage!, + }; +} + /// SkaffoldSupportedCondition contains information about when support for the -/// release's version of skaffold ends. +/// release's version of Skaffold ends. class SkaffoldSupportedCondition { - /// The time at which this release's version of skaffold will enter + /// The time at which this release's version of Skaffold will enter /// maintenance mode. core.String? maintenanceModeTime; - /// The skaffold support state for this release's version of skaffold. + /// The Skaffold support state for this release's version of Skaffold. /// Possible string values are: /// - "SKAFFOLD_SUPPORT_STATE_UNSPECIFIED" : Default value. This value is /// unused. - /// - "SKAFFOLD_SUPPORT_STATE_SUPPORTED" : This skaffold version is currently + /// - "SKAFFOLD_SUPPORT_STATE_SUPPORTED" : This Skaffold version is currently /// supported. - /// - "SKAFFOLD_SUPPORT_STATE_MAINTENANCE_MODE" : This skaffold version is in + /// - "SKAFFOLD_SUPPORT_STATE_MAINTENANCE_MODE" : This Skaffold version is in /// maintenance mode. - /// - "SKAFFOLD_SUPPORT_STATE_UNSUPPORTED" : This skaffold version is no + /// - "SKAFFOLD_SUPPORT_STATE_UNSUPPORTED" : This Skaffold version is no /// longer supported. core.String? skaffoldSupportState; - /// True if the version of skaffold used by this release is supported. + /// True if the version of Skaffold used by this release is supported. core.bool? status; - /// The time at which this release's version of skaffold will no longer be + /// The time at which this release's version of Skaffold will no longer be /// supported. core.String? supportExpirationTime; @@ -7887,13 +8899,13 @@ class SkaffoldSupportedCondition { /// Details of a supported Skaffold version. class SkaffoldVersion { - /// The time at which this version of skaffold will enter maintenance mode. + /// The time at which this version of Skaffold will enter maintenance mode. core.String? maintenanceModeTime; /// Date when this version is expected to no longer be supported. Date? supportEndDate; - /// The time at which this version of skaffold will no longer be supported. + /// The time at which this version of Skaffold will no longer be supported. core.String? supportExpirationTime; /// Release version number. @@ -8109,6 +9121,11 @@ class Target { /// Output only. core.String? createTime; + /// Information specifying a Custom Target. + /// + /// Optional. + CustomTarget? customTarget; + /// The deploy parameters to use for this target. /// /// Optional. @@ -8162,7 +9179,7 @@ class Target { /// Name of the `Target`. /// - /// Format is projects/{project}/locations/{location}/targets/a-z{0,62}. + /// Format is `projects/{project}/locations/{location}/targets/a-z{0,62}`. /// /// Optional. core.String? name; @@ -8196,6 +9213,7 @@ class Target { this.annotations, this.anthosCluster, this.createTime, + this.customTarget, this.deployParameters, this.description, this.etag, @@ -8229,6 +9247,10 @@ class Target { createTime: json_.containsKey('createTime') ? json_['createTime'] as core.String : null, + customTarget: json_.containsKey('customTarget') + ? CustomTarget.fromJson( + json_['customTarget'] as core.Map) + : null, deployParameters: json_.containsKey('deployParameters') ? (json_['deployParameters'] as core.Map) @@ -8286,6 +9308,7 @@ class Target { if (annotations != null) 'annotations': annotations!, if (anthosCluster != null) 'anthosCluster': anthosCluster!, if (createTime != null) 'createTime': createTime!, + if (customTarget != null) 'customTarget': customTarget!, if (deployParameters != null) 'deployParameters': deployParameters!, if (description != null) 'description': description!, if (etag != null) 'etag': etag!, @@ -8367,11 +9390,6 @@ class TargetArtifact { } /// Contains criteria for selecting Targets. -/// -/// Attributes provided must match the target resource in order for policy -/// restrictions to apply. E.g. if id "prod" and labels "foo: bar" are given the -/// target resource must match both that id and have that label in order to be -/// selected. class TargetAttribute { /// ID of the `Target`. /// @@ -8426,11 +9444,16 @@ class TargetRender { /// Deploy's request. See failure_message for additional details. /// - "VERIFICATION_CONFIG_NOT_FOUND" : The render operation did not complete /// successfully because the verification stanza required for verify was not - /// found on the skaffold configuration. + /// found on the Skaffold configuration. /// - "CUSTOM_ACTION_NOT_FOUND" : The render operation did not complete /// successfully because the custom action required for predeploy or - /// postdeploy was not found in the skaffold configuration. See + /// postdeploy was not found in the Skaffold configuration. See /// failure_message for additional details. + /// - "DEPLOYMENT_STRATEGY_NOT_SUPPORTED" : Release failed during rendering + /// because the release configuration is not supported with the specified + /// deployment strategy. + /// - "RENDER_FEATURE_NOT_SUPPORTED" : The render operation had a feature + /// configured that is not supported. core.String? failureCause; /// Additional information about the render failure, if available. @@ -8499,13 +9522,13 @@ class TargetRender { }; } -/// TargetsPresentCondition contains information on any Targets defined in the -/// Delivery Pipeline that do not actually exist. +/// `TargetsPresentCondition` contains information on any Targets referenced in +/// the Delivery Pipeline that do not actually exist. class TargetsPresentCondition { /// The list of Target names that do not exist. /// /// For example, - /// projects/{project_id}/locations/{location_name}/targets/{target_name}. + /// `projects/{project_id}/locations/{location_name}/targets/{target_name}`. core.List? missingTargets; /// True if there aren't any missing Targets. @@ -8600,7 +9623,7 @@ class VerifyJobRun { /// The resource name of the Cloud Build `Build` object that is used to /// verify. /// - /// Format is projects/{project}/locations/{location}/builds/{build}. + /// Format is `projects/{project}/locations/{location}/builds/{build}`. /// /// Output only. core.String? build; diff --git a/generated/googleapis/lib/cloudfunctions/v1.dart b/generated/googleapis/lib/cloudfunctions/v1.dart index 01c718a94..b9e085f6a 100644 --- a/generated/googleapis/lib/cloudfunctions/v1.dart +++ b/generated/googleapis/lib/cloudfunctions/v1.dart @@ -105,21 +105,13 @@ class OperationsResource { /// /// Request parameters: /// - /// [filter] - Required. A filter for matching the requested operations. The - /// supported formats of *filter* are: To query for a specific function: - /// project:*,location:*,function:* To query for all of the latest operations - /// for a project: project:*,latest:true + /// [filter] - The standard list filter. /// - /// [name] - Must not be set. + /// [name] - The name of the operation's parent resource. /// - /// [pageSize] - The maximum number of records that should be returned. - /// Requested page size cannot exceed 100. If not set, the default page size - /// is 100. Pagination is only supported when querying for a specific - /// function. + /// [pageSize] - The standard list page size. /// - /// [pageToken] - Token identifying which result to start with, which is - /// returned by a previous list call. Pagination is only supported when - /// querying for a specific function. + /// [pageToken] - The standard list page token. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -829,6 +821,10 @@ class AuditConfig { /// exempting jose@example.com from DATA_READ logging. typedef AuditLogConfig = $AuditLogConfig; +/// Security patches are applied automatically to the runtime without requiring +/// the function to be redeployed. +typedef AutomaticUpdatePolicy = $Empty; + /// Associates `members`, or principals, with a `role`. class Binding { /// The condition that is associated with this binding. @@ -861,14 +857,31 @@ class Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -877,12 +890,19 @@ class Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; Binding({ @@ -979,6 +999,8 @@ class CallFunctionResponse { /// /// It encapsulate function and triggers configurations. class CloudFunction { + AutomaticUpdatePolicy? automaticUpdatePolicy; + /// The amount of memory in MB available for a function. /// /// Defaults to 256MB. @@ -999,6 +1021,11 @@ class CloudFunction { /// Output only. core.String? buildName; + /// A service account the user provides for use with Cloud Build. + /// + /// Optional. + core.String? buildServiceAccount; + /// Name of the Cloud Build Custom Worker Pool that should be used to build /// the function. /// @@ -1018,10 +1045,9 @@ class CloudFunction { /// Docker Registry to use for this deployment. /// - /// If `docker_repository` field is specified, this field will be - /// automatically set as `ARTIFACT_REGISTRY`. If unspecified, it currently - /// defaults to `CONTAINER_REGISTRY`. This field may be overridden by the - /// backend for eligible deployments. + /// If unspecified, it defaults to `ARTIFACT_REGISTRY`. If `docker_repository` + /// field is specified, this field should either be left unspecified or set to + /// `ARTIFACT_REGISTRY`. /// Possible string values are: /// - "DOCKER_REGISTRY_UNSPECIFIED" : Unspecified. /// - "CONTAINER_REGISTRY" : Docker images will be stored in multi-regional @@ -1128,6 +1154,7 @@ class CloudFunction { 'Not supported. Member documentation may have more information.', ) core.String? network; + OnDeployUpdatePolicy? onDeployUpdatePolicy; /// The runtime in which to run the function. /// @@ -1222,10 +1249,12 @@ class CloudFunction { core.String? vpcConnectorEgressSettings; CloudFunction({ + this.automaticUpdatePolicy, this.availableMemoryMb, this.buildEnvironmentVariables, this.buildId, this.buildName, + this.buildServiceAccount, this.buildWorkerPool, this.description, this.dockerRegistry, @@ -1241,6 +1270,7 @@ class CloudFunction { this.minInstances, this.name, this.network, + this.onDeployUpdatePolicy, this.runtime, this.secretEnvironmentVariables, this.secretVolumes, @@ -1259,6 +1289,10 @@ class CloudFunction { CloudFunction.fromJson(core.Map json_) : this( + automaticUpdatePolicy: json_.containsKey('automaticUpdatePolicy') + ? AutomaticUpdatePolicy.fromJson(json_['automaticUpdatePolicy'] + as core.Map) + : null, availableMemoryMb: json_.containsKey('availableMemoryMb') ? json_['availableMemoryMb'] as core.int : null, @@ -1279,6 +1313,9 @@ class CloudFunction { buildName: json_.containsKey('buildName') ? json_['buildName'] as core.String : null, + buildServiceAccount: json_.containsKey('buildServiceAccount') + ? json_['buildServiceAccount'] as core.String + : null, buildWorkerPool: json_.containsKey('buildWorkerPool') ? json_['buildWorkerPool'] as core.String : null, @@ -1336,6 +1373,10 @@ class CloudFunction { network: json_.containsKey('network') ? json_['network'] as core.String : null, + onDeployUpdatePolicy: json_.containsKey('onDeployUpdatePolicy') + ? OnDeployUpdatePolicy.fromJson(json_['onDeployUpdatePolicy'] + as core.Map) + : null, runtime: json_.containsKey('runtime') ? json_['runtime'] as core.String : null, @@ -1390,11 +1431,15 @@ class CloudFunction { ); core.Map toJson() => { + if (automaticUpdatePolicy != null) + 'automaticUpdatePolicy': automaticUpdatePolicy!, if (availableMemoryMb != null) 'availableMemoryMb': availableMemoryMb!, if (buildEnvironmentVariables != null) 'buildEnvironmentVariables': buildEnvironmentVariables!, if (buildId != null) 'buildId': buildId!, if (buildName != null) 'buildName': buildName!, + if (buildServiceAccount != null) + 'buildServiceAccount': buildServiceAccount!, if (buildWorkerPool != null) 'buildWorkerPool': buildWorkerPool!, if (description != null) 'description': description!, if (dockerRegistry != null) 'dockerRegistry': dockerRegistry!, @@ -1411,6 +1456,8 @@ class CloudFunction { if (minInstances != null) 'minInstances': minInstances!, if (name != null) 'name': name!, if (network != null) 'network': network!, + if (onDeployUpdatePolicy != null) + 'onDeployUpdatePolicy': onDeployUpdatePolicy!, if (runtime != null) 'runtime': runtime!, if (secretEnvironmentVariables != null) 'secretEnvironmentVariables': secretEnvironmentVariables!, @@ -1579,14 +1626,13 @@ typedef GenerateDownloadUrlResponse = $GenerateDownloadUrlResponse; /// Request of `GenerateSourceUploadUrl` method. class GenerateUploadUrlRequest { /// Resource name of a KMS crypto key (managed by the user) used to - /// encrypt/decrypt function source code objects in staging Cloud Storage + /// encrypt/decrypt function source code objects in intermediate Cloud Storage /// buckets. /// /// When you generate an upload url and upload your source code, it gets - /// copied to a staging Cloud Storage bucket in an internal regional project. - /// The source code is then copied to a versioned directory in the sources - /// bucket in the consumer project during the function deployment. It must - /// match the pattern + /// copied to an intermediate Cloud Storage bucket. The source code is then + /// copied to a versioned directory in the sources bucket in the consumer + /// project during the function deployment. It must match the pattern /// `projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`. /// The Google Cloud Functions service account /// (service-{project_number}@gcf-admin-robot.iam.gserviceaccount.com) must be @@ -1787,6 +1833,9 @@ class ListOperationsResponse { /// A resource that represents a Google Cloud location. typedef Location = $Location00; +/// Security patches are only applied when a function is redeployed. +typedef OnDeployUpdatePolicy = $OnDeployUpdatePolicy; + /// This resource represents a long-running operation that is the result of a /// network API call. class Operation { diff --git a/generated/googleapis/lib/cloudfunctions/v2.dart b/generated/googleapis/lib/cloudfunctions/v2.dart index 012d89173..40d4cc2f2 100644 --- a/generated/googleapis/lib/cloudfunctions/v2.dart +++ b/generated/googleapis/lib/cloudfunctions/v2.dart @@ -136,6 +136,99 @@ class ProjectsLocationsFunctionsResource { ProjectsLocationsFunctionsResource(commons.ApiRequester client) : _requester = client; + /// Aborts generation upgrade process for a function with the given name from + /// the specified project. + /// + /// Deletes all 2nd Gen copy related configuration and resources which were + /// created during the upgrade process. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [name] - Required. The name of the function for which upgrade should be + /// aborted. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/functions/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future abortFunctionUpgrade( + AbortFunctionUpgradeRequest request, + core.String name, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v2/' + core.Uri.encodeFull('$name') + ':abortFunctionUpgrade'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + + /// Finalizes the upgrade after which function upgrade can not be rolled back. + /// + /// This is the last step of the multi step process to upgrade 1st Gen + /// functions to 2nd Gen. Deletes all original 1st Gen related configuration + /// and resources. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [name] - Required. The name of the function for which upgrade should be + /// finalized. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/functions/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future commitFunctionUpgrade( + CommitFunctionUpgradeRequest request, + core.String name, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = + 'v2/' + core.Uri.encodeFull('$name') + ':commitFunctionUpgrade'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + /// Creates a new function. /// /// If a function with the given name already exists in the specified project, @@ -536,6 +629,102 @@ class ProjectsLocationsFunctionsResource { return Operation.fromJson(response_ as core.Map); } + /// Changes the traffic target of a function from the original 1st Gen + /// function to the 2nd Gen copy. + /// + /// This is the second step of the multi step process to upgrade 1st Gen + /// functions to 2nd Gen. After this operation, all new traffic will be served + /// by 2nd Gen copy. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [name] - Required. The name of the function for which traffic target + /// should be changed to 2nd Gen from 1st Gen. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/functions/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future redirectFunctionUpgradeTraffic( + RedirectFunctionUpgradeTrafficRequest request, + core.String name, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v2/' + + core.Uri.encodeFull('$name') + + ':redirectFunctionUpgradeTraffic'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + + /// Reverts the traffic target of a function from the 2nd Gen copy to the + /// original 1st Gen function. + /// + /// After this operation, all new traffic would be served by the 1st Gen. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [name] - Required. The name of the function for which traffic target + /// should be changed back to 1st Gen from 2nd Gen. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/functions/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future rollbackFunctionUpgradeTraffic( + RollbackFunctionUpgradeTrafficRequest request, + core.String name, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v2/' + + core.Uri.encodeFull('$name') + + ':rollbackFunctionUpgradeTraffic'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + /// Sets the access control policy on the specified resource. /// /// Replaces any existing policy. Can return `NOT_FOUND`, `INVALID_ARGUMENT`, @@ -583,6 +772,54 @@ class ProjectsLocationsFunctionsResource { return Policy.fromJson(response_ as core.Map); } + /// Creates a 2nd Gen copy of the function configuration based on the 1st Gen + /// function with the given name. + /// + /// This is the first step of the multi step process to upgrade 1st Gen + /// functions to 2nd Gen. Only 2nd Gen configuration is setup as part of this + /// request and traffic continues to be served by 1st Gen. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [name] - Required. The name of the function which should have + /// configuration copied for upgrade. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/functions/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future setupFunctionUpgradeConfig( + SetupFunctionUpgradeConfigRequest request, + core.String name, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = + 'v2/' + core.Uri.encodeFull('$name') + ':setupFunctionUpgradeConfig'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + /// Returns permissions that a caller has on the specified resource. /// /// If the resource does not exist, this will return an empty set of @@ -686,22 +923,14 @@ class ProjectsLocationsOperationsResource { /// /// Request parameters: /// - /// [name] - Must not be set. + /// [name] - The name of the operation's parent resource. /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. /// - /// [filter] - Required. A filter for matching the requested operations. The - /// supported formats of *filter* are: To query for a specific function: - /// project:*,location:*,function:* To query for all of the latest operations - /// for a project: project:*,latest:true + /// [filter] - The standard list filter. /// - /// [pageSize] - The maximum number of records that should be returned. - /// Requested page size cannot exceed 100. If not set, the default page size - /// is 100. Pagination is only supported when querying for a specific - /// function. + /// [pageSize] - The standard list page size. /// - /// [pageToken] - Token identifying which result to start with, which is - /// returned by a previous list call. Pagination is only supported when - /// querying for a specific function. + /// [pageToken] - The standard list page token. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -788,6 +1017,9 @@ class ProjectsLocationsRuntimesResource { } } +/// Request for the `AbortFunctionUpgrade` method. +typedef AbortFunctionUpgradeRequest = $Empty; + /// Specifies the audit configuration for a service. /// /// The configuration determines which permission types are logged, and what @@ -847,6 +1079,10 @@ class AuditConfig { /// exempting jose@example.com from DATA_READ logging. typedef AuditLogConfig = $AuditLogConfig; +/// Security patches are applied automatically to the runtime without requiring +/// the function to be redeployed. +typedef AutomaticUpdatePolicy = $Empty; + /// Associates `members`, or principals, with a `role`. class Binding { /// The condition that is associated with this binding. @@ -879,14 +1115,31 @@ class Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -895,12 +1148,19 @@ class Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; Binding({ @@ -933,6 +1193,8 @@ class Binding { /// Describes the Build step of the function that builds a container from the /// given source. class BuildConfig { + AutomaticUpdatePolicy? automaticUpdatePolicy; + /// The Cloud Build name of the latest successful deployment of the function. /// /// Output only. @@ -956,13 +1218,12 @@ class BuildConfig { /// `docker_repository` field. core.String? dockerRegistry; - /// User managed repository created in Artifact Registry optionally with a - /// customer managed encryption key. + /// Repository in Artifact Registry to which the function docker image will be + /// pushed after it is built by Cloud Build. /// - /// This is the repository to which the function docker image will be pushed - /// after it is built by Cloud Build. If unspecified, GCF will create and use - /// a repository named 'gcf-artifacts' for every deployed region. It must - /// match the pattern + /// If specified by user, it is created and managed by user with a customer + /// managed encryption key. Otherwise, GCF will create and use a repository + /// named 'gcf-artifacts' for every deployed region. It must match the pattern /// `projects/{project}/locations/{location}/repositories/{repository}`. /// Cross-project repositories are not supported. Cross-location repositories /// are not supported. Repository format must be 'DOCKER'. @@ -979,6 +1240,7 @@ class BuildConfig { /// User-provided build-time environment variables for the function core.Map? environmentVariables; + OnDeployUpdatePolicy? onDeployUpdatePolicy; /// The runtime in which to run the function. /// @@ -988,6 +1250,9 @@ class BuildConfig { /// reference\](https://cloud.google.com/sdk/gcloud/reference/functions/deploy#--runtime). core.String? runtime; + /// \[Preview\] Service account to be used for building the container + core.String? serviceAccount; + /// The location of the function source code. Source? source; @@ -1017,12 +1282,15 @@ class BuildConfig { core.String? workerPool; BuildConfig({ + this.automaticUpdatePolicy, this.build, this.dockerRegistry, this.dockerRepository, this.entryPoint, this.environmentVariables, + this.onDeployUpdatePolicy, this.runtime, + this.serviceAccount, this.source, this.sourceProvenance, this.sourceToken, @@ -1031,6 +1299,10 @@ class BuildConfig { BuildConfig.fromJson(core.Map json_) : this( + automaticUpdatePolicy: json_.containsKey('automaticUpdatePolicy') + ? AutomaticUpdatePolicy.fromJson(json_['automaticUpdatePolicy'] + as core.Map) + : null, build: json_.containsKey('build') ? json_['build'] as core.String : null, dockerRegistry: json_.containsKey('dockerRegistry') @@ -1052,9 +1324,16 @@ class BuildConfig { ), ) : null, + onDeployUpdatePolicy: json_.containsKey('onDeployUpdatePolicy') + ? OnDeployUpdatePolicy.fromJson(json_['onDeployUpdatePolicy'] + as core.Map) + : null, runtime: json_.containsKey('runtime') ? json_['runtime'] as core.String : null, + serviceAccount: json_.containsKey('serviceAccount') + ? json_['serviceAccount'] as core.String + : null, source: json_.containsKey('source') ? Source.fromJson( json_['source'] as core.Map) @@ -1072,13 +1351,18 @@ class BuildConfig { ); core.Map toJson() => { + if (automaticUpdatePolicy != null) + 'automaticUpdatePolicy': automaticUpdatePolicy!, if (build != null) 'build': build!, if (dockerRegistry != null) 'dockerRegistry': dockerRegistry!, if (dockerRepository != null) 'dockerRepository': dockerRepository!, if (entryPoint != null) 'entryPoint': entryPoint!, if (environmentVariables != null) 'environmentVariables': environmentVariables!, + if (onDeployUpdatePolicy != null) + 'onDeployUpdatePolicy': onDeployUpdatePolicy!, if (runtime != null) 'runtime': runtime!, + if (serviceAccount != null) 'serviceAccount': serviceAccount!, if (source != null) 'source': source!, if (sourceProvenance != null) 'sourceProvenance': sourceProvenance!, if (sourceToken != null) 'sourceToken': sourceToken!, @@ -1086,6 +1370,9 @@ class BuildConfig { }; } +/// Request for the `CommitFunctionUpgrade` method. +typedef CommitFunctionUpgradeRequest = $Empty; + /// Represents a whole or partial calendar date, such as a birthday. /// /// The time of day and time zone are either specified elsewhere or are @@ -1185,6 +1472,16 @@ class EventTrigger { /// exponential backoff (capped at 10 seconds). core.String? retryPolicy; + /// The hostname of the service that 1st Gen function should be observed. + /// + /// If no string is provided, the default service implementing the API will be + /// used. For example, `storage.googleapis.com` is the default for all event + /// types in the `google.storage` namespace. The field is only applicable to + /// 1st Gen functions. + /// + /// Optional. + core.String? service; + /// The email of the trigger's service account. /// /// The service account must have permission to invoke Cloud Run services, the @@ -1217,6 +1514,7 @@ class EventTrigger { this.eventType, this.pubsubTopic, this.retryPolicy, + this.service, this.serviceAccountEmail, this.trigger, this.triggerRegion, @@ -1242,6 +1540,9 @@ class EventTrigger { retryPolicy: json_.containsKey('retryPolicy') ? json_['retryPolicy'] as core.String : null, + service: json_.containsKey('service') + ? json_['service'] as core.String + : null, serviceAccountEmail: json_.containsKey('serviceAccountEmail') ? json_['serviceAccountEmail'] as core.String : null, @@ -1259,6 +1560,7 @@ class EventTrigger { if (eventType != null) 'eventType': eventType!, if (pubsubTopic != null) 'pubsubTopic': pubsubTopic!, if (retryPolicy != null) 'retryPolicy': retryPolicy!, + if (service != null) 'service': service!, if (serviceAccountEmail != null) 'serviceAccountEmail': serviceAccountEmail!, if (trigger != null) 'trigger': trigger!, @@ -1295,6 +1597,13 @@ class Function_ { /// given source. BuildConfig? buildConfig; + /// The create timestamp of a Cloud Function. + /// + /// This is only applicable to 2nd Gen functions. + /// + /// Output only. + core.String? createTime; + /// User-provided description of a function. core.String? description; @@ -1359,6 +1668,11 @@ class Function_ { /// Output only. core.String? updateTime; + /// UpgradeInfo for this Cloud Function + /// + /// Output only. + UpgradeInfo? upgradeInfo; + /// The deployed url for the function. /// /// Output only. @@ -1366,6 +1680,7 @@ class Function_ { Function_({ this.buildConfig, + this.createTime, this.description, this.environment, this.eventTrigger, @@ -1377,6 +1692,7 @@ class Function_ { this.state, this.stateMessages, this.updateTime, + this.upgradeInfo, this.url, }); @@ -1386,6 +1702,9 @@ class Function_ { ? BuildConfig.fromJson( json_['buildConfig'] as core.Map) : null, + createTime: json_.containsKey('createTime') + ? json_['createTime'] as core.String + : null, description: json_.containsKey('description') ? json_['description'] as core.String : null, @@ -1426,11 +1745,16 @@ class Function_ { updateTime: json_.containsKey('updateTime') ? json_['updateTime'] as core.String : null, + upgradeInfo: json_.containsKey('upgradeInfo') + ? UpgradeInfo.fromJson( + json_['upgradeInfo'] as core.Map) + : null, url: json_.containsKey('url') ? json_['url'] as core.String : null, ); core.Map toJson() => { if (buildConfig != null) 'buildConfig': buildConfig!, + if (createTime != null) 'createTime': createTime!, if (description != null) 'description': description!, if (environment != null) 'environment': environment!, if (eventTrigger != null) 'eventTrigger': eventTrigger!, @@ -1442,6 +1766,7 @@ class Function_ { if (state != null) 'state': state!, if (stateMessages != null) 'stateMessages': stateMessages!, if (updateTime != null) 'updateTime': updateTime!, + if (upgradeInfo != null) 'upgradeInfo': upgradeInfo!, if (url != null) 'url': url!, }; } @@ -1454,6 +1779,17 @@ typedef GenerateDownloadUrlResponse = $GenerateDownloadUrlResponse; /// Request of `GenerateSourceUploadUrl` method. class GenerateUploadUrlRequest { + /// The function environment the generated upload url will be used for. + /// + /// The upload url for 2nd Gen functions can also be used for 1st gen + /// functions, but not vice versa. If not specified, 2nd generation-style + /// upload URLs are generated. + /// Possible string values are: + /// - "ENVIRONMENT_UNSPECIFIED" : Unspecified + /// - "GEN_1" : Gen 1 + /// - "GEN_2" : Gen 2 + core.String? environment; + /// \[Preview\] Resource name of a KMS crypto key (managed by the user) used /// to encrypt/decrypt function source code objects in intermediate Cloud /// Storage buckets. @@ -1471,17 +1807,22 @@ class GenerateUploadUrlRequest { core.String? kmsKeyName; GenerateUploadUrlRequest({ + this.environment, this.kmsKeyName, }); GenerateUploadUrlRequest.fromJson(core.Map json_) : this( + environment: json_.containsKey('environment') + ? json_['environment'] as core.String + : null, kmsKeyName: json_.containsKey('kmsKeyName') ? json_['kmsKeyName'] as core.String : null, ); core.Map toJson() => { + if (environment != null) 'environment': environment!, if (kmsKeyName != null) 'kmsKeyName': kmsKeyName!, }; } @@ -1701,6 +2042,9 @@ class ListRuntimesResponse { /// A resource that represents a Google Cloud location. typedef Location = $Location00; +/// Security patches are only applied when a function is redeployed. +typedef OnDeployUpdatePolicy = $OnDeployUpdatePolicy; + /// This resource represents a long-running operation that is the result of a /// network API call. class Operation { @@ -1898,6 +2242,9 @@ class Policy { }; } +/// Request for the `RedirectFunctionUpgradeTraffic` method. +typedef RedirectFunctionUpgradeTrafficRequest = $Empty; + /// Location of the source in a Google Cloud Source Repository. class RepoSource { /// Regex matching branches to build. @@ -1969,6 +2316,9 @@ class RepoSource { }; } +/// Request for the `RollbackFunctionUpgradeTraffic` method. +typedef RollbackFunctionUpgradeTrafficRequest = $Empty; + /// Describes a runtime and any special information (e.g., deprecation status) /// related to it. class Runtime { @@ -2217,7 +2567,7 @@ class ServiceConfig { /// serving 100% of traffic. core.bool? allTrafficOnLatestRevision; - /// \[Preview\] The number of CPUs used in a single container instance. + /// The number of CPUs used in a single container instance. /// /// Default value is calculated from available memory. Supports the same /// values as Cloud Run, see @@ -2259,8 +2609,8 @@ class ServiceConfig { /// Guide for more details. core.int? maxInstanceCount; - /// \[Preview\] Sets the maximum number of concurrent requests that each - /// instance can receive. + /// Sets the maximum number of concurrent requests that each instance can + /// receive. /// /// Defaults to 1. core.int? maxInstanceRequestConcurrency; @@ -2503,6 +2853,9 @@ class SetIamPolicyRequest { }; } +/// Request for the `SetupFunctionUpgradeConfig` method. +typedef SetupFunctionUpgradeConfigRequest = $Empty; + /// The location of the function source code. class Source { /// If provided, get the source from GitHub repository. @@ -2650,3 +3003,78 @@ typedef TestIamPermissionsRequest = $TestIamPermissionsRequest00; /// Response message for `TestIamPermissions` method. typedef TestIamPermissionsResponse = $PermissionsResponse; + +/// Information related to: * A function's eligibility for 1st Gen to 2nd Gen +/// migration * Current state of migration for function undergoing migration. +class UpgradeInfo { + /// Describes the Build step of the function that builds a container to + /// prepare for 2nd gen upgrade. + BuildConfig? buildConfig; + + /// Describes the Event trigger which has been setup to prepare for 2nd gen + /// upgrade. + EventTrigger? eventTrigger; + + /// Describes the Cloud Run service which has been setup to prepare for 2nd + /// gen upgrade. + ServiceConfig? serviceConfig; + + /// UpgradeState of the function + /// Possible string values are: + /// - "UPGRADE_STATE_UNSPECIFIED" : Unspecified state. Most functions are in + /// this upgrade state. + /// - "ELIGIBLE_FOR_2ND_GEN_UPGRADE" : Functions in this state are eligible + /// for 1st Gen -\> 2nd Gen upgrade. + /// - "UPGRADE_OPERATION_IN_PROGRESS" : An upgrade related operation is in + /// progress. + /// - "SETUP_FUNCTION_UPGRADE_CONFIG_SUCCESSFUL" : SetupFunctionUpgradeConfig + /// API was successful and a 2nd Gen function has been created based on 1st + /// Gen function instance. + /// - "SETUP_FUNCTION_UPGRADE_CONFIG_ERROR" : SetupFunctionUpgradeConfig API + /// was un-successful. + /// - "ABORT_FUNCTION_UPGRADE_ERROR" : AbortFunctionUpgrade API was + /// un-successful. + /// - "REDIRECT_FUNCTION_UPGRADE_TRAFFIC_SUCCESSFUL" : + /// RedirectFunctionUpgradeTraffic API was successful and traffic is served by + /// 2nd Gen function stack. + /// - "REDIRECT_FUNCTION_UPGRADE_TRAFFIC_ERROR" : + /// RedirectFunctionUpgradeTraffic API was un-successful. + /// - "ROLLBACK_FUNCTION_UPGRADE_TRAFFIC_ERROR" : + /// RollbackFunctionUpgradeTraffic API was un-successful. + /// - "COMMIT_FUNCTION_UPGRADE_ERROR" : CommitFunctionUpgrade API was + /// un-successful. + core.String? upgradeState; + + UpgradeInfo({ + this.buildConfig, + this.eventTrigger, + this.serviceConfig, + this.upgradeState, + }); + + UpgradeInfo.fromJson(core.Map json_) + : this( + buildConfig: json_.containsKey('buildConfig') + ? BuildConfig.fromJson( + json_['buildConfig'] as core.Map) + : null, + eventTrigger: json_.containsKey('eventTrigger') + ? EventTrigger.fromJson( + json_['eventTrigger'] as core.Map) + : null, + serviceConfig: json_.containsKey('serviceConfig') + ? ServiceConfig.fromJson( + json_['serviceConfig'] as core.Map) + : null, + upgradeState: json_.containsKey('upgradeState') + ? json_['upgradeState'] as core.String + : null, + ); + + core.Map toJson() => { + if (buildConfig != null) 'buildConfig': buildConfig!, + if (eventTrigger != null) 'eventTrigger': eventTrigger!, + if (serviceConfig != null) 'serviceConfig': serviceConfig!, + if (upgradeState != null) 'upgradeState': upgradeState!, + }; +} diff --git a/generated/googleapis/lib/cloudidentity/v1.dart b/generated/googleapis/lib/cloudidentity/v1.dart index 67b65b902..309c62d97 100644 --- a/generated/googleapis/lib/cloudidentity/v1.dart +++ b/generated/googleapis/lib/cloudidentity/v1.dart @@ -1029,8 +1029,9 @@ class DevicesDeviceUsersResource { /// [rawResourceId] - Raw Resource Id used by Google Endpoint Verification. If /// the user is enrolled into Google Endpoint Verification, this id will be /// saved as the 'device_resource_id' field in the following platform - /// dependent files. Mac: ~/.secureConnect/context_aware_config.json Windows: - /// C:\Users\%USERPROFILE%\.secureConnect\context_aware_config.json Linux: + /// dependent files. * macOS: ~/.secureConnect/context_aware_config.json * + /// Windows: %USERPROFILE%\AppData\Local\Google\Endpoint + /// Verification\accounts.json * Linux: /// ~/.secureConnect/context_aware_config.json /// /// [userId] - The user whose DeviceUser's resource name will be fetched. Must @@ -1581,9 +1582,12 @@ class GroupsResource { /// Request parameters: /// /// [groupKey_id] - The ID of the entity. For Google-managed entities, the - /// `id` should be the email address of an existing group or user. For - /// external-identity-mapped entities, the `id` must be a string conforming to - /// the Identity Source's requirements. Must be unique within a `namespace`. + /// `id` should be the email address of an existing group or user. Email + /// addresses need to adhere to + /// [name guidelines for users and groups](https://support.google.com/a/answer/9193374). + /// For external-identity-mapped entities, the `id` must be a string + /// conforming to the Identity Source's requirements. Must be unique within a + /// `namespace`. /// /// [groupKey_namespace] - The namespace in which the entity exists. If not /// specified, the `EntityKey` represents a Google-managed entity such as a @@ -1696,11 +1700,12 @@ class GroupsResource { /// * Can contain optional inclusion operators on `labels` such as /// `'cloudidentity.googleapis.com/groups.discussion_forum' in labels`). * Can /// contain an optional equality operator on `domain_name`. e.g. `domain_name - /// == 'abc.com'` * Can contain optional `startsWith/contains/equality` - /// operators on `group_key`, e.g. `group_key.startsWith('dev')`, - /// `group_key.contains('dev'), group_key == 'dev@abc.com'` * Can contain - /// optional `startsWith/contains/equality` operators on `display_name`, such - /// as `display_name.startsWith('dev')` , `display_name.contains('dev')`, + /// == 'examplepetstore.com'` * Can contain optional + /// `startsWith/contains/equality` operators on `group_key`, e.g. + /// `group_key.startsWith('dev')`, `group_key.contains('dev'), group_key == + /// 'dev@examplepetstore.com'` * Can contain optional + /// `startsWith/contains/equality` operators on `display_name`, such as + /// `display_name.startsWith('dev')` , `display_name.contains('dev')`, /// `display_name == 'dev'` /// /// [view] - The level of detail to be returned. If unspecified, defaults to @@ -2108,9 +2113,12 @@ class GroupsMembershipsResource { /// Value must have pattern `^groups/\[^/\]+$`. /// /// [memberKey_id] - The ID of the entity. For Google-managed entities, the - /// `id` should be the email address of an existing group or user. For - /// external-identity-mapped entities, the `id` must be a string conforming to - /// the Identity Source's requirements. Must be unique within a `namespace`. + /// `id` should be the email address of an existing group or user. Email + /// addresses need to adhere to + /// [name guidelines for users and groups](https://support.google.com/a/answer/9193374). + /// For external-identity-mapped entities, the `id` must be a string + /// conforming to the Identity Source's requirements. Must be unique within a + /// `namespace`. /// /// [memberKey_namespace] - The namespace in which the entity exists. If not /// specified, the `EntityKey` represents a Google-managed entity such as a @@ -3119,7 +3127,7 @@ class DynamicGroupMetadata { /// Memberships will be the union of all queries. /// /// Only one entry with USER resource is currently supported. Customers can - /// create up to 100 dynamic groups. + /// create up to 500 dynamic groups. core.List? queries; /// Status of the dynamic group. @@ -3242,9 +3250,11 @@ class EntityKey { /// The ID of the entity. /// /// For Google-managed entities, the `id` should be the email address of an - /// existing group or user. For external-identity-mapped entities, the `id` - /// must be a string conforming to the Identity Source's requirements. Must be - /// unique within a `namespace`. + /// existing group or user. Email addresses need to adhere to + /// [name guidelines for users and groups](https://support.google.com/a/answer/9193374). + /// For external-identity-mapped entities, the `id` must be a string + /// conforming to the Identity Source's requirements. Must be unique within a + /// `namespace`. core.String? id; /// The namespace in which the entity exists. diff --git a/generated/googleapis/lib/cloudkms/v1.dart b/generated/googleapis/lib/cloudkms/v1.dart index 90375bd7a..b60983372 100644 --- a/generated/googleapis/lib/cloudkms/v1.dart +++ b/generated/googleapis/lib/cloudkms/v1.dart @@ -3074,14 +3074,31 @@ class Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -3090,12 +3107,19 @@ class Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; Binding({ @@ -5577,7 +5601,7 @@ class Policy { }; } -/// The public key for a given CryptoKeyVersion. +/// The public keys for a given CryptoKeyVersion. /// /// Obtained via GetPublicKey. class PublicKey { @@ -5651,7 +5675,8 @@ class PublicKey { /// Provided here for verification. NOTE: This field is in Beta. core.String? name; - /// The public key, encoded in PEM format. + /// A public key encoded in PEM format, populated only when GetPublicKey + /// returns one key. /// /// For more information, see the /// [RFC 7468](https://tools.ietf.org/html/rfc7468) sections for @@ -5660,10 +5685,11 @@ class PublicKey { /// [Textual Encoding of Subject Public Key Info](https://tools.ietf.org/html/rfc7468#section-13). core.String? pem; - /// Integrity verification field. + /// Integrity verification field: A CRC32C checksum of the returned + /// PublicKey.pem. /// - /// A CRC32C checksum of the returned PublicKey.pem. An integrity check of - /// PublicKey.pem can be performed by computing the CRC32C checksum of + /// It is only populated when GetPublicKey returns one key. An integrity check + /// of PublicKey.pem can be performed by computing the CRC32C checksum of /// PublicKey.pem and comparing your results to this field. Discard the /// response in case of non-matching checksum values, and perform a limited /// number of retries. A persistent mismatch may indicate an issue in your diff --git a/generated/googleapis/lib/cloudprofiler/v2.dart b/generated/googleapis/lib/cloudprofiler/v2.dart index d44b9b8ab..83ff9cf11 100644 --- a/generated/googleapis/lib/cloudprofiler/v2.dart +++ b/generated/googleapis/lib/cloudprofiler/v2.dart @@ -75,15 +75,18 @@ class ProjectsProfilesResource { /// CreateProfile creates a new profile resource in the online mode. /// - /// The server ensures that the new profiles are created at a constant rate - /// per deployment, so the creation request may hang for some time until the - /// next profile session is available. The request may fail with ABORTED error - /// if the creation is not available within ~1m, the response will indicate - /// the duration of the backoff the client should take before attempting - /// creating a profile again. The backoff duration is returned in - /// google.rpc.RetryInfo extension on the response status. To a gRPC client, - /// the extension will be return as a binary-serialized proto in the trailing - /// metadata item named "google.rpc.retryinfo-bin". + /// _Direct use of this API is discouraged, please use a + /// [supported profiler agent](https://cloud.google.com/profiler/docs/about-profiler#profiling_agent) + /// instead for profile collection._ The server ensures that the new profiles + /// are created at a constant rate per deployment, so the creation request may + /// hang for some time until the next profile session is available. The + /// request may fail with ABORTED error if the creation is not available + /// within ~1m, the response will indicate the duration of the backoff the + /// client should take before attempting creating a profile again. The backoff + /// duration is returned in google.rpc.RetryInfo extension on the response + /// status. To a gRPC client, the extension will be return as a + /// binary-serialized proto in the trailing metadata item named + /// "google.rpc.retryinfo-bin". /// /// [request] - The metadata request object. /// @@ -126,7 +129,10 @@ class ProjectsProfilesResource { /// CreateOfflineProfile creates a new profile resource in the offline mode. /// /// The client provides the profile to create along with the profile bytes, - /// the server records it. + /// the server records it. _Direct use of this API is discouraged, please use + /// a + /// [supported profiler agent](https://cloud.google.com/profiler/docs/about-profiler#profiling_agent) + /// instead for profile collection._ /// /// [request] - The metadata request object. /// @@ -167,12 +173,63 @@ class ProjectsProfilesResource { return Profile.fromJson(response_ as core.Map); } + /// Lists profiles which have been collected so far and for which the caller + /// has permission to view. + /// + /// Request parameters: + /// + /// [parent] - Required. The parent, which owns this collection of profiles. + /// Format: projects/{user_project_id} + /// Value must have pattern `^projects/\[^/\]+$`. + /// + /// [pageSize] - The maximum number of items to return. Default page_size is + /// 1000. Max limit is 1000. + /// + /// [pageToken] - The token to continue pagination and get profiles from a + /// particular page. When paginating, all other parameters provided to + /// `ListProfiles` must match the call that provided the page token. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [ListProfilesResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future list( + core.String parent, { + core.int? pageSize, + core.String? pageToken, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (pageSize != null) 'pageSize': ['${pageSize}'], + if (pageToken != null) 'pageToken': [pageToken], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v2/' + core.Uri.encodeFull('$parent') + '/profiles'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return ListProfilesResponse.fromJson( + response_ as core.Map); + } + /// UpdateProfile updates the profile bytes and labels on the profile resource /// created in the online mode. /// /// Updating the bytes for profiles created in the offline mode is currently /// not supported: the profile content must be provided at the time of the - /// profile creation. + /// profile creation. _Direct use of this API is discouraged, please use a + /// [supported profiler agent](https://cloud.google.com/profiler/docs/about-profiler#profiling_agent) + /// instead for profile collection._ /// /// [request] - The metadata request object. /// @@ -315,6 +372,54 @@ class Deployment { }; } +/// ListProfileResponse contains the list of collected profiles for deployments +/// in projects which the user has permissions to view. +class ListProfilesResponse { + /// Token to receive the next page of results. + /// + /// This field maybe empty if there are no more profiles to fetch. + core.String? nextPageToken; + + /// List of profiles fetched. + core.List? profiles; + + /// Number of profiles that were skipped in the current page since they were + /// not able to be fetched successfully. + /// + /// This should typically be zero. A non-zero value may indicate a transient + /// failure, in which case if the number is too high for your use case, the + /// call may be retried. + core.int? skippedProfiles; + + ListProfilesResponse({ + this.nextPageToken, + this.profiles, + this.skippedProfiles, + }); + + ListProfilesResponse.fromJson(core.Map json_) + : this( + nextPageToken: json_.containsKey('nextPageToken') + ? json_['nextPageToken'] as core.String + : null, + profiles: json_.containsKey('profiles') + ? (json_['profiles'] as core.List) + .map((value) => Profile.fromJson( + value as core.Map)) + .toList() + : null, + skippedProfiles: json_.containsKey('skippedProfiles') + ? json_['skippedProfiles'] as core.int + : null, + ); + + core.Map toJson() => { + if (nextPageToken != null) 'nextPageToken': nextPageToken!, + if (profiles != null) 'profiles': profiles!, + if (skippedProfiles != null) 'skippedProfiles': skippedProfiles!, + }; +} + /// Profile resource. class Profile { /// Deployment this profile corresponds to. @@ -375,6 +480,13 @@ class Profile { /// the garbage collection pressure to see if those can be optimized. core.String? profileType; + /// Start time for the profile. + /// + /// This output is only present in response from the ListProfiles method. + /// + /// Output only. + core.String? startTime; + Profile({ this.deployment, this.duration, @@ -382,6 +494,7 @@ class Profile { this.name, this.profileBytes, this.profileType, + this.startTime, }); Profile.fromJson(core.Map json_) @@ -408,6 +521,9 @@ class Profile { profileType: json_.containsKey('profileType') ? json_['profileType'] as core.String : null, + startTime: json_.containsKey('startTime') + ? json_['startTime'] as core.String + : null, ); core.Map toJson() => { @@ -417,5 +533,6 @@ class Profile { if (name != null) 'name': name!, if (profileBytes != null) 'profileBytes': profileBytes!, if (profileType != null) 'profileType': profileType!, + if (startTime != null) 'startTime': startTime!, }; } diff --git a/generated/googleapis/lib/cloudresourcemanager/v1.dart b/generated/googleapis/lib/cloudresourcemanager/v1.dart index e09e4517b..cbf30e162 100644 --- a/generated/googleapis/lib/cloudresourcemanager/v1.dart +++ b/generated/googleapis/lib/cloudresourcemanager/v1.dart @@ -1950,14 +1950,31 @@ class Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -1966,12 +1983,19 @@ class Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; Binding({ diff --git a/generated/googleapis/lib/cloudresourcemanager/v2.dart b/generated/googleapis/lib/cloudresourcemanager/v2.dart index c132ea9fb..f4c8a0cb1 100644 --- a/generated/googleapis/lib/cloudresourcemanager/v2.dart +++ b/generated/googleapis/lib/cloudresourcemanager/v2.dart @@ -751,14 +751,31 @@ class Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -767,12 +784,19 @@ class Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; Binding({ diff --git a/generated/googleapis/lib/cloudresourcemanager/v3.dart b/generated/googleapis/lib/cloudresourcemanager/v3.dart index b984171b2..6a8250b59 100644 --- a/generated/googleapis/lib/cloudresourcemanager/v3.dart +++ b/generated/googleapis/lib/cloudresourcemanager/v3.dart @@ -3026,14 +3026,31 @@ class Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -3042,12 +3059,19 @@ class Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; Binding({ diff --git a/generated/googleapis/lib/cloudscheduler/v1.dart b/generated/googleapis/lib/cloudscheduler/v1.dart index c2549b433..d6c9ee483 100644 --- a/generated/googleapis/lib/cloudscheduler/v1.dart +++ b/generated/googleapis/lib/cloudscheduler/v1.dart @@ -572,18 +572,18 @@ class AppEngineHttpTarget { /// `X-CloudScheduler`: This header will be set to true. * /// `X-CloudScheduler-JobName`: This header will contain the job name. * /// `X-CloudScheduler-ScheduleTime`: For Cloud Scheduler jobs specified in the - /// unix-cron format, this header will contain the job schedule time in - /// RFC3339 UTC "Zulu" format. If the job has a body and the following headers - /// are not set by the user, Cloud Scheduler sets default values: * - /// `Content-Type`: This will be set to `"application/octet-stream"`. You can - /// override this default by explicitly setting `Content-Type` to a particular - /// media type when creating the job. For example, you can set `Content-Type` - /// to `"application/json"`. The headers below are output only. They cannot be - /// set or overridden: * `Content-Length`: This is computed by Cloud - /// Scheduler. * `X-Google-*`: For Google internal use only. * - /// `X-AppEngine-*`: For Google internal use only. In addition, some App - /// Engine headers, which contain job-specific information, are also be sent - /// to the job handler. + /// unix-cron format, this header will contain the job schedule as an offset + /// of UTC parsed according to RFC3339. If the job has a body and the + /// following headers are not set by the user, Cloud Scheduler sets default + /// values: * `Content-Type`: This will be set to + /// `"application/octet-stream"`. You can override this default by explicitly + /// setting `Content-Type` to a particular media type when creating the job. + /// For example, you can set `Content-Type` to `"application/json"`. The + /// headers below are output only. They cannot be set or overridden: * + /// `Content-Length`: This is computed by Cloud Scheduler. * `X-Google-*`: For + /// Google internal use only. * `X-AppEngine-*`: For Google internal use only. + /// In addition, some App Engine headers, which contain job-specific + /// information, are also be sent to the job handler. core.Map? headers; /// The HTTP method to use for the request. @@ -781,9 +781,9 @@ class HttpTarget { /// header will be set to true. * `X-CloudScheduler-JobName`: This header will /// contain the job name. * `X-CloudScheduler-ScheduleTime`: For Cloud /// Scheduler jobs specified in the unix-cron format, this header will contain - /// the job schedule time in RFC3339 UTC "Zulu" format. If the job has a body - /// and the following headers are not set by the user, Cloud Scheduler sets - /// default values: * `Content-Type`: This will be set to + /// the job schedule as an offset of UTC parsed according to RFC3339. If the + /// job has a body and the following headers are not set by the user, Cloud + /// Scheduler sets default values: * `Content-Type`: This will be set to /// `"application/octet-stream"`. You can override this default by explicitly /// setting `Content-Type` to a particular media type when creating the job. /// For example, you can set `Content-Type` to `"application/json"`. The total diff --git a/generated/googleapis/lib/cloudsupport/v2.dart b/generated/googleapis/lib/cloudsupport/v2.dart index c25a7b717..821d0a4fd 100644 --- a/generated/googleapis/lib/cloudsupport/v2.dart +++ b/generated/googleapis/lib/cloudsupport/v2.dart @@ -907,8 +907,11 @@ class MediaResource { } } -/// An object containing information about the effective user and authenticated -/// principal responsible for an action. +/// An Actor represents an entity that performed an action. +/// +/// For example, an actor could be a user who posted a comment on a support +/// case, a user who uploaded an attachment, or a service account that created a +/// support case. class Actor { /// The name to display for the actor. /// @@ -919,10 +922,13 @@ class Actor { /// The email address of the actor. /// - /// If not provided, it is inferred from credentials supplied during case - /// creation. If the authenticated principal does not have an email address, - /// one must be provided. When a name is provided, an email must also be - /// provided. This will be obfuscated if the user is a Google Support agent. + /// If not provided, it is inferred from the credentials supplied during case + /// creation. When a name is provided, an email must also be provided. If the + /// user is a Google Support agent, this is obfuscated. This field is + /// deprecated. Use **username** field instead. + @core.Deprecated( + 'Not supported. Member documentation may have more information.', + ) core.String? email; /// Whether the actor is a Google support actor. @@ -930,10 +936,21 @@ class Actor { /// Output only. core.bool? googleSupport; + /// The username of the actor. + /// + /// It may look like an email or other format provided by the identity + /// provider. If not provided, it is inferred from the credentials supplied. + /// When a name is provided, a username must also be provided. If the user is + /// a Google Support agent, this will not be set. + /// + /// Output only. + core.String? username; + Actor({ this.displayName, this.email, this.googleSupport, + this.username, }); Actor.fromJson(core.Map json_) @@ -946,16 +963,26 @@ class Actor { googleSupport: json_.containsKey('googleSupport') ? json_['googleSupport'] as core.bool : null, + username: json_.containsKey('username') + ? json_['username'] as core.String + : null, ); core.Map toJson() => { if (displayName != null) 'displayName': displayName!, if (email != null) 'email': email!, if (googleSupport != null) 'googleSupport': googleSupport!, + if (username != null) 'username': username!, }; } -/// Represents a file attached to a support case. +/// An Attachment contains metadata about a file that was uploaded to a case - +/// it is NOT a file itself. +/// +/// That being said, the name of an Attachment object can be used to download +/// its accompanying file through the `media.download` endpoint. While +/// attachments can be uploaded in the console at the same time as a comment, +/// they're associated on a "case" level, not a "comment" level. class Attachment { /// The time at which the attachment was created. /// @@ -1097,7 +1124,18 @@ class Blobstore2Info { }; } -/// A support case. +/// A Case is an object that contains the details of a support case. +/// +/// It contains fields for the time it was created, its priority, its +/// classification, and more. Cases can also have comments and attachments that +/// get added over time. A case is parented by a Google Cloud organization or +/// project. Organizations are identified by a number, so the name of a case +/// parented by an organization would look like this: ``` +/// organizations/123/cases/456 ``` Projects have two unique identifiers, an ID +/// and a number, and they look like this: ``` projects/abc/cases/456 ``` ``` +/// projects/123/cases/456 ``` You can use either of them when calling the API. +/// To learn more about project identifiers, see +/// \[AIP-2510\](https://google.aip.dev/cloud/2510). Next ID: 38 class Case { /// The issue classification applicable to this case. CaseClassification? classification; @@ -1277,7 +1315,12 @@ class Case { }; } -/// A classification object with a product type and value. +/// A Case Classification represents the topic that a case is about. +/// +/// It's very important to use accurate classifications, because they're used to +/// route your cases to specialists who can help you. A classification always +/// has an ID that is its unique identifier. A valid ID is required when +/// creating a case. class CaseClassification { /// A display name for the classification. /// @@ -1318,7 +1361,11 @@ class CaseClassification { /// The request message for the CloseCase endpoint. typedef CloseCaseRequest = $Empty; -/// A comment associated with a support case. +/// Case comments are the main way Google Support communicates with a user who +/// has opened a case. +/// +/// When a user responds to Google Support, the user's responses also appear as +/// comments. class Comment { /// The full comment body. /// diff --git a/generated/googleapis/lib/cloudtasks/v2.dart b/generated/googleapis/lib/cloudtasks/v2.dart index a543a35b7..c69c35cae 100644 --- a/generated/googleapis/lib/cloudtasks/v2.dart +++ b/generated/googleapis/lib/cloudtasks/v2.dart @@ -1505,14 +1505,31 @@ class Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -1521,12 +1538,19 @@ class Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; Binding({ @@ -1674,18 +1698,17 @@ class CreateTaskRequest { /// De-duplication: Explicitly specifying a task ID enables task /// de-duplication. If a task's ID is identical to that of an existing task or /// a task that was deleted or executed recently then the call will fail with - /// ALREADY_EXISTS. If the task's queue was created using Cloud Tasks, then - /// another task with the same name can't be created for ~1hour after the - /// original task was deleted or executed. If the task's queue was created - /// using queue.yaml or queue.xml, then another task with the same name can't - /// be created for ~9days after the original task was deleted or executed. - /// Because there is an extra lookup cost to identify duplicate task names, - /// these CreateTask calls have significantly increased latency. Using hashed - /// strings for the task id or for the prefix of the task id is recommended. - /// Choosing task ids that are sequential or have sequential prefixes, for - /// example using a timestamp, causes an increase in latency and error rates - /// in all task commands. The infrastructure relies on an approximately - /// uniform distribution of task ids to store and serve tasks efficiently. + /// ALREADY_EXISTS. The IDs of deleted tasks are not immediately available for + /// reuse. It can take up to 4 hours (or 9 days if the task's queue was + /// created using a queue.yaml or queue.xml) for the task ID to be released + /// and made available again. Because there is an extra lookup cost to + /// identify duplicate task names, these CreateTask calls have significantly + /// increased latency. Using hashed strings for the task id or for the prefix + /// of the task id is recommended. Choosing task ids that are sequential or + /// have sequential prefixes, for example using a timestamp, causes an + /// increase in latency and error rates in all task commands. The + /// infrastructure relies on an approximately uniform distribution of task ids + /// to store and serve tasks efficiently. /// /// Required. Task? task; diff --git a/generated/googleapis/lib/composer/v1.dart b/generated/googleapis/lib/composer/v1.dart index 524417194..b23c61b97 100644 --- a/generated/googleapis/lib/composer/v1.dart +++ b/generated/googleapis/lib/composer/v1.dart @@ -21,6 +21,9 @@ /// - [ProjectsResource] /// - [ProjectsLocationsResource] /// - [ProjectsLocationsEnvironmentsResource] +/// - [ProjectsLocationsEnvironmentsUserWorkloadsConfigMapsResource] +/// - [ProjectsLocationsEnvironmentsUserWorkloadsSecretsResource] +/// - [ProjectsLocationsEnvironmentsWorkloadsResource] /// - [ProjectsLocationsImageVersionsResource] /// - [ProjectsLocationsOperationsResource] library; @@ -81,6 +84,16 @@ class ProjectsLocationsResource { class ProjectsLocationsEnvironmentsResource { final commons.ApiRequester _requester; + ProjectsLocationsEnvironmentsUserWorkloadsConfigMapsResource + get userWorkloadsConfigMaps => + ProjectsLocationsEnvironmentsUserWorkloadsConfigMapsResource( + _requester); + ProjectsLocationsEnvironmentsUserWorkloadsSecretsResource + get userWorkloadsSecrets => + ProjectsLocationsEnvironmentsUserWorkloadsSecretsResource(_requester); + ProjectsLocationsEnvironmentsWorkloadsResource get workloads => + ProjectsLocationsEnvironmentsWorkloadsResource(_requester); + ProjectsLocationsEnvironmentsResource(commons.ApiRequester client) : _requester = client; @@ -677,82 +690,307 @@ class ProjectsLocationsEnvironmentsResource { } } -class ProjectsLocationsImageVersionsResource { +class ProjectsLocationsEnvironmentsUserWorkloadsConfigMapsResource { final commons.ApiRequester _requester; - ProjectsLocationsImageVersionsResource(commons.ApiRequester client) + ProjectsLocationsEnvironmentsUserWorkloadsConfigMapsResource( + commons.ApiRequester client) : _requester = client; - /// List ImageVersions for provided location. + /// Creates a user workloads ConfigMap. + /// + /// This method is supported for Cloud Composer environments in versions + /// composer-3.*.*-airflow-*.*.* and newer. + /// + /// [request] - The metadata request object. /// /// Request parameters: /// - /// [parent] - List ImageVersions in the given project and location, in the - /// form: "projects/{projectId}/locations/{locationId}" - /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. + /// [parent] - Required. The environment name to create a ConfigMap for, in + /// the form: + /// "projects/{projectId}/locations/{locationId}/environments/{environmentId}" + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/environments/\[^/\]+$`. /// - /// [includePastReleases] - Whether or not image versions from old releases - /// should be included. + /// [$fields] - Selector specifying which fields to include in a partial + /// response. /// - /// [pageSize] - The maximum number of image_versions to return. + /// Completes with a [UserWorkloadsConfigMap]. /// - /// [pageToken] - The next_page_token value returned from a previous List - /// request, if any. + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future create( + UserWorkloadsConfigMap request, + core.String parent, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = + 'v1/' + core.Uri.encodeFull('$parent') + '/userWorkloadsConfigMaps'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return UserWorkloadsConfigMap.fromJson( + response_ as core.Map); + } + + /// Deletes a user workloads ConfigMap. + /// + /// This method is supported for Cloud Composer environments in versions + /// composer-3.*.*-airflow-*.*.* and newer. + /// + /// Request parameters: + /// + /// [name] - Required. The ConfigMap to delete, in the form: + /// "projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsConfigMaps/{userWorkloadsConfigMapId}" + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/environments/\[^/\]+/userWorkloadsConfigMaps/\[^/\]+$`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [ListImageVersionsResponse]. + /// Completes with a [Empty]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future list( + async.Future delete( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'DELETE', + queryParams: queryParams_, + ); + return Empty.fromJson(response_ as core.Map); + } + + /// Gets an existing user workloads ConfigMap. + /// + /// This method is supported for Cloud Composer environments in versions + /// composer-3.*.*-airflow-*.*.* and newer. + /// + /// Request parameters: + /// + /// [name] - Required. The resource name of the ConfigMap to get, in the form: + /// "projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsConfigMaps/{userWorkloadsConfigMapId}" + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/environments/\[^/\]+/userWorkloadsConfigMaps/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [UserWorkloadsConfigMap]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return UserWorkloadsConfigMap.fromJson( + response_ as core.Map); + } + + /// Lists user workloads ConfigMaps. + /// + /// This method is supported for Cloud Composer environments in versions + /// composer-3.*.*-airflow-*.*.* and newer. + /// + /// Request parameters: + /// + /// [parent] - Required. List ConfigMaps in the given environment, in the + /// form: + /// "projects/{projectId}/locations/{locationId}/environments/{environmentId}" + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/environments/\[^/\]+$`. + /// + /// [pageSize] - Optional. The maximum number of ConfigMaps to return. + /// + /// [pageToken] - Optional. The next_page_token value returned from a previous + /// List request, if any. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [ListUserWorkloadsConfigMapsResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future list( core.String parent, { - core.bool? includePastReleases, core.int? pageSize, core.String? pageToken, core.String? $fields, }) async { final queryParams_ = >{ - if (includePastReleases != null) - 'includePastReleases': ['${includePastReleases}'], if (pageSize != null) 'pageSize': ['${pageSize}'], if (pageToken != null) 'pageToken': [pageToken], if ($fields != null) 'fields': [$fields], }; - final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/imageVersions'; + final url_ = + 'v1/' + core.Uri.encodeFull('$parent') + '/userWorkloadsConfigMaps'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return ListImageVersionsResponse.fromJson( + return ListUserWorkloadsConfigMapsResponse.fromJson( + response_ as core.Map); + } + + /// Updates a user workloads ConfigMap. + /// + /// This method is supported for Cloud Composer environments in versions + /// composer-3.*.*-airflow-*.*.* and newer. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [name] - Identifier. The resource name of the ConfigMap, in the form: + /// "projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsConfigMaps/{userWorkloadsConfigMapId}" + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/environments/\[^/\]+/userWorkloadsConfigMaps/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [UserWorkloadsConfigMap]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future update( + UserWorkloadsConfigMap request, + core.String name, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'PUT', + body: body_, + queryParams: queryParams_, + ); + return UserWorkloadsConfigMap.fromJson( response_ as core.Map); } } -class ProjectsLocationsOperationsResource { +class ProjectsLocationsEnvironmentsUserWorkloadsSecretsResource { final commons.ApiRequester _requester; - ProjectsLocationsOperationsResource(commons.ApiRequester client) + ProjectsLocationsEnvironmentsUserWorkloadsSecretsResource( + commons.ApiRequester client) : _requester = client; - /// Deletes a long-running operation. + /// Creates a user workloads Secret. /// - /// This method indicates that the client is no longer interested in the - /// operation result. It does not cancel the operation. If the server doesn't - /// support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. + /// This method is supported for Cloud Composer environments in versions + /// composer-3.*.*-airflow-*.*.* and newer. + /// + /// [request] - The metadata request object. /// /// Request parameters: /// - /// [name] - The name of the operation resource to be deleted. + /// [parent] - Required. The environment name to create a Secret for, in the + /// form: + /// "projects/{projectId}/locations/{locationId}/environments/{environmentId}" /// Value must have pattern - /// `^projects/\[^/\]+/locations/\[^/\]+/operations/\[^/\]+$`. + /// `^projects/\[^/\]+/locations/\[^/\]+/environments/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [UserWorkloadsSecret]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future create( + UserWorkloadsSecret request, + core.String parent, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = + 'v1/' + core.Uri.encodeFull('$parent') + '/userWorkloadsSecrets'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return UserWorkloadsSecret.fromJson( + response_ as core.Map); + } + + /// Deletes a user workloads Secret. + /// + /// This method is supported for Cloud Composer environments in versions + /// composer-3.*.*-airflow-*.*.* and newer. + /// + /// Request parameters: + /// + /// [name] - Required. The Secret to delete, in the form: + /// "projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsSecrets/{userWorkloadsSecretId}" + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/environments/\[^/\]+/userWorkloadsSecrets/\[^/\]+$`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -782,28 +1020,30 @@ class ProjectsLocationsOperationsResource { return Empty.fromJson(response_ as core.Map); } - /// Gets the latest state of a long-running operation. + /// Gets an existing user workloads Secret. /// - /// Clients can use this method to poll the operation result at intervals as - /// recommended by the API service. + /// Values of the "data" field in the response are cleared. This method is + /// supported for Cloud Composer environments in versions + /// composer-3.*.*-airflow-*.*.* and newer. /// /// Request parameters: /// - /// [name] - The name of the operation resource. + /// [name] - Required. The resource name of the Secret to get, in the form: + /// "projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsSecrets/{userWorkloadsSecretId}" /// Value must have pattern - /// `^projects/\[^/\]+/locations/\[^/\]+/operations/\[^/\]+$`. + /// `^projects/\[^/\]+/locations/\[^/\]+/environments/\[^/\]+/userWorkloadsSecrets/\[^/\]+$`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [Operation]. + /// Completes with a [UserWorkloadsSecret]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future get( + async.Future get( core.String name, { core.String? $fields, }) async { @@ -818,125 +1058,638 @@ class ProjectsLocationsOperationsResource { 'GET', queryParams: queryParams_, ); - return Operation.fromJson(response_ as core.Map); + return UserWorkloadsSecret.fromJson( + response_ as core.Map); } - /// Lists operations that match the specified filter in the request. + /// Lists user workloads Secrets. /// - /// If the server doesn't support this method, it returns `UNIMPLEMENTED`. + /// This method is supported for Cloud Composer environments in versions + /// composer-3.*.*-airflow-*.*.* and newer. /// /// Request parameters: /// - /// [name] - The name of the operation's parent resource. - /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. - /// - /// [filter] - The standard list filter. + /// [parent] - Required. List Secrets in the given environment, in the form: + /// "projects/{projectId}/locations/{locationId}/environments/{environmentId}" + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/environments/\[^/\]+$`. /// - /// [pageSize] - The standard list page size. + /// [pageSize] - Optional. The maximum number of Secrets to return. /// - /// [pageToken] - The standard list page token. + /// [pageToken] - Optional. The next_page_token value returned from a previous + /// List request, if any. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [ListOperationsResponse]. + /// Completes with a [ListUserWorkloadsSecretsResponse]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future list( - core.String name, { - core.String? filter, + async.Future list( + core.String parent, { core.int? pageSize, core.String? pageToken, core.String? $fields, }) async { final queryParams_ = >{ - if (filter != null) 'filter': [filter], if (pageSize != null) 'pageSize': ['${pageSize}'], if (pageToken != null) 'pageToken': [pageToken], if ($fields != null) 'fields': [$fields], }; - final url_ = 'v1/' + core.Uri.encodeFull('$name') + '/operations'; + final url_ = + 'v1/' + core.Uri.encodeFull('$parent') + '/userWorkloadsSecrets'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return ListUserWorkloadsSecretsResponse.fromJson( + response_ as core.Map); + } + + /// Updates a user workloads Secret. + /// + /// This method is supported for Cloud Composer environments in versions + /// composer-3.*.*-airflow-*.*.* and newer. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [name] - Identifier. The resource name of the Secret, in the form: + /// "projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsSecrets/{userWorkloadsSecretId}" + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/environments/\[^/\]+/userWorkloadsSecrets/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [UserWorkloadsSecret]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future update( + UserWorkloadsSecret request, + core.String name, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'PUT', + body: body_, + queryParams: queryParams_, + ); + return UserWorkloadsSecret.fromJson( + response_ as core.Map); + } +} + +class ProjectsLocationsEnvironmentsWorkloadsResource { + final commons.ApiRequester _requester; + + ProjectsLocationsEnvironmentsWorkloadsResource(commons.ApiRequester client) + : _requester = client; + + /// Lists workloads in a Cloud Composer environment. + /// + /// Workload is a unit that runs a single Composer component. This method is + /// supported for Cloud Composer environments in versions + /// composer-3.*.*-airflow-*.*.* and newer. + /// + /// Request parameters: + /// + /// [parent] - Required. The environment name to get workloads for, in the + /// form: + /// "projects/{projectId}/locations/{locationId}/environments/{environmentId}" + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/environments/\[^/\]+$`. + /// + /// [filter] - Optional. The list filter. Currently only supports equality on + /// the type field. The value of a field specified in the filter expression + /// must be one ComposerWorkloadType enum option. It's possible to get + /// multiple types using "OR" operator, e.g.: "type=SCHEDULER OR + /// type=CELERY_WORKER". If not specified, all items are returned. + /// + /// [pageSize] - Optional. The maximum number of environments to return. + /// + /// [pageToken] - Optional. The next_page_token value returned from a previous + /// List request, if any. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [ListWorkloadsResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future list( + core.String parent, { + core.String? filter, + core.int? pageSize, + core.String? pageToken, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (filter != null) 'filter': [filter], + if (pageSize != null) 'pageSize': ['${pageSize}'], + if (pageToken != null) 'pageToken': [pageToken], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/workloads'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return ListWorkloadsResponse.fromJson( + response_ as core.Map); + } +} + +class ProjectsLocationsImageVersionsResource { + final commons.ApiRequester _requester; + + ProjectsLocationsImageVersionsResource(commons.ApiRequester client) + : _requester = client; + + /// List ImageVersions for provided location. + /// + /// Request parameters: + /// + /// [parent] - List ImageVersions in the given project and location, in the + /// form: "projects/{projectId}/locations/{locationId}" + /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. + /// + /// [includePastReleases] - Whether or not image versions from old releases + /// should be included. + /// + /// [pageSize] - The maximum number of image_versions to return. + /// + /// [pageToken] - The next_page_token value returned from a previous List + /// request, if any. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [ListImageVersionsResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future list( + core.String parent, { + core.bool? includePastReleases, + core.int? pageSize, + core.String? pageToken, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (includePastReleases != null) + 'includePastReleases': ['${includePastReleases}'], + if (pageSize != null) 'pageSize': ['${pageSize}'], + if (pageToken != null) 'pageToken': [pageToken], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/imageVersions'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return ListImageVersionsResponse.fromJson( + response_ as core.Map); + } +} + +class ProjectsLocationsOperationsResource { + final commons.ApiRequester _requester; + + ProjectsLocationsOperationsResource(commons.ApiRequester client) + : _requester = client; + + /// Deletes a long-running operation. + /// + /// This method indicates that the client is no longer interested in the + /// operation result. It does not cancel the operation. If the server doesn't + /// support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. + /// + /// Request parameters: + /// + /// [name] - The name of the operation resource to be deleted. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/operations/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Empty]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future delete( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'DELETE', + queryParams: queryParams_, + ); + return Empty.fromJson(response_ as core.Map); + } + + /// Gets the latest state of a long-running operation. + /// + /// Clients can use this method to poll the operation result at intervals as + /// recommended by the API service. + /// + /// Request parameters: + /// + /// [name] - The name of the operation resource. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/operations/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + + /// Lists operations that match the specified filter in the request. + /// + /// If the server doesn't support this method, it returns `UNIMPLEMENTED`. + /// + /// Request parameters: + /// + /// [name] - The name of the operation's parent resource. + /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. + /// + /// [filter] - The standard list filter. + /// + /// [pageSize] - The standard list page size. + /// + /// [pageToken] - The standard list page token. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [ListOperationsResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future list( + core.String name, { + core.String? filter, + core.int? pageSize, + core.String? pageToken, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (filter != null) 'filter': [filter], + if (pageSize != null) 'pageSize': ['${pageSize}'], + if (pageToken != null) 'pageToken': [pageToken], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name') + '/operations'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return ListOperationsResponse.fromJson( + response_ as core.Map); + } +} + +/// Allowed IP range with user-provided description. +class AllowedIpRange { + /// User-provided description. + /// + /// It must contain at most 300 characters. + /// + /// Optional. + core.String? description; + + /// IP address or range, defined using CIDR notation, of requests that this + /// rule applies to. + /// + /// Examples: `192.168.1.1` or `192.168.0.0/16` or `2001:db8::/32` or + /// `2001:0db8:0000:0042:0000:8a2e:0370:7334`. IP range prefixes should be + /// properly truncated. For example, `1.2.3.4/24` should be truncated to + /// `1.2.3.0/24`. Similarly, for IPv6, `2001:db8::1/32` should be truncated to + /// `2001:db8::/32`. + core.String? value; + + AllowedIpRange({ + this.description, + this.value, + }); + + AllowedIpRange.fromJson(core.Map json_) + : this( + description: json_.containsKey('description') + ? json_['description'] as core.String + : null, + value: + json_.containsKey('value') ? json_['value'] as core.String : null, + ); + + core.Map toJson() => { + if (description != null) 'description': description!, + if (value != null) 'value': value!, + }; +} + +/// CIDR block with an optional name. +class CidrBlock { + /// CIDR block that must be specified in CIDR notation. + core.String? cidrBlock; + + /// User-defined name that identifies the CIDR block. + core.String? displayName; + + CidrBlock({ + this.cidrBlock, + this.displayName, + }); + + CidrBlock.fromJson(core.Map json_) + : this( + cidrBlock: json_.containsKey('cidrBlock') + ? json_['cidrBlock'] as core.String + : null, + displayName: json_.containsKey('displayName') + ? json_['displayName'] as core.String + : null, + ); + + core.Map toJson() => { + if (cidrBlock != null) 'cidrBlock': cidrBlock!, + if (displayName != null) 'displayName': displayName!, + }; +} + +/// Configuration for Cloud Data Lineage integration. +class CloudDataLineageIntegration { + /// Whether or not Cloud Data Lineage integration is enabled. + /// + /// Optional. + core.bool? enabled; + + CloudDataLineageIntegration({ + this.enabled, + }); + + CloudDataLineageIntegration.fromJson(core.Map json_) + : this( + enabled: json_.containsKey('enabled') + ? json_['enabled'] as core.bool + : null, + ); + + core.Map toJson() => { + if (enabled != null) 'enabled': enabled!, + }; +} + +/// Information about a single workload. +class ComposerWorkload { + /// Name of a workload. + core.String? name; + + /// Status of a workload. + /// + /// Output only. + ComposerWorkloadStatus? status; + + /// Type of a workload. + /// Possible string values are: + /// - "COMPOSER_WORKLOAD_TYPE_UNSPECIFIED" : Not able to determine the type of + /// the workload. + /// - "CELERY_WORKER" : Celery worker. + /// - "KUBERNETES_WORKER" : Kubernetes worker. + /// - "KUBERNETES_OPERATOR_POD" : Workload created by Kubernetes Pod Operator. + /// - "SCHEDULER" : Airflow scheduler. + /// - "DAG_PROCESSOR" : Airflow Dag processor. + /// - "TRIGGERER" : Airflow triggerer. + /// - "WEB_SERVER" : Airflow web server UI. + /// - "REDIS" : Redis. + core.String? type; + + ComposerWorkload({ + this.name, + this.status, + this.type, + }); + + ComposerWorkload.fromJson(core.Map json_) + : this( + name: json_.containsKey('name') ? json_['name'] as core.String : null, + status: json_.containsKey('status') + ? ComposerWorkloadStatus.fromJson( + json_['status'] as core.Map) + : null, + type: json_.containsKey('type') ? json_['type'] as core.String : null, + ); + + core.Map toJson() => { + if (name != null) 'name': name!, + if (status != null) 'status': status!, + if (type != null) 'type': type!, + }; +} + +/// Workload status. +class ComposerWorkloadStatus { + /// Detailed message of the status. + /// + /// Output only. + core.String? detailedStatusMessage; + + /// Workload state. + /// + /// Output only. + /// Possible string values are: + /// - "COMPOSER_WORKLOAD_STATE_UNSPECIFIED" : Not able to determine the status + /// of the workload. + /// - "PENDING" : Workload is in pending state and has not yet started. + /// - "OK" : Workload is running fine. + /// - "WARNING" : Workload is running but there are some non-critical + /// problems. + /// - "ERROR" : Workload is not running due to an error. + /// - "SUCCEEDED" : Workload has finished execution with success. + /// - "FAILED" : Workload has finished execution with failure. + core.String? state; + + /// Text to provide more descriptive status. + /// + /// Output only. + core.String? statusMessage; + + ComposerWorkloadStatus({ + this.detailedStatusMessage, + this.state, + this.statusMessage, + }); + + ComposerWorkloadStatus.fromJson(core.Map json_) + : this( + detailedStatusMessage: json_.containsKey('detailedStatusMessage') + ? json_['detailedStatusMessage'] as core.String + : null, + state: + json_.containsKey('state') ? json_['state'] as core.String : null, + statusMessage: json_.containsKey('statusMessage') + ? json_['statusMessage'] as core.String + : null, + ); - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListOperationsResponse.fromJson( - response_ as core.Map); - } + core.Map toJson() => { + if (detailedStatusMessage != null) + 'detailedStatusMessage': detailedStatusMessage!, + if (state != null) 'state': state!, + if (statusMessage != null) 'statusMessage': statusMessage!, + }; } -/// Allowed IP range with user-provided description. -class AllowedIpRange { - /// User-provided description. +/// Configuration for resources used by Airflow DAG processors. +class DagProcessorResource { + /// The number of DAG processors. /// - /// It must contain at most 300 characters. + /// If not provided or set to 0, a single DAG processor instance will be + /// created. /// /// Optional. - core.String? description; + core.int? count; - /// IP address or range, defined using CIDR notation, of requests that this - /// rule applies to. + /// CPU request and limit for a single Airflow DAG processor replica. /// - /// Examples: `192.168.1.1` or `192.168.0.0/16` or `2001:db8::/32` or - /// `2001:0db8:0000:0042:0000:8a2e:0370:7334`. IP range prefixes should be - /// properly truncated. For example, `1.2.3.4/24` should be truncated to - /// `1.2.3.0/24`. Similarly, for IPv6, `2001:db8::1/32` should be truncated to - /// `2001:db8::/32`. - core.String? value; + /// Optional. + core.double? cpu; - AllowedIpRange({ - this.description, - this.value, + /// Memory (GB) request and limit for a single Airflow DAG processor replica. + /// + /// Optional. + core.double? memoryGb; + + /// Storage (GB) request and limit for a single Airflow DAG processor replica. + /// + /// Optional. + core.double? storageGb; + + DagProcessorResource({ + this.count, + this.cpu, + this.memoryGb, + this.storageGb, }); - AllowedIpRange.fromJson(core.Map json_) + DagProcessorResource.fromJson(core.Map json_) : this( - description: json_.containsKey('description') - ? json_['description'] as core.String + count: json_.containsKey('count') ? json_['count'] as core.int : null, + cpu: json_.containsKey('cpu') + ? (json_['cpu'] as core.num).toDouble() + : null, + memoryGb: json_.containsKey('memoryGb') + ? (json_['memoryGb'] as core.num).toDouble() + : null, + storageGb: json_.containsKey('storageGb') + ? (json_['storageGb'] as core.num).toDouble() : null, - value: - json_.containsKey('value') ? json_['value'] as core.String : null, ); core.Map toJson() => { - if (description != null) 'description': description!, - if (value != null) 'value': value!, + if (count != null) 'count': count!, + if (cpu != null) 'cpu': cpu!, + if (memoryGb != null) 'memoryGb': memoryGb!, + if (storageGb != null) 'storageGb': storageGb!, }; } -/// CIDR block with an optional name. -class CidrBlock { - /// CIDR block that must be specified in CIDR notation. - core.String? cidrBlock; - - /// User-defined name that identifies the CIDR block. - core.String? displayName; +/// The configuration setting for Airflow database data retention mechanism. +class DataRetentionConfig { + /// The configuration settings for task logs retention + /// + /// Optional. + TaskLogsRetentionConfig? taskLogsRetentionConfig; - CidrBlock({ - this.cidrBlock, - this.displayName, + DataRetentionConfig({ + this.taskLogsRetentionConfig, }); - CidrBlock.fromJson(core.Map json_) + DataRetentionConfig.fromJson(core.Map json_) : this( - cidrBlock: json_.containsKey('cidrBlock') - ? json_['cidrBlock'] as core.String - : null, - displayName: json_.containsKey('displayName') - ? json_['displayName'] as core.String + taskLogsRetentionConfig: json_.containsKey('taskLogsRetentionConfig') + ? TaskLogsRetentionConfig.fromJson( + json_['taskLogsRetentionConfig'] + as core.Map) : null, ); core.Map toJson() => { - if (cidrBlock != null) 'cidrBlock': cidrBlock!, - if (displayName != null) 'displayName': displayName!, + if (taskLogsRetentionConfig != null) + 'taskLogsRetentionConfig': taskLogsRetentionConfig!, }; } @@ -1181,6 +1934,11 @@ class EnvironmentConfig { /// Output only. core.String? dagGcsPrefix; + /// The configuration setting for Airflow database data retention mechanism. + /// + /// Optional. + DataRetentionConfig? dataRetentionConfig; + /// The configuration settings for Cloud SQL instance used internally by /// Apache Airflow software. /// @@ -1301,6 +2059,7 @@ class EnvironmentConfig { this.airflowByoidUri, this.airflowUri, this.dagGcsPrefix, + this.dataRetentionConfig, this.databaseConfig, this.encryptionConfig, this.environmentSize, @@ -1329,6 +2088,10 @@ class EnvironmentConfig { dagGcsPrefix: json_.containsKey('dagGcsPrefix') ? json_['dagGcsPrefix'] as core.String : null, + dataRetentionConfig: json_.containsKey('dataRetentionConfig') + ? DataRetentionConfig.fromJson(json_['dataRetentionConfig'] + as core.Map) + : null, databaseConfig: json_.containsKey('databaseConfig') ? DatabaseConfig.fromJson(json_['databaseConfig'] as core.Map) @@ -1397,6 +2160,8 @@ class EnvironmentConfig { if (airflowByoidUri != null) 'airflowByoidUri': airflowByoidUri!, if (airflowUri != null) 'airflowUri': airflowUri!, if (dagGcsPrefix != null) 'dagGcsPrefix': dagGcsPrefix!, + if (dataRetentionConfig != null) + 'dataRetentionConfig': dataRetentionConfig!, if (databaseConfig != null) 'databaseConfig': databaseConfig!, if (encryptionConfig != null) 'encryptionConfig': encryptionConfig!, if (environmentSize != null) 'environmentSize': environmentSize!, @@ -1873,6 +2638,104 @@ class ListOperationsResponse { }; } +/// The user workloads ConfigMaps for a given environment. +class ListUserWorkloadsConfigMapsResponse { + /// The page token used to query for the next page if one exists. + core.String? nextPageToken; + + /// The list of ConfigMaps returned by a ListUserWorkloadsConfigMapsRequest. + core.List? userWorkloadsConfigMaps; + + ListUserWorkloadsConfigMapsResponse({ + this.nextPageToken, + this.userWorkloadsConfigMaps, + }); + + ListUserWorkloadsConfigMapsResponse.fromJson(core.Map json_) + : this( + nextPageToken: json_.containsKey('nextPageToken') + ? json_['nextPageToken'] as core.String + : null, + userWorkloadsConfigMaps: json_.containsKey('userWorkloadsConfigMaps') + ? (json_['userWorkloadsConfigMaps'] as core.List) + .map((value) => UserWorkloadsConfigMap.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (nextPageToken != null) 'nextPageToken': nextPageToken!, + if (userWorkloadsConfigMaps != null) + 'userWorkloadsConfigMaps': userWorkloadsConfigMaps!, + }; +} + +/// The user workloads Secrets for a given environment. +class ListUserWorkloadsSecretsResponse { + /// The page token used to query for the next page if one exists. + core.String? nextPageToken; + + /// The list of Secrets returned by a ListUserWorkloadsSecretsRequest. + core.List? userWorkloadsSecrets; + + ListUserWorkloadsSecretsResponse({ + this.nextPageToken, + this.userWorkloadsSecrets, + }); + + ListUserWorkloadsSecretsResponse.fromJson(core.Map json_) + : this( + nextPageToken: json_.containsKey('nextPageToken') + ? json_['nextPageToken'] as core.String + : null, + userWorkloadsSecrets: json_.containsKey('userWorkloadsSecrets') + ? (json_['userWorkloadsSecrets'] as core.List) + .map((value) => UserWorkloadsSecret.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (nextPageToken != null) 'nextPageToken': nextPageToken!, + if (userWorkloadsSecrets != null) + 'userWorkloadsSecrets': userWorkloadsSecrets!, + }; +} + +/// Response to ListWorkloadsRequest. +class ListWorkloadsResponse { + /// The page token used to query for the next page if one exists. + core.String? nextPageToken; + + /// The list of environment workloads. + core.List? workloads; + + ListWorkloadsResponse({ + this.nextPageToken, + this.workloads, + }); + + ListWorkloadsResponse.fromJson(core.Map json_) + : this( + nextPageToken: json_.containsKey('nextPageToken') + ? json_['nextPageToken'] as core.String + : null, + workloads: json_.containsKey('workloads') + ? (json_['workloads'] as core.List) + .map((value) => ComposerWorkload.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (nextPageToken != null) 'nextPageToken': nextPageToken!, + if (workloads != null) 'workloads': workloads!, + }; +} + /// Request to load a snapshot into a Cloud Composer environment. class LoadSnapshotRequest { /// Whether or not to skip setting Airflow overrides when loading the @@ -2069,6 +2932,33 @@ class NetworkingConfig { /// The configuration information for the Kubernetes Engine nodes running the /// Apache Airflow software. class NodeConfig { + /// The IP range in CIDR notation to use internally by Cloud Composer. + /// + /// IP addresses are not reserved - and the same range can be used by multiple + /// Cloud Composer environments. In case of overlap, IPs from this range will + /// not be accessible in the user's VPC network. Cannot be updated. If not + /// specified, the default value of '100.64.128.0/20' is used. This field is + /// supported for Cloud Composer environments in versions + /// composer-3.*.*-airflow-*.*.* and newer. + /// + /// Optional. + core.String? composerInternalIpv4CidrBlock; + + /// Network Attachment that Cloud Composer environment is connected to, which + /// provides connectivity with a user's VPC network. + /// + /// Takes precedence over network and subnetwork settings. If not provided, + /// but network and subnetwork are defined during environment, it will be + /// provisioned. If not provided and network and subnetwork are also empty, + /// then connectivity to user's VPC network is disabled. Network attachment + /// must be provided in format + /// projects/{project}/regions/{region}/networkAttachments/{networkAttachment}. + /// This field is supported for Cloud Composer environments in versions + /// composer-3.*.*-airflow-*.*.* and newer. + /// + /// Optional. + core.String? composerNetworkAttachment; + /// The disk size in GB used for node VMs. /// /// Minimum size is 30GB. If unspecified, defaults to 100GB. Cannot be @@ -2191,6 +3081,8 @@ class NodeConfig { core.List? tags; NodeConfig({ + this.composerInternalIpv4CidrBlock, + this.composerNetworkAttachment, this.diskSizeGb, this.enableIpMasqAgent, this.ipAllocationPolicy, @@ -2205,6 +3097,14 @@ class NodeConfig { NodeConfig.fromJson(core.Map json_) : this( + composerInternalIpv4CidrBlock: + json_.containsKey('composerInternalIpv4CidrBlock') + ? json_['composerInternalIpv4CidrBlock'] as core.String + : null, + composerNetworkAttachment: + json_.containsKey('composerNetworkAttachment') + ? json_['composerNetworkAttachment'] as core.String + : null, diskSizeGb: json_.containsKey('diskSizeGb') ? json_['diskSizeGb'] as core.int : null, @@ -2243,6 +3143,10 @@ class NodeConfig { ); core.Map toJson() => { + if (composerInternalIpv4CidrBlock != null) + 'composerInternalIpv4CidrBlock': composerInternalIpv4CidrBlock!, + if (composerNetworkAttachment != null) + 'composerNetworkAttachment': composerNetworkAttachment!, if (diskSizeGb != null) 'diskSizeGb': diskSizeGb!, if (enableIpMasqAgent != null) 'enableIpMasqAgent': enableIpMasqAgent!, if (ipAllocationPolicy != null) @@ -2511,6 +3415,19 @@ class PrivateEnvironmentConfig { /// Optional. core.String? cloudSqlIpv4CidrBlock; + /// If `true`, builds performed during operations that install Python packages + /// have only private connectivity to Google services (including Artifact + /// Registry) and VPC network (if either `NodeConfig.network` and + /// `NodeConfig.subnetwork` fields or `NodeConfig.composer_network_attachment` + /// field are specified). + /// + /// If `false`, the builds also have access to the internet. This field is + /// supported for Cloud Composer environments in versions + /// composer-3.*.*-airflow-*.*.* and newer. + /// + /// Optional. + core.bool? enablePrivateBuildsOnly; + /// If `true`, a Private IP Cloud Composer environment is created. /// /// If this field is set to true, `IPAllocationPolicy.use_ip_aliases` must be @@ -2561,6 +3478,7 @@ class PrivateEnvironmentConfig { this.cloudComposerNetworkIpv4CidrBlock, this.cloudComposerNetworkIpv4ReservedRange, this.cloudSqlIpv4CidrBlock, + this.enablePrivateBuildsOnly, this.enablePrivateEnvironment, this.enablePrivatelyUsedPublicIps, this.networkingConfig, @@ -2586,6 +3504,9 @@ class PrivateEnvironmentConfig { cloudSqlIpv4CidrBlock: json_.containsKey('cloudSqlIpv4CidrBlock') ? json_['cloudSqlIpv4CidrBlock'] as core.String : null, + enablePrivateBuildsOnly: json_.containsKey('enablePrivateBuildsOnly') + ? json_['enablePrivateBuildsOnly'] as core.bool + : null, enablePrivateEnvironment: json_.containsKey('enablePrivateEnvironment') ? json_['enablePrivateEnvironment'] as core.bool @@ -2623,6 +3544,8 @@ class PrivateEnvironmentConfig { cloudComposerNetworkIpv4ReservedRange!, if (cloudSqlIpv4CidrBlock != null) 'cloudSqlIpv4CidrBlock': cloudSqlIpv4CidrBlock!, + if (enablePrivateBuildsOnly != null) + 'enablePrivateBuildsOnly': enablePrivateBuildsOnly!, if (enablePrivateEnvironment != null) 'enablePrivateEnvironment': enablePrivateEnvironment!, if (enablePrivatelyUsedPublicIps != null) @@ -2817,6 +3740,11 @@ class SoftwareConfig { /// Optional. core.Map? airflowConfigOverrides; + /// The configuration for Cloud Data Lineage integration. + /// + /// Optional. + CloudDataLineageIntegration? cloudDataLineageIntegration; + /// Additional environment variables to provide to the Apache Airflow /// scheduler, worker, and webserver processes. /// @@ -2886,13 +3814,28 @@ class SoftwareConfig { /// Optional. core.int? schedulerCount; + /// Whether or not the web server uses custom plugins. + /// + /// If unspecified, the field defaults to `PLUGINS_ENABLED`. This field is + /// supported for Cloud Composer environments in versions + /// composer-3.*.*-airflow-*.*.* and newer. + /// + /// Optional. + /// Possible string values are: + /// - "WEB_SERVER_PLUGINS_MODE_UNSPECIFIED" : Default mode. + /// - "PLUGINS_DISABLED" : Web server plugins are not supported. + /// - "PLUGINS_ENABLED" : Web server plugins are supported. + core.String? webServerPluginsMode; + SoftwareConfig({ this.airflowConfigOverrides, + this.cloudDataLineageIntegration, this.envVariables, this.imageVersion, this.pypiPackages, this.pythonVersion, this.schedulerCount, + this.webServerPluginsMode, }); SoftwareConfig.fromJson(core.Map json_) @@ -2907,6 +3850,12 @@ class SoftwareConfig { ), ) : null, + cloudDataLineageIntegration: + json_.containsKey('cloudDataLineageIntegration') + ? CloudDataLineageIntegration.fromJson( + json_['cloudDataLineageIntegration'] + as core.Map) + : null, envVariables: json_.containsKey('envVariables') ? (json_['envVariables'] as core.Map) .map( @@ -2934,16 +3883,23 @@ class SoftwareConfig { schedulerCount: json_.containsKey('schedulerCount') ? json_['schedulerCount'] as core.int : null, + webServerPluginsMode: json_.containsKey('webServerPluginsMode') + ? json_['webServerPluginsMode'] as core.String + : null, ); core.Map toJson() => { if (airflowConfigOverrides != null) 'airflowConfigOverrides': airflowConfigOverrides!, + if (cloudDataLineageIntegration != null) + 'cloudDataLineageIntegration': cloudDataLineageIntegration!, if (envVariables != null) 'envVariables': envVariables!, if (imageVersion != null) 'imageVersion': imageVersion!, if (pypiPackages != null) 'pypiPackages': pypiPackages!, if (pythonVersion != null) 'pythonVersion': pythonVersion!, if (schedulerCount != null) 'schedulerCount': schedulerCount!, + if (webServerPluginsMode != null) + 'webServerPluginsMode': webServerPluginsMode!, }; } @@ -3055,6 +4011,38 @@ class StorageConfig { }; } +/// The configuration setting for Task Logs. +class TaskLogsRetentionConfig { + /// The mode of storage for Airflow workers task logs. + /// + /// For details, see + /// go/composer-store-task-logs-in-cloud-logging-only-design-doc + /// + /// Optional. + /// Possible string values are: + /// - "TASK_LOGS_STORAGE_MODE_UNSPECIFIED" : This configuration is not + /// specified by the user. + /// - "CLOUD_LOGGING_AND_CLOUD_STORAGE" : Store task logs in Cloud Logging and + /// in the environment's Cloud Storage bucket. + /// - "CLOUD_LOGGING_ONLY" : Store task logs in Cloud Logging only. + core.String? storageMode; + + TaskLogsRetentionConfig({ + this.storageMode, + }); + + TaskLogsRetentionConfig.fromJson(core.Map json_) + : this( + storageMode: json_.containsKey('storageMode') + ? json_['storageMode'] as core.String + : null, + ); + + core.Map toJson() => { + if (storageMode != null) 'storageMode': storageMode!, + }; +} + /// Configuration for resources used by Airflow triggerers. class TriggererResource { /// The number of triggerers. @@ -3096,6 +4084,89 @@ class TriggererResource { }; } +/// User workloads ConfigMap used by Airflow tasks that run with Kubernetes +/// executor or KubernetesPodOperator. +class UserWorkloadsConfigMap { + /// The "data" field of Kubernetes ConfigMap, organized in key-value pairs. + /// + /// For details see: + /// https://kubernetes.io/docs/concepts/configuration/configmap/ + /// + /// Optional. + core.Map? data; + + /// Identifier. + /// + /// The resource name of the ConfigMap, in the form: + /// "projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsConfigMaps/{userWorkloadsConfigMapId}" + core.String? name; + + UserWorkloadsConfigMap({ + this.data, + this.name, + }); + + UserWorkloadsConfigMap.fromJson(core.Map json_) + : this( + data: json_.containsKey('data') + ? (json_['data'] as core.Map).map( + (key, value) => core.MapEntry( + key, + value as core.String, + ), + ) + : null, + name: json_.containsKey('name') ? json_['name'] as core.String : null, + ); + + core.Map toJson() => { + if (data != null) 'data': data!, + if (name != null) 'name': name!, + }; +} + +/// User workloads Secret used by Airflow tasks that run with Kubernetes +/// executor or KubernetesPodOperator. +class UserWorkloadsSecret { + /// The "data" field of Kubernetes Secret, organized in key-value pairs, which + /// can contain sensitive values such as a password, a token, or a key. + /// + /// The values for all keys have to be base64-encoded strings. For details + /// see: https://kubernetes.io/docs/concepts/configuration/secret/ + /// + /// Optional. + core.Map? data; + + /// Identifier. + /// + /// The resource name of the Secret, in the form: + /// "projects/{projectId}/locations/{locationId}/environments/{environmentId}/userWorkloadsSecrets/{userWorkloadsSecretId}" + core.String? name; + + UserWorkloadsSecret({ + this.data, + this.name, + }); + + UserWorkloadsSecret.fromJson(core.Map json_) + : this( + data: json_.containsKey('data') + ? (json_['data'] as core.Map).map( + (key, value) => core.MapEntry( + key, + value as core.String, + ), + ) + : null, + name: json_.containsKey('name') ? json_['name'] as core.String : null, + ); + + core.Map toJson() => { + if (data != null) 'data': data!, + if (name != null) 'name': name!, + }; +} + /// The configuration settings for the Airflow web server App Engine instance. /// /// Supported for Cloud Composer environments in versions @@ -3263,6 +4334,14 @@ class WorkerResource { /// Supported for Cloud Composer environments in versions /// composer-2.*.*-airflow-*.*.* and newer. class WorkloadsConfig { + /// Resources used by Airflow DAG processors. + /// + /// This field is supported for Cloud Composer environments in versions + /// composer-3.*.*-airflow-*.*.* and newer. + /// + /// Optional. + DagProcessorResource? dagProcessor; + /// Resources used by Airflow schedulers. /// /// Optional. @@ -3284,6 +4363,7 @@ class WorkloadsConfig { WorkerResource? worker; WorkloadsConfig({ + this.dagProcessor, this.scheduler, this.triggerer, this.webServer, @@ -3292,6 +4372,10 @@ class WorkloadsConfig { WorkloadsConfig.fromJson(core.Map json_) : this( + dagProcessor: json_.containsKey('dagProcessor') + ? DagProcessorResource.fromJson( + json_['dagProcessor'] as core.Map) + : null, scheduler: json_.containsKey('scheduler') ? SchedulerResource.fromJson( json_['scheduler'] as core.Map) @@ -3311,6 +4395,7 @@ class WorkloadsConfig { ); core.Map toJson() => { + if (dagProcessor != null) 'dagProcessor': dagProcessor!, if (scheduler != null) 'scheduler': scheduler!, if (triggerer != null) 'triggerer': triggerer!, if (webServer != null) 'webServer': webServer!, diff --git a/generated/googleapis/lib/compute/v1.dart b/generated/googleapis/lib/compute/v1.dart index 847b74b77..aaa72e0e5 100644 --- a/generated/googleapis/lib/compute/v1.dart +++ b/generated/googleapis/lib/compute/v1.dart @@ -44,6 +44,7 @@ /// - [InstanceGroupsResource] /// - [InstanceTemplatesResource] /// - [InstancesResource] +/// - [InstantSnapshotsResource] /// - [InterconnectAttachmentsResource] /// - [InterconnectLocationsResource] /// - [InterconnectRemoteLocationsResource] @@ -75,6 +76,7 @@ /// - [RegionInstanceGroupsResource] /// - [RegionInstanceTemplatesResource] /// - [RegionInstancesResource] +/// - [RegionInstantSnapshotsResource] /// - [RegionNetworkEndpointGroupsResource] /// - [RegionNetworkFirewallPoliciesResource] /// - [RegionNotificationEndpointsResource] @@ -86,6 +88,7 @@ /// - [RegionTargetHttpsProxiesResource] /// - [RegionTargetTcpProxiesResource] /// - [RegionUrlMapsResource] +/// - [RegionZonesResource] /// - [RegionsResource] /// - [ReservationsResource] /// - [ResourcePoliciesResource] @@ -200,6 +203,8 @@ class ComputeApi { InstanceTemplatesResource get instanceTemplates => InstanceTemplatesResource(_requester); InstancesResource get instances => InstancesResource(_requester); + InstantSnapshotsResource get instantSnapshots => + InstantSnapshotsResource(_requester); InterconnectAttachmentsResource get interconnectAttachments => InterconnectAttachmentsResource(_requester); InterconnectLocationsResource get interconnectLocations => @@ -251,6 +256,8 @@ class ComputeApi { RegionInstanceTemplatesResource(_requester); RegionInstancesResource get regionInstances => RegionInstancesResource(_requester); + RegionInstantSnapshotsResource get regionInstantSnapshots => + RegionInstantSnapshotsResource(_requester); RegionNetworkEndpointGroupsResource get regionNetworkEndpointGroups => RegionNetworkEndpointGroupsResource(_requester); RegionNetworkFirewallPoliciesResource get regionNetworkFirewallPolicies => @@ -272,6 +279,7 @@ class ComputeApi { RegionTargetTcpProxiesResource get regionTargetTcpProxies => RegionTargetTcpProxiesResource(_requester); RegionUrlMapsResource get regionUrlMaps => RegionUrlMapsResource(_requester); + RegionZonesResource get regionZones => RegionZonesResource(_requester); RegionsResource get regions => RegionsResource(_requester); ReservationsResource get reservations => ReservationsResource(_requester); ResourcePoliciesResource get resourcePolicies => @@ -325,6 +333,9 @@ class AcceleratorTypesResource { /// Retrieves an aggregated list of accelerator types. /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. + /// /// Request parameters: /// /// [project] - Project ID for this request. @@ -393,8 +404,13 @@ class AcceleratorTypesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -560,6 +576,9 @@ class AcceleratorTypesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -614,6 +633,9 @@ class AddressesResource { /// Retrieves an aggregated list of addresses. /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. + /// /// Request parameters: /// /// [project] - Project ID for this request. @@ -682,8 +704,13 @@ class AddressesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -973,6 +1000,9 @@ class AddressesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -1167,6 +1197,9 @@ class AutoscalersResource { /// Retrieves an aggregated list of autoscalers. /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. + /// /// Request parameters: /// /// [project] - Project ID for this request. @@ -1235,8 +1268,13 @@ class AutoscalersResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -1527,6 +1565,9 @@ class AutoscalersResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -2119,6 +2160,9 @@ class BackendBucketsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -2238,8 +2282,8 @@ class BackendBucketsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [backendBucket] - Name of the BackendService resource to which the - /// security policy should be set. The name should conform to RFC1035. + /// [backendBucket] - Name of the BackendBucket resource to which the security + /// policy should be set. The name should conform to RFC1035. /// /// [requestId] - An optional request ID to identify requests. Specify a /// unique request ID so that if you must retry your request, the server will @@ -2528,6 +2572,9 @@ class BackendServicesResource { /// Retrieves the list of all BackendService resources, regional and global, /// available to the specified project. /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. + /// /// Request parameters: /// /// [project] - Name of the project scoping this request. @@ -2596,8 +2643,13 @@ class BackendServicesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -3039,6 +3091,9 @@ class BackendServicesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -3145,6 +3200,9 @@ class BackendServicesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -3557,6 +3615,9 @@ class DiskTypesResource { /// Retrieves an aggregated list of disk types. /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. + /// /// Request parameters: /// /// [project] - Project ID for this request. @@ -3625,8 +3686,13 @@ class DiskTypesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -3790,6 +3856,9 @@ class DiskTypesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -3916,6 +3985,9 @@ class DisksResource { /// Retrieves an aggregated list of persistent disks. /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. + /// /// Request parameters: /// /// [project] - Project ID for this request. @@ -3984,8 +4056,13 @@ class DisksResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -4484,6 +4561,9 @@ class DisksResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -5366,6 +5446,9 @@ class ExternalVpnGatewaysResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -6025,6 +6108,9 @@ class FirewallPoliciesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -6693,6 +6779,9 @@ class FirewallsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -6873,6 +6962,9 @@ class ForwardingRulesResource { /// Retrieves an aggregated list of forwarding rules. /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. + /// /// Request parameters: /// /// [project] - Project ID for this request. @@ -6941,8 +7033,13 @@ class ForwardingRulesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -7234,6 +7331,9 @@ class ForwardingRulesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -7721,6 +7821,9 @@ class GlobalAddressesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -8109,6 +8212,9 @@ class GlobalForwardingRulesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -8689,6 +8795,9 @@ class GlobalNetworkEndpointGroupsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -8798,6 +8907,9 @@ class GlobalNetworkEndpointGroupsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -8852,6 +8964,9 @@ class GlobalOperationsResource { /// Retrieves an aggregated list of all operations. /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. + /// /// Request parameters: /// /// [project] - Project ID for this request. @@ -8920,8 +9035,13 @@ class GlobalOperationsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -9119,6 +9239,9 @@ class GlobalOperationsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -9368,6 +9491,9 @@ class GlobalOrganizationOperationsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -9640,6 +9766,9 @@ class GlobalPublicDelegatedPrefixesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -9759,6 +9888,9 @@ class HealthChecksResource { /// Retrieves the list of all HealthCheck resources, regional and global, /// available to the specified project. /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. + /// /// Request parameters: /// /// [project] - Name of the project scoping this request. @@ -9827,8 +9959,13 @@ class HealthChecksResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -10099,6 +10236,9 @@ class HealthChecksResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -10499,6 +10639,9 @@ class HttpHealthChecksResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -10899,6 +11042,9 @@ class HttpsHealthChecksResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -11530,6 +11676,9 @@ class ImagesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -11879,6 +12028,9 @@ class InstanceGroupManagersResource { /// Retrieves the list of managed instance groups and groups them by zone. /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. + /// /// Request parameters: /// /// [project] - Project ID for this request. @@ -11947,8 +12099,13 @@ class InstanceGroupManagersResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -12510,6 +12667,9 @@ class InstanceGroupManagersResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -12629,6 +12789,9 @@ class InstanceGroupManagersResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -12685,9 +12848,8 @@ class InstanceGroupManagersResource { /// example, if the group is still creating an instance, the currentAction is /// CREATING. If a previous action failed, the list displays the errors for /// that failed action. The orderBy query parameter is not supported. The - /// `pageToken` query parameter is supported only in the alpha and beta API - /// and only if the group's `listManagedInstancesResults` field is set to - /// `PAGINATED`. + /// `pageToken` query parameter is supported only if the group's + /// `listManagedInstancesResults` field is set to `PAGINATED`. /// /// Request parameters: /// @@ -12753,6 +12915,9 @@ class InstanceGroupManagersResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -12874,6 +13039,9 @@ class InstanceGroupManagersResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -13527,6 +13695,9 @@ class InstanceGroupsResource { /// Retrieves the list of instance groups and sorts them by zone. /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. + /// /// Request parameters: /// /// [project] - Project ID for this request. @@ -13595,8 +13766,13 @@ class InstanceGroupsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -13891,6 +14067,9 @@ class InstanceGroupsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -14010,6 +14189,9 @@ class InstanceGroupsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -14210,6 +14392,9 @@ class InstanceTemplatesResource { /// Retrieves the list of all InstanceTemplates resources, regional and /// global, available to the specified project. /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. + /// /// Request parameters: /// /// [project] - Name of the project scoping this request. @@ -14278,8 +14463,13 @@ class InstanceTemplatesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -14610,6 +14800,9 @@ class InstanceTemplatesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -14912,7 +15105,9 @@ class InstancesResource { /// across all regions and zones. /// /// The performance of this method degrades when a filter is specified on a - /// project that has a very large number of instances. + /// project that has a very large number of instances. To prevent failure, + /// Google recommends that you set the `returnPartialSuccess` parameter to + /// `true`. /// /// Request parameters: /// @@ -14982,8 +15177,13 @@ class InstancesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -15932,6 +16132,9 @@ class InstancesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -16053,6 +16256,9 @@ class InstancesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -16102,6 +16308,70 @@ class InstancesResource { response_ as core.Map); } + /// Perform a manual maintenance on the instance. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [zone] - The name of the zone for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// + /// [instance] - Name of the instance scoping this request. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future performMaintenance( + core.String project, + core.String zone, + core.String instance, { + core.String? requestId, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/zones/' + + commons.escapeVariable('$zone') + + '/instances/' + + commons.escapeVariable('$instance') + + '/performMaintenance'; + + final response_ = await _requester.request( + url_, + 'POST', + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + /// Removes resource policies from an instance. /// /// [request] - The metadata request object. @@ -17363,6 +17633,9 @@ class InstancesResource { /// valid UUID with the exception that zero UUID is not supported ( /// 00000000-0000-0000-0000-000000000000). /// + /// [withExtendedNotifications] - Determines whether the customers receive + /// notifications before migration. Only applicable to SF vms. + /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// @@ -17378,10 +17651,13 @@ class InstancesResource { core.String zone, core.String instance, { core.String? requestId, + core.bool? withExtendedNotifications, core.String? $fields, }) async { final queryParams_ = >{ if (requestId != null) 'requestId': [requestId], + if (withExtendedNotifications != null) + 'withExtendedNotifications': ['${withExtendedNotifications}'], if ($fields != null) 'fields': [$fields], }; @@ -17559,8 +17835,10 @@ class InstancesResource { /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [discardLocalSsd] - If true, discard the contents of any attached localSSD - /// partitions. Default value is false. + /// [discardLocalSsd] - This property is required if the instance has any + /// attached Local SSD disks. If false, Local SSD data will be preserved when + /// the instance is suspended. If true, the contents of any attached Local SSD + /// disks will be discarded. /// /// [requestId] - An optional request ID to identify requests. Specify a /// unique request ID so that if you must retry your request, the server will @@ -17635,8 +17913,10 @@ class InstancesResource { /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [discardLocalSsd] - If true, discard the contents of any attached localSSD - /// partitions. Default value is false. + /// [discardLocalSsd] - This property is required if the instance has any + /// attached Local SSD disks. If false, Local SSD data will be preserved when + /// the instance is suspended. If true, the contents of any attached Local SSD + /// disks will be discarded. /// /// [requestId] - An optional request ID to identify requests. Specify a /// unique request ID so that if you must retry your request, the server will @@ -18145,13 +18425,15 @@ class InstancesResource { } } -class InterconnectAttachmentsResource { +class InstantSnapshotsResource { final commons.ApiRequester _requester; - InterconnectAttachmentsResource(commons.ApiRequester client) - : _requester = client; + InstantSnapshotsResource(commons.ApiRequester client) : _requester = client; - /// Retrieves an aggregated list of interconnect attachments. + /// Retrieves an aggregated list of instantSnapshots. + /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. /// /// Request parameters: /// @@ -18221,20 +18503,25 @@ class InterconnectAttachmentsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [InterconnectAttachmentAggregatedList]. + /// Completes with a [InstantSnapshotAggregatedList]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future aggregatedList( + async.Future aggregatedList( core.String project, { core.String? filter, core.bool? includeAllScopes, @@ -18260,18 +18547,24 @@ class InterconnectAttachmentsResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/aggregated/interconnectAttachments'; + '/aggregated/instantSnapshots'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return InterconnectAttachmentAggregatedList.fromJson( + return InstantSnapshotAggregatedList.fromJson( response_ as core.Map); } - /// Deletes the specified interconnect attachment. + /// Deletes the specified InstantSnapshot resource. + /// + /// Keep in mind that deleting a single instantSnapshot might not necessarily + /// delete all the data on that instantSnapshot. If any data on the + /// instantSnapshot that is marked for deletion is needed for subsequent + /// instantSnapshots, the data will be moved to the next corresponding + /// instantSnapshot. For more information, see Deleting instantSnapshots. /// /// Request parameters: /// @@ -18279,10 +18572,10 @@ class InterconnectAttachmentsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region for this request. + /// [zone] - The name of the zone for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [interconnectAttachment] - Name of the interconnect attachment to delete. + /// [instantSnapshot] - Name of the InstantSnapshot resource to delete. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// @@ -18309,8 +18602,8 @@ class InterconnectAttachmentsResource { /// this method will complete with the same error. async.Future delete( core.String project, - core.String region, - core.String interconnectAttachment, { + core.String zone, + core.String instantSnapshot, { core.String? requestId, core.String? $fields, }) async { @@ -18321,10 +18614,10 @@ class InterconnectAttachmentsResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/regions/' + - commons.escapeVariable('$region') + - '/interconnectAttachments/' + - commons.escapeVariable('$interconnectAttachment'); + '/zones/' + + commons.escapeVariable('$zone') + + '/instantSnapshots/' + + commons.escapeVariable('$instantSnapshot'); final response_ = await _requester.request( url_, @@ -18334,7 +18627,7 @@ class InterconnectAttachmentsResource { return Operation.fromJson(response_ as core.Map); } - /// Returns the specified interconnect attachment. + /// Returns the specified InstantSnapshot resource in the specified zone. /// /// Request parameters: /// @@ -18342,27 +18635,27 @@ class InterconnectAttachmentsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region for this request. + /// [zone] - The name of the zone for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [interconnectAttachment] - Name of the interconnect attachment to return. + /// [instantSnapshot] - Name of the InstantSnapshot resource to return. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [InterconnectAttachment]. + /// Completes with a [InstantSnapshot]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future get( + async.Future get( core.String project, - core.String region, - core.String interconnectAttachment, { + core.String zone, + core.String instantSnapshot, { core.String? $fields, }) async { final queryParams_ = >{ @@ -18371,22 +18664,79 @@ class InterconnectAttachmentsResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/regions/' + - commons.escapeVariable('$region') + - '/interconnectAttachments/' + - commons.escapeVariable('$interconnectAttachment'); + '/zones/' + + commons.escapeVariable('$zone') + + '/instantSnapshots/' + + commons.escapeVariable('$instantSnapshot'); final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return InterconnectAttachment.fromJson( + return InstantSnapshot.fromJson( response_ as core.Map); } - /// Creates an InterconnectAttachment in the specified project using the data - /// included in the request. + /// Gets the access control policy for a resource. + /// + /// May be empty if no such policy or resource exists. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [zone] - The name of the zone for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// + /// [resource] - Name or id of the resource for this request. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// + /// [optionsRequestedPolicyVersion] - Requested IAM Policy version. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Policy]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future getIamPolicy( + core.String project, + core.String zone, + core.String resource, { + core.int? optionsRequestedPolicyVersion, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (optionsRequestedPolicyVersion != null) + 'optionsRequestedPolicyVersion': ['${optionsRequestedPolicyVersion}'], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/zones/' + + commons.escapeVariable('$zone') + + '/instantSnapshots/' + + commons.escapeVariable('$resource') + + '/getIamPolicy'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return Policy.fromJson(response_ as core.Map); + } + + /// Creates an instant snapshot in the specified zone. /// /// [request] - The metadata request object. /// @@ -18396,7 +18746,7 @@ class InterconnectAttachmentsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region for this request. + /// [zone] - Name of the zone for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// /// [requestId] - An optional request ID to identify requests. Specify a @@ -18410,8 +18760,6 @@ class InterconnectAttachmentsResource { /// valid UUID with the exception that zero UUID is not supported ( /// 00000000-0000-0000-0000-000000000000). /// - /// [validateOnly] - If true, the request will not be committed. - /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// @@ -18423,25 +18771,23 @@ class InterconnectAttachmentsResource { /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. async.Future insert( - InterconnectAttachment request, + InstantSnapshot request, core.String project, - core.String region, { + core.String zone, { core.String? requestId, - core.bool? validateOnly, core.String? $fields, }) async { final body_ = convert.json.encode(request); final queryParams_ = >{ if (requestId != null) 'requestId': [requestId], - if (validateOnly != null) 'validateOnly': ['${validateOnly}'], if ($fields != null) 'fields': [$fields], }; final url_ = 'projects/' + commons.escapeVariable('$project') + - '/regions/' + - commons.escapeVariable('$region') + - '/interconnectAttachments'; + '/zones/' + + commons.escapeVariable('$zone') + + '/instantSnapshots'; final response_ = await _requester.request( url_, @@ -18452,8 +18798,8 @@ class InterconnectAttachmentsResource { return Operation.fromJson(response_ as core.Map); } - /// Retrieves the list of interconnect attachments contained within the - /// specified region. + /// Retrieves the list of InstantSnapshot resources contained within the + /// specified zone. /// /// Request parameters: /// @@ -18461,7 +18807,7 @@ class InterconnectAttachmentsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region for this request. + /// [zone] - The name of the zone for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// /// [filter] - A filter expression that filters resources listed in the @@ -18518,20 +18864,23 @@ class InterconnectAttachmentsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [InterconnectAttachmentList]. + /// Completes with a [InstantSnapshotList]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future list( + async.Future list( core.String project, - core.String region, { + core.String zone, { core.String? filter, core.int? maxResults, core.String? orderBy, @@ -18551,24 +18900,22 @@ class InterconnectAttachmentsResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/regions/' + - commons.escapeVariable('$region') + - '/interconnectAttachments'; + '/zones/' + + commons.escapeVariable('$zone') + + '/instantSnapshots'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return InterconnectAttachmentList.fromJson( + return InstantSnapshotList.fromJson( response_ as core.Map); } - /// Updates the specified interconnect attachment with the data included in - /// the request. + /// Sets the access control policy on the specified resource. /// - /// This method supports PATCH semantics and uses the JSON merge patch format - /// and processing rules. + /// Replaces any existing policy. /// /// [request] - The metadata request object. /// @@ -18578,10 +18925,68 @@ class InterconnectAttachmentsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region scoping this request. + /// [zone] - The name of the zone for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [interconnectAttachment] - Name of the interconnect attachment to patch. + /// [resource] - Name or id of the resource for this request. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Policy]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future setIamPolicy( + ZoneSetPolicyRequest request, + core.String project, + core.String zone, + core.String resource, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/zones/' + + commons.escapeVariable('$zone') + + '/instantSnapshots/' + + commons.escapeVariable('$resource') + + '/setIamPolicy'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Policy.fromJson(response_ as core.Map); + } + + /// Sets the labels on a instantSnapshot in the given zone. + /// + /// To learn more about labels, read the Labeling Resources documentation. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [zone] - The name of the zone for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// + /// [resource] - Name or id of the resource for this request. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// @@ -18606,11 +19011,11 @@ class InterconnectAttachmentsResource { /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future patch( - InterconnectAttachment request, + async.Future setLabels( + ZoneSetLabelsRequest request, core.String project, - core.String region, - core.String interconnectAttachment, { + core.String zone, + core.String resource, { core.String? requestId, core.String? $fields, }) async { @@ -18622,23 +19027,22 @@ class InterconnectAttachmentsResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/regions/' + - commons.escapeVariable('$region') + - '/interconnectAttachments/' + - commons.escapeVariable('$interconnectAttachment'); + '/zones/' + + commons.escapeVariable('$zone') + + '/instantSnapshots/' + + commons.escapeVariable('$resource') + + '/setLabels'; final response_ = await _requester.request( url_, - 'PATCH', + 'POST', body: body_, queryParams: queryParams_, ); return Operation.fromJson(response_ as core.Map); } - /// Sets the labels on an InterconnectAttachment. - /// - /// To learn more about labels, read the Labeling Resources documentation. + /// Returns permissions that a caller has on the specified resource. /// /// [request] - The metadata request object. /// @@ -18648,55 +19052,42 @@ class InterconnectAttachmentsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - The region for this request. + /// [zone] - The name of the zone for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// /// [resource] - Name or id of the resource for this request. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [requestId] - An optional request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. For example, - /// consider a situation where you make an initial request and the request - /// times out. If you make the request again with the same request ID, the - /// server can check if original operation with the same request ID was - /// received, and if so, will ignore the second request. This prevents clients - /// from accidentally creating duplicate commitments. The request ID must be a - /// valid UUID with the exception that zero UUID is not supported ( - /// 00000000-0000-0000-0000-000000000000). - /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [Operation]. + /// Completes with a [TestPermissionsResponse]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future setLabels( - RegionSetLabelsRequest request, + async.Future testIamPermissions( + TestPermissionsRequest request, core.String project, - core.String region, + core.String zone, core.String resource, { - core.String? requestId, core.String? $fields, }) async { final body_ = convert.json.encode(request); final queryParams_ = >{ - if (requestId != null) 'requestId': [requestId], if ($fields != null) 'fields': [$fields], }; final url_ = 'projects/' + commons.escapeVariable('$project') + - '/regions/' + - commons.escapeVariable('$region') + - '/interconnectAttachments/' + + '/zones/' + + commons.escapeVariable('$zone') + + '/instantSnapshots/' + commons.escapeVariable('$resource') + - '/setLabels'; + '/testIamPermissions'; final response_ = await _requester.request( url_, @@ -18704,228 +19095,21 @@ class InterconnectAttachmentsResource { body: body_, queryParams: queryParams_, ); - return Operation.fromJson(response_ as core.Map); - } -} - -class InterconnectLocationsResource { - final commons.ApiRequester _requester; - - InterconnectLocationsResource(commons.ApiRequester client) - : _requester = client; - - /// Returns the details for the specified interconnect location. - /// - /// Gets a list of available interconnect locations by making a list() - /// request. - /// - /// Request parameters: - /// - /// [project] - Project ID for this request. - /// Value must have pattern - /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. - /// - /// [interconnectLocation] - Name of the interconnect location to return. - /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [InterconnectLocation]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String project, - core.String interconnectLocation, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'projects/' + - commons.escapeVariable('$project') + - '/global/interconnectLocations/' + - commons.escapeVariable('$interconnectLocation'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return InterconnectLocation.fromJson( - response_ as core.Map); - } - - /// Retrieves the list of interconnect locations available to the specified - /// project. - /// - /// Request parameters: - /// - /// [project] - Project ID for this request. - /// Value must have pattern - /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. - /// - /// [filter] - A filter expression that filters resources listed in the - /// response. Most Compute resources support two types of filter expressions: - /// expressions that support regular expressions and expressions that follow - /// API improvement proposal AIP-160. These two types of filter expressions - /// cannot be mixed in one request. If you want to use AIP-160, your - /// expression must specify the field name, an operator, and the value that - /// you want to use for filtering. The value must be a string, a number, or a - /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or - /// `:`. For example, if you are filtering Compute Engine instances, you can - /// exclude instances named `example-instance` by specifying `name != - /// example-instance`. The `:*` comparison can be used to test whether a key - /// has been defined. For example, to find all objects with `owner` label use: - /// ``` labels.owner:* ``` You can also filter nested fields. For example, you - /// could specify `scheduling.automaticRestart = false` to include instances - /// only if they are not scheduled for automatic restarts. You can use - /// filtering on nested fields to filter based on resource labels. To filter - /// on multiple expressions, provide each separate expression within - /// parentheses. For example: ``` (scheduling.automaticRestart = true) - /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an - /// `AND` expression. However, you can include `AND` and `OR` expressions - /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR - /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) - /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` - /// (not equal) operator against a single un-parenthesized expression with or - /// without quotes or against multiple parenthesized expressions. Examples: - /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` - /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) - /// (fieldname2 ne "literal")` The literal value is interpreted as a regular - /// expression using Google RE2 library syntax. The literal value must match - /// the entire field. For example, to filter for instances that do not end - /// with name "instance", you would use `name ne .*instance`. You cannot - /// combine constraints on multiple fields using regular expressions. - /// - /// [maxResults] - The maximum number of results per page that should be - /// returned. If the number of available results is larger than `maxResults`, - /// Compute Engine returns a `nextPageToken` that can be used to get the next - /// page of results in subsequent list requests. Acceptable values are `0` to - /// `500`, inclusive. (Default: `500`) - /// - /// [orderBy] - Sorts list results by a certain order. By default, results are - /// returned in alphanumerical order based on the resource name. You can also - /// sort results in descending order based on the creation timestamp using - /// `orderBy="creationTimestamp desc"`. This sorts results based on the - /// `creationTimestamp` field in reverse chronological order (newest result - /// first). Use this to sort resources like operations so that the newest - /// operation is returned first. Currently, only sorting by `name` or - /// `creationTimestamp desc` is supported. - /// - /// [pageToken] - Specifies a page token to use. Set `pageToken` to the - /// `nextPageToken` returned by a previous list request to get the next page - /// of results. - /// - /// [returnPartialSuccess] - Opt-in for partial success behavior which - /// provides partial results in case of failure. The default value is false. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [InterconnectLocationList]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list( - core.String project, { - core.String? filter, - core.int? maxResults, - core.String? orderBy, - core.String? pageToken, - core.bool? returnPartialSuccess, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (maxResults != null) 'maxResults': ['${maxResults}'], - if (orderBy != null) 'orderBy': [orderBy], - if (pageToken != null) 'pageToken': [pageToken], - if (returnPartialSuccess != null) - 'returnPartialSuccess': ['${returnPartialSuccess}'], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'projects/' + - commons.escapeVariable('$project') + - '/global/interconnectLocations'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return InterconnectLocationList.fromJson( + return TestPermissionsResponse.fromJson( response_ as core.Map); } } -class InterconnectRemoteLocationsResource { +class InterconnectAttachmentsResource { final commons.ApiRequester _requester; - InterconnectRemoteLocationsResource(commons.ApiRequester client) + InterconnectAttachmentsResource(commons.ApiRequester client) : _requester = client; - /// Returns the details for the specified interconnect remote location. - /// - /// Gets a list of available interconnect remote locations by making a list() - /// request. - /// - /// Request parameters: - /// - /// [project] - Project ID for this request. - /// Value must have pattern - /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. - /// - /// [interconnectRemoteLocation] - Name of the interconnect remote location to - /// return. - /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [InterconnectRemoteLocation]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. + /// Retrieves an aggregated list of interconnect attachments. /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String project, - core.String interconnectRemoteLocation, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'projects/' + - commons.escapeVariable('$project') + - '/global/interconnectRemoteLocations/' + - commons.escapeVariable('$interconnectRemoteLocation'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return InterconnectRemoteLocation.fromJson( - response_ as core.Map); - } - - /// Retrieves the list of interconnect remote locations available to the - /// specified project. + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. /// /// Request parameters: /// @@ -18966,6 +19150,14 @@ class InterconnectRemoteLocationsResource { /// with name "instance", you would use `name ne .*instance`. You cannot /// combine constraints on multiple fields using regular expressions. /// + /// [includeAllScopes] - Indicates whether every visible scope for each scope + /// type (zone, region, global) should be included in the response. For new + /// resource types added after this field, the flag has no effect as new + /// resource types will always include every visible scope for each scope type + /// in response. For resource types which predate this field, if this flag is + /// omitted or false, only scopes of the scope types where the resource type + /// is expected to be found will be included. + /// /// [maxResults] - The maximum number of results per page that should be /// returned. If the number of available results is larger than `maxResults`, /// Compute Engine returns a `nextPageToken` that can be used to get the next @@ -18987,56 +19179,62 @@ class InterconnectRemoteLocationsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. + /// + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [InterconnectRemoteLocationList]. + /// Completes with a [InterconnectAttachmentAggregatedList]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future list( + async.Future aggregatedList( core.String project, { core.String? filter, + core.bool? includeAllScopes, core.int? maxResults, core.String? orderBy, core.String? pageToken, core.bool? returnPartialSuccess, + core.String? serviceProjectNumber, core.String? $fields, }) async { final queryParams_ = >{ if (filter != null) 'filter': [filter], + if (includeAllScopes != null) 'includeAllScopes': ['${includeAllScopes}'], if (maxResults != null) 'maxResults': ['${maxResults}'], if (orderBy != null) 'orderBy': [orderBy], if (pageToken != null) 'pageToken': [pageToken], if (returnPartialSuccess != null) 'returnPartialSuccess': ['${returnPartialSuccess}'], + if (serviceProjectNumber != null) + 'serviceProjectNumber': [serviceProjectNumber], if ($fields != null) 'fields': [$fields], }; final url_ = 'projects/' + commons.escapeVariable('$project') + - '/global/interconnectRemoteLocations'; + '/aggregated/interconnectAttachments'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return InterconnectRemoteLocationList.fromJson( + return InterconnectAttachmentAggregatedList.fromJson( response_ as core.Map); } -} - -class InterconnectsResource { - final commons.ApiRequester _requester; - - InterconnectsResource(commons.ApiRequester client) : _requester = client; - /// Deletes the specified Interconnect. + /// Deletes the specified interconnect attachment. /// /// Request parameters: /// @@ -19044,7 +19242,10 @@ class InterconnectsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [interconnect] - Name of the interconnect to delete. + /// [region] - Name of the region for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// + /// [interconnectAttachment] - Name of the interconnect attachment to delete. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// @@ -19071,7 +19272,8 @@ class InterconnectsResource { /// this method will complete with the same error. async.Future delete( core.String project, - core.String interconnect, { + core.String region, + core.String interconnectAttachment, { core.String? requestId, core.String? $fields, }) async { @@ -19082,8 +19284,10 @@ class InterconnectsResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/global/interconnects/' + - commons.escapeVariable('$interconnect'); + '/regions/' + + commons.escapeVariable('$region') + + '/interconnectAttachments/' + + commons.escapeVariable('$interconnectAttachment'); final response_ = await _requester.request( url_, @@ -19093,59 +19297,7 @@ class InterconnectsResource { return Operation.fromJson(response_ as core.Map); } - /// Returns the specified Interconnect. - /// - /// Get a list of available Interconnects by making a list() request. - /// - /// Request parameters: - /// - /// [project] - Project ID for this request. - /// Value must have pattern - /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. - /// - /// [interconnect] - Name of the interconnect to return. - /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Interconnect]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String project, - core.String interconnect, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'projects/' + - commons.escapeVariable('$project') + - '/global/interconnects/' + - commons.escapeVariable('$interconnect'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return Interconnect.fromJson( - response_ as core.Map); - } - - /// Returns the interconnectDiagnostics for the specified Interconnect. - /// - /// In the event of a global outage, do not use this API to make decisions - /// about where to redirect your network traffic. Unlike a VLAN attachment, - /// which is regional, a Cloud Interconnect connection is a global resource. A - /// global outage can prevent this API from functioning properly. + /// Returns the specified interconnect attachment. /// /// Request parameters: /// @@ -19153,69 +19305,27 @@ class InterconnectsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [interconnect] - Name of the interconnect resource to query. - /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [InterconnectsGetDiagnosticsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future getDiagnostics( - core.String project, - core.String interconnect, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'projects/' + - commons.escapeVariable('$project') + - '/global/interconnects/' + - commons.escapeVariable('$interconnect') + - '/getDiagnostics'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return InterconnectsGetDiagnosticsResponse.fromJson( - response_ as core.Map); - } - - /// Returns the interconnectMacsecConfig for the specified Interconnect. - /// - /// Request parameters: - /// - /// [project] - Project ID for this request. - /// Value must have pattern - /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// [region] - Name of the region for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [interconnect] - Name of the interconnect resource to query. + /// [interconnectAttachment] - Name of the interconnect attachment to return. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [InterconnectsGetMacsecConfigResponse]. + /// Completes with a [InterconnectAttachment]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future getMacsecConfig( + async.Future get( core.String project, - core.String interconnect, { + core.String region, + core.String interconnectAttachment, { core.String? $fields, }) async { final queryParams_ = >{ @@ -19224,21 +19334,22 @@ class InterconnectsResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/global/interconnects/' + - commons.escapeVariable('$interconnect') + - '/getMacsecConfig'; + '/regions/' + + commons.escapeVariable('$region') + + '/interconnectAttachments/' + + commons.escapeVariable('$interconnectAttachment'); final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return InterconnectsGetMacsecConfigResponse.fromJson( + return InterconnectAttachment.fromJson( response_ as core.Map); } - /// Creates an Interconnect in the specified project using the data included - /// in the request. + /// Creates an InterconnectAttachment in the specified project using the data + /// included in the request. /// /// [request] - The metadata request object. /// @@ -19248,6 +19359,9 @@ class InterconnectsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// + /// [region] - Name of the region for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// /// [requestId] - An optional request ID to identify requests. Specify a /// unique request ID so that if you must retry your request, the server will /// know to ignore the request if it has already been completed. For example, @@ -19259,6 +19373,8 @@ class InterconnectsResource { /// valid UUID with the exception that zero UUID is not supported ( /// 00000000-0000-0000-0000-000000000000). /// + /// [validateOnly] - If true, the request will not be committed. + /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// @@ -19270,20 +19386,25 @@ class InterconnectsResource { /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. async.Future insert( - Interconnect request, - core.String project, { + InterconnectAttachment request, + core.String project, + core.String region, { core.String? requestId, + core.bool? validateOnly, core.String? $fields, }) async { final body_ = convert.json.encode(request); final queryParams_ = >{ if (requestId != null) 'requestId': [requestId], + if (validateOnly != null) 'validateOnly': ['${validateOnly}'], if ($fields != null) 'fields': [$fields], }; final url_ = 'projects/' + commons.escapeVariable('$project') + - '/global/interconnects'; + '/regions/' + + commons.escapeVariable('$region') + + '/interconnectAttachments'; final response_ = await _requester.request( url_, @@ -19294,7 +19415,8 @@ class InterconnectsResource { return Operation.fromJson(response_ as core.Map); } - /// Retrieves the list of Interconnects available to the specified project. + /// Retrieves the list of interconnect attachments contained within the + /// specified region. /// /// Request parameters: /// @@ -19302,6 +19424,9 @@ class InterconnectsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// + /// [region] - Name of the region for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// /// [filter] - A filter expression that filters resources listed in the /// response. Most Compute resources support two types of filter expressions: /// expressions that support regular expressions and expressions that follow @@ -19356,19 +19481,23 @@ class InterconnectsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [InterconnectList]. + /// Completes with a [InterconnectAttachmentList]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future list( - core.String project, { + async.Future list( + core.String project, + core.String region, { core.String? filter, core.int? maxResults, core.String? orderBy, @@ -19388,18 +19517,21 @@ class InterconnectsResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/global/interconnects'; + '/regions/' + + commons.escapeVariable('$region') + + '/interconnectAttachments'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return InterconnectList.fromJson( + return InterconnectAttachmentList.fromJson( response_ as core.Map); } - /// Updates the specified Interconnect with the data included in the request. + /// Updates the specified interconnect attachment with the data included in + /// the request. /// /// This method supports PATCH semantics and uses the JSON merge patch format /// and processing rules. @@ -19412,7 +19544,10 @@ class InterconnectsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [interconnect] - Name of the interconnect to update. + /// [region] - Name of the region scoping this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// + /// [interconnectAttachment] - Name of the interconnect attachment to patch. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// @@ -19438,9 +19573,10 @@ class InterconnectsResource { /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. async.Future patch( - Interconnect request, + InterconnectAttachment request, core.String project, - core.String interconnect, { + core.String region, + core.String interconnectAttachment, { core.String? requestId, core.String? $fields, }) async { @@ -19452,8 +19588,10 @@ class InterconnectsResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/global/interconnects/' + - commons.escapeVariable('$interconnect'); + '/regions/' + + commons.escapeVariable('$region') + + '/interconnectAttachments/' + + commons.escapeVariable('$interconnectAttachment'); final response_ = await _requester.request( url_, @@ -19464,7 +19602,7 @@ class InterconnectsResource { return Operation.fromJson(response_ as core.Map); } - /// Sets the labels on an Interconnect. + /// Sets the labels on an InterconnectAttachment. /// /// To learn more about labels, read the Labeling Resources documentation. /// @@ -19476,9 +19614,23 @@ class InterconnectsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// + /// [region] - The region for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// /// [resource] - Name or id of the resource for this request. /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9_\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -19491,19 +19643,24 @@ class InterconnectsResource { /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. async.Future setLabels( - GlobalSetLabelsRequest request, + RegionSetLabelsRequest request, core.String project, + core.String region, core.String resource, { + core.String? requestId, core.String? $fields, }) async { final body_ = convert.json.encode(request); final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], if ($fields != null) 'fields': [$fields], }; final url_ = 'projects/' + commons.escapeVariable('$project') + - '/global/interconnects/' + + '/regions/' + + commons.escapeVariable('$region') + + '/interconnectAttachments/' + commons.escapeVariable('$resource') + '/setLabels'; @@ -19517,16 +19674,16 @@ class InterconnectsResource { } } -class LicenseCodesResource { +class InterconnectLocationsResource { final commons.ApiRequester _requester; - LicenseCodesResource(commons.ApiRequester client) : _requester = client; + InterconnectLocationsResource(commons.ApiRequester client) + : _requester = client; - /// Return a specified license code. + /// Returns the details for the specified interconnect location. /// - /// License codes are mirrored across all projects that have permissions to - /// read the License Code. *Caution* This resource is intended for use only by - /// third-party partners who are creating Cloud Marketplace images. + /// Gets a list of available interconnect locations by making a list() + /// request. /// /// Request parameters: /// @@ -19534,23 +19691,23 @@ class LicenseCodesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [licenseCode] - Number corresponding to the License code resource to - /// return. - /// Value must have pattern `\[0-9\]{0,61}?`. + /// [interconnectLocation] - Name of the interconnect location to return. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [LicenseCode]. + /// Completes with a [InterconnectLocation]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future get( + async.Future get( core.String project, - core.String licenseCode, { + core.String interconnectLocation, { core.String? $fields, }) async { final queryParams_ = >{ @@ -19559,24 +19716,138 @@ class LicenseCodesResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/global/licenseCodes/' + - commons.escapeVariable('$licenseCode'); + '/global/interconnectLocations/' + + commons.escapeVariable('$interconnectLocation'); final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return LicenseCode.fromJson( + return InterconnectLocation.fromJson( response_ as core.Map); } - /// Returns permissions that a caller has on the specified resource. + /// Retrieves the list of interconnect locations available to the specified + /// project. /// - /// *Caution* This resource is intended for use only by third-party partners - /// who are creating Cloud Marketplace images. + /// Request parameters: /// - /// [request] - The metadata request object. + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [filter] - A filter expression that filters resources listed in the + /// response. Most Compute resources support two types of filter expressions: + /// expressions that support regular expressions and expressions that follow + /// API improvement proposal AIP-160. These two types of filter expressions + /// cannot be mixed in one request. If you want to use AIP-160, your + /// expression must specify the field name, an operator, and the value that + /// you want to use for filtering. The value must be a string, a number, or a + /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or + /// `:`. For example, if you are filtering Compute Engine instances, you can + /// exclude instances named `example-instance` by specifying `name != + /// example-instance`. The `:*` comparison can be used to test whether a key + /// has been defined. For example, to find all objects with `owner` label use: + /// ``` labels.owner:* ``` You can also filter nested fields. For example, you + /// could specify `scheduling.automaticRestart = false` to include instances + /// only if they are not scheduled for automatic restarts. You can use + /// filtering on nested fields to filter based on resource labels. To filter + /// on multiple expressions, provide each separate expression within + /// parentheses. For example: ``` (scheduling.automaticRestart = true) + /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an + /// `AND` expression. However, you can include `AND` and `OR` expressions + /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR + /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) + /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` + /// (not equal) operator against a single un-parenthesized expression with or + /// without quotes or against multiple parenthesized expressions. Examples: + /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` + /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) + /// (fieldname2 ne "literal")` The literal value is interpreted as a regular + /// expression using Google RE2 library syntax. The literal value must match + /// the entire field. For example, to filter for instances that do not end + /// with name "instance", you would use `name ne .*instance`. You cannot + /// combine constraints on multiple fields using regular expressions. + /// + /// [maxResults] - The maximum number of results per page that should be + /// returned. If the number of available results is larger than `maxResults`, + /// Compute Engine returns a `nextPageToken` that can be used to get the next + /// page of results in subsequent list requests. Acceptable values are `0` to + /// `500`, inclusive. (Default: `500`) + /// + /// [orderBy] - Sorts list results by a certain order. By default, results are + /// returned in alphanumerical order based on the resource name. You can also + /// sort results in descending order based on the creation timestamp using + /// `orderBy="creationTimestamp desc"`. This sorts results based on the + /// `creationTimestamp` field in reverse chronological order (newest result + /// first). Use this to sort resources like operations so that the newest + /// operation is returned first. Currently, only sorting by `name` or + /// `creationTimestamp desc` is supported. + /// + /// [pageToken] - Specifies a page token to use. Set `pageToken` to the + /// `nextPageToken` returned by a previous list request to get the next page + /// of results. + /// + /// [returnPartialSuccess] - Opt-in for partial success behavior which + /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [InterconnectLocationList]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future list( + core.String project, { + core.String? filter, + core.int? maxResults, + core.String? orderBy, + core.String? pageToken, + core.bool? returnPartialSuccess, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (filter != null) 'filter': [filter], + if (maxResults != null) 'maxResults': ['${maxResults}'], + if (orderBy != null) 'orderBy': [orderBy], + if (pageToken != null) 'pageToken': [pageToken], + if (returnPartialSuccess != null) + 'returnPartialSuccess': ['${returnPartialSuccess}'], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/global/interconnectLocations'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return InterconnectLocationList.fromJson( + response_ as core.Map); + } +} + +class InterconnectRemoteLocationsResource { + final commons.ApiRequester _requester; + + InterconnectRemoteLocationsResource(commons.ApiRequester client) + : _requester = client; + + /// Returns the details for the specified interconnect remote location. + /// + /// Gets a list of available interconnect remote locations by making a list() + /// request. /// /// Request parameters: /// @@ -19584,57 +19855,160 @@ class LicenseCodesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [resource] - Name or id of the resource for this request. + /// [interconnectRemoteLocation] - Name of the interconnect remote location to + /// return. /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9_\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [TestPermissionsResponse]. + /// Completes with a [InterconnectRemoteLocation]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future testIamPermissions( - TestPermissionsRequest request, + async.Future get( core.String project, - core.String resource, { + core.String interconnectRemoteLocation, { core.String? $fields, }) async { - final body_ = convert.json.encode(request); final queryParams_ = >{ if ($fields != null) 'fields': [$fields], }; final url_ = 'projects/' + commons.escapeVariable('$project') + - '/global/licenseCodes/' + - commons.escapeVariable('$resource') + - '/testIamPermissions'; + '/global/interconnectRemoteLocations/' + + commons.escapeVariable('$interconnectRemoteLocation'); final response_ = await _requester.request( url_, - 'POST', - body: body_, + 'GET', queryParams: queryParams_, ); - return TestPermissionsResponse.fromJson( + return InterconnectRemoteLocation.fromJson( + response_ as core.Map); + } + + /// Retrieves the list of interconnect remote locations available to the + /// specified project. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [filter] - A filter expression that filters resources listed in the + /// response. Most Compute resources support two types of filter expressions: + /// expressions that support regular expressions and expressions that follow + /// API improvement proposal AIP-160. These two types of filter expressions + /// cannot be mixed in one request. If you want to use AIP-160, your + /// expression must specify the field name, an operator, and the value that + /// you want to use for filtering. The value must be a string, a number, or a + /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or + /// `:`. For example, if you are filtering Compute Engine instances, you can + /// exclude instances named `example-instance` by specifying `name != + /// example-instance`. The `:*` comparison can be used to test whether a key + /// has been defined. For example, to find all objects with `owner` label use: + /// ``` labels.owner:* ``` You can also filter nested fields. For example, you + /// could specify `scheduling.automaticRestart = false` to include instances + /// only if they are not scheduled for automatic restarts. You can use + /// filtering on nested fields to filter based on resource labels. To filter + /// on multiple expressions, provide each separate expression within + /// parentheses. For example: ``` (scheduling.automaticRestart = true) + /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an + /// `AND` expression. However, you can include `AND` and `OR` expressions + /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR + /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) + /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` + /// (not equal) operator against a single un-parenthesized expression with or + /// without quotes or against multiple parenthesized expressions. Examples: + /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` + /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) + /// (fieldname2 ne "literal")` The literal value is interpreted as a regular + /// expression using Google RE2 library syntax. The literal value must match + /// the entire field. For example, to filter for instances that do not end + /// with name "instance", you would use `name ne .*instance`. You cannot + /// combine constraints on multiple fields using regular expressions. + /// + /// [maxResults] - The maximum number of results per page that should be + /// returned. If the number of available results is larger than `maxResults`, + /// Compute Engine returns a `nextPageToken` that can be used to get the next + /// page of results in subsequent list requests. Acceptable values are `0` to + /// `500`, inclusive. (Default: `500`) + /// + /// [orderBy] - Sorts list results by a certain order. By default, results are + /// returned in alphanumerical order based on the resource name. You can also + /// sort results in descending order based on the creation timestamp using + /// `orderBy="creationTimestamp desc"`. This sorts results based on the + /// `creationTimestamp` field in reverse chronological order (newest result + /// first). Use this to sort resources like operations so that the newest + /// operation is returned first. Currently, only sorting by `name` or + /// `creationTimestamp desc` is supported. + /// + /// [pageToken] - Specifies a page token to use. Set `pageToken` to the + /// `nextPageToken` returned by a previous list request to get the next page + /// of results. + /// + /// [returnPartialSuccess] - Opt-in for partial success behavior which + /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [InterconnectRemoteLocationList]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future list( + core.String project, { + core.String? filter, + core.int? maxResults, + core.String? orderBy, + core.String? pageToken, + core.bool? returnPartialSuccess, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (filter != null) 'filter': [filter], + if (maxResults != null) 'maxResults': ['${maxResults}'], + if (orderBy != null) 'orderBy': [orderBy], + if (pageToken != null) 'pageToken': [pageToken], + if (returnPartialSuccess != null) + 'returnPartialSuccess': ['${returnPartialSuccess}'], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/global/interconnectRemoteLocations'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return InterconnectRemoteLocationList.fromJson( response_ as core.Map); } } -class LicensesResource { +class InterconnectsResource { final commons.ApiRequester _requester; - LicensesResource(commons.ApiRequester client) : _requester = client; + InterconnectsResource(commons.ApiRequester client) : _requester = client; - /// Deletes the specified license. - /// - /// *Caution* This resource is intended for use only by third-party partners - /// who are creating Cloud Marketplace images. + /// Deletes the specified Interconnect. /// /// Request parameters: /// @@ -19642,7 +20016,7 @@ class LicensesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [license] - Name of the license resource to delete. + /// [interconnect] - Name of the interconnect to delete. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// @@ -19669,7 +20043,7 @@ class LicensesResource { /// this method will complete with the same error. async.Future delete( core.String project, - core.String license, { + core.String interconnect, { core.String? requestId, core.String? $fields, }) async { @@ -19680,8 +20054,8 @@ class LicensesResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/global/licenses/' + - commons.escapeVariable('$license'); + '/global/interconnects/' + + commons.escapeVariable('$interconnect'); final response_ = await _requester.request( url_, @@ -19691,10 +20065,9 @@ class LicensesResource { return Operation.fromJson(response_ as core.Map); } - /// Returns the specified License resource. + /// Returns the specified Interconnect. /// - /// *Caution* This resource is intended for use only by third-party partners - /// who are creating Cloud Marketplace images. + /// Get a list of available Interconnects by making a list() request. /// /// Request parameters: /// @@ -19702,23 +20075,23 @@ class LicensesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [license] - Name of the License resource to return. + /// [interconnect] - Name of the interconnect to return. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [License]. + /// Completes with a [Interconnect]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future get( + async.Future get( core.String project, - core.String license, { + core.String interconnect, { core.String? $fields, }) async { final queryParams_ = >{ @@ -19727,22 +20100,24 @@ class LicensesResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/global/licenses/' + - commons.escapeVariable('$license'); + '/global/interconnects/' + + commons.escapeVariable('$interconnect'); final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return License.fromJson(response_ as core.Map); + return Interconnect.fromJson( + response_ as core.Map); } - /// Gets the access control policy for a resource. + /// Returns the interconnectDiagnostics for the specified Interconnect. /// - /// May be empty if no such policy or resource exists. *Caution* This resource - /// is intended for use only by third-party partners who are creating Cloud - /// Marketplace images. + /// In the event of a global outage, do not use this API to make decisions + /// about where to redirect your network traffic. Unlike a VLAN attachment, + /// which is regional, a Cloud Interconnect connection is a global resource. A + /// global outage can prevent this API from functioning properly. /// /// Request parameters: /// @@ -19750,52 +20125,92 @@ class LicensesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [resource] - Name or id of the resource for this request. + /// [interconnect] - Name of the interconnect resource to query. /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9_\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. - /// - /// [optionsRequestedPolicyVersion] - Requested IAM Policy version. + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [Policy]. + /// Completes with a [InterconnectsGetDiagnosticsResponse]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future getIamPolicy( + async.Future getDiagnostics( core.String project, - core.String resource, { - core.int? optionsRequestedPolicyVersion, + core.String interconnect, { core.String? $fields, }) async { final queryParams_ = >{ - if (optionsRequestedPolicyVersion != null) - 'optionsRequestedPolicyVersion': ['${optionsRequestedPolicyVersion}'], if ($fields != null) 'fields': [$fields], }; final url_ = 'projects/' + commons.escapeVariable('$project') + - '/global/licenses/' + - commons.escapeVariable('$resource') + - '/getIamPolicy'; + '/global/interconnects/' + + commons.escapeVariable('$interconnect') + + '/getDiagnostics'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return Policy.fromJson(response_ as core.Map); + return InterconnectsGetDiagnosticsResponse.fromJson( + response_ as core.Map); } - /// Create a License resource in the specified project. + /// Returns the interconnectMacsecConfig for the specified Interconnect. /// - /// *Caution* This resource is intended for use only by third-party partners - /// who are creating Cloud Marketplace images. + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [interconnect] - Name of the interconnect resource to query. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [InterconnectsGetMacsecConfigResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future getMacsecConfig( + core.String project, + core.String interconnect, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/global/interconnects/' + + commons.escapeVariable('$interconnect') + + '/getMacsecConfig'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return InterconnectsGetMacsecConfigResponse.fromJson( + response_ as core.Map); + } + + /// Creates an Interconnect in the specified project using the data included + /// in the request. /// /// [request] - The metadata request object. /// @@ -19827,7 +20242,7 @@ class LicensesResource { /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. async.Future insert( - License request, + Interconnect request, core.String project, { core.String? requestId, core.String? $fields, @@ -19838,8 +20253,9 @@ class LicensesResource { if ($fields != null) 'fields': [$fields], }; - final url_ = - 'projects/' + commons.escapeVariable('$project') + '/global/licenses'; + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/global/interconnects'; final response_ = await _requester.request( url_, @@ -19850,14 +20266,7 @@ class LicensesResource { return Operation.fromJson(response_ as core.Map); } - /// Retrieves the list of licenses available in the specified project. - /// - /// This method does not get any licenses that belong to other projects, - /// including licenses attached to publicly-available images, like Debian 9. - /// If you want to get a list of publicly-available licenses, use this method - /// to make a request to the respective image project, such as debian-cloud or - /// windows-cloud. *Caution* This resource is intended for use only by - /// third-party partners who are creating Cloud Marketplace images. + /// Retrieves the list of Interconnects available to the specified project. /// /// Request parameters: /// @@ -19919,18 +20328,21 @@ class LicensesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [LicensesListResponse]. + /// Completes with a [InterconnectList]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future list( + async.Future list( core.String project, { core.String? filter, core.int? maxResults, @@ -19949,22 +20361,23 @@ class LicensesResource { if ($fields != null) 'fields': [$fields], }; - final url_ = - 'projects/' + commons.escapeVariable('$project') + '/global/licenses'; + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/global/interconnects'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return LicensesListResponse.fromJson( + return InterconnectList.fromJson( response_ as core.Map); } - /// Sets the access control policy on the specified resource. + /// Updates the specified Interconnect with the data included in the request. /// - /// Replaces any existing policy. *Caution* This resource is intended for use - /// only by third-party partners who are creating Cloud Marketplace images. + /// This method supports PATCH semantics and uses the JSON merge patch format + /// and processing rules. /// /// [request] - The metadata request object. /// @@ -19974,50 +20387,61 @@ class LicensesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [resource] - Name or id of the resource for this request. + /// [interconnect] - Name of the interconnect to update. /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9_\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [Policy]. + /// Completes with a [Operation]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future setIamPolicy( - GlobalSetPolicyRequest request, + async.Future patch( + Interconnect request, core.String project, - core.String resource, { + core.String interconnect, { + core.String? requestId, core.String? $fields, }) async { final body_ = convert.json.encode(request); final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], if ($fields != null) 'fields': [$fields], }; final url_ = 'projects/' + commons.escapeVariable('$project') + - '/global/licenses/' + - commons.escapeVariable('$resource') + - '/setIamPolicy'; + '/global/interconnects/' + + commons.escapeVariable('$interconnect'); final response_ = await _requester.request( url_, - 'POST', + 'PATCH', body: body_, queryParams: queryParams_, ); - return Policy.fromJson(response_ as core.Map); + return Operation.fromJson(response_ as core.Map); } - /// Returns permissions that a caller has on the specified resource. + /// Sets the labels on an Interconnect. /// - /// *Caution* This resource is intended for use only by third-party partners - /// who are creating Cloud Marketplace images. + /// To learn more about labels, read the Labeling Resources documentation. /// /// [request] - The metadata request object. /// @@ -20034,15 +20458,15 @@ class LicensesResource { /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [TestPermissionsResponse]. + /// Completes with a [Operation]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future testIamPermissions( - TestPermissionsRequest request, + async.Future setLabels( + GlobalSetLabelsRequest request, core.String project, core.String resource, { core.String? $fields, @@ -20054,9 +20478,9 @@ class LicensesResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/global/licenses/' + + '/global/interconnects/' + commons.escapeVariable('$resource') + - '/testIamPermissions'; + '/setLabels'; final response_ = await _requester.request( url_, @@ -20064,19 +20488,20 @@ class LicensesResource { body: body_, queryParams: queryParams_, ); - return TestPermissionsResponse.fromJson( - response_ as core.Map); + return Operation.fromJson(response_ as core.Map); } } -class MachineImagesResource { +class LicenseCodesResource { final commons.ApiRequester _requester; - MachineImagesResource(commons.ApiRequester client) : _requester = client; + LicenseCodesResource(commons.ApiRequester client) : _requester = client; - /// Deletes the specified machine image. + /// Return a specified license code. /// - /// Deleting a machine image is permanent and cannot be undone. + /// License codes are mirrored across all projects that have permissions to + /// read the License Code. *Caution* This resource is intended for use only by + /// third-party partners who are creating Cloud Marketplace images. /// /// Request parameters: /// @@ -20084,18 +20509,126 @@ class MachineImagesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [machineImage] - The name of the machine image to delete. - /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// [licenseCode] - Number corresponding to the License code resource to + /// return. + /// Value must have pattern `\[0-9\]{0,61}?`. /// - /// [requestId] - An optional request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. For example, - /// consider a situation where you make an initial request and the request - /// times out. If you make the request again with the same request ID, the - /// server can check if original operation with the same request ID was - /// received, and if so, will ignore the second request. This prevents clients - /// from accidentally creating duplicate commitments. The request ID must be a + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [LicenseCode]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String project, + core.String licenseCode, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/global/licenseCodes/' + + commons.escapeVariable('$licenseCode'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return LicenseCode.fromJson( + response_ as core.Map); + } + + /// Returns permissions that a caller has on the specified resource. + /// + /// *Caution* This resource is intended for use only by third-party partners + /// who are creating Cloud Marketplace images. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [resource] - Name or id of the resource for this request. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9_\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [TestPermissionsResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future testIamPermissions( + TestPermissionsRequest request, + core.String project, + core.String resource, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/global/licenseCodes/' + + commons.escapeVariable('$resource') + + '/testIamPermissions'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return TestPermissionsResponse.fromJson( + response_ as core.Map); + } +} + +class LicensesResource { + final commons.ApiRequester _requester; + + LicensesResource(commons.ApiRequester client) : _requester = client; + + /// Deletes the specified license. + /// + /// *Caution* This resource is intended for use only by third-party partners + /// who are creating Cloud Marketplace images. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [license] - Name of the license resource to delete. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a /// valid UUID with the exception that zero UUID is not supported ( /// 00000000-0000-0000-0000-000000000000). /// @@ -20111,7 +20644,7 @@ class MachineImagesResource { /// this method will complete with the same error. async.Future delete( core.String project, - core.String machineImage, { + core.String license, { core.String? requestId, core.String? $fields, }) async { @@ -20122,8 +20655,8 @@ class MachineImagesResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/global/machineImages/' + - commons.escapeVariable('$machineImage'); + '/global/licenses/' + + commons.escapeVariable('$license'); final response_ = await _requester.request( url_, @@ -20133,7 +20666,10 @@ class MachineImagesResource { return Operation.fromJson(response_ as core.Map); } - /// Returns the specified machine image. + /// Returns the specified License resource. + /// + /// *Caution* This resource is intended for use only by third-party partners + /// who are creating Cloud Marketplace images. /// /// Request parameters: /// @@ -20141,23 +20677,23 @@ class MachineImagesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [machineImage] - The name of the machine image. + /// [license] - Name of the License resource to return. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [MachineImage]. + /// Completes with a [License]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future get( + async.Future get( core.String project, - core.String machineImage, { + core.String license, { core.String? $fields, }) async { final queryParams_ = >{ @@ -20166,21 +20702,22 @@ class MachineImagesResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/global/machineImages/' + - commons.escapeVariable('$machineImage'); + '/global/licenses/' + + commons.escapeVariable('$license'); final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return MachineImage.fromJson( - response_ as core.Map); + return License.fromJson(response_ as core.Map); } /// Gets the access control policy for a resource. /// - /// May be empty if no such policy or resource exists. + /// May be empty if no such policy or resource exists. *Caution* This resource + /// is intended for use only by third-party partners who are creating Cloud + /// Marketplace images. /// /// Request parameters: /// @@ -20218,7 +20755,7 @@ class MachineImagesResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/global/machineImages/' + + '/global/licenses/' + commons.escapeVariable('$resource') + '/getIamPolicy'; @@ -20230,12 +20767,10 @@ class MachineImagesResource { return Policy.fromJson(response_ as core.Map); } - /// Creates a machine image in the specified project using the data that is - /// included in the request. + /// Create a License resource in the specified project. /// - /// If you are creating a new machine image to update an existing instance, - /// your new machine image should use the same network or, if applicable, the - /// same subnetwork as the original instance. + /// *Caution* This resource is intended for use only by third-party partners + /// who are creating Cloud Marketplace images. /// /// [request] - The metadata request object. /// @@ -20256,9 +20791,6 @@ class MachineImagesResource { /// valid UUID with the exception that zero UUID is not supported ( /// 00000000-0000-0000-0000-000000000000). /// - /// [sourceInstance] - Required. Source instance that is used to create the - /// machine image from. - /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// @@ -20270,22 +20802,19 @@ class MachineImagesResource { /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. async.Future insert( - MachineImage request, + License request, core.String project, { core.String? requestId, - core.String? sourceInstance, core.String? $fields, }) async { final body_ = convert.json.encode(request); final queryParams_ = >{ if (requestId != null) 'requestId': [requestId], - if (sourceInstance != null) 'sourceInstance': [sourceInstance], if ($fields != null) 'fields': [$fields], }; - final url_ = 'projects/' + - commons.escapeVariable('$project') + - '/global/machineImages'; + final url_ = + 'projects/' + commons.escapeVariable('$project') + '/global/licenses'; final response_ = await _requester.request( url_, @@ -20296,8 +20825,14 @@ class MachineImagesResource { return Operation.fromJson(response_ as core.Map); } - /// Retrieves a list of machine images that are contained within the specified - /// project. + /// Retrieves the list of licenses available in the specified project. + /// + /// This method does not get any licenses that belong to other projects, + /// including licenses attached to publicly-available images, like Debian 9. + /// If you want to get a list of publicly-available licenses, use this method + /// to make a request to the respective image project, such as debian-cloud or + /// windows-cloud. *Caution* This resource is intended for use only by + /// third-party partners who are creating Cloud Marketplace images. /// /// Request parameters: /// @@ -20359,18 +20894,21 @@ class MachineImagesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [MachineImageList]. + /// Completes with a [LicensesListResponse]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future list( + async.Future list( core.String project, { core.String? filter, core.int? maxResults, @@ -20389,22 +20927,22 @@ class MachineImagesResource { if ($fields != null) 'fields': [$fields], }; - final url_ = 'projects/' + - commons.escapeVariable('$project') + - '/global/machineImages'; + final url_ = + 'projects/' + commons.escapeVariable('$project') + '/global/licenses'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return MachineImageList.fromJson( + return LicensesListResponse.fromJson( response_ as core.Map); } /// Sets the access control policy on the specified resource. /// - /// Replaces any existing policy. + /// Replaces any existing policy. *Caution* This resource is intended for use + /// only by third-party partners who are creating Cloud Marketplace images. /// /// [request] - The metadata request object. /// @@ -20441,7 +20979,7 @@ class MachineImagesResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/global/machineImages/' + + '/global/licenses/' + commons.escapeVariable('$resource') + '/setIamPolicy'; @@ -20456,6 +20994,9 @@ class MachineImagesResource { /// Returns permissions that a caller has on the specified resource. /// + /// *Caution* This resource is intended for use only by third-party partners + /// who are creating Cloud Marketplace images. + /// /// [request] - The metadata request object. /// /// Request parameters: @@ -20491,7 +21032,7 @@ class MachineImagesResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/global/machineImages/' + + '/global/licenses/' + commons.escapeVariable('$resource') + '/testIamPermissions'; @@ -20506,12 +21047,14 @@ class MachineImagesResource { } } -class MachineTypesResource { +class MachineImagesResource { final commons.ApiRequester _requester; - MachineTypesResource(commons.ApiRequester client) : _requester = client; + MachineImagesResource(commons.ApiRequester client) : _requester = client; - /// Retrieves an aggregated list of machine types. + /// Deletes the specified machine image. + /// + /// Deleting a machine image is permanent and cannot be undone. /// /// Request parameters: /// @@ -20519,119 +21062,103 @@ class MachineTypesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [filter] - A filter expression that filters resources listed in the - /// response. Most Compute resources support two types of filter expressions: - /// expressions that support regular expressions and expressions that follow - /// API improvement proposal AIP-160. These two types of filter expressions - /// cannot be mixed in one request. If you want to use AIP-160, your - /// expression must specify the field name, an operator, and the value that - /// you want to use for filtering. The value must be a string, a number, or a - /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or - /// `:`. For example, if you are filtering Compute Engine instances, you can - /// exclude instances named `example-instance` by specifying `name != - /// example-instance`. The `:*` comparison can be used to test whether a key - /// has been defined. For example, to find all objects with `owner` label use: - /// ``` labels.owner:* ``` You can also filter nested fields. For example, you - /// could specify `scheduling.automaticRestart = false` to include instances - /// only if they are not scheduled for automatic restarts. You can use - /// filtering on nested fields to filter based on resource labels. To filter - /// on multiple expressions, provide each separate expression within - /// parentheses. For example: ``` (scheduling.automaticRestart = true) - /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an - /// `AND` expression. However, you can include `AND` and `OR` expressions - /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR - /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) - /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` - /// (not equal) operator against a single un-parenthesized expression with or - /// without quotes or against multiple parenthesized expressions. Examples: - /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` - /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) - /// (fieldname2 ne "literal")` The literal value is interpreted as a regular - /// expression using Google RE2 library syntax. The literal value must match - /// the entire field. For example, to filter for instances that do not end - /// with name "instance", you would use `name ne .*instance`. You cannot - /// combine constraints on multiple fields using regular expressions. + /// [machineImage] - The name of the machine image to delete. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [includeAllScopes] - Indicates whether every visible scope for each scope - /// type (zone, region, global) should be included in the response. For new - /// resource types added after this field, the flag has no effect as new - /// resource types will always include every visible scope for each scope type - /// in response. For resource types which predate this field, if this flag is - /// omitted or false, only scopes of the scope types where the resource type - /// is expected to be found will be included. + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). /// - /// [maxResults] - The maximum number of results per page that should be - /// returned. If the number of available results is larger than `maxResults`, - /// Compute Engine returns a `nextPageToken` that can be used to get the next - /// page of results in subsequent list requests. Acceptable values are `0` to - /// `500`, inclusive. (Default: `500`) + /// [$fields] - Selector specifying which fields to include in a partial + /// response. /// - /// [orderBy] - Sorts list results by a certain order. By default, results are - /// returned in alphanumerical order based on the resource name. You can also - /// sort results in descending order based on the creation timestamp using - /// `orderBy="creationTimestamp desc"`. This sorts results based on the - /// `creationTimestamp` field in reverse chronological order (newest result - /// first). Use this to sort resources like operations so that the newest - /// operation is returned first. Currently, only sorting by `name` or - /// `creationTimestamp desc` is supported. + /// Completes with a [Operation]. /// - /// [pageToken] - Specifies a page token to use. Set `pageToken` to the - /// `nextPageToken` returned by a previous list request to get the next page - /// of results. + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. /// - /// [returnPartialSuccess] - Opt-in for partial success behavior which - /// provides partial results in case of failure. The default value is false. + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future delete( + core.String project, + core.String machineImage, { + core.String? requestId, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/global/machineImages/' + + commons.escapeVariable('$machineImage'); + + final response_ = await _requester.request( + url_, + 'DELETE', + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + + /// Returns the specified machine image. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [serviceProjectNumber] - null + /// [machineImage] - The name of the machine image. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [MachineTypeAggregatedList]. + /// Completes with a [MachineImage]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future aggregatedList( - core.String project, { - core.String? filter, - core.bool? includeAllScopes, - core.int? maxResults, - core.String? orderBy, - core.String? pageToken, - core.bool? returnPartialSuccess, - core.String? serviceProjectNumber, + async.Future get( + core.String project, + core.String machineImage, { core.String? $fields, }) async { final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (includeAllScopes != null) 'includeAllScopes': ['${includeAllScopes}'], - if (maxResults != null) 'maxResults': ['${maxResults}'], - if (orderBy != null) 'orderBy': [orderBy], - if (pageToken != null) 'pageToken': [pageToken], - if (returnPartialSuccess != null) - 'returnPartialSuccess': ['${returnPartialSuccess}'], - if (serviceProjectNumber != null) - 'serviceProjectNumber': [serviceProjectNumber], if ($fields != null) 'fields': [$fields], }; final url_ = 'projects/' + commons.escapeVariable('$project') + - '/aggregated/machineTypes'; + '/global/machineImages/' + + commons.escapeVariable('$machineImage'); final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return MachineTypeAggregatedList.fromJson( + return MachineImage.fromJson( response_ as core.Map); } - /// Returns the specified machine type. + /// Gets the access control policy for a resource. + /// + /// May be empty if no such policy or resource exists. /// /// Request parameters: /// @@ -20639,50 +21166,56 @@ class MachineTypesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [zone] - The name of the zone for this request. - /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. - /// - /// [machineType] - Name of the machine type to return. + /// [resource] - Name or id of the resource for this request. /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// `\[a-z\](?:\[-a-z0-9_\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// + /// [optionsRequestedPolicyVersion] - Requested IAM Policy version. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [MachineType]. + /// Completes with a [Policy]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future get( + async.Future getIamPolicy( core.String project, - core.String zone, - core.String machineType, { + core.String resource, { + core.int? optionsRequestedPolicyVersion, core.String? $fields, }) async { final queryParams_ = >{ + if (optionsRequestedPolicyVersion != null) + 'optionsRequestedPolicyVersion': ['${optionsRequestedPolicyVersion}'], if ($fields != null) 'fields': [$fields], }; final url_ = 'projects/' + commons.escapeVariable('$project') + - '/zones/' + - commons.escapeVariable('$zone') + - '/machineTypes/' + - commons.escapeVariable('$machineType'); + '/global/machineImages/' + + commons.escapeVariable('$resource') + + '/getIamPolicy'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return MachineType.fromJson( - response_ as core.Map); + return Policy.fromJson(response_ as core.Map); } - /// Retrieves a list of machine types available to the specified project. + /// Creates a machine image in the specified project using the data that is + /// included in the request. + /// + /// If you are creating a new machine image to update an existing instance, + /// your new machine image should use the same network or, if applicable, the + /// same subnetwork as the original instance. + /// + /// [request] - The metadata request object. /// /// Request parameters: /// @@ -20690,8 +21223,65 @@ class MachineTypesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [zone] - The name of the zone for this request. - /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). + /// + /// [sourceInstance] - Required. Source instance that is used to create the + /// machine image from. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future insert( + MachineImage request, + core.String project, { + core.String? requestId, + core.String? sourceInstance, + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], + if (sourceInstance != null) 'sourceInstance': [sourceInstance], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/global/machineImages'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + + /// Retrieves a list of machine images that are contained within the specified + /// project. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// /// [filter] - A filter expression that filters resources listed in the /// response. Most Compute resources support two types of filter expressions: @@ -20747,20 +21337,22 @@ class MachineTypesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [MachineTypeList]. + /// Completes with a [MachineImageList]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future list( - core.String project, - core.String zone, { + async.Future list( + core.String project, { core.String? filter, core.int? maxResults, core.String? orderBy, @@ -20780,27 +21372,22 @@ class MachineTypesResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/zones/' + - commons.escapeVariable('$zone') + - '/machineTypes'; + '/global/machineImages'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return MachineTypeList.fromJson( + return MachineImageList.fromJson( response_ as core.Map); } -} - -class NetworkAttachmentsResource { - final commons.ApiRequester _requester; - - NetworkAttachmentsResource(commons.ApiRequester client) : _requester = client; - /// Retrieves the list of all NetworkAttachment resources, regional and - /// global, available to the specified project. + /// Sets the access control policy on the specified resource. + /// + /// Replaces any existing policy. + /// + /// [request] - The metadata request object. /// /// Request parameters: /// @@ -20808,41 +21395,149 @@ class NetworkAttachmentsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [filter] - A filter expression that filters resources listed in the - /// response. Most Compute resources support two types of filter expressions: - /// expressions that support regular expressions and expressions that follow - /// API improvement proposal AIP-160. These two types of filter expressions - /// cannot be mixed in one request. If you want to use AIP-160, your - /// expression must specify the field name, an operator, and the value that - /// you want to use for filtering. The value must be a string, a number, or a - /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or - /// `:`. For example, if you are filtering Compute Engine instances, you can - /// exclude instances named `example-instance` by specifying `name != - /// example-instance`. The `:*` comparison can be used to test whether a key - /// has been defined. For example, to find all objects with `owner` label use: - /// ``` labels.owner:* ``` You can also filter nested fields. For example, you - /// could specify `scheduling.automaticRestart = false` to include instances - /// only if they are not scheduled for automatic restarts. You can use - /// filtering on nested fields to filter based on resource labels. To filter - /// on multiple expressions, provide each separate expression within - /// parentheses. For example: ``` (scheduling.automaticRestart = true) - /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an - /// `AND` expression. However, you can include `AND` and `OR` expressions - /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR - /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) - /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` - /// (not equal) operator against a single un-parenthesized expression with or - /// without quotes or against multiple parenthesized expressions. Examples: - /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` - /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) - /// (fieldname2 ne "literal")` The literal value is interpreted as a regular - /// expression using Google RE2 library syntax. The literal value must match - /// the entire field. For example, to filter for instances that do not end - /// with name "instance", you would use `name ne .*instance`. You cannot - /// combine constraints on multiple fields using regular expressions. + /// [resource] - Name or id of the resource for this request. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9_\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [includeAllScopes] - Indicates whether every visible scope for each scope - /// type (zone, region, global) should be included in the response. For new + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Policy]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future setIamPolicy( + GlobalSetPolicyRequest request, + core.String project, + core.String resource, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/global/machineImages/' + + commons.escapeVariable('$resource') + + '/setIamPolicy'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Policy.fromJson(response_ as core.Map); + } + + /// Returns permissions that a caller has on the specified resource. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [resource] - Name or id of the resource for this request. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9_\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [TestPermissionsResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future testIamPermissions( + TestPermissionsRequest request, + core.String project, + core.String resource, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/global/machineImages/' + + commons.escapeVariable('$resource') + + '/testIamPermissions'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return TestPermissionsResponse.fromJson( + response_ as core.Map); + } +} + +class MachineTypesResource { + final commons.ApiRequester _requester; + + MachineTypesResource(commons.ApiRequester client) : _requester = client; + + /// Retrieves an aggregated list of machine types. + /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [filter] - A filter expression that filters resources listed in the + /// response. Most Compute resources support two types of filter expressions: + /// expressions that support regular expressions and expressions that follow + /// API improvement proposal AIP-160. These two types of filter expressions + /// cannot be mixed in one request. If you want to use AIP-160, your + /// expression must specify the field name, an operator, and the value that + /// you want to use for filtering. The value must be a string, a number, or a + /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or + /// `:`. For example, if you are filtering Compute Engine instances, you can + /// exclude instances named `example-instance` by specifying `name != + /// example-instance`. The `:*` comparison can be used to test whether a key + /// has been defined. For example, to find all objects with `owner` label use: + /// ``` labels.owner:* ``` You can also filter nested fields. For example, you + /// could specify `scheduling.automaticRestart = false` to include instances + /// only if they are not scheduled for automatic restarts. You can use + /// filtering on nested fields to filter based on resource labels. To filter + /// on multiple expressions, provide each separate expression within + /// parentheses. For example: ``` (scheduling.automaticRestart = true) + /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an + /// `AND` expression. However, you can include `AND` and `OR` expressions + /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR + /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) + /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` + /// (not equal) operator against a single un-parenthesized expression with or + /// without quotes or against multiple parenthesized expressions. Examples: + /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` + /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) + /// (fieldname2 ne "literal")` The literal value is interpreted as a regular + /// expression using Google RE2 library syntax. The literal value must match + /// the entire field. For example, to filter for instances that do not end + /// with name "instance", you would use `name ne .*instance`. You cannot + /// combine constraints on multiple fields using regular expressions. + /// + /// [includeAllScopes] - Indicates whether every visible scope for each scope + /// type (zone, region, global) should be included in the response. For new /// resource types added after this field, the flag has no effect as new /// resource types will always include every visible scope for each scope type /// in response. For resource types which predate this field, if this flag is @@ -20870,8 +21565,313 @@ class NetworkAttachmentsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [MachineTypeAggregatedList]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future aggregatedList( + core.String project, { + core.String? filter, + core.bool? includeAllScopes, + core.int? maxResults, + core.String? orderBy, + core.String? pageToken, + core.bool? returnPartialSuccess, + core.String? serviceProjectNumber, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (filter != null) 'filter': [filter], + if (includeAllScopes != null) 'includeAllScopes': ['${includeAllScopes}'], + if (maxResults != null) 'maxResults': ['${maxResults}'], + if (orderBy != null) 'orderBy': [orderBy], + if (pageToken != null) 'pageToken': [pageToken], + if (returnPartialSuccess != null) + 'returnPartialSuccess': ['${returnPartialSuccess}'], + if (serviceProjectNumber != null) + 'serviceProjectNumber': [serviceProjectNumber], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/aggregated/machineTypes'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return MachineTypeAggregatedList.fromJson( + response_ as core.Map); + } + + /// Returns the specified machine type. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [zone] - The name of the zone for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// + /// [machineType] - Name of the machine type to return. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [MachineType]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String project, + core.String zone, + core.String machineType, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/zones/' + + commons.escapeVariable('$zone') + + '/machineTypes/' + + commons.escapeVariable('$machineType'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return MachineType.fromJson( + response_ as core.Map); + } + + /// Retrieves a list of machine types available to the specified project. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [zone] - The name of the zone for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// + /// [filter] - A filter expression that filters resources listed in the + /// response. Most Compute resources support two types of filter expressions: + /// expressions that support regular expressions and expressions that follow + /// API improvement proposal AIP-160. These two types of filter expressions + /// cannot be mixed in one request. If you want to use AIP-160, your + /// expression must specify the field name, an operator, and the value that + /// you want to use for filtering. The value must be a string, a number, or a + /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or + /// `:`. For example, if you are filtering Compute Engine instances, you can + /// exclude instances named `example-instance` by specifying `name != + /// example-instance`. The `:*` comparison can be used to test whether a key + /// has been defined. For example, to find all objects with `owner` label use: + /// ``` labels.owner:* ``` You can also filter nested fields. For example, you + /// could specify `scheduling.automaticRestart = false` to include instances + /// only if they are not scheduled for automatic restarts. You can use + /// filtering on nested fields to filter based on resource labels. To filter + /// on multiple expressions, provide each separate expression within + /// parentheses. For example: ``` (scheduling.automaticRestart = true) + /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an + /// `AND` expression. However, you can include `AND` and `OR` expressions + /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR + /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) + /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` + /// (not equal) operator against a single un-parenthesized expression with or + /// without quotes or against multiple parenthesized expressions. Examples: + /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` + /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) + /// (fieldname2 ne "literal")` The literal value is interpreted as a regular + /// expression using Google RE2 library syntax. The literal value must match + /// the entire field. For example, to filter for instances that do not end + /// with name "instance", you would use `name ne .*instance`. You cannot + /// combine constraints on multiple fields using regular expressions. + /// + /// [maxResults] - The maximum number of results per page that should be + /// returned. If the number of available results is larger than `maxResults`, + /// Compute Engine returns a `nextPageToken` that can be used to get the next + /// page of results in subsequent list requests. Acceptable values are `0` to + /// `500`, inclusive. (Default: `500`) + /// + /// [orderBy] - Sorts list results by a certain order. By default, results are + /// returned in alphanumerical order based on the resource name. You can also + /// sort results in descending order based on the creation timestamp using + /// `orderBy="creationTimestamp desc"`. This sorts results based on the + /// `creationTimestamp` field in reverse chronological order (newest result + /// first). Use this to sort resources like operations so that the newest + /// operation is returned first. Currently, only sorting by `name` or + /// `creationTimestamp desc` is supported. + /// + /// [pageToken] - Specifies a page token to use. Set `pageToken` to the + /// `nextPageToken` returned by a previous list request to get the next page + /// of results. + /// + /// [returnPartialSuccess] - Opt-in for partial success behavior which + /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [MachineTypeList]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future list( + core.String project, + core.String zone, { + core.String? filter, + core.int? maxResults, + core.String? orderBy, + core.String? pageToken, + core.bool? returnPartialSuccess, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (filter != null) 'filter': [filter], + if (maxResults != null) 'maxResults': ['${maxResults}'], + if (orderBy != null) 'orderBy': [orderBy], + if (pageToken != null) 'pageToken': [pageToken], + if (returnPartialSuccess != null) + 'returnPartialSuccess': ['${returnPartialSuccess}'], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/zones/' + + commons.escapeVariable('$zone') + + '/machineTypes'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return MachineTypeList.fromJson( + response_ as core.Map); + } +} + +class NetworkAttachmentsResource { + final commons.ApiRequester _requester; + + NetworkAttachmentsResource(commons.ApiRequester client) : _requester = client; + + /// Retrieves the list of all NetworkAttachment resources, regional and + /// global, available to the specified project. + /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [filter] - A filter expression that filters resources listed in the + /// response. Most Compute resources support two types of filter expressions: + /// expressions that support regular expressions and expressions that follow + /// API improvement proposal AIP-160. These two types of filter expressions + /// cannot be mixed in one request. If you want to use AIP-160, your + /// expression must specify the field name, an operator, and the value that + /// you want to use for filtering. The value must be a string, a number, or a + /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or + /// `:`. For example, if you are filtering Compute Engine instances, you can + /// exclude instances named `example-instance` by specifying `name != + /// example-instance`. The `:*` comparison can be used to test whether a key + /// has been defined. For example, to find all objects with `owner` label use: + /// ``` labels.owner:* ``` You can also filter nested fields. For example, you + /// could specify `scheduling.automaticRestart = false` to include instances + /// only if they are not scheduled for automatic restarts. You can use + /// filtering on nested fields to filter based on resource labels. To filter + /// on multiple expressions, provide each separate expression within + /// parentheses. For example: ``` (scheduling.automaticRestart = true) + /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an + /// `AND` expression. However, you can include `AND` and `OR` expressions + /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR + /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) + /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` + /// (not equal) operator against a single un-parenthesized expression with or + /// without quotes or against multiple parenthesized expressions. Examples: + /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` + /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) + /// (fieldname2 ne "literal")` The literal value is interpreted as a regular + /// expression using Google RE2 library syntax. The literal value must match + /// the entire field. For example, to filter for instances that do not end + /// with name "instance", you would use `name ne .*instance`. You cannot + /// combine constraints on multiple fields using regular expressions. + /// + /// [includeAllScopes] - Indicates whether every visible scope for each scope + /// type (zone, region, global) should be included in the response. For new + /// resource types added after this field, the flag has no effect as new + /// resource types will always include every visible scope for each scope type + /// in response. For resource types which predate this field, if this flag is + /// omitted or false, only scopes of the scope types where the resource type + /// is expected to be found will be included. + /// + /// [maxResults] - The maximum number of results per page that should be + /// returned. If the number of available results is larger than `maxResults`, + /// Compute Engine returns a `nextPageToken` that can be used to get the next + /// page of results in subsequent list requests. Acceptable values are `0` to + /// `500`, inclusive. (Default: `500`) + /// + /// [orderBy] - Sorts list results by a certain order. By default, results are + /// returned in alphanumerical order based on the resource name. You can also + /// sort results in descending order based on the creation timestamp using + /// `orderBy="creationTimestamp desc"`. This sorts results based on the + /// `creationTimestamp` field in reverse chronological order (newest result + /// first). Use this to sort resources like operations so that the newest + /// operation is returned first. Currently, only sorting by `name` or + /// `creationTimestamp desc` is supported. + /// + /// [pageToken] - Specifies a page token to use. Set `pageToken` to the + /// `nextPageToken` returned by a previous list request to get the next page + /// of results. + /// + /// [returnPartialSuccess] - Opt-in for partial success behavior which + /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. + /// + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -21222,6 +22222,9 @@ class NetworkAttachmentsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -21466,6 +22469,9 @@ class NetworkEdgeSecurityServicesResource { /// Retrieves the list of all NetworkEdgeSecurityService resources available /// to the specified project. /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. + /// /// Request parameters: /// /// [project] - Name of the project scoping this request. @@ -21534,8 +22540,13 @@ class NetworkEdgeSecurityServicesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -21853,6 +22864,9 @@ class NetworkEndpointGroupsResource { /// Retrieves the list of network endpoint groups and sorts them by zone. /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. + /// /// Request parameters: /// /// [project] - Project ID for this request. @@ -21921,8 +22935,13 @@ class NetworkEndpointGroupsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -22354,6 +23373,9 @@ class NetworkEndpointGroupsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -22471,6 +23493,9 @@ class NetworkEndpointGroupsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -23171,6 +24196,9 @@ class NetworkFirewallPoliciesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -23903,6 +24931,9 @@ class NetworksResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -24021,6 +25052,9 @@ class NetworksResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -24403,7 +25437,9 @@ class NodeGroupsResource { /// Retrieves an aggregated list of node groups. /// - /// Note: use nodeGroups.listNodes for more details about each group. + /// Note: use nodeGroups.listNodes for more details about each group. To + /// prevent failure, Google recommends that you set the `returnPartialSuccess` + /// parameter to `true`. /// /// Request parameters: /// @@ -24473,8 +25509,13 @@ class NodeGroupsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -24900,6 +25941,9 @@ class NodeGroupsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -25015,6 +26059,9 @@ class NodeGroupsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -25394,6 +26441,9 @@ class NodeTemplatesResource { /// Retrieves an aggregated list of node templates. /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. + /// /// Request parameters: /// /// [project] - Project ID for this request. @@ -25462,8 +26512,13 @@ class NodeTemplatesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -25812,6 +26867,9 @@ class NodeTemplatesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -25981,292 +27039,8 @@ class NodeTypesResource { /// Retrieves an aggregated list of node types. /// - /// Request parameters: - /// - /// [project] - Project ID for this request. - /// Value must have pattern - /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. - /// - /// [filter] - A filter expression that filters resources listed in the - /// response. Most Compute resources support two types of filter expressions: - /// expressions that support regular expressions and expressions that follow - /// API improvement proposal AIP-160. These two types of filter expressions - /// cannot be mixed in one request. If you want to use AIP-160, your - /// expression must specify the field name, an operator, and the value that - /// you want to use for filtering. The value must be a string, a number, or a - /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or - /// `:`. For example, if you are filtering Compute Engine instances, you can - /// exclude instances named `example-instance` by specifying `name != - /// example-instance`. The `:*` comparison can be used to test whether a key - /// has been defined. For example, to find all objects with `owner` label use: - /// ``` labels.owner:* ``` You can also filter nested fields. For example, you - /// could specify `scheduling.automaticRestart = false` to include instances - /// only if they are not scheduled for automatic restarts. You can use - /// filtering on nested fields to filter based on resource labels. To filter - /// on multiple expressions, provide each separate expression within - /// parentheses. For example: ``` (scheduling.automaticRestart = true) - /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an - /// `AND` expression. However, you can include `AND` and `OR` expressions - /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR - /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) - /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` - /// (not equal) operator against a single un-parenthesized expression with or - /// without quotes or against multiple parenthesized expressions. Examples: - /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` - /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) - /// (fieldname2 ne "literal")` The literal value is interpreted as a regular - /// expression using Google RE2 library syntax. The literal value must match - /// the entire field. For example, to filter for instances that do not end - /// with name "instance", you would use `name ne .*instance`. You cannot - /// combine constraints on multiple fields using regular expressions. - /// - /// [includeAllScopes] - Indicates whether every visible scope for each scope - /// type (zone, region, global) should be included in the response. For new - /// resource types added after this field, the flag has no effect as new - /// resource types will always include every visible scope for each scope type - /// in response. For resource types which predate this field, if this flag is - /// omitted or false, only scopes of the scope types where the resource type - /// is expected to be found will be included. - /// - /// [maxResults] - The maximum number of results per page that should be - /// returned. If the number of available results is larger than `maxResults`, - /// Compute Engine returns a `nextPageToken` that can be used to get the next - /// page of results in subsequent list requests. Acceptable values are `0` to - /// `500`, inclusive. (Default: `500`) - /// - /// [orderBy] - Sorts list results by a certain order. By default, results are - /// returned in alphanumerical order based on the resource name. You can also - /// sort results in descending order based on the creation timestamp using - /// `orderBy="creationTimestamp desc"`. This sorts results based on the - /// `creationTimestamp` field in reverse chronological order (newest result - /// first). Use this to sort resources like operations so that the newest - /// operation is returned first. Currently, only sorting by `name` or - /// `creationTimestamp desc` is supported. - /// - /// [pageToken] - Specifies a page token to use. Set `pageToken` to the - /// `nextPageToken` returned by a previous list request to get the next page - /// of results. - /// - /// [returnPartialSuccess] - Opt-in for partial success behavior which - /// provides partial results in case of failure. The default value is false. - /// - /// [serviceProjectNumber] - null - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [NodeTypeAggregatedList]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future aggregatedList( - core.String project, { - core.String? filter, - core.bool? includeAllScopes, - core.int? maxResults, - core.String? orderBy, - core.String? pageToken, - core.bool? returnPartialSuccess, - core.String? serviceProjectNumber, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (includeAllScopes != null) 'includeAllScopes': ['${includeAllScopes}'], - if (maxResults != null) 'maxResults': ['${maxResults}'], - if (orderBy != null) 'orderBy': [orderBy], - if (pageToken != null) 'pageToken': [pageToken], - if (returnPartialSuccess != null) - 'returnPartialSuccess': ['${returnPartialSuccess}'], - if (serviceProjectNumber != null) - 'serviceProjectNumber': [serviceProjectNumber], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'projects/' + - commons.escapeVariable('$project') + - '/aggregated/nodeTypes'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return NodeTypeAggregatedList.fromJson( - response_ as core.Map); - } - - /// Returns the specified node type. - /// - /// Request parameters: - /// - /// [project] - Project ID for this request. - /// Value must have pattern - /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. - /// - /// [zone] - The name of the zone for this request. - /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. - /// - /// [nodeType] - Name of the node type to return. - /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [NodeType]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String project, - core.String zone, - core.String nodeType, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'projects/' + - commons.escapeVariable('$project') + - '/zones/' + - commons.escapeVariable('$zone') + - '/nodeTypes/' + - commons.escapeVariable('$nodeType'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return NodeType.fromJson(response_ as core.Map); - } - - /// Retrieves a list of node types available to the specified project. - /// - /// Request parameters: - /// - /// [project] - Project ID for this request. - /// Value must have pattern - /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. - /// - /// [zone] - The name of the zone for this request. - /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. - /// - /// [filter] - A filter expression that filters resources listed in the - /// response. Most Compute resources support two types of filter expressions: - /// expressions that support regular expressions and expressions that follow - /// API improvement proposal AIP-160. These two types of filter expressions - /// cannot be mixed in one request. If you want to use AIP-160, your - /// expression must specify the field name, an operator, and the value that - /// you want to use for filtering. The value must be a string, a number, or a - /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or - /// `:`. For example, if you are filtering Compute Engine instances, you can - /// exclude instances named `example-instance` by specifying `name != - /// example-instance`. The `:*` comparison can be used to test whether a key - /// has been defined. For example, to find all objects with `owner` label use: - /// ``` labels.owner:* ``` You can also filter nested fields. For example, you - /// could specify `scheduling.automaticRestart = false` to include instances - /// only if they are not scheduled for automatic restarts. You can use - /// filtering on nested fields to filter based on resource labels. To filter - /// on multiple expressions, provide each separate expression within - /// parentheses. For example: ``` (scheduling.automaticRestart = true) - /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an - /// `AND` expression. However, you can include `AND` and `OR` expressions - /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR - /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) - /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` - /// (not equal) operator against a single un-parenthesized expression with or - /// without quotes or against multiple parenthesized expressions. Examples: - /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` - /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) - /// (fieldname2 ne "literal")` The literal value is interpreted as a regular - /// expression using Google RE2 library syntax. The literal value must match - /// the entire field. For example, to filter for instances that do not end - /// with name "instance", you would use `name ne .*instance`. You cannot - /// combine constraints on multiple fields using regular expressions. - /// - /// [maxResults] - The maximum number of results per page that should be - /// returned. If the number of available results is larger than `maxResults`, - /// Compute Engine returns a `nextPageToken` that can be used to get the next - /// page of results in subsequent list requests. Acceptable values are `0` to - /// `500`, inclusive. (Default: `500`) - /// - /// [orderBy] - Sorts list results by a certain order. By default, results are - /// returned in alphanumerical order based on the resource name. You can also - /// sort results in descending order based on the creation timestamp using - /// `orderBy="creationTimestamp desc"`. This sorts results based on the - /// `creationTimestamp` field in reverse chronological order (newest result - /// first). Use this to sort resources like operations so that the newest - /// operation is returned first. Currently, only sorting by `name` or - /// `creationTimestamp desc` is supported. - /// - /// [pageToken] - Specifies a page token to use. Set `pageToken` to the - /// `nextPageToken` returned by a previous list request to get the next page - /// of results. - /// - /// [returnPartialSuccess] - Opt-in for partial success behavior which - /// provides partial results in case of failure. The default value is false. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [NodeTypeList]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list( - core.String project, - core.String zone, { - core.String? filter, - core.int? maxResults, - core.String? orderBy, - core.String? pageToken, - core.bool? returnPartialSuccess, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (maxResults != null) 'maxResults': ['${maxResults}'], - if (orderBy != null) 'orderBy': [orderBy], - if (pageToken != null) 'pageToken': [pageToken], - if (returnPartialSuccess != null) - 'returnPartialSuccess': ['${returnPartialSuccess}'], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'projects/' + - commons.escapeVariable('$project') + - '/zones/' + - commons.escapeVariable('$zone') + - '/nodeTypes'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return NodeTypeList.fromJson( - response_ as core.Map); - } -} - -class PacketMirroringsResource { - final commons.ApiRequester _requester; - - PacketMirroringsResource(commons.ApiRequester client) : _requester = client; - - /// Retrieves an aggregated list of packetMirrorings. + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. /// /// Request parameters: /// @@ -26336,8 +27110,311 @@ class PacketMirroringsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [NodeTypeAggregatedList]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future aggregatedList( + core.String project, { + core.String? filter, + core.bool? includeAllScopes, + core.int? maxResults, + core.String? orderBy, + core.String? pageToken, + core.bool? returnPartialSuccess, + core.String? serviceProjectNumber, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (filter != null) 'filter': [filter], + if (includeAllScopes != null) 'includeAllScopes': ['${includeAllScopes}'], + if (maxResults != null) 'maxResults': ['${maxResults}'], + if (orderBy != null) 'orderBy': [orderBy], + if (pageToken != null) 'pageToken': [pageToken], + if (returnPartialSuccess != null) + 'returnPartialSuccess': ['${returnPartialSuccess}'], + if (serviceProjectNumber != null) + 'serviceProjectNumber': [serviceProjectNumber], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/aggregated/nodeTypes'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return NodeTypeAggregatedList.fromJson( + response_ as core.Map); + } + + /// Returns the specified node type. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [zone] - The name of the zone for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// + /// [nodeType] - Name of the node type to return. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [NodeType]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String project, + core.String zone, + core.String nodeType, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/zones/' + + commons.escapeVariable('$zone') + + '/nodeTypes/' + + commons.escapeVariable('$nodeType'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return NodeType.fromJson(response_ as core.Map); + } + + /// Retrieves a list of node types available to the specified project. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [zone] - The name of the zone for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// + /// [filter] - A filter expression that filters resources listed in the + /// response. Most Compute resources support two types of filter expressions: + /// expressions that support regular expressions and expressions that follow + /// API improvement proposal AIP-160. These two types of filter expressions + /// cannot be mixed in one request. If you want to use AIP-160, your + /// expression must specify the field name, an operator, and the value that + /// you want to use for filtering. The value must be a string, a number, or a + /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or + /// `:`. For example, if you are filtering Compute Engine instances, you can + /// exclude instances named `example-instance` by specifying `name != + /// example-instance`. The `:*` comparison can be used to test whether a key + /// has been defined. For example, to find all objects with `owner` label use: + /// ``` labels.owner:* ``` You can also filter nested fields. For example, you + /// could specify `scheduling.automaticRestart = false` to include instances + /// only if they are not scheduled for automatic restarts. You can use + /// filtering on nested fields to filter based on resource labels. To filter + /// on multiple expressions, provide each separate expression within + /// parentheses. For example: ``` (scheduling.automaticRestart = true) + /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an + /// `AND` expression. However, you can include `AND` and `OR` expressions + /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR + /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) + /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` + /// (not equal) operator against a single un-parenthesized expression with or + /// without quotes or against multiple parenthesized expressions. Examples: + /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` + /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) + /// (fieldname2 ne "literal")` The literal value is interpreted as a regular + /// expression using Google RE2 library syntax. The literal value must match + /// the entire field. For example, to filter for instances that do not end + /// with name "instance", you would use `name ne .*instance`. You cannot + /// combine constraints on multiple fields using regular expressions. + /// + /// [maxResults] - The maximum number of results per page that should be + /// returned. If the number of available results is larger than `maxResults`, + /// Compute Engine returns a `nextPageToken` that can be used to get the next + /// page of results in subsequent list requests. Acceptable values are `0` to + /// `500`, inclusive. (Default: `500`) + /// + /// [orderBy] - Sorts list results by a certain order. By default, results are + /// returned in alphanumerical order based on the resource name. You can also + /// sort results in descending order based on the creation timestamp using + /// `orderBy="creationTimestamp desc"`. This sorts results based on the + /// `creationTimestamp` field in reverse chronological order (newest result + /// first). Use this to sort resources like operations so that the newest + /// operation is returned first. Currently, only sorting by `name` or + /// `creationTimestamp desc` is supported. + /// + /// [pageToken] - Specifies a page token to use. Set `pageToken` to the + /// `nextPageToken` returned by a previous list request to get the next page + /// of results. + /// + /// [returnPartialSuccess] - Opt-in for partial success behavior which + /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [NodeTypeList]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future list( + core.String project, + core.String zone, { + core.String? filter, + core.int? maxResults, + core.String? orderBy, + core.String? pageToken, + core.bool? returnPartialSuccess, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (filter != null) 'filter': [filter], + if (maxResults != null) 'maxResults': ['${maxResults}'], + if (orderBy != null) 'orderBy': [orderBy], + if (pageToken != null) 'pageToken': [pageToken], + if (returnPartialSuccess != null) + 'returnPartialSuccess': ['${returnPartialSuccess}'], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/zones/' + + commons.escapeVariable('$zone') + + '/nodeTypes'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return NodeTypeList.fromJson( + response_ as core.Map); + } +} + +class PacketMirroringsResource { + final commons.ApiRequester _requester; + + PacketMirroringsResource(commons.ApiRequester client) : _requester = client; + + /// Retrieves an aggregated list of packetMirrorings. + /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [filter] - A filter expression that filters resources listed in the + /// response. Most Compute resources support two types of filter expressions: + /// expressions that support regular expressions and expressions that follow + /// API improvement proposal AIP-160. These two types of filter expressions + /// cannot be mixed in one request. If you want to use AIP-160, your + /// expression must specify the field name, an operator, and the value that + /// you want to use for filtering. The value must be a string, a number, or a + /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or + /// `:`. For example, if you are filtering Compute Engine instances, you can + /// exclude instances named `example-instance` by specifying `name != + /// example-instance`. The `:*` comparison can be used to test whether a key + /// has been defined. For example, to find all objects with `owner` label use: + /// ``` labels.owner:* ``` You can also filter nested fields. For example, you + /// could specify `scheduling.automaticRestart = false` to include instances + /// only if they are not scheduled for automatic restarts. You can use + /// filtering on nested fields to filter based on resource labels. To filter + /// on multiple expressions, provide each separate expression within + /// parentheses. For example: ``` (scheduling.automaticRestart = true) + /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an + /// `AND` expression. However, you can include `AND` and `OR` expressions + /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR + /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) + /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` + /// (not equal) operator against a single un-parenthesized expression with or + /// without quotes or against multiple parenthesized expressions. Examples: + /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` + /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) + /// (fieldname2 ne "literal")` The literal value is interpreted as a regular + /// expression using Google RE2 library syntax. The literal value must match + /// the entire field. For example, to filter for instances that do not end + /// with name "instance", you would use `name ne .*instance`. You cannot + /// combine constraints on multiple fields using regular expressions. + /// + /// [includeAllScopes] - Indicates whether every visible scope for each scope + /// type (zone, region, global) should be included in the response. For new + /// resource types added after this field, the flag has no effect as new + /// resource types will always include every visible scope for each scope type + /// in response. For resource types which predate this field, if this flag is + /// omitted or false, only scopes of the scope types where the resource type + /// is expected to be found will be included. + /// + /// [maxResults] - The maximum number of results per page that should be + /// returned. If the number of available results is larger than `maxResults`, + /// Compute Engine returns a `nextPageToken` that can be used to get the next + /// page of results in subsequent list requests. Acceptable values are `0` to + /// `500`, inclusive. (Default: `500`) + /// + /// [orderBy] - Sorts list results by a certain order. By default, results are + /// returned in alphanumerical order based on the resource name. You can also + /// sort results in descending order based on the creation timestamp using + /// `orderBy="creationTimestamp desc"`. This sorts results based on the + /// `creationTimestamp` field in reverse chronological order (newest result + /// first). Use this to sort resources like operations so that the newest + /// operation is returned first. Currently, only sorting by `name` or + /// `creationTimestamp desc` is supported. + /// + /// [pageToken] - Specifies a page token to use. Set `pageToken` to the + /// `nextPageToken` returned by a previous list request to get the next page + /// of results. + /// + /// [returnPartialSuccess] - Opt-in for partial success behavior which + /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. + /// + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -26629,6 +27706,9 @@ class PacketMirroringsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -27170,6 +28250,9 @@ class ProjectsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -27276,6 +28359,9 @@ class ProjectsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -27440,6 +28526,65 @@ class ProjectsResource { return Operation.fromJson(response_ as core.Map); } + /// Sets the Cloud Armor tier of the project. + /// + /// To set ENTERPRISE or above the billing account of the project must be + /// subscribed to Cloud Armor Enterprise. See Subscribing to Cloud Armor + /// Enterprise for more information. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future setCloudArmorTier( + ProjectsSetCloudArmorTierRequest request, + core.String project, { + core.String? requestId, + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = + 'projects/' + commons.escapeVariable('$project') + '/setCloudArmorTier'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + /// Sets metadata common to all instances within the specified project using /// the data included in the request. /// @@ -27903,6 +29048,9 @@ class PublicAdvertisedPrefixesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -28080,6 +29228,9 @@ class PublicDelegatedPrefixesResource { /// Lists all PublicDelegatedPrefix resources owned by the specific project /// across all scopes. /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. + /// /// Request parameters: /// /// [project] - Name of the project scoping this request. @@ -28148,8 +29299,13 @@ class PublicDelegatedPrefixesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -28505,6 +29661,9 @@ class PublicDelegatedPrefixesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -28935,6 +30094,9 @@ class RegionAutoscalersResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -29491,6 +30653,9 @@ class RegionBackendServicesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -29603,6 +30768,9 @@ class RegionBackendServicesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -29987,239 +31155,8 @@ class RegionCommitmentsResource { /// Retrieves an aggregated list of commitments by region. /// - /// Request parameters: - /// - /// [project] - Project ID for this request. - /// Value must have pattern - /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. - /// - /// [filter] - A filter expression that filters resources listed in the - /// response. Most Compute resources support two types of filter expressions: - /// expressions that support regular expressions and expressions that follow - /// API improvement proposal AIP-160. These two types of filter expressions - /// cannot be mixed in one request. If you want to use AIP-160, your - /// expression must specify the field name, an operator, and the value that - /// you want to use for filtering. The value must be a string, a number, or a - /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or - /// `:`. For example, if you are filtering Compute Engine instances, you can - /// exclude instances named `example-instance` by specifying `name != - /// example-instance`. The `:*` comparison can be used to test whether a key - /// has been defined. For example, to find all objects with `owner` label use: - /// ``` labels.owner:* ``` You can also filter nested fields. For example, you - /// could specify `scheduling.automaticRestart = false` to include instances - /// only if they are not scheduled for automatic restarts. You can use - /// filtering on nested fields to filter based on resource labels. To filter - /// on multiple expressions, provide each separate expression within - /// parentheses. For example: ``` (scheduling.automaticRestart = true) - /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an - /// `AND` expression. However, you can include `AND` and `OR` expressions - /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR - /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) - /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` - /// (not equal) operator against a single un-parenthesized expression with or - /// without quotes or against multiple parenthesized expressions. Examples: - /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` - /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) - /// (fieldname2 ne "literal")` The literal value is interpreted as a regular - /// expression using Google RE2 library syntax. The literal value must match - /// the entire field. For example, to filter for instances that do not end - /// with name "instance", you would use `name ne .*instance`. You cannot - /// combine constraints on multiple fields using regular expressions. - /// - /// [includeAllScopes] - Indicates whether every visible scope for each scope - /// type (zone, region, global) should be included in the response. For new - /// resource types added after this field, the flag has no effect as new - /// resource types will always include every visible scope for each scope type - /// in response. For resource types which predate this field, if this flag is - /// omitted or false, only scopes of the scope types where the resource type - /// is expected to be found will be included. - /// - /// [maxResults] - The maximum number of results per page that should be - /// returned. If the number of available results is larger than `maxResults`, - /// Compute Engine returns a `nextPageToken` that can be used to get the next - /// page of results in subsequent list requests. Acceptable values are `0` to - /// `500`, inclusive. (Default: `500`) - /// - /// [orderBy] - Sorts list results by a certain order. By default, results are - /// returned in alphanumerical order based on the resource name. You can also - /// sort results in descending order based on the creation timestamp using - /// `orderBy="creationTimestamp desc"`. This sorts results based on the - /// `creationTimestamp` field in reverse chronological order (newest result - /// first). Use this to sort resources like operations so that the newest - /// operation is returned first. Currently, only sorting by `name` or - /// `creationTimestamp desc` is supported. - /// - /// [pageToken] - Specifies a page token to use. Set `pageToken` to the - /// `nextPageToken` returned by a previous list request to get the next page - /// of results. - /// - /// [returnPartialSuccess] - Opt-in for partial success behavior which - /// provides partial results in case of failure. The default value is false. - /// - /// [serviceProjectNumber] - null - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [CommitmentAggregatedList]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future aggregatedList( - core.String project, { - core.String? filter, - core.bool? includeAllScopes, - core.int? maxResults, - core.String? orderBy, - core.String? pageToken, - core.bool? returnPartialSuccess, - core.String? serviceProjectNumber, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (includeAllScopes != null) 'includeAllScopes': ['${includeAllScopes}'], - if (maxResults != null) 'maxResults': ['${maxResults}'], - if (orderBy != null) 'orderBy': [orderBy], - if (pageToken != null) 'pageToken': [pageToken], - if (returnPartialSuccess != null) - 'returnPartialSuccess': ['${returnPartialSuccess}'], - if (serviceProjectNumber != null) - 'serviceProjectNumber': [serviceProjectNumber], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'projects/' + - commons.escapeVariable('$project') + - '/aggregated/commitments'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return CommitmentAggregatedList.fromJson( - response_ as core.Map); - } - - /// Returns the specified commitment resource. - /// - /// Request parameters: - /// - /// [project] - Project ID for this request. - /// Value must have pattern - /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. - /// - /// [region] - Name of the region for this request. - /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. - /// - /// [commitment] - Name of the commitment to return. - /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Commitment]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String project, - core.String region, - core.String commitment, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'projects/' + - commons.escapeVariable('$project') + - '/regions/' + - commons.escapeVariable('$region') + - '/commitments/' + - commons.escapeVariable('$commitment'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return Commitment.fromJson( - response_ as core.Map); - } - - /// Creates a commitment in the specified project using the data included in - /// the request. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [project] - Project ID for this request. - /// Value must have pattern - /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. - /// - /// [region] - Name of the region for this request. - /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. - /// - /// [requestId] - An optional request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. For example, - /// consider a situation where you make an initial request and the request - /// times out. If you make the request again with the same request ID, the - /// server can check if original operation with the same request ID was - /// received, and if so, will ignore the second request. This prevents clients - /// from accidentally creating duplicate commitments. The request ID must be a - /// valid UUID with the exception that zero UUID is not supported ( - /// 00000000-0000-0000-0000-000000000000). - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Operation]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future insert( - Commitment request, - core.String project, - core.String region, { - core.String? requestId, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (requestId != null) 'requestId': [requestId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'projects/' + - commons.escapeVariable('$project') + - '/regions/' + - commons.escapeVariable('$region') + - '/commitments'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return Operation.fromJson(response_ as core.Map); - } - - /// Retrieves a list of commitments contained within the specified region. + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. /// /// Request parameters: /// @@ -30227,9 +31164,248 @@ class RegionCommitmentsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region for this request. - /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. - /// + /// [filter] - A filter expression that filters resources listed in the + /// response. Most Compute resources support two types of filter expressions: + /// expressions that support regular expressions and expressions that follow + /// API improvement proposal AIP-160. These two types of filter expressions + /// cannot be mixed in one request. If you want to use AIP-160, your + /// expression must specify the field name, an operator, and the value that + /// you want to use for filtering. The value must be a string, a number, or a + /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or + /// `:`. For example, if you are filtering Compute Engine instances, you can + /// exclude instances named `example-instance` by specifying `name != + /// example-instance`. The `:*` comparison can be used to test whether a key + /// has been defined. For example, to find all objects with `owner` label use: + /// ``` labels.owner:* ``` You can also filter nested fields. For example, you + /// could specify `scheduling.automaticRestart = false` to include instances + /// only if they are not scheduled for automatic restarts. You can use + /// filtering on nested fields to filter based on resource labels. To filter + /// on multiple expressions, provide each separate expression within + /// parentheses. For example: ``` (scheduling.automaticRestart = true) + /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an + /// `AND` expression. However, you can include `AND` and `OR` expressions + /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR + /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) + /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` + /// (not equal) operator against a single un-parenthesized expression with or + /// without quotes or against multiple parenthesized expressions. Examples: + /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` + /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) + /// (fieldname2 ne "literal")` The literal value is interpreted as a regular + /// expression using Google RE2 library syntax. The literal value must match + /// the entire field. For example, to filter for instances that do not end + /// with name "instance", you would use `name ne .*instance`. You cannot + /// combine constraints on multiple fields using regular expressions. + /// + /// [includeAllScopes] - Indicates whether every visible scope for each scope + /// type (zone, region, global) should be included in the response. For new + /// resource types added after this field, the flag has no effect as new + /// resource types will always include every visible scope for each scope type + /// in response. For resource types which predate this field, if this flag is + /// omitted or false, only scopes of the scope types where the resource type + /// is expected to be found will be included. + /// + /// [maxResults] - The maximum number of results per page that should be + /// returned. If the number of available results is larger than `maxResults`, + /// Compute Engine returns a `nextPageToken` that can be used to get the next + /// page of results in subsequent list requests. Acceptable values are `0` to + /// `500`, inclusive. (Default: `500`) + /// + /// [orderBy] - Sorts list results by a certain order. By default, results are + /// returned in alphanumerical order based on the resource name. You can also + /// sort results in descending order based on the creation timestamp using + /// `orderBy="creationTimestamp desc"`. This sorts results based on the + /// `creationTimestamp` field in reverse chronological order (newest result + /// first). Use this to sort resources like operations so that the newest + /// operation is returned first. Currently, only sorting by `name` or + /// `creationTimestamp desc` is supported. + /// + /// [pageToken] - Specifies a page token to use. Set `pageToken` to the + /// `nextPageToken` returned by a previous list request to get the next page + /// of results. + /// + /// [returnPartialSuccess] - Opt-in for partial success behavior which + /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. + /// + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [CommitmentAggregatedList]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future aggregatedList( + core.String project, { + core.String? filter, + core.bool? includeAllScopes, + core.int? maxResults, + core.String? orderBy, + core.String? pageToken, + core.bool? returnPartialSuccess, + core.String? serviceProjectNumber, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (filter != null) 'filter': [filter], + if (includeAllScopes != null) 'includeAllScopes': ['${includeAllScopes}'], + if (maxResults != null) 'maxResults': ['${maxResults}'], + if (orderBy != null) 'orderBy': [orderBy], + if (pageToken != null) 'pageToken': [pageToken], + if (returnPartialSuccess != null) + 'returnPartialSuccess': ['${returnPartialSuccess}'], + if (serviceProjectNumber != null) + 'serviceProjectNumber': [serviceProjectNumber], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/aggregated/commitments'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return CommitmentAggregatedList.fromJson( + response_ as core.Map); + } + + /// Returns the specified commitment resource. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [region] - Name of the region for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// + /// [commitment] - Name of the commitment to return. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Commitment]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String project, + core.String region, + core.String commitment, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/regions/' + + commons.escapeVariable('$region') + + '/commitments/' + + commons.escapeVariable('$commitment'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return Commitment.fromJson( + response_ as core.Map); + } + + /// Creates a commitment in the specified project using the data included in + /// the request. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [region] - Name of the region for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future insert( + Commitment request, + core.String project, + core.String region, { + core.String? requestId, + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/regions/' + + commons.escapeVariable('$region') + + '/commitments'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + + /// Retrieves a list of commitments contained within the specified region. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [region] - Name of the region for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// /// [filter] - A filter expression that filters resources listed in the /// response. Most Compute resources support two types of filter expressions: /// expressions that support regular expressions and expressions that follow @@ -30284,6 +31460,9 @@ class RegionCommitmentsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -30533,6 +31712,9 @@ class RegionDiskTypesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -31100,6 +32282,9 @@ class RegionDisksResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -31997,6 +33182,9 @@ class RegionHealthCheckServicesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -32363,6 +33551,9 @@ class RegionHealthChecksResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -33142,6 +34333,9 @@ class RegionInstanceGroupManagersResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -33261,6 +34455,9 @@ class RegionInstanceGroupManagersResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -33315,8 +34512,8 @@ class RegionInstanceGroupManagersResource { /// /// The list includes any current actions that the group has scheduled for its /// instances. The orderBy query parameter is not supported. The `pageToken` - /// query parameter is supported only in the alpha and beta API and only if - /// the group's `listManagedInstancesResults` field is set to `PAGINATED`. + /// query parameter is supported only if the group's + /// `listManagedInstancesResults` field is set to `PAGINATED`. /// /// Request parameters: /// @@ -33382,6 +34579,9 @@ class RegionInstanceGroupManagersResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -33503,6 +34703,9 @@ class RegionInstanceGroupManagersResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -34184,6 +35387,9 @@ class RegionInstanceGroupsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -34304,6 +35510,9 @@ class RegionInstanceGroupsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -34675,6 +35884,9 @@ class RegionInstanceTemplatesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -34792,16 +36004,19 @@ class RegionInstancesResource { } } -class RegionNetworkEndpointGroupsResource { +class RegionInstantSnapshotsResource { final commons.ApiRequester _requester; - RegionNetworkEndpointGroupsResource(commons.ApiRequester client) + RegionInstantSnapshotsResource(commons.ApiRequester client) : _requester = client; - /// Attach a list of network endpoints to the specified network endpoint - /// group. + /// Deletes the specified InstantSnapshot resource. /// - /// [request] - The metadata request object. + /// Keep in mind that deleting a single instantSnapshot might not necessarily + /// delete all the data on that instantSnapshot. If any data on the + /// instantSnapshot that is marked for deletion is needed for subsequent + /// instantSnapshots, the data will be moved to the next corresponding + /// instantSnapshot. For more information, see Deleting instantSnapshots. /// /// Request parameters: /// @@ -34809,80 +36024,12 @@ class RegionNetworkEndpointGroupsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - The name of the region where you want to create the network - /// endpoint group. It should comply with RFC1035. - /// - /// [networkEndpointGroup] - The name of the network endpoint group where you - /// are attaching network endpoints to. It should comply with RFC1035. - /// - /// [requestId] - An optional request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. For example, - /// consider a situation where you make an initial request and the request - /// times out. If you make the request again with the same request ID, the - /// server can check if original operation with the same request ID was - /// received, and if so, will ignore the second request. This prevents clients - /// from accidentally creating duplicate commitments. The request ID must be a - /// valid UUID with the exception that zero UUID is not supported ( - /// 00000000-0000-0000-0000-000000000000). - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Operation]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future attachNetworkEndpoints( - RegionNetworkEndpointGroupsAttachEndpointsRequest request, - core.String project, - core.String region, - core.String networkEndpointGroup, { - core.String? requestId, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (requestId != null) 'requestId': [requestId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'projects/' + - commons.escapeVariable('$project') + - '/regions/' + - commons.escapeVariable('$region') + - '/networkEndpointGroups/' + - commons.escapeVariable('$networkEndpointGroup') + - '/attachNetworkEndpoints'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return Operation.fromJson(response_ as core.Map); - } - - /// Deletes the specified network endpoint group. - /// - /// Note that the NEG cannot be deleted if it is configured as a backend of a - /// backend service. - /// - /// Request parameters: + /// [region] - The name of the region for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [project] - Project ID for this request. + /// [instantSnapshot] - Name of the InstantSnapshot resource to delete. /// Value must have pattern - /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. - /// - /// [region] - The name of the region where the network endpoint group is - /// located. It should comply with RFC1035. - /// - /// [networkEndpointGroup] - The name of the network endpoint group to delete. - /// It should comply with RFC1035. + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// /// [requestId] - An optional request ID to identify requests. Specify a /// unique request ID so that if you must retry your request, the server will @@ -34908,7 +36055,7 @@ class RegionNetworkEndpointGroupsResource { async.Future delete( core.String project, core.String region, - core.String networkEndpointGroup, { + core.String instantSnapshot, { core.String? requestId, core.String? $fields, }) async { @@ -34921,8 +36068,8 @@ class RegionNetworkEndpointGroupsResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/networkEndpointGroups/' + - commons.escapeVariable('$networkEndpointGroup'); + '/instantSnapshots/' + + commons.escapeVariable('$instantSnapshot'); final response_ = await _requester.request( url_, @@ -34932,9 +36079,7 @@ class RegionNetworkEndpointGroupsResource { return Operation.fromJson(response_ as core.Map); } - /// Detach the network endpoint from the specified network endpoint group. - /// - /// [request] - The metadata request object. + /// Returns the specified InstantSnapshot resource in the specified region. /// /// Request parameters: /// @@ -34942,45 +36087,30 @@ class RegionNetworkEndpointGroupsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - The name of the region where the network endpoint group is - /// located. It should comply with RFC1035. - /// - /// [networkEndpointGroup] - The name of the network endpoint group you are - /// detaching network endpoints from. It should comply with RFC1035. + /// [region] - The name of the region for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [requestId] - An optional request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. For example, - /// consider a situation where you make an initial request and the request - /// times out. If you make the request again with the same request ID, the - /// server can check if original operation with the same request ID was - /// received, and if so, will ignore the second request. This prevents clients - /// from accidentally creating duplicate commitments. The request ID must be a - /// valid UUID with the exception that zero UUID is not supported ( - /// 00000000-0000-0000-0000-000000000000). end_interface: - /// MixerMutationRequestBuilder + /// [instantSnapshot] - Name of the InstantSnapshot resource to return. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [Operation]. + /// Completes with a [InstantSnapshot]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future detachNetworkEndpoints( - RegionNetworkEndpointGroupsDetachEndpointsRequest request, + async.Future get( core.String project, core.String region, - core.String networkEndpointGroup, { - core.String? requestId, + core.String instantSnapshot, { core.String? $fields, }) async { - final body_ = convert.json.encode(request); final queryParams_ = >{ - if (requestId != null) 'requestId': [requestId], if ($fields != null) 'fields': [$fields], }; @@ -34988,20 +36118,21 @@ class RegionNetworkEndpointGroupsResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/networkEndpointGroups/' + - commons.escapeVariable('$networkEndpointGroup') + - '/detachNetworkEndpoints'; + '/instantSnapshots/' + + commons.escapeVariable('$instantSnapshot'); final response_ = await _requester.request( url_, - 'POST', - body: body_, + 'GET', queryParams: queryParams_, ); - return Operation.fromJson(response_ as core.Map); + return InstantSnapshot.fromJson( + response_ as core.Map); } - /// Returns the specified network endpoint group. + /// Gets the access control policy for a resource. + /// + /// May be empty if no such policy or resource exists. /// /// Request parameters: /// @@ -35009,29 +36140,35 @@ class RegionNetworkEndpointGroupsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - The name of the region where the network endpoint group is - /// located. It should comply with RFC1035. + /// [region] - The name of the region for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [networkEndpointGroup] - The name of the network endpoint group. It should - /// comply with RFC1035. + /// [resource] - Name or id of the resource for this request. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// + /// [optionsRequestedPolicyVersion] - Requested IAM Policy version. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [NetworkEndpointGroup]. + /// Completes with a [Policy]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future get( + async.Future getIamPolicy( core.String project, core.String region, - core.String networkEndpointGroup, { + core.String resource, { + core.int? optionsRequestedPolicyVersion, core.String? $fields, }) async { final queryParams_ = >{ + if (optionsRequestedPolicyVersion != null) + 'optionsRequestedPolicyVersion': ['${optionsRequestedPolicyVersion}'], if ($fields != null) 'fields': [$fields], }; @@ -35039,20 +36176,19 @@ class RegionNetworkEndpointGroupsResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/networkEndpointGroups/' + - commons.escapeVariable('$networkEndpointGroup'); + '/instantSnapshots/' + + commons.escapeVariable('$resource') + + '/getIamPolicy'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return NetworkEndpointGroup.fromJson( - response_ as core.Map); + return Policy.fromJson(response_ as core.Map); } - /// Creates a network endpoint group in the specified project using the - /// parameters that are included in the request. + /// Creates an instant snapshot in the specified region. /// /// [request] - The metadata request object. /// @@ -35062,8 +36198,8 @@ class RegionNetworkEndpointGroupsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - The name of the region where you want to create the network - /// endpoint group. It should comply with RFC1035. + /// [region] - Name of the region for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// /// [requestId] - An optional request ID to identify requests. Specify a /// unique request ID so that if you must retry your request, the server will @@ -35087,7 +36223,7 @@ class RegionNetworkEndpointGroupsResource { /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. async.Future insert( - NetworkEndpointGroup request, + InstantSnapshot request, core.String project, core.String region, { core.String? requestId, @@ -35103,7 +36239,7 @@ class RegionNetworkEndpointGroupsResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/networkEndpointGroups'; + '/instantSnapshots'; final response_ = await _requester.request( url_, @@ -35114,8 +36250,8 @@ class RegionNetworkEndpointGroupsResource { return Operation.fromJson(response_ as core.Map); } - /// Retrieves the list of regional network endpoint groups available to the - /// specified project in the given region. + /// Retrieves the list of InstantSnapshot resources contained within the + /// specified region. /// /// Request parameters: /// @@ -35123,8 +36259,8 @@ class RegionNetworkEndpointGroupsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - The name of the region where the network endpoint group is - /// located. It should comply with RFC1035. + /// [region] - The name of the region for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// /// [filter] - A filter expression that filters resources listed in the /// response. Most Compute resources support two types of filter expressions: @@ -35180,18 +36316,21 @@ class RegionNetworkEndpointGroupsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [NetworkEndpointGroupList]. + /// Completes with a [InstantSnapshotList]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future list( + async.Future list( core.String project, core.String region, { core.String? filter, @@ -35215,18 +36354,22 @@ class RegionNetworkEndpointGroupsResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/networkEndpointGroups'; + '/instantSnapshots'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return NetworkEndpointGroupList.fromJson( + return InstantSnapshotList.fromJson( response_ as core.Map); } - /// Lists the network endpoints in the specified network endpoint group. + /// Sets the access control policy on the specified resource. + /// + /// Replaces any existing policy. + /// + /// [request] - The metadata request object. /// /// Request parameters: /// @@ -35234,96 +36377,32 @@ class RegionNetworkEndpointGroupsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - The name of the region where the network endpoint group is - /// located. It should comply with RFC1035. - /// - /// [networkEndpointGroup] - The name of the network endpoint group from which - /// you want to generate a list of included network endpoints. It should - /// comply with RFC1035. - /// - /// [filter] - A filter expression that filters resources listed in the - /// response. Most Compute resources support two types of filter expressions: - /// expressions that support regular expressions and expressions that follow - /// API improvement proposal AIP-160. These two types of filter expressions - /// cannot be mixed in one request. If you want to use AIP-160, your - /// expression must specify the field name, an operator, and the value that - /// you want to use for filtering. The value must be a string, a number, or a - /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or - /// `:`. For example, if you are filtering Compute Engine instances, you can - /// exclude instances named `example-instance` by specifying `name != - /// example-instance`. The `:*` comparison can be used to test whether a key - /// has been defined. For example, to find all objects with `owner` label use: - /// ``` labels.owner:* ``` You can also filter nested fields. For example, you - /// could specify `scheduling.automaticRestart = false` to include instances - /// only if they are not scheduled for automatic restarts. You can use - /// filtering on nested fields to filter based on resource labels. To filter - /// on multiple expressions, provide each separate expression within - /// parentheses. For example: ``` (scheduling.automaticRestart = true) - /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an - /// `AND` expression. However, you can include `AND` and `OR` expressions - /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR - /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) - /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` - /// (not equal) operator against a single un-parenthesized expression with or - /// without quotes or against multiple parenthesized expressions. Examples: - /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` - /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) - /// (fieldname2 ne "literal")` The literal value is interpreted as a regular - /// expression using Google RE2 library syntax. The literal value must match - /// the entire field. For example, to filter for instances that do not end - /// with name "instance", you would use `name ne .*instance`. You cannot - /// combine constraints on multiple fields using regular expressions. - /// - /// [maxResults] - The maximum number of results per page that should be - /// returned. If the number of available results is larger than `maxResults`, - /// Compute Engine returns a `nextPageToken` that can be used to get the next - /// page of results in subsequent list requests. Acceptable values are `0` to - /// `500`, inclusive. (Default: `500`) - /// - /// [orderBy] - Sorts list results by a certain order. By default, results are - /// returned in alphanumerical order based on the resource name. You can also - /// sort results in descending order based on the creation timestamp using - /// `orderBy="creationTimestamp desc"`. This sorts results based on the - /// `creationTimestamp` field in reverse chronological order (newest result - /// first). Use this to sort resources like operations so that the newest - /// operation is returned first. Currently, only sorting by `name` or - /// `creationTimestamp desc` is supported. - /// - /// [pageToken] - Specifies a page token to use. Set `pageToken` to the - /// `nextPageToken` returned by a previous list request to get the next page - /// of results. + /// [region] - The name of the region for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [returnPartialSuccess] - Opt-in for partial success behavior which - /// provides partial results in case of failure. The default value is false. + /// [resource] - Name or id of the resource for this request. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [NetworkEndpointGroupsListNetworkEndpoints]. + /// Completes with a [Policy]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future listNetworkEndpoints( + async.Future setIamPolicy( + RegionSetPolicyRequest request, core.String project, core.String region, - core.String networkEndpointGroup, { - core.String? filter, - core.int? maxResults, - core.String? orderBy, - core.String? pageToken, - core.bool? returnPartialSuccess, + core.String resource, { core.String? $fields, }) async { + final body_ = convert.json.encode(request); final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (maxResults != null) 'maxResults': ['${maxResults}'], - if (orderBy != null) 'orderBy': [orderBy], - if (pageToken != null) 'pageToken': [pageToken], - if (returnPartialSuccess != null) - 'returnPartialSuccess': ['${returnPartialSuccess}'], if ($fields != null) 'fields': [$fields], }; @@ -35331,27 +36410,22 @@ class RegionNetworkEndpointGroupsResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/networkEndpointGroups/' + - commons.escapeVariable('$networkEndpointGroup') + - '/listNetworkEndpoints'; + '/instantSnapshots/' + + commons.escapeVariable('$resource') + + '/setIamPolicy'; final response_ = await _requester.request( url_, 'POST', + body: body_, queryParams: queryParams_, ); - return NetworkEndpointGroupsListNetworkEndpoints.fromJson( - response_ as core.Map); + return Policy.fromJson(response_ as core.Map); } -} - -class RegionNetworkFirewallPoliciesResource { - final commons.ApiRequester _requester; - - RegionNetworkFirewallPoliciesResource(commons.ApiRequester client) - : _requester = client; - /// Inserts an association for the specified network firewall policy. + /// Sets the labels on a instantSnapshot in the given region. + /// + /// To learn more about labels, read the Labeling Resources documentation. /// /// [request] - The metadata request object. /// @@ -35361,17 +36435,13 @@ class RegionNetworkFirewallPoliciesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region scoping this request. + /// [region] - The region for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [firewallPolicy] - Name of the firewall policy to update. + /// [resource] - Name or id of the resource for this request. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [replaceExistingAssociation] - Indicates whether or not to replace it if - /// an association already exists. This is false by default, in which case an - /// error will be returned if an association already exists. - /// /// [requestId] - An optional request ID to identify requests. Specify a /// unique request ID so that if you must retry your request, the server will /// know to ignore the request if it has already been completed. For example, @@ -35393,19 +36463,16 @@ class RegionNetworkFirewallPoliciesResource { /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future addAssociation( - FirewallPolicyAssociation request, + async.Future setLabels( + RegionSetLabelsRequest request, core.String project, core.String region, - core.String firewallPolicy, { - core.bool? replaceExistingAssociation, + core.String resource, { core.String? requestId, core.String? $fields, }) async { final body_ = convert.json.encode(request); final queryParams_ = >{ - if (replaceExistingAssociation != null) - 'replaceExistingAssociation': ['${replaceExistingAssociation}'], if (requestId != null) 'requestId': [requestId], if ($fields != null) 'fields': [$fields], }; @@ -35414,9 +36481,9 @@ class RegionNetworkFirewallPoliciesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/firewallPolicies/' + - commons.escapeVariable('$firewallPolicy') + - '/addAssociation'; + '/instantSnapshots/' + + commons.escapeVariable('$resource') + + '/setLabels'; final response_ = await _requester.request( url_, @@ -35427,7 +36494,7 @@ class RegionNetworkFirewallPoliciesResource { return Operation.fromJson(response_ as core.Map); } - /// Inserts a rule into a network firewall policy. + /// Returns permissions that a caller has on the specified resource. /// /// [request] - The metadata request object. /// @@ -35437,57 +36504,32 @@ class RegionNetworkFirewallPoliciesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region scoping this request. + /// [region] - The name of the region for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [firewallPolicy] - Name of the firewall policy to update. + /// [resource] - Name or id of the resource for this request. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [maxPriority] - When rule.priority is not specified, auto choose a unused - /// priority between minPriority and maxPriority\>. This field is exclusive - /// with rule.priority. - /// - /// [minPriority] - When rule.priority is not specified, auto choose a unused - /// priority between minPriority and maxPriority\>. This field is exclusive - /// with rule.priority. - /// - /// [requestId] - An optional request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. For example, - /// consider a situation where you make an initial request and the request - /// times out. If you make the request again with the same request ID, the - /// server can check if original operation with the same request ID was - /// received, and if so, will ignore the second request. This prevents clients - /// from accidentally creating duplicate commitments. The request ID must be a - /// valid UUID with the exception that zero UUID is not supported ( - /// 00000000-0000-0000-0000-000000000000). - /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [Operation]. + /// Completes with a [TestPermissionsResponse]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future addRule( - FirewallPolicyRule request, + async.Future testIamPermissions( + TestPermissionsRequest request, core.String project, core.String region, - core.String firewallPolicy, { - core.int? maxPriority, - core.int? minPriority, - core.String? requestId, + core.String resource, { core.String? $fields, }) async { final body_ = convert.json.encode(request); final queryParams_ = >{ - if (maxPriority != null) 'maxPriority': ['${maxPriority}'], - if (minPriority != null) 'minPriority': ['${minPriority}'], - if (requestId != null) 'requestId': [requestId], if ($fields != null) 'fields': [$fields], }; @@ -35495,9 +36537,9 @@ class RegionNetworkFirewallPoliciesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/firewallPolicies/' + - commons.escapeVariable('$firewallPolicy') + - '/addRule'; + '/instantSnapshots/' + + commons.escapeVariable('$resource') + + '/testIamPermissions'; final response_ = await _requester.request( url_, @@ -35505,10 +36547,21 @@ class RegionNetworkFirewallPoliciesResource { body: body_, queryParams: queryParams_, ); - return Operation.fromJson(response_ as core.Map); + return TestPermissionsResponse.fromJson( + response_ as core.Map); } +} - /// Copies rules to the specified network firewall policy. +class RegionNetworkEndpointGroupsResource { + final commons.ApiRequester _requester; + + RegionNetworkEndpointGroupsResource(commons.ApiRequester client) + : _requester = client; + + /// Attach a list of network endpoints to the specified network endpoint + /// group. + /// + /// [request] - The metadata request object. /// /// Request parameters: /// @@ -35516,12 +36569,11 @@ class RegionNetworkFirewallPoliciesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region scoping this request. - /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// [region] - The name of the region where you want to create the network + /// endpoint group. It should comply with RFC1035. /// - /// [firewallPolicy] - Name of the firewall policy to update. - /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// [networkEndpointGroup] - The name of the network endpoint group where you + /// are attaching network endpoints to. It should comply with RFC1035. /// /// [requestId] - An optional request ID to identify requests. Specify a /// unique request ID so that if you must retry your request, the server will @@ -35534,8 +36586,6 @@ class RegionNetworkFirewallPoliciesResource { /// valid UUID with the exception that zero UUID is not supported ( /// 00000000-0000-0000-0000-000000000000). /// - /// [sourceFirewallPolicy] - The firewall policy from which to copy rules. - /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// @@ -35546,18 +36596,17 @@ class RegionNetworkFirewallPoliciesResource { /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future cloneRules( + async.Future attachNetworkEndpoints( + RegionNetworkEndpointGroupsAttachEndpointsRequest request, core.String project, core.String region, - core.String firewallPolicy, { + core.String networkEndpointGroup, { core.String? requestId, - core.String? sourceFirewallPolicy, core.String? $fields, }) async { + final body_ = convert.json.encode(request); final queryParams_ = >{ if (requestId != null) 'requestId': [requestId], - if (sourceFirewallPolicy != null) - 'sourceFirewallPolicy': [sourceFirewallPolicy], if ($fields != null) 'fields': [$fields], }; @@ -35565,19 +36614,23 @@ class RegionNetworkFirewallPoliciesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/firewallPolicies/' + - commons.escapeVariable('$firewallPolicy') + - '/cloneRules'; + '/networkEndpointGroups/' + + commons.escapeVariable('$networkEndpointGroup') + + '/attachNetworkEndpoints'; final response_ = await _requester.request( url_, 'POST', + body: body_, queryParams: queryParams_, ); return Operation.fromJson(response_ as core.Map); } - /// Deletes the specified network firewall policy. + /// Deletes the specified network endpoint group. + /// + /// Note that the NEG cannot be deleted if it is configured as a backend of a + /// backend service. /// /// Request parameters: /// @@ -35585,12 +36638,11 @@ class RegionNetworkFirewallPoliciesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region scoping this request. - /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// [region] - The name of the region where the network endpoint group is + /// located. It should comply with RFC1035. /// - /// [firewallPolicy] - Name of the firewall policy to delete. - /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// [networkEndpointGroup] - The name of the network endpoint group to delete. + /// It should comply with RFC1035. /// /// [requestId] - An optional request ID to identify requests. Specify a /// unique request ID so that if you must retry your request, the server will @@ -35616,7 +36668,7 @@ class RegionNetworkFirewallPoliciesResource { async.Future delete( core.String project, core.String region, - core.String firewallPolicy, { + core.String networkEndpointGroup, { core.String? requestId, core.String? $fields, }) async { @@ -35629,8 +36681,8 @@ class RegionNetworkFirewallPoliciesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/firewallPolicies/' + - commons.escapeVariable('$firewallPolicy'); + '/networkEndpointGroups/' + + commons.escapeVariable('$networkEndpointGroup'); final response_ = await _requester.request( url_, @@ -35640,7 +36692,9 @@ class RegionNetworkFirewallPoliciesResource { return Operation.fromJson(response_ as core.Map); } - /// Returns the specified network firewall policy. + /// Detach the network endpoint from the specified network endpoint group. + /// + /// [request] - The metadata request object. /// /// Request parameters: /// @@ -35648,30 +36702,45 @@ class RegionNetworkFirewallPoliciesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region scoping this request. - /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// [region] - The name of the region where the network endpoint group is + /// located. It should comply with RFC1035. /// - /// [firewallPolicy] - Name of the firewall policy to get. - /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// [networkEndpointGroup] - The name of the network endpoint group you are + /// detaching network endpoints from. It should comply with RFC1035. + /// + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). end_interface: + /// MixerMutationRequestBuilder /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [FirewallPolicy]. + /// Completes with a [Operation]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future get( + async.Future detachNetworkEndpoints( + RegionNetworkEndpointGroupsDetachEndpointsRequest request, core.String project, core.String region, - core.String firewallPolicy, { + core.String networkEndpointGroup, { + core.String? requestId, core.String? $fields, }) async { + final body_ = convert.json.encode(request); final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], if ($fields != null) 'fields': [$fields], }; @@ -35679,19 +36748,20 @@ class RegionNetworkFirewallPoliciesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/firewallPolicies/' + - commons.escapeVariable('$firewallPolicy'); + '/networkEndpointGroups/' + + commons.escapeVariable('$networkEndpointGroup') + + '/detachNetworkEndpoints'; final response_ = await _requester.request( url_, - 'GET', + 'POST', + body: body_, queryParams: queryParams_, ); - return FirewallPolicy.fromJson( - response_ as core.Map); + return Operation.fromJson(response_ as core.Map); } - /// Gets an association with the specified name. + /// Returns the specified network endpoint group. /// /// Request parameters: /// @@ -35699,35 +36769,29 @@ class RegionNetworkFirewallPoliciesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region scoping this request. - /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. - /// - /// [firewallPolicy] - Name of the firewall policy to which the queried - /// association belongs. - /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// [region] - The name of the region where the network endpoint group is + /// located. It should comply with RFC1035. /// - /// [name] - The name of the association to get from the firewall policy. + /// [networkEndpointGroup] - The name of the network endpoint group. It should + /// comply with RFC1035. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [FirewallPolicyAssociation]. + /// Completes with a [NetworkEndpointGroup]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future getAssociation( + async.Future get( core.String project, core.String region, - core.String firewallPolicy, { - core.String? name, + core.String networkEndpointGroup, { core.String? $fields, }) async { final queryParams_ = >{ - if (name != null) 'name': [name], if ($fields != null) 'fields': [$fields], }; @@ -35735,20 +36799,22 @@ class RegionNetworkFirewallPoliciesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/firewallPolicies/' + - commons.escapeVariable('$firewallPolicy') + - '/getAssociation'; + '/networkEndpointGroups/' + + commons.escapeVariable('$networkEndpointGroup'); final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return FirewallPolicyAssociation.fromJson( + return NetworkEndpointGroup.fromJson( response_ as core.Map); } - /// Returns the effective firewalls on a given network. + /// Creates a network endpoint group in the specified project using the + /// parameters that are included in the request. + /// + /// [request] - The metadata request object. /// /// Request parameters: /// @@ -35756,31 +36822,40 @@ class RegionNetworkFirewallPoliciesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region scoping this request. - /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// [region] - The name of the region where you want to create the network + /// endpoint group. It should comply with RFC1035. /// - /// [network] - Network reference + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a - /// [RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse]. + /// Completes with a [Operation]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future - getEffectiveFirewalls( + async.Future insert( + NetworkEndpointGroup request, core.String project, - core.String region, - core.String network, { + core.String region, { + core.String? requestId, core.String? $fields, }) async { + final body_ = convert.json.encode(request); final queryParams_ = >{ - 'network': [network], + if (requestId != null) 'requestId': [requestId], if ($fields != null) 'fields': [$fields], }; @@ -35788,20 +36863,19 @@ class RegionNetworkFirewallPoliciesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/firewallPolicies/getEffectiveFirewalls'; + '/networkEndpointGroups'; final response_ = await _requester.request( url_, - 'GET', + 'POST', + body: body_, queryParams: queryParams_, ); - return RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse.fromJson( - response_ as core.Map); + return Operation.fromJson(response_ as core.Map); } - /// Gets the access control policy for a resource. - /// - /// May be empty if no such policy or resource exists. + /// Retrieves the list of regional network endpoint groups available to the + /// specified project in the given region. /// /// Request parameters: /// @@ -35809,91 +36883,94 @@ class RegionNetworkFirewallPoliciesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - The name of the region for this request. - /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// [region] - The name of the region where the network endpoint group is + /// located. It should comply with RFC1035. /// - /// [resource] - Name or id of the resource for this request. - /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// [filter] - A filter expression that filters resources listed in the + /// response. Most Compute resources support two types of filter expressions: + /// expressions that support regular expressions and expressions that follow + /// API improvement proposal AIP-160. These two types of filter expressions + /// cannot be mixed in one request. If you want to use AIP-160, your + /// expression must specify the field name, an operator, and the value that + /// you want to use for filtering. The value must be a string, a number, or a + /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or + /// `:`. For example, if you are filtering Compute Engine instances, you can + /// exclude instances named `example-instance` by specifying `name != + /// example-instance`. The `:*` comparison can be used to test whether a key + /// has been defined. For example, to find all objects with `owner` label use: + /// ``` labels.owner:* ``` You can also filter nested fields. For example, you + /// could specify `scheduling.automaticRestart = false` to include instances + /// only if they are not scheduled for automatic restarts. You can use + /// filtering on nested fields to filter based on resource labels. To filter + /// on multiple expressions, provide each separate expression within + /// parentheses. For example: ``` (scheduling.automaticRestart = true) + /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an + /// `AND` expression. However, you can include `AND` and `OR` expressions + /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR + /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) + /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` + /// (not equal) operator against a single un-parenthesized expression with or + /// without quotes or against multiple parenthesized expressions. Examples: + /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` + /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) + /// (fieldname2 ne "literal")` The literal value is interpreted as a regular + /// expression using Google RE2 library syntax. The literal value must match + /// the entire field. For example, to filter for instances that do not end + /// with name "instance", you would use `name ne .*instance`. You cannot + /// combine constraints on multiple fields using regular expressions. /// - /// [optionsRequestedPolicyVersion] - Requested IAM Policy version. + /// [maxResults] - The maximum number of results per page that should be + /// returned. If the number of available results is larger than `maxResults`, + /// Compute Engine returns a `nextPageToken` that can be used to get the next + /// page of results in subsequent list requests. Acceptable values are `0` to + /// `500`, inclusive. (Default: `500`) + /// + /// [orderBy] - Sorts list results by a certain order. By default, results are + /// returned in alphanumerical order based on the resource name. You can also + /// sort results in descending order based on the creation timestamp using + /// `orderBy="creationTimestamp desc"`. This sorts results based on the + /// `creationTimestamp` field in reverse chronological order (newest result + /// first). Use this to sort resources like operations so that the newest + /// operation is returned first. Currently, only sorting by `name` or + /// `creationTimestamp desc` is supported. + /// + /// [pageToken] - Specifies a page token to use. Set `pageToken` to the + /// `nextPageToken` returned by a previous list request to get the next page + /// of results. + /// + /// [returnPartialSuccess] - Opt-in for partial success behavior which + /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [Policy]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future getIamPolicy( - core.String project, - core.String region, - core.String resource, { - core.int? optionsRequestedPolicyVersion, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (optionsRequestedPolicyVersion != null) - 'optionsRequestedPolicyVersion': ['${optionsRequestedPolicyVersion}'], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'projects/' + - commons.escapeVariable('$project') + - '/regions/' + - commons.escapeVariable('$region') + - '/firewallPolicies/' + - commons.escapeVariable('$resource') + - '/getIamPolicy'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return Policy.fromJson(response_ as core.Map); - } - - /// Gets a rule of the specified priority. - /// - /// Request parameters: - /// - /// [project] - Project ID for this request. - /// Value must have pattern - /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. - /// - /// [region] - Name of the region scoping this request. - /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. - /// - /// [firewallPolicy] - Name of the firewall policy to which the queried rule - /// belongs. - /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. - /// - /// [priority] - The priority of the rule to get from the firewall policy. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [FirewallPolicyRule]. + /// Completes with a [NetworkEndpointGroupList]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future getRule( + async.Future list( core.String project, - core.String region, - core.String firewallPolicy, { - core.int? priority, + core.String region, { + core.String? filter, + core.int? maxResults, + core.String? orderBy, + core.String? pageToken, + core.bool? returnPartialSuccess, core.String? $fields, }) async { final queryParams_ = >{ - if (priority != null) 'priority': ['${priority}'], + if (filter != null) 'filter': [filter], + if (maxResults != null) 'maxResults': ['${maxResults}'], + if (orderBy != null) 'orderBy': [orderBy], + if (pageToken != null) 'pageToken': [pageToken], + if (returnPartialSuccess != null) + 'returnPartialSuccess': ['${returnPartialSuccess}'], if ($fields != null) 'fields': [$fields], }; @@ -35901,22 +36978,18 @@ class RegionNetworkFirewallPoliciesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/firewallPolicies/' + - commons.escapeVariable('$firewallPolicy') + - '/getRule'; + '/networkEndpointGroups'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return FirewallPolicyRule.fromJson( + return NetworkEndpointGroupList.fromJson( response_ as core.Map); } - /// Creates a new network firewall policy in the specified project and region. - /// - /// [request] - The metadata request object. + /// Lists the network endpoints in the specified network endpoint group. /// /// Request parameters: /// @@ -35924,69 +36997,12 @@ class RegionNetworkFirewallPoliciesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region scoping this request. - /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. - /// - /// [requestId] - An optional request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. For example, - /// consider a situation where you make an initial request and the request - /// times out. If you make the request again with the same request ID, the - /// server can check if original operation with the same request ID was - /// received, and if so, will ignore the second request. This prevents clients - /// from accidentally creating duplicate commitments. The request ID must be a - /// valid UUID with the exception that zero UUID is not supported ( - /// 00000000-0000-0000-0000-000000000000). - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Operation]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future insert( - FirewallPolicy request, - core.String project, - core.String region, { - core.String? requestId, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (requestId != null) 'requestId': [requestId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'projects/' + - commons.escapeVariable('$project') + - '/regions/' + - commons.escapeVariable('$region') + - '/firewallPolicies'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return Operation.fromJson(response_ as core.Map); - } - - /// Lists all the network firewall policies that have been configured for the - /// specified project in the given region. - /// - /// Request parameters: - /// - /// [project] - Project ID for this request. - /// Value must have pattern - /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// [region] - The name of the region where the network endpoint group is + /// located. It should comply with RFC1035. /// - /// [region] - Name of the region scoping this request. - /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// [networkEndpointGroup] - The name of the network endpoint group from which + /// you want to generate a list of included network endpoints. It should + /// comply with RFC1035. /// /// [filter] - A filter expression that filters resources listed in the /// response. Most Compute resources support two types of filter expressions: @@ -36042,20 +37058,24 @@ class RegionNetworkFirewallPoliciesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [FirewallPolicyList]. + /// Completes with a [NetworkEndpointGroupsListNetworkEndpoints]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future list( + async.Future listNetworkEndpoints( core.String project, - core.String region, { + core.String region, + core.String networkEndpointGroup, { core.String? filter, core.int? maxResults, core.String? orderBy, @@ -36077,18 +37097,27 @@ class RegionNetworkFirewallPoliciesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/firewallPolicies'; + '/networkEndpointGroups/' + + commons.escapeVariable('$networkEndpointGroup') + + '/listNetworkEndpoints'; final response_ = await _requester.request( url_, - 'GET', + 'POST', queryParams: queryParams_, ); - return FirewallPolicyList.fromJson( + return NetworkEndpointGroupsListNetworkEndpoints.fromJson( response_ as core.Map); } +} - /// Patches the specified network firewall policy. +class RegionNetworkFirewallPoliciesResource { + final commons.ApiRequester _requester; + + RegionNetworkFirewallPoliciesResource(commons.ApiRequester client) + : _requester = client; + + /// Inserts an association for the specified network firewall policy. /// /// [request] - The metadata request object. /// @@ -36105,6 +37134,10 @@ class RegionNetworkFirewallPoliciesResource { /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// + /// [replaceExistingAssociation] - Indicates whether or not to replace it if + /// an association already exists. This is false by default, in which case an + /// error will be returned if an association already exists. + /// /// [requestId] - An optional request ID to identify requests. Specify a /// unique request ID so that if you must retry your request, the server will /// know to ignore the request if it has already been completed. For example, @@ -36126,16 +37159,19 @@ class RegionNetworkFirewallPoliciesResource { /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future patch( - FirewallPolicy request, + async.Future addAssociation( + FirewallPolicyAssociation request, core.String project, core.String region, core.String firewallPolicy, { + core.bool? replaceExistingAssociation, core.String? requestId, core.String? $fields, }) async { final body_ = convert.json.encode(request); final queryParams_ = >{ + if (replaceExistingAssociation != null) + 'replaceExistingAssociation': ['${replaceExistingAssociation}'], if (requestId != null) 'requestId': [requestId], if ($fields != null) 'fields': [$fields], }; @@ -36145,18 +37181,19 @@ class RegionNetworkFirewallPoliciesResource { '/regions/' + commons.escapeVariable('$region') + '/firewallPolicies/' + - commons.escapeVariable('$firewallPolicy'); + commons.escapeVariable('$firewallPolicy') + + '/addAssociation'; final response_ = await _requester.request( url_, - 'PATCH', + 'POST', body: body_, queryParams: queryParams_, ); return Operation.fromJson(response_ as core.Map); } - /// Patches a rule of the specified priority. + /// Inserts a rule into a network firewall policy. /// /// [request] - The metadata request object. /// @@ -36173,7 +37210,13 @@ class RegionNetworkFirewallPoliciesResource { /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [priority] - The priority of the rule to patch. + /// [maxPriority] - When rule.priority is not specified, auto choose a unused + /// priority between minPriority and maxPriority\>. This field is exclusive + /// with rule.priority. + /// + /// [minPriority] - When rule.priority is not specified, auto choose a unused + /// priority between minPriority and maxPriority\>. This field is exclusive + /// with rule.priority. /// /// [requestId] - An optional request ID to identify requests. Specify a /// unique request ID so that if you must retry your request, the server will @@ -36196,18 +37239,20 @@ class RegionNetworkFirewallPoliciesResource { /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future patchRule( + async.Future addRule( FirewallPolicyRule request, core.String project, core.String region, core.String firewallPolicy, { - core.int? priority, + core.int? maxPriority, + core.int? minPriority, core.String? requestId, core.String? $fields, }) async { final body_ = convert.json.encode(request); final queryParams_ = >{ - if (priority != null) 'priority': ['${priority}'], + if (maxPriority != null) 'maxPriority': ['${maxPriority}'], + if (minPriority != null) 'minPriority': ['${minPriority}'], if (requestId != null) 'requestId': [requestId], if ($fields != null) 'fields': [$fields], }; @@ -36218,7 +37263,7 @@ class RegionNetworkFirewallPoliciesResource { commons.escapeVariable('$region') + '/firewallPolicies/' + commons.escapeVariable('$firewallPolicy') + - '/patchRule'; + '/addRule'; final response_ = await _requester.request( url_, @@ -36229,7 +37274,7 @@ class RegionNetworkFirewallPoliciesResource { return Operation.fromJson(response_ as core.Map); } - /// Removes an association for the specified network firewall policy. + /// Copies rules to the specified network firewall policy. /// /// Request parameters: /// @@ -36244,8 +37289,6 @@ class RegionNetworkFirewallPoliciesResource { /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [name] - Name for the association that will be removed. - /// /// [requestId] - An optional request ID to identify requests. Specify a /// unique request ID so that if you must retry your request, the server will /// know to ignore the request if it has already been completed. For example, @@ -36257,6 +37300,8 @@ class RegionNetworkFirewallPoliciesResource { /// valid UUID with the exception that zero UUID is not supported ( /// 00000000-0000-0000-0000-000000000000). /// + /// [sourceFirewallPolicy] - The firewall policy from which to copy rules. + /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// @@ -36267,17 +37312,18 @@ class RegionNetworkFirewallPoliciesResource { /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future removeAssociation( + async.Future cloneRules( core.String project, core.String region, core.String firewallPolicy, { - core.String? name, core.String? requestId, + core.String? sourceFirewallPolicy, core.String? $fields, }) async { final queryParams_ = >{ - if (name != null) 'name': [name], if (requestId != null) 'requestId': [requestId], + if (sourceFirewallPolicy != null) + 'sourceFirewallPolicy': [sourceFirewallPolicy], if ($fields != null) 'fields': [$fields], }; @@ -36287,7 +37333,7 @@ class RegionNetworkFirewallPoliciesResource { commons.escapeVariable('$region') + '/firewallPolicies/' + commons.escapeVariable('$firewallPolicy') + - '/removeAssociation'; + '/cloneRules'; final response_ = await _requester.request( url_, @@ -36297,7 +37343,7 @@ class RegionNetworkFirewallPoliciesResource { return Operation.fromJson(response_ as core.Map); } - /// Deletes a rule of the specified priority. + /// Deletes the specified network firewall policy. /// /// Request parameters: /// @@ -36308,12 +37354,10 @@ class RegionNetworkFirewallPoliciesResource { /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [firewallPolicy] - Name of the firewall policy to update. + /// [firewallPolicy] - Name of the firewall policy to delete. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [priority] - The priority of the rule to remove from the firewall policy. - /// /// [requestId] - An optional request ID to identify requests. Specify a /// unique request ID so that if you must retry your request, the server will /// know to ignore the request if it has already been completed. For example, @@ -36335,16 +37379,14 @@ class RegionNetworkFirewallPoliciesResource { /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future removeRule( + async.Future delete( core.String project, core.String region, core.String firewallPolicy, { - core.int? priority, core.String? requestId, core.String? $fields, }) async { final queryParams_ = >{ - if (priority != null) 'priority': ['${priority}'], if (requestId != null) 'requestId': [requestId], if ($fields != null) 'fields': [$fields], }; @@ -36354,22 +37396,17 @@ class RegionNetworkFirewallPoliciesResource { '/regions/' + commons.escapeVariable('$region') + '/firewallPolicies/' + - commons.escapeVariable('$firewallPolicy') + - '/removeRule'; + commons.escapeVariable('$firewallPolicy'); final response_ = await _requester.request( url_, - 'POST', + 'DELETE', queryParams: queryParams_, ); return Operation.fromJson(response_ as core.Map); } - /// Sets the access control policy on the specified resource. - /// - /// Replaces any existing policy. - /// - /// [request] - The metadata request object. + /// Returns the specified network firewall policy. /// /// Request parameters: /// @@ -36377,31 +37414,29 @@ class RegionNetworkFirewallPoliciesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - The name of the region for this request. + /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [resource] - Name or id of the resource for this request. + /// [firewallPolicy] - Name of the firewall policy to get. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [Policy]. + /// Completes with a [FirewallPolicy]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future setIamPolicy( - RegionSetPolicyRequest request, + async.Future get( core.String project, core.String region, - core.String resource, { + core.String firewallPolicy, { core.String? $fields, }) async { - final body_ = convert.json.encode(request); final queryParams_ = >{ if ($fields != null) 'fields': [$fields], }; @@ -36411,21 +37446,18 @@ class RegionNetworkFirewallPoliciesResource { '/regions/' + commons.escapeVariable('$region') + '/firewallPolicies/' + - commons.escapeVariable('$resource') + - '/setIamPolicy'; + commons.escapeVariable('$firewallPolicy'); final response_ = await _requester.request( url_, - 'POST', - body: body_, + 'GET', queryParams: queryParams_, ); - return Policy.fromJson(response_ as core.Map); + return FirewallPolicy.fromJson( + response_ as core.Map); } - /// Returns permissions that a caller has on the specified resource. - /// - /// [request] - The metadata request object. + /// Gets an association with the specified name. /// /// Request parameters: /// @@ -36433,32 +37465,35 @@ class RegionNetworkFirewallPoliciesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - The name of the region for this request. + /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [resource] - Name or id of the resource for this request. + /// [firewallPolicy] - Name of the firewall policy to which the queried + /// association belongs. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// + /// [name] - The name of the association to get from the firewall policy. + /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [TestPermissionsResponse]. + /// Completes with a [FirewallPolicyAssociation]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future testIamPermissions( - TestPermissionsRequest request, + async.Future getAssociation( core.String project, core.String region, - core.String resource, { + core.String firewallPolicy, { + core.String? name, core.String? $fields, }) async { - final body_ = convert.json.encode(request); final queryParams_ = >{ + if (name != null) 'name': [name], if ($fields != null) 'fields': [$fields], }; @@ -36467,27 +37502,72 @@ class RegionNetworkFirewallPoliciesResource { '/regions/' + commons.escapeVariable('$region') + '/firewallPolicies/' + - commons.escapeVariable('$resource') + - '/testIamPermissions'; + commons.escapeVariable('$firewallPolicy') + + '/getAssociation'; final response_ = await _requester.request( url_, - 'POST', - body: body_, + 'GET', queryParams: queryParams_, ); - return TestPermissionsResponse.fromJson( + return FirewallPolicyAssociation.fromJson( response_ as core.Map); } -} -class RegionNotificationEndpointsResource { - final commons.ApiRequester _requester; + /// Returns the effective firewalls on a given network. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [region] - Name of the region scoping this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// + /// [network] - Network reference + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a + /// [RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future + getEffectiveFirewalls( + core.String project, + core.String region, + core.String network, { + core.String? $fields, + }) async { + final queryParams_ = >{ + 'network': [network], + if ($fields != null) 'fields': [$fields], + }; - RegionNotificationEndpointsResource(commons.ApiRequester client) - : _requester = client; + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/regions/' + + commons.escapeVariable('$region') + + '/firewallPolicies/getEffectiveFirewalls'; - /// Deletes the specified NotificationEndpoint in the given region + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return RegionNetworkFirewallPoliciesGetEffectiveFirewallsResponse.fromJson( + response_ as core.Map); + } + + /// Gets the access control policy for a resource. + /// + /// May be empty if no such policy or resource exists. /// /// Request parameters: /// @@ -36495,44 +37575,35 @@ class RegionNotificationEndpointsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region scoping this request. + /// [region] - The name of the region for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [notificationEndpoint] - Name of the NotificationEndpoint resource to - /// delete. + /// [resource] - Name or id of the resource for this request. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [requestId] - An optional request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. For example, - /// consider a situation where you make an initial request and the request - /// times out. If you make the request again with the same request ID, the - /// server can check if original operation with the same request ID was - /// received, and if so, will ignore the second request. This prevents clients - /// from accidentally creating duplicate commitments. The request ID must be a - /// valid UUID with the exception that zero UUID is not supported ( - /// 00000000-0000-0000-0000-000000000000). + /// [optionsRequestedPolicyVersion] - Requested IAM Policy version. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [Operation]. + /// Completes with a [Policy]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future delete( + async.Future getIamPolicy( core.String project, core.String region, - core.String notificationEndpoint, { - core.String? requestId, + core.String resource, { + core.int? optionsRequestedPolicyVersion, core.String? $fields, }) async { final queryParams_ = >{ - if (requestId != null) 'requestId': [requestId], + if (optionsRequestedPolicyVersion != null) + 'optionsRequestedPolicyVersion': ['${optionsRequestedPolicyVersion}'], if ($fields != null) 'fields': [$fields], }; @@ -36540,18 +37611,19 @@ class RegionNotificationEndpointsResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/notificationEndpoints/' + - commons.escapeVariable('$notificationEndpoint'); + '/firewallPolicies/' + + commons.escapeVariable('$resource') + + '/getIamPolicy'; final response_ = await _requester.request( url_, - 'DELETE', + 'GET', queryParams: queryParams_, ); - return Operation.fromJson(response_ as core.Map); + return Policy.fromJson(response_ as core.Map); } - /// Returns the specified NotificationEndpoint resource in the given region. + /// Gets a rule of the specified priority. /// /// Request parameters: /// @@ -36562,28 +37634,32 @@ class RegionNotificationEndpointsResource { /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [notificationEndpoint] - Name of the NotificationEndpoint resource to - /// return. + /// [firewallPolicy] - Name of the firewall policy to which the queried rule + /// belongs. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// + /// [priority] - The priority of the rule to get from the firewall policy. + /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [NotificationEndpoint]. + /// Completes with a [FirewallPolicyRule]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future get( + async.Future getRule( core.String project, core.String region, - core.String notificationEndpoint, { + core.String firewallPolicy, { + core.int? priority, core.String? $fields, }) async { final queryParams_ = >{ + if (priority != null) 'priority': ['${priority}'], if ($fields != null) 'fields': [$fields], }; @@ -36591,20 +37667,20 @@ class RegionNotificationEndpointsResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/notificationEndpoints/' + - commons.escapeVariable('$notificationEndpoint'); + '/firewallPolicies/' + + commons.escapeVariable('$firewallPolicy') + + '/getRule'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return NotificationEndpoint.fromJson( + return FirewallPolicyRule.fromJson( response_ as core.Map); } - /// Create a NotificationEndpoint in the specified project in the given region - /// using the parameters that are included in the request. + /// Creates a new network firewall policy in the specified project and region. /// /// [request] - The metadata request object. /// @@ -36639,7 +37715,7 @@ class RegionNotificationEndpointsResource { /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. async.Future insert( - NotificationEndpoint request, + FirewallPolicy request, core.String project, core.String region, { core.String? requestId, @@ -36655,7 +37731,7 @@ class RegionNotificationEndpointsResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/notificationEndpoints'; + '/firewallPolicies'; final response_ = await _requester.request( url_, @@ -36666,7 +37742,8 @@ class RegionNotificationEndpointsResource { return Operation.fromJson(response_ as core.Map); } - /// Lists the NotificationEndpoints for a project in the given region. + /// Lists all the network firewall policies that have been configured for the + /// specified project in the given region. /// /// Request parameters: /// @@ -36731,18 +37808,21 @@ class RegionNotificationEndpointsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [NotificationEndpointList]. + /// Completes with a [FirewallPolicyList]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future list( + async.Future list( core.String project, core.String region, { core.String? filter, @@ -36766,24 +37846,20 @@ class RegionNotificationEndpointsResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/notificationEndpoints'; + '/firewallPolicies'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return NotificationEndpointList.fromJson( + return FirewallPolicyList.fromJson( response_ as core.Map); } -} - -class RegionOperationsResource { - final commons.ApiRequester _requester; - RegionOperationsResource(commons.ApiRequester client) : _requester = client; - - /// Deletes the specified region-specific Operations resource. + /// Patches the specified network firewall policy. + /// + /// [request] - The metadata request object. /// /// Request parameters: /// @@ -36791,28 +37867,45 @@ class RegionOperationsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region for this request. + /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [operation] - Name of the Operations resource to delete. + /// [firewallPolicy] - Name of the firewall policy to update. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). + /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// + /// Completes with a [Operation]. + /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future delete( + async.Future patch( + FirewallPolicy request, core.String project, core.String region, - core.String operation, { + core.String firewallPolicy, { + core.String? requestId, core.String? $fields, }) async { + final body_ = convert.json.encode(request); final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], if ($fields != null) 'fields': [$fields], }; @@ -36820,18 +37913,21 @@ class RegionOperationsResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/operations/' + - commons.escapeVariable('$operation'); + '/firewallPolicies/' + + commons.escapeVariable('$firewallPolicy'); - await _requester.request( + final response_ = await _requester.request( url_, - 'DELETE', + 'PATCH', + body: body_, queryParams: queryParams_, - downloadOptions: null, ); + return Operation.fromJson(response_ as core.Map); } - /// Retrieves the specified region-specific Operations resource. + /// Patches a rule of the specified priority. + /// + /// [request] - The metadata request object. /// /// Request parameters: /// @@ -36839,13 +37935,26 @@ class RegionOperationsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region for this request. + /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [operation] - Name of the Operations resource to return. + /// [firewallPolicy] - Name of the firewall policy to update. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// + /// [priority] - The priority of the rule to patch. + /// + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). + /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// @@ -36856,13 +37965,19 @@ class RegionOperationsResource { /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future get( + async.Future patchRule( + FirewallPolicyRule request, core.String project, core.String region, - core.String operation, { + core.String firewallPolicy, { + core.int? priority, + core.String? requestId, core.String? $fields, }) async { + final body_ = convert.json.encode(request); final queryParams_ = >{ + if (priority != null) 'priority': ['${priority}'], + if (requestId != null) 'requestId': [requestId], if ($fields != null) 'fields': [$fields], }; @@ -36870,19 +37985,20 @@ class RegionOperationsResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/operations/' + - commons.escapeVariable('$operation'); + '/firewallPolicies/' + + commons.escapeVariable('$firewallPolicy') + + '/patchRule'; final response_ = await _requester.request( url_, - 'GET', + 'POST', + body: body_, queryParams: queryParams_, ); return Operation.fromJson(response_ as core.Map); } - /// Retrieves a list of Operation resources contained within the specified - /// region. + /// Removes an association for the specified network firewall policy. /// /// Request parameters: /// @@ -36890,91 +38006,47 @@ class RegionOperationsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region for this request. + /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [filter] - A filter expression that filters resources listed in the - /// response. Most Compute resources support two types of filter expressions: - /// expressions that support regular expressions and expressions that follow - /// API improvement proposal AIP-160. These two types of filter expressions - /// cannot be mixed in one request. If you want to use AIP-160, your - /// expression must specify the field name, an operator, and the value that - /// you want to use for filtering. The value must be a string, a number, or a - /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or - /// `:`. For example, if you are filtering Compute Engine instances, you can - /// exclude instances named `example-instance` by specifying `name != - /// example-instance`. The `:*` comparison can be used to test whether a key - /// has been defined. For example, to find all objects with `owner` label use: - /// ``` labels.owner:* ``` You can also filter nested fields. For example, you - /// could specify `scheduling.automaticRestart = false` to include instances - /// only if they are not scheduled for automatic restarts. You can use - /// filtering on nested fields to filter based on resource labels. To filter - /// on multiple expressions, provide each separate expression within - /// parentheses. For example: ``` (scheduling.automaticRestart = true) - /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an - /// `AND` expression. However, you can include `AND` and `OR` expressions - /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR - /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) - /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` - /// (not equal) operator against a single un-parenthesized expression with or - /// without quotes or against multiple parenthesized expressions. Examples: - /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` - /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) - /// (fieldname2 ne "literal")` The literal value is interpreted as a regular - /// expression using Google RE2 library syntax. The literal value must match - /// the entire field. For example, to filter for instances that do not end - /// with name "instance", you would use `name ne .*instance`. You cannot - /// combine constraints on multiple fields using regular expressions. - /// - /// [maxResults] - The maximum number of results per page that should be - /// returned. If the number of available results is larger than `maxResults`, - /// Compute Engine returns a `nextPageToken` that can be used to get the next - /// page of results in subsequent list requests. Acceptable values are `0` to - /// `500`, inclusive. (Default: `500`) - /// - /// [orderBy] - Sorts list results by a certain order. By default, results are - /// returned in alphanumerical order based on the resource name. You can also - /// sort results in descending order based on the creation timestamp using - /// `orderBy="creationTimestamp desc"`. This sorts results based on the - /// `creationTimestamp` field in reverse chronological order (newest result - /// first). Use this to sort resources like operations so that the newest - /// operation is returned first. Currently, only sorting by `name` or - /// `creationTimestamp desc` is supported. + /// [firewallPolicy] - Name of the firewall policy to update. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [pageToken] - Specifies a page token to use. Set `pageToken` to the - /// `nextPageToken` returned by a previous list request to get the next page - /// of results. + /// [name] - Name for the association that will be removed. /// - /// [returnPartialSuccess] - Opt-in for partial success behavior which - /// provides partial results in case of failure. The default value is false. + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [OperationList]. + /// Completes with a [Operation]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future list( + async.Future removeAssociation( core.String project, - core.String region, { - core.String? filter, - core.int? maxResults, - core.String? orderBy, - core.String? pageToken, - core.bool? returnPartialSuccess, + core.String region, + core.String firewallPolicy, { + core.String? name, + core.String? requestId, core.String? $fields, }) async { final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (maxResults != null) 'maxResults': ['${maxResults}'], - if (orderBy != null) 'orderBy': [orderBy], - if (pageToken != null) 'pageToken': [pageToken], - if (returnPartialSuccess != null) - 'returnPartialSuccess': ['${returnPartialSuccess}'], + if (name != null) 'name': [name], + if (requestId != null) 'requestId': [requestId], if ($fields != null) 'fields': [$fields], }; @@ -36982,30 +38054,19 @@ class RegionOperationsResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/operations'; + '/firewallPolicies/' + + commons.escapeVariable('$firewallPolicy') + + '/removeAssociation'; final response_ = await _requester.request( url_, - 'GET', + 'POST', queryParams: queryParams_, ); - return OperationList.fromJson( - response_ as core.Map); + return Operation.fromJson(response_ as core.Map); } - /// Waits for the specified Operation resource to return as `DONE` or for the - /// request to approach the 2 minute deadline, and retrieves the specified - /// Operation resource. - /// - /// This method differs from the `GET` method in that it waits for no more - /// than the default deadline (2 minutes) and then returns the current state - /// of the operation, which might be `DONE` or still in progress. This method - /// is called on a best-effort basis. Specifically: - In uncommon cases, when - /// the server is overloaded, the request might return before the default - /// deadline is reached, or might return after zero seconds. - If the default - /// deadline is reached, there is no guarantee that the operation is actually - /// done when the method returns. Be prepared to retry if the operation is not - /// `DONE`. + /// Deletes a rule of the specified priority. /// /// Request parameters: /// @@ -37013,13 +38074,26 @@ class RegionOperationsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region for this request. + /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [operation] - Name of the Operations resource to return. + /// [firewallPolicy] - Name of the firewall policy to update. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// + /// [priority] - The priority of the rule to remove from the firewall policy. + /// + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). + /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// @@ -37030,13 +38104,17 @@ class RegionOperationsResource { /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future wait( + async.Future removeRule( core.String project, core.String region, - core.String operation, { + core.String firewallPolicy, { + core.int? priority, + core.String? requestId, core.String? $fields, }) async { final queryParams_ = >{ + if (priority != null) 'priority': ['${priority}'], + if (requestId != null) 'requestId': [requestId], if ($fields != null) 'fields': [$fields], }; @@ -37044,9 +38122,9 @@ class RegionOperationsResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/operations/' + - commons.escapeVariable('$operation') + - '/wait'; + '/firewallPolicies/' + + commons.escapeVariable('$firewallPolicy') + + '/removeRule'; final response_ = await _requester.request( url_, @@ -37055,15 +38133,10 @@ class RegionOperationsResource { ); return Operation.fromJson(response_ as core.Map); } -} - -class RegionSecurityPoliciesResource { - final commons.ApiRequester _requester; - RegionSecurityPoliciesResource(commons.ApiRequester client) - : _requester = client; - - /// Inserts a rule into a security policy. + /// Sets the access control policy on the specified resource. + /// + /// Replaces any existing policy. /// /// [request] - The metadata request object. /// @@ -37073,36 +38146,32 @@ class RegionSecurityPoliciesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region scoping this request. + /// [region] - The name of the region for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [securityPolicy] - Name of the security policy to update. + /// [resource] - Name or id of the resource for this request. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [validateOnly] - If true, the request will not be committed. - /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [Operation]. + /// Completes with a [Policy]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future addRule( - SecurityPolicyRule request, + async.Future setIamPolicy( + RegionSetPolicyRequest request, core.String project, core.String region, - core.String securityPolicy, { - core.bool? validateOnly, + core.String resource, { core.String? $fields, }) async { final body_ = convert.json.encode(request); final queryParams_ = >{ - if (validateOnly != null) 'validateOnly': ['${validateOnly}'], if ($fields != null) 'fields': [$fields], }; @@ -37110,9 +38179,9 @@ class RegionSecurityPoliciesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/securityPolicies/' + - commons.escapeVariable('$securityPolicy') + - '/addRule'; + '/firewallPolicies/' + + commons.escapeVariable('$resource') + + '/setIamPolicy'; final response_ = await _requester.request( url_, @@ -37120,10 +38189,12 @@ class RegionSecurityPoliciesResource { body: body_, queryParams: queryParams_, ); - return Operation.fromJson(response_ as core.Map); + return Policy.fromJson(response_ as core.Map); } - /// Deletes the specified policy. + /// Returns permissions that a caller has on the specified resource. + /// + /// [request] - The metadata request object. /// /// Request parameters: /// @@ -37131,43 +38202,32 @@ class RegionSecurityPoliciesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region scoping this request. + /// [region] - The name of the region for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [securityPolicy] - Name of the security policy to delete. + /// [resource] - Name or id of the resource for this request. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [requestId] - An optional request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. For example, - /// consider a situation where you make an initial request and the request - /// times out. If you make the request again with the same request ID, the - /// server can check if original operation with the same request ID was - /// received, and if so, will ignore the second request. This prevents clients - /// from accidentally creating duplicate commitments. The request ID must be a - /// valid UUID with the exception that zero UUID is not supported ( - /// 00000000-0000-0000-0000-000000000000). - /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [Operation]. + /// Completes with a [TestPermissionsResponse]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future delete( + async.Future testIamPermissions( + TestPermissionsRequest request, core.String project, core.String region, - core.String securityPolicy, { - core.String? requestId, + core.String resource, { core.String? $fields, }) async { + final body_ = convert.json.encode(request); final queryParams_ = >{ - if (requestId != null) 'requestId': [requestId], if ($fields != null) 'fields': [$fields], }; @@ -37175,18 +38235,28 @@ class RegionSecurityPoliciesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/securityPolicies/' + - commons.escapeVariable('$securityPolicy'); + '/firewallPolicies/' + + commons.escapeVariable('$resource') + + '/testIamPermissions'; final response_ = await _requester.request( url_, - 'DELETE', + 'POST', + body: body_, queryParams: queryParams_, ); - return Operation.fromJson(response_ as core.Map); + return TestPermissionsResponse.fromJson( + response_ as core.Map); } +} - /// List all of the ordered rules present in a single specified policy. +class RegionNotificationEndpointsResource { + final commons.ApiRequester _requester; + + RegionNotificationEndpointsResource(commons.ApiRequester client) + : _requester = client; + + /// Deletes the specified NotificationEndpoint in the given region /// /// Request parameters: /// @@ -37197,27 +38267,41 @@ class RegionSecurityPoliciesResource { /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [securityPolicy] - Name of the security policy to get. + /// [notificationEndpoint] - Name of the NotificationEndpoint resource to + /// delete. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). + /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [SecurityPolicy]. + /// Completes with a [Operation]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future get( + async.Future delete( core.String project, core.String region, - core.String securityPolicy, { + core.String notificationEndpoint, { + core.String? requestId, core.String? $fields, }) async { final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], if ($fields != null) 'fields': [$fields], }; @@ -37225,19 +38309,18 @@ class RegionSecurityPoliciesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/securityPolicies/' + - commons.escapeVariable('$securityPolicy'); + '/notificationEndpoints/' + + commons.escapeVariable('$notificationEndpoint'); final response_ = await _requester.request( url_, - 'GET', + 'DELETE', queryParams: queryParams_, ); - return SecurityPolicy.fromJson( - response_ as core.Map); + return Operation.fromJson(response_ as core.Map); } - /// Gets a rule at the specified priority. + /// Returns the specified NotificationEndpoint resource in the given region. /// /// Request parameters: /// @@ -37248,32 +38331,28 @@ class RegionSecurityPoliciesResource { /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [securityPolicy] - Name of the security policy to which the queried rule - /// belongs. + /// [notificationEndpoint] - Name of the NotificationEndpoint resource to + /// return. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [priority] - The priority of the rule to get from the security policy. - /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [SecurityPolicyRule]. + /// Completes with a [NotificationEndpoint]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future getRule( + async.Future get( core.String project, core.String region, - core.String securityPolicy, { - core.int? priority, + core.String notificationEndpoint, { core.String? $fields, }) async { final queryParams_ = >{ - if (priority != null) 'priority': ['${priority}'], if ($fields != null) 'fields': [$fields], }; @@ -37281,21 +38360,20 @@ class RegionSecurityPoliciesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/securityPolicies/' + - commons.escapeVariable('$securityPolicy') + - '/getRule'; + '/notificationEndpoints/' + + commons.escapeVariable('$notificationEndpoint'); final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return SecurityPolicyRule.fromJson( + return NotificationEndpoint.fromJson( response_ as core.Map); } - /// Creates a new policy in the specified project using the data included in - /// the request. + /// Create a NotificationEndpoint in the specified project in the given region + /// using the parameters that are included in the request. /// /// [request] - The metadata request object. /// @@ -37319,8 +38397,6 @@ class RegionSecurityPoliciesResource { /// valid UUID with the exception that zero UUID is not supported ( /// 00000000-0000-0000-0000-000000000000). /// - /// [validateOnly] - If true, the request will not be committed. - /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// @@ -37332,17 +38408,15 @@ class RegionSecurityPoliciesResource { /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. async.Future insert( - SecurityPolicy request, + NotificationEndpoint request, core.String project, core.String region, { core.String? requestId, - core.bool? validateOnly, core.String? $fields, }) async { final body_ = convert.json.encode(request); final queryParams_ = >{ if (requestId != null) 'requestId': [requestId], - if (validateOnly != null) 'validateOnly': ['${validateOnly}'], if ($fields != null) 'fields': [$fields], }; @@ -37350,7 +38424,7 @@ class RegionSecurityPoliciesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/securityPolicies'; + '/notificationEndpoints'; final response_ = await _requester.request( url_, @@ -37361,8 +38435,7 @@ class RegionSecurityPoliciesResource { return Operation.fromJson(response_ as core.Map); } - /// List all the policies that have been configured for the specified project - /// and region. + /// Lists the NotificationEndpoints for a project in the given region. /// /// Request parameters: /// @@ -37427,18 +38500,21 @@ class RegionSecurityPoliciesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [SecurityPolicyList]. + /// Completes with a [NotificationEndpointList]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future list( + async.Future list( core.String project, core.String region, { core.String? filter, @@ -37462,25 +38538,24 @@ class RegionSecurityPoliciesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/securityPolicies'; + '/notificationEndpoints'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return SecurityPolicyList.fromJson( + return NotificationEndpointList.fromJson( response_ as core.Map); } +} - /// Patches the specified policy with the data included in the request. - /// - /// To clear fields in the policy, leave the fields empty and specify them in - /// the updateMask. This cannot be used to be update the rules in the policy. - /// Please use the per rule methods like addRule, patchRule, and removeRule - /// instead. - /// - /// [request] - The metadata request object. +class RegionOperationsResource { + final commons.ApiRequester _requester; + + RegionOperationsResource(commons.ApiRequester client) : _requester = client; + + /// Deletes the specified region-specific Operations resource. /// /// Request parameters: /// @@ -37488,49 +38563,28 @@ class RegionSecurityPoliciesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region scoping this request. + /// [region] - Name of the region for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [securityPolicy] - Name of the security policy to update. + /// [operation] - Name of the Operations resource to delete. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [requestId] - An optional request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. For example, - /// consider a situation where you make an initial request and the request - /// times out. If you make the request again with the same request ID, the - /// server can check if original operation with the same request ID was - /// received, and if so, will ignore the second request. This prevents clients - /// from accidentally creating duplicate commitments. The request ID must be a - /// valid UUID with the exception that zero UUID is not supported ( - /// 00000000-0000-0000-0000-000000000000). - /// - /// [updateMask] - Indicates fields to be cleared as part of this request. - /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [Operation]. - /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future patch( - SecurityPolicy request, + async.Future delete( core.String project, core.String region, - core.String securityPolicy, { - core.String? requestId, - core.String? updateMask, + core.String operation, { core.String? $fields, }) async { - final body_ = convert.json.encode(request); final queryParams_ = >{ - if (requestId != null) 'requestId': [requestId], - if (updateMask != null) 'updateMask': [updateMask], if ($fields != null) 'fields': [$fields], }; @@ -37538,24 +38592,18 @@ class RegionSecurityPoliciesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/securityPolicies/' + - commons.escapeVariable('$securityPolicy'); + '/operations/' + + commons.escapeVariable('$operation'); - final response_ = await _requester.request( + await _requester.request( url_, - 'PATCH', - body: body_, + 'DELETE', queryParams: queryParams_, + downloadOptions: null, ); - return Operation.fromJson(response_ as core.Map); } - /// Patches a rule at the specified priority. - /// - /// To clear fields in the rule, leave the fields empty and specify them in - /// the updateMask. - /// - /// [request] - The metadata request object. + /// Retrieves the specified region-specific Operations resource. /// /// Request parameters: /// @@ -37563,19 +38611,13 @@ class RegionSecurityPoliciesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region scoping this request. + /// [region] - Name of the region for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [securityPolicy] - Name of the security policy to update. + /// [operation] - Name of the Operations resource to return. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [priority] - The priority of the rule to patch. - /// - /// [updateMask] - Indicates fields to be cleared as part of this request. - /// - /// [validateOnly] - If true, the request will not be committed. - /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// @@ -37586,21 +38628,13 @@ class RegionSecurityPoliciesResource { /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future patchRule( - SecurityPolicyRule request, + async.Future get( core.String project, core.String region, - core.String securityPolicy, { - core.int? priority, - core.String? updateMask, - core.bool? validateOnly, + core.String operation, { core.String? $fields, }) async { - final body_ = convert.json.encode(request); final queryParams_ = >{ - if (priority != null) 'priority': ['${priority}'], - if (updateMask != null) 'updateMask': [updateMask], - if (validateOnly != null) 'validateOnly': ['${validateOnly}'], if ($fields != null) 'fields': [$fields], }; @@ -37608,20 +38642,19 @@ class RegionSecurityPoliciesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/securityPolicies/' + - commons.escapeVariable('$securityPolicy') + - '/patchRule'; + '/operations/' + + commons.escapeVariable('$operation'); final response_ = await _requester.request( url_, - 'POST', - body: body_, + 'GET', queryParams: queryParams_, ); return Operation.fromJson(response_ as core.Map); } - /// Deletes a rule at the specified priority. + /// Retrieves a list of Operation resources contained within the specified + /// region. /// /// Request parameters: /// @@ -37629,34 +38662,94 @@ class RegionSecurityPoliciesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region scoping this request. + /// [region] - Name of the region for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [securityPolicy] - Name of the security policy to update. - /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. - /// - /// [priority] - The priority of the rule to remove from the security policy. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Operation]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// + /// [filter] - A filter expression that filters resources listed in the + /// response. Most Compute resources support two types of filter expressions: + /// expressions that support regular expressions and expressions that follow + /// API improvement proposal AIP-160. These two types of filter expressions + /// cannot be mixed in one request. If you want to use AIP-160, your + /// expression must specify the field name, an operator, and the value that + /// you want to use for filtering. The value must be a string, a number, or a + /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or + /// `:`. For example, if you are filtering Compute Engine instances, you can + /// exclude instances named `example-instance` by specifying `name != + /// example-instance`. The `:*` comparison can be used to test whether a key + /// has been defined. For example, to find all objects with `owner` label use: + /// ``` labels.owner:* ``` You can also filter nested fields. For example, you + /// could specify `scheduling.automaticRestart = false` to include instances + /// only if they are not scheduled for automatic restarts. You can use + /// filtering on nested fields to filter based on resource labels. To filter + /// on multiple expressions, provide each separate expression within + /// parentheses. For example: ``` (scheduling.automaticRestart = true) + /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an + /// `AND` expression. However, you can include `AND` and `OR` expressions + /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR + /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) + /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` + /// (not equal) operator against a single un-parenthesized expression with or + /// without quotes or against multiple parenthesized expressions. Examples: + /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` + /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) + /// (fieldname2 ne "literal")` The literal value is interpreted as a regular + /// expression using Google RE2 library syntax. The literal value must match + /// the entire field. For example, to filter for instances that do not end + /// with name "instance", you would use `name ne .*instance`. You cannot + /// combine constraints on multiple fields using regular expressions. + /// + /// [maxResults] - The maximum number of results per page that should be + /// returned. If the number of available results is larger than `maxResults`, + /// Compute Engine returns a `nextPageToken` that can be used to get the next + /// page of results in subsequent list requests. Acceptable values are `0` to + /// `500`, inclusive. (Default: `500`) + /// + /// [orderBy] - Sorts list results by a certain order. By default, results are + /// returned in alphanumerical order based on the resource name. You can also + /// sort results in descending order based on the creation timestamp using + /// `orderBy="creationTimestamp desc"`. This sorts results based on the + /// `creationTimestamp` field in reverse chronological order (newest result + /// first). Use this to sort resources like operations so that the newest + /// operation is returned first. Currently, only sorting by `name` or + /// `creationTimestamp desc` is supported. + /// + /// [pageToken] - Specifies a page token to use. Set `pageToken` to the + /// `nextPageToken` returned by a previous list request to get the next page + /// of results. + /// + /// [returnPartialSuccess] - Opt-in for partial success behavior which + /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [OperationList]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future removeRule( + async.Future list( core.String project, - core.String region, - core.String securityPolicy, { - core.int? priority, + core.String region, { + core.String? filter, + core.int? maxResults, + core.String? orderBy, + core.String? pageToken, + core.bool? returnPartialSuccess, core.String? $fields, }) async { final queryParams_ = >{ - if (priority != null) 'priority': ['${priority}'], + if (filter != null) 'filter': [filter], + if (maxResults != null) 'maxResults': ['${maxResults}'], + if (orderBy != null) 'orderBy': [orderBy], + if (pageToken != null) 'pageToken': [pageToken], + if (returnPartialSuccess != null) + 'returnPartialSuccess': ['${returnPartialSuccess}'], if ($fields != null) 'fields': [$fields], }; @@ -37664,26 +38757,30 @@ class RegionSecurityPoliciesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/securityPolicies/' + - commons.escapeVariable('$securityPolicy') + - '/removeRule'; + '/operations'; final response_ = await _requester.request( url_, - 'POST', + 'GET', queryParams: queryParams_, ); - return Operation.fromJson(response_ as core.Map); + return OperationList.fromJson( + response_ as core.Map); } -} - -class RegionSslCertificatesResource { - final commons.ApiRequester _requester; - - RegionSslCertificatesResource(commons.ApiRequester client) - : _requester = client; - /// Deletes the specified SslCertificate resource in the region. + /// Waits for the specified Operation resource to return as `DONE` or for the + /// request to approach the 2 minute deadline, and retrieves the specified + /// Operation resource. + /// + /// This method differs from the `GET` method in that it waits for no more + /// than the default deadline (2 minutes) and then returns the current state + /// of the operation, which might be `DONE` or still in progress. This method + /// is called on a best-effort basis. Specifically: - In uncommon cases, when + /// the server is overloaded, the request might return before the default + /// deadline is reached, or might return after zero seconds. - If the default + /// deadline is reached, there is no guarantee that the operation is actually + /// done when the method returns. Be prepared to retry if the operation is not + /// `DONE`. /// /// Request parameters: /// @@ -37691,24 +38788,13 @@ class RegionSslCertificatesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region scoping this request. + /// [region] - Name of the region for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [sslCertificate] - Name of the SslCertificate resource to delete. + /// [operation] - Name of the Operations resource to return. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [requestId] - An optional request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. For example, - /// consider a situation where you make an initial request and the request - /// times out. If you make the request again with the same request ID, the - /// server can check if original operation with the same request ID was - /// received, and if so, will ignore the second request. This prevents clients - /// from accidentally creating duplicate commitments. The request ID must be a - /// valid UUID with the exception that zero UUID is not supported ( - /// 00000000-0000-0000-0000-000000000000). - /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// @@ -37719,15 +38805,13 @@ class RegionSslCertificatesResource { /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future delete( + async.Future wait( core.String project, core.String region, - core.String sslCertificate, { - core.String? requestId, + core.String operation, { core.String? $fields, }) async { final queryParams_ = >{ - if (requestId != null) 'requestId': [requestId], if ($fields != null) 'fields': [$fields], }; @@ -37735,20 +38819,28 @@ class RegionSslCertificatesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/sslCertificates/' + - commons.escapeVariable('$sslCertificate'); + '/operations/' + + commons.escapeVariable('$operation') + + '/wait'; final response_ = await _requester.request( url_, - 'DELETE', + 'POST', queryParams: queryParams_, ); return Operation.fromJson(response_ as core.Map); } +} - /// Returns the specified SslCertificate resource in the specified region. +class RegionSecurityPoliciesResource { + final commons.ApiRequester _requester; + + RegionSecurityPoliciesResource(commons.ApiRequester client) + : _requester = client; + + /// Inserts a rule into a security policy. /// - /// Get a list of available SSL certificates by making a list() request. + /// [request] - The metadata request object. /// /// Request parameters: /// @@ -37759,27 +38851,33 @@ class RegionSslCertificatesResource { /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [sslCertificate] - Name of the SslCertificate resource to return. + /// [securityPolicy] - Name of the security policy to update. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// + /// [validateOnly] - If true, the request will not be committed. + /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [SslCertificate]. + /// Completes with a [Operation]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future get( + async.Future addRule( + SecurityPolicyRule request, core.String project, core.String region, - core.String sslCertificate, { + core.String securityPolicy, { + core.bool? validateOnly, core.String? $fields, }) async { + final body_ = convert.json.encode(request); final queryParams_ = >{ + if (validateOnly != null) 'validateOnly': ['${validateOnly}'], if ($fields != null) 'fields': [$fields], }; @@ -37787,22 +38885,20 @@ class RegionSslCertificatesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/sslCertificates/' + - commons.escapeVariable('$sslCertificate'); + '/securityPolicies/' + + commons.escapeVariable('$securityPolicy') + + '/addRule'; final response_ = await _requester.request( url_, - 'GET', + 'POST', + body: body_, queryParams: queryParams_, ); - return SslCertificate.fromJson( - response_ as core.Map); + return Operation.fromJson(response_ as core.Map); } - /// Creates a SslCertificate resource in the specified project and region - /// using the data included in the request - /// - /// [request] - The metadata request object. + /// Deletes the specified policy. /// /// Request parameters: /// @@ -37813,6 +38909,10 @@ class RegionSslCertificatesResource { /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// + /// [securityPolicy] - Name of the security policy to delete. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// /// [requestId] - An optional request ID to identify requests. Specify a /// unique request ID so that if you must retry your request, the server will /// know to ignore the request if it has already been completed. For example, @@ -37834,14 +38934,13 @@ class RegionSslCertificatesResource { /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future insert( - SslCertificate request, + async.Future delete( core.String project, - core.String region, { + core.String region, + core.String securityPolicy, { core.String? requestId, core.String? $fields, }) async { - final body_ = convert.json.encode(request); final queryParams_ = >{ if (requestId != null) 'requestId': [requestId], if ($fields != null) 'fields': [$fields], @@ -37851,19 +38950,18 @@ class RegionSslCertificatesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/sslCertificates'; + '/securityPolicies/' + + commons.escapeVariable('$securityPolicy'); final response_ = await _requester.request( url_, - 'POST', - body: body_, + 'DELETE', queryParams: queryParams_, ); return Operation.fromJson(response_ as core.Map); } - /// Retrieves the list of SslCertificate resources available to the specified - /// project in the specified region. + /// List all of the ordered rules present in a single specified policy. /// /// Request parameters: /// @@ -37874,88 +38972,27 @@ class RegionSslCertificatesResource { /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [filter] - A filter expression that filters resources listed in the - /// response. Most Compute resources support two types of filter expressions: - /// expressions that support regular expressions and expressions that follow - /// API improvement proposal AIP-160. These two types of filter expressions - /// cannot be mixed in one request. If you want to use AIP-160, your - /// expression must specify the field name, an operator, and the value that - /// you want to use for filtering. The value must be a string, a number, or a - /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or - /// `:`. For example, if you are filtering Compute Engine instances, you can - /// exclude instances named `example-instance` by specifying `name != - /// example-instance`. The `:*` comparison can be used to test whether a key - /// has been defined. For example, to find all objects with `owner` label use: - /// ``` labels.owner:* ``` You can also filter nested fields. For example, you - /// could specify `scheduling.automaticRestart = false` to include instances - /// only if they are not scheduled for automatic restarts. You can use - /// filtering on nested fields to filter based on resource labels. To filter - /// on multiple expressions, provide each separate expression within - /// parentheses. For example: ``` (scheduling.automaticRestart = true) - /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an - /// `AND` expression. However, you can include `AND` and `OR` expressions - /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR - /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) - /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` - /// (not equal) operator against a single un-parenthesized expression with or - /// without quotes or against multiple parenthesized expressions. Examples: - /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` - /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) - /// (fieldname2 ne "literal")` The literal value is interpreted as a regular - /// expression using Google RE2 library syntax. The literal value must match - /// the entire field. For example, to filter for instances that do not end - /// with name "instance", you would use `name ne .*instance`. You cannot - /// combine constraints on multiple fields using regular expressions. - /// - /// [maxResults] - The maximum number of results per page that should be - /// returned. If the number of available results is larger than `maxResults`, - /// Compute Engine returns a `nextPageToken` that can be used to get the next - /// page of results in subsequent list requests. Acceptable values are `0` to - /// `500`, inclusive. (Default: `500`) - /// - /// [orderBy] - Sorts list results by a certain order. By default, results are - /// returned in alphanumerical order based on the resource name. You can also - /// sort results in descending order based on the creation timestamp using - /// `orderBy="creationTimestamp desc"`. This sorts results based on the - /// `creationTimestamp` field in reverse chronological order (newest result - /// first). Use this to sort resources like operations so that the newest - /// operation is returned first. Currently, only sorting by `name` or - /// `creationTimestamp desc` is supported. - /// - /// [pageToken] - Specifies a page token to use. Set `pageToken` to the - /// `nextPageToken` returned by a previous list request to get the next page - /// of results. - /// - /// [returnPartialSuccess] - Opt-in for partial success behavior which - /// provides partial results in case of failure. The default value is false. + /// [securityPolicy] - Name of the security policy to get. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [SslCertificateList]. + /// Completes with a [SecurityPolicy]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future list( + async.Future get( core.String project, - core.String region, { - core.String? filter, - core.int? maxResults, - core.String? orderBy, - core.String? pageToken, - core.bool? returnPartialSuccess, + core.String region, + core.String securityPolicy, { core.String? $fields, }) async { final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (maxResults != null) 'maxResults': ['${maxResults}'], - if (orderBy != null) 'orderBy': [orderBy], - if (pageToken != null) 'pageToken': [pageToken], - if (returnPartialSuccess != null) - 'returnPartialSuccess': ['${returnPartialSuccess}'], if ($fields != null) 'fields': [$fields], }; @@ -37963,27 +39000,19 @@ class RegionSslCertificatesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/sslCertificates'; + '/securityPolicies/' + + commons.escapeVariable('$securityPolicy'); final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return SslCertificateList.fromJson( + return SecurityPolicy.fromJson( response_ as core.Map); } -} - -class RegionSslPoliciesResource { - final commons.ApiRequester _requester; - RegionSslPoliciesResource(commons.ApiRequester client) : _requester = client; - - /// Deletes the specified SSL policy. - /// - /// The SSL policy resource can be deleted only if it is not in use by any - /// TargetHttpsProxy or TargetSslProxy resources. + /// Gets a rule at the specified priority. /// /// Request parameters: /// @@ -37994,88 +39023,32 @@ class RegionSslPoliciesResource { /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [sslPolicy] - Name of the SSL policy to delete. The name must be 1-63 - /// characters long, and comply with RFC1035. - /// - /// [requestId] - An optional request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. For example, - /// consider a situation where you make an initial request and the request - /// times out. If you make the request again with the same request ID, the - /// server can check if original operation with the same request ID was - /// received, and if so, will ignore the second request. This prevents clients - /// from accidentally creating duplicate commitments. The request ID must be a - /// valid UUID with the exception that zero UUID is not supported ( - /// 00000000-0000-0000-0000-000000000000). - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Operation]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future delete( - core.String project, - core.String region, - core.String sslPolicy, { - core.String? requestId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (requestId != null) 'requestId': [requestId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'projects/' + - commons.escapeVariable('$project') + - '/regions/' + - commons.escapeVariable('$region') + - '/sslPolicies/' + - commons.escapeVariable('$sslPolicy'); - - final response_ = await _requester.request( - url_, - 'DELETE', - queryParams: queryParams_, - ); - return Operation.fromJson(response_ as core.Map); - } - - /// Lists all of the ordered rules present in a single specified policy. - /// - /// Request parameters: - /// - /// [project] - Project ID for this request. + /// [securityPolicy] - Name of the security policy to which the queried rule + /// belongs. /// Value must have pattern - /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. - /// - /// [region] - Name of the region scoping this request. - /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [sslPolicy] - Name of the SSL policy to update. The name must be 1-63 - /// characters long, and comply with RFC1035. + /// [priority] - The priority of the rule to get from the security policy. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [SslPolicy]. + /// Completes with a [SecurityPolicyRule]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future get( + async.Future getRule( core.String project, core.String region, - core.String sslPolicy, { + core.String securityPolicy, { + core.int? priority, core.String? $fields, }) async { final queryParams_ = >{ + if (priority != null) 'priority': ['${priority}'], if ($fields != null) 'fields': [$fields], }; @@ -38083,19 +39056,21 @@ class RegionSslPoliciesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/sslPolicies/' + - commons.escapeVariable('$sslPolicy'); + '/securityPolicies/' + + commons.escapeVariable('$securityPolicy') + + '/getRule'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return SslPolicy.fromJson(response_ as core.Map); + return SecurityPolicyRule.fromJson( + response_ as core.Map); } - /// Creates a new policy in the specified project and region using the data - /// included in the request. + /// Creates a new policy in the specified project using the data included in + /// the request. /// /// [request] - The metadata request object. /// @@ -38119,6 +39094,8 @@ class RegionSslPoliciesResource { /// valid UUID with the exception that zero UUID is not supported ( /// 00000000-0000-0000-0000-000000000000). /// + /// [validateOnly] - If true, the request will not be committed. + /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// @@ -38130,15 +39107,17 @@ class RegionSslPoliciesResource { /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. async.Future insert( - SslPolicy request, + SecurityPolicy request, core.String project, core.String region, { core.String? requestId, + core.bool? validateOnly, core.String? $fields, }) async { final body_ = convert.json.encode(request); final queryParams_ = >{ if (requestId != null) 'requestId': [requestId], + if (validateOnly != null) 'validateOnly': ['${validateOnly}'], if ($fields != null) 'fields': [$fields], }; @@ -38146,7 +39125,7 @@ class RegionSslPoliciesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/sslPolicies'; + '/securityPolicies'; final response_ = await _requester.request( url_, @@ -38157,8 +39136,8 @@ class RegionSslPoliciesResource { return Operation.fromJson(response_ as core.Map); } - /// Lists all the SSL policies that have been configured for the specified - /// project and region. + /// List all the policies that have been configured for the specified project + /// and region. /// /// Request parameters: /// @@ -38223,18 +39202,21 @@ class RegionSslPoliciesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [SslPoliciesList]. + /// Completes with a [SecurityPolicyList]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future list( + async.Future list( core.String project, core.String region, { core.String? filter, @@ -38258,19 +39240,25 @@ class RegionSslPoliciesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/sslPolicies'; + '/securityPolicies'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return SslPoliciesList.fromJson( + return SecurityPolicyList.fromJson( response_ as core.Map); } - /// Lists all features that can be specified in the SSL policy when using - /// custom profile. + /// Patches the specified policy with the data included in the request. + /// + /// To clear fields in the policy, leave the fields empty and specify them in + /// the updateMask. This cannot be used to be update the rules in the policy. + /// Please use the per rule methods like addRule, patchRule, and removeRule + /// instead. + /// + /// [request] - The metadata request object. /// /// Request parameters: /// @@ -38281,88 +39269,46 @@ class RegionSslPoliciesResource { /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [filter] - A filter expression that filters resources listed in the - /// response. Most Compute resources support two types of filter expressions: - /// expressions that support regular expressions and expressions that follow - /// API improvement proposal AIP-160. These two types of filter expressions - /// cannot be mixed in one request. If you want to use AIP-160, your - /// expression must specify the field name, an operator, and the value that - /// you want to use for filtering. The value must be a string, a number, or a - /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or - /// `:`. For example, if you are filtering Compute Engine instances, you can - /// exclude instances named `example-instance` by specifying `name != - /// example-instance`. The `:*` comparison can be used to test whether a key - /// has been defined. For example, to find all objects with `owner` label use: - /// ``` labels.owner:* ``` You can also filter nested fields. For example, you - /// could specify `scheduling.automaticRestart = false` to include instances - /// only if they are not scheduled for automatic restarts. You can use - /// filtering on nested fields to filter based on resource labels. To filter - /// on multiple expressions, provide each separate expression within - /// parentheses. For example: ``` (scheduling.automaticRestart = true) - /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an - /// `AND` expression. However, you can include `AND` and `OR` expressions - /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR - /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) - /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` - /// (not equal) operator against a single un-parenthesized expression with or - /// without quotes or against multiple parenthesized expressions. Examples: - /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` - /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) - /// (fieldname2 ne "literal")` The literal value is interpreted as a regular - /// expression using Google RE2 library syntax. The literal value must match - /// the entire field. For example, to filter for instances that do not end - /// with name "instance", you would use `name ne .*instance`. You cannot - /// combine constraints on multiple fields using regular expressions. - /// - /// [maxResults] - The maximum number of results per page that should be - /// returned. If the number of available results is larger than `maxResults`, - /// Compute Engine returns a `nextPageToken` that can be used to get the next - /// page of results in subsequent list requests. Acceptable values are `0` to - /// `500`, inclusive. (Default: `500`) - /// - /// [orderBy] - Sorts list results by a certain order. By default, results are - /// returned in alphanumerical order based on the resource name. You can also - /// sort results in descending order based on the creation timestamp using - /// `orderBy="creationTimestamp desc"`. This sorts results based on the - /// `creationTimestamp` field in reverse chronological order (newest result - /// first). Use this to sort resources like operations so that the newest - /// operation is returned first. Currently, only sorting by `name` or - /// `creationTimestamp desc` is supported. + /// [securityPolicy] - Name of the security policy to update. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [pageToken] - Specifies a page token to use. Set `pageToken` to the - /// `nextPageToken` returned by a previous list request to get the next page - /// of results. + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). /// - /// [returnPartialSuccess] - Opt-in for partial success behavior which - /// provides partial results in case of failure. The default value is false. + /// [updateMask] - Indicates fields to be cleared as part of this request. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [SslPoliciesListAvailableFeaturesResponse]. + /// Completes with a [Operation]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future listAvailableFeatures( + async.Future patch( + SecurityPolicy request, core.String project, - core.String region, { - core.String? filter, - core.int? maxResults, - core.String? orderBy, - core.String? pageToken, - core.bool? returnPartialSuccess, + core.String region, + core.String securityPolicy, { + core.String? requestId, + core.String? updateMask, core.String? $fields, }) async { + final body_ = convert.json.encode(request); final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (maxResults != null) 'maxResults': ['${maxResults}'], - if (orderBy != null) 'orderBy': [orderBy], - if (pageToken != null) 'pageToken': [pageToken], - if (returnPartialSuccess != null) - 'returnPartialSuccess': ['${returnPartialSuccess}'], + if (requestId != null) 'requestId': [requestId], + if (updateMask != null) 'updateMask': [updateMask], if ($fields != null) 'fields': [$fields], }; @@ -38370,18 +39316,22 @@ class RegionSslPoliciesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/sslPolicies/listAvailableFeatures'; + '/securityPolicies/' + + commons.escapeVariable('$securityPolicy'); final response_ = await _requester.request( url_, - 'GET', + 'PATCH', + body: body_, queryParams: queryParams_, ); - return SslPoliciesListAvailableFeaturesResponse.fromJson( - response_ as core.Map); + return Operation.fromJson(response_ as core.Map); } - /// Patches the specified SSL policy with the data included in the request. + /// Patches a rule at the specified priority. + /// + /// To clear fields in the rule, leave the fields empty and specify them in + /// the updateMask. /// /// [request] - The metadata request object. /// @@ -38394,19 +39344,15 @@ class RegionSslPoliciesResource { /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [sslPolicy] - Name of the SSL policy to update. The name must be 1-63 - /// characters long, and comply with RFC1035. + /// [securityPolicy] - Name of the security policy to update. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [requestId] - An optional request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. For example, - /// consider a situation where you make an initial request and the request - /// times out. If you make the request again with the same request ID, the - /// server can check if original operation with the same request ID was - /// received, and if so, will ignore the second request. This prevents clients - /// from accidentally creating duplicate commitments. The request ID must be a - /// valid UUID with the exception that zero UUID is not supported ( - /// 00000000-0000-0000-0000-000000000000). + /// [priority] - The priority of the rule to patch. + /// + /// [updateMask] - Indicates fields to be cleared as part of this request. + /// + /// [validateOnly] - If true, the request will not be committed. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -38418,17 +39364,21 @@ class RegionSslPoliciesResource { /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future patch( - SslPolicy request, + async.Future patchRule( + SecurityPolicyRule request, core.String project, core.String region, - core.String sslPolicy, { - core.String? requestId, + core.String securityPolicy, { + core.int? priority, + core.String? updateMask, + core.bool? validateOnly, core.String? $fields, }) async { final body_ = convert.json.encode(request); final queryParams_ = >{ - if (requestId != null) 'requestId': [requestId], + if (priority != null) 'priority': ['${priority}'], + if (updateMask != null) 'updateMask': [updateMask], + if (validateOnly != null) 'validateOnly': ['${validateOnly}'], if ($fields != null) 'fields': [$fields], }; @@ -38436,26 +39386,82 @@ class RegionSslPoliciesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/sslPolicies/' + - commons.escapeVariable('$sslPolicy'); + '/securityPolicies/' + + commons.escapeVariable('$securityPolicy') + + '/patchRule'; final response_ = await _requester.request( url_, - 'PATCH', + 'POST', body: body_, queryParams: queryParams_, ); return Operation.fromJson(response_ as core.Map); } + + /// Deletes a rule at the specified priority. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [region] - Name of the region scoping this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// + /// [securityPolicy] - Name of the security policy to update. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// + /// [priority] - The priority of the rule to remove from the security policy. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future removeRule( + core.String project, + core.String region, + core.String securityPolicy, { + core.int? priority, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (priority != null) 'priority': ['${priority}'], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/regions/' + + commons.escapeVariable('$region') + + '/securityPolicies/' + + commons.escapeVariable('$securityPolicy') + + '/removeRule'; + + final response_ = await _requester.request( + url_, + 'POST', + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } } -class RegionTargetHttpProxiesResource { +class RegionSslCertificatesResource { final commons.ApiRequester _requester; - RegionTargetHttpProxiesResource(commons.ApiRequester client) + RegionSslCertificatesResource(commons.ApiRequester client) : _requester = client; - /// Deletes the specified TargetHttpProxy resource. + /// Deletes the specified SslCertificate resource in the region. /// /// Request parameters: /// @@ -38466,7 +39472,7 @@ class RegionTargetHttpProxiesResource { /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [targetHttpProxy] - Name of the TargetHttpProxy resource to delete. + /// [sslCertificate] - Name of the SslCertificate resource to delete. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// @@ -38494,7 +39500,7 @@ class RegionTargetHttpProxiesResource { async.Future delete( core.String project, core.String region, - core.String targetHttpProxy, { + core.String sslCertificate, { core.String? requestId, core.String? $fields, }) async { @@ -38507,8 +39513,8 @@ class RegionTargetHttpProxiesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/targetHttpProxies/' + - commons.escapeVariable('$targetHttpProxy'); + '/sslCertificates/' + + commons.escapeVariable('$sslCertificate'); final response_ = await _requester.request( url_, @@ -38518,7 +39524,9 @@ class RegionTargetHttpProxiesResource { return Operation.fromJson(response_ as core.Map); } - /// Returns the specified TargetHttpProxy resource in the specified region. + /// Returns the specified SslCertificate resource in the specified region. + /// + /// Get a list of available SSL certificates by making a list() request. /// /// Request parameters: /// @@ -38529,24 +39537,24 @@ class RegionTargetHttpProxiesResource { /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [targetHttpProxy] - Name of the TargetHttpProxy resource to return. + /// [sslCertificate] - Name of the SslCertificate resource to return. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [TargetHttpProxy]. + /// Completes with a [SslCertificate]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future get( + async.Future get( core.String project, core.String region, - core.String targetHttpProxy, { + core.String sslCertificate, { core.String? $fields, }) async { final queryParams_ = >{ @@ -38557,20 +39565,20 @@ class RegionTargetHttpProxiesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/targetHttpProxies/' + - commons.escapeVariable('$targetHttpProxy'); + '/sslCertificates/' + + commons.escapeVariable('$sslCertificate'); final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return TargetHttpProxy.fromJson( + return SslCertificate.fromJson( response_ as core.Map); } - /// Creates a TargetHttpProxy resource in the specified project and region - /// using the data included in the request. + /// Creates a SslCertificate resource in the specified project and region + /// using the data included in the request /// /// [request] - The metadata request object. /// @@ -38605,7 +39613,7 @@ class RegionTargetHttpProxiesResource { /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. async.Future insert( - TargetHttpProxy request, + SslCertificate request, core.String project, core.String region, { core.String? requestId, @@ -38621,7 +39629,7 @@ class RegionTargetHttpProxiesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/targetHttpProxies'; + '/sslCertificates'; final response_ = await _requester.request( url_, @@ -38632,7 +39640,7 @@ class RegionTargetHttpProxiesResource { return Operation.fromJson(response_ as core.Map); } - /// Retrieves the list of TargetHttpProxy resources available to the specified + /// Retrieves the list of SslCertificate resources available to the specified /// project in the specified region. /// /// Request parameters: @@ -38698,18 +39706,21 @@ class RegionTargetHttpProxiesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [TargetHttpProxyList]. + /// Completes with a [SslCertificateList]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future list( + async.Future list( core.String project, core.String region, { core.String? filter, @@ -38733,94 +39744,27 @@ class RegionTargetHttpProxiesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/targetHttpProxies'; + '/sslCertificates'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return TargetHttpProxyList.fromJson( + return SslCertificateList.fromJson( response_ as core.Map); } - - /// Changes the URL map for TargetHttpProxy. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [project] - Project ID for this request. - /// Value must have pattern - /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. - /// - /// [region] - Name of the region scoping this request. - /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. - /// - /// [targetHttpProxy] - Name of the TargetHttpProxy to set a URL map for. - /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. - /// - /// [requestId] - An optional request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. For example, - /// consider a situation where you make an initial request and the request - /// times out. If you make the request again with the same request ID, the - /// server can check if original operation with the same request ID was - /// received, and if so, will ignore the second request. This prevents clients - /// from accidentally creating duplicate commitments. The request ID must be a - /// valid UUID with the exception that zero UUID is not supported ( - /// 00000000-0000-0000-0000-000000000000). - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Operation]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future setUrlMap( - UrlMapReference request, - core.String project, - core.String region, - core.String targetHttpProxy, { - core.String? requestId, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (requestId != null) 'requestId': [requestId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'projects/' + - commons.escapeVariable('$project') + - '/regions/' + - commons.escapeVariable('$region') + - '/targetHttpProxies/' + - commons.escapeVariable('$targetHttpProxy') + - '/setUrlMap'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return Operation.fromJson(response_ as core.Map); - } } -class RegionTargetHttpsProxiesResource { +class RegionSslPoliciesResource { final commons.ApiRequester _requester; - RegionTargetHttpsProxiesResource(commons.ApiRequester client) - : _requester = client; + RegionSslPoliciesResource(commons.ApiRequester client) : _requester = client; - /// Deletes the specified TargetHttpsProxy resource. + /// Deletes the specified SSL policy. + /// + /// The SSL policy resource can be deleted only if it is not in use by any + /// TargetHttpsProxy or TargetSslProxy resources. /// /// Request parameters: /// @@ -38831,9 +39775,8 @@ class RegionTargetHttpsProxiesResource { /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [targetHttpsProxy] - Name of the TargetHttpsProxy resource to delete. - /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// [sslPolicy] - Name of the SSL policy to delete. The name must be 1-63 + /// characters long, and comply with RFC1035. /// /// [requestId] - An optional request ID to identify requests. Specify a /// unique request ID so that if you must retry your request, the server will @@ -38859,7 +39802,7 @@ class RegionTargetHttpsProxiesResource { async.Future delete( core.String project, core.String region, - core.String targetHttpsProxy, { + core.String sslPolicy, { core.String? requestId, core.String? $fields, }) async { @@ -38872,8 +39815,8 @@ class RegionTargetHttpsProxiesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/targetHttpsProxies/' + - commons.escapeVariable('$targetHttpsProxy'); + '/sslPolicies/' + + commons.escapeVariable('$sslPolicy'); final response_ = await _requester.request( url_, @@ -38883,7 +39826,7 @@ class RegionTargetHttpsProxiesResource { return Operation.fromJson(response_ as core.Map); } - /// Returns the specified TargetHttpsProxy resource in the specified region. + /// Lists all of the ordered rules present in a single specified policy. /// /// Request parameters: /// @@ -38894,24 +39837,23 @@ class RegionTargetHttpsProxiesResource { /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [targetHttpsProxy] - Name of the TargetHttpsProxy resource to return. - /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// [sslPolicy] - Name of the SSL policy to update. The name must be 1-63 + /// characters long, and comply with RFC1035. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [TargetHttpsProxy]. + /// Completes with a [SslPolicy]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future get( + async.Future get( core.String project, core.String region, - core.String targetHttpsProxy, { + core.String sslPolicy, { core.String? $fields, }) async { final queryParams_ = >{ @@ -38922,20 +39864,19 @@ class RegionTargetHttpsProxiesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/targetHttpsProxies/' + - commons.escapeVariable('$targetHttpsProxy'); + '/sslPolicies/' + + commons.escapeVariable('$sslPolicy'); final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return TargetHttpsProxy.fromJson( - response_ as core.Map); + return SslPolicy.fromJson(response_ as core.Map); } - /// Creates a TargetHttpsProxy resource in the specified project and region - /// using the data included in the request. + /// Creates a new policy in the specified project and region using the data + /// included in the request. /// /// [request] - The metadata request object. /// @@ -38970,7 +39911,7 @@ class RegionTargetHttpsProxiesResource { /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. async.Future insert( - TargetHttpsProxy request, + SslPolicy request, core.String project, core.String region, { core.String? requestId, @@ -38986,7 +39927,7 @@ class RegionTargetHttpsProxiesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/targetHttpsProxies'; + '/sslPolicies'; final response_ = await _requester.request( url_, @@ -38997,8 +39938,8 @@ class RegionTargetHttpsProxiesResource { return Operation.fromJson(response_ as core.Map); } - /// Retrieves the list of TargetHttpsProxy resources available to the - /// specified project in the specified region. + /// Lists all the SSL policies that have been configured for the specified + /// project and region. /// /// Request parameters: /// @@ -39063,18 +40004,21 @@ class RegionTargetHttpsProxiesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [TargetHttpsProxyList]. + /// Completes with a [SslPoliciesList]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future list( + async.Future list( core.String project, core.String region, { core.String? filter, @@ -39098,24 +40042,19 @@ class RegionTargetHttpsProxiesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/targetHttpsProxies'; + '/sslPolicies'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return TargetHttpsProxyList.fromJson( + return SslPoliciesList.fromJson( response_ as core.Map); } - /// Patches the specified regional TargetHttpsProxy resource with the data - /// included in the request. - /// - /// This method supports PATCH semantics and uses JSON merge patch format and - /// processing rules. - /// - /// [request] - The metadata request object. + /// Lists all features that can be specified in the SSL policy when using + /// custom profile. /// /// Request parameters: /// @@ -39123,114 +40062,94 @@ class RegionTargetHttpsProxiesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region for this request. + /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [targetHttpsProxy] - Name of the TargetHttpsProxy resource to patch. - /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. - /// - /// [requestId] - An optional request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. For example, - /// consider a situation where you make an initial request and the request - /// times out. If you make the request again with the same request ID, the - /// server can check if original operation with the same request ID was - /// received, and if so, will ignore the second request. This prevents clients - /// from accidentally creating duplicate commitments. The request ID must be a - /// valid UUID with the exception that zero UUID is not supported ( - /// 00000000-0000-0000-0000-000000000000). - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Operation]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future patch( - TargetHttpsProxy request, - core.String project, - core.String region, - core.String targetHttpsProxy, { - core.String? requestId, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (requestId != null) 'requestId': [requestId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'projects/' + - commons.escapeVariable('$project') + - '/regions/' + - commons.escapeVariable('$region') + - '/targetHttpsProxies/' + - commons.escapeVariable('$targetHttpsProxy'); - - final response_ = await _requester.request( - url_, - 'PATCH', - body: body_, - queryParams: queryParams_, - ); - return Operation.fromJson(response_ as core.Map); - } - - /// Replaces SslCertificates for TargetHttpsProxy. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: + /// [filter] - A filter expression that filters resources listed in the + /// response. Most Compute resources support two types of filter expressions: + /// expressions that support regular expressions and expressions that follow + /// API improvement proposal AIP-160. These two types of filter expressions + /// cannot be mixed in one request. If you want to use AIP-160, your + /// expression must specify the field name, an operator, and the value that + /// you want to use for filtering. The value must be a string, a number, or a + /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or + /// `:`. For example, if you are filtering Compute Engine instances, you can + /// exclude instances named `example-instance` by specifying `name != + /// example-instance`. The `:*` comparison can be used to test whether a key + /// has been defined. For example, to find all objects with `owner` label use: + /// ``` labels.owner:* ``` You can also filter nested fields. For example, you + /// could specify `scheduling.automaticRestart = false` to include instances + /// only if they are not scheduled for automatic restarts. You can use + /// filtering on nested fields to filter based on resource labels. To filter + /// on multiple expressions, provide each separate expression within + /// parentheses. For example: ``` (scheduling.automaticRestart = true) + /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an + /// `AND` expression. However, you can include `AND` and `OR` expressions + /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR + /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) + /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` + /// (not equal) operator against a single un-parenthesized expression with or + /// without quotes or against multiple parenthesized expressions. Examples: + /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` + /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) + /// (fieldname2 ne "literal")` The literal value is interpreted as a regular + /// expression using Google RE2 library syntax. The literal value must match + /// the entire field. For example, to filter for instances that do not end + /// with name "instance", you would use `name ne .*instance`. You cannot + /// combine constraints on multiple fields using regular expressions. /// - /// [project] - Project ID for this request. - /// Value must have pattern - /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// [maxResults] - The maximum number of results per page that should be + /// returned. If the number of available results is larger than `maxResults`, + /// Compute Engine returns a `nextPageToken` that can be used to get the next + /// page of results in subsequent list requests. Acceptable values are `0` to + /// `500`, inclusive. (Default: `500`) /// - /// [region] - Name of the region scoping this request. - /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// [orderBy] - Sorts list results by a certain order. By default, results are + /// returned in alphanumerical order based on the resource name. You can also + /// sort results in descending order based on the creation timestamp using + /// `orderBy="creationTimestamp desc"`. This sorts results based on the + /// `creationTimestamp` field in reverse chronological order (newest result + /// first). Use this to sort resources like operations so that the newest + /// operation is returned first. Currently, only sorting by `name` or + /// `creationTimestamp desc` is supported. /// - /// [targetHttpsProxy] - Name of the TargetHttpsProxy resource to set an - /// SslCertificates resource for. - /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// [pageToken] - Specifies a page token to use. Set `pageToken` to the + /// `nextPageToken` returned by a previous list request to get the next page + /// of results. /// - /// [requestId] - An optional request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. For example, - /// consider a situation where you make an initial request and the request - /// times out. If you make the request again with the same request ID, the - /// server can check if original operation with the same request ID was - /// received, and if so, will ignore the second request. This prevents clients - /// from accidentally creating duplicate commitments. The request ID must be a - /// valid UUID with the exception that zero UUID is not supported ( - /// 00000000-0000-0000-0000-000000000000). + /// [returnPartialSuccess] - Opt-in for partial success behavior which + /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [Operation]. + /// Completes with a [SslPoliciesListAvailableFeaturesResponse]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future setSslCertificates( - RegionTargetHttpsProxiesSetSslCertificatesRequest request, + async.Future listAvailableFeatures( core.String project, - core.String region, - core.String targetHttpsProxy, { - core.String? requestId, + core.String region, { + core.String? filter, + core.int? maxResults, + core.String? orderBy, + core.String? pageToken, + core.bool? returnPartialSuccess, core.String? $fields, }) async { - final body_ = convert.json.encode(request); final queryParams_ = >{ - if (requestId != null) 'requestId': [requestId], + if (filter != null) 'filter': [filter], + if (maxResults != null) 'maxResults': ['${maxResults}'], + if (orderBy != null) 'orderBy': [orderBy], + if (pageToken != null) 'pageToken': [pageToken], + if (returnPartialSuccess != null) + 'returnPartialSuccess': ['${returnPartialSuccess}'], if ($fields != null) 'fields': [$fields], }; @@ -39238,20 +40157,18 @@ class RegionTargetHttpsProxiesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/targetHttpsProxies/' + - commons.escapeVariable('$targetHttpsProxy') + - '/setSslCertificates'; + '/sslPolicies/listAvailableFeatures'; final response_ = await _requester.request( url_, - 'POST', - body: body_, + 'GET', queryParams: queryParams_, ); - return Operation.fromJson(response_ as core.Map); + return SslPoliciesListAvailableFeaturesResponse.fromJson( + response_ as core.Map); } - /// Changes the URL map for TargetHttpsProxy. + /// Patches the specified SSL policy with the data included in the request. /// /// [request] - The metadata request object. /// @@ -39264,9 +40181,8 @@ class RegionTargetHttpsProxiesResource { /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [targetHttpsProxy] - Name of the TargetHttpsProxy to set a URL map for. - /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// [sslPolicy] - Name of the SSL policy to update. The name must be 1-63 + /// characters long, and comply with RFC1035. /// /// [requestId] - An optional request ID to identify requests. Specify a /// unique request ID so that if you must retry your request, the server will @@ -39289,11 +40205,11 @@ class RegionTargetHttpsProxiesResource { /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future setUrlMap( - UrlMapReference request, + async.Future patch( + SslPolicy request, core.String project, core.String region, - core.String targetHttpsProxy, { + core.String sslPolicy, { core.String? requestId, core.String? $fields, }) async { @@ -39307,13 +40223,12 @@ class RegionTargetHttpsProxiesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/targetHttpsProxies/' + - commons.escapeVariable('$targetHttpsProxy') + - '/setUrlMap'; + '/sslPolicies/' + + commons.escapeVariable('$sslPolicy'); final response_ = await _requester.request( url_, - 'POST', + 'PATCH', body: body_, queryParams: queryParams_, ); @@ -39321,13 +40236,13 @@ class RegionTargetHttpsProxiesResource { } } -class RegionTargetTcpProxiesResource { +class RegionTargetHttpProxiesResource { final commons.ApiRequester _requester; - RegionTargetTcpProxiesResource(commons.ApiRequester client) + RegionTargetHttpProxiesResource(commons.ApiRequester client) : _requester = client; - /// Deletes the specified TargetTcpProxy resource. + /// Deletes the specified TargetHttpProxy resource. /// /// Request parameters: /// @@ -39338,7 +40253,7 @@ class RegionTargetTcpProxiesResource { /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [targetTcpProxy] - Name of the TargetTcpProxy resource to delete. + /// [targetHttpProxy] - Name of the TargetHttpProxy resource to delete. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// @@ -39366,7 +40281,7 @@ class RegionTargetTcpProxiesResource { async.Future delete( core.String project, core.String region, - core.String targetTcpProxy, { + core.String targetHttpProxy, { core.String? requestId, core.String? $fields, }) async { @@ -39379,8 +40294,8 @@ class RegionTargetTcpProxiesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/targetTcpProxies/' + - commons.escapeVariable('$targetTcpProxy'); + '/targetHttpProxies/' + + commons.escapeVariable('$targetHttpProxy'); final response_ = await _requester.request( url_, @@ -39390,7 +40305,7 @@ class RegionTargetTcpProxiesResource { return Operation.fromJson(response_ as core.Map); } - /// Returns the specified TargetTcpProxy resource. + /// Returns the specified TargetHttpProxy resource in the specified region. /// /// Request parameters: /// @@ -39401,24 +40316,24 @@ class RegionTargetTcpProxiesResource { /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [targetTcpProxy] - Name of the TargetTcpProxy resource to return. + /// [targetHttpProxy] - Name of the TargetHttpProxy resource to return. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [TargetTcpProxy]. + /// Completes with a [TargetHttpProxy]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future get( + async.Future get( core.String project, core.String region, - core.String targetTcpProxy, { + core.String targetHttpProxy, { core.String? $fields, }) async { final queryParams_ = >{ @@ -39429,19 +40344,19 @@ class RegionTargetTcpProxiesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/targetTcpProxies/' + - commons.escapeVariable('$targetTcpProxy'); + '/targetHttpProxies/' + + commons.escapeVariable('$targetHttpProxy'); final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return TargetTcpProxy.fromJson( + return TargetHttpProxy.fromJson( response_ as core.Map); } - /// Creates a TargetTcpProxy resource in the specified project and region + /// Creates a TargetHttpProxy resource in the specified project and region /// using the data included in the request. /// /// [request] - The metadata request object. @@ -39477,7 +40392,7 @@ class RegionTargetTcpProxiesResource { /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. async.Future insert( - TargetTcpProxy request, + TargetHttpProxy request, core.String project, core.String region, { core.String? requestId, @@ -39493,7 +40408,7 @@ class RegionTargetTcpProxiesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/targetTcpProxies'; + '/targetHttpProxies'; final response_ = await _requester.request( url_, @@ -39504,8 +40419,8 @@ class RegionTargetTcpProxiesResource { return Operation.fromJson(response_ as core.Map); } - /// Retrieves a list of TargetTcpProxy resources available to the specified - /// project in a given region. + /// Retrieves the list of TargetHttpProxy resources available to the specified + /// project in the specified region. /// /// Request parameters: /// @@ -39570,18 +40485,21 @@ class RegionTargetTcpProxiesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [TargetTcpProxyList]. + /// Completes with a [TargetHttpProxyList]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future list( + async.Future list( core.String project, core.String region, { core.String? filter, @@ -39605,24 +40523,94 @@ class RegionTargetTcpProxiesResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/targetTcpProxies'; + '/targetHttpProxies'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return TargetTcpProxyList.fromJson( + return TargetHttpProxyList.fromJson( response_ as core.Map); } + + /// Changes the URL map for TargetHttpProxy. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [region] - Name of the region scoping this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// + /// [targetHttpProxy] - Name of the TargetHttpProxy to set a URL map for. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future setUrlMap( + UrlMapReference request, + core.String project, + core.String region, + core.String targetHttpProxy, { + core.String? requestId, + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/regions/' + + commons.escapeVariable('$region') + + '/targetHttpProxies/' + + commons.escapeVariable('$targetHttpProxy') + + '/setUrlMap'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } } -class RegionUrlMapsResource { +class RegionTargetHttpsProxiesResource { final commons.ApiRequester _requester; - RegionUrlMapsResource(commons.ApiRequester client) : _requester = client; + RegionTargetHttpsProxiesResource(commons.ApiRequester client) + : _requester = client; - /// Deletes the specified UrlMap resource. + /// Deletes the specified TargetHttpsProxy resource. /// /// Request parameters: /// @@ -39633,12 +40621,20 @@ class RegionUrlMapsResource { /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [urlMap] - Name of the UrlMap resource to delete. + /// [targetHttpsProxy] - Name of the TargetHttpsProxy resource to delete. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [requestId] - begin_interface: MixerMutationRequestBuilder Request ID to - /// support idempotency. + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -39653,7 +40649,7 @@ class RegionUrlMapsResource { async.Future delete( core.String project, core.String region, - core.String urlMap, { + core.String targetHttpsProxy, { core.String? requestId, core.String? $fields, }) async { @@ -39666,8 +40662,8 @@ class RegionUrlMapsResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/urlMaps/' + - commons.escapeVariable('$urlMap'); + '/targetHttpsProxies/' + + commons.escapeVariable('$targetHttpsProxy'); final response_ = await _requester.request( url_, @@ -39677,7 +40673,7 @@ class RegionUrlMapsResource { return Operation.fromJson(response_ as core.Map); } - /// Returns the specified UrlMap resource. + /// Returns the specified TargetHttpsProxy resource in the specified region. /// /// Request parameters: /// @@ -39688,24 +40684,24 @@ class RegionUrlMapsResource { /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [urlMap] - Name of the UrlMap resource to return. + /// [targetHttpsProxy] - Name of the TargetHttpsProxy resource to return. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [UrlMap]. + /// Completes with a [TargetHttpsProxy]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future get( + async.Future get( core.String project, core.String region, - core.String urlMap, { + core.String targetHttpsProxy, { core.String? $fields, }) async { final queryParams_ = >{ @@ -39716,19 +40712,20 @@ class RegionUrlMapsResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/urlMaps/' + - commons.escapeVariable('$urlMap'); + '/targetHttpsProxies/' + + commons.escapeVariable('$targetHttpsProxy'); final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return UrlMap.fromJson(response_ as core.Map); + return TargetHttpsProxy.fromJson( + response_ as core.Map); } - /// Creates a UrlMap resource in the specified project using the data included - /// in the request. + /// Creates a TargetHttpsProxy resource in the specified project and region + /// using the data included in the request. /// /// [request] - The metadata request object. /// @@ -39741,8 +40738,16 @@ class RegionUrlMapsResource { /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [requestId] - begin_interface: MixerMutationRequestBuilder Request ID to - /// support idempotency. + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -39755,7 +40760,7 @@ class RegionUrlMapsResource { /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. async.Future insert( - UrlMap request, + TargetHttpsProxy request, core.String project, core.String region, { core.String? requestId, @@ -39771,7 +40776,7 @@ class RegionUrlMapsResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/urlMaps'; + '/targetHttpsProxies'; final response_ = await _requester.request( url_, @@ -39782,8 +40787,8 @@ class RegionUrlMapsResource { return Operation.fromJson(response_ as core.Map); } - /// Retrieves the list of UrlMap resources available to the specified project - /// in the specified region. + /// Retrieves the list of TargetHttpsProxy resources available to the + /// specified project in the specified region. /// /// Request parameters: /// @@ -39848,18 +40853,21 @@ class RegionUrlMapsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [UrlMapList]. + /// Completes with a [TargetHttpsProxyList]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future list( + async.Future list( core.String project, core.String region, { core.String? filter, @@ -39883,19 +40891,19 @@ class RegionUrlMapsResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/urlMaps'; + '/targetHttpsProxies'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return UrlMapList.fromJson( + return TargetHttpsProxyList.fromJson( response_ as core.Map); } - /// Patches the specified UrlMap resource with the data included in the - /// request. + /// Patches the specified regional TargetHttpsProxy resource with the data + /// included in the request. /// /// This method supports PATCH semantics and uses JSON merge patch format and /// processing rules. @@ -39908,15 +40916,23 @@ class RegionUrlMapsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region scoping this request. + /// [region] - Name of the region for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [urlMap] - Name of the UrlMap resource to patch. + /// [targetHttpsProxy] - Name of the TargetHttpsProxy resource to patch. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [requestId] - begin_interface: MixerMutationRequestBuilder Request ID to - /// support idempotency. + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -39929,10 +40945,10 @@ class RegionUrlMapsResource { /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. async.Future patch( - UrlMap request, + TargetHttpsProxy request, core.String project, core.String region, - core.String urlMap, { + core.String targetHttpsProxy, { core.String? requestId, core.String? $fields, }) async { @@ -39946,8 +40962,8 @@ class RegionUrlMapsResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/urlMaps/' + - commons.escapeVariable('$urlMap'); + '/targetHttpsProxies/' + + commons.escapeVariable('$targetHttpsProxy'); final response_ = await _requester.request( url_, @@ -39958,8 +40974,7 @@ class RegionUrlMapsResource { return Operation.fromJson(response_ as core.Map); } - /// Updates the specified UrlMap resource with the data included in the - /// request. + /// Replaces SslCertificates for TargetHttpsProxy. /// /// [request] - The metadata request object. /// @@ -39972,12 +40987,21 @@ class RegionUrlMapsResource { /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [urlMap] - Name of the UrlMap resource to update. + /// [targetHttpsProxy] - Name of the TargetHttpsProxy resource to set an + /// SslCertificates resource for. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [requestId] - begin_interface: MixerMutationRequestBuilder Request ID to - /// support idempotency. + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -39989,11 +41013,11 @@ class RegionUrlMapsResource { /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future update( - UrlMap request, + async.Future setSslCertificates( + RegionTargetHttpsProxiesSetSslCertificatesRequest request, core.String project, core.String region, - core.String urlMap, { + core.String targetHttpsProxy, { core.String? requestId, core.String? $fields, }) async { @@ -40007,22 +41031,20 @@ class RegionUrlMapsResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/urlMaps/' + - commons.escapeVariable('$urlMap'); + '/targetHttpsProxies/' + + commons.escapeVariable('$targetHttpsProxy') + + '/setSslCertificates'; final response_ = await _requester.request( url_, - 'PUT', + 'POST', body: body_, queryParams: queryParams_, ); return Operation.fromJson(response_ as core.Map); } - /// Runs static validation for the UrlMap. - /// - /// In particular, the tests of the provided UrlMap will be run. Calling this - /// method does NOT create the UrlMap. + /// Changes the URL map for TargetHttpsProxy. /// /// [request] - The metadata request object. /// @@ -40035,29 +41057,42 @@ class RegionUrlMapsResource { /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [urlMap] - Name of the UrlMap resource to be validated as. + /// [targetHttpsProxy] - Name of the TargetHttpsProxy to set a URL map for. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). + /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [UrlMapsValidateResponse]. + /// Completes with a [Operation]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future validate( - RegionUrlMapsValidateRequest request, + async.Future setUrlMap( + UrlMapReference request, core.String project, core.String region, - core.String urlMap, { + core.String targetHttpsProxy, { + core.String? requestId, core.String? $fields, }) async { final body_ = convert.json.encode(request); final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], if ($fields != null) 'fields': [$fields], }; @@ -40065,9 +41100,9 @@ class RegionUrlMapsResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/urlMaps/' + - commons.escapeVariable('$urlMap') + - '/validate'; + '/targetHttpsProxies/' + + commons.escapeVariable('$targetHttpsProxy') + + '/setUrlMap'; final response_ = await _requester.request( url_, @@ -40075,25 +41110,17 @@ class RegionUrlMapsResource { body: body_, queryParams: queryParams_, ); - return UrlMapsValidateResponse.fromJson( - response_ as core.Map); + return Operation.fromJson(response_ as core.Map); } } -class RegionsResource { +class RegionTargetTcpProxiesResource { final commons.ApiRequester _requester; - RegionsResource(commons.ApiRequester client) : _requester = client; + RegionTargetTcpProxiesResource(commons.ApiRequester client) + : _requester = client; - /// Returns the specified Region resource. - /// - /// To decrease latency for this method, you can optionally omit any unneeded - /// information from the response by using a field mask. This practice is - /// especially recommended for unused quota information (the `quotas` field). - /// To exclude one or more fields, set your request's `fields` query parameter - /// to only include the fields you need. For example, to only include the `id` - /// and `selfLink` fields, add the query parameter `?fields=id,selfLink` to - /// your request. + /// Deletes the specified TargetTcpProxy resource. /// /// Request parameters: /// @@ -40101,51 +41128,62 @@ class RegionsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region resource to return. + /// [region] - Name of the region scoping this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// + /// [targetTcpProxy] - Name of the TargetTcpProxy resource to delete. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). + /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [Region]. + /// Completes with a [Operation]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future get( + async.Future delete( core.String project, - core.String region, { + core.String region, + core.String targetTcpProxy, { + core.String? requestId, core.String? $fields, }) async { final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], if ($fields != null) 'fields': [$fields], }; final url_ = 'projects/' + commons.escapeVariable('$project') + '/regions/' + - commons.escapeVariable('$region'); + commons.escapeVariable('$region') + + '/targetTcpProxies/' + + commons.escapeVariable('$targetTcpProxy'); final response_ = await _requester.request( url_, - 'GET', + 'DELETE', queryParams: queryParams_, ); - return Region.fromJson(response_ as core.Map); + return Operation.fromJson(response_ as core.Map); } - /// Retrieves the list of region resources available to the specified project. - /// - /// To decrease latency for this method, you can optionally omit any unneeded - /// information from the response by using a field mask. This practice is - /// especially recommended for unused quota information (the `items.quotas` - /// field). To exclude one or more fields, set your request's `fields` query - /// parameter to only include the fields you need. For example, to only - /// include the `id` and `selfLink` fields, add the query parameter - /// `?fields=id,selfLink` to your request. + /// Returns the specified TargetTcpProxy resource. /// /// Request parameters: /// @@ -40153,108 +41191,114 @@ class RegionsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [filter] - A filter expression that filters resources listed in the - /// response. Most Compute resources support two types of filter expressions: - /// expressions that support regular expressions and expressions that follow - /// API improvement proposal AIP-160. These two types of filter expressions - /// cannot be mixed in one request. If you want to use AIP-160, your - /// expression must specify the field name, an operator, and the value that - /// you want to use for filtering. The value must be a string, a number, or a - /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or - /// `:`. For example, if you are filtering Compute Engine instances, you can - /// exclude instances named `example-instance` by specifying `name != - /// example-instance`. The `:*` comparison can be used to test whether a key - /// has been defined. For example, to find all objects with `owner` label use: - /// ``` labels.owner:* ``` You can also filter nested fields. For example, you - /// could specify `scheduling.automaticRestart = false` to include instances - /// only if they are not scheduled for automatic restarts. You can use - /// filtering on nested fields to filter based on resource labels. To filter - /// on multiple expressions, provide each separate expression within - /// parentheses. For example: ``` (scheduling.automaticRestart = true) - /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an - /// `AND` expression. However, you can include `AND` and `OR` expressions - /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR - /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) - /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` - /// (not equal) operator against a single un-parenthesized expression with or - /// without quotes or against multiple parenthesized expressions. Examples: - /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` - /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) - /// (fieldname2 ne "literal")` The literal value is interpreted as a regular - /// expression using Google RE2 library syntax. The literal value must match - /// the entire field. For example, to filter for instances that do not end - /// with name "instance", you would use `name ne .*instance`. You cannot - /// combine constraints on multiple fields using regular expressions. - /// - /// [maxResults] - The maximum number of results per page that should be - /// returned. If the number of available results is larger than `maxResults`, - /// Compute Engine returns a `nextPageToken` that can be used to get the next - /// page of results in subsequent list requests. Acceptable values are `0` to - /// `500`, inclusive. (Default: `500`) - /// - /// [orderBy] - Sorts list results by a certain order. By default, results are - /// returned in alphanumerical order based on the resource name. You can also - /// sort results in descending order based on the creation timestamp using - /// `orderBy="creationTimestamp desc"`. This sorts results based on the - /// `creationTimestamp` field in reverse chronological order (newest result - /// first). Use this to sort resources like operations so that the newest - /// operation is returned first. Currently, only sorting by `name` or - /// `creationTimestamp desc` is supported. - /// - /// [pageToken] - Specifies a page token to use. Set `pageToken` to the - /// `nextPageToken` returned by a previous list request to get the next page - /// of results. + /// [region] - Name of the region scoping this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [returnPartialSuccess] - Opt-in for partial success behavior which - /// provides partial results in case of failure. The default value is false. + /// [targetTcpProxy] - Name of the TargetTcpProxy resource to return. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [RegionList]. + /// Completes with a [TargetTcpProxy]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future list( - core.String project, { - core.String? filter, - core.int? maxResults, - core.String? orderBy, - core.String? pageToken, - core.bool? returnPartialSuccess, + async.Future get( + core.String project, + core.String region, + core.String targetTcpProxy, { core.String? $fields, }) async { final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (maxResults != null) 'maxResults': ['${maxResults}'], - if (orderBy != null) 'orderBy': [orderBy], - if (pageToken != null) 'pageToken': [pageToken], - if (returnPartialSuccess != null) - 'returnPartialSuccess': ['${returnPartialSuccess}'], if ($fields != null) 'fields': [$fields], }; - final url_ = 'projects/' + commons.escapeVariable('$project') + '/regions'; + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/regions/' + + commons.escapeVariable('$region') + + '/targetTcpProxies/' + + commons.escapeVariable('$targetTcpProxy'); final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return RegionList.fromJson( + return TargetTcpProxy.fromJson( response_ as core.Map); } -} -class ReservationsResource { - final commons.ApiRequester _requester; + /// Creates a TargetTcpProxy resource in the specified project and region + /// using the data included in the request. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [region] - Name of the region scoping this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future insert( + TargetTcpProxy request, + core.String project, + core.String region, { + core.String? requestId, + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], + if ($fields != null) 'fields': [$fields], + }; - ReservationsResource(commons.ApiRequester client) : _requester = client; + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/regions/' + + commons.escapeVariable('$region') + + '/targetTcpProxies'; - /// Retrieves an aggregated list of reservations. + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + + /// Retrieves a list of TargetTcpProxy resources available to the specified + /// project in a given region. /// /// Request parameters: /// @@ -40262,6 +41306,9 @@ class ReservationsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// + /// [region] - Name of the region scoping this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// /// [filter] - A filter expression that filters resources listed in the /// response. Most Compute resources support two types of filter expressions: /// expressions that support regular expressions and expressions that follow @@ -40295,14 +41342,6 @@ class ReservationsResource { /// with name "instance", you would use `name ne .*instance`. You cannot /// combine constraints on multiple fields using regular expressions. /// - /// [includeAllScopes] - Indicates whether every visible scope for each scope - /// type (zone, region, global) should be included in the response. For new - /// resource types added after this field, the flag has no effect as new - /// resource types will always include every visible scope for each scope type - /// in response. For resource types which predate this field, if this flag is - /// omitted or false, only scopes of the scope types where the resource type - /// is expected to be found will be included. - /// /// [maxResults] - The maximum number of results per page that should be /// returned. If the number of available results is larger than `maxResults`, /// Compute Engine returns a `nextPageToken` that can be used to get the next @@ -40324,57 +41363,62 @@ class ReservationsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. - /// - /// [serviceProjectNumber] - null + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [ReservationAggregatedList]. + /// Completes with a [TargetTcpProxyList]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future aggregatedList( - core.String project, { + async.Future list( + core.String project, + core.String region, { core.String? filter, - core.bool? includeAllScopes, core.int? maxResults, core.String? orderBy, core.String? pageToken, core.bool? returnPartialSuccess, - core.String? serviceProjectNumber, core.String? $fields, }) async { final queryParams_ = >{ if (filter != null) 'filter': [filter], - if (includeAllScopes != null) 'includeAllScopes': ['${includeAllScopes}'], if (maxResults != null) 'maxResults': ['${maxResults}'], if (orderBy != null) 'orderBy': [orderBy], if (pageToken != null) 'pageToken': [pageToken], if (returnPartialSuccess != null) 'returnPartialSuccess': ['${returnPartialSuccess}'], - if (serviceProjectNumber != null) - 'serviceProjectNumber': [serviceProjectNumber], if ($fields != null) 'fields': [$fields], }; final url_ = 'projects/' + commons.escapeVariable('$project') + - '/aggregated/reservations'; + '/regions/' + + commons.escapeVariable('$region') + + '/targetTcpProxies'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return ReservationAggregatedList.fromJson( + return TargetTcpProxyList.fromJson( response_ as core.Map); } +} - /// Deletes the specified reservation. +class RegionUrlMapsResource { + final commons.ApiRequester _requester; + + RegionUrlMapsResource(commons.ApiRequester client) : _requester = client; + + /// Deletes the specified UrlMap resource. /// /// Request parameters: /// @@ -40382,23 +41426,15 @@ class ReservationsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [zone] - Name of the zone for this request. + /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [reservation] - Name of the reservation to delete. + /// [urlMap] - Name of the UrlMap resource to delete. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [requestId] - An optional request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. For example, - /// consider a situation where you make an initial request and the request - /// times out. If you make the request again with the same request ID, the - /// server can check if original operation with the same request ID was - /// received, and if so, will ignore the second request. This prevents clients - /// from accidentally creating duplicate commitments. The request ID must be a - /// valid UUID with the exception that zero UUID is not supported ( - /// 00000000-0000-0000-0000-000000000000). + /// [requestId] - begin_interface: MixerMutationRequestBuilder Request ID to + /// support idempotency. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -40412,8 +41448,8 @@ class ReservationsResource { /// this method will complete with the same error. async.Future delete( core.String project, - core.String zone, - core.String reservation, { + core.String region, + core.String urlMap, { core.String? requestId, core.String? $fields, }) async { @@ -40424,10 +41460,10 @@ class ReservationsResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/zones/' + - commons.escapeVariable('$zone') + - '/reservations/' + - commons.escapeVariable('$reservation'); + '/regions/' + + commons.escapeVariable('$region') + + '/urlMaps/' + + commons.escapeVariable('$urlMap'); final response_ = await _requester.request( url_, @@ -40437,60 +41473,7 @@ class ReservationsResource { return Operation.fromJson(response_ as core.Map); } - /// Retrieves information about the specified reservation. - /// - /// Request parameters: - /// - /// [project] - Project ID for this request. - /// Value must have pattern - /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. - /// - /// [zone] - Name of the zone for this request. - /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. - /// - /// [reservation] - Name of the reservation to retrieve. - /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Reservation]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String project, - core.String zone, - core.String reservation, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'projects/' + - commons.escapeVariable('$project') + - '/zones/' + - commons.escapeVariable('$zone') + - '/reservations/' + - commons.escapeVariable('$reservation'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return Reservation.fromJson( - response_ as core.Map); - } - - /// Gets the access control policy for a resource. - /// - /// May be empty if no such policy or resource exists. + /// Returns the specified UrlMap resource. /// /// Request parameters: /// @@ -40498,57 +41481,50 @@ class ReservationsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [zone] - The name of the zone for this request. + /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [resource] - Name or id of the resource for this request. + /// [urlMap] - Name of the UrlMap resource to return. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [optionsRequestedPolicyVersion] - Requested IAM Policy version. - /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [Policy]. + /// Completes with a [UrlMap]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future getIamPolicy( + async.Future get( core.String project, - core.String zone, - core.String resource, { - core.int? optionsRequestedPolicyVersion, + core.String region, + core.String urlMap, { core.String? $fields, }) async { final queryParams_ = >{ - if (optionsRequestedPolicyVersion != null) - 'optionsRequestedPolicyVersion': ['${optionsRequestedPolicyVersion}'], if ($fields != null) 'fields': [$fields], }; final url_ = 'projects/' + commons.escapeVariable('$project') + - '/zones/' + - commons.escapeVariable('$zone') + - '/reservations/' + - commons.escapeVariable('$resource') + - '/getIamPolicy'; + '/regions/' + + commons.escapeVariable('$region') + + '/urlMaps/' + + commons.escapeVariable('$urlMap'); final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return Policy.fromJson(response_ as core.Map); + return UrlMap.fromJson(response_ as core.Map); } - /// Creates a new reservation. - /// - /// For more information, read Reserving zonal resources. + /// Creates a UrlMap resource in the specified project using the data included + /// in the request. /// /// [request] - The metadata request object. /// @@ -40558,19 +41534,11 @@ class ReservationsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [zone] - Name of the zone for this request. + /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [requestId] - An optional request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. For example, - /// consider a situation where you make an initial request and the request - /// times out. If you make the request again with the same request ID, the - /// server can check if original operation with the same request ID was - /// received, and if so, will ignore the second request. This prevents clients - /// from accidentally creating duplicate commitments. The request ID must be a - /// valid UUID with the exception that zero UUID is not supported ( - /// 00000000-0000-0000-0000-000000000000). + /// [requestId] - begin_interface: MixerMutationRequestBuilder Request ID to + /// support idempotency. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -40583,9 +41551,9 @@ class ReservationsResource { /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. async.Future insert( - Reservation request, + UrlMap request, core.String project, - core.String zone, { + core.String region, { core.String? requestId, core.String? $fields, }) async { @@ -40597,9 +41565,9 @@ class ReservationsResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/zones/' + - commons.escapeVariable('$zone') + - '/reservations'; + '/regions/' + + commons.escapeVariable('$region') + + '/urlMaps'; final response_ = await _requester.request( url_, @@ -40610,8 +41578,8 @@ class ReservationsResource { return Operation.fromJson(response_ as core.Map); } - /// A list of all the reservations that have been configured for the specified - /// project in specified zone. + /// Retrieves the list of UrlMap resources available to the specified project + /// in the specified region. /// /// Request parameters: /// @@ -40619,7 +41587,7 @@ class ReservationsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [zone] - Name of the zone for this request. + /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// /// [filter] - A filter expression that filters resources listed in the @@ -40676,20 +41644,23 @@ class ReservationsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [ReservationList]. + /// Completes with a [UrlMapList]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future list( + async.Future list( core.String project, - core.String zone, { + core.String region, { core.String? filter, core.int? maxResults, core.String? orderBy, @@ -40709,22 +41680,24 @@ class ReservationsResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/zones/' + - commons.escapeVariable('$zone') + - '/reservations'; + '/regions/' + + commons.escapeVariable('$region') + + '/urlMaps'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return ReservationList.fromJson( + return UrlMapList.fromJson( response_ as core.Map); } - /// Resizes the reservation (applicable to standalone reservations only). + /// Patches the specified UrlMap resource with the data included in the + /// request. /// - /// For more information, read Modifying reservations. + /// This method supports PATCH semantics and uses JSON merge patch format and + /// processing rules. /// /// [request] - The metadata request object. /// @@ -40734,22 +41707,15 @@ class ReservationsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [zone] - Name of the zone for this request. + /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [reservation] - Name of the reservation to update. - /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// [urlMap] - Name of the UrlMap resource to patch. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [requestId] - An optional request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. For example, - /// consider a situation where you make an initial request and the request - /// times out. If you make the request again with the same request ID, the - /// server can check if original operation with the same request ID was - /// received, and if so, will ignore the second request. This prevents clients - /// from accidentally creating duplicate commitments. The request ID must be a - /// valid UUID with the exception that zero UUID is not supported ( - /// 00000000-0000-0000-0000-000000000000). + /// [requestId] - begin_interface: MixerMutationRequestBuilder Request ID to + /// support idempotency. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -40761,11 +41727,11 @@ class ReservationsResource { /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future resize( - ReservationsResizeRequest request, + async.Future patch( + UrlMap request, core.String project, - core.String zone, - core.String reservation, { + core.String region, + core.String urlMap, { core.String? requestId, core.String? $fields, }) async { @@ -40777,24 +41743,22 @@ class ReservationsResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/zones/' + - commons.escapeVariable('$zone') + - '/reservations/' + - commons.escapeVariable('$reservation') + - '/resize'; + '/regions/' + + commons.escapeVariable('$region') + + '/urlMaps/' + + commons.escapeVariable('$urlMap'); final response_ = await _requester.request( url_, - 'POST', + 'PATCH', body: body_, queryParams: queryParams_, ); return Operation.fromJson(response_ as core.Map); } - /// Sets the access control policy on the specified resource. - /// - /// Replaces any existing policy. + /// Updates the specified UrlMap resource with the data included in the + /// request. /// /// [request] - The metadata request object. /// @@ -40804,53 +41768,60 @@ class ReservationsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [zone] - The name of the zone for this request. + /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [resource] - Name or id of the resource for this request. + /// [urlMap] - Name of the UrlMap resource to update. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// + /// [requestId] - begin_interface: MixerMutationRequestBuilder Request ID to + /// support idempotency. + /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [Policy]. + /// Completes with a [Operation]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future setIamPolicy( - ZoneSetPolicyRequest request, + async.Future update( + UrlMap request, core.String project, - core.String zone, - core.String resource, { + core.String region, + core.String urlMap, { + core.String? requestId, core.String? $fields, }) async { final body_ = convert.json.encode(request); final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], if ($fields != null) 'fields': [$fields], }; final url_ = 'projects/' + commons.escapeVariable('$project') + - '/zones/' + - commons.escapeVariable('$zone') + - '/reservations/' + - commons.escapeVariable('$resource') + - '/setIamPolicy'; + '/regions/' + + commons.escapeVariable('$region') + + '/urlMaps/' + + commons.escapeVariable('$urlMap'); final response_ = await _requester.request( url_, - 'POST', + 'PUT', body: body_, queryParams: queryParams_, ); - return Policy.fromJson(response_ as core.Map); + return Operation.fromJson(response_ as core.Map); } - /// Returns permissions that a caller has on the specified resource. + /// Runs static validation for the UrlMap. + /// + /// In particular, the tests of the provided UrlMap will be run. Calling this + /// method does NOT create the UrlMap. /// /// [request] - The metadata request object. /// @@ -40860,28 +41831,28 @@ class ReservationsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [zone] - The name of the zone for this request. + /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [resource] - Name or id of the resource for this request. + /// [urlMap] - Name of the UrlMap resource to be validated as. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [TestPermissionsResponse]. + /// Completes with a [UrlMapsValidateResponse]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future testIamPermissions( - TestPermissionsRequest request, + async.Future validate( + RegionUrlMapsValidateRequest request, core.String project, - core.String zone, - core.String resource, { + core.String region, + core.String urlMap, { core.String? $fields, }) async { final body_ = convert.json.encode(request); @@ -40891,11 +41862,11 @@ class ReservationsResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/zones/' + - commons.escapeVariable('$zone') + - '/reservations/' + - commons.escapeVariable('$resource') + - '/testIamPermissions'; + '/regions/' + + commons.escapeVariable('$region') + + '/urlMaps/' + + commons.escapeVariable('$urlMap') + + '/validate'; final response_ = await _requester.request( url_, @@ -40903,13 +41874,18 @@ class ReservationsResource { body: body_, queryParams: queryParams_, ); - return TestPermissionsResponse.fromJson( + return UrlMapsValidateResponse.fromJson( response_ as core.Map); } +} - /// Update share settings of the reservation. - /// - /// [request] - The metadata request object. +class RegionZonesResource { + final commons.ApiRequester _requester; + + RegionZonesResource(commons.ApiRequester client) : _requester = client; + + /// Retrieves the list of Zone resources under the specific region available + /// to the specified project. /// /// Request parameters: /// @@ -40917,80 +41893,293 @@ class ReservationsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [zone] - Name of the zone for this request. + /// [region] - Region for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [reservation] - Name of the reservation to update. - /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// [filter] - A filter expression that filters resources listed in the + /// response. Most Compute resources support two types of filter expressions: + /// expressions that support regular expressions and expressions that follow + /// API improvement proposal AIP-160. These two types of filter expressions + /// cannot be mixed in one request. If you want to use AIP-160, your + /// expression must specify the field name, an operator, and the value that + /// you want to use for filtering. The value must be a string, a number, or a + /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or + /// `:`. For example, if you are filtering Compute Engine instances, you can + /// exclude instances named `example-instance` by specifying `name != + /// example-instance`. The `:*` comparison can be used to test whether a key + /// has been defined. For example, to find all objects with `owner` label use: + /// ``` labels.owner:* ``` You can also filter nested fields. For example, you + /// could specify `scheduling.automaticRestart = false` to include instances + /// only if they are not scheduled for automatic restarts. You can use + /// filtering on nested fields to filter based on resource labels. To filter + /// on multiple expressions, provide each separate expression within + /// parentheses. For example: ``` (scheduling.automaticRestart = true) + /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an + /// `AND` expression. However, you can include `AND` and `OR` expressions + /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR + /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) + /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` + /// (not equal) operator against a single un-parenthesized expression with or + /// without quotes or against multiple parenthesized expressions. Examples: + /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` + /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) + /// (fieldname2 ne "literal")` The literal value is interpreted as a regular + /// expression using Google RE2 library syntax. The literal value must match + /// the entire field. For example, to filter for instances that do not end + /// with name "instance", you would use `name ne .*instance`. You cannot + /// combine constraints on multiple fields using regular expressions. /// - /// [paths] - null + /// [maxResults] - The maximum number of results per page that should be + /// returned. If the number of available results is larger than `maxResults`, + /// Compute Engine returns a `nextPageToken` that can be used to get the next + /// page of results in subsequent list requests. Acceptable values are `0` to + /// `500`, inclusive. (Default: `500`) /// - /// [requestId] - An optional request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. For example, - /// consider a situation where you make an initial request and the request - /// times out. If you make the request again with the same request ID, the - /// server can check if original operation with the same request ID was - /// received, and if so, will ignore the second request. This prevents clients - /// from accidentally creating duplicate commitments. The request ID must be a - /// valid UUID with the exception that zero UUID is not supported ( - /// 00000000-0000-0000-0000-000000000000). + /// [orderBy] - Sorts list results by a certain order. By default, results are + /// returned in alphanumerical order based on the resource name. You can also + /// sort results in descending order based on the creation timestamp using + /// `orderBy="creationTimestamp desc"`. This sorts results based on the + /// `creationTimestamp` field in reverse chronological order (newest result + /// first). Use this to sort resources like operations so that the newest + /// operation is returned first. Currently, only sorting by `name` or + /// `creationTimestamp desc` is supported. /// - /// [updateMask] - Update_mask indicates fields to be updated as part of this - /// request. + /// [pageToken] - Specifies a page token to use. Set `pageToken` to the + /// `nextPageToken` returned by a previous list request to get the next page + /// of results. + /// + /// [returnPartialSuccess] - Opt-in for partial success behavior which + /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [Operation]. + /// Completes with a [ZoneList]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future update( - Reservation request, + async.Future list( core.String project, - core.String zone, - core.String reservation, { - core.List? paths, - core.String? requestId, - core.String? updateMask, + core.String region, { + core.String? filter, + core.int? maxResults, + core.String? orderBy, + core.String? pageToken, + core.bool? returnPartialSuccess, core.String? $fields, }) async { - final body_ = convert.json.encode(request); final queryParams_ = >{ - if (paths != null) 'paths': paths, - if (requestId != null) 'requestId': [requestId], - if (updateMask != null) 'updateMask': [updateMask], + if (filter != null) 'filter': [filter], + if (maxResults != null) 'maxResults': ['${maxResults}'], + if (orderBy != null) 'orderBy': [orderBy], + if (pageToken != null) 'pageToken': [pageToken], + if (returnPartialSuccess != null) + 'returnPartialSuccess': ['${returnPartialSuccess}'], if ($fields != null) 'fields': [$fields], }; final url_ = 'projects/' + commons.escapeVariable('$project') + - '/zones/' + - commons.escapeVariable('$zone') + - '/reservations/' + - commons.escapeVariable('$reservation'); + '/regions/' + + commons.escapeVariable('$region') + + '/zones'; final response_ = await _requester.request( url_, - 'PATCH', - body: body_, + 'GET', queryParams: queryParams_, ); - return Operation.fromJson(response_ as core.Map); + return ZoneList.fromJson(response_ as core.Map); } } -class ResourcePoliciesResource { +class RegionsResource { final commons.ApiRequester _requester; - ResourcePoliciesResource(commons.ApiRequester client) : _requester = client; + RegionsResource(commons.ApiRequester client) : _requester = client; - /// Retrieves an aggregated list of resource policies. + /// Returns the specified Region resource. + /// + /// To decrease latency for this method, you can optionally omit any unneeded + /// information from the response by using a field mask. This practice is + /// especially recommended for unused quota information (the `quotas` field). + /// To exclude one or more fields, set your request's `fields` query parameter + /// to only include the fields you need. For example, to only include the `id` + /// and `selfLink` fields, add the query parameter `?fields=id,selfLink` to + /// your request. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [region] - Name of the region resource to return. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Region]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String project, + core.String region, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/regions/' + + commons.escapeVariable('$region'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return Region.fromJson(response_ as core.Map); + } + + /// Retrieves the list of region resources available to the specified project. + /// + /// To decrease latency for this method, you can optionally omit any unneeded + /// information from the response by using a field mask. This practice is + /// especially recommended for unused quota information (the `items.quotas` + /// field). To exclude one or more fields, set your request's `fields` query + /// parameter to only include the fields you need. For example, to only + /// include the `id` and `selfLink` fields, add the query parameter + /// `?fields=id,selfLink` to your request. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [filter] - A filter expression that filters resources listed in the + /// response. Most Compute resources support two types of filter expressions: + /// expressions that support regular expressions and expressions that follow + /// API improvement proposal AIP-160. These two types of filter expressions + /// cannot be mixed in one request. If you want to use AIP-160, your + /// expression must specify the field name, an operator, and the value that + /// you want to use for filtering. The value must be a string, a number, or a + /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or + /// `:`. For example, if you are filtering Compute Engine instances, you can + /// exclude instances named `example-instance` by specifying `name != + /// example-instance`. The `:*` comparison can be used to test whether a key + /// has been defined. For example, to find all objects with `owner` label use: + /// ``` labels.owner:* ``` You can also filter nested fields. For example, you + /// could specify `scheduling.automaticRestart = false` to include instances + /// only if they are not scheduled for automatic restarts. You can use + /// filtering on nested fields to filter based on resource labels. To filter + /// on multiple expressions, provide each separate expression within + /// parentheses. For example: ``` (scheduling.automaticRestart = true) + /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an + /// `AND` expression. However, you can include `AND` and `OR` expressions + /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR + /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) + /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` + /// (not equal) operator against a single un-parenthesized expression with or + /// without quotes or against multiple parenthesized expressions. Examples: + /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` + /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) + /// (fieldname2 ne "literal")` The literal value is interpreted as a regular + /// expression using Google RE2 library syntax. The literal value must match + /// the entire field. For example, to filter for instances that do not end + /// with name "instance", you would use `name ne .*instance`. You cannot + /// combine constraints on multiple fields using regular expressions. + /// + /// [maxResults] - The maximum number of results per page that should be + /// returned. If the number of available results is larger than `maxResults`, + /// Compute Engine returns a `nextPageToken` that can be used to get the next + /// page of results in subsequent list requests. Acceptable values are `0` to + /// `500`, inclusive. (Default: `500`) + /// + /// [orderBy] - Sorts list results by a certain order. By default, results are + /// returned in alphanumerical order based on the resource name. You can also + /// sort results in descending order based on the creation timestamp using + /// `orderBy="creationTimestamp desc"`. This sorts results based on the + /// `creationTimestamp` field in reverse chronological order (newest result + /// first). Use this to sort resources like operations so that the newest + /// operation is returned first. Currently, only sorting by `name` or + /// `creationTimestamp desc` is supported. + /// + /// [pageToken] - Specifies a page token to use. Set `pageToken` to the + /// `nextPageToken` returned by a previous list request to get the next page + /// of results. + /// + /// [returnPartialSuccess] - Opt-in for partial success behavior which + /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [RegionList]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future list( + core.String project, { + core.String? filter, + core.int? maxResults, + core.String? orderBy, + core.String? pageToken, + core.bool? returnPartialSuccess, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (filter != null) 'filter': [filter], + if (maxResults != null) 'maxResults': ['${maxResults}'], + if (orderBy != null) 'orderBy': [orderBy], + if (pageToken != null) 'pageToken': [pageToken], + if (returnPartialSuccess != null) + 'returnPartialSuccess': ['${returnPartialSuccess}'], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + commons.escapeVariable('$project') + '/regions'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return RegionList.fromJson( + response_ as core.Map); + } +} + +class ReservationsResource { + final commons.ApiRequester _requester; + + ReservationsResource(commons.ApiRequester client) : _requester = client; + + /// Retrieves an aggregated list of reservations. + /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. /// /// Request parameters: /// @@ -41060,20 +42249,25 @@ class ResourcePoliciesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [ResourcePolicyAggregatedList]. + /// Completes with a [ReservationAggregatedList]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future aggregatedList( + async.Future aggregatedList( core.String project, { core.String? filter, core.bool? includeAllScopes, @@ -41099,18 +42293,18 @@ class ResourcePoliciesResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/aggregated/resourcePolicies'; + '/aggregated/reservations'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return ResourcePolicyAggregatedList.fromJson( + return ReservationAggregatedList.fromJson( response_ as core.Map); } - /// Deletes the specified resource policy. + /// Deletes the specified reservation. /// /// Request parameters: /// @@ -41118,10 +42312,10 @@ class ResourcePoliciesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region for this request. + /// [zone] - Name of the zone for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [resourcePolicy] - Name of the resource policy to delete. + /// [reservation] - Name of the reservation to delete. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// @@ -41148,8 +42342,8 @@ class ResourcePoliciesResource { /// this method will complete with the same error. async.Future delete( core.String project, - core.String region, - core.String resourcePolicy, { + core.String zone, + core.String reservation, { core.String? requestId, core.String? $fields, }) async { @@ -41160,10 +42354,10 @@ class ResourcePoliciesResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/regions/' + - commons.escapeVariable('$region') + - '/resourcePolicies/' + - commons.escapeVariable('$resourcePolicy'); + '/zones/' + + commons.escapeVariable('$zone') + + '/reservations/' + + commons.escapeVariable('$reservation'); final response_ = await _requester.request( url_, @@ -41173,7 +42367,7 @@ class ResourcePoliciesResource { return Operation.fromJson(response_ as core.Map); } - /// Retrieves all information of the specified resource policy. + /// Retrieves information about the specified reservation. /// /// Request parameters: /// @@ -41181,27 +42375,27 @@ class ResourcePoliciesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region for this request. + /// [zone] - Name of the zone for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [resourcePolicy] - Name of the resource policy to retrieve. + /// [reservation] - Name of the reservation to retrieve. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [ResourcePolicy]. + /// Completes with a [Reservation]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future get( + async.Future get( core.String project, - core.String region, - core.String resourcePolicy, { + core.String zone, + core.String reservation, { core.String? $fields, }) async { final queryParams_ = >{ @@ -41210,17 +42404,17 @@ class ResourcePoliciesResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/regions/' + - commons.escapeVariable('$region') + - '/resourcePolicies/' + - commons.escapeVariable('$resourcePolicy'); + '/zones/' + + commons.escapeVariable('$zone') + + '/reservations/' + + commons.escapeVariable('$reservation'); final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return ResourcePolicy.fromJson( + return Reservation.fromJson( response_ as core.Map); } @@ -41234,7 +42428,7 @@ class ResourcePoliciesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - The name of the region for this request. + /// [zone] - The name of the zone for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// /// [resource] - Name or id of the resource for this request. @@ -41255,7 +42449,7 @@ class ResourcePoliciesResource { /// this method will complete with the same error. async.Future getIamPolicy( core.String project, - core.String region, + core.String zone, core.String resource, { core.int? optionsRequestedPolicyVersion, core.String? $fields, @@ -41268,9 +42462,9 @@ class ResourcePoliciesResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/regions/' + - commons.escapeVariable('$region') + - '/resourcePolicies/' + + '/zones/' + + commons.escapeVariable('$zone') + + '/reservations/' + commons.escapeVariable('$resource') + '/getIamPolicy'; @@ -41282,7 +42476,9 @@ class ResourcePoliciesResource { return Policy.fromJson(response_ as core.Map); } - /// Creates a new resource policy. + /// Creates a new reservation. + /// + /// For more information, read Reserving zonal resources. /// /// [request] - The metadata request object. /// @@ -41292,7 +42488,7 @@ class ResourcePoliciesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region for this request. + /// [zone] - Name of the zone for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// /// [requestId] - An optional request ID to identify requests. Specify a @@ -41317,9 +42513,9 @@ class ResourcePoliciesResource { /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. async.Future insert( - ResourcePolicy request, + Reservation request, core.String project, - core.String region, { + core.String zone, { core.String? requestId, core.String? $fields, }) async { @@ -41331,9 +42527,9 @@ class ResourcePoliciesResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/regions/' + - commons.escapeVariable('$region') + - '/resourcePolicies'; + '/zones/' + + commons.escapeVariable('$zone') + + '/reservations'; final response_ = await _requester.request( url_, @@ -41344,8 +42540,8 @@ class ResourcePoliciesResource { return Operation.fromJson(response_ as core.Map); } - /// A list all the resource policies that have been configured for the - /// specified project in specified region. + /// A list of all the reservations that have been configured for the specified + /// project in specified zone. /// /// Request parameters: /// @@ -41353,7 +42549,7 @@ class ResourcePoliciesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region for this request. + /// [zone] - Name of the zone for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// /// [filter] - A filter expression that filters resources listed in the @@ -41410,20 +42606,23 @@ class ResourcePoliciesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [ResourcePolicyList]. + /// Completes with a [ReservationList]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future list( + async.Future list( core.String project, - core.String region, { + core.String zone, { core.String? filter, core.int? maxResults, core.String? orderBy, @@ -41443,20 +42642,22 @@ class ResourcePoliciesResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/regions/' + - commons.escapeVariable('$region') + - '/resourcePolicies'; + '/zones/' + + commons.escapeVariable('$zone') + + '/reservations'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return ResourcePolicyList.fromJson( + return ReservationList.fromJson( response_ as core.Map); } - /// Modify the specified resource policy. + /// Resizes the reservation (applicable to standalone reservations only). + /// + /// For more information, read Modifying reservations. /// /// [request] - The metadata request object. /// @@ -41466,12 +42667,11 @@ class ResourcePoliciesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region for this request. + /// [zone] - Name of the zone for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [resourcePolicy] - Id of the resource policy to patch. - /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// [reservation] - Name of the reservation to update. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// /// [requestId] - An optional request ID to identify requests. Specify a /// unique request ID so that if you must retry your request, the server will @@ -41484,9 +42684,6 @@ class ResourcePoliciesResource { /// valid UUID with the exception that zero UUID is not supported ( /// 00000000-0000-0000-0000-000000000000). /// - /// [updateMask] - update_mask indicates fields to be updated as part of this - /// request. - /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// @@ -41497,32 +42694,31 @@ class ResourcePoliciesResource { /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future patch( - ResourcePolicy request, + async.Future resize( + ReservationsResizeRequest request, core.String project, - core.String region, - core.String resourcePolicy, { + core.String zone, + core.String reservation, { core.String? requestId, - core.String? updateMask, core.String? $fields, }) async { final body_ = convert.json.encode(request); final queryParams_ = >{ if (requestId != null) 'requestId': [requestId], - if (updateMask != null) 'updateMask': [updateMask], if ($fields != null) 'fields': [$fields], }; final url_ = 'projects/' + commons.escapeVariable('$project') + - '/regions/' + - commons.escapeVariable('$region') + - '/resourcePolicies/' + - commons.escapeVariable('$resourcePolicy'); + '/zones/' + + commons.escapeVariable('$zone') + + '/reservations/' + + commons.escapeVariable('$reservation') + + '/resize'; final response_ = await _requester.request( url_, - 'PATCH', + 'POST', body: body_, queryParams: queryParams_, ); @@ -41541,7 +42737,7 @@ class ResourcePoliciesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - The name of the region for this request. + /// [zone] - The name of the zone for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// /// [resource] - Name or id of the resource for this request. @@ -41559,9 +42755,9 @@ class ResourcePoliciesResource { /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. async.Future setIamPolicy( - RegionSetPolicyRequest request, + ZoneSetPolicyRequest request, core.String project, - core.String region, + core.String zone, core.String resource, { core.String? $fields, }) async { @@ -41572,9 +42768,9 @@ class ResourcePoliciesResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/regions/' + - commons.escapeVariable('$region') + - '/resourcePolicies/' + + '/zones/' + + commons.escapeVariable('$zone') + + '/reservations/' + commons.escapeVariable('$resource') + '/setIamPolicy'; @@ -41597,7 +42793,7 @@ class ResourcePoliciesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - The name of the region for this request. + /// [zone] - The name of the zone for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// /// [resource] - Name or id of the resource for this request. @@ -41617,7 +42813,7 @@ class ResourcePoliciesResource { async.Future testIamPermissions( TestPermissionsRequest request, core.String project, - core.String region, + core.String zone, core.String resource, { core.String? $fields, }) async { @@ -41628,9 +42824,9 @@ class ResourcePoliciesResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/regions/' + - commons.escapeVariable('$region') + - '/resourcePolicies/' + + '/zones/' + + commons.escapeVariable('$zone') + + '/reservations/' + commons.escapeVariable('$resource') + '/testIamPermissions'; @@ -41643,14 +42839,94 @@ class ResourcePoliciesResource { return TestPermissionsResponse.fromJson( response_ as core.Map); } + + /// Update share settings of the reservation. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [zone] - Name of the zone for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// + /// [reservation] - Name of the reservation to update. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// + /// [paths] - null + /// + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). + /// + /// [updateMask] - Update_mask indicates fields to be updated as part of this + /// request. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future update( + Reservation request, + core.String project, + core.String zone, + core.String reservation, { + core.List? paths, + core.String? requestId, + core.String? updateMask, + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if (paths != null) 'paths': paths, + if (requestId != null) 'requestId': [requestId], + if (updateMask != null) 'updateMask': [updateMask], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/zones/' + + commons.escapeVariable('$zone') + + '/reservations/' + + commons.escapeVariable('$reservation'); + + final response_ = await _requester.request( + url_, + 'PATCH', + body: body_, + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } } -class RoutersResource { +class ResourcePoliciesResource { final commons.ApiRequester _requester; - RoutersResource(commons.ApiRequester client) : _requester = client; + ResourcePoliciesResource(commons.ApiRequester client) : _requester = client; - /// Retrieves an aggregated list of routers. + /// Retrieves an aggregated list of resource policies. + /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. /// /// Request parameters: /// @@ -41720,20 +42996,25 @@ class RoutersResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [RouterAggregatedList]. + /// Completes with a [ResourcePolicyAggregatedList]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future aggregatedList( + async.Future aggregatedList( core.String project, { core.String? filter, core.bool? includeAllScopes, @@ -41759,18 +43040,18 @@ class RoutersResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/aggregated/routers'; + '/aggregated/resourcePolicies'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return RouterAggregatedList.fromJson( + return ResourcePolicyAggregatedList.fromJson( response_ as core.Map); } - /// Deletes the specified Router resource. + /// Deletes the specified resource policy. /// /// Request parameters: /// @@ -41781,7 +43062,7 @@ class RoutersResource { /// [region] - Name of the region for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [router] - Name of the Router resource to delete. + /// [resourcePolicy] - Name of the resource policy to delete. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// @@ -41809,7 +43090,7 @@ class RoutersResource { async.Future delete( core.String project, core.String region, - core.String router, { + core.String resourcePolicy, { core.String? requestId, core.String? $fields, }) async { @@ -41822,8 +43103,8 @@ class RoutersResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/routers/' + - commons.escapeVariable('$router'); + '/resourcePolicies/' + + commons.escapeVariable('$resourcePolicy'); final response_ = await _requester.request( url_, @@ -41833,7 +43114,7 @@ class RoutersResource { return Operation.fromJson(response_ as core.Map); } - /// Returns the specified Router resource. + /// Retrieves all information of the specified resource policy. /// /// Request parameters: /// @@ -41844,24 +43125,24 @@ class RoutersResource { /// [region] - Name of the region for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [router] - Name of the Router resource to return. + /// [resourcePolicy] - Name of the resource policy to retrieve. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [Router]. + /// Completes with a [ResourcePolicy]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future get( + async.Future get( core.String project, core.String region, - core.String router, { + core.String resourcePolicy, { core.String? $fields, }) async { final queryParams_ = >{ @@ -41872,18 +43153,21 @@ class RoutersResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/routers/' + - commons.escapeVariable('$router'); + '/resourcePolicies/' + + commons.escapeVariable('$resourcePolicy'); final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return Router.fromJson(response_ as core.Map); + return ResourcePolicy.fromJson( + response_ as core.Map); } - /// Retrieves runtime NAT IP information. + /// Gets the access control policy for a resource. + /// + /// May be empty if no such policy or resource exists. /// /// Request parameters: /// @@ -41891,35 +43175,35 @@ class RoutersResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region for this request. + /// [region] - The name of the region for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [router] - Name of the Router resource to query for Nat IP information. - /// The name should conform to RFC1035. + /// [resource] - Name or id of the resource for this request. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [natName] - Name of the nat service to filter the NAT IP information. If - /// it is omitted, all nats for this router will be returned. Name should - /// conform to RFC1035. + /// [optionsRequestedPolicyVersion] - Requested IAM Policy version. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [NatIpInfoResponse]. + /// Completes with a [Policy]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future getNatIpInfo( + async.Future getIamPolicy( core.String project, core.String region, - core.String router, { - core.String? natName, + core.String resource, { + core.int? optionsRequestedPolicyVersion, core.String? $fields, }) async { final queryParams_ = >{ - if (natName != null) 'natName': [natName], + if (optionsRequestedPolicyVersion != null) + 'optionsRequestedPolicyVersion': ['${optionsRequestedPolicyVersion}'], if ($fields != null) 'fields': [$fields], }; @@ -41927,20 +43211,21 @@ class RoutersResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/routers/' + - commons.escapeVariable('$router') + - '/getNatIpInfo'; + '/resourcePolicies/' + + commons.escapeVariable('$resource') + + '/getIamPolicy'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return NatIpInfoResponse.fromJson( - response_ as core.Map); + return Policy.fromJson(response_ as core.Map); } - /// Retrieves runtime Nat mapping information of VM endpoints. + /// Creates a new resource policy. + /// + /// [request] - The metadata request object. /// /// Request parameters: /// @@ -41951,10 +43236,66 @@ class RoutersResource { /// [region] - Name of the region for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [router] - Name of the Router resource to query for Nat Mapping - /// information of VM endpoints. + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future insert( + ResourcePolicy request, + core.String project, + core.String region, { + core.String? requestId, + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/regions/' + + commons.escapeVariable('$region') + + '/resourcePolicies'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + + /// A list all the resource policies that have been configured for the + /// specified project in specified region. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [region] - Name of the region for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// /// [filter] - A filter expression that filters resources listed in the /// response. Most Compute resources support two types of filter expressions: @@ -41995,10 +43336,6 @@ class RoutersResource { /// page of results in subsequent list requests. Acceptable values are `0` to /// `500`, inclusive. (Default: `500`) /// - /// [natName] - Name of the nat service to filter the Nat Mapping information. - /// If it is omitted, all nats for this router will be returned. Name should - /// conform to RFC1035. - /// /// [orderBy] - Sorts list results by a certain order. By default, results are /// returned in alphanumerical order based on the resource name. You can also /// sort results in descending order based on the creation timestamp using @@ -42014,24 +43351,25 @@ class RoutersResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [VmEndpointNatMappingsList]. + /// Completes with a [ResourcePolicyList]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future getNatMappingInfo( + async.Future list( core.String project, - core.String region, - core.String router, { + core.String region, { core.String? filter, core.int? maxResults, - core.String? natName, core.String? orderBy, core.String? pageToken, core.bool? returnPartialSuccess, @@ -42040,7 +43378,6 @@ class RoutersResource { final queryParams_ = >{ if (filter != null) 'filter': [filter], if (maxResults != null) 'maxResults': ['${maxResults}'], - if (natName != null) 'natName': [natName], if (orderBy != null) 'orderBy': [orderBy], if (pageToken != null) 'pageToken': [pageToken], if (returnPartialSuccess != null) @@ -42052,20 +43389,20 @@ class RoutersResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/routers/' + - commons.escapeVariable('$router') + - '/getNatMappingInfo'; + '/resourcePolicies'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return VmEndpointNatMappingsList.fromJson( + return ResourcePolicyList.fromJson( response_ as core.Map); } - /// Retrieves runtime information of the specified router. + /// Modify the specified resource policy. + /// + /// [request] - The metadata request object. /// /// Request parameters: /// @@ -42076,27 +43413,47 @@ class RoutersResource { /// [region] - Name of the region for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [router] - Name of the Router resource to query. + /// [resourcePolicy] - Id of the resource policy to patch. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). + /// + /// [updateMask] - update_mask indicates fields to be updated as part of this + /// request. + /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [RouterStatusResponse]. + /// Completes with a [Operation]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future getRouterStatus( + async.Future patch( + ResourcePolicy request, core.String project, core.String region, - core.String router, { + core.String resourcePolicy, { + core.String? requestId, + core.String? updateMask, core.String? $fields, }) async { + final body_ = convert.json.encode(request); final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], + if (updateMask != null) 'updateMask': [updateMask], if ($fields != null) 'fields': [$fields], }; @@ -42104,21 +43461,21 @@ class RoutersResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/routers/' + - commons.escapeVariable('$router') + - '/getRouterStatus'; + '/resourcePolicies/' + + commons.escapeVariable('$resourcePolicy'); final response_ = await _requester.request( url_, - 'GET', + 'PATCH', + body: body_, queryParams: queryParams_, ); - return RouterStatusResponse.fromJson( - response_ as core.Map); + return Operation.fromJson(response_ as core.Map); } - /// Creates a Router resource in the specified project and region using the - /// data included in the request. + /// Sets the access control policy on the specified resource. + /// + /// Replaces any existing policy. /// /// [request] - The metadata request object. /// @@ -42128,40 +43485,32 @@ class RoutersResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region for this request. + /// [region] - The name of the region for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [requestId] - An optional request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. For example, - /// consider a situation where you make an initial request and the request - /// times out. If you make the request again with the same request ID, the - /// server can check if original operation with the same request ID was - /// received, and if so, will ignore the second request. This prevents clients - /// from accidentally creating duplicate commitments. The request ID must be a - /// valid UUID with the exception that zero UUID is not supported ( - /// 00000000-0000-0000-0000-000000000000). + /// [resource] - Name or id of the resource for this request. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [Operation]. + /// Completes with a [Policy]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future insert( - Router request, + async.Future setIamPolicy( + RegionSetPolicyRequest request, core.String project, - core.String region, { - core.String? requestId, + core.String region, + core.String resource, { core.String? $fields, }) async { final body_ = convert.json.encode(request); final queryParams_ = >{ - if (requestId != null) 'requestId': [requestId], if ($fields != null) 'fields': [$fields], }; @@ -42169,7 +43518,9 @@ class RoutersResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/routers'; + '/resourcePolicies/' + + commons.escapeVariable('$resource') + + '/setIamPolicy'; final response_ = await _requester.request( url_, @@ -42177,10 +43528,12 @@ class RoutersResource { body: body_, queryParams: queryParams_, ); - return Operation.fromJson(response_ as core.Map); + return Policy.fromJson(response_ as core.Map); } - /// Retrieves a list of Router resources available to the specified project. + /// Returns permissions that a caller has on the specified resource. + /// + /// [request] - The metadata request object. /// /// Request parameters: /// @@ -42188,9 +43541,70 @@ class RoutersResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region for this request. + /// [region] - The name of the region for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// + /// [resource] - Name or id of the resource for this request. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [TestPermissionsResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future testIamPermissions( + TestPermissionsRequest request, + core.String project, + core.String region, + core.String resource, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/regions/' + + commons.escapeVariable('$region') + + '/resourcePolicies/' + + commons.escapeVariable('$resource') + + '/testIamPermissions'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return TestPermissionsResponse.fromJson( + response_ as core.Map); + } +} + +class RoutersResource { + final commons.ApiRequester _requester; + + RoutersResource(commons.ApiRequester client) : _requester = client; + + /// Retrieves an aggregated list of routers. + /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// /// [filter] - A filter expression that filters resources listed in the /// response. Most Compute resources support two types of filter expressions: /// expressions that support regular expressions and expressions that follow @@ -42224,6 +43638,14 @@ class RoutersResource { /// with name "instance", you would use `name ne .*instance`. You cannot /// combine constraints on multiple fields using regular expressions. /// + /// [includeAllScopes] - Indicates whether every visible scope for each scope + /// type (zone, region, global) should be included in the response. For new + /// resource types added after this field, the flag has no effect as new + /// resource types will always include every visible scope for each scope type + /// in response. For resource types which predate this field, if this flag is + /// omitted or false, only scopes of the scope types where the resource type + /// is expected to be found will be included. + /// /// [maxResults] - The maximum number of results per page that should be /// returned. If the number of available results is larger than `maxResults`, /// Compute Engine returns a `nextPageToken` that can be used to get the next @@ -42245,59 +43667,62 @@ class RoutersResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. + /// + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [RouterList]. + /// Completes with a [RouterAggregatedList]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future list( - core.String project, - core.String region, { + async.Future aggregatedList( + core.String project, { core.String? filter, + core.bool? includeAllScopes, core.int? maxResults, core.String? orderBy, core.String? pageToken, core.bool? returnPartialSuccess, + core.String? serviceProjectNumber, core.String? $fields, }) async { final queryParams_ = >{ if (filter != null) 'filter': [filter], + if (includeAllScopes != null) 'includeAllScopes': ['${includeAllScopes}'], if (maxResults != null) 'maxResults': ['${maxResults}'], if (orderBy != null) 'orderBy': [orderBy], if (pageToken != null) 'pageToken': [pageToken], if (returnPartialSuccess != null) 'returnPartialSuccess': ['${returnPartialSuccess}'], + if (serviceProjectNumber != null) + 'serviceProjectNumber': [serviceProjectNumber], if ($fields != null) 'fields': [$fields], }; final url_ = 'projects/' + commons.escapeVariable('$project') + - '/regions/' + - commons.escapeVariable('$region') + - '/routers'; + '/aggregated/routers'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return RouterList.fromJson( + return RouterAggregatedList.fromJson( response_ as core.Map); } - /// Patches the specified Router resource with the data included in the - /// request. - /// - /// This method supports PATCH semantics and uses JSON merge patch format and - /// processing rules. - /// - /// [request] - The metadata request object. + /// Deletes the specified Router resource. /// /// Request parameters: /// @@ -42308,7 +43733,7 @@ class RoutersResource { /// [region] - Name of the region for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [router] - Name of the Router resource to patch. + /// [router] - Name of the Router resource to delete. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// @@ -42333,15 +43758,13 @@ class RoutersResource { /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future patch( - Router request, + async.Future delete( core.String project, core.String region, core.String router, { core.String? requestId, core.String? $fields, }) async { - final body_ = convert.json.encode(request); final queryParams_ = >{ if (requestId != null) 'requestId': [requestId], if ($fields != null) 'fields': [$fields], @@ -42356,18 +43779,13 @@ class RoutersResource { final response_ = await _requester.request( url_, - 'PATCH', - body: body_, + 'DELETE', queryParams: queryParams_, ); return Operation.fromJson(response_ as core.Map); } - /// Preview fields auto-generated during router create and update operations. - /// - /// Calling this method does NOT create or update the router. - /// - /// [request] - The metadata request object. + /// Returns the specified Router resource. /// /// Request parameters: /// @@ -42378,28 +43796,26 @@ class RoutersResource { /// [region] - Name of the region for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [router] - Name of the Router resource to query. + /// [router] - Name of the Router resource to return. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [RoutersPreviewResponse]. + /// Completes with a [Router]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future preview( - Router request, + async.Future get( core.String project, core.String region, core.String router, { core.String? $fields, }) async { - final body_ = convert.json.encode(request); final queryParams_ = >{ if ($fields != null) 'fields': [$fields], }; @@ -42409,27 +43825,17 @@ class RoutersResource { '/regions/' + commons.escapeVariable('$region') + '/routers/' + - commons.escapeVariable('$router') + - '/preview'; + commons.escapeVariable('$router'); final response_ = await _requester.request( url_, - 'POST', - body: body_, + 'GET', queryParams: queryParams_, ); - return RoutersPreviewResponse.fromJson( - response_ as core.Map); + return Router.fromJson(response_ as core.Map); } - /// Updates the specified Router resource with the data included in the - /// request. - /// - /// This method conforms to PUT semantics, which requests that the state of - /// the target resource be created or replaced with the state defined by the - /// representation enclosed in the request message payload. - /// - /// [request] - The metadata request object. + /// Retrieves runtime NAT IP information. /// /// Request parameters: /// @@ -42440,42 +43846,32 @@ class RoutersResource { /// [region] - Name of the region for this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [router] - Name of the Router resource to update. - /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// [router] - Name of the Router resource to query for Nat IP information. + /// The name should conform to RFC1035. /// - /// [requestId] - An optional request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. For example, - /// consider a situation where you make an initial request and the request - /// times out. If you make the request again with the same request ID, the - /// server can check if original operation with the same request ID was - /// received, and if so, will ignore the second request. This prevents clients - /// from accidentally creating duplicate commitments. The request ID must be a - /// valid UUID with the exception that zero UUID is not supported ( - /// 00000000-0000-0000-0000-000000000000). + /// [natName] - Name of the nat service to filter the NAT IP information. If + /// it is omitted, all nats for this router will be returned. Name should + /// conform to RFC1035. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [Operation]. + /// Completes with a [NatIpInfoResponse]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future update( - Router request, + async.Future getNatIpInfo( core.String project, core.String region, core.String router, { - core.String? requestId, + core.String? natName, core.String? $fields, }) async { - final body_ = convert.json.encode(request); final queryParams_ = >{ - if (requestId != null) 'requestId': [requestId], + if (natName != null) 'natName': [natName], if ($fields != null) 'fields': [$fields], }; @@ -42484,24 +43880,19 @@ class RoutersResource { '/regions/' + commons.escapeVariable('$region') + '/routers/' + - commons.escapeVariable('$router'); + commons.escapeVariable('$router') + + '/getNatIpInfo'; final response_ = await _requester.request( url_, - 'PUT', - body: body_, + 'GET', queryParams: queryParams_, ); - return Operation.fromJson(response_ as core.Map); + return NatIpInfoResponse.fromJson( + response_ as core.Map); } -} - -class RoutesResource { - final commons.ApiRequester _requester; - - RoutesResource(commons.ApiRequester client) : _requester = client; - /// Deletes the specified Route resource. + /// Retrieves runtime Nat mapping information of VM endpoints. /// /// Request parameters: /// @@ -42509,56 +43900,127 @@ class RoutesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [route] - Name of the Route resource to delete. + /// [region] - Name of the region for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// + /// [router] - Name of the Router resource to query for Nat Mapping + /// information of VM endpoints. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [requestId] - An optional request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. For example, - /// consider a situation where you make an initial request and the request - /// times out. If you make the request again with the same request ID, the - /// server can check if original operation with the same request ID was - /// received, and if so, will ignore the second request. This prevents clients - /// from accidentally creating duplicate commitments. The request ID must be a - /// valid UUID with the exception that zero UUID is not supported ( - /// 00000000-0000-0000-0000-000000000000). + /// [filter] - A filter expression that filters resources listed in the + /// response. Most Compute resources support two types of filter expressions: + /// expressions that support regular expressions and expressions that follow + /// API improvement proposal AIP-160. These two types of filter expressions + /// cannot be mixed in one request. If you want to use AIP-160, your + /// expression must specify the field name, an operator, and the value that + /// you want to use for filtering. The value must be a string, a number, or a + /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or + /// `:`. For example, if you are filtering Compute Engine instances, you can + /// exclude instances named `example-instance` by specifying `name != + /// example-instance`. The `:*` comparison can be used to test whether a key + /// has been defined. For example, to find all objects with `owner` label use: + /// ``` labels.owner:* ``` You can also filter nested fields. For example, you + /// could specify `scheduling.automaticRestart = false` to include instances + /// only if they are not scheduled for automatic restarts. You can use + /// filtering on nested fields to filter based on resource labels. To filter + /// on multiple expressions, provide each separate expression within + /// parentheses. For example: ``` (scheduling.automaticRestart = true) + /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an + /// `AND` expression. However, you can include `AND` and `OR` expressions + /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR + /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) + /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` + /// (not equal) operator against a single un-parenthesized expression with or + /// without quotes or against multiple parenthesized expressions. Examples: + /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` + /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) + /// (fieldname2 ne "literal")` The literal value is interpreted as a regular + /// expression using Google RE2 library syntax. The literal value must match + /// the entire field. For example, to filter for instances that do not end + /// with name "instance", you would use `name ne .*instance`. You cannot + /// combine constraints on multiple fields using regular expressions. + /// + /// [maxResults] - The maximum number of results per page that should be + /// returned. If the number of available results is larger than `maxResults`, + /// Compute Engine returns a `nextPageToken` that can be used to get the next + /// page of results in subsequent list requests. Acceptable values are `0` to + /// `500`, inclusive. (Default: `500`) + /// + /// [natName] - Name of the nat service to filter the Nat Mapping information. + /// If it is omitted, all nats for this router will be returned. Name should + /// conform to RFC1035. + /// + /// [orderBy] - Sorts list results by a certain order. By default, results are + /// returned in alphanumerical order based on the resource name. You can also + /// sort results in descending order based on the creation timestamp using + /// `orderBy="creationTimestamp desc"`. This sorts results based on the + /// `creationTimestamp` field in reverse chronological order (newest result + /// first). Use this to sort resources like operations so that the newest + /// operation is returned first. Currently, only sorting by `name` or + /// `creationTimestamp desc` is supported. + /// + /// [pageToken] - Specifies a page token to use. Set `pageToken` to the + /// `nextPageToken` returned by a previous list request to get the next page + /// of results. + /// + /// [returnPartialSuccess] - Opt-in for partial success behavior which + /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [Operation]. + /// Completes with a [VmEndpointNatMappingsList]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future delete( + async.Future getNatMappingInfo( core.String project, - core.String route, { - core.String? requestId, + core.String region, + core.String router, { + core.String? filter, + core.int? maxResults, + core.String? natName, + core.String? orderBy, + core.String? pageToken, + core.bool? returnPartialSuccess, core.String? $fields, }) async { final queryParams_ = >{ - if (requestId != null) 'requestId': [requestId], + if (filter != null) 'filter': [filter], + if (maxResults != null) 'maxResults': ['${maxResults}'], + if (natName != null) 'natName': [natName], + if (orderBy != null) 'orderBy': [orderBy], + if (pageToken != null) 'pageToken': [pageToken], + if (returnPartialSuccess != null) + 'returnPartialSuccess': ['${returnPartialSuccess}'], if ($fields != null) 'fields': [$fields], }; final url_ = 'projects/' + commons.escapeVariable('$project') + - '/global/routes/' + - commons.escapeVariable('$route'); + '/regions/' + + commons.escapeVariable('$region') + + '/routers/' + + commons.escapeVariable('$router') + + '/getNatMappingInfo'; final response_ = await _requester.request( url_, - 'DELETE', + 'GET', queryParams: queryParams_, ); - return Operation.fromJson(response_ as core.Map); + return VmEndpointNatMappingsList.fromJson( + response_ as core.Map); } - /// Returns the specified Route resource. + /// Retrieves runtime information of the specified router. /// /// Request parameters: /// @@ -42566,23 +44028,27 @@ class RoutesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [route] - Name of the Route resource to return. + /// [region] - Name of the region for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// + /// [router] - Name of the Router resource to query. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [Route]. + /// Completes with a [RouterStatusResponse]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future get( + async.Future getRouterStatus( core.String project, - core.String route, { + core.String region, + core.String router, { core.String? $fields, }) async { final queryParams_ = >{ @@ -42591,19 +44057,23 @@ class RoutesResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/global/routes/' + - commons.escapeVariable('$route'); + '/regions/' + + commons.escapeVariable('$region') + + '/routers/' + + commons.escapeVariable('$router') + + '/getRouterStatus'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return Route.fromJson(response_ as core.Map); + return RouterStatusResponse.fromJson( + response_ as core.Map); } - /// Creates a Route resource in the specified project using the data included - /// in the request. + /// Creates a Router resource in the specified project and region using the + /// data included in the request. /// /// [request] - The metadata request object. /// @@ -42613,6 +44083,9 @@ class RoutesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// + /// [region] - Name of the region for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// /// [requestId] - An optional request ID to identify requests. Specify a /// unique request ID so that if you must retry your request, the server will /// know to ignore the request if it has already been completed. For example, @@ -42635,8 +44108,9 @@ class RoutesResource { /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. async.Future insert( - Route request, - core.String project, { + Router request, + core.String project, + core.String region, { core.String? requestId, core.String? $fields, }) async { @@ -42646,8 +44120,11 @@ class RoutesResource { if ($fields != null) 'fields': [$fields], }; - final url_ = - 'projects/' + commons.escapeVariable('$project') + '/global/routes'; + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/regions/' + + commons.escapeVariable('$region') + + '/routers'; final response_ = await _requester.request( url_, @@ -42658,7 +44135,7 @@ class RoutesResource { return Operation.fromJson(response_ as core.Map); } - /// Retrieves the list of Route resources available to the specified project. + /// Retrieves a list of Router resources available to the specified project. /// /// Request parameters: /// @@ -42666,6 +44143,9 @@ class RoutesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// + /// [region] - Name of the region for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// /// [filter] - A filter expression that filters resources listed in the /// response. Most Compute resources support two types of filter expressions: /// expressions that support regular expressions and expressions that follow @@ -42720,19 +44200,23 @@ class RoutesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [RouteList]. + /// Completes with a [RouterList]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future list( - core.String project, { + async.Future list( + core.String project, + core.String region, { core.String? filter, core.int? maxResults, core.String? orderBy, @@ -42750,24 +44234,26 @@ class RoutesResource { if ($fields != null) 'fields': [$fields], }; - final url_ = - 'projects/' + commons.escapeVariable('$project') + '/global/routes'; + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/regions/' + + commons.escapeVariable('$region') + + '/routers'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return RouteList.fromJson(response_ as core.Map); + return RouterList.fromJson( + response_ as core.Map); } -} - -class SecurityPoliciesResource { - final commons.ApiRequester _requester; - - SecurityPoliciesResource(commons.ApiRequester client) : _requester = client; - /// Inserts a rule into a security policy. + /// Patches the specified Router resource with the data included in the + /// request. + /// + /// This method supports PATCH semantics and uses JSON merge patch format and + /// processing rules. /// /// [request] - The metadata request object. /// @@ -42777,11 +44263,23 @@ class SecurityPoliciesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [securityPolicy] - Name of the security policy to update. + /// [region] - Name of the region for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// + /// [router] - Name of the Router resource to patch. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [validateOnly] - If true, the request will not be committed. + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -42793,156 +44291,103 @@ class SecurityPoliciesResource { /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future addRule( - SecurityPolicyRule request, + async.Future patch( + Router request, core.String project, - core.String securityPolicy, { - core.bool? validateOnly, + core.String region, + core.String router, { + core.String? requestId, core.String? $fields, }) async { final body_ = convert.json.encode(request); final queryParams_ = >{ - if (validateOnly != null) 'validateOnly': ['${validateOnly}'], + if (requestId != null) 'requestId': [requestId], if ($fields != null) 'fields': [$fields], }; final url_ = 'projects/' + commons.escapeVariable('$project') + - '/global/securityPolicies/' + - commons.escapeVariable('$securityPolicy') + - '/addRule'; + '/regions/' + + commons.escapeVariable('$region') + + '/routers/' + + commons.escapeVariable('$router'); final response_ = await _requester.request( url_, - 'POST', + 'PATCH', body: body_, queryParams: queryParams_, ); return Operation.fromJson(response_ as core.Map); } - /// Retrieves the list of all SecurityPolicy resources, regional and global, - /// available to the specified project. + /// Preview fields auto-generated during router create and update operations. + /// + /// Calling this method does NOT create or update the router. + /// + /// [request] - The metadata request object. /// /// Request parameters: /// - /// [project] - Name of the project scoping this request. + /// [project] - Project ID for this request. /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [filter] - A filter expression that filters resources listed in the - /// response. Most Compute resources support two types of filter expressions: - /// expressions that support regular expressions and expressions that follow - /// API improvement proposal AIP-160. These two types of filter expressions - /// cannot be mixed in one request. If you want to use AIP-160, your - /// expression must specify the field name, an operator, and the value that - /// you want to use for filtering. The value must be a string, a number, or a - /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or - /// `:`. For example, if you are filtering Compute Engine instances, you can - /// exclude instances named `example-instance` by specifying `name != - /// example-instance`. The `:*` comparison can be used to test whether a key - /// has been defined. For example, to find all objects with `owner` label use: - /// ``` labels.owner:* ``` You can also filter nested fields. For example, you - /// could specify `scheduling.automaticRestart = false` to include instances - /// only if they are not scheduled for automatic restarts. You can use - /// filtering on nested fields to filter based on resource labels. To filter - /// on multiple expressions, provide each separate expression within - /// parentheses. For example: ``` (scheduling.automaticRestart = true) - /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an - /// `AND` expression. However, you can include `AND` and `OR` expressions - /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR - /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) - /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` - /// (not equal) operator against a single un-parenthesized expression with or - /// without quotes or against multiple parenthesized expressions. Examples: - /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` - /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) - /// (fieldname2 ne "literal")` The literal value is interpreted as a regular - /// expression using Google RE2 library syntax. The literal value must match - /// the entire field. For example, to filter for instances that do not end - /// with name "instance", you would use `name ne .*instance`. You cannot - /// combine constraints on multiple fields using regular expressions. - /// - /// [includeAllScopes] - Indicates whether every visible scope for each scope - /// type (zone, region, global) should be included in the response. For new - /// resource types added after this field, the flag has no effect as new - /// resource types will always include every visible scope for each scope type - /// in response. For resource types which predate this field, if this flag is - /// omitted or false, only scopes of the scope types where the resource type - /// is expected to be found will be included. - /// - /// [maxResults] - The maximum number of results per page that should be - /// returned. If the number of available results is larger than `maxResults`, - /// Compute Engine returns a `nextPageToken` that can be used to get the next - /// page of results in subsequent list requests. Acceptable values are `0` to - /// `500`, inclusive. (Default: `500`) - /// - /// [orderBy] - Sorts list results by a certain order. By default, results are - /// returned in alphanumerical order based on the resource name. You can also - /// sort results in descending order based on the creation timestamp using - /// `orderBy="creationTimestamp desc"`. This sorts results based on the - /// `creationTimestamp` field in reverse chronological order (newest result - /// first). Use this to sort resources like operations so that the newest - /// operation is returned first. Currently, only sorting by `name` or - /// `creationTimestamp desc` is supported. - /// - /// [pageToken] - Specifies a page token to use. Set `pageToken` to the - /// `nextPageToken` returned by a previous list request to get the next page - /// of results. - /// - /// [returnPartialSuccess] - Opt-in for partial success behavior which - /// provides partial results in case of failure. The default value is false. + /// [region] - Name of the region for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [serviceProjectNumber] - null + /// [router] - Name of the Router resource to query. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [SecurityPoliciesAggregatedList]. + /// Completes with a [RoutersPreviewResponse]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future aggregatedList( - core.String project, { - core.String? filter, - core.bool? includeAllScopes, - core.int? maxResults, - core.String? orderBy, - core.String? pageToken, - core.bool? returnPartialSuccess, - core.String? serviceProjectNumber, + async.Future preview( + Router request, + core.String project, + core.String region, + core.String router, { core.String? $fields, }) async { + final body_ = convert.json.encode(request); final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (includeAllScopes != null) 'includeAllScopes': ['${includeAllScopes}'], - if (maxResults != null) 'maxResults': ['${maxResults}'], - if (orderBy != null) 'orderBy': [orderBy], - if (pageToken != null) 'pageToken': [pageToken], - if (returnPartialSuccess != null) - 'returnPartialSuccess': ['${returnPartialSuccess}'], - if (serviceProjectNumber != null) - 'serviceProjectNumber': [serviceProjectNumber], if ($fields != null) 'fields': [$fields], }; final url_ = 'projects/' + commons.escapeVariable('$project') + - '/aggregated/securityPolicies'; + '/regions/' + + commons.escapeVariable('$region') + + '/routers/' + + commons.escapeVariable('$router') + + '/preview'; final response_ = await _requester.request( url_, - 'GET', + 'POST', + body: body_, queryParams: queryParams_, ); - return SecurityPoliciesAggregatedList.fromJson( + return RoutersPreviewResponse.fromJson( response_ as core.Map); } - /// Deletes the specified policy. + /// Updates the specified Router resource with the data included in the + /// request. + /// + /// This method conforms to PUT semantics, which requests that the state of + /// the target resource be created or replaced with the state defined by the + /// representation enclosed in the request message payload. + /// + /// [request] - The metadata request object. /// /// Request parameters: /// @@ -42950,7 +44395,10 @@ class SecurityPoliciesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [securityPolicy] - Name of the security policy to delete. + /// [region] - Name of the region for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// + /// [router] - Name of the Router resource to update. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// @@ -42975,12 +44423,15 @@ class SecurityPoliciesResource { /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future delete( + async.Future update( + Router request, core.String project, - core.String securityPolicy, { + core.String region, + core.String router, { core.String? requestId, core.String? $fields, }) async { + final body_ = convert.json.encode(request); final queryParams_ = >{ if (requestId != null) 'requestId': [requestId], if ($fields != null) 'fields': [$fields], @@ -42988,18 +44439,27 @@ class SecurityPoliciesResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/global/securityPolicies/' + - commons.escapeVariable('$securityPolicy'); + '/regions/' + + commons.escapeVariable('$region') + + '/routers/' + + commons.escapeVariable('$router'); final response_ = await _requester.request( url_, - 'DELETE', + 'PUT', + body: body_, queryParams: queryParams_, ); return Operation.fromJson(response_ as core.Map); } +} - /// List all of the ordered rules present in a single specified policy. +class RoutesResource { + final commons.ApiRequester _requester; + + RoutesResource(commons.ApiRequester client) : _requester = client; + + /// Deletes the specified Route resource. /// /// Request parameters: /// @@ -43007,44 +44467,56 @@ class SecurityPoliciesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [securityPolicy] - Name of the security policy to get. + /// [route] - Name of the Route resource to delete. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). + /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [SecurityPolicy]. + /// Completes with a [Operation]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future get( + async.Future delete( core.String project, - core.String securityPolicy, { + core.String route, { + core.String? requestId, core.String? $fields, }) async { final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], if ($fields != null) 'fields': [$fields], }; final url_ = 'projects/' + commons.escapeVariable('$project') + - '/global/securityPolicies/' + - commons.escapeVariable('$securityPolicy'); + '/global/routes/' + + commons.escapeVariable('$route'); final response_ = await _requester.request( url_, - 'GET', + 'DELETE', queryParams: queryParams_, ); - return SecurityPolicy.fromJson( - response_ as core.Map); + return Operation.fromJson(response_ as core.Map); } - /// Gets a rule at the specified priority. + /// Returns the specified Route resource. /// /// Request parameters: /// @@ -43052,51 +44524,44 @@ class SecurityPoliciesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [securityPolicy] - Name of the security policy to which the queried rule - /// belongs. + /// [route] - Name of the Route resource to return. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [priority] - The priority of the rule to get from the security policy. - /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [SecurityPolicyRule]. + /// Completes with a [Route]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future getRule( + async.Future get( core.String project, - core.String securityPolicy, { - core.int? priority, + core.String route, { core.String? $fields, }) async { final queryParams_ = >{ - if (priority != null) 'priority': ['${priority}'], if ($fields != null) 'fields': [$fields], }; final url_ = 'projects/' + commons.escapeVariable('$project') + - '/global/securityPolicies/' + - commons.escapeVariable('$securityPolicy') + - '/getRule'; + '/global/routes/' + + commons.escapeVariable('$route'); final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return SecurityPolicyRule.fromJson( - response_ as core.Map); + return Route.fromJson(response_ as core.Map); } - /// Creates a new policy in the specified project using the data included in - /// the request. + /// Creates a Route resource in the specified project using the data included + /// in the request. /// /// [request] - The metadata request object. /// @@ -43117,8 +44582,6 @@ class SecurityPoliciesResource { /// valid UUID with the exception that zero UUID is not supported ( /// 00000000-0000-0000-0000-000000000000). /// - /// [validateOnly] - If true, the request will not be committed. - /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// @@ -43130,22 +44593,19 @@ class SecurityPoliciesResource { /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. async.Future insert( - SecurityPolicy request, + Route request, core.String project, { core.String? requestId, - core.bool? validateOnly, core.String? $fields, }) async { final body_ = convert.json.encode(request); final queryParams_ = >{ if (requestId != null) 'requestId': [requestId], - if (validateOnly != null) 'validateOnly': ['${validateOnly}'], if ($fields != null) 'fields': [$fields], }; - final url_ = 'projects/' + - commons.escapeVariable('$project') + - '/global/securityPolicies'; + final url_ = + 'projects/' + commons.escapeVariable('$project') + '/global/routes'; final response_ = await _requester.request( url_, @@ -43156,7 +44616,7 @@ class SecurityPoliciesResource { return Operation.fromJson(response_ as core.Map); } - /// List all the policies that have been configured for the specified project. + /// Retrieves the list of Route resources available to the specified project. /// /// Request parameters: /// @@ -43218,18 +44678,21 @@ class SecurityPoliciesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [SecurityPolicyList]. + /// Completes with a [RouteList]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future list( + async.Future list( core.String project, { core.String? filter, core.int? maxResults, @@ -43248,21 +44711,26 @@ class SecurityPoliciesResource { if ($fields != null) 'fields': [$fields], }; - final url_ = 'projects/' + - commons.escapeVariable('$project') + - '/global/securityPolicies'; + final url_ = + 'projects/' + commons.escapeVariable('$project') + '/global/routes'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return SecurityPolicyList.fromJson( - response_ as core.Map); + return RouteList.fromJson(response_ as core.Map); } +} - /// Gets the current list of preconfigured Web Application Firewall (WAF) - /// expressions. +class SecurityPoliciesResource { + final commons.ApiRequester _requester; + + SecurityPoliciesResource(commons.ApiRequester client) : _requester = client; + + /// Inserts a rule into a security policy. + /// + /// [request] - The metadata request object. /// /// Request parameters: /// @@ -43270,16 +44738,520 @@ class SecurityPoliciesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [filter] - A filter expression that filters resources listed in the - /// response. Most Compute resources support two types of filter expressions: - /// expressions that support regular expressions and expressions that follow - /// API improvement proposal AIP-160. These two types of filter expressions - /// cannot be mixed in one request. If you want to use AIP-160, your - /// expression must specify the field name, an operator, and the value that - /// you want to use for filtering. The value must be a string, a number, or a - /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or - /// `:`. For example, if you are filtering Compute Engine instances, you can - /// exclude instances named `example-instance` by specifying `name != + /// [securityPolicy] - Name of the security policy to update. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// + /// [validateOnly] - If true, the request will not be committed. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future addRule( + SecurityPolicyRule request, + core.String project, + core.String securityPolicy, { + core.bool? validateOnly, + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if (validateOnly != null) 'validateOnly': ['${validateOnly}'], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/global/securityPolicies/' + + commons.escapeVariable('$securityPolicy') + + '/addRule'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + + /// Retrieves the list of all SecurityPolicy resources, regional and global, + /// available to the specified project. + /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. + /// + /// Request parameters: + /// + /// [project] - Name of the project scoping this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [filter] - A filter expression that filters resources listed in the + /// response. Most Compute resources support two types of filter expressions: + /// expressions that support regular expressions and expressions that follow + /// API improvement proposal AIP-160. These two types of filter expressions + /// cannot be mixed in one request. If you want to use AIP-160, your + /// expression must specify the field name, an operator, and the value that + /// you want to use for filtering. The value must be a string, a number, or a + /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or + /// `:`. For example, if you are filtering Compute Engine instances, you can + /// exclude instances named `example-instance` by specifying `name != + /// example-instance`. The `:*` comparison can be used to test whether a key + /// has been defined. For example, to find all objects with `owner` label use: + /// ``` labels.owner:* ``` You can also filter nested fields. For example, you + /// could specify `scheduling.automaticRestart = false` to include instances + /// only if they are not scheduled for automatic restarts. You can use + /// filtering on nested fields to filter based on resource labels. To filter + /// on multiple expressions, provide each separate expression within + /// parentheses. For example: ``` (scheduling.automaticRestart = true) + /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an + /// `AND` expression. However, you can include `AND` and `OR` expressions + /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR + /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) + /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` + /// (not equal) operator against a single un-parenthesized expression with or + /// without quotes or against multiple parenthesized expressions. Examples: + /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` + /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) + /// (fieldname2 ne "literal")` The literal value is interpreted as a regular + /// expression using Google RE2 library syntax. The literal value must match + /// the entire field. For example, to filter for instances that do not end + /// with name "instance", you would use `name ne .*instance`. You cannot + /// combine constraints on multiple fields using regular expressions. + /// + /// [includeAllScopes] - Indicates whether every visible scope for each scope + /// type (zone, region, global) should be included in the response. For new + /// resource types added after this field, the flag has no effect as new + /// resource types will always include every visible scope for each scope type + /// in response. For resource types which predate this field, if this flag is + /// omitted or false, only scopes of the scope types where the resource type + /// is expected to be found will be included. + /// + /// [maxResults] - The maximum number of results per page that should be + /// returned. If the number of available results is larger than `maxResults`, + /// Compute Engine returns a `nextPageToken` that can be used to get the next + /// page of results in subsequent list requests. Acceptable values are `0` to + /// `500`, inclusive. (Default: `500`) + /// + /// [orderBy] - Sorts list results by a certain order. By default, results are + /// returned in alphanumerical order based on the resource name. You can also + /// sort results in descending order based on the creation timestamp using + /// `orderBy="creationTimestamp desc"`. This sorts results based on the + /// `creationTimestamp` field in reverse chronological order (newest result + /// first). Use this to sort resources like operations so that the newest + /// operation is returned first. Currently, only sorting by `name` or + /// `creationTimestamp desc` is supported. + /// + /// [pageToken] - Specifies a page token to use. Set `pageToken` to the + /// `nextPageToken` returned by a previous list request to get the next page + /// of results. + /// + /// [returnPartialSuccess] - Opt-in for partial success behavior which + /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. + /// + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [SecurityPoliciesAggregatedList]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future aggregatedList( + core.String project, { + core.String? filter, + core.bool? includeAllScopes, + core.int? maxResults, + core.String? orderBy, + core.String? pageToken, + core.bool? returnPartialSuccess, + core.String? serviceProjectNumber, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (filter != null) 'filter': [filter], + if (includeAllScopes != null) 'includeAllScopes': ['${includeAllScopes}'], + if (maxResults != null) 'maxResults': ['${maxResults}'], + if (orderBy != null) 'orderBy': [orderBy], + if (pageToken != null) 'pageToken': [pageToken], + if (returnPartialSuccess != null) + 'returnPartialSuccess': ['${returnPartialSuccess}'], + if (serviceProjectNumber != null) + 'serviceProjectNumber': [serviceProjectNumber], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/aggregated/securityPolicies'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return SecurityPoliciesAggregatedList.fromJson( + response_ as core.Map); + } + + /// Deletes the specified policy. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [securityPolicy] - Name of the security policy to delete. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future delete( + core.String project, + core.String securityPolicy, { + core.String? requestId, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/global/securityPolicies/' + + commons.escapeVariable('$securityPolicy'); + + final response_ = await _requester.request( + url_, + 'DELETE', + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + + /// List all of the ordered rules present in a single specified policy. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [securityPolicy] - Name of the security policy to get. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [SecurityPolicy]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String project, + core.String securityPolicy, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/global/securityPolicies/' + + commons.escapeVariable('$securityPolicy'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return SecurityPolicy.fromJson( + response_ as core.Map); + } + + /// Gets a rule at the specified priority. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [securityPolicy] - Name of the security policy to which the queried rule + /// belongs. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// + /// [priority] - The priority of the rule to get from the security policy. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [SecurityPolicyRule]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future getRule( + core.String project, + core.String securityPolicy, { + core.int? priority, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (priority != null) 'priority': ['${priority}'], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/global/securityPolicies/' + + commons.escapeVariable('$securityPolicy') + + '/getRule'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return SecurityPolicyRule.fromJson( + response_ as core.Map); + } + + /// Creates a new policy in the specified project using the data included in + /// the request. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). + /// + /// [validateOnly] - If true, the request will not be committed. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future insert( + SecurityPolicy request, + core.String project, { + core.String? requestId, + core.bool? validateOnly, + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], + if (validateOnly != null) 'validateOnly': ['${validateOnly}'], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/global/securityPolicies'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + + /// List all the policies that have been configured for the specified project. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [filter] - A filter expression that filters resources listed in the + /// response. Most Compute resources support two types of filter expressions: + /// expressions that support regular expressions and expressions that follow + /// API improvement proposal AIP-160. These two types of filter expressions + /// cannot be mixed in one request. If you want to use AIP-160, your + /// expression must specify the field name, an operator, and the value that + /// you want to use for filtering. The value must be a string, a number, or a + /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or + /// `:`. For example, if you are filtering Compute Engine instances, you can + /// exclude instances named `example-instance` by specifying `name != + /// example-instance`. The `:*` comparison can be used to test whether a key + /// has been defined. For example, to find all objects with `owner` label use: + /// ``` labels.owner:* ``` You can also filter nested fields. For example, you + /// could specify `scheduling.automaticRestart = false` to include instances + /// only if they are not scheduled for automatic restarts. You can use + /// filtering on nested fields to filter based on resource labels. To filter + /// on multiple expressions, provide each separate expression within + /// parentheses. For example: ``` (scheduling.automaticRestart = true) + /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an + /// `AND` expression. However, you can include `AND` and `OR` expressions + /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR + /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) + /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` + /// (not equal) operator against a single un-parenthesized expression with or + /// without quotes or against multiple parenthesized expressions. Examples: + /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` + /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) + /// (fieldname2 ne "literal")` The literal value is interpreted as a regular + /// expression using Google RE2 library syntax. The literal value must match + /// the entire field. For example, to filter for instances that do not end + /// with name "instance", you would use `name ne .*instance`. You cannot + /// combine constraints on multiple fields using regular expressions. + /// + /// [maxResults] - The maximum number of results per page that should be + /// returned. If the number of available results is larger than `maxResults`, + /// Compute Engine returns a `nextPageToken` that can be used to get the next + /// page of results in subsequent list requests. Acceptable values are `0` to + /// `500`, inclusive. (Default: `500`) + /// + /// [orderBy] - Sorts list results by a certain order. By default, results are + /// returned in alphanumerical order based on the resource name. You can also + /// sort results in descending order based on the creation timestamp using + /// `orderBy="creationTimestamp desc"`. This sorts results based on the + /// `creationTimestamp` field in reverse chronological order (newest result + /// first). Use this to sort resources like operations so that the newest + /// operation is returned first. Currently, only sorting by `name` or + /// `creationTimestamp desc` is supported. + /// + /// [pageToken] - Specifies a page token to use. Set `pageToken` to the + /// `nextPageToken` returned by a previous list request to get the next page + /// of results. + /// + /// [returnPartialSuccess] - Opt-in for partial success behavior which + /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [SecurityPolicyList]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future list( + core.String project, { + core.String? filter, + core.int? maxResults, + core.String? orderBy, + core.String? pageToken, + core.bool? returnPartialSuccess, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (filter != null) 'filter': [filter], + if (maxResults != null) 'maxResults': ['${maxResults}'], + if (orderBy != null) 'orderBy': [orderBy], + if (pageToken != null) 'pageToken': [pageToken], + if (returnPartialSuccess != null) + 'returnPartialSuccess': ['${returnPartialSuccess}'], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/global/securityPolicies'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return SecurityPolicyList.fromJson( + response_ as core.Map); + } + + /// Gets the current list of preconfigured Web Application Firewall (WAF) + /// expressions. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [filter] - A filter expression that filters resources listed in the + /// response. Most Compute resources support two types of filter expressions: + /// expressions that support regular expressions and expressions that follow + /// API improvement proposal AIP-160. These two types of filter expressions + /// cannot be mixed in one request. If you want to use AIP-160, your + /// expression must specify the field name, an operator, and the value that + /// you want to use for filtering. The value must be a string, a number, or a + /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or + /// `:`. For example, if you are filtering Compute Engine instances, you can + /// exclude instances named `example-instance` by specifying `name != /// example-instance`. The `:*` comparison can be used to test whether a key /// has been defined. For example, to find all objects with `owner` label use: /// ``` labels.owner:* ``` You can also filter nested fields. For example, you @@ -43324,6 +45296,9 @@ class SecurityPoliciesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -43615,6 +45590,9 @@ class ServiceAttachmentsResource { /// Retrieves the list of all ServiceAttachment resources, regional and /// global, available to the specified project. /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. + /// /// Request parameters: /// /// [project] - Name of the project scoping this request. @@ -43683,8 +45661,13 @@ class ServiceAttachmentsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -44033,6 +46016,9 @@ class ServiceAttachmentsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -44659,6 +46645,9 @@ class SnapshotsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -44865,6 +46854,9 @@ class SslCertificatesResource { /// Retrieves the list of all SslCertificate resources, regional and global, /// available to the specified project. /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. + /// /// Request parameters: /// /// [project] - Name of the project scoping this request. @@ -44933,8 +46925,13 @@ class SslCertificatesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -45205,6 +47202,9 @@ class SslCertificatesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -45257,6 +47257,9 @@ class SslPoliciesResource { /// Retrieves the list of all SslPolicy resources, regional and global, /// available to the specified project. /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. + /// /// Request parameters: /// /// [project] - Name of the project scoping this request. @@ -45325,8 +47328,13 @@ class SslPoliciesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -45596,6 +47604,9 @@ class SslPoliciesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -45702,6 +47713,9 @@ class SslPoliciesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -45814,6 +47828,9 @@ class SubnetworksResource { /// Retrieves an aggregated list of subnetworks. /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. + /// /// Request parameters: /// /// [project] - Project ID for this request. @@ -45882,8 +47899,13 @@ class SubnetworksResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -46301,6 +48323,9 @@ class SubnetworksResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -46409,6 +48434,9 @@ class SubnetworksResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -46948,6 +48976,9 @@ class TargetGrpcProxiesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -47066,6 +49097,9 @@ class TargetHttpProxiesResource { /// Retrieves the list of all TargetHttpProxy resources, regional and global, /// available to the specified project. /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. + /// /// Request parameters: /// /// [project] - Name of the project scoping this request. @@ -47134,8 +49168,13 @@ class TargetHttpProxiesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -47406,6 +49445,9 @@ class TargetHttpProxiesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -47587,6 +49629,9 @@ class TargetHttpsProxiesResource { /// Retrieves the list of all TargetHttpsProxy resources, regional and global, /// available to the specified project. /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. + /// /// Request parameters: /// /// [project] - Name of the project scoping this request. @@ -47655,8 +49700,13 @@ class TargetHttpsProxiesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -47927,6 +49977,9 @@ class TargetHttpsProxiesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -48365,303 +50418,8 @@ class TargetInstancesResource { /// Retrieves an aggregated list of target instances. /// - /// Request parameters: - /// - /// [project] - Project ID for this request. - /// Value must have pattern - /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. - /// - /// [filter] - A filter expression that filters resources listed in the - /// response. Most Compute resources support two types of filter expressions: - /// expressions that support regular expressions and expressions that follow - /// API improvement proposal AIP-160. These two types of filter expressions - /// cannot be mixed in one request. If you want to use AIP-160, your - /// expression must specify the field name, an operator, and the value that - /// you want to use for filtering. The value must be a string, a number, or a - /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or - /// `:`. For example, if you are filtering Compute Engine instances, you can - /// exclude instances named `example-instance` by specifying `name != - /// example-instance`. The `:*` comparison can be used to test whether a key - /// has been defined. For example, to find all objects with `owner` label use: - /// ``` labels.owner:* ``` You can also filter nested fields. For example, you - /// could specify `scheduling.automaticRestart = false` to include instances - /// only if they are not scheduled for automatic restarts. You can use - /// filtering on nested fields to filter based on resource labels. To filter - /// on multiple expressions, provide each separate expression within - /// parentheses. For example: ``` (scheduling.automaticRestart = true) - /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an - /// `AND` expression. However, you can include `AND` and `OR` expressions - /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR - /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) - /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` - /// (not equal) operator against a single un-parenthesized expression with or - /// without quotes or against multiple parenthesized expressions. Examples: - /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` - /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) - /// (fieldname2 ne "literal")` The literal value is interpreted as a regular - /// expression using Google RE2 library syntax. The literal value must match - /// the entire field. For example, to filter for instances that do not end - /// with name "instance", you would use `name ne .*instance`. You cannot - /// combine constraints on multiple fields using regular expressions. - /// - /// [includeAllScopes] - Indicates whether every visible scope for each scope - /// type (zone, region, global) should be included in the response. For new - /// resource types added after this field, the flag has no effect as new - /// resource types will always include every visible scope for each scope type - /// in response. For resource types which predate this field, if this flag is - /// omitted or false, only scopes of the scope types where the resource type - /// is expected to be found will be included. - /// - /// [maxResults] - The maximum number of results per page that should be - /// returned. If the number of available results is larger than `maxResults`, - /// Compute Engine returns a `nextPageToken` that can be used to get the next - /// page of results in subsequent list requests. Acceptable values are `0` to - /// `500`, inclusive. (Default: `500`) - /// - /// [orderBy] - Sorts list results by a certain order. By default, results are - /// returned in alphanumerical order based on the resource name. You can also - /// sort results in descending order based on the creation timestamp using - /// `orderBy="creationTimestamp desc"`. This sorts results based on the - /// `creationTimestamp` field in reverse chronological order (newest result - /// first). Use this to sort resources like operations so that the newest - /// operation is returned first. Currently, only sorting by `name` or - /// `creationTimestamp desc` is supported. - /// - /// [pageToken] - Specifies a page token to use. Set `pageToken` to the - /// `nextPageToken` returned by a previous list request to get the next page - /// of results. - /// - /// [returnPartialSuccess] - Opt-in for partial success behavior which - /// provides partial results in case of failure. The default value is false. - /// - /// [serviceProjectNumber] - null - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [TargetInstanceAggregatedList]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future aggregatedList( - core.String project, { - core.String? filter, - core.bool? includeAllScopes, - core.int? maxResults, - core.String? orderBy, - core.String? pageToken, - core.bool? returnPartialSuccess, - core.String? serviceProjectNumber, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (includeAllScopes != null) 'includeAllScopes': ['${includeAllScopes}'], - if (maxResults != null) 'maxResults': ['${maxResults}'], - if (orderBy != null) 'orderBy': [orderBy], - if (pageToken != null) 'pageToken': [pageToken], - if (returnPartialSuccess != null) - 'returnPartialSuccess': ['${returnPartialSuccess}'], - if (serviceProjectNumber != null) - 'serviceProjectNumber': [serviceProjectNumber], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'projects/' + - commons.escapeVariable('$project') + - '/aggregated/targetInstances'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return TargetInstanceAggregatedList.fromJson( - response_ as core.Map); - } - - /// Deletes the specified TargetInstance resource. - /// - /// Request parameters: - /// - /// [project] - Project ID for this request. - /// Value must have pattern - /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. - /// - /// [zone] - Name of the zone scoping this request. - /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. - /// - /// [targetInstance] - Name of the TargetInstance resource to delete. - /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. - /// - /// [requestId] - An optional request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. For example, - /// consider a situation where you make an initial request and the request - /// times out. If you make the request again with the same request ID, the - /// server can check if original operation with the same request ID was - /// received, and if so, will ignore the second request. This prevents clients - /// from accidentally creating duplicate commitments. The request ID must be a - /// valid UUID with the exception that zero UUID is not supported ( - /// 00000000-0000-0000-0000-000000000000). - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Operation]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future delete( - core.String project, - core.String zone, - core.String targetInstance, { - core.String? requestId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (requestId != null) 'requestId': [requestId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'projects/' + - commons.escapeVariable('$project') + - '/zones/' + - commons.escapeVariable('$zone') + - '/targetInstances/' + - commons.escapeVariable('$targetInstance'); - - final response_ = await _requester.request( - url_, - 'DELETE', - queryParams: queryParams_, - ); - return Operation.fromJson(response_ as core.Map); - } - - /// Returns the specified TargetInstance resource. - /// - /// Request parameters: - /// - /// [project] - Project ID for this request. - /// Value must have pattern - /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. - /// - /// [zone] - Name of the zone scoping this request. - /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. - /// - /// [targetInstance] - Name of the TargetInstance resource to return. - /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [TargetInstance]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String project, - core.String zone, - core.String targetInstance, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'projects/' + - commons.escapeVariable('$project') + - '/zones/' + - commons.escapeVariable('$zone') + - '/targetInstances/' + - commons.escapeVariable('$targetInstance'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return TargetInstance.fromJson( - response_ as core.Map); - } - - /// Creates a TargetInstance resource in the specified project and zone using - /// the data included in the request. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [project] - Project ID for this request. - /// Value must have pattern - /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. - /// - /// [zone] - Name of the zone scoping this request. - /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. - /// - /// [requestId] - An optional request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. For example, - /// consider a situation where you make an initial request and the request - /// times out. If you make the request again with the same request ID, the - /// server can check if original operation with the same request ID was - /// received, and if so, will ignore the second request. This prevents clients - /// from accidentally creating duplicate commitments. The request ID must be a - /// valid UUID with the exception that zero UUID is not supported ( - /// 00000000-0000-0000-0000-000000000000). - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Operation]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future insert( - TargetInstance request, - core.String project, - core.String zone, { - core.String? requestId, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (requestId != null) 'requestId': [requestId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'projects/' + - commons.escapeVariable('$project') + - '/zones/' + - commons.escapeVariable('$zone') + - '/targetInstances'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return Operation.fromJson(response_ as core.Map); - } - - /// Retrieves a list of TargetInstance resources available to the specified - /// project and zone. + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. /// /// Request parameters: /// @@ -48669,9 +50427,6 @@ class TargetInstancesResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [zone] - Name of the zone scoping this request. - /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. - /// /// [filter] - A filter expression that filters resources listed in the /// response. Most Compute resources support two types of filter expressions: /// expressions that support regular expressions and expressions that follow @@ -48705,6 +50460,14 @@ class TargetInstancesResource { /// with name "instance", you would use `name ne .*instance`. You cannot /// combine constraints on multiple fields using regular expressions. /// + /// [includeAllScopes] - Indicates whether every visible scope for each scope + /// type (zone, region, global) should be included in the response. For new + /// resource types added after this field, the flag has no effect as new + /// resource types will always include every visible scope for each scope type + /// in response. For resource types which predate this field, if this flag is + /// omitted or false, only scopes of the scope types where the resource type + /// is expected to be found will be included. + /// /// [maxResults] - The maximum number of results per page that should be /// returned. If the number of available results is larger than `maxResults`, /// Compute Engine returns a `nextPageToken` that can be used to get the next @@ -48726,58 +50489,62 @@ class TargetInstancesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. + /// + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [TargetInstanceList]. + /// Completes with a [TargetInstanceAggregatedList]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future list( - core.String project, - core.String zone, { + async.Future aggregatedList( + core.String project, { core.String? filter, + core.bool? includeAllScopes, core.int? maxResults, core.String? orderBy, core.String? pageToken, core.bool? returnPartialSuccess, + core.String? serviceProjectNumber, core.String? $fields, }) async { final queryParams_ = >{ if (filter != null) 'filter': [filter], + if (includeAllScopes != null) 'includeAllScopes': ['${includeAllScopes}'], if (maxResults != null) 'maxResults': ['${maxResults}'], if (orderBy != null) 'orderBy': [orderBy], if (pageToken != null) 'pageToken': [pageToken], if (returnPartialSuccess != null) 'returnPartialSuccess': ['${returnPartialSuccess}'], + if (serviceProjectNumber != null) + 'serviceProjectNumber': [serviceProjectNumber], if ($fields != null) 'fields': [$fields], }; final url_ = 'projects/' + commons.escapeVariable('$project') + - '/zones/' + - commons.escapeVariable('$zone') + - '/targetInstances'; + '/aggregated/targetInstances'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return TargetInstanceList.fromJson( + return TargetInstanceAggregatedList.fromJson( response_ as core.Map); } - /// Sets the Google Cloud Armor security policy for the specified target - /// instance. - /// - /// For more information, see Google Cloud Armor Overview - /// - /// [request] - The metadata request object. + /// Deletes the specified TargetInstance resource. /// /// Request parameters: /// @@ -48788,8 +50555,9 @@ class TargetInstancesResource { /// [zone] - Name of the zone scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [targetInstance] - Name of the TargetInstance resource to which the - /// security policy should be set. The name should conform to RFC1035. + /// [targetInstance] - Name of the TargetInstance resource to delete. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// /// [requestId] - An optional request ID to identify requests. Specify a /// unique request ID so that if you must retry your request, the server will @@ -48812,15 +50580,13 @@ class TargetInstancesResource { /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future setSecurityPolicy( - SecurityPolicyReference request, + async.Future delete( core.String project, core.String zone, core.String targetInstance, { core.String? requestId, core.String? $fields, }) async { - final body_ = convert.json.encode(request); final queryParams_ = >{ if (requestId != null) 'requestId': [requestId], if ($fields != null) 'fields': [$fields], @@ -48831,27 +50597,17 @@ class TargetInstancesResource { '/zones/' + commons.escapeVariable('$zone') + '/targetInstances/' + - commons.escapeVariable('$targetInstance') + - '/setSecurityPolicy'; + commons.escapeVariable('$targetInstance'); final response_ = await _requester.request( url_, - 'POST', - body: body_, + 'DELETE', queryParams: queryParams_, ); return Operation.fromJson(response_ as core.Map); } -} - -class TargetPoolsResource { - final commons.ApiRequester _requester; - TargetPoolsResource(commons.ApiRequester client) : _requester = client; - - /// Adds health check URLs to a target pool. - /// - /// [request] - The metadata request object. + /// Returns the specified TargetInstance resource. /// /// Request parameters: /// @@ -48859,66 +50615,51 @@ class TargetPoolsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region scoping this request. + /// [zone] - Name of the zone scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [targetPool] - Name of the target pool to add a health check to. + /// [targetInstance] - Name of the TargetInstance resource to return. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// - /// [requestId] - An optional request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. For example, - /// consider a situation where you make an initial request and the request - /// times out. If you make the request again with the same request ID, the - /// server can check if original operation with the same request ID was - /// received, and if so, will ignore the second request. This prevents clients - /// from accidentally creating duplicate commitments. The request ID must be a - /// valid UUID with the exception that zero UUID is not supported ( - /// 00000000-0000-0000-0000-000000000000). - /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [Operation]. + /// Completes with a [TargetInstance]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future addHealthCheck( - TargetPoolsAddHealthCheckRequest request, + async.Future get( core.String project, - core.String region, - core.String targetPool, { - core.String? requestId, + core.String zone, + core.String targetInstance, { core.String? $fields, }) async { - final body_ = convert.json.encode(request); final queryParams_ = >{ - if (requestId != null) 'requestId': [requestId], if ($fields != null) 'fields': [$fields], }; final url_ = 'projects/' + commons.escapeVariable('$project') + - '/regions/' + - commons.escapeVariable('$region') + - '/targetPools/' + - commons.escapeVariable('$targetPool') + - '/addHealthCheck'; + '/zones/' + + commons.escapeVariable('$zone') + + '/targetInstances/' + + commons.escapeVariable('$targetInstance'); final response_ = await _requester.request( url_, - 'POST', - body: body_, + 'GET', queryParams: queryParams_, ); - return Operation.fromJson(response_ as core.Map); + return TargetInstance.fromJson( + response_ as core.Map); } - /// Adds an instance to a target pool. + /// Creates a TargetInstance resource in the specified project and zone using + /// the data included in the request. /// /// [request] - The metadata request object. /// @@ -48928,13 +50669,9 @@ class TargetPoolsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region scoping this request. + /// [zone] - Name of the zone scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [targetPool] - Name of the TargetPool resource to add instances to. - /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. - /// /// [requestId] - An optional request ID to identify requests. Specify a /// unique request ID so that if you must retry your request, the server will /// know to ignore the request if it has already been completed. For example, @@ -48956,11 +50693,10 @@ class TargetPoolsResource { /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future addInstance( - TargetPoolsAddInstanceRequest request, + async.Future insert( + TargetInstance request, core.String project, - core.String region, - core.String targetPool, { + core.String zone, { core.String? requestId, core.String? $fields, }) async { @@ -48972,11 +50708,9 @@ class TargetPoolsResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/regions/' + - commons.escapeVariable('$region') + - '/targetPools/' + - commons.escapeVariable('$targetPool') + - '/addInstance'; + '/zones/' + + commons.escapeVariable('$zone') + + '/targetInstances'; final response_ = await _requester.request( url_, @@ -48987,7 +50721,8 @@ class TargetPoolsResource { return Operation.fromJson(response_ as core.Map); } - /// Retrieves an aggregated list of target pools. + /// Retrieves a list of TargetInstance resources available to the specified + /// project and zone. /// /// Request parameters: /// @@ -48995,6 +50730,9 @@ class TargetPoolsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// + /// [zone] - Name of the zone scoping this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// /// [filter] - A filter expression that filters resources listed in the /// response. Most Compute resources support two types of filter expressions: /// expressions that support regular expressions and expressions that follow @@ -49028,14 +50766,6 @@ class TargetPoolsResource { /// with name "instance", you would use `name ne .*instance`. You cannot /// combine constraints on multiple fields using regular expressions. /// - /// [includeAllScopes] - Indicates whether every visible scope for each scope - /// type (zone, region, global) should be included in the response. For new - /// resource types added after this field, the flag has no effect as new - /// resource types will always include every visible scope for each scope type - /// in response. For resource types which predate this field, if this flag is - /// omitted or false, only scopes of the scope types where the resource type - /// is expected to be found will be included. - /// /// [maxResults] - The maximum number of results per page that should be /// returned. If the number of available results is larger than `maxResults`, /// Compute Engine returns a `nextPageToken` that can be used to get the next @@ -49057,57 +50787,61 @@ class TargetPoolsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. - /// - /// [serviceProjectNumber] - null + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [TargetPoolAggregatedList]. + /// Completes with a [TargetInstanceList]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future aggregatedList( - core.String project, { + async.Future list( + core.String project, + core.String zone, { core.String? filter, - core.bool? includeAllScopes, core.int? maxResults, core.String? orderBy, core.String? pageToken, core.bool? returnPartialSuccess, - core.String? serviceProjectNumber, core.String? $fields, }) async { final queryParams_ = >{ if (filter != null) 'filter': [filter], - if (includeAllScopes != null) 'includeAllScopes': ['${includeAllScopes}'], if (maxResults != null) 'maxResults': ['${maxResults}'], if (orderBy != null) 'orderBy': [orderBy], if (pageToken != null) 'pageToken': [pageToken], if (returnPartialSuccess != null) 'returnPartialSuccess': ['${returnPartialSuccess}'], - if (serviceProjectNumber != null) - 'serviceProjectNumber': [serviceProjectNumber], if ($fields != null) 'fields': [$fields], }; final url_ = 'projects/' + commons.escapeVariable('$project') + - '/aggregated/targetPools'; + '/zones/' + + commons.escapeVariable('$zone') + + '/targetInstances'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return TargetPoolAggregatedList.fromJson( + return TargetInstanceList.fromJson( response_ as core.Map); } - /// Deletes the specified target pool. + /// Sets the Google Cloud Armor security policy for the specified target + /// instance. + /// + /// For more information, see Google Cloud Armor Overview + /// + /// [request] - The metadata request object. /// /// Request parameters: /// @@ -49115,12 +50849,11 @@ class TargetPoolsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region scoping this request. + /// [zone] - Name of the zone scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [targetPool] - Name of the TargetPool resource to delete. - /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// [targetInstance] - Name of the TargetInstance resource to which the + /// security policy should be set. The name should conform to RFC1035. /// /// [requestId] - An optional request ID to identify requests. Specify a /// unique request ID so that if you must retry your request, the server will @@ -49143,13 +50876,15 @@ class TargetPoolsResource { /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future delete( + async.Future setSecurityPolicy( + SecurityPolicyReference request, core.String project, - core.String region, - core.String targetPool, { + core.String zone, + core.String targetInstance, { core.String? requestId, core.String? $fields, }) async { + final body_ = convert.json.encode(request); final queryParams_ = >{ if (requestId != null) 'requestId': [requestId], if ($fields != null) 'fields': [$fields], @@ -49157,72 +50892,28 @@ class TargetPoolsResource { final url_ = 'projects/' + commons.escapeVariable('$project') + - '/regions/' + - commons.escapeVariable('$region') + - '/targetPools/' + - commons.escapeVariable('$targetPool'); + '/zones/' + + commons.escapeVariable('$zone') + + '/targetInstances/' + + commons.escapeVariable('$targetInstance') + + '/setSecurityPolicy'; final response_ = await _requester.request( url_, - 'DELETE', + 'POST', + body: body_, queryParams: queryParams_, ); return Operation.fromJson(response_ as core.Map); } +} - /// Returns the specified target pool. - /// - /// Request parameters: - /// - /// [project] - Project ID for this request. - /// Value must have pattern - /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. - /// - /// [region] - Name of the region scoping this request. - /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. - /// - /// [targetPool] - Name of the TargetPool resource to return. - /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [TargetPool]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String project, - core.String region, - core.String targetPool, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'projects/' + - commons.escapeVariable('$project') + - '/regions/' + - commons.escapeVariable('$region') + - '/targetPools/' + - commons.escapeVariable('$targetPool'); +class TargetPoolsResource { + final commons.ApiRequester _requester; - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return TargetPool.fromJson( - response_ as core.Map); - } + TargetPoolsResource(commons.ApiRequester client) : _requester = client; - /// Gets the most recent health check results for each IP for the instance - /// that is referenced by the given target pool. + /// Adds health check URLs to a target pool. /// /// [request] - The metadata request object. /// @@ -49235,30 +50926,42 @@ class TargetPoolsResource { /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// - /// [targetPool] - Name of the TargetPool resource to which the queried - /// instance belongs. + /// [targetPool] - Name of the target pool to add a health check to. /// Value must have pattern /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. /// + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). + /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [TargetPoolInstanceHealth]. + /// Completes with a [Operation]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future getHealth( - InstanceReference request, + async.Future addHealthCheck( + TargetPoolsAddHealthCheckRequest request, core.String project, core.String region, core.String targetPool, { + core.String? requestId, core.String? $fields, }) async { final body_ = convert.json.encode(request); final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], if ($fields != null) 'fields': [$fields], }; @@ -49268,7 +50971,7 @@ class TargetPoolsResource { commons.escapeVariable('$region') + '/targetPools/' + commons.escapeVariable('$targetPool') + - '/getHealth'; + '/addHealthCheck'; final response_ = await _requester.request( url_, @@ -49276,12 +50979,10 @@ class TargetPoolsResource { body: body_, queryParams: queryParams_, ); - return TargetPoolInstanceHealth.fromJson( - response_ as core.Map); + return Operation.fromJson(response_ as core.Map); } - /// Creates a target pool in the specified project and region using the data - /// included in the request. + /// Adds an instance to a target pool. /// /// [request] - The metadata request object. /// @@ -49294,6 +50995,10 @@ class TargetPoolsResource { /// [region] - Name of the region scoping this request. /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. /// + /// [targetPool] - Name of the TargetPool resource to add instances to. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// /// [requestId] - An optional request ID to identify requests. Specify a /// unique request ID so that if you must retry your request, the server will /// know to ignore the request if it has already been completed. For example, @@ -49315,10 +51020,11 @@ class TargetPoolsResource { /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future insert( - TargetPool request, + async.Future addInstance( + TargetPoolsAddInstanceRequest request, core.String project, - core.String region, { + core.String region, + core.String targetPool, { core.String? requestId, core.String? $fields, }) async { @@ -49332,7 +51038,9 @@ class TargetPoolsResource { commons.escapeVariable('$project') + '/regions/' + commons.escapeVariable('$region') + - '/targetPools'; + '/targetPools/' + + commons.escapeVariable('$targetPool') + + '/addInstance'; final response_ = await _requester.request( url_, @@ -49343,8 +51051,10 @@ class TargetPoolsResource { return Operation.fromJson(response_ as core.Map); } - /// Retrieves a list of target pools available to the specified project and - /// region. + /// Retrieves an aggregated list of target pools. + /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. /// /// Request parameters: /// @@ -49352,9 +51062,371 @@ class TargetPoolsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region scoping this request. - /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. - /// + /// [filter] - A filter expression that filters resources listed in the + /// response. Most Compute resources support two types of filter expressions: + /// expressions that support regular expressions and expressions that follow + /// API improvement proposal AIP-160. These two types of filter expressions + /// cannot be mixed in one request. If you want to use AIP-160, your + /// expression must specify the field name, an operator, and the value that + /// you want to use for filtering. The value must be a string, a number, or a + /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or + /// `:`. For example, if you are filtering Compute Engine instances, you can + /// exclude instances named `example-instance` by specifying `name != + /// example-instance`. The `:*` comparison can be used to test whether a key + /// has been defined. For example, to find all objects with `owner` label use: + /// ``` labels.owner:* ``` You can also filter nested fields. For example, you + /// could specify `scheduling.automaticRestart = false` to include instances + /// only if they are not scheduled for automatic restarts. You can use + /// filtering on nested fields to filter based on resource labels. To filter + /// on multiple expressions, provide each separate expression within + /// parentheses. For example: ``` (scheduling.automaticRestart = true) + /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an + /// `AND` expression. However, you can include `AND` and `OR` expressions + /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR + /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) + /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` + /// (not equal) operator against a single un-parenthesized expression with or + /// without quotes or against multiple parenthesized expressions. Examples: + /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` + /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) + /// (fieldname2 ne "literal")` The literal value is interpreted as a regular + /// expression using Google RE2 library syntax. The literal value must match + /// the entire field. For example, to filter for instances that do not end + /// with name "instance", you would use `name ne .*instance`. You cannot + /// combine constraints on multiple fields using regular expressions. + /// + /// [includeAllScopes] - Indicates whether every visible scope for each scope + /// type (zone, region, global) should be included in the response. For new + /// resource types added after this field, the flag has no effect as new + /// resource types will always include every visible scope for each scope type + /// in response. For resource types which predate this field, if this flag is + /// omitted or false, only scopes of the scope types where the resource type + /// is expected to be found will be included. + /// + /// [maxResults] - The maximum number of results per page that should be + /// returned. If the number of available results is larger than `maxResults`, + /// Compute Engine returns a `nextPageToken` that can be used to get the next + /// page of results in subsequent list requests. Acceptable values are `0` to + /// `500`, inclusive. (Default: `500`) + /// + /// [orderBy] - Sorts list results by a certain order. By default, results are + /// returned in alphanumerical order based on the resource name. You can also + /// sort results in descending order based on the creation timestamp using + /// `orderBy="creationTimestamp desc"`. This sorts results based on the + /// `creationTimestamp` field in reverse chronological order (newest result + /// first). Use this to sort resources like operations so that the newest + /// operation is returned first. Currently, only sorting by `name` or + /// `creationTimestamp desc` is supported. + /// + /// [pageToken] - Specifies a page token to use. Set `pageToken` to the + /// `nextPageToken` returned by a previous list request to get the next page + /// of results. + /// + /// [returnPartialSuccess] - Opt-in for partial success behavior which + /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. + /// + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [TargetPoolAggregatedList]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future aggregatedList( + core.String project, { + core.String? filter, + core.bool? includeAllScopes, + core.int? maxResults, + core.String? orderBy, + core.String? pageToken, + core.bool? returnPartialSuccess, + core.String? serviceProjectNumber, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (filter != null) 'filter': [filter], + if (includeAllScopes != null) 'includeAllScopes': ['${includeAllScopes}'], + if (maxResults != null) 'maxResults': ['${maxResults}'], + if (orderBy != null) 'orderBy': [orderBy], + if (pageToken != null) 'pageToken': [pageToken], + if (returnPartialSuccess != null) + 'returnPartialSuccess': ['${returnPartialSuccess}'], + if (serviceProjectNumber != null) + 'serviceProjectNumber': [serviceProjectNumber], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/aggregated/targetPools'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return TargetPoolAggregatedList.fromJson( + response_ as core.Map); + } + + /// Deletes the specified target pool. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [region] - Name of the region scoping this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// + /// [targetPool] - Name of the TargetPool resource to delete. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future delete( + core.String project, + core.String region, + core.String targetPool, { + core.String? requestId, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/regions/' + + commons.escapeVariable('$region') + + '/targetPools/' + + commons.escapeVariable('$targetPool'); + + final response_ = await _requester.request( + url_, + 'DELETE', + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + + /// Returns the specified target pool. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [region] - Name of the region scoping this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// + /// [targetPool] - Name of the TargetPool resource to return. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [TargetPool]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String project, + core.String region, + core.String targetPool, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/regions/' + + commons.escapeVariable('$region') + + '/targetPools/' + + commons.escapeVariable('$targetPool'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return TargetPool.fromJson( + response_ as core.Map); + } + + /// Gets the most recent health check results for each IP for the instance + /// that is referenced by the given target pool. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [region] - Name of the region scoping this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// + /// [targetPool] - Name of the TargetPool resource to which the queried + /// instance belongs. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [TargetPoolInstanceHealth]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future getHealth( + InstanceReference request, + core.String project, + core.String region, + core.String targetPool, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/regions/' + + commons.escapeVariable('$region') + + '/targetPools/' + + commons.escapeVariable('$targetPool') + + '/getHealth'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return TargetPoolInstanceHealth.fromJson( + response_ as core.Map); + } + + /// Creates a target pool in the specified project and region using the data + /// included in the request. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [region] - Name of the region scoping this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future insert( + TargetPool request, + core.String project, + core.String region, { + core.String? requestId, + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/regions/' + + commons.escapeVariable('$region') + + '/targetPools'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + + /// Retrieves a list of target pools available to the specified project and + /// region. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [region] - Name of the region scoping this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// /// [filter] - A filter expression that filters resources listed in the /// response. Most Compute resources support two types of filter expressions: /// expressions that support regular expressions and expressions that follow @@ -49409,6 +51481,9 @@ class TargetPoolsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -49964,6 +52039,9 @@ class TargetSslProxiesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -50265,8 +52343,8 @@ class TargetSslProxiesResource { /// Sets the SSL policy for TargetSslProxy. /// /// The SSL policy specifies the server-side support for SSL features. This - /// affects connections between clients and the SSL proxy load balancer. They - /// do not affect the connection between the load balancer and the backends. + /// affects connections between clients and the load balancer. They do not + /// affect the connection between the load balancer and the backends. /// /// [request] - The metadata request object. /// @@ -50337,6 +52415,9 @@ class TargetTcpProxiesResource { /// Retrieves the list of all TargetTcpProxy resources, regional and global, /// available to the specified project. /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. + /// /// Request parameters: /// /// [project] - Name of the project scoping this request. @@ -50405,8 +52486,13 @@ class TargetTcpProxiesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -50677,6 +52763,9 @@ class TargetTcpProxiesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -50856,6 +52945,9 @@ class TargetVpnGatewaysResource { /// Retrieves an aggregated list of target VPN gateways. /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. + /// /// Request parameters: /// /// [project] - Project ID for this request. @@ -50924,8 +53016,13 @@ class TargetVpnGatewaysResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -51217,6 +53314,9 @@ class TargetVpnGatewaysResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -51343,6 +53443,9 @@ class UrlMapsResource { /// Retrieves the list of all UrlMap resources, regional and global, available /// to the specified project. /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. + /// /// Request parameters: /// /// [project] - Name of the project scoping this request. @@ -51411,8 +53514,13 @@ class UrlMapsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -51747,6 +53855,9 @@ class UrlMapsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -51980,6 +54091,9 @@ class VpnGatewaysResource { /// Retrieves an aggregated list of VPN gateways. /// + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. + /// /// Request parameters: /// /// [project] - Project ID for this request. @@ -52048,8 +54162,13 @@ class VpnGatewaysResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// - /// [serviceProjectNumber] - null + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -52393,6 +54512,9 @@ class VpnGatewaysResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -52575,188 +54697,8 @@ class VpnTunnelsResource { /// Retrieves an aggregated list of VPN tunnels. /// - /// Request parameters: - /// - /// [project] - Project ID for this request. - /// Value must have pattern - /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. - /// - /// [filter] - A filter expression that filters resources listed in the - /// response. Most Compute resources support two types of filter expressions: - /// expressions that support regular expressions and expressions that follow - /// API improvement proposal AIP-160. These two types of filter expressions - /// cannot be mixed in one request. If you want to use AIP-160, your - /// expression must specify the field name, an operator, and the value that - /// you want to use for filtering. The value must be a string, a number, or a - /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or - /// `:`. For example, if you are filtering Compute Engine instances, you can - /// exclude instances named `example-instance` by specifying `name != - /// example-instance`. The `:*` comparison can be used to test whether a key - /// has been defined. For example, to find all objects with `owner` label use: - /// ``` labels.owner:* ``` You can also filter nested fields. For example, you - /// could specify `scheduling.automaticRestart = false` to include instances - /// only if they are not scheduled for automatic restarts. You can use - /// filtering on nested fields to filter based on resource labels. To filter - /// on multiple expressions, provide each separate expression within - /// parentheses. For example: ``` (scheduling.automaticRestart = true) - /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an - /// `AND` expression. However, you can include `AND` and `OR` expressions - /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR - /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) - /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` - /// (not equal) operator against a single un-parenthesized expression with or - /// without quotes or against multiple parenthesized expressions. Examples: - /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` - /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) - /// (fieldname2 ne "literal")` The literal value is interpreted as a regular - /// expression using Google RE2 library syntax. The literal value must match - /// the entire field. For example, to filter for instances that do not end - /// with name "instance", you would use `name ne .*instance`. You cannot - /// combine constraints on multiple fields using regular expressions. - /// - /// [includeAllScopes] - Indicates whether every visible scope for each scope - /// type (zone, region, global) should be included in the response. For new - /// resource types added after this field, the flag has no effect as new - /// resource types will always include every visible scope for each scope type - /// in response. For resource types which predate this field, if this flag is - /// omitted or false, only scopes of the scope types where the resource type - /// is expected to be found will be included. - /// - /// [maxResults] - The maximum number of results per page that should be - /// returned. If the number of available results is larger than `maxResults`, - /// Compute Engine returns a `nextPageToken` that can be used to get the next - /// page of results in subsequent list requests. Acceptable values are `0` to - /// `500`, inclusive. (Default: `500`) - /// - /// [orderBy] - Sorts list results by a certain order. By default, results are - /// returned in alphanumerical order based on the resource name. You can also - /// sort results in descending order based on the creation timestamp using - /// `orderBy="creationTimestamp desc"`. This sorts results based on the - /// `creationTimestamp` field in reverse chronological order (newest result - /// first). Use this to sort resources like operations so that the newest - /// operation is returned first. Currently, only sorting by `name` or - /// `creationTimestamp desc` is supported. - /// - /// [pageToken] - Specifies a page token to use. Set `pageToken` to the - /// `nextPageToken` returned by a previous list request to get the next page - /// of results. - /// - /// [returnPartialSuccess] - Opt-in for partial success behavior which - /// provides partial results in case of failure. The default value is false. - /// - /// [serviceProjectNumber] - null - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [VpnTunnelAggregatedList]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future aggregatedList( - core.String project, { - core.String? filter, - core.bool? includeAllScopes, - core.int? maxResults, - core.String? orderBy, - core.String? pageToken, - core.bool? returnPartialSuccess, - core.String? serviceProjectNumber, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (includeAllScopes != null) 'includeAllScopes': ['${includeAllScopes}'], - if (maxResults != null) 'maxResults': ['${maxResults}'], - if (orderBy != null) 'orderBy': [orderBy], - if (pageToken != null) 'pageToken': [pageToken], - if (returnPartialSuccess != null) - 'returnPartialSuccess': ['${returnPartialSuccess}'], - if (serviceProjectNumber != null) - 'serviceProjectNumber': [serviceProjectNumber], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'projects/' + - commons.escapeVariable('$project') + - '/aggregated/vpnTunnels'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return VpnTunnelAggregatedList.fromJson( - response_ as core.Map); - } - - /// Deletes the specified VpnTunnel resource. - /// - /// Request parameters: - /// - /// [project] - Project ID for this request. - /// Value must have pattern - /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. - /// - /// [region] - Name of the region for this request. - /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. - /// - /// [vpnTunnel] - Name of the VpnTunnel resource to delete. - /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. - /// - /// [requestId] - An optional request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. For example, - /// consider a situation where you make an initial request and the request - /// times out. If you make the request again with the same request ID, the - /// server can check if original operation with the same request ID was - /// received, and if so, will ignore the second request. This prevents clients - /// from accidentally creating duplicate commitments. The request ID must be a - /// valid UUID with the exception that zero UUID is not supported ( - /// 00000000-0000-0000-0000-000000000000). - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Operation]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future delete( - core.String project, - core.String region, - core.String vpnTunnel, { - core.String? requestId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (requestId != null) 'requestId': [requestId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'projects/' + - commons.escapeVariable('$project') + - '/regions/' + - commons.escapeVariable('$region') + - '/vpnTunnels/' + - commons.escapeVariable('$vpnTunnel'); - - final response_ = await _requester.request( - url_, - 'DELETE', - queryParams: queryParams_, - ); - return Operation.fromJson(response_ as core.Map); - } - - /// Returns the specified VpnTunnel resource. + /// To prevent failure, Google recommends that you set the + /// `returnPartialSuccess` parameter to `true`. /// /// Request parameters: /// @@ -52764,123 +54706,311 @@ class VpnTunnelsResource { /// Value must have pattern /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. /// - /// [region] - Name of the region for this request. - /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. - /// - /// [vpnTunnel] - Name of the VpnTunnel resource to return. - /// Value must have pattern - /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [VpnTunnel]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String project, - core.String region, - core.String vpnTunnel, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'projects/' + - commons.escapeVariable('$project') + - '/regions/' + - commons.escapeVariable('$region') + - '/vpnTunnels/' + - commons.escapeVariable('$vpnTunnel'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return VpnTunnel.fromJson(response_ as core.Map); - } - - /// Creates a VpnTunnel resource in the specified project and region using the - /// data included in the request. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [project] - Project ID for this request. - /// Value must have pattern - /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. - /// - /// [region] - Name of the region for this request. - /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. - /// - /// [requestId] - An optional request ID to identify requests. Specify a - /// unique request ID so that if you must retry your request, the server will - /// know to ignore the request if it has already been completed. For example, - /// consider a situation where you make an initial request and the request - /// times out. If you make the request again with the same request ID, the - /// server can check if original operation with the same request ID was - /// received, and if so, will ignore the second request. This prevents clients - /// from accidentally creating duplicate commitments. The request ID must be a - /// valid UUID with the exception that zero UUID is not supported ( - /// 00000000-0000-0000-0000-000000000000). - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Operation]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future insert( - VpnTunnel request, - core.String project, - core.String region, { - core.String? requestId, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (requestId != null) 'requestId': [requestId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'projects/' + - commons.escapeVariable('$project') + - '/regions/' + - commons.escapeVariable('$region') + - '/vpnTunnels'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return Operation.fromJson(response_ as core.Map); - } - - /// Retrieves a list of VpnTunnel resources contained in the specified project - /// and region. - /// - /// Request parameters: - /// - /// [project] - Project ID for this request. - /// Value must have pattern - /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. - /// - /// [region] - Name of the region for this request. - /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. - /// + /// [filter] - A filter expression that filters resources listed in the + /// response. Most Compute resources support two types of filter expressions: + /// expressions that support regular expressions and expressions that follow + /// API improvement proposal AIP-160. These two types of filter expressions + /// cannot be mixed in one request. If you want to use AIP-160, your + /// expression must specify the field name, an operator, and the value that + /// you want to use for filtering. The value must be a string, a number, or a + /// boolean. The operator must be either `=`, `!=`, `>`, `<`, `<=`, `>=` or + /// `:`. For example, if you are filtering Compute Engine instances, you can + /// exclude instances named `example-instance` by specifying `name != + /// example-instance`. The `:*` comparison can be used to test whether a key + /// has been defined. For example, to find all objects with `owner` label use: + /// ``` labels.owner:* ``` You can also filter nested fields. For example, you + /// could specify `scheduling.automaticRestart = false` to include instances + /// only if they are not scheduled for automatic restarts. You can use + /// filtering on nested fields to filter based on resource labels. To filter + /// on multiple expressions, provide each separate expression within + /// parentheses. For example: ``` (scheduling.automaticRestart = true) + /// (cpuPlatform = "Intel Skylake") ``` By default, each expression is an + /// `AND` expression. However, you can include `AND` and `OR` expressions + /// explicitly. For example: ``` (cpuPlatform = "Intel Skylake") OR + /// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart = true) + /// ``` If you want to use a regular expression, use the `eq` (equal) or `ne` + /// (not equal) operator against a single un-parenthesized expression with or + /// without quotes or against multiple parenthesized expressions. Examples: + /// `fieldname eq unquoted literal` `fieldname eq 'single quoted literal'` + /// `fieldname eq "double quoted literal"` `(fieldname1 eq literal) + /// (fieldname2 ne "literal")` The literal value is interpreted as a regular + /// expression using Google RE2 library syntax. The literal value must match + /// the entire field. For example, to filter for instances that do not end + /// with name "instance", you would use `name ne .*instance`. You cannot + /// combine constraints on multiple fields using regular expressions. + /// + /// [includeAllScopes] - Indicates whether every visible scope for each scope + /// type (zone, region, global) should be included in the response. For new + /// resource types added after this field, the flag has no effect as new + /// resource types will always include every visible scope for each scope type + /// in response. For resource types which predate this field, if this flag is + /// omitted or false, only scopes of the scope types where the resource type + /// is expected to be found will be included. + /// + /// [maxResults] - The maximum number of results per page that should be + /// returned. If the number of available results is larger than `maxResults`, + /// Compute Engine returns a `nextPageToken` that can be used to get the next + /// page of results in subsequent list requests. Acceptable values are `0` to + /// `500`, inclusive. (Default: `500`) + /// + /// [orderBy] - Sorts list results by a certain order. By default, results are + /// returned in alphanumerical order based on the resource name. You can also + /// sort results in descending order based on the creation timestamp using + /// `orderBy="creationTimestamp desc"`. This sorts results based on the + /// `creationTimestamp` field in reverse chronological order (newest result + /// first). Use this to sort resources like operations so that the newest + /// operation is returned first. Currently, only sorting by `name` or + /// `creationTimestamp desc` is supported. + /// + /// [pageToken] - Specifies a page token to use. Set `pageToken` to the + /// `nextPageToken` returned by a previous list request to get the next page + /// of results. + /// + /// [returnPartialSuccess] - Opt-in for partial success behavior which + /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. + /// + /// [serviceProjectNumber] - The Shared VPC service project id or service + /// project number for which aggregated list request is invoked for + /// subnetworks list-usable api. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [VpnTunnelAggregatedList]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future aggregatedList( + core.String project, { + core.String? filter, + core.bool? includeAllScopes, + core.int? maxResults, + core.String? orderBy, + core.String? pageToken, + core.bool? returnPartialSuccess, + core.String? serviceProjectNumber, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (filter != null) 'filter': [filter], + if (includeAllScopes != null) 'includeAllScopes': ['${includeAllScopes}'], + if (maxResults != null) 'maxResults': ['${maxResults}'], + if (orderBy != null) 'orderBy': [orderBy], + if (pageToken != null) 'pageToken': [pageToken], + if (returnPartialSuccess != null) + 'returnPartialSuccess': ['${returnPartialSuccess}'], + if (serviceProjectNumber != null) + 'serviceProjectNumber': [serviceProjectNumber], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/aggregated/vpnTunnels'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return VpnTunnelAggregatedList.fromJson( + response_ as core.Map); + } + + /// Deletes the specified VpnTunnel resource. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [region] - Name of the region for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// + /// [vpnTunnel] - Name of the VpnTunnel resource to delete. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future delete( + core.String project, + core.String region, + core.String vpnTunnel, { + core.String? requestId, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/regions/' + + commons.escapeVariable('$region') + + '/vpnTunnels/' + + commons.escapeVariable('$vpnTunnel'); + + final response_ = await _requester.request( + url_, + 'DELETE', + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + + /// Returns the specified VpnTunnel resource. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [region] - Name of the region for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// + /// [vpnTunnel] - Name of the VpnTunnel resource to return. + /// Value must have pattern + /// `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?|\[1-9\]\[0-9\]{0,19}`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [VpnTunnel]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String project, + core.String region, + core.String vpnTunnel, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/regions/' + + commons.escapeVariable('$region') + + '/vpnTunnels/' + + commons.escapeVariable('$vpnTunnel'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return VpnTunnel.fromJson(response_ as core.Map); + } + + /// Creates a VpnTunnel resource in the specified project and region using the + /// data included in the request. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [region] - Name of the region for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// + /// [requestId] - An optional request ID to identify requests. Specify a + /// unique request ID so that if you must retry your request, the server will + /// know to ignore the request if it has already been completed. For example, + /// consider a situation where you make an initial request and the request + /// times out. If you make the request again with the same request ID, the + /// server can check if original operation with the same request ID was + /// received, and if so, will ignore the second request. This prevents clients + /// from accidentally creating duplicate commitments. The request ID must be a + /// valid UUID with the exception that zero UUID is not supported ( + /// 00000000-0000-0000-0000-000000000000). + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future insert( + VpnTunnel request, + core.String project, + core.String region, { + core.String? requestId, + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if (requestId != null) 'requestId': [requestId], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'projects/' + + commons.escapeVariable('$project') + + '/regions/' + + commons.escapeVariable('$region') + + '/vpnTunnels'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + + /// Retrieves a list of VpnTunnel resources contained in the specified project + /// and region. + /// + /// Request parameters: + /// + /// [project] - Project ID for this request. + /// Value must have pattern + /// `(?:(?:\[-a-z0-9\]{1,63}\.)*(?:\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?):)?(?:\[0-9\]{1,19}|(?:\[a-z0-9\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?))`. + /// + /// [region] - Name of the region for this request. + /// Value must have pattern `\[a-z\](?:\[-a-z0-9\]{0,61}\[a-z0-9\])?`. + /// /// [filter] - A filter expression that filters resources listed in the /// response. Most Compute resources support two types of filter expressions: /// expressions that support regular expressions and expressions that follow @@ -52935,6 +55065,9 @@ class VpnTunnelsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -53222,6 +55355,9 @@ class ZoneOperationsResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -53442,6 +55578,9 @@ class ZonesResource { /// /// [returnPartialSuccess] - Opt-in for partial success behavior which /// provides partial results in case of failure. The default value is false. + /// For example, when partial success behavior is enabled, aggregatedList for + /// a single zone scope either returns all resources in the zone or no + /// resources, with an error code. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -55530,6 +57669,132 @@ class AliasIpRange { }; } +/// This reservation type is specified by total resource amounts (e.g. total +/// count of CPUs) and can account for multiple instance SKUs. +/// +/// In other words, one can create instances of varying shapes against this +/// reservation. +class AllocationAggregateReservation { + /// List of resources currently in use. + /// + /// Output only. + core.List? inUseResources; + + /// List of reserved resources (CPUs, memory, accelerators). + core.List? + reservedResources; + + /// The VM family that all instances scheduled against this reservation must + /// belong to. + /// Possible string values are: + /// - "VM_FAMILY_CLOUD_TPU_LITE_DEVICE_CT5L" + /// - "VM_FAMILY_CLOUD_TPU_LITE_POD_SLICE_CT5LP" + /// - "VM_FAMILY_CLOUD_TPU_POD_SLICE_CT4P" + core.String? vmFamily; + + /// The workload type of the instances that will target this reservation. + /// Possible string values are: + /// - "BATCH" : Reserved resources will be optimized for BATCH workloads, such + /// as ML training. + /// - "SERVING" : Reserved resources will be optimized for SERVING workloads, + /// such as ML inference. + /// - "UNSPECIFIED" + core.String? workloadType; + + AllocationAggregateReservation({ + this.inUseResources, + this.reservedResources, + this.vmFamily, + this.workloadType, + }); + + AllocationAggregateReservation.fromJson(core.Map json_) + : this( + inUseResources: json_.containsKey('inUseResources') + ? (json_['inUseResources'] as core.List) + .map((value) => + AllocationAggregateReservationReservedResourceInfo + .fromJson( + value as core.Map)) + .toList() + : null, + reservedResources: json_.containsKey('reservedResources') + ? (json_['reservedResources'] as core.List) + .map((value) => + AllocationAggregateReservationReservedResourceInfo + .fromJson( + value as core.Map)) + .toList() + : null, + vmFamily: json_.containsKey('vmFamily') + ? json_['vmFamily'] as core.String + : null, + workloadType: json_.containsKey('workloadType') + ? json_['workloadType'] as core.String + : null, + ); + + core.Map toJson() => { + if (inUseResources != null) 'inUseResources': inUseResources!, + if (reservedResources != null) 'reservedResources': reservedResources!, + if (vmFamily != null) 'vmFamily': vmFamily!, + if (workloadType != null) 'workloadType': workloadType!, + }; +} + +class AllocationAggregateReservationReservedResourceInfo { + /// Properties of accelerator resources in this reservation. + AllocationAggregateReservationReservedResourceInfoAccelerator? accelerator; + + AllocationAggregateReservationReservedResourceInfo({ + this.accelerator, + }); + + AllocationAggregateReservationReservedResourceInfo.fromJson(core.Map json_) + : this( + accelerator: json_.containsKey('accelerator') + ? AllocationAggregateReservationReservedResourceInfoAccelerator + .fromJson(json_['accelerator'] + as core.Map) + : null, + ); + + core.Map toJson() => { + if (accelerator != null) 'accelerator': accelerator!, + }; +} + +class AllocationAggregateReservationReservedResourceInfoAccelerator { + /// Number of accelerators of specified type. + core.int? acceleratorCount; + + /// Full or partial URL to accelerator type. + /// + /// e.g. "projects/{PROJECT}/zones/{ZONE}/acceleratorTypes/ct4l" + core.String? acceleratorType; + + AllocationAggregateReservationReservedResourceInfoAccelerator({ + this.acceleratorCount, + this.acceleratorType, + }); + + AllocationAggregateReservationReservedResourceInfoAccelerator.fromJson( + core.Map json_) + : this( + acceleratorCount: json_.containsKey('acceleratorCount') + ? json_['acceleratorCount'] as core.int + : null, + acceleratorType: json_.containsKey('acceleratorType') + ? json_['acceleratorType'] as core.String + : null, + ); + + core.Map toJson() => { + if (acceleratorCount != null) 'acceleratorCount': acceleratorCount!, + if (acceleratorType != null) 'acceleratorType': acceleratorType!, + }; +} + /// Contains output only fields. /// /// Output only. @@ -56070,6 +58335,9 @@ class AttachedDiskInitializeParams { /// type of the disk, not the URL. For example: pd-standard. core.String? diskType; + /// Whether this disk is using confidential compute mode. + core.bool? enableConfidentialCompute; + /// Labels to apply to this disk. /// /// These can be later modified by the disks.setLabels method. This field is @@ -56102,7 +58370,7 @@ class AttachedDiskInitializeParams { /// Indicates how much throughput to provision for the disk. /// /// This sets the number of throughput mb per second that the disk can handle. - /// Values must be between 1 and 7,124. + /// Values must greater than or equal to 1. core.String? provisionedThroughput; /// Required for each regional disk associated with the instance. @@ -56171,6 +58439,7 @@ class AttachedDiskInitializeParams { this.diskName, this.diskSizeGb, this.diskType, + this.enableConfidentialCompute, this.labels, this.licenses, this.onUpdateAction, @@ -56202,6 +58471,10 @@ class AttachedDiskInitializeParams { diskType: json_.containsKey('diskType') ? json_['diskType'] as core.String : null, + enableConfidentialCompute: + json_.containsKey('enableConfidentialCompute') + ? json_['enableConfidentialCompute'] as core.bool + : null, labels: json_.containsKey('labels') ? (json_['labels'] as core.Map).map( (key, value) => core.MapEntry( @@ -56269,6 +58542,8 @@ class AttachedDiskInitializeParams { if (diskName != null) 'diskName': diskName!, if (diskSizeGb != null) 'diskSizeGb': diskSizeGb!, if (diskType != null) 'diskType': diskType!, + if (enableConfidentialCompute != null) + 'enableConfidentialCompute': enableConfidentialCompute!, if (labels != null) 'labels': labels!, if (licenses != null) 'licenses': licenses!, if (onUpdateAction != null) 'onUpdateAction': onUpdateAction!, @@ -57939,6 +60214,21 @@ class Backend { /// balancing mode. core.double? maxUtilization; + /// This field indicates whether this backend should be fully utilized before + /// sending traffic to backends with default preference. + /// + /// The possible values are: - PREFERRED: Backends with this preference level + /// will be filled up to their capacity limits first, based on RTT. - DEFAULT: + /// If preferred backends don't have enough capacity, backends in this layer + /// would be used and traffic would be assigned based on the load balancing + /// algorithm you use. This is the default + /// Possible string values are: + /// - "DEFAULT" : No preference. + /// - "PREFERENCE_UNSPECIFIED" : If preference is unspecified, we set it to + /// the DEFAULT value + /// - "PREFERRED" : Traffic will be sent to this backend first. + core.String? preference; + Backend({ this.balancingMode, this.capacityScaler, @@ -57952,6 +60242,7 @@ class Backend { this.maxRatePerEndpoint, this.maxRatePerInstance, this.maxUtilization, + this.preference, }); Backend.fromJson(core.Map json_) @@ -57993,6 +60284,9 @@ class Backend { maxUtilization: json_.containsKey('maxUtilization') ? (json_['maxUtilization'] as core.num).toDouble() : null, + preference: json_.containsKey('preference') + ? json_['preference'] as core.String + : null, ); core.Map toJson() => { @@ -58012,6 +60306,7 @@ class Backend { if (maxRatePerInstance != null) 'maxRatePerInstance': maxRatePerInstance!, if (maxUtilization != null) 'maxUtilization': maxUtilization!, + if (preference != null) 'preference': preference!, }; } @@ -58662,13 +60957,13 @@ class BackendBucketList { class BackendService { /// Lifetime of cookies in seconds. /// - /// This setting is applicable to external and internal HTTP(S) load balancers - /// and Traffic Director and requires GENERATED_COOKIE or HTTP_COOKIE session - /// affinity. If set to 0, the cookie is non-persistent and lasts only until - /// the end of the browser session (or equivalent). The maximum allowed value - /// is two weeks (1,209,600). Not supported when the backend service is - /// referenced by a URL map that is bound to target gRPC proxy that has - /// validateForProxyless field set to true. + /// This setting is applicable to Application Load Balancers and Traffic + /// Director and requires GENERATED_COOKIE or HTTP_COOKIE session affinity. If + /// set to 0, the cookie is non-persistent and lasts only until the end of the + /// browser session (or equivalent). The maximum allowed value is two weeks + /// (1,209,600). Not supported when the backend service is referenced by a URL + /// map that is bound to target gRPC proxy that has validateForProxyless field + /// set to true. core.int? affinityCookieTtlSec; /// The list of backends that serve this BackendService. @@ -58692,8 +60987,9 @@ class BackendService { /// Connection Tracking configuration for this BackendService. /// - /// Connection tracking policy settings are only available for Network Load - /// Balancing and Internal TCP/UDP Load Balancing. + /// Connection tracking policy settings are only available for external + /// passthrough Network Load Balancers and internal passthrough Network Load + /// Balancers. BackendServiceConnectionTrackingPolicy? connectionTrackingPolicy; /// Consistent Hash-based load balancing can be used to provide soft session @@ -58738,17 +61034,17 @@ class BackendService { /// Output only. core.String? edgeSecurityPolicy; - /// If true, enables Cloud CDN for the backend service of an external HTTP(S) - /// load balancer. + /// If true, enables Cloud CDN for the backend service of a global external + /// Application Load Balancer. core.bool? enableCDN; /// Requires at least one backend instance group to be defined as a backup /// (failover) backend. /// /// For load balancers that have configurable failover: - /// [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) + /// [Internal passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/internal/failover-overview) /// and - /// [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). + /// [external passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). BackendServiceFailoverPolicy? failoverPolicy; /// Fingerprint of this resource. @@ -58781,8 +61077,8 @@ class BackendService { /// The configurations for Identity-Aware Proxy on this resource. /// - /// Not available for Internal TCP/UDP Load Balancing and Network Load - /// Balancing. + /// Not available for internal passthrough Network Load Balancers and external + /// passthrough Network Load Balancers. BackendServiceIAP? iap; /// The unique identifier for the resource. @@ -58804,14 +61100,16 @@ class BackendService { /// A backend service created for one type of load balancer cannot be used /// with another. For more information, refer to Choosing a load balancer. /// Possible string values are: - /// - "EXTERNAL" : Signifies that this will be used for external HTTP(S), SSL - /// Proxy, TCP Proxy, or Network Load Balancing - /// - "EXTERNAL_MANAGED" : Signifies that this will be used for External - /// Managed HTTP(S) Load Balancing. - /// - "INTERNAL" : Signifies that this will be used for Internal TCP/UDP Load - /// Balancing. - /// - "INTERNAL_MANAGED" : Signifies that this will be used for Internal - /// HTTP(S) Load Balancing. + /// - "EXTERNAL" : Signifies that this will be used for classic Application + /// Load Balancers, global external proxy Network Load Balancers, or external + /// passthrough Network Load Balancers. + /// - "EXTERNAL_MANAGED" : Signifies that this will be used for global + /// external Application Load Balancers, regional external Application Load + /// Balancers, or regional external proxy Network Load Balancers. + /// - "INTERNAL" : Signifies that this will be used for internal passthrough + /// Network Load Balancers. + /// - "INTERNAL_MANAGED" : Signifies that this will be used for internal + /// Application Load Balancers. /// - "INTERNAL_SELF_MANAGED" : Signifies that this will be used by Traffic /// Director. /// - "INVALID_LOAD_BALANCING_SCHEME" @@ -58959,7 +61257,8 @@ class BackendService { /// Deprecated in favor of portName. /// /// The TCP port to connect on the backend. The default value is 80. For - /// Internal TCP/UDP Load Balancing and Network Load Balancing, omit port. + /// internal passthrough Network Load Balancers and external passthrough + /// Network Load Balancers, omit port. @core.Deprecated( 'Not supported. Member documentation may have more information.', ) @@ -58970,8 +61269,9 @@ class BackendService { /// /// The named port must be /// [defined on each backend instance group](https://cloud.google.com/load-balancing/docs/backend-service#named_ports). - /// This parameter has no meaning if the backends are NEGs. For Internal - /// TCP/UDP Load Balancing and Network Load Balancing, omit port_name. + /// This parameter has no meaning if the backends are NEGs. For internal + /// passthrough Network Load Balancers and external passthrough Network Load + /// Balancers, omit port_name. core.String? portName; /// The protocol this BackendService uses to communicate with backends. @@ -59026,6 +61326,12 @@ class BackendService { /// lists of backends and health checks must be both empty. core.List? serviceBindings; + /// URL to networkservices.ServiceLbPolicy resource. + /// + /// Can only be set if load balancing scheme is EXTERNAL, EXTERNAL_MANAGED, + /// INTERNAL_MANAGED or INTERNAL_SELF_MANAGED and the scope is global. + core.String? serviceLbPolicy; + /// Type of session affinity to use. /// /// The default is NONE. Only NONE and HEADER_FIELD are supported when the @@ -59113,6 +61419,7 @@ class BackendService { this.securitySettings, this.selfLink, this.serviceBindings, + this.serviceLbPolicy, this.sessionAffinity, this.subsetting, this.timeoutSec, @@ -59258,6 +61565,9 @@ class BackendService { .map((value) => value as core.String) .toList() : null, + serviceLbPolicy: json_.containsKey('serviceLbPolicy') + ? json_['serviceLbPolicy'] as core.String + : null, sessionAffinity: json_.containsKey('sessionAffinity') ? json_['sessionAffinity'] as core.String : null, @@ -59322,6 +61632,7 @@ class BackendService { if (securitySettings != null) 'securitySettings': securitySettings!, if (selfLink != null) 'selfLink': selfLink!, if (serviceBindings != null) 'serviceBindings': serviceBindings!, + if (serviceLbPolicy != null) 'serviceLbPolicy': serviceLbPolicy!, if (sessionAffinity != null) 'sessionAffinity': sessionAffinity!, if (subsetting != null) 'subsetting': subsetting!, if (timeoutSec != null) 'timeoutSec': timeoutSec!, @@ -59827,7 +62138,8 @@ class BackendServiceConnectionTrackingPolicy { /// - "NEVER_PERSIST" core.String? connectionPersistenceOnUnhealthyBackends; - /// Enable Strong Session Affinity for Network Load Balancing. + /// Enable Strong Session Affinity for external passthrough Network Load + /// Balancers. /// /// This option is not available publicly. core.bool? enableStrongAffinity; @@ -59835,12 +62147,12 @@ class BackendServiceConnectionTrackingPolicy { /// Specifies how long to keep a Connection Tracking entry while there is no /// matching traffic (in seconds). /// - /// For Internal TCP/UDP Load Balancing: - The minimum (default) is 10 minutes - /// and the maximum is 16 hours. - It can be set only if Connection Tracking - /// is less than 5-tuple (i.e. Session Affinity is CLIENT_IP_NO_DESTINATION, - /// CLIENT_IP or CLIENT_IP_PROTO, and Tracking Mode is PER_SESSION). For - /// Network Load Balancer the default is 60 seconds. This option is not - /// available publicly. + /// For internal passthrough Network Load Balancers: - The minimum (default) + /// is 10 minutes and the maximum is 16 hours. - It can be set only if + /// Connection Tracking is less than 5-tuple (i.e. Session Affinity is + /// CLIENT_IP_NO_DESTINATION, CLIENT_IP or CLIENT_IP_PROTO, and Tracking Mode + /// is PER_SESSION). For external passthrough Network Load Balancers the + /// default is 60 seconds. This option is not available publicly. core.int? idleTimeoutSec; /// Specifies the key used for connection tracking. @@ -59895,9 +62207,9 @@ class BackendServiceConnectionTrackingPolicy { } /// For load balancers that have configurable failover: -/// [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) +/// [Internal passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/internal/failover-overview) /// and -/// [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). +/// [external passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). /// /// On failover or failback, this field indicates whether connection draining /// will be honored. Google Cloud has a fixed connection draining timeout of 10 @@ -59918,9 +62230,9 @@ class BackendServiceFailoverPolicy { /// backup backend VMs are unhealthy. /// /// For load balancers that have configurable failover: - /// [Internal TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/internal/failover-overview) + /// [Internal passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/internal/failover-overview) /// and - /// [external TCP/UDP Load Balancing](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). + /// [external passthrough Network Load Balancers](https://cloud.google.com/load-balancing/docs/network/networklb-failover-overview). /// The default is false. core.bool? dropTrafficIfUnhealthy; @@ -61329,14 +63641,31 @@ class Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -61345,12 +63674,19 @@ class Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; Binding({ @@ -61877,6 +64213,15 @@ class Commitment { /// Output only. core.String? endTimestamp; + /// Specifies the already existing reservations to attach to the Commitment. + /// + /// This field is optional, and it can be a full or partial URL. For example, + /// the following are valid URLs to an reservation: - + /// https://www.googleapis.com/compute/v1/projects/project/zones/zone + /// /reservations/reservation - + /// projects/project/zones/zone/reservations/reservation + core.List? existingReservations; + /// The unique identifier for the resource. /// /// This identifier is defined by the server. @@ -61922,7 +64267,7 @@ class Commitment { /// Output only. core.String? region; - /// List of create-on-create reseravtions for this commitment. + /// List of create-on-create reservations for this commitment. core.List? reservations; /// A list of commitment amounts for particular resources. @@ -61985,6 +64330,7 @@ class Commitment { /// - "GRAPHICS_OPTIMIZED" /// - "MEMORY_OPTIMIZED" /// - "MEMORY_OPTIMIZED_M3" + /// - "STORAGE_OPTIMIZED_Z3" /// - "TYPE_UNSPECIFIED" core.String? type; @@ -61994,6 +64340,7 @@ class Commitment { this.creationTimestamp, this.description, this.endTimestamp, + this.existingReservations, this.id, this.kind, this.licenseResource, @@ -62028,6 +64375,11 @@ class Commitment { endTimestamp: json_.containsKey('endTimestamp') ? json_['endTimestamp'] as core.String : null, + existingReservations: json_.containsKey('existingReservations') + ? (json_['existingReservations'] as core.List) + .map((value) => value as core.String) + .toList() + : null, id: json_.containsKey('id') ? json_['id'] as core.String : null, kind: json_.containsKey('kind') ? json_['kind'] as core.String : null, licenseResource: json_.containsKey('licenseResource') @@ -62080,6 +64432,8 @@ class Commitment { if (creationTimestamp != null) 'creationTimestamp': creationTimestamp!, if (description != null) 'description': description!, if (endTimestamp != null) 'endTimestamp': endTimestamp!, + if (existingReservations != null) + 'existingReservations': existingReservations!, if (id != null) 'id': id!, if (kind != null) 'kind': kind!, if (licenseResource != null) 'licenseResource': licenseResource!, @@ -63322,6 +65676,9 @@ class Disk { /// provide a key to use the disk later. CustomerEncryptionKey? diskEncryptionKey; + /// Whether this disk is using confidential compute mode. + core.bool? enableConfidentialCompute; + /// A list of features to enable on the guest operating system. /// /// Applicable only for bootable images. Read Enabling guest operating system @@ -63424,7 +65781,7 @@ class Disk { /// Indicates how much throughput to provision for the disk. /// /// This sets the number of throughput mb per second that the disk can handle. - /// Values must be between 1 and 7,124. + /// Values must be greater than or equal to 1. core.String? provisionedThroughput; /// URL of the region where the disk resides. @@ -63449,6 +65806,11 @@ class Disk { /// Output only. DiskResourceStatus? resourceStatus; + /// Reserved for future use. + /// + /// Output only. + core.bool? satisfiesPzi; + /// Reserved for future use. /// /// Output only. @@ -63533,6 +65895,27 @@ class Disk { /// Output only. core.String? sourceImageId; + /// The source instant snapshot used to create this disk. + /// + /// You can provide this as a partial or full URL to the resource. For + /// example, the following are valid values: - + /// https://www.googleapis.com/compute/v1/projects/project/zones/zone + /// /instantSnapshots/instantSnapshot - + /// projects/project/zones/zone/instantSnapshots/instantSnapshot - + /// zones/zone/instantSnapshots/instantSnapshot + core.String? sourceInstantSnapshot; + + /// The unique ID of the instant snapshot used to create this disk. + /// + /// This value identifies the exact instant snapshot that was used to create + /// this persistent disk. For example, if you created the persistent disk from + /// an instant snapshot that was later deleted and recreated under the same + /// name, the source instant snapshot ID would identify the exact version of + /// the instant snapshot that was used. + /// + /// Output only. + core.String? sourceInstantSnapshotId; + /// The source snapshot used to create this disk. /// /// You can provide this as a partial or full URL to the resource. For @@ -63611,6 +65994,7 @@ class Disk { this.creationTimestamp, this.description, this.diskEncryptionKey, + this.enableConfidentialCompute, this.guestOsFeatures, this.id, this.kind, @@ -63631,6 +66015,7 @@ class Disk { this.replicaZones, this.resourcePolicies, this.resourceStatus, + this.satisfiesPzi, this.satisfiesPzs, this.selfLink, this.sizeGb, @@ -63641,6 +66026,8 @@ class Disk { this.sourceImage, this.sourceImageEncryptionKey, this.sourceImageId, + this.sourceInstantSnapshot, + this.sourceInstantSnapshotId, this.sourceSnapshot, this.sourceSnapshotEncryptionKey, this.sourceSnapshotId, @@ -63681,6 +66068,10 @@ class Disk { ? CustomerEncryptionKey.fromJson(json_['diskEncryptionKey'] as core.Map) : null, + enableConfidentialCompute: + json_.containsKey('enableConfidentialCompute') + ? json_['enableConfidentialCompute'] as core.bool + : null, guestOsFeatures: json_.containsKey('guestOsFeatures') ? (json_['guestOsFeatures'] as core.List) .map((value) => GuestOsFeature.fromJson( @@ -63753,6 +66144,9 @@ class Disk { ? DiskResourceStatus.fromJson(json_['resourceStatus'] as core.Map) : null, + satisfiesPzi: json_.containsKey('satisfiesPzi') + ? json_['satisfiesPzi'] as core.bool + : null, satisfiesPzs: json_.containsKey('satisfiesPzs') ? json_['satisfiesPzs'] as core.bool : null, @@ -63787,6 +66181,12 @@ class Disk { sourceImageId: json_.containsKey('sourceImageId') ? json_['sourceImageId'] as core.String : null, + sourceInstantSnapshot: json_.containsKey('sourceInstantSnapshot') + ? json_['sourceInstantSnapshot'] as core.String + : null, + sourceInstantSnapshotId: json_.containsKey('sourceInstantSnapshotId') + ? json_['sourceInstantSnapshotId'] as core.String + : null, sourceSnapshot: json_.containsKey('sourceSnapshot') ? json_['sourceSnapshot'] as core.String : null, @@ -63822,6 +66222,8 @@ class Disk { if (creationTimestamp != null) 'creationTimestamp': creationTimestamp!, if (description != null) 'description': description!, if (diskEncryptionKey != null) 'diskEncryptionKey': diskEncryptionKey!, + if (enableConfidentialCompute != null) + 'enableConfidentialCompute': enableConfidentialCompute!, if (guestOsFeatures != null) 'guestOsFeatures': guestOsFeatures!, if (id != null) 'id': id!, if (kind != null) 'kind': kind!, @@ -63846,6 +66248,7 @@ class Disk { if (replicaZones != null) 'replicaZones': replicaZones!, if (resourcePolicies != null) 'resourcePolicies': resourcePolicies!, if (resourceStatus != null) 'resourceStatus': resourceStatus!, + if (satisfiesPzi != null) 'satisfiesPzi': satisfiesPzi!, if (satisfiesPzs != null) 'satisfiesPzs': satisfiesPzs!, if (selfLink != null) 'selfLink': selfLink!, if (sizeGb != null) 'sizeGb': sizeGb!, @@ -63859,6 +66262,10 @@ class Disk { if (sourceImageEncryptionKey != null) 'sourceImageEncryptionKey': sourceImageEncryptionKey!, if (sourceImageId != null) 'sourceImageId': sourceImageId!, + if (sourceInstantSnapshot != null) + 'sourceInstantSnapshot': sourceInstantSnapshot!, + if (sourceInstantSnapshotId != null) + 'sourceInstantSnapshotId': sourceInstantSnapshotId!, if (sourceSnapshot != null) 'sourceSnapshot': sourceSnapshot!, if (sourceSnapshotEncryptionKey != null) 'sourceSnapshotEncryptionKey': sourceSnapshotEncryptionKey!, @@ -66365,9 +68772,19 @@ class ExternalVpnGatewayInterface { /// address from Google Compute Engine. core.String? ipAddress; + /// IPv6 address of the interface in the external VPN gateway. + /// + /// This IPv6 address can be either from your on-premise gateway or another + /// Cloud provider's VPN gateway, it cannot be an IP address from Google + /// Compute Engine. Must specify an IPv6 address (not IPV4-mapped) using any + /// format described in RFC 4291 (e.g. 2001:db8:0:0:2d9:51:0:0). The output + /// format is RFC 5952 format (e.g. 2001:db8::2d9:51:0:0). + core.String? ipv6Address; + ExternalVpnGatewayInterface({ this.id, this.ipAddress, + this.ipv6Address, }); ExternalVpnGatewayInterface.fromJson(core.Map json_) @@ -66376,11 +68793,15 @@ class ExternalVpnGatewayInterface { ipAddress: json_.containsKey('ipAddress') ? json_['ipAddress'] as core.String : null, + ipv6Address: json_.containsKey('ipv6Address') + ? json_['ipv6Address'] as core.String + : null, ); core.Map toJson() => { if (id != null) 'id': id!, if (ipAddress != null) 'ipAddress': ipAddress!, + if (ipv6Address != null) 'ipv6Address': ipv6Address!, }; } @@ -67841,6 +70262,14 @@ class FirewallPolicyRule { /// Output only. core.int? ruleTupleCount; + /// A fully-qualified URL of a SecurityProfile resource instance. + /// + /// Example: + /// https://networksecurity.googleapis.com/v1/projects/{project}/locations/{location}/securityProfileGroups/my-security-profile-group + /// Must be specified if action = 'apply_security_profile_group' and cannot be + /// specified for other actions. + core.String? securityProfileGroup; + /// A list of network resource URLs to which this rule applies. /// /// This field allows you to control which network's VMs get this rule. If @@ -67865,6 +70294,12 @@ class FirewallPolicyRule { /// applied with this rule. core.List? targetServiceAccounts; + /// Boolean flag indicating if the traffic should be TLS decrypted. + /// + /// Can be set only if action = 'apply_security_profile_group' and cannot be + /// set for other actions. + core.bool? tlsInspect; + FirewallPolicyRule({ this.action, this.description, @@ -67876,9 +70311,11 @@ class FirewallPolicyRule { this.priority, this.ruleName, this.ruleTupleCount, + this.securityProfileGroup, this.targetResources, this.targetSecureTags, this.targetServiceAccounts, + this.tlsInspect, }); FirewallPolicyRule.fromJson(core.Map json_) @@ -67912,6 +70349,9 @@ class FirewallPolicyRule { ruleTupleCount: json_.containsKey('ruleTupleCount') ? json_['ruleTupleCount'] as core.int : null, + securityProfileGroup: json_.containsKey('securityProfileGroup') + ? json_['securityProfileGroup'] as core.String + : null, targetResources: json_.containsKey('targetResources') ? (json_['targetResources'] as core.List) .map((value) => value as core.String) @@ -67928,6 +70368,9 @@ class FirewallPolicyRule { .map((value) => value as core.String) .toList() : null, + tlsInspect: json_.containsKey('tlsInspect') + ? json_['tlsInspect'] as core.bool + : null, ); core.Map toJson() => { @@ -67941,10 +70384,13 @@ class FirewallPolicyRule { if (priority != null) 'priority': priority!, if (ruleName != null) 'ruleName': ruleName!, if (ruleTupleCount != null) 'ruleTupleCount': ruleTupleCount!, + if (securityProfileGroup != null) + 'securityProfileGroup': securityProfileGroup!, if (targetResources != null) 'targetResources': targetResources!, if (targetSecureTags != null) 'targetSecureTags': targetSecureTags!, if (targetServiceAccounts != null) 'targetServiceAccounts': targetServiceAccounts!, + if (tlsInspect != null) 'tlsInspect': tlsInspect!, }; } @@ -68248,8 +70694,8 @@ class FixedOrPercent { /// * /// [Regional](https://cloud.google.com/compute/docs/reference/rest/v1/forwardingRules) /// A forwarding rule and its corresponding IP address represent the frontend -/// configuration of a Google Cloud Platform load balancer. Forwarding rules can -/// also reference target instances and Cloud VPN Classic gateways +/// configuration of a Google Cloud load balancer. Forwarding rules can also +/// reference target instances and Cloud VPN Classic gateways /// (targetVpnGateway). For more information, read Forwarding rule concepts and /// Using protocol forwarding. class ForwardingRule { @@ -68309,14 +70755,13 @@ class ForwardingRule { /// L3_DEFAULT protocol requires allPorts be set to true. core.bool? allPorts; - /// This field is used along with the backend_service field for internal load - /// balancing or with the target field for internal TargetInstance. + /// If set to true, clients can access the internal passthrough Network Load + /// Balancers, the regional internal Application Load Balancer, and the + /// regional internal proxy Network Load Balancer from all regions. /// - /// If set to true, clients can access the Internal TCP/UDP Load Balancer, - /// Internal HTTP(S) and TCP Proxy Load Balancer from all regions. If false, - /// only allows access from the local region the load balancer is located at. - /// Note that for INTERNAL_MANAGED forwarding rules, this field cannot be - /// changed after the forwarding rule is created. + /// If false, only allows access from the local region the load balancer is + /// located at. Note that for INTERNAL_MANAGED forwarding rules, this field + /// cannot be changed after the forwarding rule is created. core.bool? allowGlobalAccess; /// This is used in PSC consumer ForwardingRule to control whether the PSC @@ -68325,16 +70770,16 @@ class ForwardingRule { /// Identifies the backend service to which the forwarding rule sends traffic. /// - /// Required for Internal TCP/UDP Load Balancing and Network Load Balancing; + /// Required for internal and external passthrough Network Load Balancers; /// must be omitted for all other load balancer types. core.String? backendService; - /// The URL for the corresponding base Forwarding Rule. + /// The URL for the corresponding base forwarding rule. /// - /// By base Forwarding Rule, we mean the Forwarding Rule that has the same IP - /// address, protocol, and port settings with the current Forwarding Rule, but - /// without sourceIPRanges specified. Always empty if the current Forwarding - /// Rule does not have sourceIPRanges specified. + /// By base forwarding rule, we mean the forwarding rule that has the same IP + /// address, protocol, and port settings with the current forwarding rule, but + /// without sourceIPRanges specified. Always empty if the current forwarding + /// rule does not have sourceIPRanges specified. /// /// Output only. core.String? baseForwardingRule; @@ -68393,7 +70838,7 @@ class ForwardingRule { /// Type of the resource. /// - /// Always compute#forwardingRule for Forwarding Rule resources. + /// Always compute#forwardingRule for forwarding rule resources. /// /// Output only. core.String? kind; @@ -68467,12 +70912,12 @@ class ForwardingRule { /// This field is not used for global external load balancing. /// - /// For Internal TCP/UDP Load Balancing, this field identifies the network - /// that the load balanced IP should belong to for this Forwarding Rule. If - /// the subnetwork is specified, the network of the subnetwork will be used. - /// If neither subnetwork nor this field is specified, the default network - /// will be used. For Private Service Connect forwarding rules that forward - /// traffic to Google APIs, a network must be provided. + /// For internal passthrough Network Load Balancers, this field identifies the + /// network that the load balanced IP should belong to for this forwarding + /// rule. If the subnetwork is specified, the network of the subnetwork will + /// be used. If neither subnetwork nor this field is specified, the default + /// network will be used. For Private Service Connect forwarding rules that + /// forward traffic to Google APIs, a network must be provided. core.String? network; /// This signifies the networking tier used for configuring this load balancer @@ -68534,7 +70979,7 @@ class ForwardingRule { /// if they share at least one port number. @pattern: \\d+(?:-\\d+)? core.List? ports; - /// The PSC connection id of the PSC Forwarding Rule. + /// The PSC connection id of the PSC forwarding rule. /// /// Output only. core.String? pscConnectionId; @@ -68572,7 +71017,7 @@ class ForwardingRule { core.List? serviceDirectoryRegistrations; - /// An optional prefix to the service name for this Forwarding Rule. + /// An optional prefix to the service name for this forwarding rule. /// /// If specified, the prefix is the first label of the fully qualified service /// name. The label must be 1-63 characters long, and comply with RFC1035. @@ -68583,25 +71028,25 @@ class ForwardingRule { /// dash. This field is only used for internal load balancing. core.String? serviceLabel; - /// The internal fully qualified service name for this Forwarding Rule. + /// The internal fully qualified service name for this forwarding rule. /// /// This field is only used for internal load balancing. /// /// Output only. core.String? serviceName; - /// If not empty, this Forwarding Rule will only forward the traffic when the + /// If not empty, this forwarding rule will only forward the traffic when the /// source IP address matches one of the IP addresses or CIDR ranges set here. /// - /// Note that a Forwarding Rule can only have up to 64 source IP ranges, and - /// this field can only be used with a regional Forwarding Rule whose scheme + /// Note that a forwarding rule can only have up to 64 source IP ranges, and + /// this field can only be used with a regional forwarding rule whose scheme /// is EXTERNAL. Each source_ip_range entry should be either an IP address /// (for example, 1.2.3.4) or a CIDR range (for example, 1.2.3.0/24). core.List? sourceIpRanges; /// This field identifies the subnetwork that the load balanced IP should - /// belong to for this Forwarding Rule, used in internal load balancing and - /// network load balancing with IPv6. + /// belong to for this forwarding rule, used with internal load balancers and + /// external passthrough Network Load Balancers with IPv6. /// /// If the network specified is in auto subnet mode, this field is optional. /// However, a subnetwork must be specified if the network is in custom subnet @@ -69296,10 +71741,10 @@ class ForwardingRuleReference { }; } -/// Describes the auto-registration of the Forwarding Rule to Service Directory. +/// Describes the auto-registration of the forwarding rule to Service Directory. /// /// The region and project of the Service Directory resource generated from this -/// registration will be the same as this Forwarding Rule. +/// registration will be the same as this forwarding rule. class ForwardingRuleServiceDirectoryRegistration { /// Service Directory namespace to register the forwarding rule under. core.String? namespace; @@ -69310,7 +71755,7 @@ class ForwardingRuleServiceDirectoryRegistration { /// Service Directory region to register this global forwarding rule under. /// /// Default to "us-central1". Only used for PSC for Google APIs. All PSC for - /// Google APIs Forwarding Rules on the same network should use the same + /// Google APIs forwarding rules on the same network should use the same /// Service Directory region. /// /// Optional. @@ -69541,7 +71986,7 @@ class GRPCHealthCheck { /// /// Can be one of the following values: USE_FIXED_PORT: Specifies a port /// number explicitly using the port field in the health check. Supported by - /// backend services for pass-through load balancers and backend services for + /// backend services for passthrough load balancers and backend services for /// proxy load balancers. Not supported by target pools. The health check /// supports all backends supported by the backend service provided the /// backend can be health checked. For example, GCE_VM_IP network endpoint @@ -69550,8 +71995,8 @@ class GRPCHealthCheck { /// indirect method of specifying the health check port by referring to the /// backend service. Only supported by backend services for proxy load /// balancers. Not supported by target pools. Not supported by backend - /// services for pass-through load balancers. Supports all backends that can - /// be health checked; for example, GCE_VM_IP_PORT network endpoint groups and + /// services for passthrough load balancers. Supports all backends that can be + /// health checked; for example, GCE_VM_IP_PORT network endpoint groups and /// instance group backends. For GCE_VM_IP_PORT network endpoint group /// backends, the health check uses the port number specified for each /// endpoint in the network endpoint group. For instance group backends, the @@ -69942,11 +72387,13 @@ class GuestOsFeature { /// To add multiple values, use commas to separate values. Set to one or more /// of the following values: - VIRTIO_SCSI_MULTIQUEUE - WINDOWS - /// MULTI_IP_SUBNET - UEFI_COMPATIBLE - GVNIC - SEV_CAPABLE - - /// SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE - SEV_SNP_CAPABLE For more - /// information, see Enabling guest operating system features. + /// SUSPEND_RESUME_COMPATIBLE - SEV_LIVE_MIGRATABLE - SEV_SNP_CAPABLE - + /// TDX_CAPABLE - IDPF For more information, see Enabling guest operating + /// system features. /// Possible string values are: /// - "FEATURE_TYPE_UNSPECIFIED" /// - "GVNIC" + /// - "IDPF" /// - "MULTI_IP_SUBNET" /// - "SECURE_BOOT" /// - "SEV_CAPABLE" @@ -69993,7 +72440,7 @@ class HTTP2HealthCheck { /// /// Can be one of the following values: USE_FIXED_PORT: Specifies a port /// number explicitly using the port field in the health check. Supported by - /// backend services for pass-through load balancers and backend services for + /// backend services for passthrough load balancers and backend services for /// proxy load balancers. Not supported by target pools. The health check /// supports all backends supported by the backend service provided the /// backend can be health checked. For example, GCE_VM_IP network endpoint @@ -70002,8 +72449,8 @@ class HTTP2HealthCheck { /// indirect method of specifying the health check port by referring to the /// backend service. Only supported by backend services for proxy load /// balancers. Not supported by target pools. Not supported by backend - /// services for pass-through load balancers. Supports all backends that can - /// be health checked; for example, GCE_VM_IP_PORT network endpoint groups and + /// services for passthrough load balancers. Supports all backends that can be + /// health checked; for example, GCE_VM_IP_PORT network endpoint groups and /// instance group backends. For GCE_VM_IP_PORT network endpoint group /// backends, the health check uses the port number specified for each /// endpoint in the network endpoint group. For instance group backends, the @@ -70107,7 +72554,7 @@ class HTTPHealthCheck { /// /// Can be one of the following values: USE_FIXED_PORT: Specifies a port /// number explicitly using the port field in the health check. Supported by - /// backend services for pass-through load balancers and backend services for + /// backend services for passthrough load balancers and backend services for /// proxy load balancers. Also supported in legacy HTTP health checks for /// target pools. The health check supports all backends supported by the /// backend service provided the backend can be health checked. For example, @@ -70222,7 +72669,7 @@ class HTTPSHealthCheck { /// /// Can be one of the following values: USE_FIXED_PORT: Specifies a port /// number explicitly using the port field in the health check. Supported by - /// backend services for pass-through load balancers and backend services for + /// backend services for passthrough load balancers and backend services for /// proxy load balancers. Not supported by target pools. The health check /// supports all backends supported by the backend service provided the /// backend can be health checked. For example, GCE_VM_IP network endpoint @@ -70231,8 +72678,8 @@ class HTTPSHealthCheck { /// indirect method of specifying the health check port by referring to the /// backend service. Only supported by backend services for proxy load /// balancers. Not supported by target pools. Not supported by backend - /// services for pass-through load balancers. Supports all backends that can - /// be health checked; for example, GCE_VM_IP_PORT network endpoint groups and + /// services for passthrough load balancers. Supports all backends that can be + /// health checked; for example, GCE_VM_IP_PORT network endpoint groups and /// instance group backends. For GCE_VM_IP_PORT network endpoint group /// backends, the health check uses the port number specified for each /// endpoint in the network endpoint group. For instance group backends, the @@ -70321,18 +72768,14 @@ class HTTPSHealthCheck { /// \[Regional\](/compute/docs/reference/rest/v1/regionHealthChecks) * /// \[Global\](/compute/docs/reference/rest/v1/healthChecks) These health check /// resources can be used for load balancing and for autohealing VMs in a -/// managed instance group (MIG). **Load balancing** The following load balancer -/// can use either regional or global health check: * Internal TCP/UDP load -/// balancer The following load balancers require regional health check: * -/// Internal HTTP(S) load balancer * Backend service-based network load balancer -/// Traffic Director and the following load balancers require global health -/// check: * External HTTP(S) load balancer * TCP proxy load balancer * SSL -/// proxy load balancer The following load balancer require \[legacy HTTP health -/// checks\](/compute/docs/reference/rest/v1/httpHealthChecks): * Target -/// pool-based network load balancer **Autohealing in MIGs** The health checks -/// that you use for autohealing VMs in a MIG can be either regional or global. -/// For more information, see Set up an application health check and -/// autohealing. For more information, see Health checks overview. +/// managed instance group (MIG). **Load balancing** Health check requirements +/// vary depending on the type of load balancer. For details about the type of +/// health check supported for each load balancer and corresponding backend +/// type, see Health checks overview: Load balancer guide. **Autohealing in +/// MIGs** The health checks that you use for autohealing VMs in a MIG can be +/// either regional or global. For more information, see Set up an application +/// health check and autohealing. For more information, see Health checks +/// overview. class HealthCheck { /// How often (in seconds) to send a health check. /// @@ -73714,6 +76157,11 @@ class Image { /// Size of the image when restored onto a persistent disk (in GB). core.String? diskSizeGb; + /// Whether this image is created from a confidential compute mode disk. + /// + /// \[Output Only\]: This field is not set by user, but from source disk. + core.bool? enableConfidentialCompute; + /// The name of the image family to which this image belongs. /// /// The image family name can be from a publicly managed image family provided @@ -73797,6 +76245,11 @@ class Image { /// The parameters of the raw disk image. ImageRawDisk? rawDisk; + /// Reserved for future use. + /// + /// Output only. + core.bool? satisfiesPzi; + /// Reserved for future use. /// /// Output only. @@ -73915,6 +76368,7 @@ class Image { this.deprecated, this.description, this.diskSizeGb, + this.enableConfidentialCompute, this.family, this.guestOsFeatures, this.id, @@ -73926,6 +76380,7 @@ class Image { this.licenses, this.name, this.rawDisk, + this.satisfiesPzi, this.satisfiesPzs, this.selfLink, this.shieldedInstanceInitialState, @@ -73964,6 +76419,10 @@ class Image { diskSizeGb: json_.containsKey('diskSizeGb') ? json_['diskSizeGb'] as core.String : null, + enableConfidentialCompute: + json_.containsKey('enableConfidentialCompute') + ? json_['enableConfidentialCompute'] as core.bool + : null, family: json_.containsKey('family') ? json_['family'] as core.String : null, @@ -74005,6 +76464,9 @@ class Image { ? ImageRawDisk.fromJson( json_['rawDisk'] as core.Map) : null, + satisfiesPzi: json_.containsKey('satisfiesPzi') + ? json_['satisfiesPzi'] as core.bool + : null, satisfiesPzs: json_.containsKey('satisfiesPzs') ? json_['satisfiesPzs'] as core.bool : null, @@ -74070,6 +76532,8 @@ class Image { if (deprecated != null) 'deprecated': deprecated!, if (description != null) 'description': description!, if (diskSizeGb != null) 'diskSizeGb': diskSizeGb!, + if (enableConfidentialCompute != null) + 'enableConfidentialCompute': enableConfidentialCompute!, if (family != null) 'family': family!, if (guestOsFeatures != null) 'guestOsFeatures': guestOsFeatures!, if (id != null) 'id': id!, @@ -74082,6 +76546,7 @@ class Image { if (licenses != null) 'licenses': licenses!, if (name != null) 'name': name!, if (rawDisk != null) 'rawDisk': rawDisk!, + if (satisfiesPzi != null) 'satisfiesPzi': satisfiesPzi!, if (satisfiesPzs != null) 'satisfiesPzs': satisfiesPzs!, if (selfLink != null) 'selfLink': selfLink!, if (shieldedInstanceInitialState != null) @@ -74620,6 +77085,11 @@ class Instance { /// Output only. ResourceStatus? resourceStatus; + /// Reserved for future use. + /// + /// Output only. + core.bool? satisfiesPzi; + /// Reserved for future use. /// /// Output only. @@ -74736,6 +77206,7 @@ class Instance { this.reservationAffinity, this.resourcePolicies, this.resourceStatus, + this.satisfiesPzi, this.satisfiesPzs, this.scheduling, this.selfLink, @@ -74873,6 +77344,9 @@ class Instance { ? ResourceStatus.fromJson(json_['resourceStatus'] as core.Map) : null, + satisfiesPzi: json_.containsKey('satisfiesPzi') + ? json_['satisfiesPzi'] as core.bool + : null, satisfiesPzs: json_.containsKey('satisfiesPzs') ? json_['satisfiesPzs'] as core.bool : null, @@ -74967,6 +77441,7 @@ class Instance { 'reservationAffinity': reservationAffinity!, if (resourcePolicies != null) 'resourcePolicies': resourcePolicies!, if (resourceStatus != null) 'resourceStatus': resourceStatus!, + if (satisfiesPzi != null) 'satisfiesPzi': satisfiesPzi!, if (satisfiesPzs != null) 'satisfiesPzs': satisfiesPzs!, if (scheduling != null) 'scheduling': scheduling!, if (selfLink != null) 'selfLink': selfLink!, @@ -75934,6 +78409,10 @@ class InstanceGroupList { /// Instance Group, use the instanceGroupManagers resource. For regional Managed /// Instance Group, use the regionInstanceGroupManagers resource. class InstanceGroupManager { + /// Specifies configuration that overrides the instance template configuration + /// for the group. + InstanceGroupManagerAllInstancesConfig? allInstancesConfig; + /// The autohealing policy for this managed instance group. /// /// You can specify only one value. @@ -76086,6 +78565,7 @@ class InstanceGroupManager { core.String? zone; InstanceGroupManager({ + this.allInstancesConfig, this.autoHealingPolicies, this.baseInstanceName, this.creationTimestamp, @@ -76114,6 +78594,11 @@ class InstanceGroupManager { InstanceGroupManager.fromJson(core.Map json_) : this( + allInstancesConfig: json_.containsKey('allInstancesConfig') + ? InstanceGroupManagerAllInstancesConfig.fromJson( + json_['allInstancesConfig'] + as core.Map) + : null, autoHealingPolicies: json_.containsKey('autoHealingPolicies') ? (json_['autoHealingPolicies'] as core.List) .map((value) => @@ -76202,6 +78687,8 @@ class InstanceGroupManager { ); core.Map toJson() => { + if (allInstancesConfig != null) + 'allInstancesConfig': allInstancesConfig!, if (autoHealingPolicies != null) 'autoHealingPolicies': autoHealingPolicies!, if (baseInstanceName != null) 'baseInstanceName': baseInstanceName!, @@ -76646,6 +79133,33 @@ class InstanceGroupManagerAggregatedList { }; } +class InstanceGroupManagerAllInstancesConfig { + /// Properties to set on all instances in the group. + /// + /// You can add or modify properties using the instanceGroupManagers.patch or + /// regionInstanceGroupManagers.patch. After setting allInstancesConfig on the + /// group, you must update the group's instances to apply the configuration. + /// To apply the configuration, set the group's updatePolicy.type field to use + /// proactive updates or use the applyUpdatesToInstances method. + InstancePropertiesPatch? properties; + + InstanceGroupManagerAllInstancesConfig({ + this.properties, + }); + + InstanceGroupManagerAllInstancesConfig.fromJson(core.Map json_) + : this( + properties: json_.containsKey('properties') + ? InstancePropertiesPatch.fromJson( + json_['properties'] as core.Map) + : null, + ); + + core.Map toJson() => { + if (properties != null) 'properties': properties!, + }; +} + class InstanceGroupManagerAutoHealingPolicy { /// The URL for the health check that signals autohealing. core.String? healthCheck; @@ -76683,6 +79197,20 @@ class InstanceGroupManagerAutoHealingPolicy { } class InstanceGroupManagerInstanceLifecyclePolicy { + /// The action that a MIG performs on a failed or an unhealthy VM. + /// + /// A VM is marked as unhealthy when the application running on that VM fails + /// a health check. Valid values are - REPAIR (default): MIG automatically + /// repairs a failed or an unhealthy VM by recreating it. For more + /// information, see About repairing VMs in a MIG. - DO_NOTHING: MIG does not + /// repair a failed or an unhealthy VM. + /// Possible string values are: + /// - "DO_NOTHING" : MIG does not repair a failed or an unhealthy VM. + /// - "REPAIR" : (Default) MIG automatically repairs a failed or an unhealthy + /// VM by recreating it. For more information, see About repairing VMs in a + /// MIG. + core.String? defaultActionOnFailure; + /// A bit indicating whether to forcefully apply the group's latest /// configuration when repairing a VM. /// @@ -76696,17 +79224,23 @@ class InstanceGroupManagerInstanceLifecyclePolicy { core.String? forceUpdateOnRepair; InstanceGroupManagerInstanceLifecyclePolicy({ + this.defaultActionOnFailure, this.forceUpdateOnRepair, }); InstanceGroupManagerInstanceLifecyclePolicy.fromJson(core.Map json_) : this( + defaultActionOnFailure: json_.containsKey('defaultActionOnFailure') + ? json_['defaultActionOnFailure'] as core.String + : null, forceUpdateOnRepair: json_.containsKey('forceUpdateOnRepair') ? json_['forceUpdateOnRepair'] as core.String : null, ); core.Map toJson() => { + if (defaultActionOnFailure != null) + 'defaultActionOnFailure': defaultActionOnFailure!, if (forceUpdateOnRepair != null) 'forceUpdateOnRepair': forceUpdateOnRepair!, }; @@ -76936,6 +79470,11 @@ class InstanceGroupManagerList { } class InstanceGroupManagerStatus { + /// Status of all-instances configuration on the group. + /// + /// Output only. + InstanceGroupManagerStatusAllInstancesConfig? allInstancesConfig; + /// The URL of the Autoscaler that targets this instance group manager. /// /// Output only. @@ -76964,6 +79503,7 @@ class InstanceGroupManagerStatus { InstanceGroupManagerStatusVersionTarget? versionTarget; InstanceGroupManagerStatus({ + this.allInstancesConfig, this.autoscaler, this.isStable, this.stateful, @@ -76972,6 +79512,11 @@ class InstanceGroupManagerStatus { InstanceGroupManagerStatus.fromJson(core.Map json_) : this( + allInstancesConfig: json_.containsKey('allInstancesConfig') + ? InstanceGroupManagerStatusAllInstancesConfig.fromJson( + json_['allInstancesConfig'] + as core.Map) + : null, autoscaler: json_.containsKey('autoscaler') ? json_['autoscaler'] as core.String : null, @@ -76989,6 +79534,8 @@ class InstanceGroupManagerStatus { ); core.Map toJson() => { + if (allInstancesConfig != null) + 'allInstancesConfig': allInstancesConfig!, if (autoscaler != null) 'autoscaler': autoscaler!, if (isStable != null) 'isStable': isStable!, if (stateful != null) 'stateful': stateful!, @@ -76996,6 +79543,41 @@ class InstanceGroupManagerStatus { }; } +class InstanceGroupManagerStatusAllInstancesConfig { + /// Current all-instances configuration revision. + /// + /// This value is in RFC3339 text format. + /// + /// Output only. + core.String? currentRevision; + + /// A bit indicating whether this configuration has been applied to all + /// managed instances in the group. + /// + /// Output only. + core.bool? effective; + + InstanceGroupManagerStatusAllInstancesConfig({ + this.currentRevision, + this.effective, + }); + + InstanceGroupManagerStatusAllInstancesConfig.fromJson(core.Map json_) + : this( + currentRevision: json_.containsKey('currentRevision') + ? json_['currentRevision'] as core.String + : null, + effective: json_.containsKey('effective') + ? json_['effective'] as core.bool + : null, + ); + + core.Map toJson() => { + if (currentRevision != null) 'currentRevision': currentRevision!, + if (effective != null) 'effective': effective!, + }; +} + class InstanceGroupManagerStatusStateful { /// A bit indicating whether the managed instance group has stateful /// configuration, that is, if you have configured any items in a stateful @@ -79455,6 +82037,47 @@ class InstanceProperties { }; } +/// Represents the change that you want to make to the instance properties. +class InstancePropertiesPatch { + /// The label key-value pairs that you want to patch onto the instance. + core.Map? labels; + + /// The metadata key-value pairs that you want to patch onto the instance. + /// + /// For more information, see Project and instance metadata. + core.Map? metadata; + + InstancePropertiesPatch({ + this.labels, + this.metadata, + }); + + InstancePropertiesPatch.fromJson(core.Map json_) + : this( + labels: json_.containsKey('labels') + ? (json_['labels'] as core.Map).map( + (key, value) => core.MapEntry( + key, + value as core.String, + ), + ) + : null, + metadata: json_.containsKey('metadata') + ? (json_['metadata'] as core.Map).map( + (key, value) => core.MapEntry( + key, + value as core.String, + ), + ) + : null, + ); + + core.Map toJson() => { + if (labels != null) 'labels': labels!, + if (metadata != null) 'metadata': metadata!, + }; +} + class InstanceReference { /// The URL for a specific instance. /// @@ -79578,37 +82201,1552 @@ class InstanceTemplate { ? InstanceProperties.fromJson( json_['properties'] as core.Map) : null, - region: json_.containsKey('region') - ? json_['region'] as core.String + region: json_.containsKey('region') + ? json_['region'] as core.String + : null, + selfLink: json_.containsKey('selfLink') + ? json_['selfLink'] as core.String + : null, + sourceInstance: json_.containsKey('sourceInstance') + ? json_['sourceInstance'] as core.String + : null, + sourceInstanceParams: json_.containsKey('sourceInstanceParams') + ? SourceInstanceParams.fromJson(json_['sourceInstanceParams'] + as core.Map) + : null, + ); + + core.Map toJson() => { + if (creationTimestamp != null) 'creationTimestamp': creationTimestamp!, + if (description != null) 'description': description!, + if (id != null) 'id': id!, + if (kind != null) 'kind': kind!, + if (name != null) 'name': name!, + if (properties != null) 'properties': properties!, + if (region != null) 'region': region!, + if (selfLink != null) 'selfLink': selfLink!, + if (sourceInstance != null) 'sourceInstance': sourceInstance!, + if (sourceInstanceParams != null) + 'sourceInstanceParams': sourceInstanceParams!, + }; +} + +class InstanceTemplateAggregatedListWarningData { + /// A key that provides more detail on the warning being returned. + /// + /// For example, for warnings where there are no results in a list request for + /// a particular zone, this key might be scope and the key value might be the + /// zone name. Other examples might be a key indicating a deprecated resource + /// and a suggested replacement, or a warning about invalid network settings + /// (for example, if an instance attempts to perform IP forwarding but is not + /// enabled for IP forwarding). + /// + /// Output only. + core.String? key; + + /// A warning data value corresponding to the key. + /// + /// Output only. + core.String? value; + + InstanceTemplateAggregatedListWarningData({ + this.key, + this.value, + }); + + InstanceTemplateAggregatedListWarningData.fromJson(core.Map json_) + : this( + key: json_.containsKey('key') ? json_['key'] as core.String : null, + value: + json_.containsKey('value') ? json_['value'] as core.String : null, + ); + + core.Map toJson() => { + if (key != null) 'key': key!, + if (value != null) 'value': value!, + }; +} + +/// Informational warning message. +/// +/// Output only. +class InstanceTemplateAggregatedListWarning { + /// A warning code, if applicable. + /// + /// For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no + /// results in the response. + /// + /// Output only. + /// Possible string values are: + /// - "CLEANUP_FAILED" : Warning about failed cleanup of transient changes + /// made by a failed operation. + /// - "DEPRECATED_RESOURCE_USED" : A link to a deprecated resource was + /// created. + /// - "DEPRECATED_TYPE_USED" : When deploying and at least one of the + /// resources has a type marked as deprecated + /// - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" : The user created a boot disk that + /// is larger than image size. + /// - "EXPERIMENTAL_TYPE_USED" : When deploying and at least one of the + /// resources has a type marked as experimental + /// - "EXTERNAL_API_WARNING" : Warning that is present in an external api call + /// - "FIELD_VALUE_OVERRIDEN" : Warning that value of a field has been + /// overridden. Deprecated unused field. + /// - "INJECTED_KERNELS_DEPRECATED" : The operation involved use of an + /// injected kernel, which is deprecated. + /// - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" : A WEIGHTED_MAGLEV + /// backend service is associated with a health check that is not of type + /// HTTP/HTTPS/HTTP2. + /// - "LARGE_DEPLOYMENT_WARNING" : When deploying a deployment with a + /// exceedingly large number of resources + /// - "LIST_OVERHEAD_QUOTA_EXCEED" : Resource can't be retrieved due to list + /// overhead quota exceed which captures the amount of resources filtered out + /// by user-defined list filter. + /// - "MISSING_TYPE_DEPENDENCY" : A resource depends on a missing type + /// - "NEXT_HOP_ADDRESS_NOT_ASSIGNED" : The route's nextHopIp address is not + /// assigned to an instance on the network. + /// - "NEXT_HOP_CANNOT_IP_FORWARD" : The route's next hop instance cannot ip + /// forward. + /// - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" : The route's nextHopInstance + /// URL refers to an instance that does not have an ipv6 interface on the same + /// network as the route. + /// - "NEXT_HOP_INSTANCE_NOT_FOUND" : The route's nextHopInstance URL refers + /// to an instance that does not exist. + /// - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" : The route's nextHopInstance URL + /// refers to an instance that is not on the same network as the route. + /// - "NEXT_HOP_NOT_RUNNING" : The route's next hop instance does not have a + /// status of RUNNING. + /// - "NOT_CRITICAL_ERROR" : Error which is not critical. We decided to + /// continue the process despite the mentioned error. + /// - "NO_RESULTS_ON_PAGE" : No results are present on a particular list page. + /// - "PARTIAL_SUCCESS" : Success is reported, but some results may be missing + /// due to errors + /// - "REQUIRED_TOS_AGREEMENT" : The user attempted to use a resource that + /// requires a TOS they have not accepted. + /// - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" : Warning that a resource is + /// in use. + /// - "RESOURCE_NOT_DELETED" : One or more of the resources set to auto-delete + /// could not be deleted because they were in use. + /// - "SCHEMA_VALIDATION_IGNORED" : When a resource schema validation is + /// ignored. + /// - "SINGLE_INSTANCE_PROPERTY_TEMPLATE" : Instance template used in instance + /// group manager is valid as such, but its application does not make a lot of + /// sense, because it allows only single instance in instance group. + /// - "UNDECLARED_PROPERTIES" : When undeclared properties in the schema are + /// present + /// - "UNREACHABLE" : A given scope cannot be reached. + core.String? code; + + /// Metadata about this warning in key: value format. + /// + /// For example: "data": \[ { "key": "scope", "value": "zones/us-east1-d" } + /// + /// Output only. + core.List? data; + + /// A human-readable description of the warning code. + /// + /// Output only. + core.String? message; + + InstanceTemplateAggregatedListWarning({ + this.code, + this.data, + this.message, + }); + + InstanceTemplateAggregatedListWarning.fromJson(core.Map json_) + : this( + code: json_.containsKey('code') ? json_['code'] as core.String : null, + data: json_.containsKey('data') + ? (json_['data'] as core.List) + .map((value) => + InstanceTemplateAggregatedListWarningData.fromJson( + value as core.Map)) + .toList() + : null, + message: json_.containsKey('message') + ? json_['message'] as core.String + : null, + ); + + core.Map toJson() => { + if (code != null) 'code': code!, + if (data != null) 'data': data!, + if (message != null) 'message': message!, + }; +} + +/// Contains a list of InstanceTemplatesScopedList. +class InstanceTemplateAggregatedList { + /// Unique identifier for the resource; defined by the server. + /// + /// Output only. + core.String? id; + + /// A list of InstanceTemplatesScopedList resources. + core.Map? items; + + /// Type of resource. + core.String? kind; + + /// This token allows you to get the next page of results for list requests. + /// + /// If the number of results is larger than maxResults, use the nextPageToken + /// as a value for the query parameter pageToken in the next list request. + /// Subsequent list requests will have their own nextPageToken to continue + /// paging through the results. + /// + /// Output only. + core.String? nextPageToken; + + /// Server-defined URL for this resource. + /// + /// Output only. + core.String? selfLink; + + /// Informational warning message. + /// + /// Output only. + InstanceTemplateAggregatedListWarning? warning; + + InstanceTemplateAggregatedList({ + this.id, + this.items, + this.kind, + this.nextPageToken, + this.selfLink, + this.warning, + }); + + InstanceTemplateAggregatedList.fromJson(core.Map json_) + : this( + id: json_.containsKey('id') ? json_['id'] as core.String : null, + items: json_.containsKey('items') + ? (json_['items'] as core.Map).map( + (key, value) => core.MapEntry( + key, + InstanceTemplatesScopedList.fromJson( + value as core.Map), + ), + ) + : null, + kind: json_.containsKey('kind') ? json_['kind'] as core.String : null, + nextPageToken: json_.containsKey('nextPageToken') + ? json_['nextPageToken'] as core.String + : null, + selfLink: json_.containsKey('selfLink') + ? json_['selfLink'] as core.String + : null, + warning: json_.containsKey('warning') + ? InstanceTemplateAggregatedListWarning.fromJson( + json_['warning'] as core.Map) + : null, + ); + + core.Map toJson() => { + if (id != null) 'id': id!, + if (items != null) 'items': items!, + if (kind != null) 'kind': kind!, + if (nextPageToken != null) 'nextPageToken': nextPageToken!, + if (selfLink != null) 'selfLink': selfLink!, + if (warning != null) 'warning': warning!, + }; +} + +class InstanceTemplateListWarningData { + /// A key that provides more detail on the warning being returned. + /// + /// For example, for warnings where there are no results in a list request for + /// a particular zone, this key might be scope and the key value might be the + /// zone name. Other examples might be a key indicating a deprecated resource + /// and a suggested replacement, or a warning about invalid network settings + /// (for example, if an instance attempts to perform IP forwarding but is not + /// enabled for IP forwarding). + /// + /// Output only. + core.String? key; + + /// A warning data value corresponding to the key. + /// + /// Output only. + core.String? value; + + InstanceTemplateListWarningData({ + this.key, + this.value, + }); + + InstanceTemplateListWarningData.fromJson(core.Map json_) + : this( + key: json_.containsKey('key') ? json_['key'] as core.String : null, + value: + json_.containsKey('value') ? json_['value'] as core.String : null, + ); + + core.Map toJson() => { + if (key != null) 'key': key!, + if (value != null) 'value': value!, + }; +} + +/// Informational warning message. +/// +/// Output only. +class InstanceTemplateListWarning { + /// A warning code, if applicable. + /// + /// For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no + /// results in the response. + /// + /// Output only. + /// Possible string values are: + /// - "CLEANUP_FAILED" : Warning about failed cleanup of transient changes + /// made by a failed operation. + /// - "DEPRECATED_RESOURCE_USED" : A link to a deprecated resource was + /// created. + /// - "DEPRECATED_TYPE_USED" : When deploying and at least one of the + /// resources has a type marked as deprecated + /// - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" : The user created a boot disk that + /// is larger than image size. + /// - "EXPERIMENTAL_TYPE_USED" : When deploying and at least one of the + /// resources has a type marked as experimental + /// - "EXTERNAL_API_WARNING" : Warning that is present in an external api call + /// - "FIELD_VALUE_OVERRIDEN" : Warning that value of a field has been + /// overridden. Deprecated unused field. + /// - "INJECTED_KERNELS_DEPRECATED" : The operation involved use of an + /// injected kernel, which is deprecated. + /// - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" : A WEIGHTED_MAGLEV + /// backend service is associated with a health check that is not of type + /// HTTP/HTTPS/HTTP2. + /// - "LARGE_DEPLOYMENT_WARNING" : When deploying a deployment with a + /// exceedingly large number of resources + /// - "LIST_OVERHEAD_QUOTA_EXCEED" : Resource can't be retrieved due to list + /// overhead quota exceed which captures the amount of resources filtered out + /// by user-defined list filter. + /// - "MISSING_TYPE_DEPENDENCY" : A resource depends on a missing type + /// - "NEXT_HOP_ADDRESS_NOT_ASSIGNED" : The route's nextHopIp address is not + /// assigned to an instance on the network. + /// - "NEXT_HOP_CANNOT_IP_FORWARD" : The route's next hop instance cannot ip + /// forward. + /// - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" : The route's nextHopInstance + /// URL refers to an instance that does not have an ipv6 interface on the same + /// network as the route. + /// - "NEXT_HOP_INSTANCE_NOT_FOUND" : The route's nextHopInstance URL refers + /// to an instance that does not exist. + /// - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" : The route's nextHopInstance URL + /// refers to an instance that is not on the same network as the route. + /// - "NEXT_HOP_NOT_RUNNING" : The route's next hop instance does not have a + /// status of RUNNING. + /// - "NOT_CRITICAL_ERROR" : Error which is not critical. We decided to + /// continue the process despite the mentioned error. + /// - "NO_RESULTS_ON_PAGE" : No results are present on a particular list page. + /// - "PARTIAL_SUCCESS" : Success is reported, but some results may be missing + /// due to errors + /// - "REQUIRED_TOS_AGREEMENT" : The user attempted to use a resource that + /// requires a TOS they have not accepted. + /// - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" : Warning that a resource is + /// in use. + /// - "RESOURCE_NOT_DELETED" : One or more of the resources set to auto-delete + /// could not be deleted because they were in use. + /// - "SCHEMA_VALIDATION_IGNORED" : When a resource schema validation is + /// ignored. + /// - "SINGLE_INSTANCE_PROPERTY_TEMPLATE" : Instance template used in instance + /// group manager is valid as such, but its application does not make a lot of + /// sense, because it allows only single instance in instance group. + /// - "UNDECLARED_PROPERTIES" : When undeclared properties in the schema are + /// present + /// - "UNREACHABLE" : A given scope cannot be reached. + core.String? code; + + /// Metadata about this warning in key: value format. + /// + /// For example: "data": \[ { "key": "scope", "value": "zones/us-east1-d" } + /// + /// Output only. + core.List? data; + + /// A human-readable description of the warning code. + /// + /// Output only. + core.String? message; + + InstanceTemplateListWarning({ + this.code, + this.data, + this.message, + }); + + InstanceTemplateListWarning.fromJson(core.Map json_) + : this( + code: json_.containsKey('code') ? json_['code'] as core.String : null, + data: json_.containsKey('data') + ? (json_['data'] as core.List) + .map((value) => InstanceTemplateListWarningData.fromJson( + value as core.Map)) + .toList() + : null, + message: json_.containsKey('message') + ? json_['message'] as core.String + : null, + ); + + core.Map toJson() => { + if (code != null) 'code': code!, + if (data != null) 'data': data!, + if (message != null) 'message': message!, + }; +} + +/// A list of instance templates. +class InstanceTemplateList { + /// Unique identifier for the resource; defined by the server. + /// + /// Output only. + core.String? id; + + /// A list of InstanceTemplate resources. + core.List? items; + + /// The resource type, which is always compute#instanceTemplatesListResponse + /// for instance template lists. + /// + /// Output only. + core.String? kind; + + /// This token allows you to get the next page of results for list requests. + /// + /// If the number of results is larger than maxResults, use the nextPageToken + /// as a value for the query parameter pageToken in the next list request. + /// Subsequent list requests will have their own nextPageToken to continue + /// paging through the results. + /// + /// Output only. + core.String? nextPageToken; + + /// Server-defined URL for this resource. + /// + /// Output only. + core.String? selfLink; + + /// Informational warning message. + /// + /// Output only. + InstanceTemplateListWarning? warning; + + InstanceTemplateList({ + this.id, + this.items, + this.kind, + this.nextPageToken, + this.selfLink, + this.warning, + }); + + InstanceTemplateList.fromJson(core.Map json_) + : this( + id: json_.containsKey('id') ? json_['id'] as core.String : null, + items: json_.containsKey('items') + ? (json_['items'] as core.List) + .map((value) => InstanceTemplate.fromJson( + value as core.Map)) + .toList() + : null, + kind: json_.containsKey('kind') ? json_['kind'] as core.String : null, + nextPageToken: json_.containsKey('nextPageToken') + ? json_['nextPageToken'] as core.String + : null, + selfLink: json_.containsKey('selfLink') + ? json_['selfLink'] as core.String + : null, + warning: json_.containsKey('warning') + ? InstanceTemplateListWarning.fromJson( + json_['warning'] as core.Map) + : null, + ); + + core.Map toJson() => { + if (id != null) 'id': id!, + if (items != null) 'items': items!, + if (kind != null) 'kind': kind!, + if (nextPageToken != null) 'nextPageToken': nextPageToken!, + if (selfLink != null) 'selfLink': selfLink!, + if (warning != null) 'warning': warning!, + }; +} + +class InstanceTemplatesScopedListWarningData { + /// A key that provides more detail on the warning being returned. + /// + /// For example, for warnings where there are no results in a list request for + /// a particular zone, this key might be scope and the key value might be the + /// zone name. Other examples might be a key indicating a deprecated resource + /// and a suggested replacement, or a warning about invalid network settings + /// (for example, if an instance attempts to perform IP forwarding but is not + /// enabled for IP forwarding). + /// + /// Output only. + core.String? key; + + /// A warning data value corresponding to the key. + /// + /// Output only. + core.String? value; + + InstanceTemplatesScopedListWarningData({ + this.key, + this.value, + }); + + InstanceTemplatesScopedListWarningData.fromJson(core.Map json_) + : this( + key: json_.containsKey('key') ? json_['key'] as core.String : null, + value: + json_.containsKey('value') ? json_['value'] as core.String : null, + ); + + core.Map toJson() => { + if (key != null) 'key': key!, + if (value != null) 'value': value!, + }; +} + +/// An informational warning that replaces the list of instance templates when +/// the list is empty. +/// +/// Output only. +class InstanceTemplatesScopedListWarning { + /// A warning code, if applicable. + /// + /// For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no + /// results in the response. + /// + /// Output only. + /// Possible string values are: + /// - "CLEANUP_FAILED" : Warning about failed cleanup of transient changes + /// made by a failed operation. + /// - "DEPRECATED_RESOURCE_USED" : A link to a deprecated resource was + /// created. + /// - "DEPRECATED_TYPE_USED" : When deploying and at least one of the + /// resources has a type marked as deprecated + /// - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" : The user created a boot disk that + /// is larger than image size. + /// - "EXPERIMENTAL_TYPE_USED" : When deploying and at least one of the + /// resources has a type marked as experimental + /// - "EXTERNAL_API_WARNING" : Warning that is present in an external api call + /// - "FIELD_VALUE_OVERRIDEN" : Warning that value of a field has been + /// overridden. Deprecated unused field. + /// - "INJECTED_KERNELS_DEPRECATED" : The operation involved use of an + /// injected kernel, which is deprecated. + /// - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" : A WEIGHTED_MAGLEV + /// backend service is associated with a health check that is not of type + /// HTTP/HTTPS/HTTP2. + /// - "LARGE_DEPLOYMENT_WARNING" : When deploying a deployment with a + /// exceedingly large number of resources + /// - "LIST_OVERHEAD_QUOTA_EXCEED" : Resource can't be retrieved due to list + /// overhead quota exceed which captures the amount of resources filtered out + /// by user-defined list filter. + /// - "MISSING_TYPE_DEPENDENCY" : A resource depends on a missing type + /// - "NEXT_HOP_ADDRESS_NOT_ASSIGNED" : The route's nextHopIp address is not + /// assigned to an instance on the network. + /// - "NEXT_HOP_CANNOT_IP_FORWARD" : The route's next hop instance cannot ip + /// forward. + /// - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" : The route's nextHopInstance + /// URL refers to an instance that does not have an ipv6 interface on the same + /// network as the route. + /// - "NEXT_HOP_INSTANCE_NOT_FOUND" : The route's nextHopInstance URL refers + /// to an instance that does not exist. + /// - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" : The route's nextHopInstance URL + /// refers to an instance that is not on the same network as the route. + /// - "NEXT_HOP_NOT_RUNNING" : The route's next hop instance does not have a + /// status of RUNNING. + /// - "NOT_CRITICAL_ERROR" : Error which is not critical. We decided to + /// continue the process despite the mentioned error. + /// - "NO_RESULTS_ON_PAGE" : No results are present on a particular list page. + /// - "PARTIAL_SUCCESS" : Success is reported, but some results may be missing + /// due to errors + /// - "REQUIRED_TOS_AGREEMENT" : The user attempted to use a resource that + /// requires a TOS they have not accepted. + /// - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" : Warning that a resource is + /// in use. + /// - "RESOURCE_NOT_DELETED" : One or more of the resources set to auto-delete + /// could not be deleted because they were in use. + /// - "SCHEMA_VALIDATION_IGNORED" : When a resource schema validation is + /// ignored. + /// - "SINGLE_INSTANCE_PROPERTY_TEMPLATE" : Instance template used in instance + /// group manager is valid as such, but its application does not make a lot of + /// sense, because it allows only single instance in instance group. + /// - "UNDECLARED_PROPERTIES" : When undeclared properties in the schema are + /// present + /// - "UNREACHABLE" : A given scope cannot be reached. + core.String? code; + + /// Metadata about this warning in key: value format. + /// + /// For example: "data": \[ { "key": "scope", "value": "zones/us-east1-d" } + /// + /// Output only. + core.List? data; + + /// A human-readable description of the warning code. + /// + /// Output only. + core.String? message; + + InstanceTemplatesScopedListWarning({ + this.code, + this.data, + this.message, + }); + + InstanceTemplatesScopedListWarning.fromJson(core.Map json_) + : this( + code: json_.containsKey('code') ? json_['code'] as core.String : null, + data: json_.containsKey('data') + ? (json_['data'] as core.List) + .map((value) => + InstanceTemplatesScopedListWarningData.fromJson( + value as core.Map)) + .toList() + : null, + message: json_.containsKey('message') + ? json_['message'] as core.String + : null, + ); + + core.Map toJson() => { + if (code != null) 'code': code!, + if (data != null) 'data': data!, + if (message != null) 'message': message!, + }; +} + +class InstanceTemplatesScopedList { + /// A list of instance templates that are contained within the specified + /// project and zone. + /// + /// Output only. + core.List? instanceTemplates; + + /// An informational warning that replaces the list of instance templates when + /// the list is empty. + /// + /// Output only. + InstanceTemplatesScopedListWarning? warning; + + InstanceTemplatesScopedList({ + this.instanceTemplates, + this.warning, + }); + + InstanceTemplatesScopedList.fromJson(core.Map json_) + : this( + instanceTemplates: json_.containsKey('instanceTemplates') + ? (json_['instanceTemplates'] as core.List) + .map((value) => InstanceTemplate.fromJson( + value as core.Map)) + .toList() + : null, + warning: json_.containsKey('warning') + ? InstanceTemplatesScopedListWarning.fromJson( + json_['warning'] as core.Map) + : null, + ); + + core.Map toJson() => { + if (instanceTemplates != null) 'instanceTemplates': instanceTemplates!, + if (warning != null) 'warning': warning!, + }; +} + +class InstanceWithNamedPorts { + /// The URL of the instance. + /// + /// Output only. + core.String? instance; + + /// The named ports that belong to this instance group. + /// + /// Output only. + core.List? namedPorts; + + /// The status of the instance. + /// + /// Output only. + /// Possible string values are: + /// - "DEPROVISIONING" : The instance is halted and we are performing tear + /// down tasks like network deprogramming, releasing quota, IP, tearing down + /// disks etc. + /// - "PROVISIONING" : Resources are being allocated for the instance. + /// - "REPAIRING" : The instance is in repair. + /// - "RUNNING" : The instance is running. + /// - "STAGING" : All required resources have been allocated and the instance + /// is being started. + /// - "STOPPED" : The instance has stopped successfully. + /// - "STOPPING" : The instance is currently stopping (either being deleted or + /// killed). + /// - "SUSPENDED" : The instance has suspended. + /// - "SUSPENDING" : The instance is suspending. + /// - "TERMINATED" : The instance has stopped (either by explicit action or + /// underlying failure). + core.String? status; + + InstanceWithNamedPorts({ + this.instance, + this.namedPorts, + this.status, + }); + + InstanceWithNamedPorts.fromJson(core.Map json_) + : this( + instance: json_.containsKey('instance') + ? json_['instance'] as core.String + : null, + namedPorts: json_.containsKey('namedPorts') + ? (json_['namedPorts'] as core.List) + .map((value) => NamedPort.fromJson( + value as core.Map)) + .toList() + : null, + status: json_.containsKey('status') + ? json_['status'] as core.String + : null, + ); + + core.Map toJson() => { + if (instance != null) 'instance': instance!, + if (namedPorts != null) 'namedPorts': namedPorts!, + if (status != null) 'status': status!, + }; +} + +class InstancesAddResourcePoliciesRequest { + /// Resource policies to be added to this instance. + core.List? resourcePolicies; + + InstancesAddResourcePoliciesRequest({ + this.resourcePolicies, + }); + + InstancesAddResourcePoliciesRequest.fromJson(core.Map json_) + : this( + resourcePolicies: json_.containsKey('resourcePolicies') + ? (json_['resourcePolicies'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + ); + + core.Map toJson() => { + if (resourcePolicies != null) 'resourcePolicies': resourcePolicies!, + }; +} + +class InstancesBulkInsertOperationMetadata { + /// Status information per location (location name is key). + /// + /// Example key: zones/us-central1-a + core.Map? perLocationStatus; + + InstancesBulkInsertOperationMetadata({ + this.perLocationStatus, + }); + + InstancesBulkInsertOperationMetadata.fromJson(core.Map json_) + : this( + perLocationStatus: json_.containsKey('perLocationStatus') + ? (json_['perLocationStatus'] + as core.Map) + .map( + (key, value) => core.MapEntry( + key, + BulkInsertOperationStatus.fromJson( + value as core.Map), + ), + ) + : null, + ); + + core.Map toJson() => { + if (perLocationStatus != null) 'perLocationStatus': perLocationStatus!, + }; +} + +class InstancesGetEffectiveFirewallsResponse { + /// Effective firewalls from firewall policies. + core.List? + firewallPolicys; + + /// Effective firewalls on the instance. + core.List? firewalls; + + InstancesGetEffectiveFirewallsResponse({ + this.firewallPolicys, + this.firewalls, + }); + + InstancesGetEffectiveFirewallsResponse.fromJson(core.Map json_) + : this( + firewallPolicys: json_.containsKey('firewallPolicys') + ? (json_['firewallPolicys'] as core.List) + .map((value) => + InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy + .fromJson( + value as core.Map)) + .toList() + : null, + firewalls: json_.containsKey('firewalls') + ? (json_['firewalls'] as core.List) + .map((value) => Firewall.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (firewallPolicys != null) 'firewallPolicys': firewallPolicys!, + if (firewalls != null) 'firewalls': firewalls!, + }; +} + +class InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy { + /// Deprecated, please use short name instead. + /// + /// The display name of the firewall policy. + /// + /// Output only. + @core.Deprecated( + 'Not supported. Member documentation may have more information.', + ) + core.String? displayName; + + /// The name of the firewall policy. + /// + /// Output only. + core.String? name; + + /// The rules that apply to the network. + core.List? rules; + + /// The short name of the firewall policy. + /// + /// Output only. + core.String? shortName; + + /// The type of the firewall policy. + /// + /// Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL. + /// + /// Output only. + /// Possible string values are: + /// - "HIERARCHY" + /// - "NETWORK" + /// - "NETWORK_REGIONAL" + /// - "UNSPECIFIED" + core.String? type; + + InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy({ + this.displayName, + this.name, + this.rules, + this.shortName, + this.type, + }); + + InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy.fromJson( + core.Map json_) + : this( + displayName: json_.containsKey('displayName') + ? json_['displayName'] as core.String + : null, + name: json_.containsKey('name') ? json_['name'] as core.String : null, + rules: json_.containsKey('rules') + ? (json_['rules'] as core.List) + .map((value) => FirewallPolicyRule.fromJson( + value as core.Map)) + .toList() + : null, + shortName: json_.containsKey('shortName') + ? json_['shortName'] as core.String + : null, + type: json_.containsKey('type') ? json_['type'] as core.String : null, + ); + + core.Map toJson() => { + if (displayName != null) 'displayName': displayName!, + if (name != null) 'name': name!, + if (rules != null) 'rules': rules!, + if (shortName != null) 'shortName': shortName!, + if (type != null) 'type': type!, + }; +} + +class InstancesRemoveResourcePoliciesRequest { + /// Resource policies to be removed from this instance. + core.List? resourcePolicies; + + InstancesRemoveResourcePoliciesRequest({ + this.resourcePolicies, + }); + + InstancesRemoveResourcePoliciesRequest.fromJson(core.Map json_) + : this( + resourcePolicies: json_.containsKey('resourcePolicies') + ? (json_['resourcePolicies'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + ); + + core.Map toJson() => { + if (resourcePolicies != null) 'resourcePolicies': resourcePolicies!, + }; +} + +class InstancesScopedListWarningData { + /// A key that provides more detail on the warning being returned. + /// + /// For example, for warnings where there are no results in a list request for + /// a particular zone, this key might be scope and the key value might be the + /// zone name. Other examples might be a key indicating a deprecated resource + /// and a suggested replacement, or a warning about invalid network settings + /// (for example, if an instance attempts to perform IP forwarding but is not + /// enabled for IP forwarding). + /// + /// Output only. + core.String? key; + + /// A warning data value corresponding to the key. + /// + /// Output only. + core.String? value; + + InstancesScopedListWarningData({ + this.key, + this.value, + }); + + InstancesScopedListWarningData.fromJson(core.Map json_) + : this( + key: json_.containsKey('key') ? json_['key'] as core.String : null, + value: + json_.containsKey('value') ? json_['value'] as core.String : null, + ); + + core.Map toJson() => { + if (key != null) 'key': key!, + if (value != null) 'value': value!, + }; +} + +/// Informational warning which replaces the list of instances when the list is +/// empty. +/// +/// Output only. +class InstancesScopedListWarning { + /// A warning code, if applicable. + /// + /// For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no + /// results in the response. + /// + /// Output only. + /// Possible string values are: + /// - "CLEANUP_FAILED" : Warning about failed cleanup of transient changes + /// made by a failed operation. + /// - "DEPRECATED_RESOURCE_USED" : A link to a deprecated resource was + /// created. + /// - "DEPRECATED_TYPE_USED" : When deploying and at least one of the + /// resources has a type marked as deprecated + /// - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" : The user created a boot disk that + /// is larger than image size. + /// - "EXPERIMENTAL_TYPE_USED" : When deploying and at least one of the + /// resources has a type marked as experimental + /// - "EXTERNAL_API_WARNING" : Warning that is present in an external api call + /// - "FIELD_VALUE_OVERRIDEN" : Warning that value of a field has been + /// overridden. Deprecated unused field. + /// - "INJECTED_KERNELS_DEPRECATED" : The operation involved use of an + /// injected kernel, which is deprecated. + /// - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" : A WEIGHTED_MAGLEV + /// backend service is associated with a health check that is not of type + /// HTTP/HTTPS/HTTP2. + /// - "LARGE_DEPLOYMENT_WARNING" : When deploying a deployment with a + /// exceedingly large number of resources + /// - "LIST_OVERHEAD_QUOTA_EXCEED" : Resource can't be retrieved due to list + /// overhead quota exceed which captures the amount of resources filtered out + /// by user-defined list filter. + /// - "MISSING_TYPE_DEPENDENCY" : A resource depends on a missing type + /// - "NEXT_HOP_ADDRESS_NOT_ASSIGNED" : The route's nextHopIp address is not + /// assigned to an instance on the network. + /// - "NEXT_HOP_CANNOT_IP_FORWARD" : The route's next hop instance cannot ip + /// forward. + /// - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" : The route's nextHopInstance + /// URL refers to an instance that does not have an ipv6 interface on the same + /// network as the route. + /// - "NEXT_HOP_INSTANCE_NOT_FOUND" : The route's nextHopInstance URL refers + /// to an instance that does not exist. + /// - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" : The route's nextHopInstance URL + /// refers to an instance that is not on the same network as the route. + /// - "NEXT_HOP_NOT_RUNNING" : The route's next hop instance does not have a + /// status of RUNNING. + /// - "NOT_CRITICAL_ERROR" : Error which is not critical. We decided to + /// continue the process despite the mentioned error. + /// - "NO_RESULTS_ON_PAGE" : No results are present on a particular list page. + /// - "PARTIAL_SUCCESS" : Success is reported, but some results may be missing + /// due to errors + /// - "REQUIRED_TOS_AGREEMENT" : The user attempted to use a resource that + /// requires a TOS they have not accepted. + /// - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" : Warning that a resource is + /// in use. + /// - "RESOURCE_NOT_DELETED" : One or more of the resources set to auto-delete + /// could not be deleted because they were in use. + /// - "SCHEMA_VALIDATION_IGNORED" : When a resource schema validation is + /// ignored. + /// - "SINGLE_INSTANCE_PROPERTY_TEMPLATE" : Instance template used in instance + /// group manager is valid as such, but its application does not make a lot of + /// sense, because it allows only single instance in instance group. + /// - "UNDECLARED_PROPERTIES" : When undeclared properties in the schema are + /// present + /// - "UNREACHABLE" : A given scope cannot be reached. + core.String? code; + + /// Metadata about this warning in key: value format. + /// + /// For example: "data": \[ { "key": "scope", "value": "zones/us-east1-d" } + /// + /// Output only. + core.List? data; + + /// A human-readable description of the warning code. + /// + /// Output only. + core.String? message; + + InstancesScopedListWarning({ + this.code, + this.data, + this.message, + }); + + InstancesScopedListWarning.fromJson(core.Map json_) + : this( + code: json_.containsKey('code') ? json_['code'] as core.String : null, + data: json_.containsKey('data') + ? (json_['data'] as core.List) + .map((value) => InstancesScopedListWarningData.fromJson( + value as core.Map)) + .toList() + : null, + message: json_.containsKey('message') + ? json_['message'] as core.String + : null, + ); + + core.Map toJson() => { + if (code != null) 'code': code!, + if (data != null) 'data': data!, + if (message != null) 'message': message!, + }; +} + +class InstancesScopedList { + /// A list of instances contained in this scope. + /// + /// Output only. + core.List? instances; + + /// Informational warning which replaces the list of instances when the list + /// is empty. + /// + /// Output only. + InstancesScopedListWarning? warning; + + InstancesScopedList({ + this.instances, + this.warning, + }); + + InstancesScopedList.fromJson(core.Map json_) + : this( + instances: json_.containsKey('instances') + ? (json_['instances'] as core.List) + .map((value) => Instance.fromJson( + value as core.Map)) + .toList() + : null, + warning: json_.containsKey('warning') + ? InstancesScopedListWarning.fromJson( + json_['warning'] as core.Map) + : null, + ); + + core.Map toJson() => { + if (instances != null) 'instances': instances!, + if (warning != null) 'warning': warning!, + }; +} + +class InstancesSetLabelsRequest { + /// Fingerprint of the previous set of labels for this resource, used to + /// prevent conflicts. + /// + /// Provide the latest fingerprint value when making a request to add or + /// change labels. + core.String? labelFingerprint; + core.List get labelFingerprintAsBytes => + convert.base64.decode(labelFingerprint!); + + set labelFingerprintAsBytes(core.List bytes_) { + labelFingerprint = + convert.base64.encode(bytes_).replaceAll('/', '_').replaceAll('+', '-'); + } + + core.Map? labels; + + InstancesSetLabelsRequest({ + this.labelFingerprint, + this.labels, + }); + + InstancesSetLabelsRequest.fromJson(core.Map json_) + : this( + labelFingerprint: json_.containsKey('labelFingerprint') + ? json_['labelFingerprint'] as core.String + : null, + labels: json_.containsKey('labels') + ? (json_['labels'] as core.Map).map( + (key, value) => core.MapEntry( + key, + value as core.String, + ), + ) + : null, + ); + + core.Map toJson() => { + if (labelFingerprint != null) 'labelFingerprint': labelFingerprint!, + if (labels != null) 'labels': labels!, + }; +} + +class InstancesSetMachineResourcesRequest { + /// A list of the type and count of accelerator cards attached to the + /// instance. + core.List? guestAccelerators; + + InstancesSetMachineResourcesRequest({ + this.guestAccelerators, + }); + + InstancesSetMachineResourcesRequest.fromJson(core.Map json_) + : this( + guestAccelerators: json_.containsKey('guestAccelerators') + ? (json_['guestAccelerators'] as core.List) + .map((value) => AcceleratorConfig.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (guestAccelerators != null) 'guestAccelerators': guestAccelerators!, + }; +} + +class InstancesSetMachineTypeRequest { + /// Full or partial URL of the machine type resource. + /// + /// See Machine Types for a full list of machine types. For example: + /// zones/us-central1-f/machineTypes/n1-standard-1 + core.String? machineType; + + InstancesSetMachineTypeRequest({ + this.machineType, + }); + + InstancesSetMachineTypeRequest.fromJson(core.Map json_) + : this( + machineType: json_.containsKey('machineType') + ? json_['machineType'] as core.String + : null, + ); + + core.Map toJson() => { + if (machineType != null) 'machineType': machineType!, + }; +} + +class InstancesSetMinCpuPlatformRequest { + /// Minimum cpu/platform this instance should be started at. + core.String? minCpuPlatform; + + InstancesSetMinCpuPlatformRequest({ + this.minCpuPlatform, + }); + + InstancesSetMinCpuPlatformRequest.fromJson(core.Map json_) + : this( + minCpuPlatform: json_.containsKey('minCpuPlatform') + ? json_['minCpuPlatform'] as core.String + : null, + ); + + core.Map toJson() => { + if (minCpuPlatform != null) 'minCpuPlatform': minCpuPlatform!, + }; +} + +class InstancesSetNameRequest { + /// The current name of this resource, used to prevent conflicts. + /// + /// Provide the latest name when making a request to change name. + core.String? currentName; + + /// The name to be applied to the instance. + /// + /// Needs to be RFC 1035 compliant. + core.String? name; + + InstancesSetNameRequest({ + this.currentName, + this.name, + }); + + InstancesSetNameRequest.fromJson(core.Map json_) + : this( + currentName: json_.containsKey('currentName') + ? json_['currentName'] as core.String + : null, + name: json_.containsKey('name') ? json_['name'] as core.String : null, + ); + + core.Map toJson() => { + if (currentName != null) 'currentName': currentName!, + if (name != null) 'name': name!, + }; +} + +class InstancesSetSecurityPolicyRequest { + /// The network interfaces that the security policy will be applied to. + /// + /// Network interfaces use the nicN naming format. You can only set a security + /// policy for network interfaces with an access config. + core.List? networkInterfaces; + + /// A full or partial URL to a security policy to add to this instance. + /// + /// If this field is set to an empty string it will remove the associated + /// security policy. + core.String? securityPolicy; + + InstancesSetSecurityPolicyRequest({ + this.networkInterfaces, + this.securityPolicy, + }); + + InstancesSetSecurityPolicyRequest.fromJson(core.Map json_) + : this( + networkInterfaces: json_.containsKey('networkInterfaces') + ? (json_['networkInterfaces'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + securityPolicy: json_.containsKey('securityPolicy') + ? json_['securityPolicy'] as core.String + : null, + ); + + core.Map toJson() => { + if (networkInterfaces != null) 'networkInterfaces': networkInterfaces!, + if (securityPolicy != null) 'securityPolicy': securityPolicy!, + }; +} + +typedef InstancesSetServiceAccountRequest = $Shared05; + +class InstancesStartWithEncryptionKeyRequest { + /// Array of disks associated with this instance that are protected with a + /// customer-supplied encryption key. + /// + /// In order to start the instance, the disk url and its corresponding key + /// must be provided. If the disk is not protected with a customer-supplied + /// encryption key it should not be specified. + core.List? disks; + + InstancesStartWithEncryptionKeyRequest({ + this.disks, + }); + + InstancesStartWithEncryptionKeyRequest.fromJson(core.Map json_) + : this( + disks: json_.containsKey('disks') + ? (json_['disks'] as core.List) + .map((value) => CustomerEncryptionKeyProtectedDisk.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (disks != null) 'disks': disks!, + }; +} + +/// Represents a InstantSnapshot resource. +/// +/// You can use instant snapshots to create disk rollback points quickly.. +class InstantSnapshot { + /// The architecture of the instant snapshot. + /// + /// Valid values are ARM64 or X86_64. + /// + /// Output only. + /// Possible string values are: + /// - "ARCHITECTURE_UNSPECIFIED" : Default value indicating Architecture is + /// not set. + /// - "ARM64" : Machines with architecture ARM64 + /// - "X86_64" : Machines with architecture X86_64 + core.String? architecture; + + /// Creation timestamp in RFC3339 text format. + /// + /// Output only. + core.String? creationTimestamp; + + /// An optional description of this resource. + /// + /// Provide this property when you create the resource. + core.String? description; + + /// Size of the source disk, specified in GB. + /// + /// Output only. + core.String? diskSizeGb; + + /// The unique identifier for the resource. + /// + /// This identifier is defined by the server. + /// + /// Output only. + core.String? id; + + /// Type of the resource. + /// + /// Always compute#instantSnapshot for InstantSnapshot resources. + /// + /// Output only. + core.String? kind; + + /// A fingerprint for the labels being applied to this InstantSnapshot, which + /// is essentially a hash of the labels set used for optimistic locking. + /// + /// The fingerprint is initially generated by Compute Engine and changes after + /// every request to modify or update labels. You must always provide an + /// up-to-date fingerprint hash in order to update or change labels, otherwise + /// the request will fail with error 412 conditionNotMet. To see the latest + /// fingerprint, make a get() request to retrieve a InstantSnapshot. + core.String? labelFingerprint; + core.List get labelFingerprintAsBytes => + convert.base64.decode(labelFingerprint!); + + set labelFingerprintAsBytes(core.List bytes_) { + labelFingerprint = + convert.base64.encode(bytes_).replaceAll('/', '_').replaceAll('+', '-'); + } + + /// Labels to apply to this InstantSnapshot. + /// + /// These can be later modified by the setLabels method. Label values may be + /// empty. + core.Map? labels; + + /// Name of the resource; provided by the client when the resource is created. + /// + /// The name must be 1-63 characters long, and comply with RFC1035. + /// Specifically, the name must be 1-63 characters long and match the regular + /// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character + /// must be a lowercase letter, and all following characters must be a dash, + /// lowercase letter, or digit, except the last character, which cannot be a + /// dash. + core.String? name; + + /// URL of the region where the instant snapshot resides. + /// + /// You must specify this field as part of the HTTP request URL. It is not + /// settable as a field in the request body. + /// + /// Output only. + core.String? region; + + /// Status information for the instant snapshot resource. + /// + /// Output only. + InstantSnapshotResourceStatus? resourceStatus; + + /// Reserved for future use. + /// + /// Output only. + core.bool? satisfiesPzi; + + /// Reserved for future use. + /// + /// Output only. + core.bool? satisfiesPzs; + + /// Server-defined URL for the resource. + /// + /// Output only. + core.String? selfLink; + + /// Server-defined URL for this resource's resource id. + /// + /// Output only. + core.String? selfLinkWithId; + + /// URL of the source disk used to create this instant snapshot. + /// + /// Note that the source disk must be in the same zone/region as the instant + /// snapshot to be created. This can be a full or valid partial URL. For + /// example, the following are valid values: - + /// https://www.googleapis.com/compute/v1/projects/project/zones/zone + /// /disks/disk - + /// https://www.googleapis.com/compute/v1/projects/project/regions/region + /// /disks/disk - projects/project/zones/zone/disks/disk - + /// projects/project/regions/region/disks/disk - zones/zone/disks/disk - + /// regions/region/disks/disk + core.String? sourceDisk; + + /// The ID value of the disk used to create this InstantSnapshot. + /// + /// This value may be used to determine whether the InstantSnapshot was taken + /// from the current or a previous instance of a given disk name. + /// + /// Output only. + core.String? sourceDiskId; + + /// The status of the instantSnapshot. + /// + /// This can be CREATING, DELETING, FAILED, or READY. + /// + /// Output only. + /// Possible string values are: + /// - "CREATING" : InstantSnapshot creation is in progress. + /// - "DELETING" : InstantSnapshot is currently being deleted. + /// - "FAILED" : InstantSnapshot creation failed. + /// - "READY" : InstantSnapshot has been created successfully. + core.String? status; + + /// URL of the zone where the instant snapshot resides. + /// + /// You must specify this field as part of the HTTP request URL. It is not + /// settable as a field in the request body. + /// + /// Output only. + core.String? zone; + + InstantSnapshot({ + this.architecture, + this.creationTimestamp, + this.description, + this.diskSizeGb, + this.id, + this.kind, + this.labelFingerprint, + this.labels, + this.name, + this.region, + this.resourceStatus, + this.satisfiesPzi, + this.satisfiesPzs, + this.selfLink, + this.selfLinkWithId, + this.sourceDisk, + this.sourceDiskId, + this.status, + this.zone, + }); + + InstantSnapshot.fromJson(core.Map json_) + : this( + architecture: json_.containsKey('architecture') + ? json_['architecture'] as core.String + : null, + creationTimestamp: json_.containsKey('creationTimestamp') + ? json_['creationTimestamp'] as core.String + : null, + description: json_.containsKey('description') + ? json_['description'] as core.String + : null, + diskSizeGb: json_.containsKey('diskSizeGb') + ? json_['diskSizeGb'] as core.String + : null, + id: json_.containsKey('id') ? json_['id'] as core.String : null, + kind: json_.containsKey('kind') ? json_['kind'] as core.String : null, + labelFingerprint: json_.containsKey('labelFingerprint') + ? json_['labelFingerprint'] as core.String + : null, + labels: json_.containsKey('labels') + ? (json_['labels'] as core.Map).map( + (key, value) => core.MapEntry( + key, + value as core.String, + ), + ) + : null, + name: json_.containsKey('name') ? json_['name'] as core.String : null, + region: json_.containsKey('region') + ? json_['region'] as core.String + : null, + resourceStatus: json_.containsKey('resourceStatus') + ? InstantSnapshotResourceStatus.fromJson(json_['resourceStatus'] + as core.Map) + : null, + satisfiesPzi: json_.containsKey('satisfiesPzi') + ? json_['satisfiesPzi'] as core.bool + : null, + satisfiesPzs: json_.containsKey('satisfiesPzs') + ? json_['satisfiesPzs'] as core.bool : null, selfLink: json_.containsKey('selfLink') ? json_['selfLink'] as core.String : null, - sourceInstance: json_.containsKey('sourceInstance') - ? json_['sourceInstance'] as core.String + selfLinkWithId: json_.containsKey('selfLinkWithId') + ? json_['selfLinkWithId'] as core.String : null, - sourceInstanceParams: json_.containsKey('sourceInstanceParams') - ? SourceInstanceParams.fromJson(json_['sourceInstanceParams'] - as core.Map) + sourceDisk: json_.containsKey('sourceDisk') + ? json_['sourceDisk'] as core.String + : null, + sourceDiskId: json_.containsKey('sourceDiskId') + ? json_['sourceDiskId'] as core.String + : null, + status: json_.containsKey('status') + ? json_['status'] as core.String : null, + zone: json_.containsKey('zone') ? json_['zone'] as core.String : null, ); core.Map toJson() => { + if (architecture != null) 'architecture': architecture!, if (creationTimestamp != null) 'creationTimestamp': creationTimestamp!, if (description != null) 'description': description!, + if (diskSizeGb != null) 'diskSizeGb': diskSizeGb!, if (id != null) 'id': id!, if (kind != null) 'kind': kind!, + if (labelFingerprint != null) 'labelFingerprint': labelFingerprint!, + if (labels != null) 'labels': labels!, if (name != null) 'name': name!, - if (properties != null) 'properties': properties!, if (region != null) 'region': region!, + if (resourceStatus != null) 'resourceStatus': resourceStatus!, + if (satisfiesPzi != null) 'satisfiesPzi': satisfiesPzi!, + if (satisfiesPzs != null) 'satisfiesPzs': satisfiesPzs!, if (selfLink != null) 'selfLink': selfLink!, - if (sourceInstance != null) 'sourceInstance': sourceInstance!, - if (sourceInstanceParams != null) - 'sourceInstanceParams': sourceInstanceParams!, + if (selfLinkWithId != null) 'selfLinkWithId': selfLinkWithId!, + if (sourceDisk != null) 'sourceDisk': sourceDisk!, + if (sourceDiskId != null) 'sourceDiskId': sourceDiskId!, + if (status != null) 'status': status!, + if (zone != null) 'zone': zone!, }; } -class InstanceTemplateAggregatedListWarningData { +class InstantSnapshotAggregatedListWarningData { /// A key that provides more detail on the warning being returned. /// /// For example, for warnings where there are no results in a list request for @@ -79626,12 +83764,12 @@ class InstanceTemplateAggregatedListWarningData { /// Output only. core.String? value; - InstanceTemplateAggregatedListWarningData({ + InstantSnapshotAggregatedListWarningData({ this.key, this.value, }); - InstanceTemplateAggregatedListWarningData.fromJson(core.Map json_) + InstantSnapshotAggregatedListWarningData.fromJson(core.Map json_) : this( key: json_.containsKey('key') ? json_['key'] as core.String : null, value: @@ -79647,7 +83785,7 @@ class InstanceTemplateAggregatedListWarningData { /// Informational warning message. /// /// Output only. -class InstanceTemplateAggregatedListWarning { +class InstantSnapshotAggregatedListWarning { /// A warning code, if applicable. /// /// For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no @@ -79718,26 +83856,26 @@ class InstanceTemplateAggregatedListWarning { /// For example: "data": \[ { "key": "scope", "value": "zones/us-east1-d" } /// /// Output only. - core.List? data; + core.List? data; /// A human-readable description of the warning code. /// /// Output only. core.String? message; - InstanceTemplateAggregatedListWarning({ + InstantSnapshotAggregatedListWarning({ this.code, this.data, this.message, }); - InstanceTemplateAggregatedListWarning.fromJson(core.Map json_) + InstantSnapshotAggregatedListWarning.fromJson(core.Map json_) : this( code: json_.containsKey('code') ? json_['code'] as core.String : null, data: json_.containsKey('data') ? (json_['data'] as core.List) .map((value) => - InstanceTemplateAggregatedListWarningData.fromJson( + InstantSnapshotAggregatedListWarningData.fromJson( value as core.Map)) .toList() : null, @@ -79753,17 +83891,21 @@ class InstanceTemplateAggregatedListWarning { }; } -/// Contains a list of InstanceTemplatesScopedList. -class InstanceTemplateAggregatedList { +class InstantSnapshotAggregatedList { /// Unique identifier for the resource; defined by the server. /// /// Output only. core.String? id; - /// A list of InstanceTemplatesScopedList resources. - core.Map? items; + /// A list of InstantSnapshotsScopedList resources. + core.Map? items; /// Type of resource. + /// + /// Always compute#instantSnapshotAggregatedList for aggregated lists of + /// instantSnapshots. + /// + /// Output only. core.String? kind; /// This token allows you to get the next page of results for list requests. @@ -79781,28 +83923,34 @@ class InstanceTemplateAggregatedList { /// Output only. core.String? selfLink; + /// Unreachable resources. + /// + /// Output only. + core.List? unreachables; + /// Informational warning message. /// /// Output only. - InstanceTemplateAggregatedListWarning? warning; + InstantSnapshotAggregatedListWarning? warning; - InstanceTemplateAggregatedList({ + InstantSnapshotAggregatedList({ this.id, this.items, this.kind, this.nextPageToken, this.selfLink, + this.unreachables, this.warning, }); - InstanceTemplateAggregatedList.fromJson(core.Map json_) + InstantSnapshotAggregatedList.fromJson(core.Map json_) : this( id: json_.containsKey('id') ? json_['id'] as core.String : null, items: json_.containsKey('items') ? (json_['items'] as core.Map).map( (key, value) => core.MapEntry( key, - InstanceTemplatesScopedList.fromJson( + InstantSnapshotsScopedList.fromJson( value as core.Map), ), ) @@ -79814,8 +83962,13 @@ class InstanceTemplateAggregatedList { selfLink: json_.containsKey('selfLink') ? json_['selfLink'] as core.String : null, + unreachables: json_.containsKey('unreachables') + ? (json_['unreachables'] as core.List) + .map((value) => value as core.String) + .toList() + : null, warning: json_.containsKey('warning') - ? InstanceTemplateAggregatedListWarning.fromJson( + ? InstantSnapshotAggregatedListWarning.fromJson( json_['warning'] as core.Map) : null, ); @@ -79826,11 +83979,12 @@ class InstanceTemplateAggregatedList { if (kind != null) 'kind': kind!, if (nextPageToken != null) 'nextPageToken': nextPageToken!, if (selfLink != null) 'selfLink': selfLink!, + if (unreachables != null) 'unreachables': unreachables!, if (warning != null) 'warning': warning!, }; } -class InstanceTemplateListWarningData { +class InstantSnapshotListWarningData { /// A key that provides more detail on the warning being returned. /// /// For example, for warnings where there are no results in a list request for @@ -79848,12 +84002,12 @@ class InstanceTemplateListWarningData { /// Output only. core.String? value; - InstanceTemplateListWarningData({ + InstantSnapshotListWarningData({ this.key, this.value, }); - InstanceTemplateListWarningData.fromJson(core.Map json_) + InstantSnapshotListWarningData.fromJson(core.Map json_) : this( key: json_.containsKey('key') ? json_['key'] as core.String : null, value: @@ -79869,7 +84023,7 @@ class InstanceTemplateListWarningData { /// Informational warning message. /// /// Output only. -class InstanceTemplateListWarning { +class InstantSnapshotListWarning { /// A warning code, if applicable. /// /// For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no @@ -79940,25 +84094,25 @@ class InstanceTemplateListWarning { /// For example: "data": \[ { "key": "scope", "value": "zones/us-east1-d" } /// /// Output only. - core.List? data; + core.List? data; /// A human-readable description of the warning code. /// /// Output only. core.String? message; - InstanceTemplateListWarning({ + InstantSnapshotListWarning({ this.code, this.data, this.message, }); - InstanceTemplateListWarning.fromJson(core.Map json_) + InstantSnapshotListWarning.fromJson(core.Map json_) : this( code: json_.containsKey('code') ? json_['code'] as core.String : null, data: json_.containsKey('data') ? (json_['data'] as core.List) - .map((value) => InstanceTemplateListWarningData.fromJson( + .map((value) => InstantSnapshotListWarningData.fromJson( value as core.Map)) .toList() : null, @@ -79974,20 +84128,17 @@ class InstanceTemplateListWarning { }; } -/// A list of instance templates. -class InstanceTemplateList { +/// Contains a list of InstantSnapshot resources. +class InstantSnapshotList { /// Unique identifier for the resource; defined by the server. /// /// Output only. core.String? id; - /// A list of InstanceTemplate resources. - core.List? items; + /// A list of InstantSnapshot resources. + core.List? items; - /// The resource type, which is always compute#instanceTemplatesListResponse - /// for instance template lists. - /// - /// Output only. + /// Type of resource. core.String? kind; /// This token allows you to get the next page of results for list requests. @@ -80008,9 +84159,9 @@ class InstanceTemplateList { /// Informational warning message. /// /// Output only. - InstanceTemplateListWarning? warning; + InstantSnapshotListWarning? warning; - InstanceTemplateList({ + InstantSnapshotList({ this.id, this.items, this.kind, @@ -80019,12 +84170,12 @@ class InstanceTemplateList { this.warning, }); - InstanceTemplateList.fromJson(core.Map json_) + InstantSnapshotList.fromJson(core.Map json_) : this( id: json_.containsKey('id') ? json_['id'] as core.String : null, items: json_.containsKey('items') ? (json_['items'] as core.List) - .map((value) => InstanceTemplate.fromJson( + .map((value) => InstantSnapshot.fromJson( value as core.Map)) .toList() : null, @@ -80036,7 +84187,7 @@ class InstanceTemplateList { ? json_['selfLink'] as core.String : null, warning: json_.containsKey('warning') - ? InstanceTemplateListWarning.fromJson( + ? InstantSnapshotListWarning.fromJson( json_['warning'] as core.Map) : null, ); @@ -80051,435 +84202,29 @@ class InstanceTemplateList { }; } -class InstanceTemplatesScopedListWarningData { - /// A key that provides more detail on the warning being returned. - /// - /// For example, for warnings where there are no results in a list request for - /// a particular zone, this key might be scope and the key value might be the - /// zone name. Other examples might be a key indicating a deprecated resource - /// and a suggested replacement, or a warning about invalid network settings - /// (for example, if an instance attempts to perform IP forwarding but is not - /// enabled for IP forwarding). - /// - /// Output only. - core.String? key; - - /// A warning data value corresponding to the key. - /// - /// Output only. - core.String? value; - - InstanceTemplatesScopedListWarningData({ - this.key, - this.value, - }); - - InstanceTemplatesScopedListWarningData.fromJson(core.Map json_) - : this( - key: json_.containsKey('key') ? json_['key'] as core.String : null, - value: - json_.containsKey('value') ? json_['value'] as core.String : null, - ); - - core.Map toJson() => { - if (key != null) 'key': key!, - if (value != null) 'value': value!, - }; -} - -/// An informational warning that replaces the list of instance templates when -/// the list is empty. -/// -/// Output only. -class InstanceTemplatesScopedListWarning { - /// A warning code, if applicable. - /// - /// For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no - /// results in the response. - /// - /// Output only. - /// Possible string values are: - /// - "CLEANUP_FAILED" : Warning about failed cleanup of transient changes - /// made by a failed operation. - /// - "DEPRECATED_RESOURCE_USED" : A link to a deprecated resource was - /// created. - /// - "DEPRECATED_TYPE_USED" : When deploying and at least one of the - /// resources has a type marked as deprecated - /// - "DISK_SIZE_LARGER_THAN_IMAGE_SIZE" : The user created a boot disk that - /// is larger than image size. - /// - "EXPERIMENTAL_TYPE_USED" : When deploying and at least one of the - /// resources has a type marked as experimental - /// - "EXTERNAL_API_WARNING" : Warning that is present in an external api call - /// - "FIELD_VALUE_OVERRIDEN" : Warning that value of a field has been - /// overridden. Deprecated unused field. - /// - "INJECTED_KERNELS_DEPRECATED" : The operation involved use of an - /// injected kernel, which is deprecated. - /// - "INVALID_HEALTH_CHECK_FOR_DYNAMIC_WIEGHTED_LB" : A WEIGHTED_MAGLEV - /// backend service is associated with a health check that is not of type - /// HTTP/HTTPS/HTTP2. - /// - "LARGE_DEPLOYMENT_WARNING" : When deploying a deployment with a - /// exceedingly large number of resources - /// - "LIST_OVERHEAD_QUOTA_EXCEED" : Resource can't be retrieved due to list - /// overhead quota exceed which captures the amount of resources filtered out - /// by user-defined list filter. - /// - "MISSING_TYPE_DEPENDENCY" : A resource depends on a missing type - /// - "NEXT_HOP_ADDRESS_NOT_ASSIGNED" : The route's nextHopIp address is not - /// assigned to an instance on the network. - /// - "NEXT_HOP_CANNOT_IP_FORWARD" : The route's next hop instance cannot ip - /// forward. - /// - "NEXT_HOP_INSTANCE_HAS_NO_IPV6_INTERFACE" : The route's nextHopInstance - /// URL refers to an instance that does not have an ipv6 interface on the same - /// network as the route. - /// - "NEXT_HOP_INSTANCE_NOT_FOUND" : The route's nextHopInstance URL refers - /// to an instance that does not exist. - /// - "NEXT_HOP_INSTANCE_NOT_ON_NETWORK" : The route's nextHopInstance URL - /// refers to an instance that is not on the same network as the route. - /// - "NEXT_HOP_NOT_RUNNING" : The route's next hop instance does not have a - /// status of RUNNING. - /// - "NOT_CRITICAL_ERROR" : Error which is not critical. We decided to - /// continue the process despite the mentioned error. - /// - "NO_RESULTS_ON_PAGE" : No results are present on a particular list page. - /// - "PARTIAL_SUCCESS" : Success is reported, but some results may be missing - /// due to errors - /// - "REQUIRED_TOS_AGREEMENT" : The user attempted to use a resource that - /// requires a TOS they have not accepted. - /// - "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING" : Warning that a resource is - /// in use. - /// - "RESOURCE_NOT_DELETED" : One or more of the resources set to auto-delete - /// could not be deleted because they were in use. - /// - "SCHEMA_VALIDATION_IGNORED" : When a resource schema validation is - /// ignored. - /// - "SINGLE_INSTANCE_PROPERTY_TEMPLATE" : Instance template used in instance - /// group manager is valid as such, but its application does not make a lot of - /// sense, because it allows only single instance in instance group. - /// - "UNDECLARED_PROPERTIES" : When undeclared properties in the schema are - /// present - /// - "UNREACHABLE" : A given scope cannot be reached. - core.String? code; - - /// Metadata about this warning in key: value format. - /// - /// For example: "data": \[ { "key": "scope", "value": "zones/us-east1-d" } - /// - /// Output only. - core.List? data; - - /// A human-readable description of the warning code. - /// - /// Output only. - core.String? message; - - InstanceTemplatesScopedListWarning({ - this.code, - this.data, - this.message, - }); - - InstanceTemplatesScopedListWarning.fromJson(core.Map json_) - : this( - code: json_.containsKey('code') ? json_['code'] as core.String : null, - data: json_.containsKey('data') - ? (json_['data'] as core.List) - .map((value) => - InstanceTemplatesScopedListWarningData.fromJson( - value as core.Map)) - .toList() - : null, - message: json_.containsKey('message') - ? json_['message'] as core.String - : null, - ); - - core.Map toJson() => { - if (code != null) 'code': code!, - if (data != null) 'data': data!, - if (message != null) 'message': message!, - }; -} - -class InstanceTemplatesScopedList { - /// A list of instance templates that are contained within the specified - /// project and zone. - /// - /// Output only. - core.List? instanceTemplates; - - /// An informational warning that replaces the list of instance templates when - /// the list is empty. - /// - /// Output only. - InstanceTemplatesScopedListWarning? warning; - - InstanceTemplatesScopedList({ - this.instanceTemplates, - this.warning, - }); - - InstanceTemplatesScopedList.fromJson(core.Map json_) - : this( - instanceTemplates: json_.containsKey('instanceTemplates') - ? (json_['instanceTemplates'] as core.List) - .map((value) => InstanceTemplate.fromJson( - value as core.Map)) - .toList() - : null, - warning: json_.containsKey('warning') - ? InstanceTemplatesScopedListWarning.fromJson( - json_['warning'] as core.Map) - : null, - ); - - core.Map toJson() => { - if (instanceTemplates != null) 'instanceTemplates': instanceTemplates!, - if (warning != null) 'warning': warning!, - }; -} - -class InstanceWithNamedPorts { - /// The URL of the instance. - /// - /// Output only. - core.String? instance; - - /// The named ports that belong to this instance group. - /// - /// Output only. - core.List? namedPorts; - - /// The status of the instance. - /// - /// Output only. - /// Possible string values are: - /// - "DEPROVISIONING" : The instance is halted and we are performing tear - /// down tasks like network deprogramming, releasing quota, IP, tearing down - /// disks etc. - /// - "PROVISIONING" : Resources are being allocated for the instance. - /// - "REPAIRING" : The instance is in repair. - /// - "RUNNING" : The instance is running. - /// - "STAGING" : All required resources have been allocated and the instance - /// is being started. - /// - "STOPPED" : The instance has stopped successfully. - /// - "STOPPING" : The instance is currently stopping (either being deleted or - /// killed). - /// - "SUSPENDED" : The instance has suspended. - /// - "SUSPENDING" : The instance is suspending. - /// - "TERMINATED" : The instance has stopped (either by explicit action or - /// underlying failure). - core.String? status; - - InstanceWithNamedPorts({ - this.instance, - this.namedPorts, - this.status, - }); - - InstanceWithNamedPorts.fromJson(core.Map json_) - : this( - instance: json_.containsKey('instance') - ? json_['instance'] as core.String - : null, - namedPorts: json_.containsKey('namedPorts') - ? (json_['namedPorts'] as core.List) - .map((value) => NamedPort.fromJson( - value as core.Map)) - .toList() - : null, - status: json_.containsKey('status') - ? json_['status'] as core.String - : null, - ); - - core.Map toJson() => { - if (instance != null) 'instance': instance!, - if (namedPorts != null) 'namedPorts': namedPorts!, - if (status != null) 'status': status!, - }; -} - -class InstancesAddResourcePoliciesRequest { - /// Resource policies to be added to this instance. - core.List? resourcePolicies; - - InstancesAddResourcePoliciesRequest({ - this.resourcePolicies, - }); - - InstancesAddResourcePoliciesRequest.fromJson(core.Map json_) - : this( - resourcePolicies: json_.containsKey('resourcePolicies') - ? (json_['resourcePolicies'] as core.List) - .map((value) => value as core.String) - .toList() - : null, - ); - - core.Map toJson() => { - if (resourcePolicies != null) 'resourcePolicies': resourcePolicies!, - }; -} - -class InstancesBulkInsertOperationMetadata { - /// Status information per location (location name is key). - /// - /// Example key: zones/us-central1-a - core.Map? perLocationStatus; - - InstancesBulkInsertOperationMetadata({ - this.perLocationStatus, - }); - - InstancesBulkInsertOperationMetadata.fromJson(core.Map json_) - : this( - perLocationStatus: json_.containsKey('perLocationStatus') - ? (json_['perLocationStatus'] - as core.Map) - .map( - (key, value) => core.MapEntry( - key, - BulkInsertOperationStatus.fromJson( - value as core.Map), - ), - ) - : null, - ); - - core.Map toJson() => { - if (perLocationStatus != null) 'perLocationStatus': perLocationStatus!, - }; -} - -class InstancesGetEffectiveFirewallsResponse { - /// Effective firewalls from firewall policies. - core.List? - firewallPolicys; - - /// Effective firewalls on the instance. - core.List? firewalls; - - InstancesGetEffectiveFirewallsResponse({ - this.firewallPolicys, - this.firewalls, - }); - - InstancesGetEffectiveFirewallsResponse.fromJson(core.Map json_) - : this( - firewallPolicys: json_.containsKey('firewallPolicys') - ? (json_['firewallPolicys'] as core.List) - .map((value) => - InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy - .fromJson( - value as core.Map)) - .toList() - : null, - firewalls: json_.containsKey('firewalls') - ? (json_['firewalls'] as core.List) - .map((value) => Firewall.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (firewallPolicys != null) 'firewallPolicys': firewallPolicys!, - if (firewalls != null) 'firewalls': firewalls!, - }; -} - -class InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy { - /// Deprecated, please use short name instead. - /// - /// The display name of the firewall policy. - /// - /// Output only. - @core.Deprecated( - 'Not supported. Member documentation may have more information.', - ) - core.String? displayName; - - /// The name of the firewall policy. - /// - /// Output only. - core.String? name; - - /// The rules that apply to the network. - core.List? rules; - - /// The short name of the firewall policy. - /// - /// Output only. - core.String? shortName; - - /// The type of the firewall policy. - /// - /// Can be one of HIERARCHY, NETWORK, NETWORK_REGIONAL. +class InstantSnapshotResourceStatus { + /// The storage size of this instant snapshot. /// /// Output only. - /// Possible string values are: - /// - "HIERARCHY" - /// - "NETWORK" - /// - "NETWORK_REGIONAL" - /// - "UNSPECIFIED" - core.String? type; - - InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy({ - this.displayName, - this.name, - this.rules, - this.shortName, - this.type, - }); - - InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy.fromJson( - core.Map json_) - : this( - displayName: json_.containsKey('displayName') - ? json_['displayName'] as core.String - : null, - name: json_.containsKey('name') ? json_['name'] as core.String : null, - rules: json_.containsKey('rules') - ? (json_['rules'] as core.List) - .map((value) => FirewallPolicyRule.fromJson( - value as core.Map)) - .toList() - : null, - shortName: json_.containsKey('shortName') - ? json_['shortName'] as core.String - : null, - type: json_.containsKey('type') ? json_['type'] as core.String : null, - ); - - core.Map toJson() => { - if (displayName != null) 'displayName': displayName!, - if (name != null) 'name': name!, - if (rules != null) 'rules': rules!, - if (shortName != null) 'shortName': shortName!, - if (type != null) 'type': type!, - }; -} - -class InstancesRemoveResourcePoliciesRequest { - /// Resource policies to be removed from this instance. - core.List? resourcePolicies; + core.String? storageSizeBytes; - InstancesRemoveResourcePoliciesRequest({ - this.resourcePolicies, + InstantSnapshotResourceStatus({ + this.storageSizeBytes, }); - InstancesRemoveResourcePoliciesRequest.fromJson(core.Map json_) + InstantSnapshotResourceStatus.fromJson(core.Map json_) : this( - resourcePolicies: json_.containsKey('resourcePolicies') - ? (json_['resourcePolicies'] as core.List) - .map((value) => value as core.String) - .toList() + storageSizeBytes: json_.containsKey('storageSizeBytes') + ? json_['storageSizeBytes'] as core.String : null, ); core.Map toJson() => { - if (resourcePolicies != null) 'resourcePolicies': resourcePolicies!, + if (storageSizeBytes != null) 'storageSizeBytes': storageSizeBytes!, }; } -class InstancesScopedListWarningData { +class InstantSnapshotsScopedListWarningData { /// A key that provides more detail on the warning being returned. /// /// For example, for warnings where there are no results in a list request for @@ -80497,12 +84242,12 @@ class InstancesScopedListWarningData { /// Output only. core.String? value; - InstancesScopedListWarningData({ + InstantSnapshotsScopedListWarningData({ this.key, this.value, }); - InstancesScopedListWarningData.fromJson(core.Map json_) + InstantSnapshotsScopedListWarningData.fromJson(core.Map json_) : this( key: json_.containsKey('key') ? json_['key'] as core.String : null, value: @@ -80515,11 +84260,11 @@ class InstancesScopedListWarningData { }; } -/// Informational warning which replaces the list of instances when the list is -/// empty. +/// Informational warning which replaces the list of instantSnapshots when the +/// list is empty. /// /// Output only. -class InstancesScopedListWarning { +class InstantSnapshotsScopedListWarning { /// A warning code, if applicable. /// /// For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no @@ -80590,26 +84335,27 @@ class InstancesScopedListWarning { /// For example: "data": \[ { "key": "scope", "value": "zones/us-east1-d" } /// /// Output only. - core.List? data; + core.List? data; /// A human-readable description of the warning code. /// /// Output only. core.String? message; - InstancesScopedListWarning({ + InstantSnapshotsScopedListWarning({ this.code, this.data, this.message, }); - InstancesScopedListWarning.fromJson(core.Map json_) + InstantSnapshotsScopedListWarning.fromJson(core.Map json_) : this( code: json_.containsKey('code') ? json_['code'] as core.String : null, data: json_.containsKey('data') ? (json_['data'] as core.List) - .map((value) => InstancesScopedListWarningData.fromJson( - value as core.Map)) + .map((value) => + InstantSnapshotsScopedListWarningData.fromJson( + value as core.Map)) .toList() : null, message: json_.containsKey('message') @@ -80624,249 +84370,43 @@ class InstancesScopedListWarning { }; } -class InstancesScopedList { - /// A list of instances contained in this scope. +class InstantSnapshotsScopedList { + /// A list of instantSnapshots contained in this scope. /// /// Output only. - core.List? instances; + core.List? instantSnapshots; - /// Informational warning which replaces the list of instances when the list - /// is empty. + /// Informational warning which replaces the list of instantSnapshots when the + /// list is empty. /// /// Output only. - InstancesScopedListWarning? warning; + InstantSnapshotsScopedListWarning? warning; - InstancesScopedList({ - this.instances, + InstantSnapshotsScopedList({ + this.instantSnapshots, this.warning, }); - InstancesScopedList.fromJson(core.Map json_) + InstantSnapshotsScopedList.fromJson(core.Map json_) : this( - instances: json_.containsKey('instances') - ? (json_['instances'] as core.List) - .map((value) => Instance.fromJson( + instantSnapshots: json_.containsKey('instantSnapshots') + ? (json_['instantSnapshots'] as core.List) + .map((value) => InstantSnapshot.fromJson( value as core.Map)) .toList() : null, warning: json_.containsKey('warning') - ? InstancesScopedListWarning.fromJson( + ? InstantSnapshotsScopedListWarning.fromJson( json_['warning'] as core.Map) : null, ); core.Map toJson() => { - if (instances != null) 'instances': instances!, + if (instantSnapshots != null) 'instantSnapshots': instantSnapshots!, if (warning != null) 'warning': warning!, }; } -class InstancesSetLabelsRequest { - /// Fingerprint of the previous set of labels for this resource, used to - /// prevent conflicts. - /// - /// Provide the latest fingerprint value when making a request to add or - /// change labels. - core.String? labelFingerprint; - core.List get labelFingerprintAsBytes => - convert.base64.decode(labelFingerprint!); - - set labelFingerprintAsBytes(core.List bytes_) { - labelFingerprint = - convert.base64.encode(bytes_).replaceAll('/', '_').replaceAll('+', '-'); - } - - core.Map? labels; - - InstancesSetLabelsRequest({ - this.labelFingerprint, - this.labels, - }); - - InstancesSetLabelsRequest.fromJson(core.Map json_) - : this( - labelFingerprint: json_.containsKey('labelFingerprint') - ? json_['labelFingerprint'] as core.String - : null, - labels: json_.containsKey('labels') - ? (json_['labels'] as core.Map).map( - (key, value) => core.MapEntry( - key, - value as core.String, - ), - ) - : null, - ); - - core.Map toJson() => { - if (labelFingerprint != null) 'labelFingerprint': labelFingerprint!, - if (labels != null) 'labels': labels!, - }; -} - -class InstancesSetMachineResourcesRequest { - /// A list of the type and count of accelerator cards attached to the - /// instance. - core.List? guestAccelerators; - - InstancesSetMachineResourcesRequest({ - this.guestAccelerators, - }); - - InstancesSetMachineResourcesRequest.fromJson(core.Map json_) - : this( - guestAccelerators: json_.containsKey('guestAccelerators') - ? (json_['guestAccelerators'] as core.List) - .map((value) => AcceleratorConfig.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (guestAccelerators != null) 'guestAccelerators': guestAccelerators!, - }; -} - -class InstancesSetMachineTypeRequest { - /// Full or partial URL of the machine type resource. - /// - /// See Machine Types for a full list of machine types. For example: - /// zones/us-central1-f/machineTypes/n1-standard-1 - core.String? machineType; - - InstancesSetMachineTypeRequest({ - this.machineType, - }); - - InstancesSetMachineTypeRequest.fromJson(core.Map json_) - : this( - machineType: json_.containsKey('machineType') - ? json_['machineType'] as core.String - : null, - ); - - core.Map toJson() => { - if (machineType != null) 'machineType': machineType!, - }; -} - -class InstancesSetMinCpuPlatformRequest { - /// Minimum cpu/platform this instance should be started at. - core.String? minCpuPlatform; - - InstancesSetMinCpuPlatformRequest({ - this.minCpuPlatform, - }); - - InstancesSetMinCpuPlatformRequest.fromJson(core.Map json_) - : this( - minCpuPlatform: json_.containsKey('minCpuPlatform') - ? json_['minCpuPlatform'] as core.String - : null, - ); - - core.Map toJson() => { - if (minCpuPlatform != null) 'minCpuPlatform': minCpuPlatform!, - }; -} - -class InstancesSetNameRequest { - /// The current name of this resource, used to prevent conflicts. - /// - /// Provide the latest name when making a request to change name. - core.String? currentName; - - /// The name to be applied to the instance. - /// - /// Needs to be RFC 1035 compliant. - core.String? name; - - InstancesSetNameRequest({ - this.currentName, - this.name, - }); - - InstancesSetNameRequest.fromJson(core.Map json_) - : this( - currentName: json_.containsKey('currentName') - ? json_['currentName'] as core.String - : null, - name: json_.containsKey('name') ? json_['name'] as core.String : null, - ); - - core.Map toJson() => { - if (currentName != null) 'currentName': currentName!, - if (name != null) 'name': name!, - }; -} - -class InstancesSetSecurityPolicyRequest { - /// The network interfaces that the security policy will be applied to. - /// - /// Network interfaces use the nicN naming format. You can only set a security - /// policy for network interfaces with an access config. - core.List? networkInterfaces; - - /// A full or partial URL to a security policy to add to this instance. - /// - /// If this field is set to an empty string it will remove the associated - /// security policy. - core.String? securityPolicy; - - InstancesSetSecurityPolicyRequest({ - this.networkInterfaces, - this.securityPolicy, - }); - - InstancesSetSecurityPolicyRequest.fromJson(core.Map json_) - : this( - networkInterfaces: json_.containsKey('networkInterfaces') - ? (json_['networkInterfaces'] as core.List) - .map((value) => value as core.String) - .toList() - : null, - securityPolicy: json_.containsKey('securityPolicy') - ? json_['securityPolicy'] as core.String - : null, - ); - - core.Map toJson() => { - if (networkInterfaces != null) 'networkInterfaces': networkInterfaces!, - if (securityPolicy != null) 'securityPolicy': securityPolicy!, - }; -} - -typedef InstancesSetServiceAccountRequest = $Shared05; - -class InstancesStartWithEncryptionKeyRequest { - /// Array of disks associated with this instance that are protected with a - /// customer-supplied encryption key. - /// - /// In order to start the instance, the disk url and its corresponding key - /// must be provided. If the disk is not protected with a customer-supplied - /// encryption key it should not be specified. - core.List? disks; - - InstancesStartWithEncryptionKeyRequest({ - this.disks, - }); - - InstancesStartWithEncryptionKeyRequest.fromJson(core.Map json_) - : this( - disks: json_.containsKey('disks') - ? (json_['disks'] as core.List) - .map((value) => CustomerEncryptionKeyProtectedDisk.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (disks != null) 'disks': disks!, - }; -} - /// HttpRouteRuleMatch criteria for field values that must stay within the /// specified integer range. class Int64RangeMatch { @@ -85747,6 +89287,11 @@ class MachineImage { /// dash. core.String? name; + /// Reserved for future use. + /// + /// Output only. + core.bool? satisfiesPzi; + /// Reserved for future use. /// /// Output only. @@ -85818,6 +89363,7 @@ class MachineImage { this.kind, this.machineImageEncryptionKey, this.name, + this.satisfiesPzi, this.satisfiesPzs, this.savedDisks, this.selfLink, @@ -85853,6 +89399,9 @@ class MachineImage { as core.Map) : null, name: json_.containsKey('name') ? json_['name'] as core.String : null, + satisfiesPzi: json_.containsKey('satisfiesPzi') + ? json_['satisfiesPzi'] as core.bool + : null, satisfiesPzs: json_.containsKey('satisfiesPzs') ? json_['satisfiesPzs'] as core.bool : null, @@ -85905,6 +89454,7 @@ class MachineImage { if (machineImageEncryptionKey != null) 'machineImageEncryptionKey': machineImageEncryptionKey!, if (name != null) 'name': name!, + if (satisfiesPzi != null) 'satisfiesPzi': satisfiesPzi!, if (satisfiesPzs != null) 'satisfiesPzs': satisfiesPzs!, if (savedDisks != null) 'savedDisks': savedDisks!, if (selfLink != null) 'selfLink': selfLink!, @@ -89466,11 +93016,14 @@ class NetworkEndpoint { /// is NON_GCP_FQDN_PORT. core.String? fqdn; - /// The name for a specific VM instance that the IP address belongs to. + /// The name or a URL of VM instance of this network endpoint. /// - /// This is required for network endpoints of type GCE_VM_IP_PORT. The - /// instance must be in the same zone of network endpoint group. The name must - /// be 1-63 characters long, and comply with RFC1035. + /// This field is required for network endpoints of type GCE_VM_IP and + /// GCE_VM_IP_PORT. The instance must be in the same zone of network endpoint + /// group (for zonal NEGs) or in the zone within the region of the NEG (for + /// regional NEGs). If the ipAddress is specified, it must belongs to the VM + /// instance. The name must be 1-63 characters long, and comply with RFC1035 + /// or be a valid URL pointing to an existing instance. core.String? instance; /// Optional IPv4 address of network endpoint. @@ -89478,13 +93031,18 @@ class NetworkEndpoint { /// The IP address must belong to a VM in Compute Engine (either the primary /// IP or as part of an aliased IP range). If the IP address is not specified, /// then the primary IP address for the VM instance in the network that the - /// network endpoint group belongs to will be used. + /// network endpoint group belongs to will be used. This field is redundant + /// and need not be set for network endpoints of type GCE_VM_IP. If set, it + /// must be set to the primary internal IP address of the attached VM instance + /// that matches the subnetwork of the NEG. The primary internal IP address + /// from any NIC of a multi-NIC VM instance can be added to a NEG as long as + /// it matches the NEG subnetwork. core.String? ipAddress; /// Optional port number of network endpoint. /// /// If not specified, the defaultPort for the network endpoint group will be - /// used. + /// used. This field can not be set for network endpoints of type GCE_VM_IP. core.int? port; NetworkEndpoint({ @@ -89535,17 +93093,17 @@ class NetworkEndpointGroup { /// Metadata defined as annotations on the network endpoint group. core.Map? annotations; - /// Only valid when networkEndpointType is "SERVERLESS". + /// Only valid when networkEndpointType is SERVERLESS. /// /// Only one of cloudRun, appEngine or cloudFunction may be set. NetworkEndpointGroupAppEngine? appEngine; - /// Only valid when networkEndpointType is "SERVERLESS". + /// Only valid when networkEndpointType is SERVERLESS. /// /// Only one of cloudRun, appEngine or cloudFunction may be set. NetworkEndpointGroupCloudFunction? cloudFunction; - /// Only valid when networkEndpointType is "SERVERLESS". + /// Only valid when networkEndpointType is SERVERLESS. /// /// Only one of cloudRun, appEngine or cloudFunction may be set. NetworkEndpointGroupCloudRun? cloudRun; @@ -89557,6 +93115,9 @@ class NetworkEndpointGroup { /// The default port used if the port number is not specified in the network /// endpoint. + /// + /// If the network endpoint type is either GCE_VM_IP, SERVERLESS or + /// PRIVATE_SERVICE_CONNECT, this field must not be specified. core.int? defaultPort; /// An optional description of this resource. @@ -89590,7 +93151,7 @@ class NetworkEndpointGroup { /// The URL of the network to which all network endpoints in the NEG belong. /// - /// Uses "default" project network if unspecified. + /// Uses default project network if unspecified. core.String? network; /// Type of network endpoints in this network endpoint group. @@ -89619,7 +93180,7 @@ class NetworkEndpointGroup { /// The target service url used to set up private service connection to a /// Google API or a PSC Producer Service Attachment. /// - /// An example value is: "asia-northeast3-cloudkms.googleapis.com" + /// An example value is: asia-northeast3-cloudkms.googleapis.com core.String? pscTargetService; /// The URL of the region where the network endpoint group is located. @@ -90000,16 +93561,17 @@ class NetworkEndpointGroupAppEngine { /// Optional serving service. /// /// The service name is case-sensitive and must be 1-63 characters long. - /// Example value: "default", "my-service". + /// Example value: default, my-service. core.String? service; - /// A template to parse service and version fields from a request URL. + /// An URL mask is one of the main components of the Cloud Function. /// - /// URL mask allows for routing to multiple App Engine services without having - /// to create multiple Network Endpoint Groups and backend services. For - /// example, the request URLs "foo1-dot-appname.appspot.com/v1" and - /// "foo1-dot-appname.appspot.com/v2" can be backed by the same Serverless NEG - /// with URL mask "\-dot-appname.appspot.com/\". The URL + /// A template to parse service and version fields from a request URL. URL + /// mask allows for routing to multiple App Engine services without having to + /// create multiple Network Endpoint Groups and backend services. For example, + /// the request URLs foo1-dot-appname.appspot.com/v1 and + /// foo1-dot-appname.appspot.com/v2 can be backed by the same Serverless NEG + /// with URL mask \-dot-appname.appspot.com/\. The URL /// mask will parse them to { service = "foo1", version = "v1" } and { service /// = "foo1", version = "v2" } respectively. core.String? urlMask; @@ -90017,7 +93579,7 @@ class NetworkEndpointGroupAppEngine { /// Optional serving version. /// /// The version name is case-sensitive and must be 1-100 characters long. - /// Example value: "v1", "v2". + /// Example value: v1, v2. core.String? version; NetworkEndpointGroupAppEngine({ @@ -90055,17 +93617,18 @@ class NetworkEndpointGroupCloudFunction { /// A user-defined name of the Cloud Function. /// /// The function name is case-sensitive and must be 1-63 characters long. - /// Example value: "func1". + /// Example value: func1. core.String? function; - /// A template to parse function field from a request URL. + /// An URL mask is one of the main components of the Cloud Function. /// - /// URL mask allows for routing to multiple Cloud Functions without having to - /// create multiple Network Endpoint Groups and backend services. For example, - /// request URLs " mydomain.com/function1" and "mydomain.com/function2" can be - /// backed by the same Serverless NEG with URL mask "/\". The URL - /// mask will parse them to { function = "function1" } and { function = - /// "function2" } respectively. + /// A template to parse function field from a request URL. URL mask allows for + /// routing to multiple Cloud Functions without having to create multiple + /// Network Endpoint Groups and backend services. For example, request URLs + /// mydomain.com/function1 and mydomain.com/function2 can be backed by the + /// same Serverless NEG with URL mask /\. The URL mask will parse + /// them to { function = "function1" } and { function = "function2" } + /// respectively. core.String? urlMask; NetworkEndpointGroupCloudFunction({ @@ -90109,13 +93672,14 @@ class NetworkEndpointGroupCloudRun { /// value: "revision-0010". core.String? tag; - /// A template to parse \ and \ fields from a request URL. + /// An URL mask is one of the main components of the Cloud Function. /// - /// URL mask allows for routing to multiple Run services without having to - /// create multiple network endpoint groups and backend services. For example, - /// request URLs "foo1.domain.com/bar1" and "foo1.domain.com/bar2" can be - /// backed by the same Serverless Network Endpoint Group (NEG) with URL mask - /// "\.domain.com/\". The URL mask will parse them to { + /// A template to parse \ and \ fields from a request URL. URL + /// mask allows for routing to multiple Run services without having to create + /// multiple network endpoint groups and backend services. For example, + /// request URLs foo1.domain.com/bar1 and foo1.domain.com/bar2 can be backed + /// by the same Serverless Network Endpoint Group (NEG) with URL mask + /// \.domain.com/\. The URL mask will parse them to { /// service="bar1", tag="foo1" } and { service="bar2", tag="foo2" } /// respectively. core.String? urlMask; @@ -95503,7 +99067,8 @@ class OperationWarnings { /// or zonal. - For global operations, use the `globalOperations` resource. - /// For regional operations, use the `regionOperations` resource. - For zonal /// operations, use the `zoneOperations` resource. For more information, read -/// Global, Regional, and Zonal Resources. +/// Global, Regional, and Zonal Resources. Note that completed Operation +/// resources have a limited retention period. class Operation { /// The value of `requestId` if you provided it in the request. /// @@ -97113,15 +100678,17 @@ class PacketMirroringFilter { /// /// If no protocols are specified, all traffic that matches the specified CIDR /// ranges is mirrored. If neither cidrRanges nor IPProtocols is specified, - /// all traffic is mirrored. + /// all IPv4 traffic is mirrored. core.List? IPProtocols; - /// IP CIDR ranges that apply as filter on the source (ingress) or destination - /// (egress) IP in the IP header. + /// One or more IPv4 or IPv6 CIDR ranges that apply as filter on the source + /// (ingress) or destination (egress) IP in the IP header. /// - /// Only IPv4 is supported. If no ranges are specified, all traffic that - /// matches the specified IPProtocols is mirrored. If neither cidrRanges nor - /// IPProtocols is specified, all traffic is mirrored. + /// If no ranges are specified, all IPv4 traffic that matches the specified + /// IPProtocols is mirrored. If neither cidrRanges nor IPProtocols is + /// specified, all IPv4 traffic is mirrored. To mirror all IPv4 and IPv6 + /// traffic, use "0.0.0.0/0,::/0". Note: Support for IPv6 traffic is in + /// preview. core.List? cidrRanges; /// Direction of traffic to mirror, either INGRESS, EGRESS, or BOTH. @@ -98387,6 +101954,18 @@ class PreservedStatePreservedNetworkIpIpAddress { /// A project is used to organize resources in a Google Cloud Platform /// environment. For more information, read about the Resource Hierarchy. class Project { + /// The Cloud Armor tier for this project. + /// + /// It can be one of the following values: CA_STANDARD, CA_ENTERPRISE_PAYGO. + /// If this field is not specified, it is assumed to be CA_STANDARD. + /// + /// Output only. + /// Possible string values are: + /// - "CA_ENTERPRISE_ANNUAL" : Enterprise tier protection billed annually. + /// - "CA_ENTERPRISE_PAYGO" : Enterprise tier protection billed monthly. + /// - "CA_STANDARD" : Standard protection. + core.String? cloudArmorTier; + /// Metadata key/value pairs available to all instances contained in this /// project. /// @@ -98480,6 +102059,7 @@ class Project { core.String? xpnProjectStatus; Project({ + this.cloudArmorTier, this.commonInstanceMetadata, this.creationTimestamp, this.defaultNetworkTier, @@ -98498,6 +102078,9 @@ class Project { Project.fromJson(core.Map json_) : this( + cloudArmorTier: json_.containsKey('cloudArmorTier') + ? json_['cloudArmorTier'] as core.String + : null, commonInstanceMetadata: json_.containsKey('commonInstanceMetadata') ? Metadata.fromJson(json_['commonInstanceMetadata'] as core.Map) @@ -98544,6 +102127,7 @@ class Project { ); core.Map toJson() => { + if (cloudArmorTier != null) 'cloudArmorTier': cloudArmorTier!, if (commonInstanceMetadata != null) 'commonInstanceMetadata': commonInstanceMetadata!, if (creationTimestamp != null) 'creationTimestamp': creationTimestamp!, @@ -98680,6 +102264,30 @@ class ProjectsListXpnHostsRequest { }; } +class ProjectsSetCloudArmorTierRequest { + /// Managed protection tier to be set. + /// Possible string values are: + /// - "CA_ENTERPRISE_ANNUAL" : Enterprise tier protection billed annually. + /// - "CA_ENTERPRISE_PAYGO" : Enterprise tier protection billed monthly. + /// - "CA_STANDARD" : Standard protection. + core.String? cloudArmorTier; + + ProjectsSetCloudArmorTierRequest({ + this.cloudArmorTier, + }); + + ProjectsSetCloudArmorTierRequest.fromJson(core.Map json_) + : this( + cloudArmorTier: json_.containsKey('cloudArmorTier') + ? json_['cloudArmorTier'] as core.String + : null, + ); + + core.Map toJson() => { + if (cloudArmorTier != null) 'cloudArmorTier': cloudArmorTier!, + }; +} + class ProjectsSetDefaultNetworkTierRequest { /// Default network tier to be set. /// Possible string values are: @@ -100159,6 +103767,7 @@ class Quota { /// - "COMMITTED_N2_CPUS" /// - "COMMITTED_NVIDIA_A100_80GB_GPUS" /// - "COMMITTED_NVIDIA_A100_GPUS" + /// - "COMMITTED_NVIDIA_H100_GPUS" /// - "COMMITTED_NVIDIA_K80_GPUS" /// - "COMMITTED_NVIDIA_L4_GPUS" /// - "COMMITTED_NVIDIA_P100_GPUS" @@ -100167,6 +103776,7 @@ class Quota { /// - "COMMITTED_NVIDIA_V100_GPUS" /// - "COMMITTED_T2A_CPUS" /// - "COMMITTED_T2D_CPUS" + /// - "COMMITTED_Z3_CPUS" /// - "CPUS" : Guest CPUs /// - "CPUS_ALL_REGIONS" /// - "DISKS_TOTAL_GB" @@ -100234,6 +103844,7 @@ class Quota { /// - "PREEMPTIBLE_LOCAL_SSD_GB" /// - "PREEMPTIBLE_NVIDIA_A100_80GB_GPUS" /// - "PREEMPTIBLE_NVIDIA_A100_GPUS" + /// - "PREEMPTIBLE_NVIDIA_H100_GPUS" /// - "PREEMPTIBLE_NVIDIA_K80_GPUS" /// - "PREEMPTIBLE_NVIDIA_L4_GPUS" /// - "PREEMPTIBLE_NVIDIA_P100_GPUS" @@ -100243,6 +103854,9 @@ class Quota { /// - "PREEMPTIBLE_NVIDIA_T4_GPUS" /// - "PREEMPTIBLE_NVIDIA_T4_VWS_GPUS" /// - "PREEMPTIBLE_NVIDIA_V100_GPUS" + /// - "PREEMPTIBLE_TPU_LITE_DEVICE_V5" + /// - "PREEMPTIBLE_TPU_LITE_PODSLICE_V5" + /// - "PREEMPTIBLE_TPU_PODSLICE_V4" /// - "PSC_ILB_CONSUMER_FORWARDING_RULES_PER_PRODUCER_NETWORK" /// - "PSC_INTERNAL_LB_FORWARDING_RULES" /// - "PUBLIC_ADVERTISED_PREFIXES" @@ -100281,6 +103895,9 @@ class Quota { /// - "TARGET_SSL_PROXIES" /// - "TARGET_TCP_PROXIES" /// - "TARGET_VPN_GATEWAYS" + /// - "TPU_LITE_DEVICE_V5" + /// - "TPU_LITE_PODSLICE_V5" + /// - "TPU_PODSLICE_V4" /// - "URL_MAPS" /// - "VPN_GATEWAYS" /// - "VPN_TUNNELS" @@ -102827,6 +106444,9 @@ class RequestMirrorPolicy { /// reserved VMs are not running. For more information, read Reserving zonal /// resources. class Reservation { + /// Reservation for aggregated resources, providing shape flexibility. + AllocationAggregateReservation? aggregateReservation; + /// Full or partial URL to a parent commitment. /// /// This field displays for reservations that are tied to a commitment. @@ -102924,6 +106544,7 @@ class Reservation { core.String? zone; Reservation({ + this.aggregateReservation, this.commitment, this.creationTimestamp, this.description, @@ -102943,6 +106564,11 @@ class Reservation { Reservation.fromJson(core.Map json_) : this( + aggregateReservation: json_.containsKey('aggregateReservation') + ? AllocationAggregateReservation.fromJson( + json_['aggregateReservation'] + as core.Map) + : null, commitment: json_.containsKey('commitment') ? json_['commitment'] as core.String : null, @@ -102995,6 +106621,8 @@ class Reservation { ); core.Map toJson() => { + if (aggregateReservation != null) + 'aggregateReservation': aggregateReservation!, if (commitment != null) 'commitment': commitment!, if (creationTimestamp != null) 'creationTimestamp': creationTimestamp!, if (description != null) 'description': description!, @@ -108381,7 +112009,7 @@ class SSLHealthCheck { /// /// Can be one of the following values: USE_FIXED_PORT: Specifies a port /// number explicitly using the port field in the health check. Supported by - /// backend services for pass-through load balancers and backend services for + /// backend services for passthrough load balancers and backend services for /// proxy load balancers. Not supported by target pools. The health check /// supports all backends supported by the backend service provided the /// backend can be health checked. For example, GCE_VM_IP network endpoint @@ -108390,8 +112018,8 @@ class SSLHealthCheck { /// indirect method of specifying the health check port by referring to the /// backend service. Only supported by backend services for proxy load /// balancers. Not supported by target pools. Not supported by backend - /// services for pass-through load balancers. Supports all backends that can - /// be health checked; for example, GCE_VM_IP_PORT network endpoint groups and + /// services for passthrough load balancers. Supports all backends that can be + /// health checked; for example, GCE_VM_IP_PORT network endpoint groups and /// instance group backends. For GCE_VM_IP_PORT network endpoint group /// backends, the health check uses the port number specified for each /// endpoint in the network endpoint group. For instance group backends, the @@ -110457,6 +114085,10 @@ class SecurityPolicyRuleMatcher { /// Protection Plus tier and are only supported in Global Security Policies. Expr? expr; + /// The configuration options available when specifying a user defined CEVAL + /// expression (i.e., 'expr'). + SecurityPolicyRuleMatcherExprOptions? exprOptions; + /// Preconfigured versioned expression. /// /// If this field is specified, config must also be specified. Available @@ -110470,6 +114102,7 @@ class SecurityPolicyRuleMatcher { SecurityPolicyRuleMatcher({ this.config, this.expr, + this.exprOptions, this.versionedExpr, }); @@ -110483,6 +114116,10 @@ class SecurityPolicyRuleMatcher { ? Expr.fromJson( json_['expr'] as core.Map) : null, + exprOptions: json_.containsKey('exprOptions') + ? SecurityPolicyRuleMatcherExprOptions.fromJson( + json_['exprOptions'] as core.Map) + : null, versionedExpr: json_.containsKey('versionedExpr') ? json_['versionedExpr'] as core.String : null, @@ -110491,6 +114128,7 @@ class SecurityPolicyRuleMatcher { core.Map toJson() => { if (config != null) 'config': config!, if (expr != null) 'expr': expr!, + if (exprOptions != null) 'exprOptions': exprOptions!, if (versionedExpr != null) 'versionedExpr': versionedExpr!, }; } @@ -110519,6 +114157,72 @@ class SecurityPolicyRuleMatcherConfig { }; } +class SecurityPolicyRuleMatcherExprOptions { + /// reCAPTCHA configuration options to be applied for the rule. + /// + /// If the rule does not evaluate reCAPTCHA tokens, this field has no effect. + SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions? recaptchaOptions; + + SecurityPolicyRuleMatcherExprOptions({ + this.recaptchaOptions, + }); + + SecurityPolicyRuleMatcherExprOptions.fromJson(core.Map json_) + : this( + recaptchaOptions: json_.containsKey('recaptchaOptions') + ? SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions.fromJson( + json_['recaptchaOptions'] + as core.Map) + : null, + ); + + core.Map toJson() => { + if (recaptchaOptions != null) 'recaptchaOptions': recaptchaOptions!, + }; +} + +class SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions { + /// A list of site keys to be used during the validation of reCAPTCHA + /// action-tokens. + /// + /// The provided site keys need to be created from reCAPTCHA API under the + /// same project where the security policy is created. + core.List? actionTokenSiteKeys; + + /// A list of site keys to be used during the validation of reCAPTCHA + /// session-tokens. + /// + /// The provided site keys need to be created from reCAPTCHA API under the + /// same project where the security policy is created. + core.List? sessionTokenSiteKeys; + + SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions({ + this.actionTokenSiteKeys, + this.sessionTokenSiteKeys, + }); + + SecurityPolicyRuleMatcherExprOptionsRecaptchaOptions.fromJson(core.Map json_) + : this( + actionTokenSiteKeys: json_.containsKey('actionTokenSiteKeys') + ? (json_['actionTokenSiteKeys'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + sessionTokenSiteKeys: json_.containsKey('sessionTokenSiteKeys') + ? (json_['sessionTokenSiteKeys'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + ); + + core.Map toJson() => { + if (actionTokenSiteKeys != null) + 'actionTokenSiteKeys': actionTokenSiteKeys!, + if (sessionTokenSiteKeys != null) + 'sessionTokenSiteKeys': sessionTokenSiteKeys!, + }; +} + /// Represents a match condition that incoming network traffic is evaluated /// against. class SecurityPolicyRuleNetworkMatcher { @@ -110865,7 +114569,12 @@ class SecurityPolicyRuleRateLimitOptions { /// indication in the TLS session of the HTTPS request. The key value is /// truncated to the first 128 bytes. The key type defaults to ALL on a HTTP /// session. - REGION_CODE: The country/region from which the request - /// originates. + /// originates. - TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client + /// connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type + /// defaults to ALL. - USER_IP: The IP address of the originating client, + /// which is resolved based on "userIpRequestHeaders" configured with the + /// security policy. If there is no "userIpRequestHeaders" configuration or an + /// IP address cannot be resolved from it, the key type defaults to IP. /// Possible string values are: /// - "ALL" /// - "HTTP_COOKIE" @@ -110874,6 +114583,8 @@ class SecurityPolicyRuleRateLimitOptions { /// - "IP" /// - "REGION_CODE" /// - "SNI" + /// - "TLS_JA3_FINGERPRINT" + /// - "USER_IP" /// - "XFF_IP" core.String? enforceOnKey; @@ -111012,7 +114723,12 @@ class SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig { /// indication in the TLS session of the HTTPS request. The key value is /// truncated to the first 128 bytes. The key type defaults to ALL on a HTTP /// session. - REGION_CODE: The country/region from which the request - /// originates. + /// originates. - TLS_JA3_FINGERPRINT: JA3 TLS/SSL fingerprint if the client + /// connects using HTTPS, HTTP/2 or HTTP/3. If not available, the key type + /// defaults to ALL. - USER_IP: The IP address of the originating client, + /// which is resolved based on "userIpRequestHeaders" configured with the + /// security policy. If there is no "userIpRequestHeaders" configuration or an + /// IP address cannot be resolved from it, the key type defaults to IP. /// Possible string values are: /// - "ALL" /// - "HTTP_COOKIE" @@ -111021,6 +114737,8 @@ class SecurityPolicyRuleRateLimitOptionsEnforceOnKeyConfig { /// - "IP" /// - "REGION_CODE" /// - "SNI" + /// - "TLS_JA3_FINGERPRINT" + /// - "USER_IP" /// - "XFF_IP" core.String? enforceOnKeyType; @@ -112708,6 +116426,11 @@ class Snapshot { /// Output only. core.String? downloadBytes; + /// Whether this snapshot is created from a confidential compute mode disk. + /// + /// \[Output Only\]: This field is not set by user, but from source disk. + core.bool? enableConfidentialCompute; + /// A list of features to enable on the guest operating system. /// /// Applicable only for bootable images. Read Enabling guest operating system @@ -112783,6 +116506,11 @@ class Snapshot { /// dash. core.String? name; + /// Reserved for future use. + /// + /// Output only. + core.bool? satisfiesPzi; + /// Reserved for future use. /// /// Output only. @@ -112832,6 +116560,31 @@ class Snapshot { /// Output only. core.String? sourceDiskId; + /// The source instant snapshot used to create this snapshot. + /// + /// You can provide this as a partial or full URL to the resource. For + /// example, the following are valid values: - + /// https://www.googleapis.com/compute/v1/projects/project/zones/zone + /// /instantSnapshots/instantSnapshot - + /// projects/project/zones/zone/instantSnapshots/instantSnapshot - + /// zones/zone/instantSnapshots/instantSnapshot + core.String? sourceInstantSnapshot; + + /// Customer provided encryption key when creating Snapshot from Instant + /// Snapshot. + CustomerEncryptionKey? sourceInstantSnapshotEncryptionKey; + + /// The unique ID of the instant snapshot used to create this snapshot. + /// + /// This value identifies the exact instant snapshot that was used to create + /// this persistent disk. For example, if you created the persistent disk from + /// an instant snapshot that was later deleted and recreated under the same + /// name, the source instant snapshot ID would identify the exact instant + /// snapshot that was used. + /// + /// Output only. + core.String? sourceInstantSnapshotId; + /// URL of the resource policy which created this scheduled snapshot. /// /// Output only. @@ -112889,6 +116642,7 @@ class Snapshot { this.description, this.diskSizeGb, this.downloadBytes, + this.enableConfidentialCompute, this.guestOsFeatures, this.id, this.kind, @@ -112898,6 +116652,7 @@ class Snapshot { this.licenses, this.locationHint, this.name, + this.satisfiesPzi, this.satisfiesPzs, this.selfLink, this.snapshotEncryptionKey, @@ -112906,6 +116661,9 @@ class Snapshot { this.sourceDiskEncryptionKey, this.sourceDiskForRecoveryCheckpoint, this.sourceDiskId, + this.sourceInstantSnapshot, + this.sourceInstantSnapshotEncryptionKey, + this.sourceInstantSnapshotId, this.sourceSnapshotSchedulePolicy, this.sourceSnapshotSchedulePolicyId, this.status, @@ -112940,6 +116698,10 @@ class Snapshot { downloadBytes: json_.containsKey('downloadBytes') ? json_['downloadBytes'] as core.String : null, + enableConfidentialCompute: + json_.containsKey('enableConfidentialCompute') + ? json_['enableConfidentialCompute'] as core.bool + : null, guestOsFeatures: json_.containsKey('guestOsFeatures') ? (json_['guestOsFeatures'] as core.List) .map((value) => GuestOsFeature.fromJson( @@ -112973,6 +116735,9 @@ class Snapshot { ? json_['locationHint'] as core.String : null, name: json_.containsKey('name') ? json_['name'] as core.String : null, + satisfiesPzi: json_.containsKey('satisfiesPzi') + ? json_['satisfiesPzi'] as core.bool + : null, satisfiesPzs: json_.containsKey('satisfiesPzs') ? json_['satisfiesPzs'] as core.bool : null, @@ -113000,6 +116765,18 @@ class Snapshot { sourceDiskId: json_.containsKey('sourceDiskId') ? json_['sourceDiskId'] as core.String : null, + sourceInstantSnapshot: json_.containsKey('sourceInstantSnapshot') + ? json_['sourceInstantSnapshot'] as core.String + : null, + sourceInstantSnapshotEncryptionKey: + json_.containsKey('sourceInstantSnapshotEncryptionKey') + ? CustomerEncryptionKey.fromJson( + json_['sourceInstantSnapshotEncryptionKey'] + as core.Map) + : null, + sourceInstantSnapshotId: json_.containsKey('sourceInstantSnapshotId') + ? json_['sourceInstantSnapshotId'] as core.String + : null, sourceSnapshotSchedulePolicy: json_.containsKey('sourceSnapshotSchedulePolicy') ? json_['sourceSnapshotSchedulePolicy'] as core.String @@ -113033,6 +116810,8 @@ class Snapshot { if (description != null) 'description': description!, if (diskSizeGb != null) 'diskSizeGb': diskSizeGb!, if (downloadBytes != null) 'downloadBytes': downloadBytes!, + if (enableConfidentialCompute != null) + 'enableConfidentialCompute': enableConfidentialCompute!, if (guestOsFeatures != null) 'guestOsFeatures': guestOsFeatures!, if (id != null) 'id': id!, if (kind != null) 'kind': kind!, @@ -113042,6 +116821,7 @@ class Snapshot { if (licenses != null) 'licenses': licenses!, if (locationHint != null) 'locationHint': locationHint!, if (name != null) 'name': name!, + if (satisfiesPzi != null) 'satisfiesPzi': satisfiesPzi!, if (satisfiesPzs != null) 'satisfiesPzs': satisfiesPzs!, if (selfLink != null) 'selfLink': selfLink!, if (snapshotEncryptionKey != null) @@ -113053,6 +116833,13 @@ class Snapshot { if (sourceDiskForRecoveryCheckpoint != null) 'sourceDiskForRecoveryCheckpoint': sourceDiskForRecoveryCheckpoint!, if (sourceDiskId != null) 'sourceDiskId': sourceDiskId!, + if (sourceInstantSnapshot != null) + 'sourceInstantSnapshot': sourceInstantSnapshot!, + if (sourceInstantSnapshotEncryptionKey != null) + 'sourceInstantSnapshotEncryptionKey': + sourceInstantSnapshotEncryptionKey!, + if (sourceInstantSnapshotId != null) + 'sourceInstantSnapshotId': sourceInstantSnapshotId!, if (sourceSnapshotSchedulePolicy != null) 'sourceSnapshotSchedulePolicy': sourceSnapshotSchedulePolicy!, if (sourceSnapshotSchedulePolicyId != null) @@ -115356,9 +119143,9 @@ class SslPolicyWarnings { /// Represents an SSL Policy resource. /// -/// Use SSL policies to control the SSL features, such as versions and cipher -/// suites, offered by an HTTPS or SSL Proxy load balancer. For more -/// information, read SSL Policy Concepts. +/// Use SSL policies to control SSL features, such as versions and cipher +/// suites, that are offered by Application Load Balancers and proxy Network +/// Load Balancers. For more information, read SSL policies overview. class SslPolicy { /// Creation timestamp in RFC3339 text format. /// @@ -115860,24 +119647,22 @@ class Subnetwork { /// The purpose of the resource. /// - /// This field can be either PRIVATE, REGIONAL_MANAGED_PROXY, - /// PRIVATE_SERVICE_CONNECT, or INTERNAL_HTTPS_LOAD_BALANCER. PRIVATE is the - /// default purpose for user-created subnets or subnets that are automatically - /// created in auto mode networks. A subnet with purpose set to - /// REGIONAL_MANAGED_PROXY is a user-created subnetwork that is reserved for - /// regional Envoy-based load balancers. A subnet with purpose set to + /// This field can be either PRIVATE, GLOBAL_MANAGED_PROXY, + /// REGIONAL_MANAGED_PROXY, PRIVATE_SERVICE_CONNECT, or PRIVATE is the default + /// purpose for user-created subnets or subnets that are automatically created + /// in auto mode networks. Subnets with purpose set to GLOBAL_MANAGED_PROXY or + /// REGIONAL_MANAGED_PROXY are user-created subnetworks that are reserved for + /// Envoy-based load balancers. A subnet with purpose set to /// PRIVATE_SERVICE_CONNECT is used to publish services using Private Service - /// Connect. A subnet with purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a - /// proxy-only subnet that can be used only by regional internal HTTP(S) load - /// balancers. Note that REGIONAL_MANAGED_PROXY is the preferred setting for - /// all regional Envoy load balancers. If unspecified, the subnet purpose - /// defaults to PRIVATE. The enableFlowLogs field isn't supported if the - /// subnet purpose field is set to REGIONAL_MANAGED_PROXY. + /// Connect. If unspecified, the subnet purpose defaults to PRIVATE. The + /// enableFlowLogs field isn't supported if the subnet purpose field is set to + /// GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY. /// Possible string values are: /// - "GLOBAL_MANAGED_PROXY" : Subnet reserved for Global Envoy-based Load /// Balancing. /// - "INTERNAL_HTTPS_LOAD_BALANCER" : Subnet reserved for Internal HTTP(S) - /// Load Balancing. + /// Load Balancing. This is a legacy purpose, please use + /// REGIONAL_MANAGED_PROXY instead. /// - "PRIVATE" : Regular user created or automatically created subnet. /// - "PRIVATE_NAT" : Subnetwork used as source range for Private NAT /// Gateways. @@ -115894,13 +119679,17 @@ class Subnetwork { /// This field can be set only at resource creation time. core.String? region; + /// The URL of the reserved internal range. + core.String? reservedInternalRange; + /// The role of subnetwork. /// - /// Currently, this field is only used when purpose = REGIONAL_MANAGED_PROXY. - /// The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that - /// is currently being used for Envoy-based load balancers in a region. A - /// BACKUP subnetwork is one that is ready to be promoted to ACTIVE or is - /// currently draining. This field can be updated with a patch request. + /// Currently, this field is only used when purpose is set to + /// GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY. The value can be set to + /// ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used + /// for Envoy-based load balancers in a region. A BACKUP subnetwork is one + /// that is ready to be promoted to ACTIVE or is currently draining. This + /// field can be updated with a patch request. /// Possible string values are: /// - "ACTIVE" : The ACTIVE subnet that is currently used. /// - "BACKUP" : The BACKUP subnet that could be promoted to ACTIVE. @@ -115966,6 +119755,7 @@ class Subnetwork { this.privateIpv6GoogleAccess, this.purpose, this.region, + this.reservedInternalRange, this.role, this.secondaryIpRanges, this.selfLink, @@ -116027,6 +119817,9 @@ class Subnetwork { region: json_.containsKey('region') ? json_['region'] as core.String : null, + reservedInternalRange: json_.containsKey('reservedInternalRange') + ? json_['reservedInternalRange'] as core.String + : null, role: json_.containsKey('role') ? json_['role'] as core.String : null, secondaryIpRanges: json_.containsKey('secondaryIpRanges') ? (json_['secondaryIpRanges'] as core.List) @@ -116068,6 +119861,8 @@ class Subnetwork { 'privateIpv6GoogleAccess': privateIpv6GoogleAccess!, if (purpose != null) 'purpose': purpose!, if (region != null) 'region': region!, + if (reservedInternalRange != null) + 'reservedInternalRange': reservedInternalRange!, if (role != null) 'role': role!, if (secondaryIpRanges != null) 'secondaryIpRanges': secondaryIpRanges!, if (selfLink != null) 'selfLink': selfLink!, @@ -116649,9 +120444,13 @@ class SubnetworkSecondaryRange { /// must be unique within the subnetwork. core.String? rangeName; + /// The URL of the reserved internal range. + core.String? reservedInternalRange; + SubnetworkSecondaryRange({ this.ipCidrRange, this.rangeName, + this.reservedInternalRange, }); SubnetworkSecondaryRange.fromJson(core.Map json_) @@ -116662,11 +120461,16 @@ class SubnetworkSecondaryRange { rangeName: json_.containsKey('rangeName') ? json_['rangeName'] as core.String : null, + reservedInternalRange: json_.containsKey('reservedInternalRange') + ? json_['reservedInternalRange'] as core.String + : null, ); core.Map toJson() => { if (ipCidrRange != null) 'ipCidrRange': ipCidrRange!, if (rangeName != null) 'rangeName': rangeName!, + if (reservedInternalRange != null) + 'reservedInternalRange': reservedInternalRange!, }; } @@ -116939,7 +120743,7 @@ class TCPHealthCheck { /// /// Can be one of the following values: USE_FIXED_PORT: Specifies a port /// number explicitly using the port field in the health check. Supported by - /// backend services for pass-through load balancers and backend services for + /// backend services for passthrough load balancers and backend services for /// proxy load balancers. Not supported by target pools. The health check /// supports all backends supported by the backend service provided the /// backend can be health checked. For example, GCE_VM_IP network endpoint @@ -116948,8 +120752,8 @@ class TCPHealthCheck { /// indirect method of specifying the health check port by referring to the /// backend service. Only supported by backend services for proxy load /// balancers. Not supported by target pools. Not supported by backend - /// services for pass-through load balancers. Supports all backends that can - /// be health checked; for example, GCE_VM_IP_PORT network endpoint groups and + /// services for passthrough load balancers. Supports all backends that can be + /// health checked; for example, GCE_VM_IP_PORT network endpoint groups and /// instance group backends. For GCE_VM_IP_PORT network endpoint group /// backends, the health check uses the port number specified for each /// endpoint in the network endpoint group. For instance group backends, the @@ -119827,10 +123631,10 @@ class TargetInstancesScopedList { /// Represents a Target Pool resource. /// -/// Target pools are used for network TCP/UDP load balancing. A target pool -/// references member instances, an associated legacy HttpHealthCheck resource, -/// and, optionally, a backup target pool. For more information, read Using -/// target pools. +/// Target pools are used with external passthrough Network Load Balancers. A +/// target pool references member instances, an associated legacy +/// HttpHealthCheck resource, and, optionally, a backup target pool. For more +/// information, read Using target pools. class TargetPool { /// The server-defined URL for the resource. /// @@ -120898,10 +124702,10 @@ class TargetSslProxiesSetSslCertificatesRequest { /// Represents a Target SSL Proxy resource. /// -/// A target SSL proxy is a component of a SSL Proxy load balancer. Global -/// forwarding rules reference a target SSL proxy, and the target proxy then -/// references an external backend service. For more information, read Using -/// Target Proxies. +/// A target SSL proxy is a component of a Proxy Network Load Balancer. The +/// forwarding rule references the target SSL proxy, and the target proxy then +/// references a backend service. For more information, read Proxy Network Load +/// Balancer overview. class TargetSslProxy { /// URL of a certificate map that identifies a certificate map associated with /// the given target proxy. @@ -121459,10 +125263,10 @@ typedef TargetTcpProxiesSetProxyHeaderRequest = $ProxiesSetProxyHeaderRequest; /// Represents a Target TCP Proxy resource. /// -/// A target TCP proxy is a component of a TCP Proxy load balancer. Global -/// forwarding rules reference target TCP proxy, and the target proxy then -/// references an external backend service. For more information, read TCP Proxy -/// Load Balancing overview. +/// A target TCP proxy is a component of a Proxy Network Load Balancer. The +/// forwarding rule references the target TCP proxy, and the target proxy then +/// references a backend service. For more information, read Proxy Network Load +/// Balancer overview. class TargetTcpProxy { /// Creation timestamp in RFC3339 text format. /// @@ -124253,24 +128057,22 @@ class UsableSubnetwork { /// The purpose of the resource. /// - /// This field can be either PRIVATE, REGIONAL_MANAGED_PROXY, - /// PRIVATE_SERVICE_CONNECT, or INTERNAL_HTTPS_LOAD_BALANCER. PRIVATE is the - /// default purpose for user-created subnets or subnets that are automatically - /// created in auto mode networks. A subnet with purpose set to - /// REGIONAL_MANAGED_PROXY is a user-created subnetwork that is reserved for - /// regional Envoy-based load balancers. A subnet with purpose set to + /// This field can be either PRIVATE, GLOBAL_MANAGED_PROXY, + /// REGIONAL_MANAGED_PROXY, PRIVATE_SERVICE_CONNECT, or PRIVATE is the default + /// purpose for user-created subnets or subnets that are automatically created + /// in auto mode networks. Subnets with purpose set to GLOBAL_MANAGED_PROXY or + /// REGIONAL_MANAGED_PROXY are user-created subnetworks that are reserved for + /// Envoy-based load balancers. A subnet with purpose set to /// PRIVATE_SERVICE_CONNECT is used to publish services using Private Service - /// Connect. A subnet with purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a - /// proxy-only subnet that can be used only by regional internal HTTP(S) load - /// balancers. Note that REGIONAL_MANAGED_PROXY is the preferred setting for - /// all regional Envoy load balancers. If unspecified, the subnet purpose - /// defaults to PRIVATE. The enableFlowLogs field isn't supported if the - /// subnet purpose field is set to REGIONAL_MANAGED_PROXY. + /// Connect. If unspecified, the subnet purpose defaults to PRIVATE. The + /// enableFlowLogs field isn't supported if the subnet purpose field is set to + /// GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY. /// Possible string values are: /// - "GLOBAL_MANAGED_PROXY" : Subnet reserved for Global Envoy-based Load /// Balancing. /// - "INTERNAL_HTTPS_LOAD_BALANCER" : Subnet reserved for Internal HTTP(S) - /// Load Balancing. + /// Load Balancing. This is a legacy purpose, please use + /// REGIONAL_MANAGED_PROXY instead. /// - "PRIVATE" : Regular user created or automatically created subnet. /// - "PRIVATE_NAT" : Subnetwork used as source range for Private NAT /// Gateways. @@ -124284,11 +128086,12 @@ class UsableSubnetwork { /// The role of subnetwork. /// - /// Currently, this field is only used when purpose = REGIONAL_MANAGED_PROXY. - /// The value can be set to ACTIVE or BACKUP. An ACTIVE subnetwork is one that - /// is currently being used for Envoy-based load balancers in a region. A - /// BACKUP subnetwork is one that is ready to be promoted to ACTIVE or is - /// currently draining. This field can be updated with a patch request. + /// Currently, this field is only used when purpose is set to + /// GLOBAL_MANAGED_PROXY or REGIONAL_MANAGED_PROXY. The value can be set to + /// ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being used + /// for Envoy-based load balancers in a region. A BACKUP subnetwork is one + /// that is ready to be promoted to ACTIVE or is currently draining. This + /// field can be updated with a patch request. /// Possible string values are: /// - "ACTIVE" : The ACTIVE subnet that is currently used. /// - "BACKUP" : The BACKUP subnet that could be promoted to ACTIVE. @@ -125128,6 +128931,16 @@ class VpnGateway { /// Provide this property when you create the resource. core.String? description; + /// The IP family of the gateway IPs for the HA-VPN gateway interfaces. + /// + /// If not specified, IPV4 will be used. + /// Possible string values are: + /// - "IPV4" : Every HA-VPN gateway interface is configured with an IPv4 + /// address. + /// - "IPV6" : Every HA-VPN gateway interface is configured with an IPv6 + /// address. + core.String? gatewayIpVersion; + /// The unique identifier for the resource. /// /// This identifier is defined by the server. @@ -125206,6 +129019,7 @@ class VpnGateway { VpnGateway({ this.creationTimestamp, this.description, + this.gatewayIpVersion, this.id, this.kind, this.labelFingerprint, @@ -125226,6 +129040,9 @@ class VpnGateway { description: json_.containsKey('description') ? json_['description'] as core.String : null, + gatewayIpVersion: json_.containsKey('gatewayIpVersion') + ? json_['gatewayIpVersion'] as core.String + : null, id: json_.containsKey('id') ? json_['id'] as core.String : null, kind: json_.containsKey('kind') ? json_['kind'] as core.String : null, labelFingerprint: json_.containsKey('labelFingerprint') @@ -125263,6 +129080,7 @@ class VpnGateway { core.Map toJson() => { if (creationTimestamp != null) 'creationTimestamp': creationTimestamp!, if (description != null) 'description': description!, + if (gatewayIpVersion != null) 'gatewayIpVersion': gatewayIpVersion!, if (id != null) 'id': id!, if (kind != null) 'kind': kind!, if (labelFingerprint != null) 'labelFingerprint': labelFingerprint!, @@ -125932,10 +129750,19 @@ class VpnGatewayVpnGatewayInterface { /// Output only. core.String? ipAddress; + /// IPv6 address for this VPN interface associated with the VPN gateway. + /// + /// The IPv6 address must be a regional external IPv6 address. The format is + /// RFC 5952 format (e.g. 2001:db8::2d9:51:0:0). + /// + /// Output only. + core.String? ipv6Address; + VpnGatewayVpnGatewayInterface({ this.id, this.interconnectAttachment, this.ipAddress, + this.ipv6Address, }); VpnGatewayVpnGatewayInterface.fromJson(core.Map json_) @@ -125947,6 +129774,9 @@ class VpnGatewayVpnGatewayInterface { ipAddress: json_.containsKey('ipAddress') ? json_['ipAddress'] as core.String : null, + ipv6Address: json_.containsKey('ipv6Address') + ? json_['ipv6Address'] as core.String + : null, ); core.Map toJson() => { @@ -125954,6 +129784,7 @@ class VpnGatewayVpnGatewayInterface { if (interconnectAttachment != null) 'interconnectAttachment': interconnectAttachment!, if (ipAddress != null) 'ipAddress': ipAddress!, + if (ipv6Address != null) 'ipv6Address': ipv6Address!, }; } diff --git a/generated/googleapis/lib/connectors/v1.dart b/generated/googleapis/lib/connectors/v1.dart index 61d6f51e9..05d578d5e 100644 --- a/generated/googleapis/lib/connectors/v1.dart +++ b/generated/googleapis/lib/connectors/v1.dart @@ -618,6 +618,48 @@ class ProjectsLocationsConnectionsResource { response_ as core.Map); } + /// ListenEvent listens to the event. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [resourcePath] - Required. Resource path for request. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/connections/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [ListenEventResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future listenEvent( + ListenEventRequest request, + core.String resourcePath, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$resourcePath') + ':listenEvent'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return ListenEventResponse.fromJson( + response_ as core.Map); + } + /// Updates the parameters of a single Connection. /// /// [request] - The metadata request object. @@ -1854,6 +1896,9 @@ class ProjectsLocationsGlobalCustomConnectorsResource { /// Value must have pattern /// `^projects/\[^/\]+/locations/global/customConnectors/\[^/\]+$`. /// + /// [force] - Optional. If set to true, any customConnectorVersion which is a + /// child resource will also be deleted. https://aip.dev/135#cascading-delete + /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// @@ -1866,9 +1911,11 @@ class ProjectsLocationsGlobalCustomConnectorsResource { /// this method will complete with the same error. async.Future delete( core.String name, { + core.bool? force, core.String? $fields, }) async { final queryParams_ = >{ + if (force != null) 'force': ['${force}'], if ($fields != null) 'fields': [$fields], }; @@ -3306,6 +3353,7 @@ class AuthConfig { /// Authentication /// - "SSH_PUBLIC_KEY" : SSH Public Key Authentication /// - "OAUTH2_AUTH_CODE_FLOW" : Oauth 2.0 Authorization Code Flow + /// - "GOOGLE_AUTHENTICATION" : Google authentication core.String? authType; /// Oauth2AuthCodeFlow. @@ -3401,6 +3449,7 @@ class AuthConfigTemplate { /// Authentication /// - "SSH_PUBLIC_KEY" : SSH Public Key Authentication /// - "OAUTH2_AUTH_CODE_FLOW" : Oauth 2.0 Authorization Code Flow + /// - "GOOGLE_AUTHENTICATION" : Google authentication core.String? authType; /// Config variables to describe an `AuthConfig` for a `Connection`. @@ -3533,14 +3582,31 @@ class Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -3549,12 +3615,19 @@ class Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; Binding({ @@ -3676,6 +3749,17 @@ class ConfigVariableTemplate { /// Key of the config variable. core.String? key; + /// Location Tyep denotes where this value should be sent in BYOC connections. + /// + /// Optional. + /// Possible string values are: + /// - "LOCATION_TYPE_UNSPECIFIED" : Location type unspecified. + /// - "HEADER" : Request header. + /// - "PAYLOAD" : Request Payload. + /// - "QUERY_PARAM" : Request query param. + /// - "PATH_PARAM" : Request path param. + core.String? locationType; + /// Flag represents that this `ConfigVariable` must be provided for a /// connection. core.bool? required; @@ -3720,6 +3804,7 @@ class ConfigVariableTemplate { this.enumOptions, this.isAdvanced, this.key, + this.locationType, this.required, this.requiredCondition, this.roleGrant, @@ -3750,6 +3835,9 @@ class ConfigVariableTemplate { ? json_['isAdvanced'] as core.bool : null, key: json_.containsKey('key') ? json_['key'] as core.String : null, + locationType: json_.containsKey('locationType') + ? json_['locationType'] as core.String + : null, required: json_.containsKey('required') ? json_['required'] as core.bool : null, @@ -3779,6 +3867,7 @@ class ConfigVariableTemplate { if (enumOptions != null) 'enumOptions': enumOptions!, if (isAdvanced != null) 'isAdvanced': isAdvanced!, if (key != null) 'key': key!, + if (locationType != null) 'locationType': locationType!, if (required != null) 'required': required!, if (requiredCondition != null) 'requiredCondition': requiredCondition!, if (roleGrant != null) 'roleGrant': roleGrant!, @@ -4153,6 +4242,9 @@ class ConnectionSchemaMetadata { /// Output only. core.List? entities; + /// Error message for users. + core.String? errorMessage; + /// Resource name. /// /// Format: @@ -4189,6 +4281,7 @@ class ConnectionSchemaMetadata { ConnectionSchemaMetadata({ this.actions, this.entities, + this.errorMessage, this.name, this.refreshTime, this.state, @@ -4207,6 +4300,9 @@ class ConnectionSchemaMetadata { .map((value) => value as core.String) .toList() : null, + errorMessage: json_.containsKey('errorMessage') + ? json_['errorMessage'] as core.String + : null, name: json_.containsKey('name') ? json_['name'] as core.String : null, refreshTime: json_.containsKey('refreshTime') ? json_['refreshTime'] as core.String @@ -4221,6 +4317,7 @@ class ConnectionSchemaMetadata { core.Map toJson() => { if (actions != null) 'actions': actions!, if (entities != null) 'entities': entities!, + if (errorMessage != null) 'errorMessage': errorMessage!, if (name != null) 'name': name!, if (refreshTime != null) 'refreshTime': refreshTime!, if (state != null) 'state': state!, @@ -4603,6 +4700,11 @@ class ConnectorVersion { /// Output only. SupportedRuntimeFeatures? supportedRuntimeFeatures; + /// Unsupported connection types. + /// + /// Output only. + core.List? unsupportedConnectionTypes; + /// Updated time. /// /// Output only. @@ -4625,6 +4727,7 @@ class ConnectorVersion { this.roleGrants, this.sslConfigTemplate, this.supportedRuntimeFeatures, + this.unsupportedConnectionTypes, this.updateTime, }); @@ -4702,6 +4805,12 @@ class ConnectorVersion { json_['supportedRuntimeFeatures'] as core.Map) : null, + unsupportedConnectionTypes: + json_.containsKey('unsupportedConnectionTypes') + ? (json_['unsupportedConnectionTypes'] as core.List) + .map((value) => value as core.String) + .toList() + : null, updateTime: json_.containsKey('updateTime') ? json_['updateTime'] as core.String : null, @@ -4731,6 +4840,8 @@ class ConnectorVersion { if (sslConfigTemplate != null) 'sslConfigTemplate': sslConfigTemplate!, if (supportedRuntimeFeatures != null) 'supportedRuntimeFeatures': supportedRuntimeFeatures!, + if (unsupportedConnectionTypes != null) + 'unsupportedConnectionTypes': unsupportedConnectionTypes!, if (updateTime != null) 'updateTime': updateTime!, }; } @@ -4743,6 +4854,15 @@ class ConnectorVersionInfraConfig { /// Output only. core.String? connectionRatelimitWindowSeconds; + /// Indicates whether connector is deployed on GKE/CloudRun + /// + /// Optional. + /// Possible string values are: + /// - "DEPLOYMENT_MODEL_UNSPECIFIED" : Deployment model is not specified. + /// - "GKE_MST" : Default model gke mst. + /// - "CLOUD_RUN_MST" : Cloud run mst. + core.String? deploymentModel; + /// HPA autoscaling config. /// /// Output only. @@ -4775,6 +4895,7 @@ class ConnectorVersionInfraConfig { ConnectorVersionInfraConfig({ this.connectionRatelimitWindowSeconds, + this.deploymentModel, this.hpaConfig, this.internalclientRatelimitThreshold, this.ratelimitThreshold, @@ -4789,6 +4910,9 @@ class ConnectorVersionInfraConfig { json_.containsKey('connectionRatelimitWindowSeconds') ? json_['connectionRatelimitWindowSeconds'] as core.String : null, + deploymentModel: json_.containsKey('deploymentModel') + ? json_['deploymentModel'] as core.String + : null, hpaConfig: json_.containsKey('hpaConfig') ? HPAConfig.fromJson( json_['hpaConfig'] as core.Map) @@ -4816,6 +4940,7 @@ class ConnectorVersionInfraConfig { core.Map toJson() => { if (connectionRatelimitWindowSeconds != null) 'connectionRatelimitWindowSeconds': connectionRatelimitWindowSeconds!, + if (deploymentModel != null) 'deploymentModel': deploymentModel!, if (hpaConfig != null) 'hpaConfig': hpaConfig!, if (internalclientRatelimitThreshold != null) 'internalclientRatelimitThreshold': internalclientRatelimitThreshold!, @@ -4851,6 +4976,11 @@ class ConnectorsLogConfig { /// CustomConnector represents the custom connector defined by the customer as /// part of byoc. class CustomConnector { + /// Active connector versions. + /// + /// Optional. + core.List? activeConnectorVersions; + /// Created time. /// /// Output only. @@ -4883,17 +5013,6 @@ class CustomConnector { /// Optional. core.Map? labels; - /// Launch stage. - /// - /// Output only. - /// Possible string values are: - /// - "LAUNCH_STAGE_UNSPECIFIED" : LAUNCH_STAGE_UNSPECIFIED. - /// - "PREVIEW" : PREVIEW. - /// - "GA" : GA. - /// - "DEPRECATED" : DEPRECATED. - /// - "PRIVATE_PREVIEW" : PRIVATE_PREVIEW. - core.String? launchStage; - /// Logo of the resource. /// /// Optional. @@ -4911,12 +5030,12 @@ class CustomConnector { core.String? updateTime; CustomConnector({ + this.activeConnectorVersions, this.createTime, this.customConnectorType, this.description, this.displayName, this.labels, - this.launchStage, this.logo, this.name, this.updateTime, @@ -4924,6 +5043,11 @@ class CustomConnector { CustomConnector.fromJson(core.Map json_) : this( + activeConnectorVersions: json_.containsKey('activeConnectorVersions') + ? (json_['activeConnectorVersions'] as core.List) + .map((value) => value as core.String) + .toList() + : null, createTime: json_.containsKey('createTime') ? json_['createTime'] as core.String : null, @@ -4944,9 +5068,6 @@ class CustomConnector { ), ) : null, - launchStage: json_.containsKey('launchStage') - ? json_['launchStage'] as core.String - : null, logo: json_.containsKey('logo') ? json_['logo'] as core.String : null, name: json_.containsKey('name') ? json_['name'] as core.String : null, updateTime: json_.containsKey('updateTime') @@ -4955,13 +5076,14 @@ class CustomConnector { ); core.Map toJson() => { + if (activeConnectorVersions != null) + 'activeConnectorVersions': activeConnectorVersions!, if (createTime != null) 'createTime': createTime!, if (customConnectorType != null) 'customConnectorType': customConnectorType!, if (description != null) 'description': description!, if (displayName != null) 'displayName': displayName!, if (labels != null) 'labels': labels!, - if (launchStage != null) 'launchStage': launchStage!, if (logo != null) 'logo': logo!, if (name != null) 'name': name!, if (updateTime != null) 'updateTime': updateTime!, @@ -4970,25 +5092,34 @@ class CustomConnector { /// CustomConnectorVersion indicates a specific version of a connector. class CustomConnectorVersion { - /// Configuration for establishing the authentication to the connector - /// destination. + /// Authentication config for accessing connector facade/ proxy. /// - /// Required. + /// This is used only when enable_backend_destination_config is true. + /// + /// Optional. AuthConfig? authConfig; + /// Backend variables config templates. + /// + /// This translates to additional variable templates in connection. + /// + /// Optional. + core.List? backendVariableTemplates; + /// Created time. /// /// Output only. core.String? createTime; - /// Configuration of the customConnector's destination. + /// Destination config(s) for accessing connector facade/ proxy. /// - /// Required. - DestinationConfig? destinationConfig; - - /// Whether to enable backend destination config. + /// This is used only when enable_backend_destination_config is true. /// - /// This is the backend server that the connector connects to. + /// Optional. + core.List? destinationConfigs; + + /// When enabled, the connector will be a facade/ proxy, and connects to the + /// destination provided during connection creation. /// /// Optional. core.bool? enableBackendDestinationConfig; @@ -5009,19 +5140,27 @@ class CustomConnectorVersion { /// Output only. core.String? name; + /// Service account used by runtime plane to access auth config secrets. + /// + /// Optional. + core.String? serviceAccount; + /// Location of the custom connector spec. /// + /// The location can be either a public url like `https://public-url.com/spec` + /// Or a Google Cloud Storage location like `gs:///` + /// /// Optional. core.String? specLocation; - /// Type of the customConnector. + /// State of the custom connector version. /// - /// Required. + /// Output only. /// Possible string values are: - /// - "CUSTOM_CONNECTOR_TYPE_UNSPECIFIED" : Connector type is not specified. - /// - "OPEN_API" : OpenAPI connector. - /// - "PROTO" : Proto connector. - core.String? type; + /// - "STATE_UNSPECIFIED" : State Unspecified. + /// - "ACTIVE" : Active state. By default we set the state to Active. + /// - "DEPRECATED" : Deprecated state. + core.String? state; /// Updated time. /// @@ -5030,13 +5169,15 @@ class CustomConnectorVersion { CustomConnectorVersion({ this.authConfig, + this.backendVariableTemplates, this.createTime, - this.destinationConfig, + this.destinationConfigs, this.enableBackendDestinationConfig, this.labels, this.name, + this.serviceAccount, this.specLocation, - this.type, + this.state, this.updateTime, }); @@ -5046,12 +5187,21 @@ class CustomConnectorVersion { ? AuthConfig.fromJson( json_['authConfig'] as core.Map) : null, + backendVariableTemplates: + json_.containsKey('backendVariableTemplates') + ? (json_['backendVariableTemplates'] as core.List) + .map((value) => ConfigVariableTemplate.fromJson( + value as core.Map)) + .toList() + : null, createTime: json_.containsKey('createTime') ? json_['createTime'] as core.String : null, - destinationConfig: json_.containsKey('destinationConfig') - ? DestinationConfig.fromJson(json_['destinationConfig'] - as core.Map) + destinationConfigs: json_.containsKey('destinationConfigs') + ? (json_['destinationConfigs'] as core.List) + .map((value) => DestinationConfig.fromJson( + value as core.Map)) + .toList() : null, enableBackendDestinationConfig: json_.containsKey('enableBackendDestinationConfig') @@ -5066,10 +5216,14 @@ class CustomConnectorVersion { ) : null, name: json_.containsKey('name') ? json_['name'] as core.String : null, + serviceAccount: json_.containsKey('serviceAccount') + ? json_['serviceAccount'] as core.String + : null, specLocation: json_.containsKey('specLocation') ? json_['specLocation'] as core.String : null, - type: json_.containsKey('type') ? json_['type'] as core.String : null, + state: + json_.containsKey('state') ? json_['state'] as core.String : null, updateTime: json_.containsKey('updateTime') ? json_['updateTime'] as core.String : null, @@ -5077,18 +5231,54 @@ class CustomConnectorVersion { core.Map toJson() => { if (authConfig != null) 'authConfig': authConfig!, + if (backendVariableTemplates != null) + 'backendVariableTemplates': backendVariableTemplates!, if (createTime != null) 'createTime': createTime!, - if (destinationConfig != null) 'destinationConfig': destinationConfig!, + if (destinationConfigs != null) + 'destinationConfigs': destinationConfigs!, if (enableBackendDestinationConfig != null) 'enableBackendDestinationConfig': enableBackendDestinationConfig!, if (labels != null) 'labels': labels!, if (name != null) 'name': name!, + if (serviceAccount != null) 'serviceAccount': serviceAccount!, if (specLocation != null) 'specLocation': specLocation!, - if (type != null) 'type': type!, + if (state != null) 'state': state!, if (updateTime != null) 'updateTime': updateTime!, }; } +/// Dead Letter configuration details provided by the user. +class DeadLetterConfig { + /// Project which has the topic given. + /// + /// Optional. + core.String? projectId; + + /// Topic to push events which couldn't be processed. + /// + /// Optional. + core.String? topic; + + DeadLetterConfig({ + this.projectId, + this.topic, + }); + + DeadLetterConfig.fromJson(core.Map json_) + : this( + projectId: json_.containsKey('projectId') + ? json_['projectId'] as core.String + : null, + topic: + json_.containsKey('topic') ? json_['topic'] as core.String : null, + ); + + core.Map toJson() => { + if (projectId != null) 'projectId': projectId!, + if (topic != null) 'topic': topic!, + }; +} + class Destination { /// For publicly routable host. core.String? host; @@ -5295,9 +5485,9 @@ class EncryptionConfig { /// /// Optional. /// Possible string values are: - /// - "ENCRYPTION_TYPE_UNSPECIFIED" : Egress mode unspecified. - /// - "GMEK" : Network egress through auto assigned IPs. - /// - "CMEK" : Network egress through static IPs. + /// - "ENCRYPTION_TYPE_UNSPECIFIED" : Encryption type unspecified. + /// - "GMEK" : Google managed encryption keys + /// - "CMEK" : Customer managed encryption keys. core.String? encryptionType; /// KMS crypto key. @@ -5815,8 +6005,10 @@ class EventingConfig { /// Auth details for the webhook adapter. AuthConfig? authConfig; - /// Encryption key (can be either Google managed or CMEK). - ConfigVariable? encryptionKey; + /// Dead letter configuration for eventing of a connection. + /// + /// Optional. + DeadLetterConfig? deadLetterConfig; /// Enrichment Enabled. core.bool? enrichmentEnabled; @@ -5828,22 +6020,40 @@ class EventingConfig { /// Optional. core.String? eventsListenerIngressEndpoint; + /// Auth details for the event listener. + /// + /// Optional. + AuthConfig? listenerAuthConfig; + /// Private Connectivity Enabled. /// /// Optional. core.bool? privateConnectivityEnabled; + /// Proxy for Eventing auto-registration. + /// + /// Optional. + DestinationConfig? proxyDestinationConfig; + /// Registration endpoint for auto registration. DestinationConfig? registrationDestinationConfig; + /// Additional eventing related field values + /// + /// Optional. + core.List? triggerConfigVariables; + EventingConfig({ this.additionalVariables, this.authConfig, - this.encryptionKey, + this.deadLetterConfig, this.enrichmentEnabled, this.eventsListenerIngressEndpoint, + this.listenerAuthConfig, this.privateConnectivityEnabled, + this.proxyDestinationConfig, this.registrationDestinationConfig, + this.triggerConfigVariables, }); EventingConfig.fromJson(core.Map json_) @@ -5858,9 +6068,9 @@ class EventingConfig { ? AuthConfig.fromJson( json_['authConfig'] as core.Map) : null, - encryptionKey: json_.containsKey('encryptionKey') - ? ConfigVariable.fromJson( - json_['encryptionKey'] as core.Map) + deadLetterConfig: json_.containsKey('deadLetterConfig') + ? DeadLetterConfig.fromJson(json_['deadLetterConfig'] + as core.Map) : null, enrichmentEnabled: json_.containsKey('enrichmentEnabled') ? json_['enrichmentEnabled'] as core.bool @@ -5869,30 +6079,50 @@ class EventingConfig { json_.containsKey('eventsListenerIngressEndpoint') ? json_['eventsListenerIngressEndpoint'] as core.String : null, + listenerAuthConfig: json_.containsKey('listenerAuthConfig') + ? AuthConfig.fromJson(json_['listenerAuthConfig'] + as core.Map) + : null, privateConnectivityEnabled: json_.containsKey('privateConnectivityEnabled') ? json_['privateConnectivityEnabled'] as core.bool : null, + proxyDestinationConfig: json_.containsKey('proxyDestinationConfig') + ? DestinationConfig.fromJson(json_['proxyDestinationConfig'] + as core.Map) + : null, registrationDestinationConfig: json_.containsKey('registrationDestinationConfig') ? DestinationConfig.fromJson( json_['registrationDestinationConfig'] as core.Map) : null, + triggerConfigVariables: json_.containsKey('triggerConfigVariables') + ? (json_['triggerConfigVariables'] as core.List) + .map((value) => ConfigVariable.fromJson( + value as core.Map)) + .toList() + : null, ); core.Map toJson() => { if (additionalVariables != null) 'additionalVariables': additionalVariables!, if (authConfig != null) 'authConfig': authConfig!, - if (encryptionKey != null) 'encryptionKey': encryptionKey!, + if (deadLetterConfig != null) 'deadLetterConfig': deadLetterConfig!, if (enrichmentEnabled != null) 'enrichmentEnabled': enrichmentEnabled!, if (eventsListenerIngressEndpoint != null) 'eventsListenerIngressEndpoint': eventsListenerIngressEndpoint!, + if (listenerAuthConfig != null) + 'listenerAuthConfig': listenerAuthConfig!, if (privateConnectivityEnabled != null) 'privateConnectivityEnabled': privateConnectivityEnabled!, + if (proxyDestinationConfig != null) + 'proxyDestinationConfig': proxyDestinationConfig!, if (registrationDestinationConfig != null) 'registrationDestinationConfig': registrationDestinationConfig!, + if (triggerConfigVariables != null) + 'triggerConfigVariables': triggerConfigVariables!, }; } @@ -5927,9 +6157,19 @@ class EventingConfigTemplate { /// Is Eventing Supported. core.bool? isEventingSupported; + /// ListenerAuthConfigTemplates represents the auth values for the event + /// listener. + core.List? listenerAuthConfigTemplates; + + /// Proxy destination config template. + DestinationConfigTemplate? proxyDestinationConfig; + /// Registration host destination config template. DestinationConfigTemplate? registrationDestinationConfig; + /// Trigger Config fields that needs to be rendered + core.List? triggerConfigVariables; + EventingConfigTemplate({ this.additionalVariables, this.authConfigTemplates, @@ -5939,7 +6179,10 @@ class EventingConfigTemplate { this.enrichmentSupported, this.eventListenerType, this.isEventingSupported, + this.listenerAuthConfigTemplates, + this.proxyDestinationConfig, this.registrationDestinationConfig, + this.triggerConfigVariables, }); EventingConfigTemplate.fromJson(core.Map json_) @@ -5976,12 +6219,30 @@ class EventingConfigTemplate { isEventingSupported: json_.containsKey('isEventingSupported') ? json_['isEventingSupported'] as core.bool : null, + listenerAuthConfigTemplates: + json_.containsKey('listenerAuthConfigTemplates') + ? (json_['listenerAuthConfigTemplates'] as core.List) + .map((value) => AuthConfigTemplate.fromJson( + value as core.Map)) + .toList() + : null, + proxyDestinationConfig: json_.containsKey('proxyDestinationConfig') + ? DestinationConfigTemplate.fromJson( + json_['proxyDestinationConfig'] + as core.Map) + : null, registrationDestinationConfig: json_.containsKey('registrationDestinationConfig') ? DestinationConfigTemplate.fromJson( json_['registrationDestinationConfig'] as core.Map) : null, + triggerConfigVariables: json_.containsKey('triggerConfigVariables') + ? (json_['triggerConfigVariables'] as core.List) + .map((value) => ConfigVariableTemplate.fromJson( + value as core.Map)) + .toList() + : null, ); core.Map toJson() => { @@ -5999,8 +6260,14 @@ class EventingConfigTemplate { if (eventListenerType != null) 'eventListenerType': eventListenerType!, if (isEventingSupported != null) 'isEventingSupported': isEventingSupported!, + if (listenerAuthConfigTemplates != null) + 'listenerAuthConfigTemplates': listenerAuthConfigTemplates!, + if (proxyDestinationConfig != null) + 'proxyDestinationConfig': proxyDestinationConfig!, if (registrationDestinationConfig != null) 'registrationDestinationConfig': registrationDestinationConfig!, + if (triggerConfigVariables != null) + 'triggerConfigVariables': triggerConfigVariables!, }; } @@ -7470,6 +7737,35 @@ class ListRuntimeEntitySchemasResponse { }; } +/// Expected request for ListenEvent API. +class ListenEventRequest { + /// Request payload. + /// + /// Optional. + /// + /// The values for Object must be JSON objects. It can consist of `num`, + /// `String`, `bool` and `null` as well as `Map` and `List` values. + core.Map? payload; + + ListenEventRequest({ + this.payload, + }); + + ListenEventRequest.fromJson(core.Map json_) + : this( + payload: json_.containsKey('payload') + ? json_['payload'] as core.Map + : null, + ); + + core.Map toJson() => { + if (payload != null) 'payload': payload!, + }; +} + +/// Expected response for ListenEvent API. +typedef ListenEventResponse = $Empty; + /// A resource that represents a Google Cloud location. typedef Location = $Location00; @@ -8219,10 +8515,16 @@ class RegionalSettings { /// Optional. NetworkConfig? networkConfig; + /// Specifies whether the region is provisioned. + /// + /// Output only. + core.bool? provisioned; + RegionalSettings({ this.encryptionConfig, this.name, this.networkConfig, + this.provisioned, }); RegionalSettings.fromJson(core.Map json_) @@ -8236,12 +8538,16 @@ class RegionalSettings { ? NetworkConfig.fromJson( json_['networkConfig'] as core.Map) : null, + provisioned: json_.containsKey('provisioned') + ? json_['provisioned'] as core.bool + : null, ); core.Map toJson() => { if (encryptionConfig != null) 'encryptionConfig': encryptionConfig!, if (name != null) 'name': name!, if (networkConfig != null) 'networkConfig': networkConfig!, + if (provisioned != null) 'provisioned': provisioned!, }; } diff --git a/generated/googleapis/lib/connectors/v2.dart b/generated/googleapis/lib/connectors/v2.dart index a22d65882..577724589 100644 --- a/generated/googleapis/lib/connectors/v2.dart +++ b/generated/googleapis/lib/connectors/v2.dart @@ -89,6 +89,132 @@ class ProjectsLocationsConnectionsResource { ProjectsLocationsConnectionsResource(commons.ApiRequester client) : _requester = client; + /// Reports readiness status of the connector. + /// + /// Similar logic to GetStatus but modified for kubernetes health check to + /// understand. + /// + /// Request parameters: + /// + /// [name] - null + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/connections/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [CheckReadinessResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future checkReadiness( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v2/' + core.Uri.encodeFull('$name') + ':checkReadiness'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return CheckReadinessResponse.fromJson( + response_ as core.Map); + } + + /// Reports the status of the connection. + /// + /// Note that when the connection is in a state that is not ACTIVE, the + /// implementation of this RPC method must return a Status with the + /// corresponding State instead of returning a gRPC status code that is not + /// "OK", which indicates that ConnectionStatus itself, not the connection, + /// failed. + /// + /// Request parameters: + /// + /// [name] - null + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/connections/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [CheckStatusResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future checkStatus( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v2/' + core.Uri.encodeFull('$name') + ':checkStatus'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return CheckStatusResponse.fromJson( + response_ as core.Map); + } + + /// ExchangeAuthCode exchanges the OAuth authorization code (and other + /// necessary data) for an access token (and associated credentials). + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [name] - null + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/connections/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [ExchangeAuthCodeResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future exchangeAuthCode( + ExchangeAuthCodeRequest request, + core.String name, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v2/' + core.Uri.encodeFull('$name') + ':exchangeAuthCode'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return ExchangeAuthCodeResponse.fromJson( + response_ as core.Map); + } + /// Executes a SQL statement specified in the body of the request. /// /// An example of this SQL statement in the case of Salesforce connector would @@ -135,6 +261,49 @@ class ProjectsLocationsConnectionsResource { return ExecuteSqlQueryResponse.fromJson( response_ as core.Map); } + + /// RefreshAccessToken exchanges the OAuth refresh token (and other necessary + /// data) for a new access token (and new associated credentials). + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [name] - null + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/connections/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [RefreshAccessTokenResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future refreshAccessToken( + RefreshAccessTokenRequest request, + core.String name, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v2/' + core.Uri.encodeFull('$name') + ':refreshAccessToken'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return RefreshAccessTokenResponse.fromJson( + response_ as core.Map); + } } class ProjectsLocationsConnectionsActionsResource { @@ -745,6 +914,44 @@ class ProjectsLocationsConnectionsEntityTypesEntitiesResource { } } +/// AccessCredentials includes the OAuth access token, and the other fields +/// returned along with it. +class AccessCredentials { + /// OAuth access token. + core.String? accessToken; + + /// Duration till the access token expires. + core.String? expiresIn; + + /// OAuth refresh token. + core.String? refreshToken; + + AccessCredentials({ + this.accessToken, + this.expiresIn, + this.refreshToken, + }); + + AccessCredentials.fromJson(core.Map json_) + : this( + accessToken: json_.containsKey('accessToken') + ? json_['accessToken'] as core.String + : null, + expiresIn: json_.containsKey('expiresIn') + ? json_['expiresIn'] as core.String + : null, + refreshToken: json_.containsKey('refreshToken') + ? json_['refreshToken'] as core.String + : null, + ); + + core.Map toJson() => { + if (accessToken != null) 'accessToken': accessToken!, + if (expiresIn != null) 'expiresIn': expiresIn!, + if (refreshToken != null) 'refreshToken': refreshToken!, + }; +} + /// Action message contains metadata information about a single action present /// in the external system. class Action { @@ -821,6 +1028,67 @@ class Action { }; } +/// Response containing status of the connector for readiness prober. +class CheckReadinessResponse { + core.String? status; + + CheckReadinessResponse({ + this.status, + }); + + CheckReadinessResponse.fromJson(core.Map json_) + : this( + status: json_.containsKey('status') + ? json_['status'] as core.String + : null, + ); + + core.Map toJson() => { + if (status != null) 'status': status!, + }; +} + +/// The status of the connector. +class CheckStatusResponse { + /// When the connector is not in ACTIVE state, the description must be + /// populated to specify the reason why it's not in ACTIVE state. + core.String? description; + + /// State of the connector. + /// Possible string values are: + /// - "STATE_UNSPECIFIED" : State unspecified. + /// - "ACTIVE" : The connector is active and ready to process runtime + /// requests. This can also mean that from the connector's perspective, the + /// connector is not in an error state and should be able to process runtime + /// requests successfully. + /// - "ERROR" : The connector is in an error state and cannot process runtime + /// requests. An example reason would be that the connection container has + /// some network issues that prevent outbound requests from being sent. + /// - "AUTH_ERROR" : This is a more specific error state that the developers + /// can opt to use when the connector is facing auth-related errors caused by + /// auth configuration not present, invalid auth credentials, etc. + core.String? state; + + CheckStatusResponse({ + this.description, + this.state, + }); + + CheckStatusResponse.fromJson(core.Map json_) + : this( + description: json_.containsKey('description') + ? json_['description'] as core.String + : null, + state: + json_.containsKey('state') ? json_['state'] as core.String : null, + ); + + core.Map toJson() => { + if (description != null) 'description': description!, + if (state != null) 'state': state!, + }; +} + /// A generic empty message that you can re-use to avoid defining duplicated /// empty messages in your APIs. /// @@ -907,6 +1175,31 @@ class EntityType { }; } +/// ExchangeAuthCodeRequest currently includes no fields. +typedef ExchangeAuthCodeRequest = $Empty; + +/// ExchangeAuthCodeResponse includes the returned access token and its +/// associated credentials. +class ExchangeAuthCodeResponse { + AccessCredentials? accessCredentials; + + ExchangeAuthCodeResponse({ + this.accessCredentials, + }); + + ExchangeAuthCodeResponse.fromJson(core.Map json_) + : this( + accessCredentials: json_.containsKey('accessCredentials') + ? AccessCredentials.fromJson(json_['accessCredentials'] + as core.Map) + : null, + ); + + core.Map toJson() => { + if (accessCredentials != null) 'accessCredentials': accessCredentials!, + }; +} + /// Request message for ActionService.ExecuteAction class ExecuteActionRequest { /// Parameters for executing the action. @@ -1729,6 +2022,31 @@ class Reference { }; } +/// RefreshAccessTokenRequest currently includes no fields. +typedef RefreshAccessTokenRequest = $Empty; + +/// RefreshAccessTokenResponse includes the returned access token and its +/// associated credentials. +class RefreshAccessTokenResponse { + AccessCredentials? accessCredentials; + + RefreshAccessTokenResponse({ + this.accessCredentials, + }); + + RefreshAccessTokenResponse.fromJson(core.Map json_) + : this( + accessCredentials: json_.containsKey('accessCredentials') + ? AccessCredentials.fromJson(json_['accessCredentials'] + as core.Map) + : null, + ); + + core.Map toJson() => { + if (accessCredentials != null) 'accessCredentials': accessCredentials!, + }; +} + /// Result Metadata message contains metadata about the result returned after /// executing an Action. class ResultMetadata { diff --git a/generated/googleapis/lib/contactcenterinsights/v1.dart b/generated/googleapis/lib/contactcenterinsights/v1.dart index cf97e4ce6..96192eb50 100644 --- a/generated/googleapis/lib/contactcenterinsights/v1.dart +++ b/generated/googleapis/lib/contactcenterinsights/v1.dart @@ -502,6 +502,14 @@ class ProjectsLocationsConversationsResource { /// [filter] - A filter to reduce results to a specific subset. Useful for /// querying conversations with specific properties. /// + /// [orderBy] - Optional. The attribute by which to order conversations in the + /// response. If empty, conversations will be ordered by descending creation + /// time. Supported values are one of the following: * create_time * + /// customer_satisfaction_rating * duration * latest_analysis * start_time * + /// turn_count The default sort order is ascending. To specify order, append + /// `asc` or `desc`, i.e. `create_time desc`. See + /// https://google.aip.dev/132#ordering for more details. + /// /// [pageSize] - The maximum number of conversations to return in the /// response. A valid page size ranges from 0 to 1,000 inclusive. If the page /// size is zero or unspecified, a default page size of 100 will be chosen. @@ -536,6 +544,7 @@ class ProjectsLocationsConversationsResource { list( core.String parent, { core.String? filter, + core.String? orderBy, core.int? pageSize, core.String? pageToken, core.String? view, @@ -543,6 +552,7 @@ class ProjectsLocationsConversationsResource { }) async { final queryParams_ = >{ if (filter != null) 'filter': [filter], + if (orderBy != null) 'orderBy': [orderBy], if (pageSize != null) 'pageSize': ['${pageSize}'], if (pageToken != null) 'pageToken': [pageToken], if (view != null) 'view': [view], @@ -1057,6 +1067,48 @@ class ProjectsLocationsIssueModelsResource { response_ as core.Map); } + /// Exports an issue model to the provided destination. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [name] - Required. The issue model to export + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/issueModels/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleLongrunningOperation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future export( + GoogleCloudContactcenterinsightsV1ExportIssueModelRequest request, + core.String name, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':export'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return GoogleLongrunningOperation.fromJson( + response_ as core.Map); + } + /// Gets an issue model. /// /// Request parameters: @@ -1094,6 +1146,47 @@ class ProjectsLocationsIssueModelsResource { response_ as core.Map); } + /// Imports an issue model from a Cloud Storage bucket. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [parent] - Required. The parent resource of the issue model. + /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleLongrunningOperation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future import( + GoogleCloudContactcenterinsightsV1ImportIssueModelRequest request, + core.String parent, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/issueModels:import'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return GoogleLongrunningOperation.fromJson( + response_ as core.Map); + } + /// Lists issue models. /// /// Request parameters: @@ -3034,6 +3127,10 @@ class GoogleCloudContactcenterinsightsV1Conversation { /// Obfuscated user ID which the customer sent to us. core.String? obfuscatedUserId; + /// Conversation metadata related to quality management. + GoogleCloudContactcenterinsightsV1ConversationQualityMetadata? + qualityMetadata; + /// The annotations that were generated during the customer and agent /// interaction. /// @@ -3080,6 +3177,7 @@ class GoogleCloudContactcenterinsightsV1Conversation { this.medium, this.name, this.obfuscatedUserId, + this.qualityMetadata, this.runtimeAnnotations, this.startTime, this.transcript, @@ -3151,6 +3249,11 @@ class GoogleCloudContactcenterinsightsV1Conversation { obfuscatedUserId: json_.containsKey('obfuscatedUserId') ? json_['obfuscatedUserId'] as core.String : null, + qualityMetadata: json_.containsKey('qualityMetadata') + ? GoogleCloudContactcenterinsightsV1ConversationQualityMetadata + .fromJson(json_['qualityMetadata'] + as core.Map) + : null, runtimeAnnotations: json_.containsKey('runtimeAnnotations') ? (json_['runtimeAnnotations'] as core.List) .map((value) => @@ -3191,6 +3294,7 @@ class GoogleCloudContactcenterinsightsV1Conversation { if (medium != null) 'medium': medium!, if (name != null) 'name': name!, if (obfuscatedUserId != null) 'obfuscatedUserId': obfuscatedUserId!, + if (qualityMetadata != null) 'qualityMetadata': qualityMetadata!, if (runtimeAnnotations != null) 'runtimeAnnotations': runtimeAnnotations!, if (startTime != null) 'startTime': startTime!, @@ -3231,8 +3335,7 @@ class GoogleCloudContactcenterinsightsV1ConversationCallMetadata { }; } -/// The conversation source, which is a combination of transcript, audio, and -/// metadata. +/// The conversation source, which is a combination of transcript and audio. class GoogleCloudContactcenterinsightsV1ConversationDataSource { /// The source when the conversation comes from Dialogflow. GoogleCloudContactcenterinsightsV1DialogflowSource? dialogflowSource; @@ -3371,6 +3474,106 @@ class GoogleCloudContactcenterinsightsV1ConversationParticipant { }; } +/// Conversation metadata related to quality management. +class GoogleCloudContactcenterinsightsV1ConversationQualityMetadata { + /// Information about agents involved in the call. + core.List< + GoogleCloudContactcenterinsightsV1ConversationQualityMetadataAgentInfo>? + agentInfo; + + /// An arbitrary integer value indicating the customer's satisfaction rating. + core.int? customerSatisfactionRating; + + /// An arbitrary string value specifying the menu path the customer took. + core.String? menuPath; + + /// The amount of time the customer waited to connect with an agent. + core.String? waitDuration; + + GoogleCloudContactcenterinsightsV1ConversationQualityMetadata({ + this.agentInfo, + this.customerSatisfactionRating, + this.menuPath, + this.waitDuration, + }); + + GoogleCloudContactcenterinsightsV1ConversationQualityMetadata.fromJson( + core.Map json_) + : this( + agentInfo: json_.containsKey('agentInfo') + ? (json_['agentInfo'] as core.List) + .map((value) => + GoogleCloudContactcenterinsightsV1ConversationQualityMetadataAgentInfo + .fromJson( + value as core.Map)) + .toList() + : null, + customerSatisfactionRating: + json_.containsKey('customerSatisfactionRating') + ? json_['customerSatisfactionRating'] as core.int + : null, + menuPath: json_.containsKey('menuPath') + ? json_['menuPath'] as core.String + : null, + waitDuration: json_.containsKey('waitDuration') + ? json_['waitDuration'] as core.String + : null, + ); + + core.Map toJson() => { + if (agentInfo != null) 'agentInfo': agentInfo!, + if (customerSatisfactionRating != null) + 'customerSatisfactionRating': customerSatisfactionRating!, + if (menuPath != null) 'menuPath': menuPath!, + if (waitDuration != null) 'waitDuration': waitDuration!, + }; +} + +/// Information about an agent involved in the conversation. +class GoogleCloudContactcenterinsightsV1ConversationQualityMetadataAgentInfo { + /// A user-specified string representing the agent. + core.String? agentId; + + /// The agent's name. + core.String? displayName; + + /// A user-provided string indicating the outcome of the agent's segment of + /// the call. + core.String? dispositionCode; + + /// A user-specified string representing the agent's team. + core.String? team; + + GoogleCloudContactcenterinsightsV1ConversationQualityMetadataAgentInfo({ + this.agentId, + this.displayName, + this.dispositionCode, + this.team, + }); + + GoogleCloudContactcenterinsightsV1ConversationQualityMetadataAgentInfo.fromJson( + core.Map json_) + : this( + agentId: json_.containsKey('agentId') + ? json_['agentId'] as core.String + : null, + displayName: json_.containsKey('displayName') + ? json_['displayName'] as core.String + : null, + dispositionCode: json_.containsKey('dispositionCode') + ? json_['dispositionCode'] as core.String + : null, + team: json_.containsKey('team') ? json_['team'] as core.String : null, + ); + + core.Map toJson() => { + if (agentId != null) 'agentId': agentId!, + if (displayName != null) 'displayName': displayName!, + if (dispositionCode != null) 'dispositionCode': dispositionCode!, + if (team != null) 'team': team!, + }; +} + /// Conversation summarization suggestion data. class GoogleCloudContactcenterinsightsV1ConversationSummarizationSuggestionData { /// The name of the answer record. @@ -4066,6 +4269,43 @@ class GoogleCloudContactcenterinsightsV1ExportInsightsDataRequestBigQueryDestina }; } +/// Request to export an issue model. +class GoogleCloudContactcenterinsightsV1ExportIssueModelRequest { + /// Google Cloud Storage URI to export the Issue Model to. + GoogleCloudContactcenterinsightsV1ExportIssueModelRequestGcsDestination? + gcsDestination; + + /// The issue model to export + /// + /// Required. + core.String? name; + + GoogleCloudContactcenterinsightsV1ExportIssueModelRequest({ + this.gcsDestination, + this.name, + }); + + GoogleCloudContactcenterinsightsV1ExportIssueModelRequest.fromJson( + core.Map json_) + : this( + gcsDestination: json_.containsKey('gcsDestination') + ? GoogleCloudContactcenterinsightsV1ExportIssueModelRequestGcsDestination + .fromJson(json_['gcsDestination'] + as core.Map) + : null, + name: json_.containsKey('name') ? json_['name'] as core.String : null, + ); + + core.Map toJson() => { + if (gcsDestination != null) 'gcsDestination': gcsDestination!, + if (name != null) 'name': name!, + }; +} + +/// Google Cloud Storage Object URI to save the issue model to. +typedef GoogleCloudContactcenterinsightsV1ExportIssueModelRequestGcsDestination + = $Shared06; + /// Agent Assist frequently-asked-question answer data. class GoogleCloudContactcenterinsightsV1FaqAnswerData { /// The piece of text from the `source` knowledge base document. @@ -4177,6 +4417,57 @@ class GoogleCloudContactcenterinsightsV1GcsSource { /// The data for a hold annotation. typedef GoogleCloudContactcenterinsightsV1HoldData = $Empty; +/// Request to import an issue model. +class GoogleCloudContactcenterinsightsV1ImportIssueModelRequest { + /// If set to true, will create a new issue model from the imported file with + /// randomly generated IDs for the issue model and corresponding issues. + /// + /// Otherwise, replaces an existing model with the same ID as the file. + /// + /// Optional. + core.bool? createNewModel; + + /// Google Cloud Storage source message. + GoogleCloudContactcenterinsightsV1ImportIssueModelRequestGcsSource? gcsSource; + + /// The parent resource of the issue model. + /// + /// Required. + core.String? parent; + + GoogleCloudContactcenterinsightsV1ImportIssueModelRequest({ + this.createNewModel, + this.gcsSource, + this.parent, + }); + + GoogleCloudContactcenterinsightsV1ImportIssueModelRequest.fromJson( + core.Map json_) + : this( + createNewModel: json_.containsKey('createNewModel') + ? json_['createNewModel'] as core.bool + : null, + gcsSource: json_.containsKey('gcsSource') + ? GoogleCloudContactcenterinsightsV1ImportIssueModelRequestGcsSource + .fromJson( + json_['gcsSource'] as core.Map) + : null, + parent: json_.containsKey('parent') + ? json_['parent'] as core.String + : null, + ); + + core.Map toJson() => { + if (createNewModel != null) 'createNewModel': createNewModel!, + if (gcsSource != null) 'gcsSource': gcsSource!, + if (parent != null) 'parent': parent!, + }; +} + +/// Google Cloud Storage Object URI to get the issue model file from. +typedef GoogleCloudContactcenterinsightsV1ImportIssueModelRequestGcsSource + = $Shared06; + /// The request to ingest conversations. class GoogleCloudContactcenterinsightsV1IngestConversationsRequest { /// Configuration that applies to all conversations. @@ -4268,11 +4559,10 @@ class GoogleCloudContactcenterinsightsV1IngestConversationsRequest { /// Configuration that applies to all conversations. class GoogleCloudContactcenterinsightsV1IngestConversationsRequestConversationConfig { - /// For audio conversations, this field indicates which of the channels, 1 or - /// 2, contains the agent. + /// Indicates which of the channels, 1 or 2, contains the agent. /// - /// Note that this must be set for audio conversations to be properly - /// displayed and analyzed. + /// Note that this must be set for conversations to be properly displayed and + /// analyzed. /// /// Optional. core.int? agentChannel; @@ -4281,11 +4571,10 @@ class GoogleCloudContactcenterinsightsV1IngestConversationsRequestConversationCo /// the conversations. core.String? agentId; - /// For audio conversations, this field indicates which of the channels, 1 or - /// 2, contains the customer. + /// Indicates which of the channels, 1 or 2, contains the agent. /// - /// Note that this must be set for audio conversations to be properly - /// displayed and analyzed. + /// Note that this must be set for conversations to be properly displayed and + /// analyzed. /// /// Optional. core.int? customerChannel; @@ -4324,7 +4613,7 @@ class GoogleCloudContactcenterinsightsV1IngestConversationsRequestGcsSource { /// Optional. /// Possible string values are: /// - "BUCKET_OBJECT_TYPE_UNSPECIFIED" : The object type is unspecified and - /// will default to TRANSCRIPT. + /// will default to `TRANSCRIPT`. /// - "TRANSCRIPT" : The object is a transcript. /// - "AUDIO" : The object is an audio file. core.String? bucketObjectType; @@ -4334,9 +4623,29 @@ class GoogleCloudContactcenterinsightsV1IngestConversationsRequestGcsSource { /// Required. core.String? bucketUri; + /// Custom keys to extract as conversation labels from metadata files in + /// `metadata_bucket_uri`. + /// + /// Keys not included in this field will be ignored. Note that there is a + /// limit of 20 labels per conversation. + /// + /// Optional. + core.List? customMetadataKeys; + + /// The Cloud Storage path to the source object metadata. + /// + /// Note that: \[1\] metadata files are expected to be in JSON format \[2\] + /// metadata and source objects must be in separate buckets \[3\] a source + /// object's metadata object must share the same name to be properly ingested + /// + /// Optional. + core.String? metadataBucketUri; + GoogleCloudContactcenterinsightsV1IngestConversationsRequestGcsSource({ this.bucketObjectType, this.bucketUri, + this.customMetadataKeys, + this.metadataBucketUri, }); GoogleCloudContactcenterinsightsV1IngestConversationsRequestGcsSource.fromJson( @@ -4348,11 +4657,22 @@ class GoogleCloudContactcenterinsightsV1IngestConversationsRequestGcsSource { bucketUri: json_.containsKey('bucketUri') ? json_['bucketUri'] as core.String : null, + customMetadataKeys: json_.containsKey('customMetadataKeys') + ? (json_['customMetadataKeys'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + metadataBucketUri: json_.containsKey('metadataBucketUri') + ? json_['metadataBucketUri'] as core.String + : null, ); core.Map toJson() => { if (bucketObjectType != null) 'bucketObjectType': bucketObjectType!, if (bucketUri != null) 'bucketUri': bucketUri!, + if (customMetadataKeys != null) + 'customMetadataKeys': customMetadataKeys!, + if (metadataBucketUri != null) 'metadataBucketUri': metadataBucketUri!, }; } @@ -5589,8 +5909,9 @@ class GoogleCloudContactcenterinsightsV1Settings { /// "create-conversation": Notify each time a conversation is created. * /// "export-insights-data": Notify each time an export is complete. * /// "update-conversation": Notify each time a conversation is updated via - /// UpdateConversation. Values are Pub/Sub topics. The format of each Pub/Sub - /// topic is: projects/{project}/topics/{topic} + /// UpdateConversation. * "upload-conversation": Notify when an + /// UploadConversation LRO completes. Values are Pub/Sub topics. The format of + /// each Pub/Sub topic is: projects/{project}/topics/{topic} core.Map? pubsubNotificationSettings; /// Default DLP redaction resources to be applied while ingesting @@ -5914,14 +6235,14 @@ class GoogleCloudContactcenterinsightsV1UploadConversationRequest { /// DLP settings for transcript redaction. /// - /// Optional, will default to the config specified in Settings. + /// Will default to the config specified in Settings. /// /// Optional. GoogleCloudContactcenterinsightsV1RedactionConfig? redactionConfig; - /// Default Speech-to-Text configuration. + /// Speech-to-Text configuration. /// - /// Optional, will default to the config specified in Settings. + /// Will default to the config specified in Settings. /// /// Optional. GoogleCloudContactcenterinsightsV1SpeechConfig? speechConfig; diff --git a/generated/googleapis/lib/container/v1.dart b/generated/googleapis/lib/container/v1.dart index 953cd5893..9a28373b4 100644 --- a/generated/googleapis/lib/container/v1.dart +++ b/generated/googleapis/lib/container/v1.dart @@ -476,9 +476,6 @@ class ProjectsLocationsClustersResource { /// Gets the public component of the cluster signing keys in JSON Web Key /// format. /// - /// This API is not yet intended for general use, and is not available for all - /// clusters. - /// /// Request parameters: /// /// [parent] - The cluster (project, location, cluster name) to get keys for. @@ -1594,8 +1591,7 @@ class ProjectsLocationsClustersWellKnownResource { /// /// See the /// [OpenID Connect Discovery 1.0 specification](https://openid.net/specs/openid-connect-discovery-1_0.html) - /// for details. This API is not yet intended for general use, and is not - /// available for all clusters. + /// for details. /// /// Request parameters: /// @@ -3813,6 +3809,11 @@ class AddonsConfig { /// does not track whether network policy is enabled for the nodes. NetworkPolicyConfig? networkPolicyConfig; + /// Configuration for the StatefulHA add-on. + /// + /// Optional. + StatefulHAConfig? statefulHaConfig; + AddonsConfig({ this.cloudRunConfig, this.configConnectorConfig, @@ -3825,6 +3826,7 @@ class AddonsConfig { this.httpLoadBalancing, this.kubernetesDashboard, this.networkPolicyConfig, + this.statefulHaConfig, }); AddonsConfig.fromJson(core.Map json_) @@ -3879,6 +3881,10 @@ class AddonsConfig { ? NetworkPolicyConfig.fromJson(json_['networkPolicyConfig'] as core.Map) : null, + statefulHaConfig: json_.containsKey('statefulHaConfig') + ? StatefulHAConfig.fromJson(json_['statefulHaConfig'] + as core.Map) + : null, ); core.Map toJson() => { @@ -3901,6 +3907,7 @@ class AddonsConfig { 'kubernetesDashboard': kubernetesDashboard!, if (networkPolicyConfig != null) 'networkPolicyConfig': networkPolicyConfig!, + if (statefulHaConfig != null) 'statefulHaConfig': statefulHaConfig!, }; } @@ -3910,6 +3917,9 @@ class AdvancedDatapathObservabilityConfig { /// Expose flow metrics on nodes core.bool? enableMetrics; + /// Enable Relay component + core.bool? enableRelay; + /// Method used to make Relay available /// Possible string values are: /// - "RELAY_MODE_UNSPECIFIED" : Default value. This shouldn't be used. @@ -3920,6 +3930,7 @@ class AdvancedDatapathObservabilityConfig { AdvancedDatapathObservabilityConfig({ this.enableMetrics, + this.enableRelay, this.relayMode, }); @@ -3928,6 +3939,9 @@ class AdvancedDatapathObservabilityConfig { enableMetrics: json_.containsKey('enableMetrics') ? json_['enableMetrics'] as core.bool : null, + enableRelay: json_.containsKey('enableRelay') + ? json_['enableRelay'] as core.bool + : null, relayMode: json_.containsKey('relayMode') ? json_['relayMode'] as core.String : null, @@ -3935,6 +3949,7 @@ class AdvancedDatapathObservabilityConfig { core.Map toJson() => { if (enableMetrics != null) 'enableMetrics': enableMetrics!, + if (enableRelay != null) 'enableRelay': enableRelay!, if (relayMode != null) 'relayMode': relayMode!, }; } @@ -5682,6 +5697,15 @@ class ClusterUpdate { /// NOTE: Set the "desired_node_pool" field as well. core.String? desiredImageType; + /// Specify the details of in-transit encryption. + /// Possible string values are: + /// - "IN_TRANSIT_ENCRYPTION_CONFIG_UNSPECIFIED" : Unspecified, will be + /// inferred as default - IN_TRANSIT_ENCRYPTION_UNSPECIFIED. + /// - "IN_TRANSIT_ENCRYPTION_DISABLED" : In-transit encryption is disabled. + /// - "IN_TRANSIT_ENCRYPTION_INTER_NODE_TRANSPARENT" : Data in-transit is + /// encrypted using inter-node transparent encryption. + core.String? desiredInTransitEncryptionConfig; + /// The desired config of Intra-node visibility. IntraNodeVisibilityConfig? desiredIntraNodeVisibilityConfig; @@ -5872,6 +5896,7 @@ class ClusterUpdate { this.desiredGcfsConfig, this.desiredIdentityServiceConfig, this.desiredImageType, + this.desiredInTransitEncryptionConfig, this.desiredIntraNodeVisibilityConfig, this.desiredK8sBetaApis, this.desiredL4ilbSubsettingConfig, @@ -5993,6 +6018,10 @@ class ClusterUpdate { desiredImageType: json_.containsKey('desiredImageType') ? json_['desiredImageType'] as core.String : null, + desiredInTransitEncryptionConfig: + json_.containsKey('desiredInTransitEncryptionConfig') + ? json_['desiredInTransitEncryptionConfig'] as core.String + : null, desiredIntraNodeVisibilityConfig: json_.containsKey('desiredIntraNodeVisibilityConfig') ? IntraNodeVisibilityConfig.fromJson( @@ -6185,6 +6214,8 @@ class ClusterUpdate { if (desiredIdentityServiceConfig != null) 'desiredIdentityServiceConfig': desiredIdentityServiceConfig!, if (desiredImageType != null) 'desiredImageType': desiredImageType!, + if (desiredInTransitEncryptionConfig != null) + 'desiredInTransitEncryptionConfig': desiredInTransitEncryptionConfig!, if (desiredIntraNodeVisibilityConfig != null) 'desiredIntraNodeVisibilityConfig': desiredIntraNodeVisibilityConfig!, if (desiredK8sBetaApis != null) @@ -8584,6 +8615,15 @@ class NetworkConfig { /// cluster. GatewayAPIConfig? gatewayApiConfig; + /// Specify the details of in-transit encryption. + /// Possible string values are: + /// - "IN_TRANSIT_ENCRYPTION_CONFIG_UNSPECIFIED" : Unspecified, will be + /// inferred as default - IN_TRANSIT_ENCRYPTION_UNSPECIFIED. + /// - "IN_TRANSIT_ENCRYPTION_DISABLED" : In-transit encryption is disabled. + /// - "IN_TRANSIT_ENCRYPTION_INTER_NODE_TRANSPARENT" : Data in-transit is + /// encrypted using inter-node transparent encryption. + core.String? inTransitEncryptionConfig; + /// The relative name of the Google Compute Engine /// network(https://cloud.google.com/compute/docs/networks-and-firewalls#networks) /// to which the cluster is connected. @@ -8633,6 +8673,7 @@ class NetworkConfig { this.enableL4ilbSubsetting, this.enableMultiNetworking, this.gatewayApiConfig, + this.inTransitEncryptionConfig, this.network, this.networkPerformanceConfig, this.privateIpv6GoogleAccess, @@ -8670,6 +8711,10 @@ class NetworkConfig { ? GatewayAPIConfig.fromJson(json_['gatewayApiConfig'] as core.Map) : null, + inTransitEncryptionConfig: + json_.containsKey('inTransitEncryptionConfig') + ? json_['inTransitEncryptionConfig'] as core.String + : null, network: json_.containsKey('network') ? json_['network'] as core.String : null, @@ -8706,6 +8751,8 @@ class NetworkConfig { if (enableMultiNetworking != null) 'enableMultiNetworking': enableMultiNetworking!, if (gatewayApiConfig != null) 'gatewayApiConfig': gatewayApiConfig!, + if (inTransitEncryptionConfig != null) + 'inTransitEncryptionConfig': inTransitEncryptionConfig!, if (network != null) 'network': network!, if (networkPerformanceConfig != null) 'networkPerformanceConfig': networkPerformanceConfig!, @@ -8906,6 +8953,11 @@ class NodeConfig { /// 'pd-balanced') If unspecified, the default disk type is 'pd-standard' core.String? diskType; + /// Reserved for future use. + /// + /// Optional. + core.bool? enableConfidentialStorage; + /// Parameters for the node ephemeral storage using Local SSDs. /// /// If unspecified, ephemeral storage is backed by the boot disk. @@ -9033,6 +9085,9 @@ class NodeConfig { /// Sandbox configuration for this node. SandboxConfig? sandboxConfig; + /// List of secondary boot disks attached to the nodes. + core.List? secondaryBootDisks; + /// The Google Cloud Platform Service Account to be used by the node VMs. /// /// Specify the email address of the Service Account; otherwise, if no Service @@ -9075,6 +9130,7 @@ class NodeConfig { this.confidentialNodes, this.diskSizeGb, this.diskType, + this.enableConfidentialStorage, this.ephemeralStorageLocalSsdConfig, this.fastSocket, this.gcfsConfig, @@ -9096,6 +9152,7 @@ class NodeConfig { this.resourceLabels, this.resourceManagerTags, this.sandboxConfig, + this.secondaryBootDisks, this.serviceAccount, this.shieldedInstanceConfig, this.soleTenantConfig, @@ -9132,6 +9189,10 @@ class NodeConfig { diskType: json_.containsKey('diskType') ? json_['diskType'] as core.String : null, + enableConfidentialStorage: + json_.containsKey('enableConfidentialStorage') + ? json_['enableConfidentialStorage'] as core.bool + : null, ephemeralStorageLocalSsdConfig: json_.containsKey('ephemeralStorageLocalSsdConfig') ? EphemeralStorageLocalSsdConfig.fromJson( @@ -9227,6 +9288,12 @@ class NodeConfig { ? SandboxConfig.fromJson( json_['sandboxConfig'] as core.Map) : null, + secondaryBootDisks: json_.containsKey('secondaryBootDisks') + ? (json_['secondaryBootDisks'] as core.List) + .map((value) => SecondaryBootDisk.fromJson( + value as core.Map)) + .toList() + : null, serviceAccount: json_.containsKey('serviceAccount') ? json_['serviceAccount'] as core.String : null, @@ -9268,6 +9335,8 @@ class NodeConfig { if (confidentialNodes != null) 'confidentialNodes': confidentialNodes!, if (diskSizeGb != null) 'diskSizeGb': diskSizeGb!, if (diskType != null) 'diskType': diskType!, + if (enableConfidentialStorage != null) + 'enableConfidentialStorage': enableConfidentialStorage!, if (ephemeralStorageLocalSsdConfig != null) 'ephemeralStorageLocalSsdConfig': ephemeralStorageLocalSsdConfig!, if (fastSocket != null) 'fastSocket': fastSocket!, @@ -9293,6 +9362,8 @@ class NodeConfig { if (resourceManagerTags != null) 'resourceManagerTags': resourceManagerTags!, if (sandboxConfig != null) 'sandboxConfig': sandboxConfig!, + if (secondaryBootDisks != null) + 'secondaryBootDisks': secondaryBootDisks!, if (serviceAccount != null) 'serviceAccount': serviceAccount!, if (shieldedInstanceConfig != null) 'shieldedInstanceConfig': shieldedInstanceConfig!, @@ -11230,44 +11301,42 @@ class SandboxConfig { }; } -/// SecurityPostureConfig defines the flags needed to enable/disable features -/// for the Security Posture API. -class SecurityPostureConfig { - /// Sets which mode to use for Security Posture features. - /// Possible string values are: - /// - "MODE_UNSPECIFIED" : Default value not specified. - /// - "DISABLED" : Disables Security Posture features on the cluster. - /// - "BASIC" : Applies Security Posture features on the cluster. - core.String? mode; +/// SecondaryBootDisk represents a persistent disk attached to a node with +/// special configurations based on its mode. +class SecondaryBootDisk { + /// Fully-qualified resource ID for an existing disk image. + core.String? diskImage; - /// Sets which mode to use for vulnerability scanning. + /// Disk mode (container image cache, etc.) /// Possible string values are: - /// - "VULNERABILITY_MODE_UNSPECIFIED" : Default value not specified. - /// - "VULNERABILITY_DISABLED" : Disables vulnerability scanning on the - /// cluster. - /// - "VULNERABILITY_BASIC" : Applies basic vulnerability scanning on the - /// cluster. - core.String? vulnerabilityMode; + /// - "MODE_UNSPECIFIED" : MODE_UNSPECIFIED is when mode is not set. + /// - "CONTAINER_IMAGE_CACHE" : CONTAINER_IMAGE_CACHE is for using the + /// secondary boot disk as a container image cache. + core.String? mode; - SecurityPostureConfig({ + SecondaryBootDisk({ + this.diskImage, this.mode, - this.vulnerabilityMode, }); - SecurityPostureConfig.fromJson(core.Map json_) + SecondaryBootDisk.fromJson(core.Map json_) : this( - mode: json_.containsKey('mode') ? json_['mode'] as core.String : null, - vulnerabilityMode: json_.containsKey('vulnerabilityMode') - ? json_['vulnerabilityMode'] as core.String + diskImage: json_.containsKey('diskImage') + ? json_['diskImage'] as core.String : null, + mode: json_.containsKey('mode') ? json_['mode'] as core.String : null, ); core.Map toJson() => { + if (diskImage != null) 'diskImage': diskImage!, if (mode != null) 'mode': mode!, - if (vulnerabilityMode != null) 'vulnerabilityMode': vulnerabilityMode!, }; } +/// SecurityPostureConfig defines the flags needed to enable/disable features +/// for the Security Posture API. +typedef SecurityPostureConfig = $SecurityPostureConfig; + /// Kubernetes Engine service configuration. class ServerConfig { /// List of release channel configurations. @@ -12606,6 +12675,27 @@ class StartIPRotationRequest { }; } +/// Configuration for the Stateful HA add-on. +class StatefulHAConfig { + /// Whether the Stateful HA add-on is enabled for this cluster. + core.bool? enabled; + + StatefulHAConfig({ + this.enabled, + }); + + StatefulHAConfig.fromJson(core.Map json_) + : this( + enabled: json_.containsKey('enabled') + ? json_['enabled'] as core.bool + : null, + ); + + core.Map toJson() => { + if (enabled != null) 'enabled': enabled!, + }; +} + /// The `Status` type defines a logical error model that is suitable for /// different programming environments, including REST APIs and RPC APIs. /// @@ -13112,6 +13202,9 @@ class UpdateNodePoolRequest { ) core.String? projectId; + /// Specifies the configuration of queued provisioning. + QueuedProvisioning? queuedProvisioning; + /// The resource labels for the node pool to use to annotate any related /// Google Compute Engine resources. ResourceLabels? resourceLabels; @@ -13176,6 +13269,7 @@ class UpdateNodePoolRequest { this.nodePoolId, this.nodeVersion, this.projectId, + this.queuedProvisioning, this.resourceLabels, this.resourceManagerTags, this.tags, @@ -13255,6 +13349,10 @@ class UpdateNodePoolRequest { projectId: json_.containsKey('projectId') ? json_['projectId'] as core.String : null, + queuedProvisioning: json_.containsKey('queuedProvisioning') + ? QueuedProvisioning.fromJson(json_['queuedProvisioning'] + as core.Map) + : null, resourceLabels: json_.containsKey('resourceLabels') ? ResourceLabels.fromJson(json_['resourceLabels'] as core.Map) @@ -13307,6 +13405,8 @@ class UpdateNodePoolRequest { if (nodePoolId != null) 'nodePoolId': nodePoolId!, if (nodeVersion != null) 'nodeVersion': nodeVersion!, if (projectId != null) 'projectId': projectId!, + if (queuedProvisioning != null) + 'queuedProvisioning': queuedProvisioning!, if (resourceLabels != null) 'resourceLabels': resourceLabels!, if (resourceManagerTags != null) 'resourceManagerTags': resourceManagerTags!, diff --git a/generated/googleapis/lib/containeranalysis/v1.dart b/generated/googleapis/lib/containeranalysis/v1.dart index d6f1a1756..26a245aa1 100644 --- a/generated/googleapis/lib/containeranalysis/v1.dart +++ b/generated/googleapis/lib/containeranalysis/v1.dart @@ -27,6 +27,7 @@ /// - [ProjectsNotesResource] /// - [ProjectsNotesOccurrencesResource] /// - [ProjectsOccurrencesResource] +/// - [ProjectsResourcesResource] library; import 'dart:async' as async; @@ -72,6 +73,8 @@ class ProjectsResource { ProjectsNotesResource get notes => ProjectsNotesResource(_requester); ProjectsOccurrencesResource get occurrences => ProjectsOccurrencesResource(_requester); + ProjectsResourcesResource get resources => + ProjectsResourcesResource(_requester); ProjectsResource(commons.ApiRequester client) : _requester = client; } @@ -1043,6 +1046,54 @@ class ProjectsOccurrencesResource { } } +class ProjectsResourcesResource { + final commons.ApiRequester _requester; + + ProjectsResourcesResource(commons.ApiRequester client) : _requester = client; + + /// Generates an SBOM for the given resource. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [name] - Required. The name of the resource in the form of + /// `projects/[PROJECT_ID]/resources/[RESOURCE_URL]`. + /// Value must have pattern `^projects/\[^/\]+/resources/.*$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [ExportSBOMResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future exportSBOM( + ExportSBOMRequest request, + core.String name, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':exportSBOM'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return ExportSBOMResponse.fromJson( + response_ as core.Map); + } +} + /// An alias to a repo revision. typedef AliasContext = $AliasContext; @@ -1410,14 +1461,31 @@ class Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -1426,12 +1494,19 @@ class Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; Binding({ @@ -1988,6 +2063,10 @@ class CloudRepoSourceContext { }; } +/// Empty placeholder to denote that this is a Google Cloud Storage export +/// request. +typedef CloudStorageLocation = $Empty; + /// Command describes a step performed as part of the build pipeline. typedef Command = $Command; @@ -2739,6 +2818,56 @@ class Envelope { typedef EnvelopeSignature = $EnvelopeSignature; +/// The request to generate and export SBOM. +/// +/// Target must be specified for the request. +class ExportSBOMRequest { + /// Empty placeholder to denote that this is a Google Cloud Storage export + /// request. + CloudStorageLocation? cloudStorageLocation; + + ExportSBOMRequest({ + this.cloudStorageLocation, + }); + + ExportSBOMRequest.fromJson(core.Map json_) + : this( + cloudStorageLocation: json_.containsKey('cloudStorageLocation') + ? CloudStorageLocation.fromJson(json_['cloudStorageLocation'] + as core.Map) + : null, + ); + + core.Map toJson() => { + if (cloudStorageLocation != null) + 'cloudStorageLocation': cloudStorageLocation!, + }; +} + +/// The response from a call to ExportSBOM. +class ExportSBOMResponse { + /// The name of the discovery occurrence in the form + /// "projects/{project_id}/occurrences/{OCCURRENCE_ID} It can be used to track + /// the progress of the SBOM export. + core.String? discoveryOccurrence; + + ExportSBOMResponse({ + this.discoveryOccurrence, + }); + + ExportSBOMResponse.fromJson(core.Map json_) + : this( + discoveryOccurrence: json_.containsKey('discoveryOccurrence') + ? json_['discoveryOccurrence'] as core.String + : null, + ); + + core.Map toJson() => { + if (discoveryOccurrence != null) + 'discoveryOccurrence': discoveryOccurrence!, + }; +} + /// Represents a textual expression in the Common Expression Language (CEL) /// syntax. /// diff --git a/generated/googleapis/lib/content/v2_1.dart b/generated/googleapis/lib/content/v2_1.dart index 075ebdc86..5a02a4bfe 100644 --- a/generated/googleapis/lib/content/v2_1.dart +++ b/generated/googleapis/lib/content/v2_1.dart @@ -47,7 +47,6 @@ /// - [ProductdeliverytimeResource] /// - [ProductsResource] /// - [ProductstatusesResource] -/// - [ProductstatusesRepricingreportsResource] /// - [PromotionsResource] /// - [PubsubnotificationsettingsResource] /// - [QuotasResource] @@ -55,8 +54,6 @@ /// - [RegionalinventoryResource] /// - [RegionsResource] /// - [ReportsResource] -/// - [RepricingrulesResource] -/// - [RepricingrulesRepricingreportsResource] /// - [ReturnaddressResource] /// - [ReturnpolicyResource] /// - [ReturnpolicyonlineResource] @@ -130,8 +127,6 @@ class ShoppingContentApi { RegionalinventoryResource(_requester); RegionsResource get regions => RegionsResource(_requester); ReportsResource get reports => ReportsResource(_requester); - RepricingrulesResource get repricingrules => - RepricingrulesResource(_requester); ReturnaddressResource get returnaddress => ReturnaddressResource(_requester); ReturnpolicyResource get returnpolicy => ReturnpolicyResource(_requester); ReturnpolicyonlineResource get returnpolicyonline => @@ -3829,7 +3824,7 @@ class MerchantsupportResource { /// [languageCode] - Optional. The \[IETF /// BCP-47\](https://tools.ietf.org/html/bcp47) language code used to localize /// support content. If not set, the result will be in default language - /// ('en-US'). + /// `en-US`. /// /// [timeZone] - Optional. The [IANA](https://www.iana.org/time-zones) /// timezone used to localize times in support content. For example @@ -3891,7 +3886,7 @@ class MerchantsupportResource { /// [languageCode] - Optional. The \[IETF /// BCP-47\](https://tools.ietf.org/html/bcp47) language code used to localize /// support content. If not set, the result will be in default language - /// ('en-US'). + /// `en-US`. /// /// [timeZone] - Optional. The [IANA](https://www.iana.org/time-zones) /// timezone used to localize times in support content. For example @@ -6397,9 +6392,6 @@ class ProductsResource { class ProductstatusesResource { final commons.ApiRequester _requester; - ProductstatusesRepricingreportsResource get repricingreports => - ProductstatusesRepricingreportsResource(_requester); - ProductstatusesResource(commons.ApiRequester client) : _requester = client; /// Gets the statuses of multiple products in a single request. @@ -6537,88 +6529,6 @@ class ProductstatusesResource { } } -class ProductstatusesRepricingreportsResource { - final commons.ApiRequester _requester; - - ProductstatusesRepricingreportsResource(commons.ApiRequester client) - : _requester = client; - - /// Lists the metrics report for a given Repricing product. - /// - /// Request parameters: - /// - /// [merchantId] - Required. Id of the merchant who owns the Repricing rule. - /// - /// [productId] - Required. Id of the Repricing product. Also known as the - /// [REST_ID](https://developers.google.com/shopping-content/reference/rest/v2.1/products#Product.FIELDS.id) - /// - /// [endDate] - Gets Repricing reports on and before this date in the - /// merchant's timezone. You can only retrieve data up to 7 days ago (default) - /// or earlier. Format is YYYY-MM-DD. - /// - /// [pageSize] - Maximum number of days of reports to return. There can be - /// more than one rule report returned per day. For example, if 3 rule types - /// got applied to the same product within a 24-hour period, then a page_size - /// of 1 will return 3 rule reports. The page size defaults to 50 and values - /// above 1000 are coerced to 1000. This service may return fewer days of - /// reports than this value, for example, if the time between your start and - /// end date is less than the page size. - /// - /// [pageToken] - Token (if provided) to retrieve the subsequent page. All - /// other parameters must match the original call that provided the page - /// token. - /// - /// [ruleId] - Id of the Repricing rule. If specified, only gets this rule's - /// reports. - /// - /// [startDate] - Gets Repricing reports on and after this date in the - /// merchant's timezone, up to one year ago. Do not use a start date later - /// than 7 days ago (default). Format is YYYY-MM-DD. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListRepricingProductReportsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list( - core.String merchantId, - core.String productId, { - core.String? endDate, - core.int? pageSize, - core.String? pageToken, - core.String? ruleId, - core.String? startDate, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (endDate != null) 'endDate': [endDate], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if (ruleId != null) 'ruleId': [ruleId], - if (startDate != null) 'startDate': [startDate], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = commons.escapeVariable('$merchantId') + - '/productstatuses/' + - commons.escapeVariable('$productId') + - '/repricingreports'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListRepricingProductReportsResponse.fromJson( - response_ as core.Map); - } -} - class PromotionsResource { final commons.ApiRequester _requester; @@ -7340,7 +7250,7 @@ class ReportsResource { ReportsResource(commons.ApiRequester client) : _requester = client; - /// Retrieves merchant performance mertrics matching the search query and + /// Retrieves merchant performance metrics matching the search query and /// optionally segmented by selected dimensions. /// /// [request] - The metadata request object. @@ -7383,48 +7293,37 @@ class ReportsResource { } } -class RepricingrulesResource { +class ReturnaddressResource { final commons.ApiRequester _requester; - RepricingrulesRepricingreportsResource get repricingreports => - RepricingrulesRepricingreportsResource(_requester); - - RepricingrulesResource(commons.ApiRequester client) : _requester = client; + ReturnaddressResource(commons.ApiRequester client) : _requester = client; - /// Creates a repricing rule for your Merchant Center account. + /// Batches multiple return address related calls in a single request. /// /// [request] - The metadata request object. /// /// Request parameters: /// - /// [merchantId] - Required. The id of the merchant who owns the repricing - /// rule. - /// - /// [ruleId] - Required. The id of the rule to create. - /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [RepricingRule]. + /// Completes with a [ReturnaddressCustomBatchResponse]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future create( - RepricingRule request, - core.String merchantId, { - core.String? ruleId, + async.Future custombatch( + ReturnaddressCustomBatchRequest request, { core.String? $fields, }) async { final body_ = convert.json.encode(request); final queryParams_ = >{ - if (ruleId != null) 'ruleId': [ruleId], if ($fields != null) 'fields': [$fields], }; - final url_ = commons.escapeVariable('$merchantId') + '/repricingrules'; + const url_ = 'returnaddress/batch'; final response_ = await _requester.request( url_, @@ -7432,18 +7331,18 @@ class RepricingrulesResource { body: body_, queryParams: queryParams_, ); - return RepricingRule.fromJson( + return ReturnaddressCustomBatchResponse.fromJson( response_ as core.Map); } - /// Deletes a repricing rule in your Merchant Center account. + /// Deletes a return address for the given Merchant Center account. /// /// Request parameters: /// - /// [merchantId] - Required. The id of the merchant who owns the repricing - /// rule. + /// [merchantId] - The Merchant Center account from which to delete the given + /// return address. /// - /// [ruleId] - Required. The id of the rule to Delete. + /// [returnAddressId] - Return address ID generated by Google. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -7455,7 +7354,7 @@ class RepricingrulesResource { /// this method will complete with the same error. async.Future delete( core.String merchantId, - core.String ruleId, { + core.String returnAddressId, { core.String? $fields, }) async { final queryParams_ = >{ @@ -7463,8 +7362,8 @@ class RepricingrulesResource { }; final url_ = commons.escapeVariable('$merchantId') + - '/repricingrules/' + - commons.escapeVariable('$ruleId'); + '/returnaddress/' + + commons.escapeVariable('$returnAddressId'); await _requester.request( url_, @@ -7474,28 +7373,27 @@ class RepricingrulesResource { ); } - /// Retrieves a repricing rule from your Merchant Center account. + /// Gets a return address of the Merchant Center account. /// /// Request parameters: /// - /// [merchantId] - Required. The id of the merchant who owns the repricing - /// rule. + /// [merchantId] - The Merchant Center account to get a return address for. /// - /// [ruleId] - Required. The id of the rule to retrieve. + /// [returnAddressId] - Return address ID generated by Google. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [RepricingRule]. + /// Completes with a [ReturnAddress]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future get( + async.Future get( core.String merchantId, - core.String ruleId, { + core.String returnAddressId, { core.String? $fields, }) async { final queryParams_ = >{ @@ -7503,109 +7401,39 @@ class RepricingrulesResource { }; final url_ = commons.escapeVariable('$merchantId') + - '/repricingrules/' + - commons.escapeVariable('$ruleId'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return RepricingRule.fromJson( - response_ as core.Map); - } - - /// Lists the repricing rules in your Merchant Center account. - /// - /// Request parameters: - /// - /// [merchantId] - Required. The id of the merchant who owns the repricing - /// rule. - /// - /// [countryCode] - - /// [CLDR country code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml) - /// (for example, "US"), used as a filter on repricing rules. - /// - /// [languageCode] - The two-letter ISO 639-1 language code associated with - /// the repricing rule, used as a filter. - /// - /// [pageSize] - The maximum number of repricing rules to return. The service - /// may return fewer than this value. If unspecified, at most 50 rules will be - /// returned. The maximum value is 1000; values above 1000 will be coerced to - /// 1000. - /// - /// [pageToken] - A page token, received from a previous `ListRepricingRules` - /// call. Provide this to retrieve the subsequent page. When paginating, all - /// other parameters provided to `ListRepricingRules` must match the call that - /// provided the page token. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListRepricingRulesResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list( - core.String merchantId, { - core.String? countryCode, - core.String? languageCode, - core.int? pageSize, - core.String? pageToken, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (countryCode != null) 'countryCode': [countryCode], - if (languageCode != null) 'languageCode': [languageCode], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = commons.escapeVariable('$merchantId') + '/repricingrules'; + '/returnaddress/' + + commons.escapeVariable('$returnAddressId'); final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return ListRepricingRulesResponse.fromJson( + return ReturnAddress.fromJson( response_ as core.Map); } - /// Updates a repricing rule in your Merchant Center account. - /// - /// All mutable fields will be overwritten in each update request. In each - /// update, you must provide all required mutable fields, or an error will be - /// thrown. If you do not provide an optional field in the update request, if - /// that field currently exists, it will be deleted from the rule. + /// Inserts a return address for the Merchant Center account. /// /// [request] - The metadata request object. /// /// Request parameters: /// - /// [merchantId] - Required. The id of the merchant who owns the repricing - /// rule. - /// - /// [ruleId] - Required. The id of the rule to update. + /// [merchantId] - The Merchant Center account to insert a return address for. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [RepricingRule]. + /// Completes with a [ReturnAddress]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future patch( - RepricingRule request, - core.String merchantId, - core.String ruleId, { + async.Future insert( + ReturnAddress request, + core.String merchantId, { core.String? $fields, }) async { final body_ = convert.json.encode(request); @@ -7613,103 +7441,74 @@ class RepricingrulesResource { if ($fields != null) 'fields': [$fields], }; - final url_ = commons.escapeVariable('$merchantId') + - '/repricingrules/' + - commons.escapeVariable('$ruleId'); + final url_ = commons.escapeVariable('$merchantId') + '/returnaddress'; final response_ = await _requester.request( url_, - 'PATCH', + 'POST', body: body_, queryParams: queryParams_, ); - return RepricingRule.fromJson( + return ReturnAddress.fromJson( response_ as core.Map); } -} -class RepricingrulesRepricingreportsResource { - final commons.ApiRequester _requester; - - RepricingrulesRepricingreportsResource(commons.ApiRequester client) - : _requester = client; - - /// *Deprecated*: New merchants can't start using this service. - /// - /// Lists the metrics report for a given Repricing rule. + /// Lists the return addresses of the Merchant Center account. /// /// Request parameters: /// - /// [merchantId] - Required. Id of the merchant who owns the Repricing rule. - /// - /// [ruleId] - Required. Id of the Repricing rule. - /// - /// [endDate] - Gets Repricing reports on and before this date in the - /// merchant's timezone. You can only retrieve data up to 7 days ago (default) - /// or earlier. Format: YYYY-MM-DD. + /// [merchantId] - The Merchant Center account to list return addresses for. /// - /// [pageSize] - Maximum number of daily reports to return. Each report - /// includes data from a single 24-hour period. The page size defaults to 50 - /// and values above 1000 are coerced to 1000. This service may return fewer - /// days than this value, for example, if the time between your start and end - /// date is less than page size. + /// [country] - List only return addresses applicable to the given country of + /// sale. When omitted, all return addresses are listed. /// - /// [pageToken] - Token (if provided) to retrieve the subsequent page. All - /// other parameters must match the original call that provided the page - /// token. + /// [maxResults] - The maximum number of addresses in the response, used for + /// paging. /// - /// [startDate] - Gets Repricing reports on and after this date in the - /// merchant's timezone, up to one year ago. Do not use a start date later - /// than 7 days ago (default). Format: YYYY-MM-DD. + /// [pageToken] - The token returned by the previous request. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [ListRepricingRuleReportsResponse]. + /// Completes with a [ReturnaddressListResponse]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future list( - core.String merchantId, - core.String ruleId, { - core.String? endDate, - core.int? pageSize, + async.Future list( + core.String merchantId, { + core.String? country, + core.int? maxResults, core.String? pageToken, - core.String? startDate, core.String? $fields, }) async { final queryParams_ = >{ - if (endDate != null) 'endDate': [endDate], - if (pageSize != null) 'pageSize': ['${pageSize}'], + if (country != null) 'country': [country], + if (maxResults != null) 'maxResults': ['${maxResults}'], if (pageToken != null) 'pageToken': [pageToken], - if (startDate != null) 'startDate': [startDate], if ($fields != null) 'fields': [$fields], }; - final url_ = commons.escapeVariable('$merchantId') + - '/repricingrules/' + - commons.escapeVariable('$ruleId') + - '/repricingreports'; + final url_ = commons.escapeVariable('$merchantId') + '/returnaddress'; final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return ListRepricingRuleReportsResponse.fromJson( + return ReturnaddressListResponse.fromJson( response_ as core.Map); } } -class ReturnaddressResource { +class ReturnpolicyResource { final commons.ApiRequester _requester; - ReturnaddressResource(commons.ApiRequester client) : _requester = client; + ReturnpolicyResource(commons.ApiRequester client) : _requester = client; - /// Batches multiple return address related calls in a single request. + /// Batches multiple return policy related calls in a single request. /// /// [request] - The metadata request object. /// @@ -7718,15 +7517,15 @@ class ReturnaddressResource { /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [ReturnaddressCustomBatchResponse]. + /// Completes with a [ReturnpolicyCustomBatchResponse]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future custombatch( - ReturnaddressCustomBatchRequest request, { + async.Future custombatch( + ReturnpolicyCustomBatchRequest request, { core.String? $fields, }) async { final body_ = convert.json.encode(request); @@ -7734,7 +7533,7 @@ class ReturnaddressResource { if ($fields != null) 'fields': [$fields], }; - const url_ = 'returnaddress/batch'; + const url_ = 'returnpolicy/batch'; final response_ = await _requester.request( url_, @@ -7742,18 +7541,18 @@ class ReturnaddressResource { body: body_, queryParams: queryParams_, ); - return ReturnaddressCustomBatchResponse.fromJson( + return ReturnpolicyCustomBatchResponse.fromJson( response_ as core.Map); } - /// Deletes a return address for the given Merchant Center account. + /// Deletes a return policy for the given Merchant Center account. /// /// Request parameters: /// /// [merchantId] - The Merchant Center account from which to delete the given - /// return address. + /// return policy. /// - /// [returnAddressId] - Return address ID generated by Google. + /// [returnPolicyId] - Return policy ID generated by Google. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -7765,7 +7564,7 @@ class ReturnaddressResource { /// this method will complete with the same error. async.Future delete( core.String merchantId, - core.String returnAddressId, { + core.String returnPolicyId, { core.String? $fields, }) async { final queryParams_ = >{ @@ -7773,8 +7572,8 @@ class ReturnaddressResource { }; final url_ = commons.escapeVariable('$merchantId') + - '/returnaddress/' + - commons.escapeVariable('$returnAddressId'); + '/returnpolicy/' + + commons.escapeVariable('$returnPolicyId'); await _requester.request( url_, @@ -7784,27 +7583,27 @@ class ReturnaddressResource { ); } - /// Gets a return address of the Merchant Center account. + /// Gets a return policy of the Merchant Center account. /// /// Request parameters: /// - /// [merchantId] - The Merchant Center account to get a return address for. + /// [merchantId] - The Merchant Center account to get a return policy for. /// - /// [returnAddressId] - Return address ID generated by Google. + /// [returnPolicyId] - Return policy ID generated by Google. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [ReturnAddress]. + /// Completes with a [ReturnPolicy]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future get( + async.Future get( core.String merchantId, - core.String returnAddressId, { + core.String returnPolicyId, { core.String? $fields, }) async { final queryParams_ = >{ @@ -7812,38 +7611,38 @@ class ReturnaddressResource { }; final url_ = commons.escapeVariable('$merchantId') + - '/returnaddress/' + - commons.escapeVariable('$returnAddressId'); + '/returnpolicy/' + + commons.escapeVariable('$returnPolicyId'); final response_ = await _requester.request( url_, 'GET', queryParams: queryParams_, ); - return ReturnAddress.fromJson( + return ReturnPolicy.fromJson( response_ as core.Map); } - /// Inserts a return address for the Merchant Center account. + /// Inserts a return policy for the Merchant Center account. /// /// [request] - The metadata request object. /// /// Request parameters: /// - /// [merchantId] - The Merchant Center account to insert a return address for. + /// [merchantId] - The Merchant Center account to insert a return policy for. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [ReturnAddress]. + /// Completes with a [ReturnPolicy]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future insert( - ReturnAddress request, + async.Future insert( + ReturnPolicy request, core.String merchantId, { core.String? $fields, }) async { @@ -7852,7 +7651,7 @@ class ReturnaddressResource { if ($fields != null) 'fields': [$fields], }; - final url_ = commons.escapeVariable('$merchantId') + '/returnaddress'; + final url_ = commons.escapeVariable('$merchantId') + '/returnpolicy'; final response_ = await _requester.request( url_, @@ -7860,237 +7659,27 @@ class ReturnaddressResource { body: body_, queryParams: queryParams_, ); - return ReturnAddress.fromJson( + return ReturnPolicy.fromJson( response_ as core.Map); } - /// Lists the return addresses of the Merchant Center account. + /// Lists the return policies of the Merchant Center account. /// /// Request parameters: /// - /// [merchantId] - The Merchant Center account to list return addresses for. - /// - /// [country] - List only return addresses applicable to the given country of - /// sale. When omitted, all return addresses are listed. - /// - /// [maxResults] - The maximum number of addresses in the response, used for - /// paging. - /// - /// [pageToken] - The token returned by the previous request. + /// [merchantId] - The Merchant Center account to list return policies for. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [ReturnaddressListResponse]. + /// Completes with a [ReturnpolicyListResponse]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future list( - core.String merchantId, { - core.String? country, - core.int? maxResults, - core.String? pageToken, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (country != null) 'country': [country], - if (maxResults != null) 'maxResults': ['${maxResults}'], - if (pageToken != null) 'pageToken': [pageToken], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = commons.escapeVariable('$merchantId') + '/returnaddress'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ReturnaddressListResponse.fromJson( - response_ as core.Map); - } -} - -class ReturnpolicyResource { - final commons.ApiRequester _requester; - - ReturnpolicyResource(commons.ApiRequester client) : _requester = client; - - /// Batches multiple return policy related calls in a single request. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ReturnpolicyCustomBatchResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future custombatch( - ReturnpolicyCustomBatchRequest request, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - const url_ = 'returnpolicy/batch'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return ReturnpolicyCustomBatchResponse.fromJson( - response_ as core.Map); - } - - /// Deletes a return policy for the given Merchant Center account. - /// - /// Request parameters: - /// - /// [merchantId] - The Merchant Center account from which to delete the given - /// return policy. - /// - /// [returnPolicyId] - Return policy ID generated by Google. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future delete( - core.String merchantId, - core.String returnPolicyId, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = commons.escapeVariable('$merchantId') + - '/returnpolicy/' + - commons.escapeVariable('$returnPolicyId'); - - await _requester.request( - url_, - 'DELETE', - queryParams: queryParams_, - downloadOptions: null, - ); - } - - /// Gets a return policy of the Merchant Center account. - /// - /// Request parameters: - /// - /// [merchantId] - The Merchant Center account to get a return policy for. - /// - /// [returnPolicyId] - Return policy ID generated by Google. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ReturnPolicy]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String merchantId, - core.String returnPolicyId, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = commons.escapeVariable('$merchantId') + - '/returnpolicy/' + - commons.escapeVariable('$returnPolicyId'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ReturnPolicy.fromJson( - response_ as core.Map); - } - - /// Inserts a return policy for the Merchant Center account. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [merchantId] - The Merchant Center account to insert a return policy for. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ReturnPolicy]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future insert( - ReturnPolicy request, - core.String merchantId, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = commons.escapeVariable('$merchantId') + '/returnpolicy'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return ReturnPolicy.fromJson( - response_ as core.Map); - } - - /// Lists the return policies of the Merchant Center account. - /// - /// Request parameters: - /// - /// [merchantId] - The Merchant Center account to list return policies for. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ReturnpolicyListResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list( + async.Future list( core.String merchantId, { core.String? $fields, }) async { @@ -10891,7 +10480,7 @@ class AccountsCustomBatchRequestEntryLinkRequest { /// Type of the link between the two accounts. /// /// Acceptable values are: - "`channelPartner`" - "`eCommercePlatform`" - - /// "`paymentServiceProvider`" + /// "`paymentServiceProvider`" - "`localProductManager`" core.String? linkType; /// The ID of the linked account. @@ -10901,7 +10490,7 @@ class AccountsCustomBatchRequestEntryLinkRequest { /// /// Acceptable values are: - "`shoppingAdsProductManagement`" - /// "`shoppingActionsProductManagement`" - "`shoppingActionsOrderManagement`" - /// - "`paymentProcessing`" + /// - "`paymentProcessing`" - "`localProductManagement`" core.List? services; AccountsCustomBatchRequestEntryLinkRequest({ @@ -11897,7 +11486,7 @@ class Amount { class AttributionSettings { /// Lookback windows (in days) used for attribution in this source. /// - /// Supported values are 7, 30, 60, 90. + /// Supported values are 7, 30, 40. /// /// Required. core.int? attributionLookbackWindowInDays; @@ -12698,6 +12287,8 @@ class CheckoutSettings { /// - "INACTIVE" : Merchant has not enrolled into the feature. /// - "ENROLLED" : Merchant has enrolled into the feature by providing either /// an account level URL or checkout URLs as part of their feed. + /// - "OPT_OUT" : Merchant has previously enrolled but opted out of the + /// feature. core.String? effectiveEnrollmentState; /// The effective value of review state for a given merchant ID. @@ -12734,6 +12325,8 @@ class CheckoutSettings { /// - "INACTIVE" : Merchant has not enrolled into the feature. /// - "ENROLLED" : Merchant has enrolled into the feature by providing either /// an account level URL or checkout URLs as part of their feed. + /// - "OPT_OUT" : Merchant has previously enrolled but opted out of the + /// feature. core.String? enrollmentState; /// The ID of the account. @@ -15296,6 +14889,8 @@ class ExternalAction { /// account. /// - "LEGAL_APPEAL_IN_HELP_CENTER" : Redirect to the form in Help Center /// where the merchant can request a legal appeal for the issue. + /// - "VERIFY_IDENTITY_IN_MERCHANT_CENTER" : Redirect to Merchant Center where + /// the merchant can perform identity verification. core.String? type; /// URL to external system, for example Merchant Center, where the merchant @@ -15906,54 +15501,6 @@ class HolidaysHoliday { }; } -/// Map of inapplicability details. -class InapplicabilityDetails { - /// Count of this inapplicable reason code. - core.String? inapplicableCount; - - /// Reason code this rule was not applicable. - /// Possible string values are: - /// - "INAPPLICABLE_REASON_UNSPECIFIED" : Default value. Should not be used. - /// - "CANNOT_BEAT_BUYBOX_WINNER" : The rule set for this product cannot beat - /// the buybox winner. - /// - "ALREADY_WINNING_BUYBOX" : This product can already win the buybox - /// without rule. - /// - "TRIUMPHED_OVER_BY_SAME_TYPE_RULE" : Another rule of the same type takes - /// precedence over this one. - /// - "TRIUMPHED_OVER_BY_OTHER_RULE_ON_OFFER" : Another rule of a different - /// type takes precedence over this one. - /// - "RESTRICTIONS_NOT_MET" : The rule restrictions are not met. For example, - /// this may be the case if the calculated rule price is lower than floor - /// price in the restriction. - /// - "UNCATEGORIZED" : The reason is not categorized to any known reason. - /// - "INVALID_AUTO_PRICE_MIN" : The auto_pricing_min_price is invalid. For - /// example, it is missing or \< 0. - /// - "INVALID_FLOOR_CONFIG" : The floor defined in the rule is invalid. For - /// example, it has the wrong sign which results in a floor \< 0. - core.String? inapplicableReason; - - InapplicabilityDetails({ - this.inapplicableCount, - this.inapplicableReason, - }); - - InapplicabilityDetails.fromJson(core.Map json_) - : this( - inapplicableCount: json_.containsKey('inapplicableCount') - ? json_['inapplicableCount'] as core.String - : null, - inapplicableReason: json_.containsKey('inapplicableReason') - ? json_['inapplicableReason'] as core.String - : null, - ); - - core.Map toJson() => { - if (inapplicableCount != null) 'inapplicableCount': inapplicableCount!, - if (inapplicableReason != null) - 'inapplicableReason': inapplicableReason!, - }; -} - /// Request message for the `InsertCheckoutSettings` method. class InsertCheckoutSettingsRequest { /// The `UrlSettings` for the request. @@ -17232,153 +16779,49 @@ class ListRegionsResponse { }; } -/// Response message for the ListRepricingProductReports method. -class ListRepricingProductReportsResponse { - /// A token for retrieving the next page. - /// - /// Its absence means there is no subsequent page. - core.String? nextPageToken; - - /// Periodic reports for the given Repricing product. - core.List? repricingProductReports; +/// Response message for the `ListReturnPolicyOnline` method. +class ListReturnPolicyOnlineResponse { + /// The retrieved return policies. + core.List? returnPolicies; - ListRepricingProductReportsResponse({ - this.nextPageToken, - this.repricingProductReports, + ListReturnPolicyOnlineResponse({ + this.returnPolicies, }); - ListRepricingProductReportsResponse.fromJson(core.Map json_) + ListReturnPolicyOnlineResponse.fromJson(core.Map json_) : this( - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - repricingProductReports: json_.containsKey('repricingProductReports') - ? (json_['repricingProductReports'] as core.List) - .map((value) => RepricingProductReport.fromJson( + returnPolicies: json_.containsKey('returnPolicies') + ? (json_['returnPolicies'] as core.List) + .map((value) => ReturnPolicyOnline.fromJson( value as core.Map)) .toList() : null, ); core.Map toJson() => { - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - if (repricingProductReports != null) - 'repricingProductReports': repricingProductReports!, + if (returnPolicies != null) 'returnPolicies': returnPolicies!, }; } -/// Response message for the ListRepricingRuleReports method. -class ListRepricingRuleReportsResponse { - /// A token for retrieving the next page. +/// Local inventory resource. +/// +/// For accepted attribute values, see the local product inventory feed +/// specification. +class LocalInventory { + /// The availability of the product. /// - /// Its absence means there is no subsequent page. - core.String? nextPageToken; + /// For accepted attribute values, see the local product inventory feed + /// specification. + core.String? availability; - /// Daily reports for the given Repricing rule. - core.List? repricingRuleReports; + /// A list of custom (merchant-provided) attributes. + /// + /// Can also be used to submit any attribute of the feed specification in its + /// generic form, for example, `{ "name": "size type", "value": "regular" }`. + core.List? customAttributes; - ListRepricingRuleReportsResponse({ - this.nextPageToken, - this.repricingRuleReports, - }); - - ListRepricingRuleReportsResponse.fromJson(core.Map json_) - : this( - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - repricingRuleReports: json_.containsKey('repricingRuleReports') - ? (json_['repricingRuleReports'] as core.List) - .map((value) => RepricingRuleReport.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - if (repricingRuleReports != null) - 'repricingRuleReports': repricingRuleReports!, - }; -} - -/// Response message for the `ListRepricingRules` method. -class ListRepricingRulesResponse { - /// A token, which can be sent as `page_token` to retrieve the next page. - /// - /// If this field is omitted, there are no subsequent pages. - core.String? nextPageToken; - - /// The rules from the specified merchant. - core.List? repricingRules; - - ListRepricingRulesResponse({ - this.nextPageToken, - this.repricingRules, - }); - - ListRepricingRulesResponse.fromJson(core.Map json_) - : this( - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - repricingRules: json_.containsKey('repricingRules') - ? (json_['repricingRules'] as core.List) - .map((value) => RepricingRule.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - if (repricingRules != null) 'repricingRules': repricingRules!, - }; -} - -/// Response message for the `ListReturnPolicyOnline` method. -class ListReturnPolicyOnlineResponse { - /// The retrieved return policies. - core.List? returnPolicies; - - ListReturnPolicyOnlineResponse({ - this.returnPolicies, - }); - - ListReturnPolicyOnlineResponse.fromJson(core.Map json_) - : this( - returnPolicies: json_.containsKey('returnPolicies') - ? (json_['returnPolicies'] as core.List) - .map((value) => ReturnPolicyOnline.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (returnPolicies != null) 'returnPolicies': returnPolicies!, - }; -} - -/// Local inventory resource. -/// -/// For accepted attribute values, see the local product inventory feed -/// specification. -class LocalInventory { - /// The availability of the product. - /// - /// For accepted attribute values, see the local product inventory feed - /// specification. - core.String? availability; - - /// A list of custom (merchant-provided) attributes. - /// - /// Can also be used to submit any attribute of the feed specification in its - /// generic form, for example, `{ "name": "size type", "value": "regular" }`. - core.List? customAttributes; - - /// The in-store product location. - core.String? instoreProductLocation; + /// The in-store product location. + core.String? instoreProductLocation; /// Identifies what kind of resource this is. /// @@ -24491,6 +23934,42 @@ class PosStore { /// Value: the fixed string "`content#posStore`" core.String? kind; + /// The matching status of POS store and Google Business Profile store. + /// + /// Possible values are: - "`matched`": The POS store is successfully matched + /// with the Google Business Profile store. - "`failed`": The POS store is not + /// matched with the Google Business Profile store. See matching_status_hint + /// for further details. Note that there is up to 48 hours propagation delay + /// for changes in Merchant Center (e.g. creation of new account, accounts + /// linking) and Google Business Profile (e.g. store address update) which may + /// affect the matching status. In such cases, after a delay call + /// [pos.list](https://developers.google.com/shopping-content/reference/rest/v2.1/pos/list) + /// to retrieve the updated matching status. + /// + /// Output only. + core.String? matchingStatus; + + /// The hint of why the matching has failed. + /// + /// This is only set when matching_status=failed. Possible values are: - + /// "`linked-store-not-found`": There aren't any Google Business Profile + /// stores available for matching. Connect your Merchant Center account with + /// the Google Business Profile account. Or add a new Google Business Profile + /// store corresponding to the POS store. - "`store-match-not-found`": The + /// provided POS store couldn't be matched to any of the connected Google + /// Business Profile stores. Merchant Center account is connected correctly + /// and stores are available on Google Business Profile, but POS store + /// location address does not match with Google Business Profile stores' + /// addresses. Update POS store address or Google Business Profile store + /// address to match correctly. - "`store-match-unverified`": The provided POS + /// store couldn't be matched to any of the connected Google Business Profile + /// stores, as the matched Google Business Profile store is unverified. Go + /// through the Google Business Profile verification process to match + /// correctly. + /// + /// Output only. + core.String? matchingStatusHint; + /// The store phone number. core.String? phoneNumber; @@ -24516,6 +23995,8 @@ class PosStore { PosStore({ this.gcidCategory, this.kind, + this.matchingStatus, + this.matchingStatusHint, this.phoneNumber, this.placeId, this.storeAddress, @@ -24532,6 +24013,12 @@ class PosStore { .toList() : null, kind: json_.containsKey('kind') ? json_['kind'] as core.String : null, + matchingStatus: json_.containsKey('matchingStatus') + ? json_['matchingStatus'] as core.String + : null, + matchingStatusHint: json_.containsKey('matchingStatusHint') + ? json_['matchingStatusHint'] as core.String + : null, phoneNumber: json_.containsKey('phoneNumber') ? json_['phoneNumber'] as core.String : null, @@ -24555,6 +24042,9 @@ class PosStore { core.Map toJson() => { if (gcidCategory != null) 'gcidCategory': gcidCategory!, if (kind != null) 'kind': kind!, + if (matchingStatus != null) 'matchingStatus': matchingStatus!, + if (matchingStatusHint != null) + 'matchingStatusHint': matchingStatusHint!, if (phoneNumber != null) 'phoneNumber': phoneNumber!, if (placeId != null) 'placeId': placeId!, if (storeAddress != null) 'storeAddress': storeAddress!, @@ -24648,10 +24138,10 @@ class PostalCodeRange { }; } -typedef Price = $Shared06; +typedef Price = $Shared07; /// The price represented as a number and currency. -typedef PriceAmount = $Shared06; +typedef PriceAmount = $Shared07; /// Price competitiveness fields requested by the merchant in the query. /// @@ -27984,7 +27474,7 @@ class Promotion { /// channel:contentLanguage:targetCountry:promotionId The `channel` field has /// a value of `"online"`, `"in_store"`, or `"online_in_store"`. /// - /// Required. Output only. + /// Output only. core.String? id; /// Product filter by item group ID for the promotion. @@ -29718,810 +29208,6 @@ class ReportRow { }; } -/// Resource that represents a daily Repricing product report. -/// -/// Each report contains stats for a single type of Repricing rule for a single -/// product on a given day. If there are multiple rules of the same type for the -/// product on that day, the report lists all the rules by rule ids, combines -/// the stats, and paginates the results by date. To retrieve the stats of a -/// particular rule, provide the rule_id in the request. -class RepricingProductReport { - /// Total count of Repricer applications. - /// - /// This value captures how many times the rule of this type was applied to - /// this product during this reporting period. - core.String? applicationCount; - - /// Stats specific to buybox winning rules for product report (deprecated). - @core.Deprecated( - 'Not supported. Member documentation may have more information.', - ) - RepricingProductReportBuyboxWinningProductStats? buyboxWinningProductStats; - - /// Date of the stats in this report. - /// - /// The report starts and ends according to the merchant's timezone. - Date? date; - - /// Maximum displayed price after repriced during this reporting period. - PriceAmount? highWatermark; - - /// List of all reasons the rule did not apply to the product during the - /// specified reporting period. - core.List? inapplicabilityDetails; - - /// Minimum displayed price after repriced during this reporting period. - PriceAmount? lowWatermark; - - /// Total unit count of impacted products ordered while the rule was active on - /// the date of the report. - /// - /// This count includes all orders that were started while the rule was - /// active, even if the rule was no longer active when the order was - /// completed. - core.int? orderItemCount; - - /// Ids of the Repricing rule for this report. - core.List? ruleIds; - - /// Total GMV generated by impacted products while the rule was active on the - /// date of the report. - /// - /// This value includes all orders that were started while the rule was - /// active, even if the rule was no longer active when the order was - /// completed. - PriceAmount? totalGmv; - - /// Type of the rule. - /// Possible string values are: - /// - "REPRICING_RULE_TYPE_UNSPECIFIED" : Unused. - /// - "TYPE_STATS_BASED" : Statistical measurement based rules among Google SA - /// merchants. If this rule is chosen, repricer will adjust the offer price - /// based on statistical metrics (currently only min is available) among other - /// merchants who sell the same product. Details need to be provdided in the - /// RuleDefinition. - /// - "TYPE_COGS_BASED" : Cost of goods sale based rule. Repricer will adjust - /// the offer price based on the offer's sale cost which is provided by the - /// merchant. - /// - "TYPE_SALES_VOLUME_BASED" : Sales volume based rule. Repricer will - /// adjust the offer price based on the offer's sales volume in the past - /// period of time defined within the rule. - /// - "TYPE_COMPETITIVE_PRICE" : Competitive price rule. Repricer will adjust - /// the offer price based on the min price from a list of unnamed big - /// competitors. - core.String? type; - - RepricingProductReport({ - this.applicationCount, - this.buyboxWinningProductStats, - this.date, - this.highWatermark, - this.inapplicabilityDetails, - this.lowWatermark, - this.orderItemCount, - this.ruleIds, - this.totalGmv, - this.type, - }); - - RepricingProductReport.fromJson(core.Map json_) - : this( - applicationCount: json_.containsKey('applicationCount') - ? json_['applicationCount'] as core.String - : null, - buyboxWinningProductStats: - json_.containsKey('buyboxWinningProductStats') - ? RepricingProductReportBuyboxWinningProductStats.fromJson( - json_['buyboxWinningProductStats'] - as core.Map) - : null, - date: json_.containsKey('date') - ? Date.fromJson( - json_['date'] as core.Map) - : null, - highWatermark: json_.containsKey('highWatermark') - ? PriceAmount.fromJson( - json_['highWatermark'] as core.Map) - : null, - inapplicabilityDetails: json_.containsKey('inapplicabilityDetails') - ? (json_['inapplicabilityDetails'] as core.List) - .map((value) => InapplicabilityDetails.fromJson( - value as core.Map)) - .toList() - : null, - lowWatermark: json_.containsKey('lowWatermark') - ? PriceAmount.fromJson( - json_['lowWatermark'] as core.Map) - : null, - orderItemCount: json_.containsKey('orderItemCount') - ? json_['orderItemCount'] as core.int - : null, - ruleIds: json_.containsKey('ruleIds') - ? (json_['ruleIds'] as core.List) - .map((value) => value as core.String) - .toList() - : null, - totalGmv: json_.containsKey('totalGmv') - ? PriceAmount.fromJson( - json_['totalGmv'] as core.Map) - : null, - type: json_.containsKey('type') ? json_['type'] as core.String : null, - ); - - core.Map toJson() => { - if (applicationCount != null) 'applicationCount': applicationCount!, - if (buyboxWinningProductStats != null) - 'buyboxWinningProductStats': buyboxWinningProductStats!, - if (date != null) 'date': date!, - if (highWatermark != null) 'highWatermark': highWatermark!, - if (inapplicabilityDetails != null) - 'inapplicabilityDetails': inapplicabilityDetails!, - if (lowWatermark != null) 'lowWatermark': lowWatermark!, - if (orderItemCount != null) 'orderItemCount': orderItemCount!, - if (ruleIds != null) 'ruleIds': ruleIds!, - if (totalGmv != null) 'totalGmv': totalGmv!, - if (type != null) 'type': type!, - }; -} - -/// Stats specific to buybox winning rules for product report. -class RepricingProductReportBuyboxWinningProductStats { - /// Number of times this product won the buybox with these rules during this - /// time period. - core.int? buyboxWinsCount; - - RepricingProductReportBuyboxWinningProductStats({ - this.buyboxWinsCount, - }); - - RepricingProductReportBuyboxWinningProductStats.fromJson(core.Map json_) - : this( - buyboxWinsCount: json_.containsKey('buyboxWinsCount') - ? json_['buyboxWinsCount'] as core.int - : null, - ); - - core.Map toJson() => { - if (buyboxWinsCount != null) 'buyboxWinsCount': buyboxWinsCount!, - }; -} - -/// *Deprecated*: New merchants can't start using this resource. -/// -/// Represents a repricing rule. A repricing rule is used by shopping serving to -/// adjust transactable offer prices if conditions are met. -class RepricingRule { - /// The rule definition for TYPE_COGS_BASED. - /// - /// Required when the rule type is TYPE_COGS_BASED. - RepricingRuleCostOfGoodsSaleRule? cogsBasedRule; - - /// [CLDR country code](http://www.unicode.org/repos/cldr/tags/latest/common/main/en.xml) - /// (for example, "US"). - /// - /// Required. Immutable. - core.String? countryCode; - - /// Time period when the rule should take effect. - /// - /// Required. - RepricingRuleEffectiveTime? effectiveTimePeriod; - - /// Match criteria for the eligible offers. - /// - /// Required. - RepricingRuleEligibleOfferMatcher? eligibleOfferMatcher; - - /// The two-letter ISO 639-1 language code associated with the repricing rule. - /// - /// Required. Immutable. - core.String? languageCode; - - /// Merchant that owns the repricing rule. - /// - /// Output only. Immutable. - core.String? merchantId; - - /// Represents whether a rule is paused. - /// - /// A paused rule will behave like a non-paused rule within CRUD operations, - /// with the major difference that a paused rule will not be evaluated and - /// will have no effect on offers. - core.bool? paused; - - /// Restriction of the rule appliance. - /// - /// Required. - RepricingRuleRestriction? restriction; - - /// The ID to uniquely identify each repricing rule. - /// - /// Output only. Immutable. - core.String? ruleId; - - /// The rule definition for TYPE_STATS_BASED. - /// - /// Required when the rule type is TYPE_STATS_BASED. - RepricingRuleStatsBasedRule? statsBasedRule; - - /// The title for the rule. - core.String? title; - - /// The type of the rule. - /// - /// Required. Immutable. - /// Possible string values are: - /// - "REPRICING_RULE_TYPE_UNSPECIFIED" : Unused. - /// - "TYPE_STATS_BASED" : Statistical measurement based rules among Google SA - /// merchants. If this rule is chosen, repricer will adjust the offer price - /// based on statistical metrics (currently only min is available) among other - /// merchants who sell the same product. Details need to be provdided in the - /// RuleDefinition. - /// - "TYPE_COGS_BASED" : Cost of goods sale based rule. Repricer will adjust - /// the offer price based on the offer's sale cost which is provided by the - /// merchant. - /// - "TYPE_SALES_VOLUME_BASED" : Sales volume based rule. Repricer will - /// adjust the offer price based on the offer's sales volume in the past - /// period of time defined within the rule. - /// - "TYPE_COMPETITIVE_PRICE" : Competitive price rule. Repricer will adjust - /// the offer price based on the min price from a list of unnamed big - /// competitors. - core.String? type; - - RepricingRule({ - this.cogsBasedRule, - this.countryCode, - this.effectiveTimePeriod, - this.eligibleOfferMatcher, - this.languageCode, - this.merchantId, - this.paused, - this.restriction, - this.ruleId, - this.statsBasedRule, - this.title, - this.type, - }); - - RepricingRule.fromJson(core.Map json_) - : this( - cogsBasedRule: json_.containsKey('cogsBasedRule') - ? RepricingRuleCostOfGoodsSaleRule.fromJson( - json_['cogsBasedRule'] as core.Map) - : null, - countryCode: json_.containsKey('countryCode') - ? json_['countryCode'] as core.String - : null, - effectiveTimePeriod: json_.containsKey('effectiveTimePeriod') - ? RepricingRuleEffectiveTime.fromJson(json_['effectiveTimePeriod'] - as core.Map) - : null, - eligibleOfferMatcher: json_.containsKey('eligibleOfferMatcher') - ? RepricingRuleEligibleOfferMatcher.fromJson( - json_['eligibleOfferMatcher'] - as core.Map) - : null, - languageCode: json_.containsKey('languageCode') - ? json_['languageCode'] as core.String - : null, - merchantId: json_.containsKey('merchantId') - ? json_['merchantId'] as core.String - : null, - paused: - json_.containsKey('paused') ? json_['paused'] as core.bool : null, - restriction: json_.containsKey('restriction') - ? RepricingRuleRestriction.fromJson( - json_['restriction'] as core.Map) - : null, - ruleId: json_.containsKey('ruleId') - ? json_['ruleId'] as core.String - : null, - statsBasedRule: json_.containsKey('statsBasedRule') - ? RepricingRuleStatsBasedRule.fromJson(json_['statsBasedRule'] - as core.Map) - : null, - title: - json_.containsKey('title') ? json_['title'] as core.String : null, - type: json_.containsKey('type') ? json_['type'] as core.String : null, - ); - - core.Map toJson() => { - if (cogsBasedRule != null) 'cogsBasedRule': cogsBasedRule!, - if (countryCode != null) 'countryCode': countryCode!, - if (effectiveTimePeriod != null) - 'effectiveTimePeriod': effectiveTimePeriod!, - if (eligibleOfferMatcher != null) - 'eligibleOfferMatcher': eligibleOfferMatcher!, - if (languageCode != null) 'languageCode': languageCode!, - if (merchantId != null) 'merchantId': merchantId!, - if (paused != null) 'paused': paused!, - if (restriction != null) 'restriction': restriction!, - if (ruleId != null) 'ruleId': ruleId!, - if (statsBasedRule != null) 'statsBasedRule': statsBasedRule!, - if (title != null) 'title': title!, - if (type != null) 'type': type!, - }; -} - -/// A repricing rule that changes the sale price based on cost of goods sale. -class RepricingRuleCostOfGoodsSaleRule { - /// The percent change against the COGS. - /// - /// Ex: 20 would mean to set the adjusted price 1.2X of the COGS data. - core.int? percentageDelta; - - /// The price delta against the COGS. - /// - /// For example, 2 means $2 more of the COGS. - core.String? priceDelta; - - RepricingRuleCostOfGoodsSaleRule({ - this.percentageDelta, - this.priceDelta, - }); - - RepricingRuleCostOfGoodsSaleRule.fromJson(core.Map json_) - : this( - percentageDelta: json_.containsKey('percentageDelta') - ? json_['percentageDelta'] as core.int - : null, - priceDelta: json_.containsKey('priceDelta') - ? json_['priceDelta'] as core.String - : null, - ); - - core.Map toJson() => { - if (percentageDelta != null) 'percentageDelta': percentageDelta!, - if (priceDelta != null) 'priceDelta': priceDelta!, - }; -} - -class RepricingRuleEffectiveTime { - /// A list of fixed time periods combined with OR. - /// - /// The maximum number of entries is limited to 5. - core.List? fixedTimePeriods; - - RepricingRuleEffectiveTime({ - this.fixedTimePeriods, - }); - - RepricingRuleEffectiveTime.fromJson(core.Map json_) - : this( - fixedTimePeriods: json_.containsKey('fixedTimePeriods') - ? (json_['fixedTimePeriods'] as core.List) - .map((value) => - RepricingRuleEffectiveTimeFixedTimePeriod.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (fixedTimePeriods != null) 'fixedTimePeriods': fixedTimePeriods!, - }; -} - -/// Definition of a fixed time period. -class RepricingRuleEffectiveTimeFixedTimePeriod { - /// The end time (exclusive) of the period. - /// - /// It can only be hour granularity. - core.String? endTime; - - /// The start time (inclusive) of the period. - /// - /// It can only be hour granularity. - core.String? startTime; - - RepricingRuleEffectiveTimeFixedTimePeriod({ - this.endTime, - this.startTime, - }); - - RepricingRuleEffectiveTimeFixedTimePeriod.fromJson(core.Map json_) - : this( - endTime: json_.containsKey('endTime') - ? json_['endTime'] as core.String - : null, - startTime: json_.containsKey('startTime') - ? json_['startTime'] as core.String - : null, - ); - - core.Map toJson() => { - if (endTime != null) 'endTime': endTime!, - if (startTime != null) 'startTime': startTime!, - }; -} - -/// Matcher that specifies eligible offers. -/// -/// When the USE_FEED_ATTRIBUTE option is selected, only the repricing_rule_id -/// attribute on the product feed is used to specify offer-rule mapping. When -/// the CUSTOM_FILTER option is selected, only the *_matcher fields are used to -/// filter the offers for offer-rule mapping. If the CUSTOM_FILTER option is -/// selected, an offer needs to satisfy each custom filter matcher to be -/// eligible for a rule. Size limit: the sum of the number of entries in all the -/// matchers should not exceed 20. For example, there can be 15 product ids and -/// 5 brands, but not 10 product ids and 11 brands. -class RepricingRuleEligibleOfferMatcher { - /// Filter by the brand. - RepricingRuleEligibleOfferMatcherStringMatcher? brandMatcher; - - /// Filter by the item group id. - RepricingRuleEligibleOfferMatcherStringMatcher? itemGroupIdMatcher; - - /// Determines whether to use the custom matchers or the product feed - /// attribute "repricing_rule_id" to specify offer-rule mapping. - /// Possible string values are: - /// - "MATCHER_OPTION_UNSPECIFIED" : Unused. - /// - "MATCHER_OPTION_CUSTOM_FILTER" : Use custom filters. - /// - "MATCHER_OPTION_USE_FEED_ATTRIBUTE" : Use repricing_rule_id feed - /// attribute on the product resource to specify offer-rule mapping. - /// - "MATCHER_OPTION_ALL_PRODUCTS" : Matching all products. - core.String? matcherOption; - - /// Filter by the offer id. - RepricingRuleEligibleOfferMatcherStringMatcher? offerIdMatcher; - - /// When true, the rule won't be applied to offers with active promotions. - core.bool? skipWhenOnPromotion; - - RepricingRuleEligibleOfferMatcher({ - this.brandMatcher, - this.itemGroupIdMatcher, - this.matcherOption, - this.offerIdMatcher, - this.skipWhenOnPromotion, - }); - - RepricingRuleEligibleOfferMatcher.fromJson(core.Map json_) - : this( - brandMatcher: json_.containsKey('brandMatcher') - ? RepricingRuleEligibleOfferMatcherStringMatcher.fromJson( - json_['brandMatcher'] as core.Map) - : null, - itemGroupIdMatcher: json_.containsKey('itemGroupIdMatcher') - ? RepricingRuleEligibleOfferMatcherStringMatcher.fromJson( - json_['itemGroupIdMatcher'] - as core.Map) - : null, - matcherOption: json_.containsKey('matcherOption') - ? json_['matcherOption'] as core.String - : null, - offerIdMatcher: json_.containsKey('offerIdMatcher') - ? RepricingRuleEligibleOfferMatcherStringMatcher.fromJson( - json_['offerIdMatcher'] - as core.Map) - : null, - skipWhenOnPromotion: json_.containsKey('skipWhenOnPromotion') - ? json_['skipWhenOnPromotion'] as core.bool - : null, - ); - - core.Map toJson() => { - if (brandMatcher != null) 'brandMatcher': brandMatcher!, - if (itemGroupIdMatcher != null) - 'itemGroupIdMatcher': itemGroupIdMatcher!, - if (matcherOption != null) 'matcherOption': matcherOption!, - if (offerIdMatcher != null) 'offerIdMatcher': offerIdMatcher!, - if (skipWhenOnPromotion != null) - 'skipWhenOnPromotion': skipWhenOnPromotion!, - }; -} - -/// Matcher by string attributes. -class RepricingRuleEligibleOfferMatcherStringMatcher { - /// String attributes, as long as such attribute of an offer is one of the - /// string attribute values, the offer is considered as passing the matcher. - /// - /// The string matcher checks an offer for inclusivity in the string - /// attributes, not equality. Only literal string matching is supported, no - /// regular expressions. - core.List? strAttributes; - - RepricingRuleEligibleOfferMatcherStringMatcher({ - this.strAttributes, - }); - - RepricingRuleEligibleOfferMatcherStringMatcher.fromJson(core.Map json_) - : this( - strAttributes: json_.containsKey('strAttributes') - ? (json_['strAttributes'] as core.List) - .map((value) => value as core.String) - .toList() - : null, - ); - - core.Map toJson() => { - if (strAttributes != null) 'strAttributes': strAttributes!, - }; -} - -/// Resource that represents a daily Repricing rule report. -/// -/// Next ID: 11 -class RepricingRuleReport { - /// Stats specific to buybox winning rules for rule report (deprecated). - @core.Deprecated( - 'Not supported. Member documentation may have more information.', - ) - RepricingRuleReportBuyboxWinningRuleStats? buyboxWinningRuleStats; - - /// Date of the stats in this report. - /// - /// The report starts and ends according to the merchant's timezone. - Date? date; - - /// List of product ids that are impacted by this rule during this reporting - /// period. - /// - /// Out of stock products and products not searched for by customers are - /// examples of non-impacted products. - core.List? impactedProducts; - - /// List of all reasons the rule did not apply to the inapplicable products - /// during the specified reporting period. - core.List? inapplicabilityDetails; - - /// List of product ids that are inapplicable to this rule during this - /// reporting period. - /// - /// To get the inapplicable reason for a specific product, see - /// RepricingProductReport. - core.List? inapplicableProducts; - - /// Total unit count of impacted products ordered while the rule was active on - /// the date of the report. - /// - /// This count includes all orders that were started while the rule was - /// active, even if the rule was no longer active when the order was - /// completed. - core.int? orderItemCount; - - /// Id of the Repricing rule for this report. - core.String? ruleId; - - /// Total GMV generated by impacted products while the rule was active on the - /// date of the report. - /// - /// This value includes all orders that were started while the rule was - /// active, even if the rule was no longer active when the order was - /// completed. - PriceAmount? totalGmv; - - /// Type of the rule. - /// Possible string values are: - /// - "REPRICING_RULE_TYPE_UNSPECIFIED" : Unused. - /// - "TYPE_STATS_BASED" : Statistical measurement based rules among Google SA - /// merchants. If this rule is chosen, repricer will adjust the offer price - /// based on statistical metrics (currently only min is available) among other - /// merchants who sell the same product. Details need to be provdided in the - /// RuleDefinition. - /// - "TYPE_COGS_BASED" : Cost of goods sale based rule. Repricer will adjust - /// the offer price based on the offer's sale cost which is provided by the - /// merchant. - /// - "TYPE_SALES_VOLUME_BASED" : Sales volume based rule. Repricer will - /// adjust the offer price based on the offer's sales volume in the past - /// period of time defined within the rule. - /// - "TYPE_COMPETITIVE_PRICE" : Competitive price rule. Repricer will adjust - /// the offer price based on the min price from a list of unnamed big - /// competitors. - core.String? type; - - RepricingRuleReport({ - this.buyboxWinningRuleStats, - this.date, - this.impactedProducts, - this.inapplicabilityDetails, - this.inapplicableProducts, - this.orderItemCount, - this.ruleId, - this.totalGmv, - this.type, - }); - - RepricingRuleReport.fromJson(core.Map json_) - : this( - buyboxWinningRuleStats: json_.containsKey('buyboxWinningRuleStats') - ? RepricingRuleReportBuyboxWinningRuleStats.fromJson( - json_['buyboxWinningRuleStats'] - as core.Map) - : null, - date: json_.containsKey('date') - ? Date.fromJson( - json_['date'] as core.Map) - : null, - impactedProducts: json_.containsKey('impactedProducts') - ? (json_['impactedProducts'] as core.List) - .map((value) => value as core.String) - .toList() - : null, - inapplicabilityDetails: json_.containsKey('inapplicabilityDetails') - ? (json_['inapplicabilityDetails'] as core.List) - .map((value) => InapplicabilityDetails.fromJson( - value as core.Map)) - .toList() - : null, - inapplicableProducts: json_.containsKey('inapplicableProducts') - ? (json_['inapplicableProducts'] as core.List) - .map((value) => value as core.String) - .toList() - : null, - orderItemCount: json_.containsKey('orderItemCount') - ? json_['orderItemCount'] as core.int - : null, - ruleId: json_.containsKey('ruleId') - ? json_['ruleId'] as core.String - : null, - totalGmv: json_.containsKey('totalGmv') - ? PriceAmount.fromJson( - json_['totalGmv'] as core.Map) - : null, - type: json_.containsKey('type') ? json_['type'] as core.String : null, - ); - - core.Map toJson() => { - if (buyboxWinningRuleStats != null) - 'buyboxWinningRuleStats': buyboxWinningRuleStats!, - if (date != null) 'date': date!, - if (impactedProducts != null) 'impactedProducts': impactedProducts!, - if (inapplicabilityDetails != null) - 'inapplicabilityDetails': inapplicabilityDetails!, - if (inapplicableProducts != null) - 'inapplicableProducts': inapplicableProducts!, - if (orderItemCount != null) 'orderItemCount': orderItemCount!, - if (ruleId != null) 'ruleId': ruleId!, - if (totalGmv != null) 'totalGmv': totalGmv!, - if (type != null) 'type': type!, - }; -} - -/// Stats specific to buybox winning rules for rule report. -class RepricingRuleReportBuyboxWinningRuleStats { - /// Number of unique products that won the buybox with this rule during this - /// period of time. - core.int? buyboxWonProductCount; - - RepricingRuleReportBuyboxWinningRuleStats({ - this.buyboxWonProductCount, - }); - - RepricingRuleReportBuyboxWinningRuleStats.fromJson(core.Map json_) - : this( - buyboxWonProductCount: json_.containsKey('buyboxWonProductCount') - ? json_['buyboxWonProductCount'] as core.int - : null, - ); - - core.Map toJson() => { - if (buyboxWonProductCount != null) - 'buyboxWonProductCount': buyboxWonProductCount!, - }; -} - -/// Definition of a rule restriction. -/// -/// At least one of the following needs to be true: (1) -/// use_auto_pricing_min_price is true (2) floor.price_delta exists (3) -/// floor.percentage_delta exists If floor.price_delta and -/// floor.percentage_delta are both set on a rule, the highest value will be -/// chosen by the Repricer. In other words, for a product with a price of $50, -/// if the `floor.percentage_delta` is "-10" and the floor.price_delta is "-12", -/// the offer price will only be lowered $5 (10% lower than the original offer -/// price). -class RepricingRuleRestriction { - /// The inclusive floor lower bound. - /// - /// The repricing rule only applies when new price \>= floor. - RepricingRuleRestrictionBoundary? floor; - - /// If true, use the AUTO_PRICING_MIN_PRICE offer attribute as the lower bound - /// of the rule. - /// - /// If use_auto_pricing_min_price is true, then only offers with - /// `AUTO_PRICING_MIN_PRICE` existing on the offer will get Repricer - /// treatment, even if a floor value is set on the rule. Also, if - /// use_auto_pricing_min_price is true, the floor restriction will be ignored. - core.bool? useAutoPricingMinPrice; - - RepricingRuleRestriction({ - this.floor, - this.useAutoPricingMinPrice, - }); - - RepricingRuleRestriction.fromJson(core.Map json_) - : this( - floor: json_.containsKey('floor') - ? RepricingRuleRestrictionBoundary.fromJson( - json_['floor'] as core.Map) - : null, - useAutoPricingMinPrice: json_.containsKey('useAutoPricingMinPrice') - ? json_['useAutoPricingMinPrice'] as core.bool - : null, - ); - - core.Map toJson() => { - if (floor != null) 'floor': floor!, - if (useAutoPricingMinPrice != null) - 'useAutoPricingMinPrice': useAutoPricingMinPrice!, - }; -} - -/// Definition of a boundary. -class RepricingRuleRestrictionBoundary { - /// The percentage delta relative to the offer selling price. - /// - /// This field is signed. It must be negative in floor. When it is used in - /// floor, it should be \> -100. For example, if an offer is selling at $10 - /// and this field is -30 in floor, the repricing rule only applies if the - /// calculated new price is \>= $7. - core.int? percentageDelta; - - /// The price micros relative to the offer selling price. - /// - /// This field is signed. It must be negative in floor. For example, if an - /// offer is selling at $10 and this field is -$2 in floor, the repricing rule - /// only applies if the calculated new price is \>= $8. - core.String? priceDelta; - - RepricingRuleRestrictionBoundary({ - this.percentageDelta, - this.priceDelta, - }); - - RepricingRuleRestrictionBoundary.fromJson(core.Map json_) - : this( - percentageDelta: json_.containsKey('percentageDelta') - ? json_['percentageDelta'] as core.int - : null, - priceDelta: json_.containsKey('priceDelta') - ? json_['priceDelta'] as core.String - : null, - ); - - core.Map toJson() => { - if (percentageDelta != null) 'percentageDelta': percentageDelta!, - if (priceDelta != null) 'priceDelta': priceDelta!, - }; -} - -/// Definition of stats based rule. -class RepricingRuleStatsBasedRule { - /// The percent change against the price target. - /// - /// Valid from 0 to 100 inclusively. - core.int? percentageDelta; - - /// The price delta against the above price target. - /// - /// A positive value means the price should be adjusted to be above - /// statistical measure, and a negative value means below. Currency code must - /// not be included. - core.String? priceDelta; - - RepricingRuleStatsBasedRule({ - this.percentageDelta, - this.priceDelta, - }); - - RepricingRuleStatsBasedRule.fromJson(core.Map json_) - : this( - percentageDelta: json_.containsKey('percentageDelta') - ? json_['percentageDelta'] as core.int - : null, - priceDelta: json_.containsKey('priceDelta') - ? json_['priceDelta'] as core.String - : null, - ); - - core.Map toJson() => { - if (percentageDelta != null) 'percentageDelta': percentageDelta!, - if (priceDelta != null) 'priceDelta': priceDelta!, - }; -} - /// Request message for the RequestPhoneVerification method. class RequestPhoneVerificationRequest { /// Language code [IETF BCP 47 syntax](https://tools.ietf.org/html/bcp47) (for @@ -31857,7 +30543,7 @@ class Row { class SearchRequest { /// Number of ReportRows to retrieve in a single page. /// - /// Defaults to the maximum of 1000. Values above 1000 are coerced to 1000. + /// Defaults to 1000. Values above 5000 are coerced to 5000. core.int? pageSize; /// Token of the page to retrieve. diff --git a/generated/googleapis/lib/customsearch/v1.dart b/generated/googleapis/lib/customsearch/v1.dart index 503394211..18a277e3c 100644 --- a/generated/googleapis/lib/customsearch/v1.dart +++ b/generated/googleapis/lib/customsearch/v1.dart @@ -215,8 +215,7 @@ class CseResource { /// /// [q] - Query /// - /// [relatedSite] - Specifies that all search results should be pages that are - /// related to the specified URL. + /// [relatedSite] - Deprecated. /// /// [rights] - Filters based on licensing. Supported values include: /// `cc_publicdomain`, `cc_attribute`, `cc_sharealike`, `cc_noncommercial`, @@ -521,8 +520,7 @@ class CseSiterestrictResource { /// /// [q] - Query /// - /// [relatedSite] - Specifies that all search results should be pages that are - /// related to the specified URL. + /// [relatedSite] - Deprecated. /// /// [rights] - Filters based on licensing. Supported values include: /// `cc_publicdomain`, `cc_attribute`, `cc_sharealike`, `cc_noncommercial`, diff --git a/generated/googleapis/lib/datacatalog/v1.dart b/generated/googleapis/lib/datacatalog/v1.dart index 03afde91c..9a2c37575 100644 --- a/generated/googleapis/lib/datacatalog/v1.dart +++ b/generated/googleapis/lib/datacatalog/v1.dart @@ -2854,7 +2854,7 @@ class ProjectsLocationsTaxonomiesResource { /// /// Request parameters: /// - /// [name] - Output only. Resource name of this taxonomy in URL format. Note: + /// [name] - Identifier. Resource name of this taxonomy in URL format. Note: /// Policy tag manager generates unique taxonomy IDs. /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/taxonomies/\[^/\]+$`. @@ -3263,7 +3263,7 @@ class ProjectsLocationsTaxonomiesPolicyTagsResource { /// /// Request parameters: /// - /// [name] - Output only. Resource name of this policy tag in the URL format. + /// [name] - Identifier. Resource name of this policy tag in the URL format. /// The policy tag manager generates unique taxonomy IDs and policy tag IDs. /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/taxonomies/\[^/\]+/policyTags/\[^/\]+$`. @@ -3430,14 +3430,31 @@ class Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -3446,12 +3463,19 @@ class Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; Binding({ @@ -3949,6 +3973,14 @@ class GoogleCloudDatacatalogV1ColumnSchema { /// Optional. core.int? ordinalPosition; + /// The subtype of the RANGE, if the type of this field is RANGE. + /// + /// If the type is RANGE, this field is required. Possible values for the + /// field element type of a RANGE include: * DATE * DATETIME * TIMESTAMP + /// + /// Optional. + GoogleCloudDatacatalogV1ColumnSchemaFieldElementType? rangeElementType; + /// Schema of sub-columns. /// /// A column can have zero or more sub-columns. @@ -3972,6 +4004,7 @@ class GoogleCloudDatacatalogV1ColumnSchema { this.lookerColumnSpec, this.mode, this.ordinalPosition, + this.rangeElementType, this.subcolumns, this.type, }); @@ -4002,6 +4035,11 @@ class GoogleCloudDatacatalogV1ColumnSchema { ordinalPosition: json_.containsKey('ordinalPosition') ? json_['ordinalPosition'] as core.int : null, + rangeElementType: json_.containsKey('rangeElementType') + ? GoogleCloudDatacatalogV1ColumnSchemaFieldElementType.fromJson( + json_['rangeElementType'] + as core.Map) + : null, subcolumns: json_.containsKey('subcolumns') ? (json_['subcolumns'] as core.List) .map((value) => GoogleCloudDatacatalogV1ColumnSchema.fromJson( @@ -4021,11 +4059,35 @@ class GoogleCloudDatacatalogV1ColumnSchema { if (lookerColumnSpec != null) 'lookerColumnSpec': lookerColumnSpec!, if (mode != null) 'mode': mode!, if (ordinalPosition != null) 'ordinalPosition': ordinalPosition!, + if (rangeElementType != null) 'rangeElementType': rangeElementType!, if (subcolumns != null) 'subcolumns': subcolumns!, if (type != null) 'type': type!, }; } +/// Represents the type of a field element. +class GoogleCloudDatacatalogV1ColumnSchemaFieldElementType { + /// The type of a field element. + /// + /// See ColumnSchema.type. + /// + /// Required. + core.String? type; + + GoogleCloudDatacatalogV1ColumnSchemaFieldElementType({ + this.type, + }); + + GoogleCloudDatacatalogV1ColumnSchemaFieldElementType.fromJson(core.Map json_) + : this( + type: json_.containsKey('type') ? json_['type'] as core.String : null, + ); + + core.Map toJson() => { + if (type != null) 'type': type!, + }; +} + /// Column info specific to Looker System. class GoogleCloudDatacatalogV1ColumnSchemaLookerColumnSpec { /// Looker specific column type of this column. @@ -4602,6 +4664,9 @@ class GoogleCloudDatacatalogV1Entry { /// empty string. core.String? displayName; + /// FeatureonlineStore spec for Vertex AI Feature Store. + GoogleCloudDatacatalogV1FeatureOnlineStoreSpec? featureOnlineStoreSpec; + /// Specification that applies to a fileset resource. /// /// Valid only for entries with the `FILESET` type. @@ -4736,6 +4801,10 @@ class GoogleCloudDatacatalogV1Entry { /// [Looker Explore API](https://developers.looker.com/api/explorer/4.0/methods/LookmlModel/lookml_model_explore). /// - "LOOK" : A Looker Look. For more information, see /// [Looker Look API](https://developers.looker.com/api/explorer/4.0/methods/Look). + /// - "FEATURE_ONLINE_STORE" : Feature Online Store resource in Vertex AI + /// Feature Store. + /// - "FEATURE_VIEW" : Feature View resource in Vertex AI Feature Store. + /// - "FEATURE_GROUP" : Feature Group resource in Vertex AI Feature Store. core.String? type; /// Resource usage statistics. @@ -4772,6 +4841,7 @@ class GoogleCloudDatacatalogV1Entry { this.datasetSpec, this.description, this.displayName, + this.featureOnlineStoreSpec, this.filesetSpec, this.fullyQualifiedName, this.gcsFilesetSpec, @@ -4840,6 +4910,11 @@ class GoogleCloudDatacatalogV1Entry { displayName: json_.containsKey('displayName') ? json_['displayName'] as core.String : null, + featureOnlineStoreSpec: json_.containsKey('featureOnlineStoreSpec') + ? GoogleCloudDatacatalogV1FeatureOnlineStoreSpec.fromJson( + json_['featureOnlineStoreSpec'] + as core.Map) + : null, filesetSpec: json_.containsKey('filesetSpec') ? GoogleCloudDatacatalogV1FilesetSpec.fromJson( json_['filesetSpec'] as core.Map) @@ -4930,6 +5005,8 @@ class GoogleCloudDatacatalogV1Entry { if (datasetSpec != null) 'datasetSpec': datasetSpec!, if (description != null) 'description': description!, if (displayName != null) 'displayName': displayName!, + if (featureOnlineStoreSpec != null) + 'featureOnlineStoreSpec': featureOnlineStoreSpec!, if (filesetSpec != null) 'filesetSpec': filesetSpec!, if (fullyQualifiedName != null) 'fullyQualifiedName': fullyQualifiedName!, @@ -5069,6 +5146,34 @@ class GoogleCloudDatacatalogV1ExportTaxonomiesResponse { }; } +/// Detail description of the source information of a Vertex Feature Online +/// Store. +class GoogleCloudDatacatalogV1FeatureOnlineStoreSpec { + /// Type of underelaying storage for the FeatureOnlineStore. + /// + /// Output only. + /// Possible string values are: + /// - "STORAGE_TYPE_UNSPECIFIED" : Should not be used. + /// - "BIGTABLE" : Underlsying storgae is Bigtable. + /// - "OPTIMIZED" : Underlaying is optimized online server (Lightning). + core.String? storageType; + + GoogleCloudDatacatalogV1FeatureOnlineStoreSpec({ + this.storageType, + }); + + GoogleCloudDatacatalogV1FeatureOnlineStoreSpec.fromJson(core.Map json_) + : this( + storageType: json_.containsKey('storageType') + ? json_['storageType'] as core.String + : null, + ); + + core.Map toJson() => { + if (storageType != null) 'storageType': storageType!, + }; +} + class GoogleCloudDatacatalogV1FieldType { /// An enum type. GoogleCloudDatacatalogV1FieldTypeEnumType? enumType; @@ -5921,11 +6026,10 @@ class GoogleCloudDatacatalogV1PolicyTag { /// Required. core.String? displayName; - /// Resource name of this policy tag in the URL format. + /// Identifier. /// - /// The policy tag manager generates unique taxonomy IDs and policy tag IDs. - /// - /// Output only. + /// Resource name of this policy tag in the URL format. The policy tag manager + /// generates unique taxonomy IDs and policy tag IDs. core.String? name; /// Resource name of this policy tag's parent policy tag. @@ -7359,11 +7463,10 @@ class GoogleCloudDatacatalogV1Taxonomy { /// Required. core.String? displayName; - /// Resource name of this taxonomy in URL format. + /// Identifier. /// - /// Note: Policy tag manager generates unique taxonomy IDs. - /// - /// Output only. + /// Resource name of this taxonomy in URL format. Note: Policy tag manager + /// generates unique taxonomy IDs. core.String? name; /// Number of policy tags in this taxonomy. diff --git a/generated/googleapis/lib/datafusion/v1.dart b/generated/googleapis/lib/datafusion/v1.dart index 2ef3028a0..2bc33cada 100644 --- a/generated/googleapis/lib/datafusion/v1.dart +++ b/generated/googleapis/lib/datafusion/v1.dart @@ -204,7 +204,10 @@ class ProjectsLocationsInstancesResource { /// projects/{project}/locations/{location}. /// Value must have pattern `^projects/\[^/\]+/locations/\[^/\]+$`. /// - /// [instanceId] - Required. The name of the instance to create. + /// [instanceId] - Required. The name of the instance to create. Instance name + /// can only contain lowercase alphanumeric characters and hyphens. It must + /// start with a letter and must not end with a hyphen. It can have a maximum + /// of 30 characters. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. @@ -1151,14 +1154,31 @@ class Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -1167,7 +1187,10 @@ class Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. @@ -1388,6 +1411,11 @@ class Instance { /// This field is used by the Customer-Managed Encryption Keys (CMEK) feature. CryptoKeyConfig? cryptoKeyConfig; + /// Option to enable the Dataplex Lineage Integration feature. + /// + /// Optional. + core.bool? dataplexDataLineageIntegrationEnabled; + /// User-managed service account to set on Dataproc when Cloud Data Fusion /// creates Dataproc to run data processing pipelines. /// @@ -1554,6 +1582,7 @@ class Instance { this.availableVersion, this.createTime, this.cryptoKeyConfig, + this.dataplexDataLineageIntegrationEnabled, this.dataprocServiceAccount, this.description, this.disabledReason, @@ -1608,6 +1637,10 @@ class Instance { ? CryptoKeyConfig.fromJson(json_['cryptoKeyConfig'] as core.Map) : null, + dataplexDataLineageIntegrationEnabled: + json_.containsKey('dataplexDataLineageIntegrationEnabled') + ? json_['dataplexDataLineageIntegrationEnabled'] as core.bool + : null, dataprocServiceAccount: json_.containsKey('dataprocServiceAccount') ? json_['dataprocServiceAccount'] as core.String : null, @@ -1710,6 +1743,9 @@ class Instance { if (availableVersion != null) 'availableVersion': availableVersion!, if (createTime != null) 'createTime': createTime!, if (cryptoKeyConfig != null) 'cryptoKeyConfig': cryptoKeyConfig!, + if (dataplexDataLineageIntegrationEnabled != null) + 'dataplexDataLineageIntegrationEnabled': + dataplexDataLineageIntegrationEnabled!, if (dataprocServiceAccount != null) 'dataprocServiceAccount': dataprocServiceAccount!, if (description != null) 'description': description!, @@ -1933,39 +1969,85 @@ typedef Location = $Location00; /// managed Data Fusion instance nodes, as well as access to the customer /// on-prem resources. class NetworkConfig { + /// Type of connection for establishing private IP connectivity between the + /// Data Fusion customer project VPC and the corresponding tenant project from + /// a predefined list of available connection modes. + /// + /// If this field is unspecified for a private instance, VPC peering is used. + /// + /// Optional. + /// Possible string values are: + /// - "CONNECTION_TYPE_UNSPECIFIED" : No specific connection type was + /// requested, the default value of VPC_PEERING is chosen. + /// - "VPC_PEERING" : Requests the use of VPC peerings for connecting the + /// consumer and tenant projects. + /// - "PRIVATE_SERVICE_CONNECT_INTERFACES" : Requests the use of Private + /// Service Connect Interfaces for connecting the consumer and tenant + /// projects. + core.String? connectionType; + /// The IP range in CIDR notation to use for the managed Data Fusion instance /// nodes. /// - /// This range must not overlap with any other ranges used in the customer - /// network. + /// This range must not overlap with any other ranges used in the Data Fusion + /// instance network. This is required only when using connection type + /// VPC_PEERING. Format: a.b.c.d/22 Example: 192.168.0.0/22 + /// + /// Optional. core.String? ipAllocation; /// Name of the network in the customer project with which the Tenant Project /// will be peered for executing pipelines. /// - /// In case of shared VPC where the network resides in another host project - /// the network should specified in the form of - /// projects/{host-project-id}/global/networks/{network} + /// This is required only when using connection type VPC peering. In case of + /// shared VPC where the network resides in another host project the network + /// should specified in the form of + /// projects/{host-project-id}/global/networks/{network}. This is only + /// required for connectivity type VPC_PEERING. + /// + /// Optional. core.String? network; + /// Configuration for Private Service Connect. + /// + /// This is required only when using connection type + /// PRIVATE_SERVICE_CONNECT_INTERFACES. + /// + /// Optional. + PrivateServiceConnectConfig? privateServiceConnectConfig; + NetworkConfig({ + this.connectionType, this.ipAllocation, this.network, + this.privateServiceConnectConfig, }); NetworkConfig.fromJson(core.Map json_) : this( + connectionType: json_.containsKey('connectionType') + ? json_['connectionType'] as core.String + : null, ipAllocation: json_.containsKey('ipAllocation') ? json_['ipAllocation'] as core.String : null, network: json_.containsKey('network') ? json_['network'] as core.String : null, + privateServiceConnectConfig: + json_.containsKey('privateServiceConnectConfig') + ? PrivateServiceConnectConfig.fromJson( + json_['privateServiceConnectConfig'] + as core.Map) + : null, ); core.Map toJson() => { + if (connectionType != null) 'connectionType': connectionType!, if (ipAllocation != null) 'ipAllocation': ipAllocation!, if (network != null) 'network': network!, + if (privateServiceConnectConfig != null) + 'privateServiceConnectConfig': privateServiceConnectConfig!, }; } @@ -2166,6 +2248,71 @@ class Policy { }; } +/// Configuration for using Private Service Connect to establish connectivity +/// between the Data Fusion consumer project and the corresponding tenant +/// project. +class PrivateServiceConnectConfig { + /// The CIDR block to which the CDF instance can't route traffic to in the + /// consumer project VPC. + /// + /// The size of this block is /25. The format of this field is governed by RFC + /// 4632. Example: 240.0.0.0/25 + /// + /// Output only. + core.String? effectiveUnreachableCidrBlock; + + /// The reference to the network attachment used to establish private + /// connectivity. + /// + /// It will be of the form + /// projects/{project-id}/regions/{region}/networkAttachments/{network-attachment-id}. + /// + /// Required. + core.String? networkAttachment; + + /// Input only. + /// + /// The CIDR block to which the CDF instance can't route traffic to in the + /// consumer project VPC. The size of this block should be at least /25. This + /// range should not overlap with the primary address range of any subnetwork + /// used by the network attachment. This range can be used for other purposes + /// in the consumer VPC as long as there is no requirement for CDF to reach + /// destinations using these addresses. If this value is not provided, the + /// server chooses a non RFC 1918 address range. The format of this field is + /// governed by RFC 4632. Example: 192.168.0.0/25 + /// + /// Optional. + core.String? unreachableCidrBlock; + + PrivateServiceConnectConfig({ + this.effectiveUnreachableCidrBlock, + this.networkAttachment, + this.unreachableCidrBlock, + }); + + PrivateServiceConnectConfig.fromJson(core.Map json_) + : this( + effectiveUnreachableCidrBlock: + json_.containsKey('effectiveUnreachableCidrBlock') + ? json_['effectiveUnreachableCidrBlock'] as core.String + : null, + networkAttachment: json_.containsKey('networkAttachment') + ? json_['networkAttachment'] as core.String + : null, + unreachableCidrBlock: json_.containsKey('unreachableCidrBlock') + ? json_['unreachableCidrBlock'] as core.String + : null, + ); + + core.Map toJson() => { + if (effectiveUnreachableCidrBlock != null) + 'effectiveUnreachableCidrBlock': effectiveUnreachableCidrBlock!, + if (networkAttachment != null) 'networkAttachment': networkAttachment!, + if (unreachableCidrBlock != null) + 'unreachableCidrBlock': unreachableCidrBlock!, + }; +} + /// Request message for restarting a Data Fusion instance. typedef RestartInstanceRequest = $Empty; diff --git a/generated/googleapis/lib/datamigration/v1.dart b/generated/googleapis/lib/datamigration/v1.dart index 3155c9ed9..08f29688a 100644 --- a/generated/googleapis/lib/datamigration/v1.dart +++ b/generated/googleapis/lib/datamigration/v1.dart @@ -1881,9 +1881,9 @@ class ProjectsLocationsMigrationJobsResource { /// Demotes the destination database to become a read replica of the source. /// - /// This is applicable for the following migrations: 1. MySQL to Cloud SQL - /// (for MySQL) 2. PostgreSQL to Cloud SQL (for PostgreSQL) 3. PostgreSQL to - /// AlloyDB. + /// This is applicable for the following migrations: 1. MySQL to Cloud SQL for + /// MySQL 2. PostgreSQL to Cloud SQL for PostgreSQL 3. PostgreSQL to AlloyDB + /// for PostgreSQL. /// /// [request] - The metadata request object. /// @@ -3629,14 +3629,31 @@ class Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -3645,12 +3662,19 @@ class Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; Binding({ @@ -3848,6 +3872,8 @@ class CloudSqlSettings { /// version is 33. /// - "MYSQL_8_0_34" : The database major version is MySQL 8.0 and the minor /// version is 34. + /// - "MYSQL_8_0_35" : The database major version is MySQL 8.0 and the minor + /// version is 35. /// - "POSTGRES_9_6" : PostgreSQL 9.6. /// - "POSTGRES_11" : PostgreSQL 11. /// - "POSTGRES_10" : PostgreSQL 10. diff --git a/generated/googleapis/lib/dataplex/v1.dart b/generated/googleapis/lib/dataplex/v1.dart index 179a87dc5..f39945150 100644 --- a/generated/googleapis/lib/dataplex/v1.dart +++ b/generated/googleapis/lib/dataplex/v1.dart @@ -8816,6 +8816,42 @@ class GoogleCloudDataplexV1DataProfileSpecSelectedFields { }; } +/// DataQualityColumnResult provides a more detailed, per-column view of the +/// results. +class GoogleCloudDataplexV1DataQualityColumnResult { + /// The column specified in the DataQualityRule. + /// + /// Output only. + core.String? column; + + /// The column-level data quality score for this data scan job if and only if + /// the 'column' field is set.The score ranges between between 0, 100 (up to + /// two decimal points). + /// + /// Output only. + core.double? score; + + GoogleCloudDataplexV1DataQualityColumnResult({ + this.column, + this.score, + }); + + GoogleCloudDataplexV1DataQualityColumnResult.fromJson(core.Map json_) + : this( + column: json_.containsKey('column') + ? json_['column'] as core.String + : null, + score: json_.containsKey('score') + ? (json_['score'] as core.num).toDouble() + : null, + ); + + core.Map toJson() => { + if (column != null) 'column': column!, + if (score != null) 'score': score!, + }; +} + /// A dimension captures data quality intent about a defined subset of the rules /// specified. class GoogleCloudDataplexV1DataQualityDimension { @@ -8850,9 +8886,17 @@ class GoogleCloudDataplexV1DataQualityDimensionResult { /// Whether the dimension passed or failed. core.bool? passed; + /// The dimension-level data quality score for this data scan job if and only + /// if the 'dimension' field is set.The score ranges between 0, 100 (up to two + /// decimal points). + /// + /// Output only. + core.double? score; + GoogleCloudDataplexV1DataQualityDimensionResult({ this.dimension, this.passed, + this.score, }); GoogleCloudDataplexV1DataQualityDimensionResult.fromJson(core.Map json_) @@ -8863,16 +8907,27 @@ class GoogleCloudDataplexV1DataQualityDimensionResult { : null, passed: json_.containsKey('passed') ? json_['passed'] as core.bool : null, + score: json_.containsKey('score') + ? (json_['score'] as core.num).toDouble() + : null, ); core.Map toJson() => { if (dimension != null) 'dimension': dimension!, if (passed != null) 'passed': passed!, + if (score != null) 'score': score!, }; } /// The output of a DataQualityScan. class GoogleCloudDataplexV1DataQualityResult { + /// A list of results at the column level.A column will have a corresponding + /// DataQualityColumnResult if and only if there is at least one rule with the + /// 'column' field set to it. + /// + /// Output only. + core.List? columns; + /// A list of results at the dimension level.A dimension will have a /// corresponding DataQualityDimensionResult if and only if there is at least /// one rule with the 'dimension' field set to it. @@ -8896,17 +8951,32 @@ class GoogleCloudDataplexV1DataQualityResult { /// The data scanned for this result. GoogleCloudDataplexV1ScannedData? scannedData; + /// The overall data quality score.The score ranges between 0, 100 (up to two + /// decimal points). + /// + /// Output only. + core.double? score; + GoogleCloudDataplexV1DataQualityResult({ + this.columns, this.dimensions, this.passed, this.postScanActionsResult, this.rowCount, this.rules, this.scannedData, + this.score, }); GoogleCloudDataplexV1DataQualityResult.fromJson(core.Map json_) : this( + columns: json_.containsKey('columns') + ? (json_['columns'] as core.List) + .map((value) => + GoogleCloudDataplexV1DataQualityColumnResult.fromJson( + value as core.Map)) + .toList() + : null, dimensions: json_.containsKey('dimensions') ? (json_['dimensions'] as core.List) .map((value) => @@ -8935,9 +9005,13 @@ class GoogleCloudDataplexV1DataQualityResult { ? GoogleCloudDataplexV1ScannedData.fromJson( json_['scannedData'] as core.Map) : null, + score: json_.containsKey('score') + ? (json_['score'] as core.num).toDouble() + : null, ); core.Map toJson() => { + if (columns != null) 'columns': columns!, if (dimensions != null) 'dimensions': dimensions!, if (passed != null) 'passed': passed!, if (postScanActionsResult != null) @@ -8945,6 +9019,7 @@ class GoogleCloudDataplexV1DataQualityResult { if (rowCount != null) 'rowCount': rowCount!, if (rules != null) 'rules': rules!, if (scannedData != null) 'scannedData': scannedData!, + if (score != null) 'score': score!, }; } @@ -9007,7 +9082,8 @@ class GoogleCloudDataplexV1DataQualityRule { /// is true. /// /// In that case, such null rows are trivially considered passing.This field - /// is only valid for row-level type rules. + /// is only valid for the following type of rules: RangeExpectation + /// RegexExpectation SetExpectation UniquenessExpectation /// /// Optional. core.bool? ignoreNull; @@ -13852,8 +13928,25 @@ class GoogleIamV1Binding { /// group:{emailid}: An email address that represents a Google group. For /// example, admins@example.com. domain:{domain}: The G Suite domain (primary) /// that represents all the users of that domain. For example, google.com or - /// example.com. deleted:user:{emailid}?uid={uniqueid}: An email address (plus - /// unique identifier) representing a user that has been recently deleted. For + /// example.com. + /// principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}: + /// A single identity in a workforce identity pool. + /// principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}: + /// All workforce identities in a group. + /// principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}: + /// All workforce identities with a specific attribute value. + /// principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * : All identities in a workforce identity pool. + /// principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}: + /// A single identity in a workload identity pool. + /// principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}: + /// A workload identity pool group. + /// principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}: + /// All identities in a workload identity pool with a certain attribute. + /// principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * : All identities in a workload identity pool. + /// deleted:user:{emailid}?uid={uniqueid}: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For /// example, alice@example.com?uid=123456789012345678901. If the user is /// recovered, this value reverts to user:{emailid} and the recovered user /// retains the role in the binding. @@ -13869,11 +13962,18 @@ class GoogleIamV1Binding { /// admins@example.com?uid=123456789012345678901. If the group is recovered, /// this value reverts to group:{emailid} and the recovered group retains the /// role in the binding. + /// deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}: + /// Deleted single identity in a workforce identity pool. For example, + /// deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value. core.List? members; /// Role that is assigned to the list of members, or principals. /// - /// For example, roles/viewer, roles/editor, or roles/owner. + /// For example, roles/viewer, roles/editor, or roles/owner.For an overview of + /// the IAM roles and permissions, see the IAM documentation + /// (https://cloud.google.com/iam/docs/roles-overview). For a list of the + /// available pre-defined roles, see here + /// (https://cloud.google.com/iam/docs/understanding-roles). core.String? role; GoogleIamV1Binding({ diff --git a/generated/googleapis/lib/dataproc/v1.dart b/generated/googleapis/lib/dataproc/v1.dart index 3ce91f8cd..7d81b8ecd 100644 --- a/generated/googleapis/lib/dataproc/v1.dart +++ b/generated/googleapis/lib/dataproc/v1.dart @@ -2674,13 +2674,13 @@ class ProjectsRegionsClustersResource { /// value ...where field is one of status.state, clusterName, or /// labels.\[KEY\], and \[KEY\] is a label key. value can be * to match all /// values. status.state can be one of the following: ACTIVE, INACTIVE, - /// CREATING, RUNNING, ERROR, DELETING, or UPDATING. ACTIVE contains the - /// CREATING, UPDATING, and RUNNING states. INACTIVE contains the DELETING and - /// ERROR states. clusterName is the name of the cluster provided at creation - /// time. Only the logical AND operator is supported; space-separated items - /// are treated as having an implicit AND operator.Example filter:status.state - /// = ACTIVE AND clusterName = mycluster AND labels.env = staging AND - /// labels.starred = * + /// CREATING, RUNNING, ERROR, DELETING, UPDATING, STOPPING, or STOPPED. ACTIVE + /// contains the CREATING, UPDATING, and RUNNING states. INACTIVE contains the + /// DELETING, ERROR, STOPPING, and STOPPED states. clusterName is the name of + /// the cluster provided at creation time. Only the logical AND operator is + /// supported; space-separated items are treated as having an implicit AND + /// operator.Example filter:status.state = ACTIVE AND clusterName = mycluster + /// AND labels.env = staging AND labels.starred = * /// /// [pageSize] - Optional. The standard List page size. /// @@ -3109,7 +3109,7 @@ class ProjectsRegionsClustersNodeGroupsResource { /// /// [requestId] - Optional. A unique ID used to identify the request. If the /// server receives two CreateNodeGroupRequest - /// (https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#google.cloud.dataproc.v1.CreateNodeGroupRequests) + /// (https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#google.cloud.dataproc.v1.CreateNodeGroupRequest) /// with the same ID, the second request is ignored and the first /// google.longrunning.Operation created and stored in the backend is /// returned.Recommendation: Set this value to a UUID @@ -3191,6 +3191,48 @@ class ProjectsRegionsClustersNodeGroupsResource { return NodeGroup.fromJson(response_ as core.Map); } + /// Repair nodes in a node group. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [name] - Required. The name of the node group to resize. Format: + /// projects/{project}/regions/{region}/clusters/{cluster}/nodeGroups/{nodeGroup} + /// Value must have pattern + /// `^projects/\[^/\]+/regions/\[^/\]+/clusters/\[^/\]+/nodeGroups/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [Operation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future repair( + RepairNodeGroupRequest request, + core.String name, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':repair'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return Operation.fromJson(response_ as core.Map); + } + /// Resizes a node group in a cluster. /// /// The returned Operation.metadata is NodeGroupOperationMetadata @@ -5266,8 +5308,25 @@ class Binding { /// group:{emailid}: An email address that represents a Google group. For /// example, admins@example.com. domain:{domain}: The G Suite domain (primary) /// that represents all the users of that domain. For example, google.com or - /// example.com. deleted:user:{emailid}?uid={uniqueid}: An email address (plus - /// unique identifier) representing a user that has been recently deleted. For + /// example.com. + /// principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}: + /// A single identity in a workforce identity pool. + /// principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}: + /// All workforce identities in a group. + /// principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}: + /// All workforce identities with a specific attribute value. + /// principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * : All identities in a workforce identity pool. + /// principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}: + /// A single identity in a workload identity pool. + /// principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}: + /// A workload identity pool group. + /// principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}: + /// All identities in a workload identity pool with a certain attribute. + /// principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * : All identities in a workload identity pool. + /// deleted:user:{emailid}?uid={uniqueid}: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For /// example, alice@example.com?uid=123456789012345678901. If the user is /// recovered, this value reverts to user:{emailid} and the recovered user /// retains the role in the binding. @@ -5283,11 +5342,18 @@ class Binding { /// admins@example.com?uid=123456789012345678901. If the group is recovered, /// this value reverts to group:{emailid} and the recovered group retains the /// role in the binding. + /// deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}: + /// Deleted single identity in a workforce identity pool. For example, + /// deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value. core.List? members; /// Role that is assigned to the list of members, or principals. /// - /// For example, roles/viewer, roles/editor, or roles/owner. + /// For example, roles/viewer, roles/editor, or roles/owner.For an overview of + /// the IAM roles and permissions, see the IAM documentation + /// (https://cloud.google.com/iam/docs/roles-overview). For a list of the + /// available pre-defined roles, see here + /// (https://cloud.google.com/iam/docs/understanding-roles). core.String? role; Binding({ @@ -6149,14 +6215,42 @@ typedef Empty = $Empty; /// Encryption settings for the cluster. class EncryptionConfig { - /// The Cloud KMS key name to use for PD disk encryption for all instances in - /// the cluster. + /// The Cloud KMS key resource name to use for persistent disk encryption for + /// all instances in the cluster. + /// + /// See Use CMEK with cluster data + /// (https://cloud.google.com//dataproc/docs/concepts/configuring-clusters/customer-managed-encryption#use_cmek_with_cluster_data) + /// for more information. /// /// Optional. core.String? gcePdKmsKeyName; - /// The Cloud KMS key name to use for encrypting customer core content in - /// spanner and cluster PD disk for all instances in the cluster. + /// The Cloud KMS key resource name to use for cluster persistent disk and job + /// argument encryption. + /// + /// See Use CMEK with cluster data + /// (https://cloud.google.com//dataproc/docs/concepts/configuring-clusters/customer-managed-encryption#use_cmek_with_cluster_data) + /// for more information.When this key resource name is provided, the + /// following job arguments of the following job types submitted to the + /// cluster are encrypted using CMEK: FlinkJob args + /// (https://cloud.google.com/dataproc/docs/reference/rest/v1/FlinkJob) + /// HadoopJob args + /// (https://cloud.google.com/dataproc/docs/reference/rest/v1/HadoopJob) + /// SparkJob args + /// (https://cloud.google.com/dataproc/docs/reference/rest/v1/SparkJob) + /// SparkRJob args + /// (https://cloud.google.com/dataproc/docs/reference/rest/v1/SparkRJob) + /// PySparkJob args + /// (https://cloud.google.com/dataproc/docs/reference/rest/v1/PySparkJob) + /// SparkSqlJob + /// (https://cloud.google.com/dataproc/docs/reference/rest/v1/SparkSqlJob) + /// scriptVariables and queryList.queries HiveJob + /// (https://cloud.google.com/dataproc/docs/reference/rest/v1/HiveJob) + /// scriptVariables and queryList.queries PigJob + /// (https://cloud.google.com/dataproc/docs/reference/rest/v1/PigJob) + /// scriptVariables and queryList.queries PrestoJob + /// (https://cloud.google.com/dataproc/docs/reference/rest/v1/PrestoJob) + /// scriptVariables and queryList.queries /// /// Optional. core.String? kmsKey; @@ -7152,11 +7246,33 @@ class GkeNodePoolTarget { }; } -/// Encryption settings for the encrypting customer core content. -/// -/// NEXT ID: 2 +/// Encryption settings for encrypting workflow template job arguments. class GoogleCloudDataprocV1WorkflowTemplateEncryptionConfig { - /// The Cloud KMS key name to use for encrypting customer core content. + /// The Cloud KMS key name to use for encrypting workflow template job + /// arguments.When this this key is provided, the following workflow template + /// job arguments + /// (https://cloud.google.com/dataproc/docs/concepts/workflows/use-workflows#adding_jobs_to_a_template), + /// if present, are CMEK encrypted + /// (https://cloud.google.com/dataproc/docs/concepts/configuring-clusters/customer-managed-encryption#use_cmek_with_workflow_template_data): + /// FlinkJob args + /// (https://cloud.google.com/dataproc/docs/reference/rest/v1/FlinkJob) + /// HadoopJob args + /// (https://cloud.google.com/dataproc/docs/reference/rest/v1/HadoopJob) + /// SparkJob args + /// (https://cloud.google.com/dataproc/docs/reference/rest/v1/SparkJob) + /// SparkRJob args + /// (https://cloud.google.com/dataproc/docs/reference/rest/v1/SparkRJob) + /// PySparkJob args + /// (https://cloud.google.com/dataproc/docs/reference/rest/v1/PySparkJob) + /// SparkSqlJob + /// (https://cloud.google.com/dataproc/docs/reference/rest/v1/SparkSqlJob) + /// scriptVariables and queryList.queries HiveJob + /// (https://cloud.google.com/dataproc/docs/reference/rest/v1/HiveJob) + /// scriptVariables and queryList.queries PigJob + /// (https://cloud.google.com/dataproc/docs/reference/rest/v1/PigJob) + /// scriptVariables and queryList.queries PrestoJob + /// (https://cloud.google.com/dataproc/docs/reference/rest/v1/PrestoJob) + /// scriptVariables and queryList.queries /// /// Optional. core.String? kmsKey; @@ -8636,7 +8752,7 @@ class KerberosConfig { /// Optional. core.String? keystoreUri; - /// The uri of the KMS key used to encrypt various sensitive files. + /// The URI of the KMS key used to encrypt sensitive files. /// /// Optional. core.String? kmsKeyUri; @@ -8994,9 +9110,18 @@ class ListBatchesResponse { /// If this field is omitted, there are no subsequent pages. core.String? nextPageToken; + /// List of Batches that could not be included in the response. + /// + /// Attempting to get one of these resources may indicate why it was not + /// included in the list response. + /// + /// Output only. + core.List? unreachable; + ListBatchesResponse({ this.batches, this.nextPageToken, + this.unreachable, }); ListBatchesResponse.fromJson(core.Map json_) @@ -9010,11 +9135,17 @@ class ListBatchesResponse { nextPageToken: json_.containsKey('nextPageToken') ? json_['nextPageToken'] as core.String : null, + unreachable: json_.containsKey('unreachable') + ? (json_['unreachable'] as core.List) + .map((value) => value as core.String) + .toList() + : null, ); core.Map toJson() => { if (batches != null) 'batches': batches!, if (nextPageToken != null) 'nextPageToken': nextPageToken!, + if (unreachable != null) 'unreachable': unreachable!, }; } @@ -9072,10 +9203,11 @@ class ListJobsResponse { /// Optional. core.String? nextPageToken; - /// List of jobs that could not be included in the response. + /// List of jobs with kms_key-encrypted parameters that could not be + /// decrypted. /// - /// Attempting to get one of these resources may indicate why it was not - /// included in the list response. + /// A response to a jobs.get request may indicate the reason for the + /// decryption failure for a specific job. /// /// Output only. core.List? unreachable; @@ -10776,6 +10908,63 @@ class RepairClusterRequest { }; } +class RepairNodeGroupRequest { + /// Name of instances to be repaired. + /// + /// These instances must belong to specified node pool. + /// + /// Required. + core.List? instanceNames; + + /// Repair action to take on specified resources of the node pool. + /// + /// Required. + /// Possible string values are: + /// - "REPAIR_ACTION_UNSPECIFIED" : No action will be taken by default. + /// - "REPLACE" : replace the specified list of nodes. + core.String? repairAction; + + /// A unique ID used to identify the request. + /// + /// If the server receives two RepairNodeGroupRequest with the same ID, the + /// second request is ignored and the first google.longrunning.Operation + /// created and stored in the backend is returned.Recommendation: Set this + /// value to a UUID + /// (https://en.wikipedia.org/wiki/Universally_unique_identifier).The ID must + /// contain only letters (a-z, A-Z), numbers (0-9), underscores (_), and + /// hyphens (-). The maximum length is 40 characters. + /// + /// Optional. + core.String? requestId; + + RepairNodeGroupRequest({ + this.instanceNames, + this.repairAction, + this.requestId, + }); + + RepairNodeGroupRequest.fromJson(core.Map json_) + : this( + instanceNames: json_.containsKey('instanceNames') + ? (json_['instanceNames'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + repairAction: json_.containsKey('repairAction') + ? json_['repairAction'] as core.String + : null, + requestId: json_.containsKey('requestId') + ? json_['requestId'] as core.String + : null, + ); + + core.Map toJson() => { + if (instanceNames != null) 'instanceNames': instanceNames!, + if (repairAction != null) 'repairAction': repairAction!, + if (requestId != null) 'requestId': requestId!, + }; +} + /// Configuration for dependency repositories class RepositoryConfig { /// Configuration for PyPi repository. @@ -12982,7 +13171,7 @@ class WorkflowTemplate { /// Optional. core.String? dagTimeout; - /// Encryption settings for the encrypting customer core content. + /// Encryption settings for encrypting workflow template job arguments. /// /// Optional. GoogleCloudDataprocV1WorkflowTemplateEncryptionConfig? encryptionConfig; diff --git a/generated/googleapis/lib/datastream/v1.dart b/generated/googleapis/lib/datastream/v1.dart index 7fe5fb980..e63ec3190 100644 --- a/generated/googleapis/lib/datastream/v1.dart +++ b/generated/googleapis/lib/datastream/v1.dart @@ -1760,10 +1760,14 @@ class BackfillAllStrategy { /// PostgreSQL data source objects to avoid backfilling. PostgresqlRdbms? postgresqlExcludedObjects; + /// SQLServer data source objects to avoid backfilling + SqlServerRdbms? sqlServerExcludedObjects; + BackfillAllStrategy({ this.mysqlExcludedObjects, this.oracleExcludedObjects, this.postgresqlExcludedObjects, + this.sqlServerExcludedObjects, }); BackfillAllStrategy.fromJson(core.Map json_) @@ -1781,6 +1785,11 @@ class BackfillAllStrategy { ? PostgresqlRdbms.fromJson(json_['postgresqlExcludedObjects'] as core.Map) : null, + sqlServerExcludedObjects: + json_.containsKey('sqlServerExcludedObjects') + ? SqlServerRdbms.fromJson(json_['sqlServerExcludedObjects'] + as core.Map) + : null, ); core.Map toJson() => { @@ -1790,6 +1799,8 @@ class BackfillAllStrategy { 'oracleExcludedObjects': oracleExcludedObjects!, if (postgresqlExcludedObjects != null) 'postgresqlExcludedObjects': postgresqlExcludedObjects!, + if (sqlServerExcludedObjects != null) + 'sqlServerExcludedObjects': sqlServerExcludedObjects!, }; } @@ -2025,6 +2036,9 @@ class ConnectionProfile { /// Private connectivity. PrivateConnectivity? privateConnectivity; + /// SQLServer Connection Profile configuration. + SqlServerProfile? sqlServerProfile; + /// Static Service IP connectivity. StaticServiceIpConnectivity? staticServiceIpConnectivity; @@ -2045,6 +2059,7 @@ class ConnectionProfile { this.oracleProfile, this.postgresqlProfile, this.privateConnectivity, + this.sqlServerProfile, this.staticServiceIpConnectivity, this.updateTime, }); @@ -2095,6 +2110,10 @@ class ConnectionProfile { ? PrivateConnectivity.fromJson(json_['privateConnectivity'] as core.Map) : null, + sqlServerProfile: json_.containsKey('sqlServerProfile') + ? SqlServerProfile.fromJson(json_['sqlServerProfile'] + as core.Map) + : null, staticServiceIpConnectivity: json_.containsKey('staticServiceIpConnectivity') ? StaticServiceIpConnectivity.fromJson( @@ -2120,6 +2139,7 @@ class ConnectionProfile { if (postgresqlProfile != null) 'postgresqlProfile': postgresqlProfile!, if (privateConnectivity != null) 'privateConnectivity': privateConnectivity!, + if (sqlServerProfile != null) 'sqlServerProfile': sqlServerProfile!, if (staticServiceIpConnectivity != null) 'staticServiceIpConnectivity': staticServiceIpConnectivity!, if (updateTime != null) 'updateTime': updateTime!, @@ -3625,6 +3645,27 @@ class OracleSchema { }; } +/// Oracle SCN position +class OracleScnPosition { + /// SCN number from where Logs will be read + /// + /// Required. + core.String? scn; + + OracleScnPosition({ + this.scn, + }); + + OracleScnPosition.fromJson(core.Map json_) + : this( + scn: json_.containsKey('scn') ? json_['scn'] as core.String : null, + ); + + core.Map toJson() => { + if (scn != null) 'scn': scn!, + }; +} + /// Oracle data source configuration class OracleSourceConfig { /// Drop large object values. @@ -3649,8 +3690,6 @@ class OracleSourceConfig { core.int? maxConcurrentCdcTasks; /// Stream large object values. - /// - /// NOTE: This feature is currently experimental. StreamLargeObjects? streamLargeObjects; OracleSourceConfig({ @@ -4346,11 +4385,15 @@ class SourceConfig { /// Required. core.String? sourceConnectionProfile; + /// SQLServer data source configuration. + SqlServerSourceConfig? sqlServerSourceConfig; + SourceConfig({ this.mysqlSourceConfig, this.oracleSourceConfig, this.postgresqlSourceConfig, this.sourceConnectionProfile, + this.sqlServerSourceConfig, }); SourceConfig.fromJson(core.Map json_) @@ -4370,6 +4413,10 @@ class SourceConfig { sourceConnectionProfile: json_.containsKey('sourceConnectionProfile') ? json_['sourceConnectionProfile'] as core.String : null, + sqlServerSourceConfig: json_.containsKey('sqlServerSourceConfig') + ? SqlServerSourceConfig.fromJson(json_['sqlServerSourceConfig'] + as core.Map) + : null, ); core.Map toJson() => { @@ -4380,6 +4427,8 @@ class SourceConfig { 'postgresqlSourceConfig': postgresqlSourceConfig!, if (sourceConnectionProfile != null) 'sourceConnectionProfile': sourceConnectionProfile!, + if (sqlServerSourceConfig != null) + 'sqlServerSourceConfig': sqlServerSourceConfig!, }; } @@ -4417,10 +4466,14 @@ class SourceObjectIdentifier { /// PostgreSQL data source object identifier. PostgresqlObjectIdentifier? postgresqlIdentifier; + /// SQLServer data source object identifier. + SqlServerObjectIdentifier? sqlServerIdentifier; + SourceObjectIdentifier({ this.mysqlIdentifier, this.oracleIdentifier, this.postgresqlIdentifier, + this.sqlServerIdentifier, }); SourceObjectIdentifier.fromJson(core.Map json_) @@ -4438,6 +4491,10 @@ class SourceObjectIdentifier { json_['postgresqlIdentifier'] as core.Map) : null, + sqlServerIdentifier: json_.containsKey('sqlServerIdentifier') + ? SqlServerObjectIdentifier.fromJson(json_['sqlServerIdentifier'] + as core.Map) + : null, ); core.Map toJson() => { @@ -4445,6 +4502,8 @@ class SourceObjectIdentifier { if (oracleIdentifier != null) 'oracleIdentifier': oracleIdentifier!, if (postgresqlIdentifier != null) 'postgresqlIdentifier': postgresqlIdentifier!, + if (sqlServerIdentifier != null) + 'sqlServerIdentifier': sqlServerIdentifier!, }; } @@ -4453,8 +4512,12 @@ class SpecificStartPosition { /// MySQL specific log position to start replicating from. MysqlLogPosition? mysqlLogPosition; + /// Oracle SCN to start replicating from. + OracleScnPosition? oracleScnPosition; + SpecificStartPosition({ this.mysqlLogPosition, + this.oracleScnPosition, }); SpecificStartPosition.fromJson(core.Map json_) @@ -4463,10 +4526,291 @@ class SpecificStartPosition { ? MysqlLogPosition.fromJson(json_['mysqlLogPosition'] as core.Map) : null, + oracleScnPosition: json_.containsKey('oracleScnPosition') + ? OracleScnPosition.fromJson(json_['oracleScnPosition'] + as core.Map) + : null, ); core.Map toJson() => { if (mysqlLogPosition != null) 'mysqlLogPosition': mysqlLogPosition!, + if (oracleScnPosition != null) 'oracleScnPosition': oracleScnPosition!, + }; +} + +/// SQLServer Column. +class SqlServerColumn { + /// Column name. + core.String? column; + + /// The SQLServer data type. + core.String? dataType; + + /// Column length. + core.int? length; + + /// Whether or not the column can accept a null value. + core.bool? nullable; + + /// The ordinal position of the column in the table. + core.int? ordinalPosition; + + /// Column precision. + core.int? precision; + + /// Whether or not the column represents a primary key. + core.bool? primaryKey; + + /// Column scale. + core.int? scale; + + SqlServerColumn({ + this.column, + this.dataType, + this.length, + this.nullable, + this.ordinalPosition, + this.precision, + this.primaryKey, + this.scale, + }); + + SqlServerColumn.fromJson(core.Map json_) + : this( + column: json_.containsKey('column') + ? json_['column'] as core.String + : null, + dataType: json_.containsKey('dataType') + ? json_['dataType'] as core.String + : null, + length: + json_.containsKey('length') ? json_['length'] as core.int : null, + nullable: json_.containsKey('nullable') + ? json_['nullable'] as core.bool + : null, + ordinalPosition: json_.containsKey('ordinalPosition') + ? json_['ordinalPosition'] as core.int + : null, + precision: json_.containsKey('precision') + ? json_['precision'] as core.int + : null, + primaryKey: json_.containsKey('primaryKey') + ? json_['primaryKey'] as core.bool + : null, + scale: json_.containsKey('scale') ? json_['scale'] as core.int : null, + ); + + core.Map toJson() => { + if (column != null) 'column': column!, + if (dataType != null) 'dataType': dataType!, + if (length != null) 'length': length!, + if (nullable != null) 'nullable': nullable!, + if (ordinalPosition != null) 'ordinalPosition': ordinalPosition!, + if (precision != null) 'precision': precision!, + if (primaryKey != null) 'primaryKey': primaryKey!, + if (scale != null) 'scale': scale!, + }; +} + +/// SQLServer data source object identifier. +typedef SqlServerObjectIdentifier = $ObjectIdentifier; + +/// SQLServer database profile +class SqlServerProfile { + /// Database for the SQLServer connection. + /// + /// Required. + core.String? database; + + /// Hostname for the SQLServer connection. + /// + /// Required. + core.String? hostname; + + /// Password for the SQLServer connection. + /// + /// Required. + core.String? password; + + /// Port for the SQLServer connection, default value is 1433. + core.int? port; + + /// Username for the SQLServer connection. + /// + /// Required. + core.String? username; + + SqlServerProfile({ + this.database, + this.hostname, + this.password, + this.port, + this.username, + }); + + SqlServerProfile.fromJson(core.Map json_) + : this( + database: json_.containsKey('database') + ? json_['database'] as core.String + : null, + hostname: json_.containsKey('hostname') + ? json_['hostname'] as core.String + : null, + password: json_.containsKey('password') + ? json_['password'] as core.String + : null, + port: json_.containsKey('port') ? json_['port'] as core.int : null, + username: json_.containsKey('username') + ? json_['username'] as core.String + : null, + ); + + core.Map toJson() => { + if (database != null) 'database': database!, + if (hostname != null) 'hostname': hostname!, + if (password != null) 'password': password!, + if (port != null) 'port': port!, + if (username != null) 'username': username!, + }; +} + +/// SQLServer database structure. +class SqlServerRdbms { + /// SQLServer schemas in the database server. + core.List? schemas; + + SqlServerRdbms({ + this.schemas, + }); + + SqlServerRdbms.fromJson(core.Map json_) + : this( + schemas: json_.containsKey('schemas') + ? (json_['schemas'] as core.List) + .map((value) => SqlServerSchema.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (schemas != null) 'schemas': schemas!, + }; +} + +/// SQLServer schema. +class SqlServerSchema { + /// Schema name. + core.String? schema; + + /// Tables in the schema. + core.List? tables; + + SqlServerSchema({ + this.schema, + this.tables, + }); + + SqlServerSchema.fromJson(core.Map json_) + : this( + schema: json_.containsKey('schema') + ? json_['schema'] as core.String + : null, + tables: json_.containsKey('tables') + ? (json_['tables'] as core.List) + .map((value) => SqlServerTable.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (schema != null) 'schema': schema!, + if (tables != null) 'tables': tables!, + }; +} + +/// SQLServer data source configuration +class SqlServerSourceConfig { + /// SQLServer objects to exclude from the stream. + SqlServerRdbms? excludeObjects; + + /// SQLServer objects to include in the stream. + SqlServerRdbms? includeObjects; + + /// Max concurrent backfill tasks. + core.int? maxConcurrentBackfillTasks; + + /// Max concurrent CDC tasks. + core.int? maxConcurrentCdcTasks; + + SqlServerSourceConfig({ + this.excludeObjects, + this.includeObjects, + this.maxConcurrentBackfillTasks, + this.maxConcurrentCdcTasks, + }); + + SqlServerSourceConfig.fromJson(core.Map json_) + : this( + excludeObjects: json_.containsKey('excludeObjects') + ? SqlServerRdbms.fromJson(json_['excludeObjects'] + as core.Map) + : null, + includeObjects: json_.containsKey('includeObjects') + ? SqlServerRdbms.fromJson(json_['includeObjects'] + as core.Map) + : null, + maxConcurrentBackfillTasks: + json_.containsKey('maxConcurrentBackfillTasks') + ? json_['maxConcurrentBackfillTasks'] as core.int + : null, + maxConcurrentCdcTasks: json_.containsKey('maxConcurrentCdcTasks') + ? json_['maxConcurrentCdcTasks'] as core.int + : null, + ); + + core.Map toJson() => { + if (excludeObjects != null) 'excludeObjects': excludeObjects!, + if (includeObjects != null) 'includeObjects': includeObjects!, + if (maxConcurrentBackfillTasks != null) + 'maxConcurrentBackfillTasks': maxConcurrentBackfillTasks!, + if (maxConcurrentCdcTasks != null) + 'maxConcurrentCdcTasks': maxConcurrentCdcTasks!, + }; +} + +/// SQLServer table. +class SqlServerTable { + /// SQLServer columns in the schema. + /// + /// When unspecified as part of include/exclude objects, includes/excludes + /// everything. + core.List? columns; + + /// Table name. + core.String? table; + + SqlServerTable({ + this.columns, + this.table, + }); + + SqlServerTable.fromJson(core.Map json_) + : this( + columns: json_.containsKey('columns') + ? (json_['columns'] as core.List) + .map((value) => SqlServerColumn.fromJson( + value as core.Map)) + .toList() + : null, + table: + json_.containsKey('table') ? json_['table'] as core.String : null, + ); + + core.Map toJson() => { + if (columns != null) 'columns': columns!, + if (table != null) 'table': table!, }; } diff --git a/generated/googleapis/lib/deploymentmanager/v2.dart b/generated/googleapis/lib/deploymentmanager/v2.dart index 299088106..bfee12efa 100644 --- a/generated/googleapis/lib/deploymentmanager/v2.dart +++ b/generated/googleapis/lib/deploymentmanager/v2.dart @@ -1409,14 +1409,31 @@ class Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -1425,12 +1442,19 @@ class Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; Binding({ @@ -2368,7 +2392,8 @@ class OperationWarnings { /// or zonal. - For global operations, use the `globalOperations` resource. - /// For regional operations, use the `regionOperations` resource. - For zonal /// operations, use the `zoneOperations` resource. For more information, read -/// Global, Regional, and Zonal Resources. +/// Global, Regional, and Zonal Resources. Note that completed Operation +/// resources have a limited retention period. class Operation { /// The value of `requestId` if you provided it in the request. /// diff --git a/generated/googleapis/lib/dfareporting/v3_5.dart b/generated/googleapis/lib/dfareporting/v3_5.dart index 59a93817a..7fbd3e45a 100644 --- a/generated/googleapis/lib/dfareporting/v3_5.dart +++ b/generated/googleapis/lib/dfareporting/v3_5.dart @@ -490,140 +490,7 @@ class CreativeCustomEvent { typedef DimensionValue = $DimensionValue; /// Extra information added to operations that support Scotty media requests. -class MediaRequestInfo { - /// The number of current bytes uploaded or downloaded. - core.String? currentBytes; - - /// Data to be copied to backend requests. - /// - /// Custom data is returned to Scotty in the agent_state field, which Scotty - /// will then provide in subsequent upload notifications. - core.String? customData; - - /// Set if the http request info is diff encoded. - /// - /// The value of this field is the version number of the base revision. This - /// is corresponding to Apiary's mediaDiffObjectVersion - /// (//depot/google3/java/com/google/api/server/media/variable/DiffObjectVersionVariable.java). - /// See go/esf-scotty-diff-upload for more information. - core.String? diffObjectVersion; - - /// The existence of the final_status field indicates that this is the last - /// call to the agent for this request_id. - /// - /// http://google3/uploader/agent/scotty_agent.proto?l=737&rcl=347601929 - core.int? finalStatus; - - /// The type of notification received from Scotty. - /// Possible string values are: - /// - "START" : Such requests signals the start of a request containing media - /// upload. Only the media field(s) in the inserted/updated resource are set. - /// The response should either return an error or succeed. On success, - /// responses don't need to contain anything. - /// - "PROGRESS" : Such requests signals that the upload has progressed and - /// that the backend might want to access the media file specified in relevant - /// fields in the resource. Only the media field(s) in the inserted/updated - /// resource are set. The response should either return an error or succeed. - /// On success, responses don't need to contain anything. - /// - "END" : Such requests signals the end of a request containing media - /// upload. END should be handled just like normal Insert/Upload requests, - /// that is, they should process the request and return a complete resource in - /// the response. Pointers to media data (a GFS path usually) appear in the - /// relevant fields in the inserted/updated resource. See gdata.Media in - /// data.proto. - /// - "RESPONSE_SENT" : Such requests occur after an END and signal that the - /// response has been sent back to the client. RESPONSE_SENT is only sent to - /// the backend if it is configured to receive them. The response does not - /// need to contain anything. - /// - "ERROR" : Such requests indicate that an error occurred while processing - /// the request. ERROR is only sent to the backend if it is configured to - /// receive them. It is not guaranteed that all errors will result in this - /// notification to the backend, even if the backend requests them. Since - /// these requests are just for informational purposes, the response does not - /// need to contain anything. - core.String? notificationType; - - /// The Scotty request ID. - core.String? requestId; - - /// The partition of the Scotty server handling this request. - /// - /// type is uploader_service.RequestReceivedParamsServingInfo - /// LINT.IfChange(request_received_params_serving_info_annotations) - /// LINT.ThenChange() - core.String? requestReceivedParamsServingInfo; - core.List get requestReceivedParamsServingInfoAsBytes => - convert.base64.decode(requestReceivedParamsServingInfo!); - - set requestReceivedParamsServingInfoAsBytes(core.List bytes_) { - requestReceivedParamsServingInfo = - convert.base64.encode(bytes_).replaceAll('/', '_').replaceAll('+', '-'); - } - - /// The total size of the file. - core.String? totalBytes; - - /// Whether the total bytes field contains an estimated data. - core.bool? totalBytesIsEstimated; - - MediaRequestInfo({ - this.currentBytes, - this.customData, - this.diffObjectVersion, - this.finalStatus, - this.notificationType, - this.requestId, - this.requestReceivedParamsServingInfo, - this.totalBytes, - this.totalBytesIsEstimated, - }); - - MediaRequestInfo.fromJson(core.Map json_) - : this( - currentBytes: json_.containsKey('currentBytes') - ? json_['currentBytes'] as core.String - : null, - customData: json_.containsKey('customData') - ? json_['customData'] as core.String - : null, - diffObjectVersion: json_.containsKey('diffObjectVersion') - ? json_['diffObjectVersion'] as core.String - : null, - finalStatus: json_.containsKey('finalStatus') - ? json_['finalStatus'] as core.int - : null, - notificationType: json_.containsKey('notificationType') - ? json_['notificationType'] as core.String - : null, - requestId: json_.containsKey('requestId') - ? json_['requestId'] as core.String - : null, - requestReceivedParamsServingInfo: - json_.containsKey('requestReceivedParamsServingInfo') - ? json_['requestReceivedParamsServingInfo'] as core.String - : null, - totalBytes: json_.containsKey('totalBytes') - ? json_['totalBytes'] as core.String - : null, - totalBytesIsEstimated: json_.containsKey('totalBytesIsEstimated') - ? json_['totalBytesIsEstimated'] as core.bool - : null, - ); - - core.Map toJson() => { - if (currentBytes != null) 'currentBytes': currentBytes!, - if (customData != null) 'customData': customData!, - if (diffObjectVersion != null) 'diffObjectVersion': diffObjectVersion!, - if (finalStatus != null) 'finalStatus': finalStatus!, - if (notificationType != null) 'notificationType': notificationType!, - if (requestId != null) 'requestId': requestId!, - if (requestReceivedParamsServingInfo != null) - 'requestReceivedParamsServingInfo': requestReceivedParamsServingInfo!, - if (totalBytes != null) 'totalBytes': totalBytes!, - if (totalBytesIsEstimated != null) - 'totalBytesIsEstimated': totalBytesIsEstimated!, - }; -} +typedef MediaRequestInfo = $MediaRequestInfo; /// This message is for backends to pass their scotty media specific fields to /// ESF. diff --git a/generated/googleapis/lib/dfareporting/v4.dart b/generated/googleapis/lib/dfareporting/v4.dart index d83d186df..d033e62fc 100644 --- a/generated/googleapis/lib/dfareporting/v4.dart +++ b/generated/googleapis/lib/dfareporting/v4.dart @@ -15370,6 +15370,12 @@ class ContentCategory { /// A Conversion represents when a user successfully performs a desired action /// after seeing an ad. class Conversion { + /// This represents consent for ad user data. + /// Possible string values are: + /// - "GRANTED" : Granted. + /// - "DENIED" : Denied. + core.String? adUserDataConsent; + /// Whether this particular request may come from a user under the age of 13, /// under COPPA compliance. core.bool? childDirectedTreatment; @@ -15498,6 +15504,7 @@ class Conversion { core.double? value; Conversion({ + this.adUserDataConsent, this.childDirectedTreatment, this.customVariables, this.dclid, @@ -15522,6 +15529,9 @@ class Conversion { Conversion.fromJson(core.Map json_) : this( + adUserDataConsent: json_.containsKey('adUserDataConsent') + ? json_['adUserDataConsent'] as core.String + : null, childDirectedTreatment: json_.containsKey('childDirectedTreatment') ? json_['childDirectedTreatment'] as core.bool : null, @@ -15591,6 +15601,7 @@ class Conversion { ); core.Map toJson() => { + if (adUserDataConsent != null) 'adUserDataConsent': adUserDataConsent!, if (childDirectedTreatment != null) 'childDirectedTreatment': childDirectedTreatment!, if (customVariables != null) 'customVariables': customVariables!, @@ -24079,6 +24090,11 @@ class Placement { /// ID of the content category assigned to this placement. core.String? contentCategoryId; + /// Conversion domain overrides for a placement. + /// + /// Optional. + PlacementConversionDomainOverride? conversionDomainOverride; + /// Information about the creation of this placement. /// /// This is a read-only field. @@ -24283,6 +24299,7 @@ class Placement { this.comment, this.compatibility, this.contentCategoryId, + this.conversionDomainOverride, this.createInfo, this.directorySiteId, this.directorySiteIdDimensionValue, @@ -24359,6 +24376,12 @@ class Placement { contentCategoryId: json_.containsKey('contentCategoryId') ? json_['contentCategoryId'] as core.String : null, + conversionDomainOverride: + json_.containsKey('conversionDomainOverride') + ? PlacementConversionDomainOverride.fromJson( + json_['conversionDomainOverride'] + as core.Map) + : null, createInfo: json_.containsKey('createInfo') ? LastModifiedInfo.fromJson( json_['createInfo'] as core.Map) @@ -24483,6 +24506,8 @@ class Placement { if (comment != null) 'comment': comment!, if (compatibility != null) 'compatibility': compatibility!, if (contentCategoryId != null) 'contentCategoryId': contentCategoryId!, + if (conversionDomainOverride != null) + 'conversionDomainOverride': conversionDomainOverride!, if (createInfo != null) 'createInfo': createInfo!, if (directorySiteId != null) 'directorySiteId': directorySiteId!, if (directorySiteIdDimensionValue != null) @@ -24583,6 +24608,28 @@ class PlacementAssignment { }; } +class PlacementConversionDomainOverride { + core.List? conversionDomains; + + PlacementConversionDomainOverride({ + this.conversionDomains, + }); + + PlacementConversionDomainOverride.fromJson(core.Map json_) + : this( + conversionDomains: json_.containsKey('conversionDomains') + ? (json_['conversionDomains'] as core.List) + .map((value) => PlacementSingleConversionDomain.fromJson( + value as core.Map)) + .toList() + : null, + ); + + core.Map toJson() => { + if (conversionDomains != null) 'conversionDomains': conversionDomains!, + }; +} + /// Contains properties of a package or roadblock. class PlacementGroup { /// Account ID of this placement group. @@ -24929,6 +24976,33 @@ class PlacementGroupsListResponse { }; } +class PlacementSingleConversionDomain { + core.String? conversionDomainId; + core.String? conversionDomainValue; + + PlacementSingleConversionDomain({ + this.conversionDomainId, + this.conversionDomainValue, + }); + + PlacementSingleConversionDomain.fromJson(core.Map json_) + : this( + conversionDomainId: json_.containsKey('conversionDomainId') + ? json_['conversionDomainId'] as core.String + : null, + conversionDomainValue: json_.containsKey('conversionDomainValue') + ? json_['conversionDomainValue'] as core.String + : null, + ); + + core.Map toJson() => { + if (conversionDomainId != null) + 'conversionDomainId': conversionDomainId!, + if (conversionDomainValue != null) + 'conversionDomainValue': conversionDomainValue!, + }; +} + /// Placement Strategy List Response class PlacementStrategiesListResponse { /// Identifies what kind of resource this is. @@ -28672,7 +28746,7 @@ class TagSetting { /// Whether static landing page URLs should be included in the tags. /// - /// This setting applies only to placements. + /// New placements will default to the value set on their site. core.bool? includeClickThroughUrls; /// Whether click-tracking string should be included in the tags. @@ -29410,6 +29484,7 @@ class UniversalAdId { /// - "AD_ID_OFFICIAL" /// - "CLEARCAST" /// - "DCM" + /// - "ARPP" core.String? registry; /// ID value for this creative. diff --git a/generated/googleapis/lib/dialogflow/v2.dart b/generated/googleapis/lib/dialogflow/v2.dart index e0463bfa2..83bee80f8 100644 --- a/generated/googleapis/lib/dialogflow/v2.dart +++ b/generated/googleapis/lib/dialogflow/v2.dart @@ -13260,10 +13260,16 @@ class GoogleCloudDialogflowV2AgentAssistantFeedbackSummarizationFeedback { /// Text of actual submitted summary. core.String? summaryText; + /// Actual text sections of submitted summary. + /// + /// Optional. + core.Map? textSections; + GoogleCloudDialogflowV2AgentAssistantFeedbackSummarizationFeedback({ this.startTime, this.submitTime, this.summaryText, + this.textSections, }); GoogleCloudDialogflowV2AgentAssistantFeedbackSummarizationFeedback.fromJson( @@ -13278,12 +13284,22 @@ class GoogleCloudDialogflowV2AgentAssistantFeedbackSummarizationFeedback { summaryText: json_.containsKey('summaryText') ? json_['summaryText'] as core.String : null, + textSections: json_.containsKey('textSections') + ? (json_['textSections'] as core.Map) + .map( + (key, value) => core.MapEntry( + key, + value as core.String, + ), + ) + : null, ); core.Map toJson() => { if (startTime != null) 'startTime': startTime!, if (submitTime != null) 'submitTime': submitTime!, if (summaryText != null) 'summaryText': summaryText!, + if (textSections != null) 'textSections': textSections!, }; } @@ -13905,7 +13921,7 @@ class GoogleCloudDialogflowV2AutomatedAgentConfig { /// Required. core.String? agent; - /// Sets Dialogflow CX session life time. + /// Configure lifetime of the Dialogflow session. /// /// By default, a Dialogflow CX session remains active and its data is stored /// for 30 minutes after the last request is sent for the session. This value @@ -16936,6 +16952,13 @@ class GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionFeatureConfig { /// Optional. core.bool? disableAgentQueryLogging; + /// Enable including conversation context during query answer generation. + /// + /// Supported features: KNOWLEDGE_SEARCH. + /// + /// Optional. + core.bool? enableConversationAugmentedQuery; + /// Automatically iterates all participants and tries to compile suggestions. /// /// Supported features: ARTICLE_SUGGESTION, FAQ, DIALOGFLOW_ASSIST, @@ -16959,6 +16982,7 @@ class GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionFeatureConfig { this.conversationModelConfig, this.conversationProcessConfig, this.disableAgentQueryLogging, + this.enableConversationAugmentedQuery, this.enableEventBasedSuggestion, this.queryConfig, this.suggestionFeature, @@ -16983,6 +17007,10 @@ class GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionFeatureConfig { json_.containsKey('disableAgentQueryLogging') ? json_['disableAgentQueryLogging'] as core.bool : null, + enableConversationAugmentedQuery: + json_.containsKey('enableConversationAugmentedQuery') + ? json_['enableConversationAugmentedQuery'] as core.bool + : null, enableEventBasedSuggestion: json_.containsKey('enableEventBasedSuggestion') ? json_['enableEventBasedSuggestion'] as core.bool @@ -17012,6 +17040,8 @@ class GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionFeatureConfig { 'conversationProcessConfig': conversationProcessConfig!, if (disableAgentQueryLogging != null) 'disableAgentQueryLogging': disableAgentQueryLogging!, + if (enableConversationAugmentedQuery != null) + 'enableConversationAugmentedQuery': enableConversationAugmentedQuery!, if (enableEventBasedSuggestion != null) 'enableEventBasedSuggestion': enableEventBasedSuggestion!, if (queryConfig != null) 'queryConfig': queryConfig!, @@ -17069,6 +17099,13 @@ class GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfig { /// Currently, if unset, defaults to 10. And the max number is 20. core.int? maxResults; + /// The customized sections chosen to return when requesting a summary of a + /// conversation. + /// + /// Optional. + GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigSections? + sections; + GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfig({ this.confidenceThreshold, this.contextFilterSettings, @@ -17076,6 +17113,7 @@ class GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfig { this.documentQuerySource, this.knowledgeBaseQuerySource, this.maxResults, + this.sections, }); GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfig.fromJson( @@ -17108,6 +17146,11 @@ class GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfig { maxResults: json_.containsKey('maxResults') ? json_['maxResults'] as core.int : null, + sections: json_.containsKey('sections') + ? GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigSections + .fromJson( + json_['sections'] as core.Map) + : null, ); core.Map toJson() => { @@ -17122,6 +17165,7 @@ class GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfig { if (knowledgeBaseQuerySource != null) 'knowledgeBaseQuerySource': knowledgeBaseQuerySource!, if (maxResults != null) 'maxResults': maxResults!, + if (sections != null) 'sections': sections!, }; } @@ -17299,6 +17343,38 @@ class GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigKnowl }; } +/// Custom sections to return when requesting a summary of a conversation. +/// +/// This is only supported when `baseline_model_version` == '2.0'. Supported +/// features: CONVERSATION_SUMMARIZATION, CONVERSATION_SUMMARIZATION_VOICE. +class GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigSections { + /// The selected sections chosen to return when requesting a summary of a + /// conversation. + /// + /// A duplicate selected section will be treated as a single selected section. + /// If section types are not provided, the default will be {SITUATION, ACTION, + /// RESULT}. + core.List? sectionTypes; + + GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigSections({ + this.sectionTypes, + }); + + GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionQueryConfigSections.fromJson( + core.Map json_) + : this( + sectionTypes: json_.containsKey('sectionTypes') + ? (json_['sectionTypes'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + ); + + core.Map toJson() => { + if (sectionTypes != null) 'sectionTypes': sectionTypes!, + }; +} + /// Settings of suggestion trigger. class GoogleCloudDialogflowV2HumanAgentAssistantConfigSuggestionTriggerSettings { /// Do not trigger if last utterance is small talk. @@ -17692,17 +17768,10 @@ class GoogleCloudDialogflowV2InputAudioConfig { /// Which Speech model to select for the given request. /// - /// Select the model best suited to your domain to get best results. If a - /// model is not explicitly specified, then we auto-select a model based on - /// the parameters in the InputAudioConfig. If enhanced speech model is - /// enabled for the agent and an enhanced version of the specified model for - /// the language does not exist, then the speech is recognized using the - /// standard version of the specified model. Refer to - /// [Cloud Speech API documentation](https://cloud.google.com/speech-to-text/docs/basics#select-model) - /// for more details. If you specify a model, the following models typically - /// have the best performance: - phone_call (best for Agent Assist and - /// telephony) - latest_short (best for Dialogflow non-telephony) - - /// command_and_search (best for very short utterances and commands) + /// For more information, see + /// [Speech models](https://cloud.google.com/dialogflow/es/docs/speech-models). + /// + /// Optional. core.String? model; /// Which variant of the Speech model to use. @@ -17727,6 +17796,13 @@ class GoogleCloudDialogflowV2InputAudioConfig { /// for how to make your project eligible. core.String? modelVariant; + /// If `true`, the request will opt out for STT conformer model migration. + /// + /// This field will be deprecated once force migration takes place in June + /// 2024. Please refer to + /// [Dialogflow ES Speech model migration](https://cloud.google.com/dialogflow/es/docs/speech-model-migration). + core.bool? optOutConformerModelMigration; + /// A list of strings containing words and phrases that the speech recognizer /// should recognize with higher likelihood. /// @@ -17777,6 +17853,7 @@ class GoogleCloudDialogflowV2InputAudioConfig { this.languageCode, this.model, this.modelVariant, + this.optOutConformerModelMigration, this.phraseHints, this.sampleRateHertz, this.singleUtterance, @@ -17807,6 +17884,10 @@ class GoogleCloudDialogflowV2InputAudioConfig { modelVariant: json_.containsKey('modelVariant') ? json_['modelVariant'] as core.String : null, + optOutConformerModelMigration: + json_.containsKey('optOutConformerModelMigration') + ? json_['optOutConformerModelMigration'] as core.bool + : null, phraseHints: json_.containsKey('phraseHints') ? (json_['phraseHints'] as core.List) .map((value) => value as core.String) @@ -17836,6 +17917,8 @@ class GoogleCloudDialogflowV2InputAudioConfig { if (languageCode != null) 'languageCode': languageCode!, if (model != null) 'model': model!, if (modelVariant != null) 'modelVariant': modelVariant!, + if (optOutConformerModelMigration != null) + 'optOutConformerModelMigration': optOutConformerModelMigration!, if (phraseHints != null) 'phraseHints': phraseHints!, if (sampleRateHertz != null) 'sampleRateHertz': sampleRateHertz!, if (singleUtterance != null) 'singleUtterance': singleUtterance!, @@ -21485,8 +21568,9 @@ class GoogleCloudDialogflowV2SearchKnowledgeAnswer { /// The type of the answer. /// Possible string values are: /// - "ANSWER_TYPE_UNSPECIFIED" : The answer has a unspecified type. - /// - "FAQ" : The answer is from FAQ doucments. + /// - "FAQ" : The answer is from FAQ documents. /// - "GENERATIVE" : The answer is from generative model. + /// - "INTENT" : The answer is from intent matching. core.String? answerType; GoogleCloudDialogflowV2SearchKnowledgeAnswer({ @@ -21648,8 +21732,12 @@ class GoogleCloudDialogflowV2SearchKnowledgeResponse { /// base, ordered by confidence. core.List? answers; + /// The rewritten query used to search knowledge. + core.String? rewrittenQuery; + GoogleCloudDialogflowV2SearchKnowledgeResponse({ this.answers, + this.rewrittenQuery, }); GoogleCloudDialogflowV2SearchKnowledgeResponse.fromJson(core.Map json_) @@ -21661,10 +21749,14 @@ class GoogleCloudDialogflowV2SearchKnowledgeResponse { value as core.Map)) .toList() : null, + rewrittenQuery: json_.containsKey('rewrittenQuery') + ? json_['rewrittenQuery'] as core.String + : null, ); core.Map toJson() => { if (answers != null) 'answers': answers!, + if (rewrittenQuery != null) 'rewrittenQuery': rewrittenQuery!, }; } @@ -21674,7 +21766,7 @@ class GoogleCloudDialogflowV2SearchKnowledgeResponse { /// See: /// https://cloud.google.com/natural-language/docs/basics#interpreting_sentiment_analysis_values /// for how to interpret the result. -typedef GoogleCloudDialogflowV2Sentiment = $Shared07; +typedef GoogleCloudDialogflowV2Sentiment = $Shared08; /// Configures the types of sentiment analysis to perform. class GoogleCloudDialogflowV2SentimentAnalysisRequestConfig { @@ -22060,9 +22152,18 @@ class GoogleCloudDialogflowV2SpeechToTextConfig { /// Which Speech model to select. /// /// Select the model best suited to your domain to get best results. If a - /// model is not explicitly specified, then a default model is used. Refer to + /// model is not explicitly specified, then Dialogflow auto-selects a model + /// based on other parameters in the SpeechToTextConfig and Agent settings. If + /// enhanced speech model is enabled for the agent and an enhanced version of + /// the specified model for the language does not exist, then the speech is + /// recognized using the standard version of the specified model. Refer to /// [Cloud Speech API documentation](https://cloud.google.com/speech-to-text/docs/basics#select-model) - /// for more details. + /// for more details. If you specify a model, the following models typically + /// have the best performance: - phone_call (best for Agent Assist and + /// telephony) - latest_short (best for Dialogflow non-telephony) - + /// command_and_search Leave this field unspecified to use + /// [Agent Speech settings](https://cloud.google.com/dialogflow/cx/docs/concept/agent#settings-speech) + /// for model selection. core.String? model; /// The speech model used in speech to text. diff --git a/generated/googleapis/lib/dialogflow/v3.dart b/generated/googleapis/lib/dialogflow/v3.dart index f36f442d9..14edbe491 100644 --- a/generated/googleapis/lib/dialogflow/v3.dart +++ b/generated/googleapis/lib/dialogflow/v3.dart @@ -34,6 +34,7 @@ /// - [ProjectsLocationsAgentsFlowsPagesResource] /// - [ProjectsLocationsAgentsFlowsTransitionRouteGroupsResource] /// - [ProjectsLocationsAgentsFlowsVersionsResource] +/// - [ProjectsLocationsAgentsGeneratorsResource] /// - [ProjectsLocationsAgentsIntentsResource] /// - [ProjectsLocationsAgentsSessionsResource] /// - [ProjectsLocationsAgentsSessionsEntityTypesResource] @@ -204,6 +205,8 @@ class ProjectsLocationsAgentsResource { ProjectsLocationsAgentsEnvironmentsResource(_requester); ProjectsLocationsAgentsFlowsResource get flows => ProjectsLocationsAgentsFlowsResource(_requester); + ProjectsLocationsAgentsGeneratorsResource get generators => + ProjectsLocationsAgentsGeneratorsResource(_requester); ProjectsLocationsAgentsIntentsResource get intents => ProjectsLocationsAgentsIntentsResource(_requester); ProjectsLocationsAgentsSessionsResource get sessions => @@ -947,6 +950,49 @@ class ProjectsLocationsAgentsEntityTypesResource { response_ as core.Map); } + /// Exports the selected entity types. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [parent] - Required. The name of the parent agent to export entity types. + /// Format: `projects//locations//agents/`. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/agents/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleLongrunningOperation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future export( + GoogleCloudDialogflowCxV3ExportEntityTypesRequest request, + core.String parent, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v3/' + core.Uri.encodeFull('$parent') + '/entityTypes:export'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return GoogleLongrunningOperation.fromJson( + response_ as core.Map); + } + /// Retrieves the specified entity type. /// /// Request parameters: @@ -995,6 +1041,49 @@ class ProjectsLocationsAgentsEntityTypesResource { response_ as core.Map); } + /// Imports the specified entitytypes into the agent. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [parent] - Required. The agent to import the entity types into. Format: + /// `projects//locations//agents/`. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/agents/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleLongrunningOperation]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future import( + GoogleCloudDialogflowCxV3ImportEntityTypesRequest request, + core.String parent, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v3/' + core.Uri.encodeFull('$parent') + '/entityTypes:import'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return GoogleLongrunningOperation.fromJson( + response_ as core.Map); + } + /// Returns the list of all entity types in the specified agent. /// /// Request parameters: @@ -2147,6 +2236,66 @@ class ProjectsLocationsAgentsEnvironmentsSessionsResource { return GoogleCloudDialogflowCxV3MatchIntentResponse.fromJson( response_ as core.Map); } + + /// Processes a natural language query and returns structured, actionable data + /// as a result through server-side streaming. + /// + /// Server-side streaming allows Dialogflow to send + /// [partial responses](https://cloud.google.com/dialogflow/cx/docs/concept/fulfillment#partial-response) + /// earlier in a single request. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [session] - Required. The name of the session this query is sent to. + /// Format: `projects//locations//agents//sessions/` or + /// `projects//locations//agents//environments//sessions/`. If `Environment + /// ID` is not specified, we assume default 'draft' environment. It's up to + /// the API caller to choose an appropriate `Session ID`. It can be a random + /// number or some type of session identifiers (preferably hashed). The length + /// of the `Session ID` must not exceed 36 characters. For more information, + /// see the + /// [sessions guide](https://cloud.google.com/dialogflow/cx/docs/concept/session). + /// Note: Always use agent versions for production traffic. See + /// [Versions and environments](https://cloud.google.com/dialogflow/cx/docs/concept/version). + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/agents/\[^/\]+/environments/\[^/\]+/sessions/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleCloudDialogflowCxV3DetectIntentResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future + serverStreamingDetectIntent( + GoogleCloudDialogflowCxV3DetectIntentRequest request, + core.String session, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v3/' + + core.Uri.encodeFull('$session') + + ':serverStreamingDetectIntent'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return GoogleCloudDialogflowCxV3DetectIntentResponse.fromJson( + response_ as core.Map); + } } class ProjectsLocationsAgentsEnvironmentsSessionsEntityTypesResource { @@ -3855,6 +4004,256 @@ class ProjectsLocationsAgentsFlowsVersionsResource { } } +class ProjectsLocationsAgentsGeneratorsResource { + final commons.ApiRequester _requester; + + ProjectsLocationsAgentsGeneratorsResource(commons.ApiRequester client) + : _requester = client; + + /// Creates a generator in the specified agent. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [parent] - Required. The agent to create a generator for. Format: + /// `projects//locations//agents/`. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/agents/\[^/\]+$`. + /// + /// [languageCode] - The language to create generators for the following + /// fields: * `Generator.prompt_text.text` If not specified, the agent's + /// default language is used. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleCloudDialogflowCxV3Generator]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future create( + GoogleCloudDialogflowCxV3Generator request, + core.String parent, { + core.String? languageCode, + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if (languageCode != null) 'languageCode': [languageCode], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v3/' + core.Uri.encodeFull('$parent') + '/generators'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return GoogleCloudDialogflowCxV3Generator.fromJson( + response_ as core.Map); + } + + /// Deletes the specified generators. + /// + /// Request parameters: + /// + /// [name] - Required. The name of the generator to delete. Format: + /// `projects//locations//agents//generators/`. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/agents/\[^/\]+/generators/\[^/\]+$`. + /// + /// [force] - This field has no effect for generators not being used. For + /// generators that are used by pages/flows/transition route groups: * If + /// `force` is set to false, an error will be returned with message indicating + /// the referenced resources. * If `force` is set to true, Dialogflow will + /// remove the generator, as well as any references to the generator (i.e. + /// Generator) in fulfillments. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleProtobufEmpty]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future delete( + core.String name, { + core.bool? force, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (force != null) 'force': ['${force}'], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v3/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'DELETE', + queryParams: queryParams_, + ); + return GoogleProtobufEmpty.fromJson( + response_ as core.Map); + } + + /// Retrieves the specified generator. + /// + /// Request parameters: + /// + /// [name] - Required. The name of the generator. Format: + /// `projects//locations//agents//generators/`. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/agents/\[^/\]+/generators/\[^/\]+$`. + /// + /// [languageCode] - The language to list generators for. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleCloudDialogflowCxV3Generator]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String name, { + core.String? languageCode, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (languageCode != null) 'languageCode': [languageCode], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v3/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return GoogleCloudDialogflowCxV3Generator.fromJson( + response_ as core.Map); + } + + /// Returns the list of all generators in the specified agent. + /// + /// Request parameters: + /// + /// [parent] - Required. The agent to list all generators for. Format: + /// `projects//locations//agents/`. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/agents/\[^/\]+$`. + /// + /// [languageCode] - The language to list generators for. + /// + /// [pageSize] - The maximum number of items to return in a single page. By + /// default 100 and at most 1000. + /// + /// [pageToken] - The next_page_token value returned from a previous list + /// request. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleCloudDialogflowCxV3ListGeneratorsResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future list( + core.String parent, { + core.String? languageCode, + core.int? pageSize, + core.String? pageToken, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (languageCode != null) 'languageCode': [languageCode], + if (pageSize != null) 'pageSize': ['${pageSize}'], + if (pageToken != null) 'pageToken': [pageToken], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v3/' + core.Uri.encodeFull('$parent') + '/generators'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return GoogleCloudDialogflowCxV3ListGeneratorsResponse.fromJson( + response_ as core.Map); + } + + /// Update the specified generator. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [name] - The unique identifier of the generator. Must be set for the + /// Generators.UpdateGenerator method. Generators.CreateGenerate populates the + /// name automatically. Format: `projects//locations//agents//generators/`. + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/agents/\[^/\]+/generators/\[^/\]+$`. + /// + /// [languageCode] - The language to list generators for. + /// + /// [updateMask] - The mask to control which fields get updated. If the mask + /// is not present, all fields will be updated. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleCloudDialogflowCxV3Generator]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future patch( + GoogleCloudDialogflowCxV3Generator request, + core.String name, { + core.String? languageCode, + core.String? updateMask, + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if (languageCode != null) 'languageCode': [languageCode], + if (updateMask != null) 'updateMask': [updateMask], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v3/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'PATCH', + body: body_, + queryParams: queryParams_, + ); + return GoogleCloudDialogflowCxV3Generator.fromJson( + response_ as core.Map); + } +} + class ProjectsLocationsAgentsIntentsResource { final commons.ApiRequester _requester; @@ -4319,15 +4718,66 @@ class ProjectsLocationsAgentsSessionsResource { /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [GoogleCloudDialogflowCxV3FulfillIntentResponse]. + /// Completes with a [GoogleCloudDialogflowCxV3FulfillIntentResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future fulfillIntent( + GoogleCloudDialogflowCxV3FulfillIntentRequest request, + core.String session, { + core.String? $fields, + }) async { + final body_ = convert.json.encode(request); + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v3/' + core.Uri.encodeFull('$session') + ':fulfillIntent'; + + final response_ = await _requester.request( + url_, + 'POST', + body: body_, + queryParams: queryParams_, + ); + return GoogleCloudDialogflowCxV3FulfillIntentResponse.fromJson( + response_ as core.Map); + } + + /// Returns preliminary intent match results, doesn't change the session + /// status. + /// + /// [request] - The metadata request object. + /// + /// Request parameters: + /// + /// [session] - Required. The name of the session this query is sent to. + /// Format: `projects//locations//agents//sessions/` or + /// `projects//locations//agents//environments//sessions/`. If `Environment + /// ID` is not specified, we assume default 'draft' environment. It's up to + /// the API caller to choose an appropriate `Session ID`. It can be a random + /// number or some type of session identifiers (preferably hashed). The length + /// of the `Session ID` must not exceed 36 characters. For more information, + /// see the + /// [sessions guide](https://cloud.google.com/dialogflow/cx/docs/concept/session). + /// Value must have pattern + /// `^projects/\[^/\]+/locations/\[^/\]+/agents/\[^/\]+/sessions/\[^/\]+$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [GoogleCloudDialogflowCxV3MatchIntentResponse]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future fulfillIntent( - GoogleCloudDialogflowCxV3FulfillIntentRequest request, + async.Future matchIntent( + GoogleCloudDialogflowCxV3MatchIntentRequest request, core.String session, { core.String? $fields, }) async { @@ -4336,7 +4786,7 @@ class ProjectsLocationsAgentsSessionsResource { if ($fields != null) 'fields': [$fields], }; - final url_ = 'v3/' + core.Uri.encodeFull('$session') + ':fulfillIntent'; + final url_ = 'v3/' + core.Uri.encodeFull('$session') + ':matchIntent'; final response_ = await _requester.request( url_, @@ -4344,12 +4794,16 @@ class ProjectsLocationsAgentsSessionsResource { body: body_, queryParams: queryParams_, ); - return GoogleCloudDialogflowCxV3FulfillIntentResponse.fromJson( + return GoogleCloudDialogflowCxV3MatchIntentResponse.fromJson( response_ as core.Map); } - /// Returns preliminary intent match results, doesn't change the session - /// status. + /// Processes a natural language query and returns structured, actionable data + /// as a result through server-side streaming. + /// + /// Server-side streaming allows Dialogflow to send + /// [partial responses](https://cloud.google.com/dialogflow/cx/docs/concept/fulfillment#partial-response) + /// earlier in a single request. /// /// [request] - The metadata request object. /// @@ -4364,21 +4818,24 @@ class ProjectsLocationsAgentsSessionsResource { /// of the `Session ID` must not exceed 36 characters. For more information, /// see the /// [sessions guide](https://cloud.google.com/dialogflow/cx/docs/concept/session). + /// Note: Always use agent versions for production traffic. See + /// [Versions and environments](https://cloud.google.com/dialogflow/cx/docs/concept/version). /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/agents/\[^/\]+/sessions/\[^/\]+$`. /// /// [$fields] - Selector specifying which fields to include in a partial /// response. /// - /// Completes with a [GoogleCloudDialogflowCxV3MatchIntentResponse]. + /// Completes with a [GoogleCloudDialogflowCxV3DetectIntentResponse]. /// /// Completes with a [commons.ApiRequestError] if the API endpoint returned an /// error. /// /// If the used [http.Client] completes with an error when making a REST call, /// this method will complete with the same error. - async.Future matchIntent( - GoogleCloudDialogflowCxV3MatchIntentRequest request, + async.Future + serverStreamingDetectIntent( + GoogleCloudDialogflowCxV3DetectIntentRequest request, core.String session, { core.String? $fields, }) async { @@ -4387,7 +4844,9 @@ class ProjectsLocationsAgentsSessionsResource { if ($fields != null) 'fields': [$fields], }; - final url_ = 'v3/' + core.Uri.encodeFull('$session') + ':matchIntent'; + final url_ = 'v3/' + + core.Uri.encodeFull('$session') + + ':serverStreamingDetectIntent'; final response_ = await _requester.request( url_, @@ -4395,7 +4854,7 @@ class ProjectsLocationsAgentsSessionsResource { body: body_, queryParams: queryParams_, ); - return GoogleCloudDialogflowCxV3MatchIntentResponse.fromJson( + return GoogleCloudDialogflowCxV3DetectIntentResponse.fromJson( response_ as core.Map); } @@ -6999,12 +7458,8 @@ class GoogleCloudDialogflowCxV3AudioInput { /// speech detection and may inform the client that an utterance has been /// detected. Note that no-speech event is not expected in this phase. The /// client provides this configuration in terms of the durations of those two -/// phases. The durations are measured in terms of the audio length fromt the -/// the start of the input audio. The flow goes like below: --\> Time without -/// speech detection | utterance only | utterance or no-speech event | | -/// +-------------+ | +------------+ | +---------------+ ----------+ no barge-in -/// +-|-+ barge-in +-|-+ normal period +----------- +-------------+ | -/// +------------+ | +---------------+ No-speech event is a response with +/// phases. The durations are measured in terms of the audio length from the the +/// start of the input audio. No-speech event is a response with /// END_OF_UTTERANCE without any transcript following up. class GoogleCloudDialogflowCxV3BargeInConfig { /// Duration that is not eligible for barge-in at the beginning of the input @@ -7190,8 +7645,8 @@ class GoogleCloudDialogflowCxV3BoostSpecs { /// Data Stores where the boosting configuration is applied. /// /// The full names of the referenced data stores. Formats: - /// \`projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}\` - /// \`projects/{project}/locations/{location}/dataStores/{data_store} + /// `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}` + /// `projects/{project}/locations/{location}/dataStores/{data_store}` /// /// Optional. core.List? dataStores; @@ -7292,6 +7747,9 @@ class GoogleCloudDialogflowCxV3Changelog { /// The affected resource display name of the change. core.String? displayName; + /// The affected language code of the change. + core.String? languageCode; + /// The unique identifier of the changelog. /// /// Format: `projects//locations//agents//changelogs/`. @@ -7310,6 +7768,7 @@ class GoogleCloudDialogflowCxV3Changelog { this.action, this.createTime, this.displayName, + this.languageCode, this.name, this.resource, this.type, @@ -7327,6 +7786,9 @@ class GoogleCloudDialogflowCxV3Changelog { displayName: json_.containsKey('displayName') ? json_['displayName'] as core.String : null, + languageCode: json_.containsKey('languageCode') + ? json_['languageCode'] as core.String + : null, name: json_.containsKey('name') ? json_['name'] as core.String : null, resource: json_.containsKey('resource') ? json_['resource'] as core.String @@ -7341,6 +7803,7 @@ class GoogleCloudDialogflowCxV3Changelog { if (action != null) 'action': action!, if (createTime != null) 'createTime': createTime!, if (displayName != null) 'displayName': displayName!, + if (languageCode != null) 'languageCode': languageCode!, if (name != null) 'name': name!, if (resource != null) 'resource': resource!, if (type != null) 'type': type!, @@ -9028,6 +9491,95 @@ class GoogleCloudDialogflowCxV3ExportAgentRequestGitDestination { }; } +/// The request message for EntityTypes.ExportEntityTypes. +class GoogleCloudDialogflowCxV3ExportEntityTypesRequest { + /// The data format of the exported entity types. + /// + /// If not specified, `BLOB` is assumed. + /// + /// Optional. + /// Possible string values are: + /// - "DATA_FORMAT_UNSPECIFIED" : Unspecified format. Treated as `BLOB`. + /// - "BLOB" : EntityTypes will be exported as raw bytes. + /// - "JSON_PACKAGE" : EntityTypes will be exported in JSON Package format. + core.String? dataFormat; + + /// The name of the entity types to export. + /// + /// Format: `projects//locations//agents//entityTypes/`. + /// + /// Required. + core.List? entityTypes; + + /// The option to return the serialized entity types inline. + /// + /// Optional. + core.bool? entityTypesContentInline; + + /// The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to + /// export the entity types to. + /// + /// The format of this URI must be `gs:///`. Dialogflow performs a write + /// operation for the Cloud Storage object on the caller's behalf, so your + /// request authentication must have write permissions for the object. For + /// more information, see + /// [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage). + /// + /// Optional. + core.String? entityTypesUri; + + /// The language to retrieve the entity type for. + /// + /// The following fields are language dependent: * `EntityType.entities.value` + /// * `EntityType.entities.synonyms` * `EntityType.excluded_phrases.value` If + /// not specified, all language dependent fields will be retrieved. + /// [Many languages](https://cloud.google.com/dialogflow/docs/reference/language) + /// are supported. Note: languages must be enabled in the agent before they + /// can be used. + /// + /// Optional. + core.String? languageCode; + + GoogleCloudDialogflowCxV3ExportEntityTypesRequest({ + this.dataFormat, + this.entityTypes, + this.entityTypesContentInline, + this.entityTypesUri, + this.languageCode, + }); + + GoogleCloudDialogflowCxV3ExportEntityTypesRequest.fromJson(core.Map json_) + : this( + dataFormat: json_.containsKey('dataFormat') + ? json_['dataFormat'] as core.String + : null, + entityTypes: json_.containsKey('entityTypes') + ? (json_['entityTypes'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + entityTypesContentInline: + json_.containsKey('entityTypesContentInline') + ? json_['entityTypesContentInline'] as core.bool + : null, + entityTypesUri: json_.containsKey('entityTypesUri') + ? json_['entityTypesUri'] as core.String + : null, + languageCode: json_.containsKey('languageCode') + ? json_['languageCode'] as core.String + : null, + ); + + core.Map toJson() => { + if (dataFormat != null) 'dataFormat': dataFormat!, + if (entityTypes != null) 'entityTypes': entityTypes!, + if (entityTypesContentInline != null) + 'entityTypesContentInline': entityTypesContentInline!, + if (entityTypesUri != null) 'entityTypesUri': entityTypesUri!, + if (languageCode != null) 'languageCode': languageCode!, + }; +} + /// The request message for Flows.ExportFlow. class GoogleCloudDialogflowCxV3ExportFlowRequest { /// The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to @@ -9203,8 +9755,8 @@ class GoogleCloudDialogflowCxV3FilterSpecs { /// Data Stores where the boosting configuration is applied. /// /// The full names of the referenced data stores. Formats: - /// \`projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}\` - /// \`projects/{project}/locations/{location}/dataStores/{data_store} + /// `projects/{project}/locations/{location}/collections/{collection}/dataStores/{data_store}` + /// `projects/{project}/locations/{location}/dataStores/{data_store}` /// /// Optional. core.List? dataStores; @@ -10245,12 +10797,19 @@ class GoogleCloudDialogflowCxV3GenerativeSettingsKnowledgeConnectorSettings { /// freshly roasted coffee beans". core.String? businessDescription; + /// Whether to disable fallback to Data Store search results (in case the LLM + /// couldn't pick a proper answer). + /// + /// Per default the feature is enabled. + core.bool? disableDataStoreFallback; + GoogleCloudDialogflowCxV3GenerativeSettingsKnowledgeConnectorSettings({ this.agent, this.agentIdentity, this.agentScope, this.business, this.businessDescription, + this.disableDataStoreFallback, }); GoogleCloudDialogflowCxV3GenerativeSettingsKnowledgeConnectorSettings.fromJson( @@ -10270,6 +10829,10 @@ class GoogleCloudDialogflowCxV3GenerativeSettingsKnowledgeConnectorSettings { businessDescription: json_.containsKey('businessDescription') ? json_['businessDescription'] as core.String : null, + disableDataStoreFallback: + json_.containsKey('disableDataStoreFallback') + ? json_['disableDataStoreFallback'] as core.bool + : null, ); core.Map toJson() => { @@ -10279,6 +10842,177 @@ class GoogleCloudDialogflowCxV3GenerativeSettingsKnowledgeConnectorSettings { if (business != null) 'business': business!, if (businessDescription != null) 'businessDescription': businessDescription!, + if (disableDataStoreFallback != null) + 'disableDataStoreFallback': disableDataStoreFallback!, + }; +} + +/// Generators contain prompt to be sent to the LLM model to generate text. +/// +/// The prompt can contain parameters which will be resolved before calling the +/// model. It can optionally contain banned phrases to ensure the model +/// responses are safe. +class GoogleCloudDialogflowCxV3Generator { + /// The human-readable name of the generator, unique within the agent. + /// + /// The prompt contains pre-defined parameters such as $conversation, + /// $last-user-utterance, etc. populated by Dialogflow. It can also contain + /// custom placeholders which will be resolved during fulfillment. + /// + /// Required. + core.String? displayName; + + /// The unique identifier of the generator. + /// + /// Must be set for the Generators.UpdateGenerator method. + /// Generators.CreateGenerate populates the name automatically. Format: + /// `projects//locations//agents//generators/`. + core.String? name; + + /// List of custom placeholders in the prompt text. + /// + /// Optional. + core.List? placeholders; + + /// Prompt for the LLM model. + /// + /// Required. + GoogleCloudDialogflowCxV3Phrase? promptText; + + GoogleCloudDialogflowCxV3Generator({ + this.displayName, + this.name, + this.placeholders, + this.promptText, + }); + + GoogleCloudDialogflowCxV3Generator.fromJson(core.Map json_) + : this( + displayName: json_.containsKey('displayName') + ? json_['displayName'] as core.String + : null, + name: json_.containsKey('name') ? json_['name'] as core.String : null, + placeholders: json_.containsKey('placeholders') + ? (json_['placeholders'] as core.List) + .map((value) => + GoogleCloudDialogflowCxV3GeneratorPlaceholder.fromJson( + value as core.Map)) + .toList() + : null, + promptText: json_.containsKey('promptText') + ? GoogleCloudDialogflowCxV3Phrase.fromJson( + json_['promptText'] as core.Map) + : null, + ); + + core.Map toJson() => { + if (displayName != null) 'displayName': displayName!, + if (name != null) 'name': name!, + if (placeholders != null) 'placeholders': placeholders!, + if (promptText != null) 'promptText': promptText!, + }; +} + +/// Represents a custom placeholder in the prompt text. +class GoogleCloudDialogflowCxV3GeneratorPlaceholder { + /// Unique ID used to map custom placeholder to parameters in fulfillment. + core.String? id; + + /// Custom placeholder value in the prompt text. + core.String? name; + + GoogleCloudDialogflowCxV3GeneratorPlaceholder({ + this.id, + this.name, + }); + + GoogleCloudDialogflowCxV3GeneratorPlaceholder.fromJson(core.Map json_) + : this( + id: json_.containsKey('id') ? json_['id'] as core.String : null, + name: json_.containsKey('name') ? json_['name'] as core.String : null, + ); + + core.Map toJson() => { + if (id != null) 'id': id!, + if (name != null) 'name': name!, + }; +} + +/// The request message for EntityTypes.ImportEntityTypes. +class GoogleCloudDialogflowCxV3ImportEntityTypesRequest { + /// Uncompressed byte content of entity types. + GoogleCloudDialogflowCxV3InlineSource? entityTypesContent; + + /// The [Google Cloud Storage](https://cloud.google.com/storage/docs/) URI to + /// import entity types from. + /// + /// The format of this URI must be `gs:///`. Dialogflow performs a read + /// operation for the Cloud Storage object on the caller's behalf, so your + /// request authentication must have read permissions for the object. For more + /// information, see + /// [Dialogflow access control](https://cloud.google.com/dialogflow/cx/docs/concept/access-control#storage). + core.String? entityTypesUri; + + /// Merge option for importing entity types. + /// + /// Required. + /// Possible string values are: + /// - "MERGE_OPTION_UNSPECIFIED" : Unspecified. If used, system uses + /// REPORT_CONFLICT as default. + /// - "REPLACE" : Replace the original entity type in the agent with the new + /// entity type when display name conflicts exist. + /// - "MERGE" : Merge the original entity type with the new entity type when + /// display name conflicts exist. + /// - "RENAME" : Create new entity types with new display names to + /// differentiate them from the existing entity types when display name + /// conflicts exist. + /// - "REPORT_CONFLICT" : Report conflict information if display names + /// conflict is detected. Otherwise, import entity types. + /// - "KEEP" : Keep the original entity type and discard the conflicting new + /// entity type when display name conflicts exist. + core.String? mergeOption; + + /// The target entity type to import into. + /// + /// Format: `projects//locations//agents//entity_types/`. If set, there should + /// be only one entity type included in entity_types, of which the type should + /// match the type of the target entity type. All entities in the imported + /// entity type will be added to the target entity type. + /// + /// Optional. + core.String? targetEntityType; + + GoogleCloudDialogflowCxV3ImportEntityTypesRequest({ + this.entityTypesContent, + this.entityTypesUri, + this.mergeOption, + this.targetEntityType, + }); + + GoogleCloudDialogflowCxV3ImportEntityTypesRequest.fromJson(core.Map json_) + : this( + entityTypesContent: json_.containsKey('entityTypesContent') + ? GoogleCloudDialogflowCxV3InlineSource.fromJson( + json_['entityTypesContent'] + as core.Map) + : null, + entityTypesUri: json_.containsKey('entityTypesUri') + ? json_['entityTypesUri'] as core.String + : null, + mergeOption: json_.containsKey('mergeOption') + ? json_['mergeOption'] as core.String + : null, + targetEntityType: json_.containsKey('targetEntityType') + ? json_['targetEntityType'] as core.String + : null, + ); + + core.Map toJson() => { + if (entityTypesContent != null) + 'entityTypesContent': entityTypesContent!, + if (entityTypesUri != null) 'entityTypesUri': entityTypesUri!, + if (mergeOption != null) 'mergeOption': mergeOption!, + if (targetEntityType != null) 'targetEntityType': targetEntityType!, }; } @@ -10542,17 +11276,8 @@ class GoogleCloudDialogflowCxV3InputAudioConfig { /// Which Speech model to select for the given request. /// - /// Select the model best suited to your domain to get best results. If a - /// model is not explicitly specified, then we auto-select a model based on - /// the parameters in the InputAudioConfig. If enhanced speech model is - /// enabled for the agent and an enhanced version of the specified model for - /// the language does not exist, then the speech is recognized using the - /// standard version of the specified model. Refer to - /// [Cloud Speech API documentation](https://cloud.google.com/speech-to-text/docs/basics#select-model) - /// for more details. If you specify a model, the following models typically - /// have the best performance: - phone_call (best for Agent Assist and - /// telephony) - latest_short (best for Dialogflow non-telephony) - - /// command_and_search (best for very short utterances and commands) + /// For more information, see + /// [Speech models](https://cloud.google.com/dialogflow/cx/docs/concept/speech-models). /// /// Optional. core.String? model; @@ -10564,9 +11289,7 @@ class GoogleCloudDialogflowCxV3InputAudioConfig { /// - "SPEECH_MODEL_VARIANT_UNSPECIFIED" : No model variant specified. In this /// case Dialogflow defaults to USE_BEST_AVAILABLE. /// - "USE_BEST_AVAILABLE" : Use the best available variant of the Speech - /// model that the caller is eligible for. Please see the - /// [Dialogflow docs](https://cloud.google.com/dialogflow/docs/data-logging) - /// for how to make your project eligible for enhanced models. + /// model that the caller is eligible for. /// - "USE_STANDARD" : Use standard model variant even if an enhanced model is /// available. See the /// [Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models) @@ -10575,12 +11298,16 @@ class GoogleCloudDialogflowCxV3InputAudioConfig { /// does not exist for the given model and request language, Dialogflow falls /// back to the standard variant. The /// [Cloud Speech documentation](https://cloud.google.com/speech-to-text/docs/enhanced-models) - /// describes which models have enhanced variants. * If the API caller isn't - /// eligible for enhanced models, Dialogflow returns an error. Please see the - /// [Dialogflow docs](https://cloud.google.com/dialogflow/docs/data-logging) - /// for how to make your project eligible. + /// describes which models have enhanced variants. core.String? modelVariant; + /// If `true`, the request will opt out for STT conformer model migration. + /// + /// This field will be deprecated once force migration takes place in June + /// 2024. Please refer to + /// [Dialogflow CX Speech model migration](https://cloud.google.com/dialogflow/cx/docs/concept/speech-model-migration). + core.bool? optOutConformerModelMigration; + /// A list of strings containing words and phrases that the speech recognizer /// should recognize with higher likelihood. /// @@ -10616,6 +11343,7 @@ class GoogleCloudDialogflowCxV3InputAudioConfig { this.enableWordInfo, this.model, this.modelVariant, + this.optOutConformerModelMigration, this.phraseHints, this.sampleRateHertz, this.singleUtterance, @@ -10638,6 +11366,10 @@ class GoogleCloudDialogflowCxV3InputAudioConfig { modelVariant: json_.containsKey('modelVariant') ? json_['modelVariant'] as core.String : null, + optOutConformerModelMigration: + json_.containsKey('optOutConformerModelMigration') + ? json_['optOutConformerModelMigration'] as core.bool + : null, phraseHints: json_.containsKey('phraseHints') ? (json_['phraseHints'] as core.List) .map((value) => value as core.String) @@ -10657,6 +11389,8 @@ class GoogleCloudDialogflowCxV3InputAudioConfig { if (enableWordInfo != null) 'enableWordInfo': enableWordInfo!, if (model != null) 'model': model!, if (modelVariant != null) 'modelVariant': modelVariant!, + if (optOutConformerModelMigration != null) + 'optOutConformerModelMigration': optOutConformerModelMigration!, if (phraseHints != null) 'phraseHints': phraseHints!, if (sampleRateHertz != null) 'sampleRateHertz': sampleRateHertz!, if (singleUtterance != null) 'singleUtterance': singleUtterance!, @@ -11388,6 +12122,42 @@ class GoogleCloudDialogflowCxV3ListFlowsResponse { }; } +/// The response message for Generators.ListGenerators. +class GoogleCloudDialogflowCxV3ListGeneratorsResponse { + /// The list of generators. + /// + /// There will be a maximum number of items returned based on the page_size + /// field in the request. + core.List? generators; + + /// Token to retrieve the next page of results, or empty if there are no more + /// results in the list. + core.String? nextPageToken; + + GoogleCloudDialogflowCxV3ListGeneratorsResponse({ + this.generators, + this.nextPageToken, + }); + + GoogleCloudDialogflowCxV3ListGeneratorsResponse.fromJson(core.Map json_) + : this( + generators: json_.containsKey('generators') + ? (json_['generators'] as core.List) + .map((value) => GoogleCloudDialogflowCxV3Generator.fromJson( + value as core.Map)) + .toList() + : null, + nextPageToken: json_.containsKey('nextPageToken') + ? json_['nextPageToken'] as core.String + : null, + ); + + core.Map toJson() => { + if (generators != null) 'generators': generators!, + if (nextPageToken != null) 'nextPageToken': nextPageToken!, + }; +} + /// The response message for Intents.ListIntents. class GoogleCloudDialogflowCxV3ListIntentsResponse { /// The list of intents. @@ -12137,6 +12907,11 @@ class GoogleCloudDialogflowCxV3Page { /// the higher level. GoogleCloudDialogflowCxV3AdvancedSettings? advancedSettings; + /// The description of the page. + /// + /// The maximum length is 500 characters. + core.String? description; + /// The human-readable name of the page, unique within the flow. /// /// Required. @@ -12195,6 +12970,7 @@ class GoogleCloudDialogflowCxV3Page { GoogleCloudDialogflowCxV3Page({ this.advancedSettings, + this.description, this.displayName, this.entryFulfillment, this.eventHandlers, @@ -12212,6 +12988,9 @@ class GoogleCloudDialogflowCxV3Page { json_['advancedSettings'] as core.Map) : null, + description: json_.containsKey('description') + ? json_['description'] as core.String + : null, displayName: json_.containsKey('displayName') ? json_['displayName'] as core.String : null, @@ -12254,6 +13033,7 @@ class GoogleCloudDialogflowCxV3Page { core.Map toJson() => { if (advancedSettings != null) 'advancedSettings': advancedSettings!, + if (description != null) 'description': description!, if (displayName != null) 'displayName': displayName!, if (entryFulfillment != null) 'entryFulfillment': entryFulfillment!, if (eventHandlers != null) 'eventHandlers': eventHandlers!, @@ -12267,12 +13047,34 @@ class GoogleCloudDialogflowCxV3Page { }; } +/// Text input which can be used for prompt or banned phrases. +class GoogleCloudDialogflowCxV3Phrase { + /// Text input which can be used for prompt or banned phrases. + /// + /// Required. + core.String? text; + + GoogleCloudDialogflowCxV3Phrase({ + this.text, + }); + + GoogleCloudDialogflowCxV3Phrase.fromJson(core.Map json_) + : this( + text: json_.containsKey('text') ? json_['text'] as core.String : null, + ); + + core.Map toJson() => { + if (text != null) 'text': text!, + }; +} + /// Represents the query input. /// /// It can contain one of: 1. A conversational query in the form of text. 2. An /// intent query that specifies which intent to trigger. 3. Natural language /// speech audio to be processed. 4. An event to be triggered. 5. DTMF digits to -/// invoke an intent and fill in parameter value. +/// invoke an intent and fill in parameter value. 6. The results of a tool +/// executed by the client. class GoogleCloudDialogflowCxV3QueryInput { /// The natural language speech audio to be processed. GoogleCloudDialogflowCxV3AudioInput? audio; @@ -12442,7 +13244,7 @@ class GoogleCloudDialogflowCxV3QueryParameters { /// this query. core.List? sessionEntityTypes; - /// Sets Dialogflow session life time. + /// Configure lifetime of the Dialogflow session. /// /// By default, a Dialogflow session remains active and its data is stored for /// 30 minutes after the last request is sent for the session. This value @@ -13945,7 +14747,7 @@ class GoogleCloudDialogflowCxV3SecuritySettingsInsightsExportSettings { /// Sentiment analysis inspects user input and identifies the prevailing /// subjective opinion, especially to determine a user's attitude as positive, /// negative, or neutral. -typedef GoogleCloudDialogflowCxV3SentimentAnalysisResult = $Shared07; +typedef GoogleCloudDialogflowCxV3SentimentAnalysisResult = $Shared08; /// Session entity types are referred to as **User** entity types and are /// entities that are built for an individual user such as favorites, @@ -14435,8 +15237,6 @@ class GoogleCloudDialogflowCxV3TestRunDifference { class GoogleCloudDialogflowCxV3TextInput { /// The UTF-8 encoded natural language text to be processed. /// - /// Text length must not exceed 256 characters. - /// /// Required. core.String? text; diff --git a/generated/googleapis/lib/displayvideo/v1.dart b/generated/googleapis/lib/displayvideo/v1.dart deleted file mode 100644 index 9b66502ec..000000000 --- a/generated/googleapis/lib/displayvideo/v1.dart +++ /dev/null @@ -1,22464 +0,0 @@ -// This is a generated file (see the discoveryapis_generator project). - -// ignore_for_file: camel_case_types -// ignore_for_file: comment_references -// ignore_for_file: deprecated_member_use_from_same_package -// ignore_for_file: lines_longer_than_80_chars -// ignore_for_file: non_constant_identifier_names -// ignore_for_file: prefer_interpolation_to_compose_strings -// ignore_for_file: unnecessary_brace_in_string_interps -// ignore_for_file: unnecessary_lambdas -// ignore_for_file: unnecessary_string_interpolations - -/// Display & Video 360 API - v1 -/// -/// Display & Video 360 API allows users to automate complex Display & Video 360 -/// workflows, such as creating insertion orders and setting targeting options -/// for individual line items. -/// -/// For more information, see -/// -/// Create an instance of [DisplayVideoApi] to access these resources: -/// -/// - [AdvertisersResource] -/// - [AdvertisersAssetsResource] -/// - [AdvertisersCampaignsResource] -/// - [AdvertisersCampaignsTargetingTypesResource] -/// - [AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsResource] -/// - [AdvertisersChannelsResource] -/// - [AdvertisersChannelsSitesResource] -/// - [AdvertisersCreativesResource] -/// - [AdvertisersInsertionOrdersResource] -/// - [AdvertisersInsertionOrdersTargetingTypesResource] -/// - [AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsResource] -/// - [AdvertisersInvoicesResource] -/// - [AdvertisersLineItemsResource] -/// - [AdvertisersLineItemsTargetingTypesResource] -/// - [AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsResource] -/// - [AdvertisersLocationListsResource] -/// - [AdvertisersLocationListsAssignedLocationsResource] -/// - [AdvertisersManualTriggersResource] -/// - [AdvertisersNegativeKeywordListsResource] -/// - [AdvertisersNegativeKeywordListsNegativeKeywordsResource] -/// - [AdvertisersTargetingTypesResource] -/// - [AdvertisersTargetingTypesAssignedTargetingOptionsResource] -/// - [CombinedAudiencesResource] -/// - [CustomBiddingAlgorithmsResource] -/// - [CustomBiddingAlgorithmsScriptsResource] -/// - [CustomListsResource] -/// - [FirstAndThirdPartyAudiencesResource] -/// - [FloodlightGroupsResource] -/// - [GoogleAudiencesResource] -/// - [GuaranteedOrdersResource] -/// - [InventorySourceGroupsResource] -/// - [InventorySourceGroupsAssignedInventorySourcesResource] -/// - [InventorySourcesResource] -/// - [MediaResource] -/// - [PartnersResource] -/// - [PartnersChannelsResource] -/// - [PartnersChannelsSitesResource] -/// - [PartnersTargetingTypesResource] -/// - [PartnersTargetingTypesAssignedTargetingOptionsResource] -/// - [SdfdownloadtasksResource] -/// - [SdfdownloadtasksOperationsResource] -/// - [TargetingTypesResource] -/// - [TargetingTypesTargetingOptionsResource] -/// - [UsersResource] -library; - -import 'dart:async' as async; -import 'dart:convert' as convert; -import 'dart:core' as core; - -import 'package:_discoveryapis_commons/_discoveryapis_commons.dart' as commons; -import 'package:http/http.dart' as http; - -import '../shared.dart'; -import '../src/user_agent.dart'; - -export 'package:_discoveryapis_commons/_discoveryapis_commons.dart' - show - ApiRequestError, - ByteRange, - DetailedApiRequestError, - DownloadOptions, - Media, - PartialDownloadOptions, - ResumableUploadOptions, - UploadOptions; - -/// Display & Video 360 API allows users to automate complex Display & Video 360 -/// workflows, such as creating insertion orders and setting targeting options -/// for individual line items. -class DisplayVideoApi { - /// Create, see, edit, and permanently delete your Display & Video 360 - /// entities and reports - static const displayVideoScope = - 'https://www.googleapis.com/auth/display-video'; - - /// Create, see, and edit Display & Video 360 Campaign entities and see - /// billing invoices - static const displayVideoMediaplanningScope = - 'https://www.googleapis.com/auth/display-video-mediaplanning'; - - /// Private Service: - /// https://www.googleapis.com/auth/display-video-user-management - static const displayVideoUserManagementScope = - 'https://www.googleapis.com/auth/display-video-user-management'; - - /// View and manage your reports in DoubleClick Bid Manager - static const doubleclickbidmanagerScope = - 'https://www.googleapis.com/auth/doubleclickbidmanager'; - - final commons.ApiRequester _requester; - - AdvertisersResource get advertisers => AdvertisersResource(_requester); - CombinedAudiencesResource get combinedAudiences => - CombinedAudiencesResource(_requester); - CustomBiddingAlgorithmsResource get customBiddingAlgorithms => - CustomBiddingAlgorithmsResource(_requester); - CustomListsResource get customLists => CustomListsResource(_requester); - FirstAndThirdPartyAudiencesResource get firstAndThirdPartyAudiences => - FirstAndThirdPartyAudiencesResource(_requester); - FloodlightGroupsResource get floodlightGroups => - FloodlightGroupsResource(_requester); - GoogleAudiencesResource get googleAudiences => - GoogleAudiencesResource(_requester); - GuaranteedOrdersResource get guaranteedOrders => - GuaranteedOrdersResource(_requester); - InventorySourceGroupsResource get inventorySourceGroups => - InventorySourceGroupsResource(_requester); - InventorySourcesResource get inventorySources => - InventorySourcesResource(_requester); - MediaResource get media => MediaResource(_requester); - PartnersResource get partners => PartnersResource(_requester); - SdfdownloadtasksResource get sdfdownloadtasks => - SdfdownloadtasksResource(_requester); - TargetingTypesResource get targetingTypes => - TargetingTypesResource(_requester); - UsersResource get users => UsersResource(_requester); - - DisplayVideoApi(http.Client client, - {core.String rootUrl = 'https://displayvideo.googleapis.com/', - core.String servicePath = ''}) - : _requester = - commons.ApiRequester(client, rootUrl, servicePath, requestHeaders); -} - -class AdvertisersResource { - final commons.ApiRequester _requester; - - AdvertisersAssetsResource get assets => AdvertisersAssetsResource(_requester); - AdvertisersCampaignsResource get campaigns => - AdvertisersCampaignsResource(_requester); - AdvertisersChannelsResource get channels => - AdvertisersChannelsResource(_requester); - AdvertisersCreativesResource get creatives => - AdvertisersCreativesResource(_requester); - AdvertisersInsertionOrdersResource get insertionOrders => - AdvertisersInsertionOrdersResource(_requester); - AdvertisersInvoicesResource get invoices => - AdvertisersInvoicesResource(_requester); - AdvertisersLineItemsResource get lineItems => - AdvertisersLineItemsResource(_requester); - AdvertisersLocationListsResource get locationLists => - AdvertisersLocationListsResource(_requester); - AdvertisersManualTriggersResource get manualTriggers => - AdvertisersManualTriggersResource(_requester); - AdvertisersNegativeKeywordListsResource get negativeKeywordLists => - AdvertisersNegativeKeywordListsResource(_requester); - AdvertisersTargetingTypesResource get targetingTypes => - AdvertisersTargetingTypesResource(_requester); - - AdvertisersResource(commons.ApiRequester client) : _requester = client; - - /// Audits an advertiser. - /// - /// Returns the counts of used entities per resource type under the advertiser - /// provided. Used entities count towards their respective resource limit. See - /// https://support.google.com/displayvideo/answer/6071450. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser to audit. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [readMask] - Optional. The specific fields to return. If no mask is - /// specified, all fields in the response proto will be filled. Valid values - /// are: * usedLineItemsCount * usedInsertionOrdersCount * usedCampaignsCount - /// * channelsCount * negativelyTargetedChannelsCount * - /// negativeKeywordListsCount * adGroupCriteriaCount * campaignCriteriaCount - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [AuditAdvertiserResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future audit( - core.String advertiserId, { - core.String? readMask, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (readMask != null) 'readMask': [readMask], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = - 'v1/advertisers/' + core.Uri.encodeFull('$advertiserId') + ':audit'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return AuditAdvertiserResponse.fromJson( - response_ as core.Map); - } - - /// Bulk edits targeting options under a single advertiser. - /// - /// The operation will delete the assigned targeting options provided in - /// BulkEditAdvertiserAssignedTargetingOptionsRequest.delete_requests and then - /// create the assigned targeting options provided in - /// BulkEditAdvertiserAssignedTargetingOptionsRequest.create_requests . - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [BulkEditAdvertiserAssignedTargetingOptionsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future - bulkEditAdvertiserAssignedTargetingOptions( - BulkEditAdvertiserAssignedTargetingOptionsRequest request, - core.String advertiserId, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - ':bulkEditAdvertiserAssignedTargetingOptions'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return BulkEditAdvertiserAssignedTargetingOptionsResponse.fromJson( - response_ as core.Map); - } - - /// Lists assigned targeting options of an advertiser across targeting types. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser the line item belongs - /// to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [filter] - Allows filtering by assigned targeting option fields. Supported - /// syntax: * Filter expressions are made up of one or more restrictions. * - /// Restrictions can be combined by the `OR` logical operator. * A restriction - /// has the form of `{field} {operator} {value}`. * All fields must use the - /// `EQUALS (=) operator`. Supported fields: * `targetingType` Examples: * - /// targetingType with value TARGETING_TYPE_CHANNEL - /// `targetingType="TARGETING_TYPE_CHANNEL"` The length of this field should - /// be no more than 500 characters. Reference our \[filter `LIST` - /// requests\](/display-video/api/guides/how-tos/filters) guide for more - /// information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `targetingType` (default) The default sorting order is ascending. To - /// specify descending order for a field, a suffix "desc" should be added to - /// the field name. Example: `targetingType desc`. - /// - /// [pageSize] - Requested page size. The size must be an integer between `1` - /// and `5000`. If unspecified, the default is '5000'. Returns error code - /// `INVALID_ARGUMENT` if an invalid value is specified. - /// - /// [pageToken] - A token that lets the client fetch the next page of results. - /// Typically, this is the value of next_page_token returned from the previous - /// call to `BulkListAdvertiserAssignedTargetingOptions` method. If not - /// specified, the first page of results will be returned. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [BulkListAdvertiserAssignedTargetingOptionsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future - bulkListAdvertiserAssignedTargetingOptions( - core.String advertiserId, { - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - ':bulkListAdvertiserAssignedTargetingOptions'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return BulkListAdvertiserAssignedTargetingOptionsResponse.fromJson( - response_ as core.Map); - } - - /// Creates a new advertiser. - /// - /// Returns the newly created advertiser if successful. This method can take - /// up to 180 seconds to complete. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Advertiser]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future create( - Advertiser request, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - const url_ = 'v1/advertisers'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return Advertiser.fromJson( - response_ as core.Map); - } - - /// Deletes an advertiser. - /// - /// Deleting an advertiser will delete all of its child resources, for - /// example, campaigns, insertion orders and line items. A deleted advertiser - /// cannot be recovered. - /// - /// Request parameters: - /// - /// [advertiserId] - The ID of the advertiser we need to delete. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Empty]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future delete( - core.String advertiserId, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + core.Uri.encodeFull('$advertiserId'); - - final response_ = await _requester.request( - url_, - 'DELETE', - queryParams: queryParams_, - ); - return Empty.fromJson(response_ as core.Map); - } - - /// Gets an advertiser. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser to fetch. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Advertiser]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String advertiserId, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + core.Uri.encodeFull('$advertiserId'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return Advertiser.fromJson( - response_ as core.Map); - } - - /// Lists advertisers that are accessible to the current user. - /// - /// The order is defined by the order_by parameter. A single partner_id is - /// required. Cross-partner listing is not supported. - /// - /// Request parameters: - /// - /// [filter] - Allows filtering by advertiser fields. Supported syntax: * - /// Filter expressions are made up of one or more restrictions. * Restrictions - /// can be combined by `AND` or `OR` logical operators. * A restriction has - /// the form of `{field} {operator} {value}`. * The `updateTime` field must - /// use the `GREATER THAN OR EQUAL TO (>=)` or `LESS THAN OR EQUAL TO (<=)` - /// operators. * All other fields must use the `EQUALS (=)` operator. - /// Supported fields: * `advertiserId` * `displayName` * `entityStatus` * - /// `updateTime` (input in ISO 8601 format, or `YYYY-MM-DDTHH:MM:SSZ`) - /// Examples: * All active advertisers under a partner: - /// `entityStatus="ENTITY_STATUS_ACTIVE"` * All advertisers with an update - /// time less than or equal to 2020-11-04T18:54:47Z (format of ISO 8601): - /// `updateTime<="2020-11-04T18:54:47Z"` * All advertisers with an update time - /// greater than or equal to 2020-11-04T18:54:47Z (format of ISO 8601): - /// `updateTime>="2020-11-04T18:54:47Z"` The length of this field should be no - /// more than 500 characters. Reference our \[filter `LIST` - /// requests\](/display-video/api/guides/how-tos/filters) guide for more - /// information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `displayName` (default) * `entityStatus` * `updateTime` The default - /// sorting order is ascending. To specify descending order for a field, a - /// suffix "desc" should be added to the field name. For example, `displayName - /// desc`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `200`. If - /// unspecified will default to `100`. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListAdvertisers` method. If not specified, the first - /// page of results will be returned. - /// - /// [partnerId] - Required. The ID of the partner that the fetched advertisers - /// should all belong to. The system only supports listing advertisers for one - /// partner at a time. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListAdvertisersResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list({ - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? partnerId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - const url_ = 'v1/advertisers'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListAdvertisersResponse.fromJson( - response_ as core.Map); - } - - /// Updates an existing advertiser. - /// - /// Returns the updated advertiser if successful. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - Output only. The unique ID of the advertiser. Assigned by - /// the system. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [updateMask] - Required. The mask to control which fields to update. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Advertiser]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future patch( - Advertiser request, - core.String advertiserId, { - core.String? updateMask, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (updateMask != null) 'updateMask': [updateMask], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + core.Uri.encodeFull('$advertiserId'); - - final response_ = await _requester.request( - url_, - 'PATCH', - body: body_, - queryParams: queryParams_, - ); - return Advertiser.fromJson( - response_ as core.Map); - } -} - -class AdvertisersAssetsResource { - final commons.ApiRequester _requester; - - AdvertisersAssetsResource(commons.ApiRequester client) : _requester = client; - - /// Uploads an asset. - /// - /// Returns the ID of the newly uploaded asset if successful. The asset file - /// size should be no more than 10 MB for images, 200 MB for ZIP files, and 1 - /// GB for videos. Must be used within the \[multipart media upload - /// process\](/display-video/api/guides/how-tos/upload#multipart). Examples - /// using provided client libraries can be found in our \[Creating Creatives - /// guide\](/display-video/api/guides/creating-creatives/overview#upload_an_asset). - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser this asset belongs to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// [uploadMedia] - The media to upload. - /// - /// Completes with a [CreateAssetResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future upload( - CreateAssetRequest request, - core.String advertiserId, { - core.String? $fields, - commons.Media? uploadMedia, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - core.String url_; - if (uploadMedia == null) { - url_ = - 'v1/advertisers/' + core.Uri.encodeFull('$advertiserId') + '/assets'; - } else { - url_ = '/upload/v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/assets'; - } - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - uploadMedia: uploadMedia, - uploadOptions: commons.UploadOptions.defaultOptions, - ); - return CreateAssetResponse.fromJson( - response_ as core.Map); - } -} - -class AdvertisersCampaignsResource { - final commons.ApiRequester _requester; - - AdvertisersCampaignsTargetingTypesResource get targetingTypes => - AdvertisersCampaignsTargetingTypesResource(_requester); - - AdvertisersCampaignsResource(commons.ApiRequester client) - : _requester = client; - - /// Lists assigned targeting options of a campaign across targeting types. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser the campaign belongs - /// to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [campaignId] - Required. The ID of the campaign to list assigned targeting - /// options for. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [filter] - Allows filtering by assigned targeting option fields. Supported - /// syntax: * Filter expressions are made up of one or more restrictions. * - /// Restrictions can be combined by the `OR` logical operator. * A restriction - /// has the form of `{field} {operator} {value}`. * All fields must use the - /// `EQUALS (=)` operator. Supported fields: * `targetingType` * `inheritance` - /// Examples: * `AssignedTargetingOption` resources of targeting type - /// `TARGETING_TYPE_LANGUAGE` or `TARGETING_TYPE_GENDER`: - /// `targetingType="TARGETING_TYPE_LANGUAGE" OR - /// targetingType="TARGETING_TYPE_GENDER"` * `AssignedTargetingOption` - /// resources with inheritance status of `NOT_INHERITED` or - /// `INHERITED_FROM_PARTNER`: `inheritance="NOT_INHERITED" OR - /// inheritance="INHERITED_FROM_PARTNER"` The length of this field should be - /// no more than 500 characters. Reference our \[filter `LIST` - /// requests\](/display-video/api/guides/how-tos/filters) guide for more - /// information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `targetingType` (default) The default sorting order is ascending. To - /// specify descending order for a field, a suffix "desc" should be added to - /// the field name. Example: `targetingType desc`. - /// - /// [pageSize] - Requested page size. The size must be an integer between `1` - /// and `5000`. If unspecified, the default is `5000`. Returns error code - /// `INVALID_ARGUMENT` if an invalid value is specified. - /// - /// [pageToken] - A token that lets the client fetch the next page of results. - /// Typically, this is the value of next_page_token returned from the previous - /// call to `BulkListCampaignAssignedTargetingOptions` method. If not - /// specified, the first page of results will be returned. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [BulkListCampaignAssignedTargetingOptionsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future - bulkListCampaignAssignedTargetingOptions( - core.String advertiserId, - core.String campaignId, { - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/campaigns/' + - core.Uri.encodeFull('$campaignId') + - ':bulkListCampaignAssignedTargetingOptions'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return BulkListCampaignAssignedTargetingOptionsResponse.fromJson( - response_ as core.Map); - } - - /// Creates a new campaign. - /// - /// Returns the newly created campaign if successful. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - Output only. The unique ID of the advertiser the campaign - /// belongs to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Campaign]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future create( - Campaign request, - core.String advertiserId, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = - 'v1/advertisers/' + core.Uri.encodeFull('$advertiserId') + '/campaigns'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return Campaign.fromJson(response_ as core.Map); - } - - /// Permanently deletes a campaign. - /// - /// A deleted campaign cannot be recovered. The campaign should be archived - /// first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, to be able to - /// delete it. - /// - /// Request parameters: - /// - /// [advertiserId] - The ID of the advertiser this campaign belongs to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [campaignId] - The ID of the campaign we need to delete. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Empty]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future delete( - core.String advertiserId, - core.String campaignId, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/campaigns/' + - core.Uri.encodeFull('$campaignId'); - - final response_ = await _requester.request( - url_, - 'DELETE', - queryParams: queryParams_, - ); - return Empty.fromJson(response_ as core.Map); - } - - /// Gets a campaign. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser this campaign belongs - /// to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [campaignId] - Required. The ID of the campaign to fetch. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Campaign]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String advertiserId, - core.String campaignId, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/campaigns/' + - core.Uri.encodeFull('$campaignId'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return Campaign.fromJson(response_ as core.Map); - } - - /// Lists campaigns in an advertiser. - /// - /// The order is defined by the order_by parameter. If a filter by - /// entity_status is not specified, campaigns with `ENTITY_STATUS_ARCHIVED` - /// will not be included in the results. - /// - /// Request parameters: - /// - /// [advertiserId] - The ID of the advertiser to list campaigns for. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [filter] - Allows filtering by campaign fields. Supported syntax: * Filter - /// expressions are made up of one or more restrictions. * Restrictions can be - /// combined by `AND` or `OR` logical operators. A sequence of restrictions - /// implicitly uses `AND`. * A restriction has the form of `{field} {operator} - /// {value}`. * The `updateTime` field must use the `GREATER THAN OR EQUAL TO - /// (>=)` or `LESS THAN OR EQUAL TO (<=)` operators. * All other fields must - /// use the `EQUALS (=)` operator. Supported fields: * `campaignId` * - /// `displayName` * `entityStatus` * `updateTime` (input in ISO 8601 format, - /// or `YYYY-MM-DDTHH:MM:SSZ`) Examples: * All `ENTITY_STATUS_ACTIVE` or - /// `ENTITY_STATUS_PAUSED` campaigns under an advertiser: - /// `(entityStatus="ENTITY_STATUS_ACTIVE" OR - /// entityStatus="ENTITY_STATUS_PAUSED")` * All campaigns with an update time - /// less than or equal to 2020-11-04T18:54:47Z (format of ISO 8601): - /// `updateTime<="2020-11-04T18:54:47Z"` * All campaigns with an update time - /// greater than or equal to 2020-11-04T18:54:47Z (format of ISO 8601): - /// `updateTime>="2020-11-04T18:54:47Z"` The length of this field should be no - /// more than 500 characters. Reference our \[filter `LIST` - /// requests\](/display-video/api/guides/how-tos/filters) guide for more - /// information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `displayName` (default) * `entityStatus` * `updateTime` The default - /// sorting order is ascending. To specify descending order for a field, a - /// suffix "desc" should be added to the field name. Example: `displayName - /// desc`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `200`. If - /// unspecified will default to `100`. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListCampaigns` method. If not specified, the first page - /// of results will be returned. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListCampaignsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list( - core.String advertiserId, { - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = - 'v1/advertisers/' + core.Uri.encodeFull('$advertiserId') + '/campaigns'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListCampaignsResponse.fromJson( - response_ as core.Map); - } - - /// Updates an existing campaign. - /// - /// Returns the updated campaign if successful. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - Output only. The unique ID of the advertiser the campaign - /// belongs to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [campaignId] - Output only. The unique ID of the campaign. Assigned by the - /// system. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [updateMask] - Required. The mask to control which fields to update. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Campaign]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future patch( - Campaign request, - core.String advertiserId, - core.String campaignId, { - core.String? updateMask, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (updateMask != null) 'updateMask': [updateMask], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/campaigns/' + - core.Uri.encodeFull('$campaignId'); - - final response_ = await _requester.request( - url_, - 'PATCH', - body: body_, - queryParams: queryParams_, - ); - return Campaign.fromJson(response_ as core.Map); - } -} - -class AdvertisersCampaignsTargetingTypesResource { - final commons.ApiRequester _requester; - - AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsResource - get assignedTargetingOptions => - AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsResource( - _requester); - - AdvertisersCampaignsTargetingTypesResource(commons.ApiRequester client) - : _requester = client; -} - -class AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsResource { - final commons.ApiRequester _requester; - - AdvertisersCampaignsTargetingTypesAssignedTargetingOptionsResource( - commons.ApiRequester client) - : _requester = client; - - /// Gets a single targeting option assigned to a campaign. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser the campaign belongs - /// to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [campaignId] - Required. The ID of the campaign the assigned targeting - /// option belongs to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [targetingType] - Required. Identifies the type of this assigned targeting - /// option. Supported targeting types: * `TARGETING_TYPE_AGE_RANGE` * - /// `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * - /// `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * - /// `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * - /// `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * - /// `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * - /// `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * - /// `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * - /// `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_LANGUAGE` * - /// `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_PARENTAL_STATUS` * - /// `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * - /// `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * - /// `TARGETING_TYPE_VIEWABILITY` - /// Value must have pattern `^\[^/\]+$`. - /// Possible string values are: - /// - "TARGETING_TYPE_UNSPECIFIED" : Default value when type is not specified - /// or is unknown in this version. - /// - "TARGETING_TYPE_CHANNEL" : Target a channel (a custom group of related - /// websites or apps). - /// - "TARGETING_TYPE_APP_CATEGORY" : Target an app category (for example, - /// education or puzzle games). - /// - "TARGETING_TYPE_APP" : Target a specific app (for example, Angry Birds). - /// - "TARGETING_TYPE_URL" : Target a specific url (for example, quora.com). - /// - "TARGETING_TYPE_DAY_AND_TIME" : Target ads during a chosen time period - /// on a specific day. - /// - "TARGETING_TYPE_AGE_RANGE" : Target ads to a specific age range (for - /// example, 18-24). - /// - "TARGETING_TYPE_REGIONAL_LOCATION_LIST" : Target ads to the specified - /// regions on a regional location list. - /// - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" : Target ads to the specified - /// points of interest on a proximity location list. - /// - "TARGETING_TYPE_GENDER" : Target ads to a specific gender (for example, - /// female or male). - /// - "TARGETING_TYPE_VIDEO_PLAYER_SIZE" : Target a specific video player size - /// for video ads. - /// - "TARGETING_TYPE_USER_REWARDED_CONTENT" : Target user rewarded content - /// for video ads. - /// - "TARGETING_TYPE_PARENTAL_STATUS" : Target ads to a specific parental - /// status (for example, parent or not a parent). - /// - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" : Target video or audio ads - /// in a specific content instream position (for example, pre-roll, mid-roll, - /// or post-roll). - /// - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" : Target ads in a specific - /// content outstream position. - /// - "TARGETING_TYPE_DEVICE_TYPE" : Target ads to a specific device type (for - /// example, tablet or connected TV). - /// - "TARGETING_TYPE_AUDIENCE_GROUP" : Target ads to an audience or groups of - /// audiences. Singleton field, at most one can exist on a single Lineitem at - /// a time. - /// - "TARGETING_TYPE_BROWSER" : Target ads to specific web browsers (for - /// example, Chrome). - /// - "TARGETING_TYPE_HOUSEHOLD_INCOME" : Target ads to a specific household - /// income range (for example, top 10%). - /// - "TARGETING_TYPE_ON_SCREEN_POSITION" : Target ads in a specific on screen - /// position. - /// - "TARGETING_TYPE_THIRD_PARTY_VERIFIER" : Filter web sites through third - /// party verification (for example, IAS or DoubleVerify). - /// - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" : Filter web sites by - /// specific digital content label ratings (for example, DL-MA: suitable only - /// for mature audiences). - /// - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" : Filter website content - /// by sensitive categories (for example, adult). - /// - "TARGETING_TYPE_ENVIRONMENT" : Target ads to a specific environment (for - /// example, web or app). - /// - "TARGETING_TYPE_CARRIER_AND_ISP" : Target ads to a specific network - /// carrier or internet service provider (ISP) (for example, Comcast or - /// Orange). - /// - "TARGETING_TYPE_OPERATING_SYSTEM" : Target ads to a specific operating - /// system (for example, macOS). - /// - "TARGETING_TYPE_DEVICE_MAKE_MODEL" : Target ads to a specific device - /// make or model (for example, Roku or Samsung). - /// - "TARGETING_TYPE_KEYWORD" : Target ads to a specific keyword (for - /// example, dog or retriever). - /// - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" : Target ads to a specific - /// negative keyword list. - /// - "TARGETING_TYPE_VIEWABILITY" : Target ads to a specific viewability (for - /// example, 80% viewable). - /// - "TARGETING_TYPE_CATEGORY" : Target ads to a specific content category - /// (for example, arts & entertainment). - /// - "TARGETING_TYPE_INVENTORY_SOURCE" : Purchase impressions from specific - /// deals and auction packages. - /// - "TARGETING_TYPE_LANGUAGE" : Target ads to a specific language (for - /// example, English or Japanese). - /// - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" : Target ads to ads.txt - /// authorized sellers. If no targeting option of this type is assigned, the - /// resource uses the "Authorized Direct Sellers and Resellers" option by - /// default. - /// - "TARGETING_TYPE_GEO_REGION" : Target ads to a specific regional location - /// (for example, a city or state). - /// - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" : Purchase impressions from a - /// group of deals and auction packages. - /// - "TARGETING_TYPE_EXCHANGE" : Purchase impressions from specific - /// exchanges. - /// - "TARGETING_TYPE_SUB_EXCHANGE" : Purchase impressions from specific - /// sub-exchanges. - /// - "TARGETING_TYPE_POI" : Target ads around a specific point of interest, - /// such as a notable building, a street address, or latitude/longitude - /// coordinates. - /// - "TARGETING_TYPE_BUSINESS_CHAIN" : Target ads around locations of a - /// business chain within a specific geo region. - /// - "TARGETING_TYPE_CONTENT_DURATION" : Target ads to a specific video - /// content duration. - /// - "TARGETING_TYPE_CONTENT_STREAM_TYPE" : Target ads to a specific video - /// content stream type. - /// - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" : Target ads to a specific - /// native content position. - /// - "TARGETING_TYPE_OMID" : Target ads in an Open Measurement enabled - /// inventory. - /// - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" : Target ads to a specific audio - /// content type. - /// - "TARGETING_TYPE_CONTENT_GENRE" : Target ads to a specific content genre. - /// - /// [assignedTargetingOptionId] - Required. An identifier unique to the - /// targeting type in this campaign that identifies the assigned targeting - /// option being requested. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [AssignedTargetingOption]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String advertiserId, - core.String campaignId, - core.String targetingType, - core.String assignedTargetingOptionId, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/campaigns/' + - core.Uri.encodeFull('$campaignId') + - '/targetingTypes/' + - core.Uri.encodeFull('$targetingType') + - '/assignedTargetingOptions/' + - core.Uri.encodeFull('$assignedTargetingOptionId'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return AssignedTargetingOption.fromJson( - response_ as core.Map); - } - - /// Lists the targeting options assigned to a campaign for a specified - /// targeting type. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser the campaign belongs - /// to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [campaignId] - Required. The ID of the campaign to list assigned targeting - /// options for. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [targetingType] - Required. Identifies the type of assigned targeting - /// options to list. Supported targeting types: * `TARGETING_TYPE_AGE_RANGE` * - /// `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * - /// `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * - /// `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * - /// `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * - /// `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * - /// `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * - /// `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * - /// `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_LANGUAGE` * - /// `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_PARENTAL_STATUS` * - /// `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * - /// `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * - /// `TARGETING_TYPE_VIEWABILITY` - /// Value must have pattern `^\[^/\]+$`. - /// Possible string values are: - /// - "TARGETING_TYPE_UNSPECIFIED" : Default value when type is not specified - /// or is unknown in this version. - /// - "TARGETING_TYPE_CHANNEL" : Target a channel (a custom group of related - /// websites or apps). - /// - "TARGETING_TYPE_APP_CATEGORY" : Target an app category (for example, - /// education or puzzle games). - /// - "TARGETING_TYPE_APP" : Target a specific app (for example, Angry Birds). - /// - "TARGETING_TYPE_URL" : Target a specific url (for example, quora.com). - /// - "TARGETING_TYPE_DAY_AND_TIME" : Target ads during a chosen time period - /// on a specific day. - /// - "TARGETING_TYPE_AGE_RANGE" : Target ads to a specific age range (for - /// example, 18-24). - /// - "TARGETING_TYPE_REGIONAL_LOCATION_LIST" : Target ads to the specified - /// regions on a regional location list. - /// - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" : Target ads to the specified - /// points of interest on a proximity location list. - /// - "TARGETING_TYPE_GENDER" : Target ads to a specific gender (for example, - /// female or male). - /// - "TARGETING_TYPE_VIDEO_PLAYER_SIZE" : Target a specific video player size - /// for video ads. - /// - "TARGETING_TYPE_USER_REWARDED_CONTENT" : Target user rewarded content - /// for video ads. - /// - "TARGETING_TYPE_PARENTAL_STATUS" : Target ads to a specific parental - /// status (for example, parent or not a parent). - /// - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" : Target video or audio ads - /// in a specific content instream position (for example, pre-roll, mid-roll, - /// or post-roll). - /// - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" : Target ads in a specific - /// content outstream position. - /// - "TARGETING_TYPE_DEVICE_TYPE" : Target ads to a specific device type (for - /// example, tablet or connected TV). - /// - "TARGETING_TYPE_AUDIENCE_GROUP" : Target ads to an audience or groups of - /// audiences. Singleton field, at most one can exist on a single Lineitem at - /// a time. - /// - "TARGETING_TYPE_BROWSER" : Target ads to specific web browsers (for - /// example, Chrome). - /// - "TARGETING_TYPE_HOUSEHOLD_INCOME" : Target ads to a specific household - /// income range (for example, top 10%). - /// - "TARGETING_TYPE_ON_SCREEN_POSITION" : Target ads in a specific on screen - /// position. - /// - "TARGETING_TYPE_THIRD_PARTY_VERIFIER" : Filter web sites through third - /// party verification (for example, IAS or DoubleVerify). - /// - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" : Filter web sites by - /// specific digital content label ratings (for example, DL-MA: suitable only - /// for mature audiences). - /// - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" : Filter website content - /// by sensitive categories (for example, adult). - /// - "TARGETING_TYPE_ENVIRONMENT" : Target ads to a specific environment (for - /// example, web or app). - /// - "TARGETING_TYPE_CARRIER_AND_ISP" : Target ads to a specific network - /// carrier or internet service provider (ISP) (for example, Comcast or - /// Orange). - /// - "TARGETING_TYPE_OPERATING_SYSTEM" : Target ads to a specific operating - /// system (for example, macOS). - /// - "TARGETING_TYPE_DEVICE_MAKE_MODEL" : Target ads to a specific device - /// make or model (for example, Roku or Samsung). - /// - "TARGETING_TYPE_KEYWORD" : Target ads to a specific keyword (for - /// example, dog or retriever). - /// - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" : Target ads to a specific - /// negative keyword list. - /// - "TARGETING_TYPE_VIEWABILITY" : Target ads to a specific viewability (for - /// example, 80% viewable). - /// - "TARGETING_TYPE_CATEGORY" : Target ads to a specific content category - /// (for example, arts & entertainment). - /// - "TARGETING_TYPE_INVENTORY_SOURCE" : Purchase impressions from specific - /// deals and auction packages. - /// - "TARGETING_TYPE_LANGUAGE" : Target ads to a specific language (for - /// example, English or Japanese). - /// - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" : Target ads to ads.txt - /// authorized sellers. If no targeting option of this type is assigned, the - /// resource uses the "Authorized Direct Sellers and Resellers" option by - /// default. - /// - "TARGETING_TYPE_GEO_REGION" : Target ads to a specific regional location - /// (for example, a city or state). - /// - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" : Purchase impressions from a - /// group of deals and auction packages. - /// - "TARGETING_TYPE_EXCHANGE" : Purchase impressions from specific - /// exchanges. - /// - "TARGETING_TYPE_SUB_EXCHANGE" : Purchase impressions from specific - /// sub-exchanges. - /// - "TARGETING_TYPE_POI" : Target ads around a specific point of interest, - /// such as a notable building, a street address, or latitude/longitude - /// coordinates. - /// - "TARGETING_TYPE_BUSINESS_CHAIN" : Target ads around locations of a - /// business chain within a specific geo region. - /// - "TARGETING_TYPE_CONTENT_DURATION" : Target ads to a specific video - /// content duration. - /// - "TARGETING_TYPE_CONTENT_STREAM_TYPE" : Target ads to a specific video - /// content stream type. - /// - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" : Target ads to a specific - /// native content position. - /// - "TARGETING_TYPE_OMID" : Target ads in an Open Measurement enabled - /// inventory. - /// - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" : Target ads to a specific audio - /// content type. - /// - "TARGETING_TYPE_CONTENT_GENRE" : Target ads to a specific content genre. - /// - /// [filter] - Allows filtering by assigned targeting option fields. Supported - /// syntax: * Filter expressions are made up of one or more restrictions. * - /// Restrictions can be combined by the `OR` logical operator. * A restriction - /// has the form of `{field} {operator} {value}`. * All fields must use the - /// `EQUALS (=)` operator. Supported fields: * `assignedTargetingOptionId` * - /// `inheritance` Examples: * `AssignedTargetingOption` resources with ID 1 or - /// 2 `assignedTargetingOptionId="1" OR assignedTargetingOptionId="2"` * - /// `AssignedTargetingOption` resources with inheritance status of - /// `NOT_INHERITED` or `INHERITED_FROM_PARTNER` `inheritance="NOT_INHERITED" - /// OR inheritance="INHERITED_FROM_PARTNER"` The length of this field should - /// be no more than 500 characters. Reference our \[filter `LIST` - /// requests\](/display-video/api/guides/how-tos/filters) guide for more - /// information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `assignedTargetingOptionId` (default) The default sorting order is - /// ascending. To specify descending order for a field, a suffix "desc" should - /// be added to the field name. Example: `assignedTargetingOptionId desc`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `5000`. If - /// unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` - /// if an invalid value is specified. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListCampaignAssignedTargetingOptions` method. If not - /// specified, the first page of results will be returned. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListCampaignAssignedTargetingOptionsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list( - core.String advertiserId, - core.String campaignId, - core.String targetingType, { - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/campaigns/' + - core.Uri.encodeFull('$campaignId') + - '/targetingTypes/' + - core.Uri.encodeFull('$targetingType') + - '/assignedTargetingOptions'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListCampaignAssignedTargetingOptionsResponse.fromJson( - response_ as core.Map); - } -} - -class AdvertisersChannelsResource { - final commons.ApiRequester _requester; - - AdvertisersChannelsSitesResource get sites => - AdvertisersChannelsSitesResource(_requester); - - AdvertisersChannelsResource(commons.ApiRequester client) - : _requester = client; - - /// Creates a new channel. - /// - /// Returns the newly created channel if successful. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - The ID of the advertiser that owns the created channel. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [partnerId] - The ID of the partner that owns the created channel. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Channel]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future create( - Channel request, - core.String advertiserId, { - core.String? partnerId, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = - 'v1/advertisers/' + core.Uri.encodeFull('$advertiserId') + '/channels'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return Channel.fromJson(response_ as core.Map); - } - - /// Gets a channel for a partner or advertiser. - /// - /// Request parameters: - /// - /// [advertiserId] - The ID of the advertiser that owns the fetched channel. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [channelId] - Required. The ID of the channel to fetch. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [partnerId] - The ID of the partner that owns the fetched channel. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Channel]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String advertiserId, - core.String channelId, { - core.String? partnerId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/channels/' + - core.Uri.encodeFull('$channelId'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return Channel.fromJson(response_ as core.Map); - } - - /// Lists channels for a partner or advertiser. - /// - /// Request parameters: - /// - /// [advertiserId] - The ID of the advertiser that owns the channels. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [filter] - Allows filtering by channel fields. Supported syntax: * Filter - /// expressions for channel can only contain at most one restriction. * A - /// restriction has the form of `{field} {operator} {value}`. * All fields - /// must use the `HAS (:)` operator. Supported fields: * `displayName` - /// Examples: * All channels for which the display name contains "google": - /// `displayName : "google"`. The length of this field should be no more than - /// 500 characters. Reference our \[filter `LIST` - /// requests\](/display-video/api/guides/how-tos/filters) guide for more - /// information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `displayName` (default) * `channelId` The default sorting order is - /// ascending. To specify descending order for a field, a suffix " desc" - /// should be added to the field name. Example: `displayName desc`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `200`. If - /// unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` - /// if an invalid value is specified. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListChannels` method. If not specified, the first page - /// of results will be returned. - /// - /// [partnerId] - The ID of the partner that owns the channels. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListChannelsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list( - core.String advertiserId, { - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? partnerId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = - 'v1/advertisers/' + core.Uri.encodeFull('$advertiserId') + '/channels'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListChannelsResponse.fromJson( - response_ as core.Map); - } - - /// Updates a channel. - /// - /// Returns the updated channel if successful. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - The ID of the advertiser that owns the created channel. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [channelId] - Output only. The unique ID of the channel. Assigned by the - /// system. - /// - /// [partnerId] - The ID of the partner that owns the created channel. - /// - /// [updateMask] - Required. The mask to control which fields to update. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Channel]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future patch( - Channel request, - core.String advertiserId, - core.String channelId, { - core.String? partnerId, - core.String? updateMask, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (partnerId != null) 'partnerId': [partnerId], - if (updateMask != null) 'updateMask': [updateMask], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/channels/' + - commons.escapeVariable('$channelId'); - - final response_ = await _requester.request( - url_, - 'PATCH', - body: body_, - queryParams: queryParams_, - ); - return Channel.fromJson(response_ as core.Map); - } -} - -class AdvertisersChannelsSitesResource { - final commons.ApiRequester _requester; - - AdvertisersChannelsSitesResource(commons.ApiRequester client) - : _requester = client; - - /// Bulk edits sites under a single channel. - /// - /// The operation will delete the sites provided in - /// BulkEditSitesRequest.deleted_sites and then create the sites provided in - /// BulkEditSitesRequest.created_sites. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - The ID of the advertiser that owns the parent channel. - /// - /// [channelId] - Required. The ID of the parent channel to which the sites - /// belong. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [BulkEditSitesResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future bulkEdit( - BulkEditSitesRequest request, - core.String advertiserId, - core.String channelId, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - commons.escapeVariable('$advertiserId') + - '/channels/' + - core.Uri.encodeFull('$channelId') + - '/sites:bulkEdit'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return BulkEditSitesResponse.fromJson( - response_ as core.Map); - } - - /// Creates a site in a channel. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - The ID of the advertiser that owns the parent channel. - /// - /// [channelId] - Required. The ID of the parent channel in which the site - /// will be created. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [partnerId] - The ID of the partner that owns the parent channel. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Site]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future create( - Site request, - core.String advertiserId, - core.String channelId, { - core.String? partnerId, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - commons.escapeVariable('$advertiserId') + - '/channels/' + - core.Uri.encodeFull('$channelId') + - '/sites'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return Site.fromJson(response_ as core.Map); - } - - /// Deletes a site from a channel. - /// - /// Request parameters: - /// - /// [advertiserId] - The ID of the advertiser that owns the parent channel. - /// - /// [channelId] - Required. The ID of the parent channel to which the site - /// belongs. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [urlOrAppId] - Required. The URL or app ID of the site to delete. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [partnerId] - The ID of the partner that owns the parent channel. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Empty]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future delete( - core.String advertiserId, - core.String channelId, - core.String urlOrAppId, { - core.String? partnerId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - commons.escapeVariable('$advertiserId') + - '/channels/' + - core.Uri.encodeFull('$channelId') + - '/sites/' + - core.Uri.encodeFull('$urlOrAppId'); - - final response_ = await _requester.request( - url_, - 'DELETE', - queryParams: queryParams_, - ); - return Empty.fromJson(response_ as core.Map); - } - - /// Lists sites in a channel. - /// - /// Request parameters: - /// - /// [advertiserId] - The ID of the advertiser that owns the parent channel. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [channelId] - Required. The ID of the parent channel to which the - /// requested sites belong. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [filter] - Allows filtering by site fields. Supported syntax: * Filter - /// expressions for site retrieval can only contain at most one restriction. * - /// A restriction has the form of `{field} {operator} {value}`. * All fields - /// must use the `HAS (:)` operator. Supported fields: * `urlOrAppId` - /// Examples: * All sites for which the URL or app ID contains "google": - /// `urlOrAppId : "google"` The length of this field should be no more than - /// 500 characters. Reference our \[filter `LIST` - /// requests\](/display-video/api/guides/how-tos/filters) guide for more - /// information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `urlOrAppId` (default) The default sorting order is ascending. To specify - /// descending order for a field, a suffix " desc" should be added to the - /// field name. Example: `urlOrAppId desc`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `10000`. If - /// unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` - /// if an invalid value is specified. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListSites` method. If not specified, the first page of - /// results will be returned. - /// - /// [partnerId] - The ID of the partner that owns the parent channel. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListSitesResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list( - core.String advertiserId, - core.String channelId, { - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? partnerId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/channels/' + - core.Uri.encodeFull('$channelId') + - '/sites'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListSitesResponse.fromJson( - response_ as core.Map); - } - - /// Replaces all of the sites under a single channel. - /// - /// The operation will replace the sites under a channel with the sites - /// provided in ReplaceSitesRequest.new_sites. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - The ID of the advertiser that owns the parent channel. - /// - /// [channelId] - Required. The ID of the parent channel whose sites will be - /// replaced. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ReplaceSitesResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future replace( - ReplaceSitesRequest request, - core.String advertiserId, - core.String channelId, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - commons.escapeVariable('$advertiserId') + - '/channels/' + - core.Uri.encodeFull('$channelId') + - '/sites:replace'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return ReplaceSitesResponse.fromJson( - response_ as core.Map); - } -} - -class AdvertisersCreativesResource { - final commons.ApiRequester _requester; - - AdvertisersCreativesResource(commons.ApiRequester client) - : _requester = client; - - /// Creates a new creative. - /// - /// Returns the newly created creative if successful. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - Output only. The unique ID of the advertiser the creative - /// belongs to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Creative]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future create( - Creative request, - core.String advertiserId, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = - 'v1/advertisers/' + core.Uri.encodeFull('$advertiserId') + '/creatives'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return Creative.fromJson(response_ as core.Map); - } - - /// Deletes a creative. - /// - /// Returns error code `NOT_FOUND` if the creative does not exist. The - /// creative should be archived first, i.e. set entity_status to - /// `ENTITY_STATUS_ARCHIVED`, before it can be deleted. - /// - /// Request parameters: - /// - /// [advertiserId] - The ID of the advertiser this creative belongs to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [creativeId] - The ID of the creative to be deleted. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Empty]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future delete( - core.String advertiserId, - core.String creativeId, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/creatives/' + - core.Uri.encodeFull('$creativeId'); - - final response_ = await _requester.request( - url_, - 'DELETE', - queryParams: queryParams_, - ); - return Empty.fromJson(response_ as core.Map); - } - - /// Gets a creative. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser this creative belongs - /// to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [creativeId] - Required. The ID of the creative to fetch. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Creative]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String advertiserId, - core.String creativeId, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/creatives/' + - core.Uri.encodeFull('$creativeId'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return Creative.fromJson(response_ as core.Map); - } - - /// Lists creatives in an advertiser. - /// - /// The order is defined by the order_by parameter. If a filter by - /// entity_status is not specified, creatives with `ENTITY_STATUS_ARCHIVED` - /// will not be included in the results. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser to list creatives for. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [filter] - Allows filtering by creative fields. Supported syntax: * Filter - /// expressions are made up of one or more restrictions. * Restrictions can be - /// combined by `AND` or `OR` logical operators. A sequence of restrictions - /// implicitly uses `AND`. * A restriction has the form of `{field} {operator} - /// {value}`. * The `lineItemIds` field must use the `HAS (:)` operator. * The - /// `updateTime` field must use the `GREATER THAN OR EQUAL TO (>=)` or `LESS - /// THAN OR EQUAL TO (<=)` operators. * All other fields must use the `EQUALS - /// (=)` operator. * For `entityStatus`, `minDuration`, `maxDuration`, - /// `updateTime`, and `dynamic` fields, there may be at most one restriction. - /// Supported Fields: * `approvalStatus` * `creativeId` * `creativeType` * - /// `dimensions` (input in the form of `{width}x{height}`) * `dynamic` * - /// `entityStatus` * `exchangeReviewStatus` (input in the form of - /// `{exchange}-{reviewStatus}`) * `lineItemIds` * `maxDuration` (input in the - /// form of `{duration}s`. Only seconds are supported) * `minDuration` (input - /// in the form of `{duration}s`. Only seconds are supported) * `updateTime` - /// (input in ISO 8601 format, or `YYYY-MM-DDTHH:MM:SSZ`) Notes: * For - /// `updateTime`, a creative resource's field value reflects the last time - /// that a creative has been updated, which includes updates made by the - /// system (e.g. creative review updates). Examples: * All native creatives: - /// `creativeType="CREATIVE_TYPE_NATIVE"` * All active creatives with 300x400 - /// or 50x100 dimensions: `entityStatus="ENTITY_STATUS_ACTIVE" AND - /// (dimensions="300x400" OR dimensions="50x100")` * All dynamic creatives - /// that are approved by AdX or AppNexus, with a minimum duration of 5 seconds - /// and 200ms: `dynamic="true" AND minDuration="5.2s" AND - /// (exchangeReviewStatus="EXCHANGE_GOOGLE_AD_MANAGER-REVIEW_STATUS_APPROVED" - /// OR exchangeReviewStatus="EXCHANGE_APPNEXUS-REVIEW_STATUS_APPROVED")` * All - /// video creatives that are associated with line item ID 1 or 2: - /// `creativeType="CREATIVE_TYPE_VIDEO" AND (lineItemIds:1 OR lineItemIds:2)` - /// * Find creatives by multiple creative IDs: `creativeId=1 OR creativeId=2` - /// * All creatives with an update time greater than or equal to - /// 2020-11-04T18:54:47Z (format of ISO 8601): - /// `updateTime>="2020-11-04T18:54:47Z"` The length of this field should be no - /// more than 500 characters. Reference our \[filter `LIST` - /// requests\](/display-video/api/guides/how-tos/filters) guide for more - /// information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `creativeId` (default) * `createTime` * `mediaDuration` * `dimensions` - /// (sorts by width first, then by height) The default sorting order is - /// ascending. To specify descending order for a field, a suffix "desc" should - /// be added to the field name. Example: `createTime desc`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `200`. If - /// unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` - /// if an invalid value is specified. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListCreatives` method. If not specified, the first page - /// of results will be returned. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListCreativesResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list( - core.String advertiserId, { - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = - 'v1/advertisers/' + core.Uri.encodeFull('$advertiserId') + '/creatives'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListCreativesResponse.fromJson( - response_ as core.Map); - } - - /// Updates an existing creative. - /// - /// Returns the updated creative if successful. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - Output only. The unique ID of the advertiser the creative - /// belongs to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [creativeId] - Output only. The unique ID of the creative. Assigned by the - /// system. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [updateMask] - Required. The mask to control which fields to update. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Creative]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future patch( - Creative request, - core.String advertiserId, - core.String creativeId, { - core.String? updateMask, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (updateMask != null) 'updateMask': [updateMask], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/creatives/' + - core.Uri.encodeFull('$creativeId'); - - final response_ = await _requester.request( - url_, - 'PATCH', - body: body_, - queryParams: queryParams_, - ); - return Creative.fromJson(response_ as core.Map); - } -} - -class AdvertisersInsertionOrdersResource { - final commons.ApiRequester _requester; - - AdvertisersInsertionOrdersTargetingTypesResource get targetingTypes => - AdvertisersInsertionOrdersTargetingTypesResource(_requester); - - AdvertisersInsertionOrdersResource(commons.ApiRequester client) - : _requester = client; - - /// Lists assigned targeting options of an insertion order across targeting - /// types. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser the insertion order - /// belongs to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [insertionOrderId] - Required. The ID of the insertion order to list - /// assigned targeting options for. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [filter] - Allows filtering by assigned targeting option fields. Supported - /// syntax: * Filter expressions are made up of one or more restrictions. * - /// Restrictions can be combined by the logical operator `OR`. * A restriction - /// has the form of `{field} {operator} {value}`. * All fields must use the - /// `EQUALS (=)` operator. Supported fields: * `targetingType` * `inheritance` - /// Examples: * `AssignedTargetingOption` resources of targeting type - /// `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` or `TARGETING_TYPE_CHANNEL`: - /// `targetingType="TARGETING_TYPE_PROXIMITY_LOCATION_LIST" OR - /// targetingType="TARGETING_TYPE_CHANNEL"` * `AssignedTargetingOption` - /// resources with inheritance status of `NOT_INHERITED` or - /// `INHERITED_FROM_PARTNER`: `inheritance="NOT_INHERITED" OR - /// inheritance="INHERITED_FROM_PARTNER"` The length of this field should be - /// no more than 500 characters. Reference our \[filter `LIST` - /// requests\](/display-video/api/guides/how-tos/filters) guide for more - /// information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `targetingType` (default) The default sorting order is ascending. To - /// specify descending order for a field, a suffix "desc" should be added to - /// the field name. Example: `targetingType desc`. - /// - /// [pageSize] - Requested page size. The size must be an integer between `1` - /// and `5000`. If unspecified, the default is `5000`. Returns error code - /// `INVALID_ARGUMENT` if an invalid value is specified. - /// - /// [pageToken] - A token that lets the client fetch the next page of results. - /// Typically, this is the value of next_page_token returned from the previous - /// call to `BulkListInsertionOrderAssignedTargetingOptions` method. If not - /// specified, the first page of results will be returned. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [BulkListInsertionOrderAssignedTargetingOptionsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future - bulkListInsertionOrderAssignedTargetingOptions( - core.String advertiserId, - core.String insertionOrderId, { - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/insertionOrders/' + - core.Uri.encodeFull('$insertionOrderId') + - ':bulkListInsertionOrderAssignedTargetingOptions'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return BulkListInsertionOrderAssignedTargetingOptionsResponse.fromJson( - response_ as core.Map); - } - - /// Creates a new insertion order. - /// - /// Returns the newly created insertion order if successful. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - Output only. The unique ID of the advertiser the - /// insertion order belongs to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [InsertionOrder]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future create( - InsertionOrder request, - core.String advertiserId, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/insertionOrders'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return InsertionOrder.fromJson( - response_ as core.Map); - } - - /// Deletes an insertion order. - /// - /// Returns error code `NOT_FOUND` if the insertion order does not exist. The - /// insertion order should be archived first, i.e. set entity_status to - /// `ENTITY_STATUS_ARCHIVED`, to be able to delete it. - /// - /// Request parameters: - /// - /// [advertiserId] - The ID of the advertiser this insertion order belongs to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [insertionOrderId] - The ID of the insertion order to delete. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Empty]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future delete( - core.String advertiserId, - core.String insertionOrderId, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/insertionOrders/' + - core.Uri.encodeFull('$insertionOrderId'); - - final response_ = await _requester.request( - url_, - 'DELETE', - queryParams: queryParams_, - ); - return Empty.fromJson(response_ as core.Map); - } - - /// Gets an insertion order. - /// - /// Returns error code `NOT_FOUND` if the insertion order does not exist. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser this insertion order - /// belongs to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [insertionOrderId] - Required. The ID of the insertion order to fetch. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [InsertionOrder]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String advertiserId, - core.String insertionOrderId, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/insertionOrders/' + - core.Uri.encodeFull('$insertionOrderId'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return InsertionOrder.fromJson( - response_ as core.Map); - } - - /// Lists insertion orders in an advertiser. - /// - /// The order is defined by the order_by parameter. If a filter by - /// entity_status is not specified, insertion orders with - /// `ENTITY_STATUS_ARCHIVED` will not be included in the results. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser to list insertion - /// orders for. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [filter] - Allows filtering by insertion order fields. Supported syntax: * - /// Filter expressions are made up of one or more restrictions. * Restrictions - /// can be combined by `AND` or `OR` logical operators. A sequence of - /// restrictions implicitly uses `AND`. * A restriction has the form of - /// `{field} {operator} {value}`. * The `updateTime` field must use the - /// `GREATER THAN OR EQUAL TO (>=)` or `LESS THAN OR EQUAL TO (<=)` operators. - /// * All other fields must use the `EQUALS (=)` operator. Supported fields: * - /// `campaignId` * `displayName` * `entityStatus` * `updateTime` (input in ISO - /// 8601 format, or `YYYY-MM-DDTHH:MM:SSZ`) Examples: * All insertion orders - /// under a campaign: `campaignId="1234"` * All `ENTITY_STATUS_ACTIVE` or - /// `ENTITY_STATUS_PAUSED` insertion orders under an advertiser: - /// `(entityStatus="ENTITY_STATUS_ACTIVE" OR - /// entityStatus="ENTITY_STATUS_PAUSED")` * All insertion orders with an - /// update time less than or equal to 2020-11-04T18:54:47Z (format of ISO - /// 8601): `updateTime<="2020-11-04T18:54:47Z"` * All insertion orders with an - /// update time greater than or equal to 2020-11-04T18:54:47Z (format of ISO - /// 8601): `updateTime>="2020-11-04T18:54:47Z"` The length of this field - /// should be no more than 500 characters. Reference our \[filter `LIST` - /// requests\](/display-video/api/guides/how-tos/filters) guide for more - /// information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// "displayName" (default) * "entityStatus" * "updateTime" The default - /// sorting order is ascending. To specify descending order for a field, a - /// suffix "desc" should be added to the field name. Example: `displayName - /// desc`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `100`. If - /// unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` - /// if an invalid value is specified. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListInsertionOrders` method. If not specified, the first - /// page of results will be returned. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListInsertionOrdersResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list( - core.String advertiserId, { - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/insertionOrders'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListInsertionOrdersResponse.fromJson( - response_ as core.Map); - } - - /// Updates an existing insertion order. - /// - /// Returns the updated insertion order if successful. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - Output only. The unique ID of the advertiser the - /// insertion order belongs to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [insertionOrderId] - Output only. The unique ID of the insertion order. - /// Assigned by the system. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [updateMask] - Required. The mask to control which fields to update. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [InsertionOrder]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future patch( - InsertionOrder request, - core.String advertiserId, - core.String insertionOrderId, { - core.String? updateMask, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (updateMask != null) 'updateMask': [updateMask], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/insertionOrders/' + - core.Uri.encodeFull('$insertionOrderId'); - - final response_ = await _requester.request( - url_, - 'PATCH', - body: body_, - queryParams: queryParams_, - ); - return InsertionOrder.fromJson( - response_ as core.Map); - } -} - -class AdvertisersInsertionOrdersTargetingTypesResource { - final commons.ApiRequester _requester; - - AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsResource - get assignedTargetingOptions => - AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsResource( - _requester); - - AdvertisersInsertionOrdersTargetingTypesResource(commons.ApiRequester client) - : _requester = client; -} - -class AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsResource { - final commons.ApiRequester _requester; - - AdvertisersInsertionOrdersTargetingTypesAssignedTargetingOptionsResource( - commons.ApiRequester client) - : _requester = client; - - /// Gets a single targeting option assigned to an insertion order. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser the insertion order - /// belongs to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [insertionOrderId] - Required. The ID of the insertion order the assigned - /// targeting option belongs to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [targetingType] - Required. Identifies the type of this assigned targeting - /// option. Supported targeting types include: * `TARGETING_TYPE_AGE_RANGE` * - /// `TARGETING_TYPE_APP` * `TARGETING_TYPE_APP_CATEGORY` * - /// `TARGETING_TYPE_AUDIENCE_GROUP` * `TARGETING_TYPE_AUDIO_CONTENT_TYPE` * - /// `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_BROWSER` * - /// `TARGETING_TYPE_BUSINESS_CHAIN` * `TARGETING_TYPE_CARRIER_AND_ISP` * - /// `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_CHANNEL` * - /// `TARGETING_TYPE_CONTENT_DURATION` * `TARGETING_TYPE_CONTENT_GENRE` * - /// `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * - /// `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * - /// `TARGETING_TYPE_CONTENT_STREAM_TYPE` * `TARGETING_TYPE_DAY_AND_TIME` * - /// `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_DEVICE_TYPE` * - /// `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * - /// `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * - /// `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * - /// `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * - /// `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_KEYWORD` * - /// `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * - /// `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST` * `TARGETING_TYPE_OMID` * - /// `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_OPERATING_SYSTEM` * - /// `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_POI` * - /// `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` * - /// `TARGETING_TYPE_REGIONAL_LOCATION_LIST` * - /// `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * - /// `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * - /// `TARGETING_TYPE_URL` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * - /// `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_VIEWABILITY` - /// Value must have pattern `^\[^/\]+$`. - /// Possible string values are: - /// - "TARGETING_TYPE_UNSPECIFIED" : Default value when type is not specified - /// or is unknown in this version. - /// - "TARGETING_TYPE_CHANNEL" : Target a channel (a custom group of related - /// websites or apps). - /// - "TARGETING_TYPE_APP_CATEGORY" : Target an app category (for example, - /// education or puzzle games). - /// - "TARGETING_TYPE_APP" : Target a specific app (for example, Angry Birds). - /// - "TARGETING_TYPE_URL" : Target a specific url (for example, quora.com). - /// - "TARGETING_TYPE_DAY_AND_TIME" : Target ads during a chosen time period - /// on a specific day. - /// - "TARGETING_TYPE_AGE_RANGE" : Target ads to a specific age range (for - /// example, 18-24). - /// - "TARGETING_TYPE_REGIONAL_LOCATION_LIST" : Target ads to the specified - /// regions on a regional location list. - /// - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" : Target ads to the specified - /// points of interest on a proximity location list. - /// - "TARGETING_TYPE_GENDER" : Target ads to a specific gender (for example, - /// female or male). - /// - "TARGETING_TYPE_VIDEO_PLAYER_SIZE" : Target a specific video player size - /// for video ads. - /// - "TARGETING_TYPE_USER_REWARDED_CONTENT" : Target user rewarded content - /// for video ads. - /// - "TARGETING_TYPE_PARENTAL_STATUS" : Target ads to a specific parental - /// status (for example, parent or not a parent). - /// - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" : Target video or audio ads - /// in a specific content instream position (for example, pre-roll, mid-roll, - /// or post-roll). - /// - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" : Target ads in a specific - /// content outstream position. - /// - "TARGETING_TYPE_DEVICE_TYPE" : Target ads to a specific device type (for - /// example, tablet or connected TV). - /// - "TARGETING_TYPE_AUDIENCE_GROUP" : Target ads to an audience or groups of - /// audiences. Singleton field, at most one can exist on a single Lineitem at - /// a time. - /// - "TARGETING_TYPE_BROWSER" : Target ads to specific web browsers (for - /// example, Chrome). - /// - "TARGETING_TYPE_HOUSEHOLD_INCOME" : Target ads to a specific household - /// income range (for example, top 10%). - /// - "TARGETING_TYPE_ON_SCREEN_POSITION" : Target ads in a specific on screen - /// position. - /// - "TARGETING_TYPE_THIRD_PARTY_VERIFIER" : Filter web sites through third - /// party verification (for example, IAS or DoubleVerify). - /// - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" : Filter web sites by - /// specific digital content label ratings (for example, DL-MA: suitable only - /// for mature audiences). - /// - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" : Filter website content - /// by sensitive categories (for example, adult). - /// - "TARGETING_TYPE_ENVIRONMENT" : Target ads to a specific environment (for - /// example, web or app). - /// - "TARGETING_TYPE_CARRIER_AND_ISP" : Target ads to a specific network - /// carrier or internet service provider (ISP) (for example, Comcast or - /// Orange). - /// - "TARGETING_TYPE_OPERATING_SYSTEM" : Target ads to a specific operating - /// system (for example, macOS). - /// - "TARGETING_TYPE_DEVICE_MAKE_MODEL" : Target ads to a specific device - /// make or model (for example, Roku or Samsung). - /// - "TARGETING_TYPE_KEYWORD" : Target ads to a specific keyword (for - /// example, dog or retriever). - /// - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" : Target ads to a specific - /// negative keyword list. - /// - "TARGETING_TYPE_VIEWABILITY" : Target ads to a specific viewability (for - /// example, 80% viewable). - /// - "TARGETING_TYPE_CATEGORY" : Target ads to a specific content category - /// (for example, arts & entertainment). - /// - "TARGETING_TYPE_INVENTORY_SOURCE" : Purchase impressions from specific - /// deals and auction packages. - /// - "TARGETING_TYPE_LANGUAGE" : Target ads to a specific language (for - /// example, English or Japanese). - /// - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" : Target ads to ads.txt - /// authorized sellers. If no targeting option of this type is assigned, the - /// resource uses the "Authorized Direct Sellers and Resellers" option by - /// default. - /// - "TARGETING_TYPE_GEO_REGION" : Target ads to a specific regional location - /// (for example, a city or state). - /// - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" : Purchase impressions from a - /// group of deals and auction packages. - /// - "TARGETING_TYPE_EXCHANGE" : Purchase impressions from specific - /// exchanges. - /// - "TARGETING_TYPE_SUB_EXCHANGE" : Purchase impressions from specific - /// sub-exchanges. - /// - "TARGETING_TYPE_POI" : Target ads around a specific point of interest, - /// such as a notable building, a street address, or latitude/longitude - /// coordinates. - /// - "TARGETING_TYPE_BUSINESS_CHAIN" : Target ads around locations of a - /// business chain within a specific geo region. - /// - "TARGETING_TYPE_CONTENT_DURATION" : Target ads to a specific video - /// content duration. - /// - "TARGETING_TYPE_CONTENT_STREAM_TYPE" : Target ads to a specific video - /// content stream type. - /// - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" : Target ads to a specific - /// native content position. - /// - "TARGETING_TYPE_OMID" : Target ads in an Open Measurement enabled - /// inventory. - /// - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" : Target ads to a specific audio - /// content type. - /// - "TARGETING_TYPE_CONTENT_GENRE" : Target ads to a specific content genre. - /// - /// [assignedTargetingOptionId] - Required. An identifier unique to the - /// targeting type in this insertion order that identifies the assigned - /// targeting option being requested. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [AssignedTargetingOption]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String advertiserId, - core.String insertionOrderId, - core.String targetingType, - core.String assignedTargetingOptionId, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/insertionOrders/' + - core.Uri.encodeFull('$insertionOrderId') + - '/targetingTypes/' + - core.Uri.encodeFull('$targetingType') + - '/assignedTargetingOptions/' + - core.Uri.encodeFull('$assignedTargetingOptionId'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return AssignedTargetingOption.fromJson( - response_ as core.Map); - } - - /// Lists the targeting options assigned to an insertion order. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser the insertion order - /// belongs to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [insertionOrderId] - Required. The ID of the insertion order to list - /// assigned targeting options for. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [targetingType] - Required. Identifies the type of assigned targeting - /// options to list. Supported targeting types include: * - /// `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_APP` * - /// `TARGETING_TYPE_APP_CATEGORY` * `TARGETING_TYPE_AUDIENCE_GROUP` * - /// `TARGETING_TYPE_AUDIO_CONTENT_TYPE` * - /// `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_BROWSER` * - /// `TARGETING_TYPE_BUSINESS_CHAIN` * `TARGETING_TYPE_CARRIER_AND_ISP` * - /// `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_CHANNEL` * - /// `TARGETING_TYPE_CONTENT_DURATION` * `TARGETING_TYPE_CONTENT_GENRE` * - /// `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * - /// `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * - /// `TARGETING_TYPE_CONTENT_STREAM_TYPE` * `TARGETING_TYPE_DAY_AND_TIME` * - /// `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_DEVICE_TYPE` * - /// `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * - /// `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * - /// `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * - /// `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * - /// `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_KEYWORD` * - /// `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * - /// `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST` * `TARGETING_TYPE_OMID` * - /// `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_OPERATING_SYSTEM` * - /// `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_POI` * - /// `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` * - /// `TARGETING_TYPE_REGIONAL_LOCATION_LIST` * - /// `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * - /// `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * - /// `TARGETING_TYPE_URL` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * - /// `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_VIEWABILITY` - /// Value must have pattern `^\[^/\]+$`. - /// Possible string values are: - /// - "TARGETING_TYPE_UNSPECIFIED" : Default value when type is not specified - /// or is unknown in this version. - /// - "TARGETING_TYPE_CHANNEL" : Target a channel (a custom group of related - /// websites or apps). - /// - "TARGETING_TYPE_APP_CATEGORY" : Target an app category (for example, - /// education or puzzle games). - /// - "TARGETING_TYPE_APP" : Target a specific app (for example, Angry Birds). - /// - "TARGETING_TYPE_URL" : Target a specific url (for example, quora.com). - /// - "TARGETING_TYPE_DAY_AND_TIME" : Target ads during a chosen time period - /// on a specific day. - /// - "TARGETING_TYPE_AGE_RANGE" : Target ads to a specific age range (for - /// example, 18-24). - /// - "TARGETING_TYPE_REGIONAL_LOCATION_LIST" : Target ads to the specified - /// regions on a regional location list. - /// - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" : Target ads to the specified - /// points of interest on a proximity location list. - /// - "TARGETING_TYPE_GENDER" : Target ads to a specific gender (for example, - /// female or male). - /// - "TARGETING_TYPE_VIDEO_PLAYER_SIZE" : Target a specific video player size - /// for video ads. - /// - "TARGETING_TYPE_USER_REWARDED_CONTENT" : Target user rewarded content - /// for video ads. - /// - "TARGETING_TYPE_PARENTAL_STATUS" : Target ads to a specific parental - /// status (for example, parent or not a parent). - /// - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" : Target video or audio ads - /// in a specific content instream position (for example, pre-roll, mid-roll, - /// or post-roll). - /// - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" : Target ads in a specific - /// content outstream position. - /// - "TARGETING_TYPE_DEVICE_TYPE" : Target ads to a specific device type (for - /// example, tablet or connected TV). - /// - "TARGETING_TYPE_AUDIENCE_GROUP" : Target ads to an audience or groups of - /// audiences. Singleton field, at most one can exist on a single Lineitem at - /// a time. - /// - "TARGETING_TYPE_BROWSER" : Target ads to specific web browsers (for - /// example, Chrome). - /// - "TARGETING_TYPE_HOUSEHOLD_INCOME" : Target ads to a specific household - /// income range (for example, top 10%). - /// - "TARGETING_TYPE_ON_SCREEN_POSITION" : Target ads in a specific on screen - /// position. - /// - "TARGETING_TYPE_THIRD_PARTY_VERIFIER" : Filter web sites through third - /// party verification (for example, IAS or DoubleVerify). - /// - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" : Filter web sites by - /// specific digital content label ratings (for example, DL-MA: suitable only - /// for mature audiences). - /// - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" : Filter website content - /// by sensitive categories (for example, adult). - /// - "TARGETING_TYPE_ENVIRONMENT" : Target ads to a specific environment (for - /// example, web or app). - /// - "TARGETING_TYPE_CARRIER_AND_ISP" : Target ads to a specific network - /// carrier or internet service provider (ISP) (for example, Comcast or - /// Orange). - /// - "TARGETING_TYPE_OPERATING_SYSTEM" : Target ads to a specific operating - /// system (for example, macOS). - /// - "TARGETING_TYPE_DEVICE_MAKE_MODEL" : Target ads to a specific device - /// make or model (for example, Roku or Samsung). - /// - "TARGETING_TYPE_KEYWORD" : Target ads to a specific keyword (for - /// example, dog or retriever). - /// - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" : Target ads to a specific - /// negative keyword list. - /// - "TARGETING_TYPE_VIEWABILITY" : Target ads to a specific viewability (for - /// example, 80% viewable). - /// - "TARGETING_TYPE_CATEGORY" : Target ads to a specific content category - /// (for example, arts & entertainment). - /// - "TARGETING_TYPE_INVENTORY_SOURCE" : Purchase impressions from specific - /// deals and auction packages. - /// - "TARGETING_TYPE_LANGUAGE" : Target ads to a specific language (for - /// example, English or Japanese). - /// - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" : Target ads to ads.txt - /// authorized sellers. If no targeting option of this type is assigned, the - /// resource uses the "Authorized Direct Sellers and Resellers" option by - /// default. - /// - "TARGETING_TYPE_GEO_REGION" : Target ads to a specific regional location - /// (for example, a city or state). - /// - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" : Purchase impressions from a - /// group of deals and auction packages. - /// - "TARGETING_TYPE_EXCHANGE" : Purchase impressions from specific - /// exchanges. - /// - "TARGETING_TYPE_SUB_EXCHANGE" : Purchase impressions from specific - /// sub-exchanges. - /// - "TARGETING_TYPE_POI" : Target ads around a specific point of interest, - /// such as a notable building, a street address, or latitude/longitude - /// coordinates. - /// - "TARGETING_TYPE_BUSINESS_CHAIN" : Target ads around locations of a - /// business chain within a specific geo region. - /// - "TARGETING_TYPE_CONTENT_DURATION" : Target ads to a specific video - /// content duration. - /// - "TARGETING_TYPE_CONTENT_STREAM_TYPE" : Target ads to a specific video - /// content stream type. - /// - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" : Target ads to a specific - /// native content position. - /// - "TARGETING_TYPE_OMID" : Target ads in an Open Measurement enabled - /// inventory. - /// - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" : Target ads to a specific audio - /// content type. - /// - "TARGETING_TYPE_CONTENT_GENRE" : Target ads to a specific content genre. - /// - /// [filter] - Allows filtering by assigned targeting option fields. Supported - /// syntax: * Filter expressions are made up of one or more restrictions. * - /// Restrictions can be combined by the logical operator `OR`. * A restriction - /// has the form of `{field} {operator} {value}`. * All fields must use the - /// `EQUALS (=)` operator. Supported fields: * `assignedTargetingOptionId` * - /// `inheritance` Examples: * `AssignedTargetingOption` resources with ID 1 or - /// 2: `assignedTargetingOptionId="1" OR assignedTargetingOptionId="2"` * - /// `AssignedTargetingOption` resources with inheritance status of - /// `NOT_INHERITED` or `INHERITED_FROM_PARTNER`: `inheritance="NOT_INHERITED" - /// OR inheritance="INHERITED_FROM_PARTNER"` The length of this field should - /// be no more than 500 characters. Reference our \[filter `LIST` - /// requests\](/display-video/api/guides/how-tos/filters) guide for more - /// information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `assignedTargetingOptionId` (default) The default sorting order is - /// ascending. To specify descending order for a field, a suffix "desc" should - /// be added to the field name. Example: `assignedTargetingOptionId desc`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `5000`. If - /// unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` - /// if an invalid value is specified. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListInsertionOrderAssignedTargetingOptions` method. If - /// not specified, the first page of results will be returned. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListInsertionOrderAssignedTargetingOptionsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list( - core.String advertiserId, - core.String insertionOrderId, - core.String targetingType, { - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/insertionOrders/' + - core.Uri.encodeFull('$insertionOrderId') + - '/targetingTypes/' + - core.Uri.encodeFull('$targetingType') + - '/assignedTargetingOptions'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListInsertionOrderAssignedTargetingOptionsResponse.fromJson( - response_ as core.Map); - } -} - -class AdvertisersInvoicesResource { - final commons.ApiRequester _requester; - - AdvertisersInvoicesResource(commons.ApiRequester client) - : _requester = client; - - /// Lists invoices posted for an advertiser in a given month. - /// - /// Invoices generated by billing profiles with a "Partner" invoice level are - /// not retrievable through this method. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser to list invoices for. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [issueMonth] - The month to list the invoices for. If not set, the request - /// will retrieve invoices for the previous month. Must be in the format - /// YYYYMM. - /// - /// [loiSapinInvoiceType] - Select type of invoice to retrieve for Loi Sapin - /// advertisers. Only applicable to Loi Sapin advertisers. Will be ignored - /// otherwise. - /// Possible string values are: - /// - "LOI_SAPIN_INVOICE_TYPE_UNSPECIFIED" : Value is not specified. - /// - "LOI_SAPIN_INVOICE_TYPE_MEDIA" : Invoices with Media cost. - /// - "LOI_SAPIN_INVOICE_TYPE_PLATFORM" : Invoices with Platform fee. - /// - /// [pageSize] - Requested page size. Must be between `1` and `200`. If - /// unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` - /// if an invalid value is specified. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListInvoices` method. If not specified, the first page - /// of results will be returned. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListInvoicesResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list( - core.String advertiserId, { - core.String? issueMonth, - core.String? loiSapinInvoiceType, - core.int? pageSize, - core.String? pageToken, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (issueMonth != null) 'issueMonth': [issueMonth], - if (loiSapinInvoiceType != null) - 'loiSapinInvoiceType': [loiSapinInvoiceType], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = - 'v1/advertisers/' + core.Uri.encodeFull('$advertiserId') + '/invoices'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListInvoicesResponse.fromJson( - response_ as core.Map); - } - - /// Retrieves the invoice currency used by an advertiser in a given month. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser to lookup currency - /// for. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [invoiceMonth] - Month for which the currency is needed. If not set, the - /// request will return existing currency settings for the advertiser. Must be - /// in the format YYYYMM. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [LookupInvoiceCurrencyResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future lookupInvoiceCurrency( - core.String advertiserId, { - core.String? invoiceMonth, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (invoiceMonth != null) 'invoiceMonth': [invoiceMonth], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/invoices:lookupInvoiceCurrency'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return LookupInvoiceCurrencyResponse.fromJson( - response_ as core.Map); - } -} - -class AdvertisersLineItemsResource { - final commons.ApiRequester _requester; - - AdvertisersLineItemsTargetingTypesResource get targetingTypes => - AdvertisersLineItemsTargetingTypesResource(_requester); - - AdvertisersLineItemsResource(commons.ApiRequester client) - : _requester = client; - - /// Bulk edits targeting options under a single line item. - /// - /// The operation will delete the assigned targeting options provided in - /// BulkEditLineItemAssignedTargetingOptionsRequest.delete_requests and then - /// create the assigned targeting options provided in - /// BulkEditLineItemAssignedTargetingOptionsRequest.create_requests. Requests - /// to this endpoint cannot be made concurrently with the following requests - /// updating the same line item: * lineItems.patch * - /// assignedTargetingOptions.create * assignedTargetingOptions.delete - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser the line item belongs - /// to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [lineItemId] - Required. The ID of the line item the assigned targeting - /// option will belong to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [BulkEditLineItemAssignedTargetingOptionsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future - bulkEditLineItemAssignedTargetingOptions( - BulkEditLineItemAssignedTargetingOptionsRequest request, - core.String advertiserId, - core.String lineItemId, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/lineItems/' + - core.Uri.encodeFull('$lineItemId') + - ':bulkEditLineItemAssignedTargetingOptions'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return BulkEditLineItemAssignedTargetingOptionsResponse.fromJson( - response_ as core.Map); - } - - /// Lists assigned targeting options of a line item across targeting types. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser the line item belongs - /// to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [lineItemId] - Required. The ID of the line item to list assigned - /// targeting options for. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [filter] - Allows filtering by assigned targeting option fields. Supported - /// syntax: * Filter expressions are made up of one or more restrictions. * - /// Restrictions can be combined by the logical operator `OR`. * A restriction - /// has the form of `{field} {operator} {value}`. * All fields must use the - /// `EQUALS (=)` operator. Supported fields: * `targetingType` * `inheritance` - /// Examples: * `AssignedTargetingOption` resources of targeting type - /// `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` or `TARGETING_TYPE_CHANNEL`: - /// `targetingType="TARGETING_TYPE_PROXIMITY_LOCATION_LIST" OR - /// targetingType="TARGETING_TYPE_CHANNEL"` * `AssignedTargetingOption` - /// resources with inheritance status of `NOT_INHERITED` or - /// `INHERITED_FROM_PARTNER`: `inheritance="NOT_INHERITED" OR - /// inheritance="INHERITED_FROM_PARTNER"` The length of this field should be - /// no more than 500 characters. Reference our \[filter `LIST` - /// requests\](/display-video/api/guides/how-tos/filters) guide for more - /// information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `targetingType` (default) The default sorting order is ascending. To - /// specify descending order for a field, a suffix "desc" should be added to - /// the field name. Example: `targetingType desc`. - /// - /// [pageSize] - Requested page size. The size must be an integer between `1` - /// and `5000`. If unspecified, the default is `5000`. Returns error code - /// `INVALID_ARGUMENT` if an invalid value is specified. - /// - /// [pageToken] - A token that lets the client fetch the next page of results. - /// Typically, this is the value of next_page_token returned from the previous - /// call to `BulkListLineItemAssignedTargetingOptions` method. If not - /// specified, the first page of results will be returned. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [BulkListLineItemAssignedTargetingOptionsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future - bulkListLineItemAssignedTargetingOptions( - core.String advertiserId, - core.String lineItemId, { - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/lineItems/' + - core.Uri.encodeFull('$lineItemId') + - ':bulkListLineItemAssignedTargetingOptions'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return BulkListLineItemAssignedTargetingOptionsResponse.fromJson( - response_ as core.Map); - } - - /// Creates a new line item. - /// - /// Returns the newly created line item if successful. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - Output only. The unique ID of the advertiser the line - /// item belongs to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [LineItem]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future create( - LineItem request, - core.String advertiserId, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = - 'v1/advertisers/' + core.Uri.encodeFull('$advertiserId') + '/lineItems'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return LineItem.fromJson(response_ as core.Map); - } - - /// Deletes a line item. - /// - /// Returns error code `NOT_FOUND` if the line item does not exist. The line - /// item should be archived first, i.e. set entity_status to - /// `ENTITY_STATUS_ARCHIVED`, to be able to delete it. - /// - /// Request parameters: - /// - /// [advertiserId] - The ID of the advertiser this line item belongs to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [lineItemId] - The ID of the line item to delete. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Empty]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future delete( - core.String advertiserId, - core.String lineItemId, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/lineItems/' + - core.Uri.encodeFull('$lineItemId'); - - final response_ = await _requester.request( - url_, - 'DELETE', - queryParams: queryParams_, - ); - return Empty.fromJson(response_ as core.Map); - } - - /// Creates a new line item with settings (including targeting) inherited from - /// the insertion order and an `ENTITY_STATUS_DRAFT` entity_status. - /// - /// Returns the newly created line item if successful. There are default - /// values based on the three fields: * The insertion order's - /// insertion_order_type * The insertion order's automation_type * The given - /// line_item_type - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser this line item belongs - /// to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [LineItem]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future generateDefault( - GenerateDefaultLineItemRequest request, - core.String advertiserId, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/lineItems:generateDefault'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return LineItem.fromJson(response_ as core.Map); - } - - /// Gets a line item. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser this line item belongs - /// to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [lineItemId] - Required. The ID of the line item to fetch. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [LineItem]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String advertiserId, - core.String lineItemId, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/lineItems/' + - core.Uri.encodeFull('$lineItemId'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return LineItem.fromJson(response_ as core.Map); - } - - /// Lists line items in an advertiser. - /// - /// The order is defined by the order_by parameter. If a filter by - /// entity_status is not specified, line items with `ENTITY_STATUS_ARCHIVED` - /// will not be included in the results. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser to list line items - /// for. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [filter] - Allows filtering by line item fields. Supported syntax: * - /// Filter expressions are made up of one or more restrictions. * Restrictions - /// can be combined by `AND` or `OR` logical operators. A sequence of - /// restrictions implicitly uses `AND`. * A restriction has the form of - /// `{field} {operator} {value}`. * The `updateTime` field must use the - /// `GREATER THAN OR EQUAL TO (>=)` or `LESS THAN OR EQUAL TO (<=)` operators. - /// * All other fields must use the `EQUALS (=)` operator. Supported fields: * - /// `campaignId` * `displayName` * `entityStatus` * `insertionOrderId` * - /// `lineItemId` * `lineItemType` * `updateTime` (input in ISO 8601 format, or - /// `YYYY-MM-DDTHH:MM:SSZ`) Examples: * All line items under an insertion - /// order: `insertionOrderId="1234"` * All `ENTITY_STATUS_ACTIVE` or - /// `ENTITY_STATUS_PAUSED` and `LINE_ITEM_TYPE_DISPLAY_DEFAULT` line items - /// under an advertiser: `(entityStatus="ENTITY_STATUS_ACTIVE" OR - /// entityStatus="ENTITY_STATUS_PAUSED") AND - /// lineItemType="LINE_ITEM_TYPE_DISPLAY_DEFAULT"` * All line items with an - /// update time less than or equal to 2020-11-04T18:54:47Z (format of ISO - /// 8601): `updateTime<="2020-11-04T18:54:47Z"` * All line items with an - /// update time greater than or equal to 2020-11-04T18:54:47Z (format of ISO - /// 8601): `updateTime>="2020-11-04T18:54:47Z"` The length of this field - /// should be no more than 500 characters. Reference our \[filter `LIST` - /// requests\](/display-video/api/guides/how-tos/filters) guide for more - /// information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `displayName` (default) * `entityStatus` * `updateTime` The default - /// sorting order is ascending. To specify descending order for a field, a - /// suffix "desc" should be added to the field name. Example: `displayName - /// desc`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `200`. If - /// unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` - /// if an invalid value is specified. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListLineItems` method. If not specified, the first page - /// of results will be returned. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListLineItemsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list( - core.String advertiserId, { - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = - 'v1/advertisers/' + core.Uri.encodeFull('$advertiserId') + '/lineItems'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListLineItemsResponse.fromJson( - response_ as core.Map); - } - - /// Updates an existing line item. - /// - /// Returns the updated line item if successful. Requests to this endpoint - /// cannot be made concurrently with the following requests updating the same - /// line item: * BulkEditAssignedTargetingOptions * BulkUpdateLineItems * - /// assignedTargetingOptions.create * assignedTargetingOptions.delete - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - Output only. The unique ID of the advertiser the line - /// item belongs to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [lineItemId] - Output only. The unique ID of the line item. Assigned by - /// the system. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [updateMask] - Required. The mask to control which fields to update. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [LineItem]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future patch( - LineItem request, - core.String advertiserId, - core.String lineItemId, { - core.String? updateMask, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (updateMask != null) 'updateMask': [updateMask], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/lineItems/' + - core.Uri.encodeFull('$lineItemId'); - - final response_ = await _requester.request( - url_, - 'PATCH', - body: body_, - queryParams: queryParams_, - ); - return LineItem.fromJson(response_ as core.Map); - } -} - -class AdvertisersLineItemsTargetingTypesResource { - final commons.ApiRequester _requester; - - AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsResource - get assignedTargetingOptions => - AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsResource( - _requester); - - AdvertisersLineItemsTargetingTypesResource(commons.ApiRequester client) - : _requester = client; -} - -class AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsResource { - final commons.ApiRequester _requester; - - AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsResource( - commons.ApiRequester client) - : _requester = client; - - /// Assigns a targeting option to a line item. - /// - /// Returns the assigned targeting option if successful. Requests to this - /// endpoint cannot be made concurrently with the following requests updating - /// the same line item: * lineItems.bulkEditAssignedTargetingOptions * - /// lineItems.bulkUpdate * lineItems.patch * - /// DeleteLineItemAssignedTargetingOption - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser the line item belongs - /// to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [lineItemId] - Required. The ID of the line item the assigned targeting - /// option will belong to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [targetingType] - Required. Identifies the type of this assigned targeting - /// option. Supported targeting types include: * `TARGETING_TYPE_AGE_RANGE` * - /// `TARGETING_TYPE_APP` * `TARGETING_TYPE_APP_CATEGORY` * - /// `TARGETING_TYPE_AUDIENCE_GROUP` * `TARGETING_TYPE_AUDIO_CONTENT_TYPE` * - /// `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_BROWSER` * - /// `TARGETING_TYPE_BUSINESS_CHAIN` * `TARGETING_TYPE_CARRIER_AND_ISP` * - /// `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_CHANNEL` * - /// `TARGETING_TYPE_CONTENT_DURATION` * `TARGETING_TYPE_CONTENT_GENRE` * - /// `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * - /// `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * - /// `TARGETING_TYPE_CONTENT_STREAM_TYPE` * `TARGETING_TYPE_DAY_AND_TIME` * - /// `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_DEVICE_TYPE` * - /// `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * - /// `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * - /// `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * - /// `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * - /// `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_KEYWORD` * - /// `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * - /// `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST` * `TARGETING_TYPE_OMID` * - /// `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_OPERATING_SYSTEM` * - /// `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_POI` * - /// `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` * - /// `TARGETING_TYPE_REGIONAL_LOCATION_LIST` * - /// `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * - /// `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * - /// `TARGETING_TYPE_URL` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * - /// `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_VIEWABILITY` - /// Value must have pattern `^\[^/\]+$`. - /// Possible string values are: - /// - "TARGETING_TYPE_UNSPECIFIED" : Default value when type is not specified - /// or is unknown in this version. - /// - "TARGETING_TYPE_CHANNEL" : Target a channel (a custom group of related - /// websites or apps). - /// - "TARGETING_TYPE_APP_CATEGORY" : Target an app category (for example, - /// education or puzzle games). - /// - "TARGETING_TYPE_APP" : Target a specific app (for example, Angry Birds). - /// - "TARGETING_TYPE_URL" : Target a specific url (for example, quora.com). - /// - "TARGETING_TYPE_DAY_AND_TIME" : Target ads during a chosen time period - /// on a specific day. - /// - "TARGETING_TYPE_AGE_RANGE" : Target ads to a specific age range (for - /// example, 18-24). - /// - "TARGETING_TYPE_REGIONAL_LOCATION_LIST" : Target ads to the specified - /// regions on a regional location list. - /// - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" : Target ads to the specified - /// points of interest on a proximity location list. - /// - "TARGETING_TYPE_GENDER" : Target ads to a specific gender (for example, - /// female or male). - /// - "TARGETING_TYPE_VIDEO_PLAYER_SIZE" : Target a specific video player size - /// for video ads. - /// - "TARGETING_TYPE_USER_REWARDED_CONTENT" : Target user rewarded content - /// for video ads. - /// - "TARGETING_TYPE_PARENTAL_STATUS" : Target ads to a specific parental - /// status (for example, parent or not a parent). - /// - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" : Target video or audio ads - /// in a specific content instream position (for example, pre-roll, mid-roll, - /// or post-roll). - /// - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" : Target ads in a specific - /// content outstream position. - /// - "TARGETING_TYPE_DEVICE_TYPE" : Target ads to a specific device type (for - /// example, tablet or connected TV). - /// - "TARGETING_TYPE_AUDIENCE_GROUP" : Target ads to an audience or groups of - /// audiences. Singleton field, at most one can exist on a single Lineitem at - /// a time. - /// - "TARGETING_TYPE_BROWSER" : Target ads to specific web browsers (for - /// example, Chrome). - /// - "TARGETING_TYPE_HOUSEHOLD_INCOME" : Target ads to a specific household - /// income range (for example, top 10%). - /// - "TARGETING_TYPE_ON_SCREEN_POSITION" : Target ads in a specific on screen - /// position. - /// - "TARGETING_TYPE_THIRD_PARTY_VERIFIER" : Filter web sites through third - /// party verification (for example, IAS or DoubleVerify). - /// - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" : Filter web sites by - /// specific digital content label ratings (for example, DL-MA: suitable only - /// for mature audiences). - /// - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" : Filter website content - /// by sensitive categories (for example, adult). - /// - "TARGETING_TYPE_ENVIRONMENT" : Target ads to a specific environment (for - /// example, web or app). - /// - "TARGETING_TYPE_CARRIER_AND_ISP" : Target ads to a specific network - /// carrier or internet service provider (ISP) (for example, Comcast or - /// Orange). - /// - "TARGETING_TYPE_OPERATING_SYSTEM" : Target ads to a specific operating - /// system (for example, macOS). - /// - "TARGETING_TYPE_DEVICE_MAKE_MODEL" : Target ads to a specific device - /// make or model (for example, Roku or Samsung). - /// - "TARGETING_TYPE_KEYWORD" : Target ads to a specific keyword (for - /// example, dog or retriever). - /// - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" : Target ads to a specific - /// negative keyword list. - /// - "TARGETING_TYPE_VIEWABILITY" : Target ads to a specific viewability (for - /// example, 80% viewable). - /// - "TARGETING_TYPE_CATEGORY" : Target ads to a specific content category - /// (for example, arts & entertainment). - /// - "TARGETING_TYPE_INVENTORY_SOURCE" : Purchase impressions from specific - /// deals and auction packages. - /// - "TARGETING_TYPE_LANGUAGE" : Target ads to a specific language (for - /// example, English or Japanese). - /// - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" : Target ads to ads.txt - /// authorized sellers. If no targeting option of this type is assigned, the - /// resource uses the "Authorized Direct Sellers and Resellers" option by - /// default. - /// - "TARGETING_TYPE_GEO_REGION" : Target ads to a specific regional location - /// (for example, a city or state). - /// - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" : Purchase impressions from a - /// group of deals and auction packages. - /// - "TARGETING_TYPE_EXCHANGE" : Purchase impressions from specific - /// exchanges. - /// - "TARGETING_TYPE_SUB_EXCHANGE" : Purchase impressions from specific - /// sub-exchanges. - /// - "TARGETING_TYPE_POI" : Target ads around a specific point of interest, - /// such as a notable building, a street address, or latitude/longitude - /// coordinates. - /// - "TARGETING_TYPE_BUSINESS_CHAIN" : Target ads around locations of a - /// business chain within a specific geo region. - /// - "TARGETING_TYPE_CONTENT_DURATION" : Target ads to a specific video - /// content duration. - /// - "TARGETING_TYPE_CONTENT_STREAM_TYPE" : Target ads to a specific video - /// content stream type. - /// - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" : Target ads to a specific - /// native content position. - /// - "TARGETING_TYPE_OMID" : Target ads in an Open Measurement enabled - /// inventory. - /// - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" : Target ads to a specific audio - /// content type. - /// - "TARGETING_TYPE_CONTENT_GENRE" : Target ads to a specific content genre. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [AssignedTargetingOption]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future create( - AssignedTargetingOption request, - core.String advertiserId, - core.String lineItemId, - core.String targetingType, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/lineItems/' + - core.Uri.encodeFull('$lineItemId') + - '/targetingTypes/' + - core.Uri.encodeFull('$targetingType') + - '/assignedTargetingOptions'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return AssignedTargetingOption.fromJson( - response_ as core.Map); - } - - /// Deletes an assigned targeting option from a line item. - /// - /// Requests to this endpoint cannot be made concurrently with the following - /// requests updating the same line item: * - /// lineItems.bulkEditAssignedTargetingOptions * lineItems.bulkUpdate * - /// lineItems.patch * CreateLineItemAssignedTargetingOption - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser the line item belongs - /// to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [lineItemId] - Required. The ID of the line item the assigned targeting - /// option belongs to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [targetingType] - Required. Identifies the type of this assigned targeting - /// option. Supported targeting types include: * `TARGETING_TYPE_AGE_RANGE` * - /// `TARGETING_TYPE_APP` * `TARGETING_TYPE_APP_CATEGORY` * - /// `TARGETING_TYPE_AUDIENCE_GROUP` * `TARGETING_TYPE_AUDIO_CONTENT_TYPE` * - /// `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_BROWSER` * - /// `TARGETING_TYPE_BUSINESS_CHAIN` * `TARGETING_TYPE_CARRIER_AND_ISP` * - /// `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_CHANNEL` * - /// `TARGETING_TYPE_CONTENT_DURATION` * `TARGETING_TYPE_CONTENT_GENRE` * - /// `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * - /// `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * - /// `TARGETING_TYPE_CONTENT_STREAM_TYPE` * `TARGETING_TYPE_DAY_AND_TIME` * - /// `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_DEVICE_TYPE` * - /// `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * - /// `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * - /// `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * - /// `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * - /// `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_KEYWORD` * - /// `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * - /// `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST` * `TARGETING_TYPE_OMID` * - /// `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_OPERATING_SYSTEM` * - /// `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_POI` * - /// `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` * - /// `TARGETING_TYPE_REGIONAL_LOCATION_LIST` * - /// `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * - /// `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * - /// `TARGETING_TYPE_URL` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * - /// `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_VIEWABILITY` - /// Value must have pattern `^\[^/\]+$`. - /// Possible string values are: - /// - "TARGETING_TYPE_UNSPECIFIED" : Default value when type is not specified - /// or is unknown in this version. - /// - "TARGETING_TYPE_CHANNEL" : Target a channel (a custom group of related - /// websites or apps). - /// - "TARGETING_TYPE_APP_CATEGORY" : Target an app category (for example, - /// education or puzzle games). - /// - "TARGETING_TYPE_APP" : Target a specific app (for example, Angry Birds). - /// - "TARGETING_TYPE_URL" : Target a specific url (for example, quora.com). - /// - "TARGETING_TYPE_DAY_AND_TIME" : Target ads during a chosen time period - /// on a specific day. - /// - "TARGETING_TYPE_AGE_RANGE" : Target ads to a specific age range (for - /// example, 18-24). - /// - "TARGETING_TYPE_REGIONAL_LOCATION_LIST" : Target ads to the specified - /// regions on a regional location list. - /// - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" : Target ads to the specified - /// points of interest on a proximity location list. - /// - "TARGETING_TYPE_GENDER" : Target ads to a specific gender (for example, - /// female or male). - /// - "TARGETING_TYPE_VIDEO_PLAYER_SIZE" : Target a specific video player size - /// for video ads. - /// - "TARGETING_TYPE_USER_REWARDED_CONTENT" : Target user rewarded content - /// for video ads. - /// - "TARGETING_TYPE_PARENTAL_STATUS" : Target ads to a specific parental - /// status (for example, parent or not a parent). - /// - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" : Target video or audio ads - /// in a specific content instream position (for example, pre-roll, mid-roll, - /// or post-roll). - /// - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" : Target ads in a specific - /// content outstream position. - /// - "TARGETING_TYPE_DEVICE_TYPE" : Target ads to a specific device type (for - /// example, tablet or connected TV). - /// - "TARGETING_TYPE_AUDIENCE_GROUP" : Target ads to an audience or groups of - /// audiences. Singleton field, at most one can exist on a single Lineitem at - /// a time. - /// - "TARGETING_TYPE_BROWSER" : Target ads to specific web browsers (for - /// example, Chrome). - /// - "TARGETING_TYPE_HOUSEHOLD_INCOME" : Target ads to a specific household - /// income range (for example, top 10%). - /// - "TARGETING_TYPE_ON_SCREEN_POSITION" : Target ads in a specific on screen - /// position. - /// - "TARGETING_TYPE_THIRD_PARTY_VERIFIER" : Filter web sites through third - /// party verification (for example, IAS or DoubleVerify). - /// - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" : Filter web sites by - /// specific digital content label ratings (for example, DL-MA: suitable only - /// for mature audiences). - /// - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" : Filter website content - /// by sensitive categories (for example, adult). - /// - "TARGETING_TYPE_ENVIRONMENT" : Target ads to a specific environment (for - /// example, web or app). - /// - "TARGETING_TYPE_CARRIER_AND_ISP" : Target ads to a specific network - /// carrier or internet service provider (ISP) (for example, Comcast or - /// Orange). - /// - "TARGETING_TYPE_OPERATING_SYSTEM" : Target ads to a specific operating - /// system (for example, macOS). - /// - "TARGETING_TYPE_DEVICE_MAKE_MODEL" : Target ads to a specific device - /// make or model (for example, Roku or Samsung). - /// - "TARGETING_TYPE_KEYWORD" : Target ads to a specific keyword (for - /// example, dog or retriever). - /// - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" : Target ads to a specific - /// negative keyword list. - /// - "TARGETING_TYPE_VIEWABILITY" : Target ads to a specific viewability (for - /// example, 80% viewable). - /// - "TARGETING_TYPE_CATEGORY" : Target ads to a specific content category - /// (for example, arts & entertainment). - /// - "TARGETING_TYPE_INVENTORY_SOURCE" : Purchase impressions from specific - /// deals and auction packages. - /// - "TARGETING_TYPE_LANGUAGE" : Target ads to a specific language (for - /// example, English or Japanese). - /// - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" : Target ads to ads.txt - /// authorized sellers. If no targeting option of this type is assigned, the - /// resource uses the "Authorized Direct Sellers and Resellers" option by - /// default. - /// - "TARGETING_TYPE_GEO_REGION" : Target ads to a specific regional location - /// (for example, a city or state). - /// - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" : Purchase impressions from a - /// group of deals and auction packages. - /// - "TARGETING_TYPE_EXCHANGE" : Purchase impressions from specific - /// exchanges. - /// - "TARGETING_TYPE_SUB_EXCHANGE" : Purchase impressions from specific - /// sub-exchanges. - /// - "TARGETING_TYPE_POI" : Target ads around a specific point of interest, - /// such as a notable building, a street address, or latitude/longitude - /// coordinates. - /// - "TARGETING_TYPE_BUSINESS_CHAIN" : Target ads around locations of a - /// business chain within a specific geo region. - /// - "TARGETING_TYPE_CONTENT_DURATION" : Target ads to a specific video - /// content duration. - /// - "TARGETING_TYPE_CONTENT_STREAM_TYPE" : Target ads to a specific video - /// content stream type. - /// - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" : Target ads to a specific - /// native content position. - /// - "TARGETING_TYPE_OMID" : Target ads in an Open Measurement enabled - /// inventory. - /// - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" : Target ads to a specific audio - /// content type. - /// - "TARGETING_TYPE_CONTENT_GENRE" : Target ads to a specific content genre. - /// - /// [assignedTargetingOptionId] - Required. The ID of the assigned targeting - /// option to delete. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Empty]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future delete( - core.String advertiserId, - core.String lineItemId, - core.String targetingType, - core.String assignedTargetingOptionId, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/lineItems/' + - core.Uri.encodeFull('$lineItemId') + - '/targetingTypes/' + - core.Uri.encodeFull('$targetingType') + - '/assignedTargetingOptions/' + - core.Uri.encodeFull('$assignedTargetingOptionId'); - - final response_ = await _requester.request( - url_, - 'DELETE', - queryParams: queryParams_, - ); - return Empty.fromJson(response_ as core.Map); - } - - /// Gets a single targeting option assigned to a line item. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser the line item belongs - /// to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [lineItemId] - Required. The ID of the line item the assigned targeting - /// option belongs to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [targetingType] - Required. Identifies the type of this assigned targeting - /// option. Supported targeting types include: * `TARGETING_TYPE_AGE_RANGE` * - /// `TARGETING_TYPE_APP` * `TARGETING_TYPE_APP_CATEGORY` * - /// `TARGETING_TYPE_AUDIENCE_GROUP` * `TARGETING_TYPE_AUDIO_CONTENT_TYPE` * - /// `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_BROWSER` * - /// `TARGETING_TYPE_BUSINESS_CHAIN` * `TARGETING_TYPE_CARRIER_AND_ISP` * - /// `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_CHANNEL` * - /// `TARGETING_TYPE_CONTENT_DURATION` * `TARGETING_TYPE_CONTENT_GENRE` * - /// `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * - /// `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * - /// `TARGETING_TYPE_CONTENT_STREAM_TYPE` * `TARGETING_TYPE_DAY_AND_TIME` * - /// `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_DEVICE_TYPE` * - /// `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * - /// `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * - /// `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * - /// `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * - /// `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_KEYWORD` * - /// `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * - /// `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST` * `TARGETING_TYPE_OMID` * - /// `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_OPERATING_SYSTEM` * - /// `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_POI` * - /// `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` * - /// `TARGETING_TYPE_REGIONAL_LOCATION_LIST` * - /// `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * - /// `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * - /// `TARGETING_TYPE_URL` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * - /// `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_VIEWABILITY` * - /// `TARGETING_TYPE_YOUTUBE_CHANNEL` (only for - /// `LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_VIDEO_SEQUENCE` line items) * - /// `TARGETING_TYPE_YOUTUBE_VIDEO` (only for - /// `LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_VIDEO_SEQUENCE` line items) - /// Value must have pattern `^\[^/\]+$`. - /// Possible string values are: - /// - "TARGETING_TYPE_UNSPECIFIED" : Default value when type is not specified - /// or is unknown in this version. - /// - "TARGETING_TYPE_CHANNEL" : Target a channel (a custom group of related - /// websites or apps). - /// - "TARGETING_TYPE_APP_CATEGORY" : Target an app category (for example, - /// education or puzzle games). - /// - "TARGETING_TYPE_APP" : Target a specific app (for example, Angry Birds). - /// - "TARGETING_TYPE_URL" : Target a specific url (for example, quora.com). - /// - "TARGETING_TYPE_DAY_AND_TIME" : Target ads during a chosen time period - /// on a specific day. - /// - "TARGETING_TYPE_AGE_RANGE" : Target ads to a specific age range (for - /// example, 18-24). - /// - "TARGETING_TYPE_REGIONAL_LOCATION_LIST" : Target ads to the specified - /// regions on a regional location list. - /// - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" : Target ads to the specified - /// points of interest on a proximity location list. - /// - "TARGETING_TYPE_GENDER" : Target ads to a specific gender (for example, - /// female or male). - /// - "TARGETING_TYPE_VIDEO_PLAYER_SIZE" : Target a specific video player size - /// for video ads. - /// - "TARGETING_TYPE_USER_REWARDED_CONTENT" : Target user rewarded content - /// for video ads. - /// - "TARGETING_TYPE_PARENTAL_STATUS" : Target ads to a specific parental - /// status (for example, parent or not a parent). - /// - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" : Target video or audio ads - /// in a specific content instream position (for example, pre-roll, mid-roll, - /// or post-roll). - /// - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" : Target ads in a specific - /// content outstream position. - /// - "TARGETING_TYPE_DEVICE_TYPE" : Target ads to a specific device type (for - /// example, tablet or connected TV). - /// - "TARGETING_TYPE_AUDIENCE_GROUP" : Target ads to an audience or groups of - /// audiences. Singleton field, at most one can exist on a single Lineitem at - /// a time. - /// - "TARGETING_TYPE_BROWSER" : Target ads to specific web browsers (for - /// example, Chrome). - /// - "TARGETING_TYPE_HOUSEHOLD_INCOME" : Target ads to a specific household - /// income range (for example, top 10%). - /// - "TARGETING_TYPE_ON_SCREEN_POSITION" : Target ads in a specific on screen - /// position. - /// - "TARGETING_TYPE_THIRD_PARTY_VERIFIER" : Filter web sites through third - /// party verification (for example, IAS or DoubleVerify). - /// - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" : Filter web sites by - /// specific digital content label ratings (for example, DL-MA: suitable only - /// for mature audiences). - /// - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" : Filter website content - /// by sensitive categories (for example, adult). - /// - "TARGETING_TYPE_ENVIRONMENT" : Target ads to a specific environment (for - /// example, web or app). - /// - "TARGETING_TYPE_CARRIER_AND_ISP" : Target ads to a specific network - /// carrier or internet service provider (ISP) (for example, Comcast or - /// Orange). - /// - "TARGETING_TYPE_OPERATING_SYSTEM" : Target ads to a specific operating - /// system (for example, macOS). - /// - "TARGETING_TYPE_DEVICE_MAKE_MODEL" : Target ads to a specific device - /// make or model (for example, Roku or Samsung). - /// - "TARGETING_TYPE_KEYWORD" : Target ads to a specific keyword (for - /// example, dog or retriever). - /// - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" : Target ads to a specific - /// negative keyword list. - /// - "TARGETING_TYPE_VIEWABILITY" : Target ads to a specific viewability (for - /// example, 80% viewable). - /// - "TARGETING_TYPE_CATEGORY" : Target ads to a specific content category - /// (for example, arts & entertainment). - /// - "TARGETING_TYPE_INVENTORY_SOURCE" : Purchase impressions from specific - /// deals and auction packages. - /// - "TARGETING_TYPE_LANGUAGE" : Target ads to a specific language (for - /// example, English or Japanese). - /// - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" : Target ads to ads.txt - /// authorized sellers. If no targeting option of this type is assigned, the - /// resource uses the "Authorized Direct Sellers and Resellers" option by - /// default. - /// - "TARGETING_TYPE_GEO_REGION" : Target ads to a specific regional location - /// (for example, a city or state). - /// - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" : Purchase impressions from a - /// group of deals and auction packages. - /// - "TARGETING_TYPE_EXCHANGE" : Purchase impressions from specific - /// exchanges. - /// - "TARGETING_TYPE_SUB_EXCHANGE" : Purchase impressions from specific - /// sub-exchanges. - /// - "TARGETING_TYPE_POI" : Target ads around a specific point of interest, - /// such as a notable building, a street address, or latitude/longitude - /// coordinates. - /// - "TARGETING_TYPE_BUSINESS_CHAIN" : Target ads around locations of a - /// business chain within a specific geo region. - /// - "TARGETING_TYPE_CONTENT_DURATION" : Target ads to a specific video - /// content duration. - /// - "TARGETING_TYPE_CONTENT_STREAM_TYPE" : Target ads to a specific video - /// content stream type. - /// - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" : Target ads to a specific - /// native content position. - /// - "TARGETING_TYPE_OMID" : Target ads in an Open Measurement enabled - /// inventory. - /// - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" : Target ads to a specific audio - /// content type. - /// - "TARGETING_TYPE_CONTENT_GENRE" : Target ads to a specific content genre. - /// - /// [assignedTargetingOptionId] - Required. An identifier unique to the - /// targeting type in this line item that identifies the assigned targeting - /// option being requested. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [AssignedTargetingOption]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String advertiserId, - core.String lineItemId, - core.String targetingType, - core.String assignedTargetingOptionId, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/lineItems/' + - core.Uri.encodeFull('$lineItemId') + - '/targetingTypes/' + - core.Uri.encodeFull('$targetingType') + - '/assignedTargetingOptions/' + - core.Uri.encodeFull('$assignedTargetingOptionId'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return AssignedTargetingOption.fromJson( - response_ as core.Map); - } - - /// Lists the targeting options assigned to a line item. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser the line item belongs - /// to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [lineItemId] - Required. The ID of the line item to list assigned - /// targeting options for. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [targetingType] - Required. Identifies the type of assigned targeting - /// options to list. Supported targeting types include: * - /// `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_APP` * - /// `TARGETING_TYPE_APP_CATEGORY` * `TARGETING_TYPE_AUDIENCE_GROUP` * - /// `TARGETING_TYPE_AUDIO_CONTENT_TYPE` * - /// `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * `TARGETING_TYPE_BROWSER` * - /// `TARGETING_TYPE_BUSINESS_CHAIN` * `TARGETING_TYPE_CARRIER_AND_ISP` * - /// `TARGETING_TYPE_CATEGORY` * `TARGETING_TYPE_CHANNEL` * - /// `TARGETING_TYPE_CONTENT_DURATION` * `TARGETING_TYPE_CONTENT_GENRE` * - /// `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * - /// `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * - /// `TARGETING_TYPE_CONTENT_STREAM_TYPE` * `TARGETING_TYPE_DAY_AND_TIME` * - /// `TARGETING_TYPE_DEVICE_MAKE_MODEL` * `TARGETING_TYPE_DEVICE_TYPE` * - /// `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * - /// `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_EXCHANGE` * - /// `TARGETING_TYPE_GENDER` * `TARGETING_TYPE_GEO_REGION` * - /// `TARGETING_TYPE_HOUSEHOLD_INCOME` * `TARGETING_TYPE_INVENTORY_SOURCE` * - /// `TARGETING_TYPE_INVENTORY_SOURCE_GROUP` * `TARGETING_TYPE_KEYWORD` * - /// `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` * - /// `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST` * `TARGETING_TYPE_OMID` * - /// `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_OPERATING_SYSTEM` * - /// `TARGETING_TYPE_PARENTAL_STATUS` * `TARGETING_TYPE_POI` * - /// `TARGETING_TYPE_PROXIMITY_LOCATION_LIST` * - /// `TARGETING_TYPE_REGIONAL_LOCATION_LIST` * - /// `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * - /// `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_THIRD_PARTY_VERIFIER` * - /// `TARGETING_TYPE_URL` * `TARGETING_TYPE_USER_REWARDED_CONTENT` * - /// `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * `TARGETING_TYPE_VIEWABILITY` * - /// `TARGETING_TYPE_YOUTUBE_CHANNEL` (only for - /// `LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_VIDEO_SEQUENCE` line items) * - /// `TARGETING_TYPE_YOUTUBE_VIDEO` (only for - /// `LINE_ITEM_TYPE_YOUTUBE_AND_PARTNERS_VIDEO_SEQUENCE` line items) - /// Value must have pattern `^\[^/\]+$`. - /// Possible string values are: - /// - "TARGETING_TYPE_UNSPECIFIED" : Default value when type is not specified - /// or is unknown in this version. - /// - "TARGETING_TYPE_CHANNEL" : Target a channel (a custom group of related - /// websites or apps). - /// - "TARGETING_TYPE_APP_CATEGORY" : Target an app category (for example, - /// education or puzzle games). - /// - "TARGETING_TYPE_APP" : Target a specific app (for example, Angry Birds). - /// - "TARGETING_TYPE_URL" : Target a specific url (for example, quora.com). - /// - "TARGETING_TYPE_DAY_AND_TIME" : Target ads during a chosen time period - /// on a specific day. - /// - "TARGETING_TYPE_AGE_RANGE" : Target ads to a specific age range (for - /// example, 18-24). - /// - "TARGETING_TYPE_REGIONAL_LOCATION_LIST" : Target ads to the specified - /// regions on a regional location list. - /// - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" : Target ads to the specified - /// points of interest on a proximity location list. - /// - "TARGETING_TYPE_GENDER" : Target ads to a specific gender (for example, - /// female or male). - /// - "TARGETING_TYPE_VIDEO_PLAYER_SIZE" : Target a specific video player size - /// for video ads. - /// - "TARGETING_TYPE_USER_REWARDED_CONTENT" : Target user rewarded content - /// for video ads. - /// - "TARGETING_TYPE_PARENTAL_STATUS" : Target ads to a specific parental - /// status (for example, parent or not a parent). - /// - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" : Target video or audio ads - /// in a specific content instream position (for example, pre-roll, mid-roll, - /// or post-roll). - /// - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" : Target ads in a specific - /// content outstream position. - /// - "TARGETING_TYPE_DEVICE_TYPE" : Target ads to a specific device type (for - /// example, tablet or connected TV). - /// - "TARGETING_TYPE_AUDIENCE_GROUP" : Target ads to an audience or groups of - /// audiences. Singleton field, at most one can exist on a single Lineitem at - /// a time. - /// - "TARGETING_TYPE_BROWSER" : Target ads to specific web browsers (for - /// example, Chrome). - /// - "TARGETING_TYPE_HOUSEHOLD_INCOME" : Target ads to a specific household - /// income range (for example, top 10%). - /// - "TARGETING_TYPE_ON_SCREEN_POSITION" : Target ads in a specific on screen - /// position. - /// - "TARGETING_TYPE_THIRD_PARTY_VERIFIER" : Filter web sites through third - /// party verification (for example, IAS or DoubleVerify). - /// - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" : Filter web sites by - /// specific digital content label ratings (for example, DL-MA: suitable only - /// for mature audiences). - /// - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" : Filter website content - /// by sensitive categories (for example, adult). - /// - "TARGETING_TYPE_ENVIRONMENT" : Target ads to a specific environment (for - /// example, web or app). - /// - "TARGETING_TYPE_CARRIER_AND_ISP" : Target ads to a specific network - /// carrier or internet service provider (ISP) (for example, Comcast or - /// Orange). - /// - "TARGETING_TYPE_OPERATING_SYSTEM" : Target ads to a specific operating - /// system (for example, macOS). - /// - "TARGETING_TYPE_DEVICE_MAKE_MODEL" : Target ads to a specific device - /// make or model (for example, Roku or Samsung). - /// - "TARGETING_TYPE_KEYWORD" : Target ads to a specific keyword (for - /// example, dog or retriever). - /// - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" : Target ads to a specific - /// negative keyword list. - /// - "TARGETING_TYPE_VIEWABILITY" : Target ads to a specific viewability (for - /// example, 80% viewable). - /// - "TARGETING_TYPE_CATEGORY" : Target ads to a specific content category - /// (for example, arts & entertainment). - /// - "TARGETING_TYPE_INVENTORY_SOURCE" : Purchase impressions from specific - /// deals and auction packages. - /// - "TARGETING_TYPE_LANGUAGE" : Target ads to a specific language (for - /// example, English or Japanese). - /// - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" : Target ads to ads.txt - /// authorized sellers. If no targeting option of this type is assigned, the - /// resource uses the "Authorized Direct Sellers and Resellers" option by - /// default. - /// - "TARGETING_TYPE_GEO_REGION" : Target ads to a specific regional location - /// (for example, a city or state). - /// - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" : Purchase impressions from a - /// group of deals and auction packages. - /// - "TARGETING_TYPE_EXCHANGE" : Purchase impressions from specific - /// exchanges. - /// - "TARGETING_TYPE_SUB_EXCHANGE" : Purchase impressions from specific - /// sub-exchanges. - /// - "TARGETING_TYPE_POI" : Target ads around a specific point of interest, - /// such as a notable building, a street address, or latitude/longitude - /// coordinates. - /// - "TARGETING_TYPE_BUSINESS_CHAIN" : Target ads around locations of a - /// business chain within a specific geo region. - /// - "TARGETING_TYPE_CONTENT_DURATION" : Target ads to a specific video - /// content duration. - /// - "TARGETING_TYPE_CONTENT_STREAM_TYPE" : Target ads to a specific video - /// content stream type. - /// - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" : Target ads to a specific - /// native content position. - /// - "TARGETING_TYPE_OMID" : Target ads in an Open Measurement enabled - /// inventory. - /// - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" : Target ads to a specific audio - /// content type. - /// - "TARGETING_TYPE_CONTENT_GENRE" : Target ads to a specific content genre. - /// - /// [filter] - Allows filtering by assigned targeting option fields. Supported - /// syntax: * Filter expressions are made up of one or more restrictions. * - /// Restrictions can be combined by the logical operator `OR`. * A restriction - /// has the form of `{field} {operator} {value}`. * All fields must use the - /// `EQUALS (=)` operator. Supported fields: * `assignedTargetingOptionId` * - /// `inheritance` Examples: * `AssignedTargetingOption` resources with ID 1 or - /// 2: `assignedTargetingOptionId="1" OR assignedTargetingOptionId="2"` * - /// `AssignedTargetingOption` resources with inheritance status of - /// `NOT_INHERITED` or `INHERITED_FROM_PARTNER`: `inheritance="NOT_INHERITED" - /// OR inheritance="INHERITED_FROM_PARTNER"` The length of this field should - /// be no more than 500 characters. Reference our \[filter `LIST` - /// requests\](/display-video/api/guides/how-tos/filters) guide for more - /// information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `assignedTargetingOptionId` (default) The default sorting order is - /// ascending. To specify descending order for a field, a suffix "desc" should - /// be added to the field name. Example: `assignedTargetingOptionId desc`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `5000`. If - /// unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` - /// if an invalid value is specified. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListLineItemAssignedTargetingOptions` method. If not - /// specified, the first page of results will be returned. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListLineItemAssignedTargetingOptionsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list( - core.String advertiserId, - core.String lineItemId, - core.String targetingType, { - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/lineItems/' + - core.Uri.encodeFull('$lineItemId') + - '/targetingTypes/' + - core.Uri.encodeFull('$targetingType') + - '/assignedTargetingOptions'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListLineItemAssignedTargetingOptionsResponse.fromJson( - response_ as core.Map); - } -} - -class AdvertisersLocationListsResource { - final commons.ApiRequester _requester; - - AdvertisersLocationListsAssignedLocationsResource get assignedLocations => - AdvertisersLocationListsAssignedLocationsResource(_requester); - - AdvertisersLocationListsResource(commons.ApiRequester client) - : _requester = client; - - /// Creates a new location list. - /// - /// Returns the newly created location list if successful. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the DV360 advertiser to which the - /// location list belongs. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [LocationList]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future create( - LocationList request, - core.String advertiserId, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/locationLists'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return LocationList.fromJson( - response_ as core.Map); - } - - /// Gets a location list. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the DV360 advertiser to which the - /// fetched location list belongs. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [locationListId] - Required. The ID of the location list to fetch. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [LocationList]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String advertiserId, - core.String locationListId, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/locationLists/' + - core.Uri.encodeFull('$locationListId'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return LocationList.fromJson( - response_ as core.Map); - } - - /// Lists location lists based on a given advertiser id. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the DV360 advertiser to which the - /// fetched location lists belong. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [filter] - Allows filtering by location list fields. Supported syntax: * - /// Filter expressions are made up of one or more restrictions. * Restrictions - /// can be combined by `AND` or `OR` logical operators. A sequence of - /// restrictions implicitly uses `AND`. * A restriction has the form of - /// `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` - /// operator. Supported fields: * `locationType` Examples: * All regional - /// location list: `locationType="TARGETING_LOCATION_TYPE_REGIONAL"` * All - /// proximity location list: - /// `locationType="TARGETING_LOCATION_TYPE_PROXIMITY"` The length of this - /// field should be no more than 500 characters. Reference our \[filter `LIST` - /// requests\](/display-video/api/guides/how-tos/filters) guide for more - /// information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `locationListId` (default) * `displayName` The default sorting order is - /// ascending. To specify descending order for a field, a suffix "desc" should - /// be added to the field name. Example: `displayName desc`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `200`. Defaults - /// to `100` if not set. Returns error code `INVALID_ARGUMENT` if an invalid - /// value is specified. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListLocationLists` method. If not specified, the first - /// page of results will be returned. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListLocationListsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list( - core.String advertiserId, { - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/locationLists'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListLocationListsResponse.fromJson( - response_ as core.Map); - } - - /// Updates a location list. - /// - /// Returns the updated location list if successful. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the DV360 advertiser to which the - /// location lists belongs. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [locationListId] - Output only. The unique ID of the location list. - /// Assigned by the system. - /// - /// [updateMask] - Required. The mask to control which fields to update. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [LocationList]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future patch( - LocationList request, - core.String advertiserId, - core.String locationListId, { - core.String? updateMask, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (updateMask != null) 'updateMask': [updateMask], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/locationLists/' + - commons.escapeVariable('$locationListId'); - - final response_ = await _requester.request( - url_, - 'PATCH', - body: body_, - queryParams: queryParams_, - ); - return LocationList.fromJson( - response_ as core.Map); - } -} - -class AdvertisersLocationListsAssignedLocationsResource { - final commons.ApiRequester _requester; - - AdvertisersLocationListsAssignedLocationsResource(commons.ApiRequester client) - : _requester = client; - - /// Bulk edits multiple assignments between locations and a single location - /// list. - /// - /// The operation will delete the assigned locations provided in - /// deletedAssignedLocations and then create the assigned locations provided - /// in createdAssignedLocations. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the DV360 advertiser to which the - /// location list belongs. - /// - /// [locationListId] - Required. The ID of the location list to which these - /// assignments are assigned. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [BulkEditAssignedLocationsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future bulkEdit( - BulkEditAssignedLocationsRequest request, - core.String advertiserId, - core.String locationListId, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - commons.escapeVariable('$advertiserId') + - '/locationLists/' + - core.Uri.encodeFull('$locationListId') + - '/assignedLocations:bulkEdit'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return BulkEditAssignedLocationsResponse.fromJson( - response_ as core.Map); - } - - /// Creates an assignment between a location and a location list. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the DV360 advertiser to which the - /// location list belongs. - /// - /// [locationListId] - Required. The ID of the location list for which the - /// assignment will be created. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [AssignedLocation]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future create( - AssignedLocation request, - core.String advertiserId, - core.String locationListId, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - commons.escapeVariable('$advertiserId') + - '/locationLists/' + - commons.escapeVariable('$locationListId') + - '/assignedLocations'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return AssignedLocation.fromJson( - response_ as core.Map); - } - - /// Deletes the assignment between a location and a location list. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the DV360 advertiser to which the - /// location list belongs. - /// - /// [locationListId] - Required. The ID of the location list to which this - /// assignment is assigned. - /// - /// [assignedLocationId] - Required. The ID of the assigned location to - /// delete. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Empty]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future delete( - core.String advertiserId, - core.String locationListId, - core.String assignedLocationId, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - commons.escapeVariable('$advertiserId') + - '/locationLists/' + - commons.escapeVariable('$locationListId') + - '/assignedLocations/' + - core.Uri.encodeFull('$assignedLocationId'); - - final response_ = await _requester.request( - url_, - 'DELETE', - queryParams: queryParams_, - ); - return Empty.fromJson(response_ as core.Map); - } - - /// Lists locations assigned to a location list. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the DV360 advertiser to which the - /// location list belongs. - /// - /// [locationListId] - Required. The ID of the location list to which these - /// assignments are assigned. - /// - /// [filter] - Allows filtering by location list assignment fields. Supported - /// syntax: * Filter expressions are made up of one or more restrictions. * - /// Restrictions can be combined by the `OR` logical operator. * A restriction - /// has the form of `{field} {operator} {value}`. * All fields must use the - /// `EQUALS (=)` operator. Supported fields: * `assignedLocationId` The length - /// of this field should be no more than 500 characters. Reference our - /// \[filter `LIST` requests\](/display-video/api/guides/how-tos/filters) - /// guide for more information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `assignedLocationId` (default) The default sorting order is ascending. To - /// specify descending order for a field, a suffix " desc" should be added to - /// the field name. Example: `assignedLocationId desc`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `200`. If - /// unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` - /// if an invalid value is specified. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListAssignedLocations` method. If not specified, the - /// first page of results will be returned. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListAssignedLocationsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list( - core.String advertiserId, - core.String locationListId, { - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - commons.escapeVariable('$advertiserId') + - '/locationLists/' + - commons.escapeVariable('$locationListId') + - '/assignedLocations'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListAssignedLocationsResponse.fromJson( - response_ as core.Map); - } -} - -class AdvertisersManualTriggersResource { - final commons.ApiRequester _requester; - - AdvertisersManualTriggersResource(commons.ApiRequester client) - : _requester = client; - - /// Activates a manual trigger. - /// - /// Each activation of the manual trigger must be at least 5 minutes apart, - /// otherwise an error will be returned. **Warning:** Line Items using manual - /// triggers no longer serve in Display & Video 360. This method will sunset - /// on August 1, 2023. Read our \[feature deprecation - /// announcement\](/display-video/api/deprecations#features.manual_triggers) - /// for more information. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser that the manual - /// trigger belongs. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [triggerId] - Required. The ID of the manual trigger to activate. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ManualTrigger]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future activate( - ActivateManualTriggerRequest request, - core.String advertiserId, - core.String triggerId, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/manualTriggers/' + - core.Uri.encodeFull('$triggerId') + - ':activate'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return ManualTrigger.fromJson( - response_ as core.Map); - } - - /// Creates a new manual trigger. - /// - /// Returns the newly created manual trigger if successful. **Warning:** Line - /// Items using manual triggers no longer serve in Display & Video 360. This - /// method will sunset on August 1, 2023. Read our \[feature deprecation - /// announcement\](/display-video/api/deprecations#features.manual_triggers) - /// for more information. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. Immutable. The unique ID of the advertiser that - /// the manual trigger belongs to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ManualTrigger]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future create( - ManualTrigger request, - core.String advertiserId, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/manualTriggers'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return ManualTrigger.fromJson( - response_ as core.Map); - } - - /// Deactivates a manual trigger. - /// - /// **Warning:** Line Items using manual triggers no longer serve in Display & - /// Video 360. This method will sunset on August 1, 2023. Read our \[feature - /// deprecation - /// announcement\](/display-video/api/deprecations#features.manual_triggers) - /// for more information. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser that the manual - /// trigger belongs. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [triggerId] - Required. The ID of the manual trigger to deactivate. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ManualTrigger]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future deactivate( - DeactivateManualTriggerRequest request, - core.String advertiserId, - core.String triggerId, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/manualTriggers/' + - core.Uri.encodeFull('$triggerId') + - ':deactivate'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return ManualTrigger.fromJson( - response_ as core.Map); - } - - /// Gets a manual trigger. - /// - /// **Warning:** Line Items using manual triggers no longer serve in Display & - /// Video 360. This method will sunset on August 1, 2023. Read our \[feature - /// deprecation - /// announcement\](/display-video/api/deprecations#features.manual_triggers) - /// for more information. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser this manual trigger - /// belongs to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [triggerId] - Required. The ID of the manual trigger to fetch. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ManualTrigger]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String advertiserId, - core.String triggerId, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/manualTriggers/' + - core.Uri.encodeFull('$triggerId'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ManualTrigger.fromJson( - response_ as core.Map); - } - - /// Lists manual triggers that are accessible to the current user for a given - /// advertiser ID. - /// - /// The order is defined by the order_by parameter. A single advertiser_id is - /// required. **Warning:** Line Items using manual triggers no longer serve in - /// Display & Video 360. This method will sunset on August 1, 2023. Read our - /// \[feature deprecation - /// announcement\](/display-video/api/deprecations#features.manual_triggers) - /// for more information. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser that the fetched - /// manual triggers belong to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [filter] - Allows filtering by manual trigger fields. Supported syntax: * - /// Filter expressions are made up of one or more restrictions. * Restrictions - /// can be combined by `AND` or `OR` logical operators. A sequence of - /// restrictions implicitly uses `AND`. * A restriction has the form of - /// `{field} {operator} {value}`. * All fields must use the `EQUALS (=)` - /// operator. Supported fields: * `displayName` * `state` Examples: * All - /// active manual triggers under an advertiser: `state="ACTIVE"` The length of - /// this field should be no more than 500 characters. Reference our \[filter - /// `LIST` requests\](/display-video/api/guides/how-tos/filters) guide for - /// more information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `displayName` (default) * `state` The default sorting order is ascending. - /// To specify descending order for a field, a suffix "desc" should be added - /// to the field name. For example, `displayName desc`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `200`. If - /// unspecified will default to `100`. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListManualTriggers` method. If not specified, the first - /// page of results will be returned. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListManualTriggersResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list( - core.String advertiserId, { - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/manualTriggers'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListManualTriggersResponse.fromJson( - response_ as core.Map); - } - - /// Updates a manual trigger. - /// - /// Returns the updated manual trigger if successful. **Warning:** Line Items - /// using manual triggers no longer serve in Display & Video 360. This method - /// will sunset on August 1, 2023. Read our \[feature deprecation - /// announcement\](/display-video/api/deprecations#features.manual_triggers) - /// for more information. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. Immutable. The unique ID of the advertiser that - /// the manual trigger belongs to. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [triggerId] - Output only. The unique ID of the manual trigger. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [updateMask] - Required. The mask to control which fields to update. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ManualTrigger]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future patch( - ManualTrigger request, - core.String advertiserId, - core.String triggerId, { - core.String? updateMask, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (updateMask != null) 'updateMask': [updateMask], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/manualTriggers/' + - core.Uri.encodeFull('$triggerId'); - - final response_ = await _requester.request( - url_, - 'PATCH', - body: body_, - queryParams: queryParams_, - ); - return ManualTrigger.fromJson( - response_ as core.Map); - } -} - -class AdvertisersNegativeKeywordListsResource { - final commons.ApiRequester _requester; - - AdvertisersNegativeKeywordListsNegativeKeywordsResource - get negativeKeywords => - AdvertisersNegativeKeywordListsNegativeKeywordsResource(_requester); - - AdvertisersNegativeKeywordListsResource(commons.ApiRequester client) - : _requester = client; - - /// Creates a new negative keyword list. - /// - /// Returns the newly created negative keyword list if successful. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the DV360 advertiser to which the - /// negative keyword list will belong. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [NegativeKeywordList]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future create( - NegativeKeywordList request, - core.String advertiserId, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/negativeKeywordLists'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return NegativeKeywordList.fromJson( - response_ as core.Map); - } - - /// Deletes a negative keyword list given an advertiser ID and a negative - /// keyword list ID. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the DV360 advertiser to which the - /// negative keyword list belongs. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [negativeKeywordListId] - Required. The ID of the negative keyword list to - /// delete. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Empty]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future delete( - core.String advertiserId, - core.String negativeKeywordListId, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/negativeKeywordLists/' + - core.Uri.encodeFull('$negativeKeywordListId'); - - final response_ = await _requester.request( - url_, - 'DELETE', - queryParams: queryParams_, - ); - return Empty.fromJson(response_ as core.Map); - } - - /// Gets a negative keyword list given an advertiser ID and a negative keyword - /// list ID. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the DV360 advertiser to which the - /// fetched negative keyword list belongs. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [negativeKeywordListId] - Required. The ID of the negative keyword list to - /// fetch. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [NegativeKeywordList]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String advertiserId, - core.String negativeKeywordListId, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/negativeKeywordLists/' + - core.Uri.encodeFull('$negativeKeywordListId'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return NegativeKeywordList.fromJson( - response_ as core.Map); - } - - /// Lists negative keyword lists based on a given advertiser id. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the DV360 advertiser to which the - /// fetched negative keyword lists belong. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `200`. Defaults - /// to `100` if not set. Returns error code `INVALID_ARGUMENT` if an invalid - /// value is specified. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListNegativeKeywordLists` method. If not specified, the - /// first page of results will be returned. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListNegativeKeywordListsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list( - core.String advertiserId, { - core.int? pageSize, - core.String? pageToken, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/negativeKeywordLists'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListNegativeKeywordListsResponse.fromJson( - response_ as core.Map); - } - - /// Updates a negative keyword list. - /// - /// Returns the updated negative keyword list if successful. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the DV360 advertiser to which the - /// negative keyword list belongs. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [negativeKeywordListId] - Output only. The unique ID of the negative - /// keyword list. Assigned by the system. - /// - /// [updateMask] - Required. The mask to control which fields to update. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [NegativeKeywordList]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future patch( - NegativeKeywordList request, - core.String advertiserId, - core.String negativeKeywordListId, { - core.String? updateMask, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (updateMask != null) 'updateMask': [updateMask], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/negativeKeywordLists/' + - commons.escapeVariable('$negativeKeywordListId'); - - final response_ = await _requester.request( - url_, - 'PATCH', - body: body_, - queryParams: queryParams_, - ); - return NegativeKeywordList.fromJson( - response_ as core.Map); - } -} - -class AdvertisersNegativeKeywordListsNegativeKeywordsResource { - final commons.ApiRequester _requester; - - AdvertisersNegativeKeywordListsNegativeKeywordsResource( - commons.ApiRequester client) - : _requester = client; - - /// Bulk edits negative keywords in a single negative keyword list. - /// - /// The operation will delete the negative keywords provided in - /// BulkEditNegativeKeywordsRequest.deleted_negative_keywords and then create - /// the negative keywords provided in - /// BulkEditNegativeKeywordsRequest.created_negative_keywords. This operation - /// is guaranteed to be atomic and will never result in a partial success or - /// partial failure. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the DV360 advertiser to which the - /// parent negative keyword list belongs. - /// - /// [negativeKeywordListId] - Required. The ID of the parent negative keyword - /// list to which the negative keywords belong. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [BulkEditNegativeKeywordsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future bulkEdit( - BulkEditNegativeKeywordsRequest request, - core.String advertiserId, - core.String negativeKeywordListId, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - commons.escapeVariable('$advertiserId') + - '/negativeKeywordLists/' + - core.Uri.encodeFull('$negativeKeywordListId') + - '/negativeKeywords:bulkEdit'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return BulkEditNegativeKeywordsResponse.fromJson( - response_ as core.Map); - } - - /// Creates a negative keyword in a negative keyword list. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the DV360 advertiser to which the - /// parent negative keyword list belongs. - /// - /// [negativeKeywordListId] - Required. The ID of the parent negative keyword - /// list in which the negative keyword will be created. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [NegativeKeyword]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future create( - NegativeKeyword request, - core.String advertiserId, - core.String negativeKeywordListId, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - commons.escapeVariable('$advertiserId') + - '/negativeKeywordLists/' + - core.Uri.encodeFull('$negativeKeywordListId') + - '/negativeKeywords'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return NegativeKeyword.fromJson( - response_ as core.Map); - } - - /// Deletes a negative keyword from a negative keyword list. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the DV360 advertiser to which the - /// parent negative keyword list belongs. - /// - /// [negativeKeywordListId] - Required. The ID of the parent negative keyword - /// list to which the negative keyword belongs. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [keywordValue] - Required. The keyword value of the negative keyword to - /// delete. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Empty]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future delete( - core.String advertiserId, - core.String negativeKeywordListId, - core.String keywordValue, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - commons.escapeVariable('$advertiserId') + - '/negativeKeywordLists/' + - core.Uri.encodeFull('$negativeKeywordListId') + - '/negativeKeywords/' + - core.Uri.encodeFull('$keywordValue'); - - final response_ = await _requester.request( - url_, - 'DELETE', - queryParams: queryParams_, - ); - return Empty.fromJson(response_ as core.Map); - } - - /// Lists negative keywords in a negative keyword list. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the DV360 advertiser to which the - /// parent negative keyword list belongs. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [negativeKeywordListId] - Required. The ID of the parent negative keyword - /// list to which the requested negative keywords belong. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [filter] - Allows filtering by negative keyword fields. Supported syntax: - /// * Filter expressions for negative keywords can only contain at most one - /// restriction. * A restriction has the form of `{field} {operator} {value}`. - /// * All fields must use the `HAS (:)` operator. Supported fields: * - /// `keywordValue` Examples: * All negative keywords for which the keyword - /// value contains "google": `keywordValue : "google"` The length of this - /// field should be no more than 500 characters. Reference our \[filter `LIST` - /// requests\](/display-video/api/guides/how-tos/filters) guide for more - /// information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `keywordValue` (default) The default sorting order is ascending. To - /// specify descending order for a field, a suffix " desc" should be added to - /// the field name. Example: `keywordValue desc`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `1000`. If - /// unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` - /// if an invalid value is specified. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListNegativeKeywords` method. If not specified, the - /// first page of results will be returned. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListNegativeKeywordsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list( - core.String advertiserId, - core.String negativeKeywordListId, { - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/negativeKeywordLists/' + - core.Uri.encodeFull('$negativeKeywordListId') + - '/negativeKeywords'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListNegativeKeywordsResponse.fromJson( - response_ as core.Map); - } - - /// Replaces all negative keywords in a single negative keyword list. - /// - /// The operation will replace the keywords in a negative keyword list with - /// keywords provided in ReplaceNegativeKeywordsRequest.new_negative_keywords. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the DV360 advertiser to which the - /// parent negative keyword list belongs. - /// - /// [negativeKeywordListId] - Required. The ID of the parent negative keyword - /// list to which the negative keywords belong. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ReplaceNegativeKeywordsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future replace( - ReplaceNegativeKeywordsRequest request, - core.String advertiserId, - core.String negativeKeywordListId, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - commons.escapeVariable('$advertiserId') + - '/negativeKeywordLists/' + - core.Uri.encodeFull('$negativeKeywordListId') + - '/negativeKeywords:replace'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return ReplaceNegativeKeywordsResponse.fromJson( - response_ as core.Map); - } -} - -class AdvertisersTargetingTypesResource { - final commons.ApiRequester _requester; - - AdvertisersTargetingTypesAssignedTargetingOptionsResource - get assignedTargetingOptions => - AdvertisersTargetingTypesAssignedTargetingOptionsResource(_requester); - - AdvertisersTargetingTypesResource(commons.ApiRequester client) - : _requester = client; -} - -class AdvertisersTargetingTypesAssignedTargetingOptionsResource { - final commons.ApiRequester _requester; - - AdvertisersTargetingTypesAssignedTargetingOptionsResource( - commons.ApiRequester client) - : _requester = client; - - /// Assigns a targeting option to an advertiser. - /// - /// Returns the assigned targeting option if successful. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [targetingType] - Required. Identifies the type of this assigned targeting - /// option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * - /// `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * - /// `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` - /// Value must have pattern `^\[^/\]+$`. - /// Possible string values are: - /// - "TARGETING_TYPE_UNSPECIFIED" : Default value when type is not specified - /// or is unknown in this version. - /// - "TARGETING_TYPE_CHANNEL" : Target a channel (a custom group of related - /// websites or apps). - /// - "TARGETING_TYPE_APP_CATEGORY" : Target an app category (for example, - /// education or puzzle games). - /// - "TARGETING_TYPE_APP" : Target a specific app (for example, Angry Birds). - /// - "TARGETING_TYPE_URL" : Target a specific url (for example, quora.com). - /// - "TARGETING_TYPE_DAY_AND_TIME" : Target ads during a chosen time period - /// on a specific day. - /// - "TARGETING_TYPE_AGE_RANGE" : Target ads to a specific age range (for - /// example, 18-24). - /// - "TARGETING_TYPE_REGIONAL_LOCATION_LIST" : Target ads to the specified - /// regions on a regional location list. - /// - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" : Target ads to the specified - /// points of interest on a proximity location list. - /// - "TARGETING_TYPE_GENDER" : Target ads to a specific gender (for example, - /// female or male). - /// - "TARGETING_TYPE_VIDEO_PLAYER_SIZE" : Target a specific video player size - /// for video ads. - /// - "TARGETING_TYPE_USER_REWARDED_CONTENT" : Target user rewarded content - /// for video ads. - /// - "TARGETING_TYPE_PARENTAL_STATUS" : Target ads to a specific parental - /// status (for example, parent or not a parent). - /// - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" : Target video or audio ads - /// in a specific content instream position (for example, pre-roll, mid-roll, - /// or post-roll). - /// - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" : Target ads in a specific - /// content outstream position. - /// - "TARGETING_TYPE_DEVICE_TYPE" : Target ads to a specific device type (for - /// example, tablet or connected TV). - /// - "TARGETING_TYPE_AUDIENCE_GROUP" : Target ads to an audience or groups of - /// audiences. Singleton field, at most one can exist on a single Lineitem at - /// a time. - /// - "TARGETING_TYPE_BROWSER" : Target ads to specific web browsers (for - /// example, Chrome). - /// - "TARGETING_TYPE_HOUSEHOLD_INCOME" : Target ads to a specific household - /// income range (for example, top 10%). - /// - "TARGETING_TYPE_ON_SCREEN_POSITION" : Target ads in a specific on screen - /// position. - /// - "TARGETING_TYPE_THIRD_PARTY_VERIFIER" : Filter web sites through third - /// party verification (for example, IAS or DoubleVerify). - /// - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" : Filter web sites by - /// specific digital content label ratings (for example, DL-MA: suitable only - /// for mature audiences). - /// - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" : Filter website content - /// by sensitive categories (for example, adult). - /// - "TARGETING_TYPE_ENVIRONMENT" : Target ads to a specific environment (for - /// example, web or app). - /// - "TARGETING_TYPE_CARRIER_AND_ISP" : Target ads to a specific network - /// carrier or internet service provider (ISP) (for example, Comcast or - /// Orange). - /// - "TARGETING_TYPE_OPERATING_SYSTEM" : Target ads to a specific operating - /// system (for example, macOS). - /// - "TARGETING_TYPE_DEVICE_MAKE_MODEL" : Target ads to a specific device - /// make or model (for example, Roku or Samsung). - /// - "TARGETING_TYPE_KEYWORD" : Target ads to a specific keyword (for - /// example, dog or retriever). - /// - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" : Target ads to a specific - /// negative keyword list. - /// - "TARGETING_TYPE_VIEWABILITY" : Target ads to a specific viewability (for - /// example, 80% viewable). - /// - "TARGETING_TYPE_CATEGORY" : Target ads to a specific content category - /// (for example, arts & entertainment). - /// - "TARGETING_TYPE_INVENTORY_SOURCE" : Purchase impressions from specific - /// deals and auction packages. - /// - "TARGETING_TYPE_LANGUAGE" : Target ads to a specific language (for - /// example, English or Japanese). - /// - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" : Target ads to ads.txt - /// authorized sellers. If no targeting option of this type is assigned, the - /// resource uses the "Authorized Direct Sellers and Resellers" option by - /// default. - /// - "TARGETING_TYPE_GEO_REGION" : Target ads to a specific regional location - /// (for example, a city or state). - /// - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" : Purchase impressions from a - /// group of deals and auction packages. - /// - "TARGETING_TYPE_EXCHANGE" : Purchase impressions from specific - /// exchanges. - /// - "TARGETING_TYPE_SUB_EXCHANGE" : Purchase impressions from specific - /// sub-exchanges. - /// - "TARGETING_TYPE_POI" : Target ads around a specific point of interest, - /// such as a notable building, a street address, or latitude/longitude - /// coordinates. - /// - "TARGETING_TYPE_BUSINESS_CHAIN" : Target ads around locations of a - /// business chain within a specific geo region. - /// - "TARGETING_TYPE_CONTENT_DURATION" : Target ads to a specific video - /// content duration. - /// - "TARGETING_TYPE_CONTENT_STREAM_TYPE" : Target ads to a specific video - /// content stream type. - /// - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" : Target ads to a specific - /// native content position. - /// - "TARGETING_TYPE_OMID" : Target ads in an Open Measurement enabled - /// inventory. - /// - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" : Target ads to a specific audio - /// content type. - /// - "TARGETING_TYPE_CONTENT_GENRE" : Target ads to a specific content genre. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [AssignedTargetingOption]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future create( - AssignedTargetingOption request, - core.String advertiserId, - core.String targetingType, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/targetingTypes/' + - core.Uri.encodeFull('$targetingType') + - '/assignedTargetingOptions'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return AssignedTargetingOption.fromJson( - response_ as core.Map); - } - - /// Deletes an assigned targeting option from an advertiser. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [targetingType] - Required. Identifies the type of this assigned targeting - /// option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * - /// `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * - /// `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` - /// Value must have pattern `^\[^/\]+$`. - /// Possible string values are: - /// - "TARGETING_TYPE_UNSPECIFIED" : Default value when type is not specified - /// or is unknown in this version. - /// - "TARGETING_TYPE_CHANNEL" : Target a channel (a custom group of related - /// websites or apps). - /// - "TARGETING_TYPE_APP_CATEGORY" : Target an app category (for example, - /// education or puzzle games). - /// - "TARGETING_TYPE_APP" : Target a specific app (for example, Angry Birds). - /// - "TARGETING_TYPE_URL" : Target a specific url (for example, quora.com). - /// - "TARGETING_TYPE_DAY_AND_TIME" : Target ads during a chosen time period - /// on a specific day. - /// - "TARGETING_TYPE_AGE_RANGE" : Target ads to a specific age range (for - /// example, 18-24). - /// - "TARGETING_TYPE_REGIONAL_LOCATION_LIST" : Target ads to the specified - /// regions on a regional location list. - /// - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" : Target ads to the specified - /// points of interest on a proximity location list. - /// - "TARGETING_TYPE_GENDER" : Target ads to a specific gender (for example, - /// female or male). - /// - "TARGETING_TYPE_VIDEO_PLAYER_SIZE" : Target a specific video player size - /// for video ads. - /// - "TARGETING_TYPE_USER_REWARDED_CONTENT" : Target user rewarded content - /// for video ads. - /// - "TARGETING_TYPE_PARENTAL_STATUS" : Target ads to a specific parental - /// status (for example, parent or not a parent). - /// - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" : Target video or audio ads - /// in a specific content instream position (for example, pre-roll, mid-roll, - /// or post-roll). - /// - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" : Target ads in a specific - /// content outstream position. - /// - "TARGETING_TYPE_DEVICE_TYPE" : Target ads to a specific device type (for - /// example, tablet or connected TV). - /// - "TARGETING_TYPE_AUDIENCE_GROUP" : Target ads to an audience or groups of - /// audiences. Singleton field, at most one can exist on a single Lineitem at - /// a time. - /// - "TARGETING_TYPE_BROWSER" : Target ads to specific web browsers (for - /// example, Chrome). - /// - "TARGETING_TYPE_HOUSEHOLD_INCOME" : Target ads to a specific household - /// income range (for example, top 10%). - /// - "TARGETING_TYPE_ON_SCREEN_POSITION" : Target ads in a specific on screen - /// position. - /// - "TARGETING_TYPE_THIRD_PARTY_VERIFIER" : Filter web sites through third - /// party verification (for example, IAS or DoubleVerify). - /// - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" : Filter web sites by - /// specific digital content label ratings (for example, DL-MA: suitable only - /// for mature audiences). - /// - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" : Filter website content - /// by sensitive categories (for example, adult). - /// - "TARGETING_TYPE_ENVIRONMENT" : Target ads to a specific environment (for - /// example, web or app). - /// - "TARGETING_TYPE_CARRIER_AND_ISP" : Target ads to a specific network - /// carrier or internet service provider (ISP) (for example, Comcast or - /// Orange). - /// - "TARGETING_TYPE_OPERATING_SYSTEM" : Target ads to a specific operating - /// system (for example, macOS). - /// - "TARGETING_TYPE_DEVICE_MAKE_MODEL" : Target ads to a specific device - /// make or model (for example, Roku or Samsung). - /// - "TARGETING_TYPE_KEYWORD" : Target ads to a specific keyword (for - /// example, dog or retriever). - /// - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" : Target ads to a specific - /// negative keyword list. - /// - "TARGETING_TYPE_VIEWABILITY" : Target ads to a specific viewability (for - /// example, 80% viewable). - /// - "TARGETING_TYPE_CATEGORY" : Target ads to a specific content category - /// (for example, arts & entertainment). - /// - "TARGETING_TYPE_INVENTORY_SOURCE" : Purchase impressions from specific - /// deals and auction packages. - /// - "TARGETING_TYPE_LANGUAGE" : Target ads to a specific language (for - /// example, English or Japanese). - /// - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" : Target ads to ads.txt - /// authorized sellers. If no targeting option of this type is assigned, the - /// resource uses the "Authorized Direct Sellers and Resellers" option by - /// default. - /// - "TARGETING_TYPE_GEO_REGION" : Target ads to a specific regional location - /// (for example, a city or state). - /// - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" : Purchase impressions from a - /// group of deals and auction packages. - /// - "TARGETING_TYPE_EXCHANGE" : Purchase impressions from specific - /// exchanges. - /// - "TARGETING_TYPE_SUB_EXCHANGE" : Purchase impressions from specific - /// sub-exchanges. - /// - "TARGETING_TYPE_POI" : Target ads around a specific point of interest, - /// such as a notable building, a street address, or latitude/longitude - /// coordinates. - /// - "TARGETING_TYPE_BUSINESS_CHAIN" : Target ads around locations of a - /// business chain within a specific geo region. - /// - "TARGETING_TYPE_CONTENT_DURATION" : Target ads to a specific video - /// content duration. - /// - "TARGETING_TYPE_CONTENT_STREAM_TYPE" : Target ads to a specific video - /// content stream type. - /// - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" : Target ads to a specific - /// native content position. - /// - "TARGETING_TYPE_OMID" : Target ads in an Open Measurement enabled - /// inventory. - /// - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" : Target ads to a specific audio - /// content type. - /// - "TARGETING_TYPE_CONTENT_GENRE" : Target ads to a specific content genre. - /// - /// [assignedTargetingOptionId] - Required. The ID of the assigned targeting - /// option to delete. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Empty]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future delete( - core.String advertiserId, - core.String targetingType, - core.String assignedTargetingOptionId, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/targetingTypes/' + - core.Uri.encodeFull('$targetingType') + - '/assignedTargetingOptions/' + - core.Uri.encodeFull('$assignedTargetingOptionId'); - - final response_ = await _requester.request( - url_, - 'DELETE', - queryParams: queryParams_, - ); - return Empty.fromJson(response_ as core.Map); - } - - /// Gets a single targeting option assigned to an advertiser. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [targetingType] - Required. Identifies the type of this assigned targeting - /// option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * - /// `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * - /// `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * - /// `TARGETING_TYPE_YOUTUBE_VIDEO` * `TARGETING_TYPE_YOUTUBE_CHANNEL` - /// Value must have pattern `^\[^/\]+$`. - /// Possible string values are: - /// - "TARGETING_TYPE_UNSPECIFIED" : Default value when type is not specified - /// or is unknown in this version. - /// - "TARGETING_TYPE_CHANNEL" : Target a channel (a custom group of related - /// websites or apps). - /// - "TARGETING_TYPE_APP_CATEGORY" : Target an app category (for example, - /// education or puzzle games). - /// - "TARGETING_TYPE_APP" : Target a specific app (for example, Angry Birds). - /// - "TARGETING_TYPE_URL" : Target a specific url (for example, quora.com). - /// - "TARGETING_TYPE_DAY_AND_TIME" : Target ads during a chosen time period - /// on a specific day. - /// - "TARGETING_TYPE_AGE_RANGE" : Target ads to a specific age range (for - /// example, 18-24). - /// - "TARGETING_TYPE_REGIONAL_LOCATION_LIST" : Target ads to the specified - /// regions on a regional location list. - /// - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" : Target ads to the specified - /// points of interest on a proximity location list. - /// - "TARGETING_TYPE_GENDER" : Target ads to a specific gender (for example, - /// female or male). - /// - "TARGETING_TYPE_VIDEO_PLAYER_SIZE" : Target a specific video player size - /// for video ads. - /// - "TARGETING_TYPE_USER_REWARDED_CONTENT" : Target user rewarded content - /// for video ads. - /// - "TARGETING_TYPE_PARENTAL_STATUS" : Target ads to a specific parental - /// status (for example, parent or not a parent). - /// - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" : Target video or audio ads - /// in a specific content instream position (for example, pre-roll, mid-roll, - /// or post-roll). - /// - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" : Target ads in a specific - /// content outstream position. - /// - "TARGETING_TYPE_DEVICE_TYPE" : Target ads to a specific device type (for - /// example, tablet or connected TV). - /// - "TARGETING_TYPE_AUDIENCE_GROUP" : Target ads to an audience or groups of - /// audiences. Singleton field, at most one can exist on a single Lineitem at - /// a time. - /// - "TARGETING_TYPE_BROWSER" : Target ads to specific web browsers (for - /// example, Chrome). - /// - "TARGETING_TYPE_HOUSEHOLD_INCOME" : Target ads to a specific household - /// income range (for example, top 10%). - /// - "TARGETING_TYPE_ON_SCREEN_POSITION" : Target ads in a specific on screen - /// position. - /// - "TARGETING_TYPE_THIRD_PARTY_VERIFIER" : Filter web sites through third - /// party verification (for example, IAS or DoubleVerify). - /// - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" : Filter web sites by - /// specific digital content label ratings (for example, DL-MA: suitable only - /// for mature audiences). - /// - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" : Filter website content - /// by sensitive categories (for example, adult). - /// - "TARGETING_TYPE_ENVIRONMENT" : Target ads to a specific environment (for - /// example, web or app). - /// - "TARGETING_TYPE_CARRIER_AND_ISP" : Target ads to a specific network - /// carrier or internet service provider (ISP) (for example, Comcast or - /// Orange). - /// - "TARGETING_TYPE_OPERATING_SYSTEM" : Target ads to a specific operating - /// system (for example, macOS). - /// - "TARGETING_TYPE_DEVICE_MAKE_MODEL" : Target ads to a specific device - /// make or model (for example, Roku or Samsung). - /// - "TARGETING_TYPE_KEYWORD" : Target ads to a specific keyword (for - /// example, dog or retriever). - /// - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" : Target ads to a specific - /// negative keyword list. - /// - "TARGETING_TYPE_VIEWABILITY" : Target ads to a specific viewability (for - /// example, 80% viewable). - /// - "TARGETING_TYPE_CATEGORY" : Target ads to a specific content category - /// (for example, arts & entertainment). - /// - "TARGETING_TYPE_INVENTORY_SOURCE" : Purchase impressions from specific - /// deals and auction packages. - /// - "TARGETING_TYPE_LANGUAGE" : Target ads to a specific language (for - /// example, English or Japanese). - /// - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" : Target ads to ads.txt - /// authorized sellers. If no targeting option of this type is assigned, the - /// resource uses the "Authorized Direct Sellers and Resellers" option by - /// default. - /// - "TARGETING_TYPE_GEO_REGION" : Target ads to a specific regional location - /// (for example, a city or state). - /// - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" : Purchase impressions from a - /// group of deals and auction packages. - /// - "TARGETING_TYPE_EXCHANGE" : Purchase impressions from specific - /// exchanges. - /// - "TARGETING_TYPE_SUB_EXCHANGE" : Purchase impressions from specific - /// sub-exchanges. - /// - "TARGETING_TYPE_POI" : Target ads around a specific point of interest, - /// such as a notable building, a street address, or latitude/longitude - /// coordinates. - /// - "TARGETING_TYPE_BUSINESS_CHAIN" : Target ads around locations of a - /// business chain within a specific geo region. - /// - "TARGETING_TYPE_CONTENT_DURATION" : Target ads to a specific video - /// content duration. - /// - "TARGETING_TYPE_CONTENT_STREAM_TYPE" : Target ads to a specific video - /// content stream type. - /// - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" : Target ads to a specific - /// native content position. - /// - "TARGETING_TYPE_OMID" : Target ads in an Open Measurement enabled - /// inventory. - /// - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" : Target ads to a specific audio - /// content type. - /// - "TARGETING_TYPE_CONTENT_GENRE" : Target ads to a specific content genre. - /// - /// [assignedTargetingOptionId] - Required. An identifier unique to the - /// targeting type in this advertiser that identifies the assigned targeting - /// option being requested. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [AssignedTargetingOption]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String advertiserId, - core.String targetingType, - core.String assignedTargetingOptionId, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/targetingTypes/' + - core.Uri.encodeFull('$targetingType') + - '/assignedTargetingOptions/' + - core.Uri.encodeFull('$assignedTargetingOptionId'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return AssignedTargetingOption.fromJson( - response_ as core.Map); - } - - /// Lists the targeting options assigned to an advertiser. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [targetingType] - Required. Identifies the type of assigned targeting - /// options to list. Supported targeting types: * `TARGETING_TYPE_CHANNEL` * - /// `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * - /// `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * - /// `TARGETING_TYPE_YOUTUBE_VIDEO` * `TARGETING_TYPE_YOUTUBE_CHANNEL` - /// Value must have pattern `^\[^/\]+$`. - /// Possible string values are: - /// - "TARGETING_TYPE_UNSPECIFIED" : Default value when type is not specified - /// or is unknown in this version. - /// - "TARGETING_TYPE_CHANNEL" : Target a channel (a custom group of related - /// websites or apps). - /// - "TARGETING_TYPE_APP_CATEGORY" : Target an app category (for example, - /// education or puzzle games). - /// - "TARGETING_TYPE_APP" : Target a specific app (for example, Angry Birds). - /// - "TARGETING_TYPE_URL" : Target a specific url (for example, quora.com). - /// - "TARGETING_TYPE_DAY_AND_TIME" : Target ads during a chosen time period - /// on a specific day. - /// - "TARGETING_TYPE_AGE_RANGE" : Target ads to a specific age range (for - /// example, 18-24). - /// - "TARGETING_TYPE_REGIONAL_LOCATION_LIST" : Target ads to the specified - /// regions on a regional location list. - /// - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" : Target ads to the specified - /// points of interest on a proximity location list. - /// - "TARGETING_TYPE_GENDER" : Target ads to a specific gender (for example, - /// female or male). - /// - "TARGETING_TYPE_VIDEO_PLAYER_SIZE" : Target a specific video player size - /// for video ads. - /// - "TARGETING_TYPE_USER_REWARDED_CONTENT" : Target user rewarded content - /// for video ads. - /// - "TARGETING_TYPE_PARENTAL_STATUS" : Target ads to a specific parental - /// status (for example, parent or not a parent). - /// - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" : Target video or audio ads - /// in a specific content instream position (for example, pre-roll, mid-roll, - /// or post-roll). - /// - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" : Target ads in a specific - /// content outstream position. - /// - "TARGETING_TYPE_DEVICE_TYPE" : Target ads to a specific device type (for - /// example, tablet or connected TV). - /// - "TARGETING_TYPE_AUDIENCE_GROUP" : Target ads to an audience or groups of - /// audiences. Singleton field, at most one can exist on a single Lineitem at - /// a time. - /// - "TARGETING_TYPE_BROWSER" : Target ads to specific web browsers (for - /// example, Chrome). - /// - "TARGETING_TYPE_HOUSEHOLD_INCOME" : Target ads to a specific household - /// income range (for example, top 10%). - /// - "TARGETING_TYPE_ON_SCREEN_POSITION" : Target ads in a specific on screen - /// position. - /// - "TARGETING_TYPE_THIRD_PARTY_VERIFIER" : Filter web sites through third - /// party verification (for example, IAS or DoubleVerify). - /// - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" : Filter web sites by - /// specific digital content label ratings (for example, DL-MA: suitable only - /// for mature audiences). - /// - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" : Filter website content - /// by sensitive categories (for example, adult). - /// - "TARGETING_TYPE_ENVIRONMENT" : Target ads to a specific environment (for - /// example, web or app). - /// - "TARGETING_TYPE_CARRIER_AND_ISP" : Target ads to a specific network - /// carrier or internet service provider (ISP) (for example, Comcast or - /// Orange). - /// - "TARGETING_TYPE_OPERATING_SYSTEM" : Target ads to a specific operating - /// system (for example, macOS). - /// - "TARGETING_TYPE_DEVICE_MAKE_MODEL" : Target ads to a specific device - /// make or model (for example, Roku or Samsung). - /// - "TARGETING_TYPE_KEYWORD" : Target ads to a specific keyword (for - /// example, dog or retriever). - /// - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" : Target ads to a specific - /// negative keyword list. - /// - "TARGETING_TYPE_VIEWABILITY" : Target ads to a specific viewability (for - /// example, 80% viewable). - /// - "TARGETING_TYPE_CATEGORY" : Target ads to a specific content category - /// (for example, arts & entertainment). - /// - "TARGETING_TYPE_INVENTORY_SOURCE" : Purchase impressions from specific - /// deals and auction packages. - /// - "TARGETING_TYPE_LANGUAGE" : Target ads to a specific language (for - /// example, English or Japanese). - /// - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" : Target ads to ads.txt - /// authorized sellers. If no targeting option of this type is assigned, the - /// resource uses the "Authorized Direct Sellers and Resellers" option by - /// default. - /// - "TARGETING_TYPE_GEO_REGION" : Target ads to a specific regional location - /// (for example, a city or state). - /// - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" : Purchase impressions from a - /// group of deals and auction packages. - /// - "TARGETING_TYPE_EXCHANGE" : Purchase impressions from specific - /// exchanges. - /// - "TARGETING_TYPE_SUB_EXCHANGE" : Purchase impressions from specific - /// sub-exchanges. - /// - "TARGETING_TYPE_POI" : Target ads around a specific point of interest, - /// such as a notable building, a street address, or latitude/longitude - /// coordinates. - /// - "TARGETING_TYPE_BUSINESS_CHAIN" : Target ads around locations of a - /// business chain within a specific geo region. - /// - "TARGETING_TYPE_CONTENT_DURATION" : Target ads to a specific video - /// content duration. - /// - "TARGETING_TYPE_CONTENT_STREAM_TYPE" : Target ads to a specific video - /// content stream type. - /// - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" : Target ads to a specific - /// native content position. - /// - "TARGETING_TYPE_OMID" : Target ads in an Open Measurement enabled - /// inventory. - /// - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" : Target ads to a specific audio - /// content type. - /// - "TARGETING_TYPE_CONTENT_GENRE" : Target ads to a specific content genre. - /// - /// [filter] - Allows filtering by assigned targeting option fields. Supported - /// syntax: * Filter expressions are made up of one or more restrictions. * - /// Restrictions can be combined by the `OR` logical operator. * A restriction - /// has the form of `{field} {operator} {value}`. * All fields must use the - /// `EQUALS (=)` operator. Supported fields: * `assignedTargetingOptionId` - /// Examples: * `AssignedTargetingOption` with ID 123456: - /// `assignedTargetingOptionId="123456"` The length of this field should be no - /// more than 500 characters. Reference our \[filter `LIST` - /// requests\](/display-video/api/guides/how-tos/filters) guide for more - /// information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `assignedTargetingOptionId` (default) The default sorting order is - /// ascending. To specify descending order for a field, a suffix "desc" should - /// be added to the field name. Example: `assignedTargetingOptionId desc`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `5000`. If - /// unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` - /// if an invalid value is specified. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListAdvertiserAssignedTargetingOptions` method. If not - /// specified, the first page of results will be returned. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListAdvertiserAssignedTargetingOptionsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list( - core.String advertiserId, - core.String targetingType, { - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/advertisers/' + - core.Uri.encodeFull('$advertiserId') + - '/targetingTypes/' + - core.Uri.encodeFull('$targetingType') + - '/assignedTargetingOptions'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListAdvertiserAssignedTargetingOptionsResponse.fromJson( - response_ as core.Map); - } -} - -class CombinedAudiencesResource { - final commons.ApiRequester _requester; - - CombinedAudiencesResource(commons.ApiRequester client) : _requester = client; - - /// Gets a combined audience. - /// - /// Request parameters: - /// - /// [combinedAudienceId] - Required. The ID of the combined audience to fetch. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [advertiserId] - The ID of the advertiser that has access to the fetched - /// combined audience. - /// - /// [partnerId] - The ID of the partner that has access to the fetched - /// combined audience. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [CombinedAudience]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String combinedAudienceId, { - core.String? advertiserId, - core.String? partnerId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = - 'v1/combinedAudiences/' + core.Uri.encodeFull('$combinedAudienceId'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return CombinedAudience.fromJson( - response_ as core.Map); - } - - /// Lists combined audiences. - /// - /// The order is defined by the order_by parameter. - /// - /// Request parameters: - /// - /// [advertiserId] - The ID of the advertiser that has access to the fetched - /// combined audiences. - /// - /// [filter] - Allows filtering by combined audience fields. Supported syntax: - /// * Filter expressions for combined audiences can only contain at most one - /// restriction. * A restriction has the form of `{field} {operator} {value}`. - /// * All fields must use the `HAS (:)` operator. Supported fields: * - /// `displayName` Examples: * All combined audiences for which the display - /// name contains "Google": `displayName : "Google"`. The length of this field - /// should be no more than 500 characters. Reference our \[filter `LIST` - /// requests\](/display-video/api/guides/how-tos/filters) guide for more - /// information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `combinedAudienceId` (default) * `displayName` The default sorting order - /// is ascending. To specify descending order for a field, a suffix "desc" - /// should be added to the field name. Example: `displayName desc`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `200`. If - /// unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` - /// if an invalid value is specified. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListCombinedAudiences` method. If not specified, the - /// first page of results will be returned. - /// - /// [partnerId] - The ID of the partner that has access to the fetched - /// combined audiences. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListCombinedAudiencesResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list({ - core.String? advertiserId, - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? partnerId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - const url_ = 'v1/combinedAudiences'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListCombinedAudiencesResponse.fromJson( - response_ as core.Map); - } -} - -class CustomBiddingAlgorithmsResource { - final commons.ApiRequester _requester; - - CustomBiddingAlgorithmsScriptsResource get scripts => - CustomBiddingAlgorithmsScriptsResource(_requester); - - CustomBiddingAlgorithmsResource(commons.ApiRequester client) - : _requester = client; - - /// Creates a new custom bidding algorithm. - /// - /// Returns the newly created custom bidding algorithm if successful. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [CustomBiddingAlgorithm]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future create( - CustomBiddingAlgorithm request, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - const url_ = 'v1/customBiddingAlgorithms'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return CustomBiddingAlgorithm.fromJson( - response_ as core.Map); - } - - /// Gets a custom bidding algorithm. - /// - /// Request parameters: - /// - /// [customBiddingAlgorithmId] - Required. The ID of the custom bidding - /// algorithm to fetch. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [advertiserId] - The ID of the DV360 partner that has access to the custom - /// bidding algorithm. - /// - /// [partnerId] - The ID of the DV360 partner that has access to the custom - /// bidding algorithm. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [CustomBiddingAlgorithm]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String customBiddingAlgorithmId, { - core.String? advertiserId, - core.String? partnerId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/customBiddingAlgorithms/' + - core.Uri.encodeFull('$customBiddingAlgorithmId'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return CustomBiddingAlgorithm.fromJson( - response_ as core.Map); - } - - /// Lists custom bidding algorithms that are accessible to the current user - /// and can be used in bidding stratgies. - /// - /// The order is defined by the order_by parameter. - /// - /// Request parameters: - /// - /// [advertiserId] - The ID of the DV360 advertiser that has access to the - /// custom bidding algorithm. - /// - /// [filter] - Allows filtering by custom bidding algorithm fields. Supported - /// syntax: * Filter expressions are made up of one or more restrictions. * - /// Restrictions can be combined by `AND`. A sequence of restrictions - /// implicitly uses `AND`. * A restriction has the form of `{field} {operator} - /// {value}`. * The `customBiddingAlgorithmType` field must use the `EQUALS - /// (=)` operator. * The `displayName` field must use the `HAS (:)` operator. - /// Supported fields: * `customBiddingAlgorithmType` * `displayName` Examples: - /// * All custom bidding algorithms for which the display name contains - /// "politics": `displayName:"politics"`. * All custom bidding algorithms for - /// which the type is "SCRIPT_BASED": - /// `customBiddingAlgorithmType=SCRIPT_BASED` The length of this field should - /// be no more than 500 characters. Reference our \[filter `LIST` - /// requests\](/display-video/api/guides/how-tos/filters) guide for more - /// information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `displayName` (default) The default sorting order is ascending. To specify - /// descending order for a field, a suffix "desc" should be added to the field - /// name. Example: `displayName desc`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `200`. If - /// unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` - /// if an invalid value is specified. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListCustomBiddingAlgorithms` method. If not specified, - /// the first page of results will be returned. - /// - /// [partnerId] - The ID of the DV360 partner that has access to the custom - /// bidding algorithm. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListCustomBiddingAlgorithmsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list({ - core.String? advertiserId, - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? partnerId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - const url_ = 'v1/customBiddingAlgorithms'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListCustomBiddingAlgorithmsResponse.fromJson( - response_ as core.Map); - } - - /// Updates an existing custom bidding algorithm. - /// - /// Returns the updated custom bidding algorithm if successful. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [customBiddingAlgorithmId] - Output only. The unique ID of the custom - /// bidding algorithm. Assigned by the system. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [updateMask] - Required. The mask to control which fields to update. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [CustomBiddingAlgorithm]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future patch( - CustomBiddingAlgorithm request, - core.String customBiddingAlgorithmId, { - core.String? updateMask, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (updateMask != null) 'updateMask': [updateMask], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/customBiddingAlgorithms/' + - core.Uri.encodeFull('$customBiddingAlgorithmId'); - - final response_ = await _requester.request( - url_, - 'PATCH', - body: body_, - queryParams: queryParams_, - ); - return CustomBiddingAlgorithm.fromJson( - response_ as core.Map); - } - - /// Creates a custom bidding script reference object for a script file. - /// - /// The resulting reference object provides a resource path to which the - /// script file should be uploaded. This reference object should be included - /// in when creating a new custom bidding script object. - /// - /// Request parameters: - /// - /// [customBiddingAlgorithmId] - Required. The ID of the custom bidding - /// algorithm owns the script. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [advertiserId] - The ID of the advertiser that owns the parent custom - /// bidding algorithm. - /// - /// [partnerId] - The ID of the partner that owns the parent custom bidding - /// algorithm. Only this partner will have write access to this custom bidding - /// script. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [CustomBiddingScriptRef]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future uploadScript( - core.String customBiddingAlgorithmId, { - core.String? advertiserId, - core.String? partnerId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/customBiddingAlgorithms/' + - core.Uri.encodeFull('$customBiddingAlgorithmId') + - ':uploadScript'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return CustomBiddingScriptRef.fromJson( - response_ as core.Map); - } -} - -class CustomBiddingAlgorithmsScriptsResource { - final commons.ApiRequester _requester; - - CustomBiddingAlgorithmsScriptsResource(commons.ApiRequester client) - : _requester = client; - - /// Creates a new custom bidding script. - /// - /// Returns the newly created script if successful. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [customBiddingAlgorithmId] - Required. The ID of the custom bidding - /// algorithm that owns the script. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [advertiserId] - The ID of the advertiser that owns the parent custom - /// bidding algorithm. - /// - /// [partnerId] - The ID of the partner that owns the parent custom bidding - /// algorithm. Only this partner will have write access to this custom bidding - /// script. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [CustomBiddingScript]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future create( - CustomBiddingScript request, - core.String customBiddingAlgorithmId, { - core.String? advertiserId, - core.String? partnerId, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/customBiddingAlgorithms/' + - core.Uri.encodeFull('$customBiddingAlgorithmId') + - '/scripts'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return CustomBiddingScript.fromJson( - response_ as core.Map); - } - - /// Gets a custom bidding script. - /// - /// Request parameters: - /// - /// [customBiddingAlgorithmId] - Required. The ID of the custom bidding - /// algorithm owns the script. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [customBiddingScriptId] - Required. The ID of the custom bidding script to - /// fetch. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [advertiserId] - The ID of the advertiser that owns the parent custom - /// bidding algorithm. - /// - /// [partnerId] - The ID of the partner that owns the parent custom bidding - /// algorithm. Only this partner will have write access to this custom bidding - /// script. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [CustomBiddingScript]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String customBiddingAlgorithmId, - core.String customBiddingScriptId, { - core.String? advertiserId, - core.String? partnerId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/customBiddingAlgorithms/' + - core.Uri.encodeFull('$customBiddingAlgorithmId') + - '/scripts/' + - core.Uri.encodeFull('$customBiddingScriptId'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return CustomBiddingScript.fromJson( - response_ as core.Map); - } - - /// Lists custom bidding scripts that belong to the given algorithm. - /// - /// The order is defined by the order_by parameter. - /// - /// Request parameters: - /// - /// [customBiddingAlgorithmId] - Required. The ID of the custom bidding - /// algorithm owns the script. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [advertiserId] - The ID of the advertiser that owns the parent custom - /// bidding algorithm. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `createTime desc` (default) The default sorting order is descending. To - /// specify ascending order for a field, the suffix "desc" should be removed. - /// Example: `createTime`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `200`. If - /// unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` - /// if an invalid value is specified. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListCustomBiddingScripts` method. If not specified, the - /// first page of results will be returned. - /// - /// [partnerId] - The ID of the partner that owns the parent custom bidding - /// algorithm. Only this partner will have write access to this custom bidding - /// script. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListCustomBiddingScriptsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list( - core.String customBiddingAlgorithmId, { - core.String? advertiserId, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? partnerId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/customBiddingAlgorithms/' + - core.Uri.encodeFull('$customBiddingAlgorithmId') + - '/scripts'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListCustomBiddingScriptsResponse.fromJson( - response_ as core.Map); - } -} - -class CustomListsResource { - final commons.ApiRequester _requester; - - CustomListsResource(commons.ApiRequester client) : _requester = client; - - /// Gets a custom list. - /// - /// Request parameters: - /// - /// [customListId] - Required. The ID of the custom list to fetch. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [advertiserId] - The ID of the DV360 advertiser that has access to the - /// fetched custom lists. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [CustomList]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String customListId, { - core.String? advertiserId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/customLists/' + core.Uri.encodeFull('$customListId'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return CustomList.fromJson( - response_ as core.Map); - } - - /// Lists custom lists. - /// - /// The order is defined by the order_by parameter. - /// - /// Request parameters: - /// - /// [advertiserId] - The ID of the DV360 advertiser that has access to the - /// fetched custom lists. - /// - /// [filter] - Allows filtering by custom list fields. Supported syntax: * - /// Filter expressions for custom lists can only contain at most one - /// restriction. * A restriction has the form of `{field} {operator} {value}`. - /// * All fields must use the `HAS (:)` operator. Supported fields: * - /// `displayName` Examples: * All custom lists for which the display name - /// contains "Google": `displayName:"Google"`. The length of this field should - /// be no more than 500 characters. Reference our \[filter `LIST` - /// requests\](/display-video/api/guides/how-tos/filters) guide for more - /// information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `customListId` (default) * `displayName` The default sorting order is - /// ascending. To specify descending order for a field, a suffix "desc" should - /// be added to the field name. Example: `displayName desc`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `200`. If - /// unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` - /// if an invalid value is specified. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListCustomLists` method. If not specified, the first - /// page of results will be returned. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListCustomListsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list({ - core.String? advertiserId, - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if ($fields != null) 'fields': [$fields], - }; - - const url_ = 'v1/customLists'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListCustomListsResponse.fromJson( - response_ as core.Map); - } -} - -class FirstAndThirdPartyAudiencesResource { - final commons.ApiRequester _requester; - - FirstAndThirdPartyAudiencesResource(commons.ApiRequester client) - : _requester = client; - - /// Creates a FirstAndThirdPartyAudience. - /// - /// Only supported for the following audience_type: * - /// `CUSTOMER_MATCH_CONTACT_INFO` * `CUSTOMER_MATCH_DEVICE_ID` - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - Required. The ID of the advertiser under whom the - /// FirstAndThirdPartyAudience will be created. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [FirstAndThirdPartyAudience]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future create( - FirstAndThirdPartyAudience request, { - core.String? advertiserId, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if ($fields != null) 'fields': [$fields], - }; - - const url_ = 'v1/firstAndThirdPartyAudiences'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return FirstAndThirdPartyAudience.fromJson( - response_ as core.Map); - } - - /// Updates the member list of a Customer Match audience. - /// - /// Only supported for the following audience_type: * - /// `CUSTOMER_MATCH_CONTACT_INFO` * `CUSTOMER_MATCH_DEVICE_ID` - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [firstAndThirdPartyAudienceId] - Required. The ID of the Customer Match - /// FirstAndThirdPartyAudience whose members will be edited. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [EditCustomerMatchMembersResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future editCustomerMatchMembers( - EditCustomerMatchMembersRequest request, - core.String firstAndThirdPartyAudienceId, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/firstAndThirdPartyAudiences/' + - core.Uri.encodeFull('$firstAndThirdPartyAudienceId') + - ':editCustomerMatchMembers'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return EditCustomerMatchMembersResponse.fromJson( - response_ as core.Map); - } - - /// Gets a first and third party audience. - /// - /// Request parameters: - /// - /// [firstAndThirdPartyAudienceId] - Required. The ID of the first and third - /// party audience to fetch. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [advertiserId] - The ID of the advertiser that has access to the fetched - /// first and third party audience. - /// - /// [partnerId] - The ID of the partner that has access to the fetched first - /// and third party audience. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [FirstAndThirdPartyAudience]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String firstAndThirdPartyAudienceId, { - core.String? advertiserId, - core.String? partnerId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/firstAndThirdPartyAudiences/' + - core.Uri.encodeFull('$firstAndThirdPartyAudienceId'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return FirstAndThirdPartyAudience.fromJson( - response_ as core.Map); - } - - /// Lists first and third party audiences. - /// - /// The order is defined by the order_by parameter. - /// - /// Request parameters: - /// - /// [advertiserId] - The ID of the advertiser that has access to the fetched - /// first and third party audiences. - /// - /// [filter] - Allows filtering by first and third party audience fields. - /// Supported syntax: * Filter expressions for first and third party audiences - /// can only contain at most one restriction. * A restriction has the form of - /// `{field} {operator} {value}`. * All fields must use the `HAS (:)` - /// operator. Supported fields: * `displayName` Examples: * All first and - /// third party audiences for which the display name contains "Google": - /// `displayName:"Google"`. The length of this field should be no more than - /// 500 characters. Reference our \[filter `LIST` - /// requests\](/display-video/api/guides/how-tos/filters) guide for more - /// information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `firstAndThirdPartyAudienceId` (default) * `displayName` The default - /// sorting order is ascending. To specify descending order for a field, a - /// suffix "desc" should be added to the field name. Example: `displayName - /// desc`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `200`. If - /// unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` - /// if an invalid value is specified. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListFirstAndThirdPartyAudiences` method. If not - /// specified, the first page of results will be returned. - /// - /// [partnerId] - The ID of the partner that has access to the fetched first - /// and third party audiences. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListFirstAndThirdPartyAudiencesResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list({ - core.String? advertiserId, - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? partnerId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - const url_ = 'v1/firstAndThirdPartyAudiences'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListFirstAndThirdPartyAudiencesResponse.fromJson( - response_ as core.Map); - } - - /// Updates an existing FirstAndThirdPartyAudience. - /// - /// Only supported for the following audience_type: * - /// `CUSTOMER_MATCH_CONTACT_INFO` * `CUSTOMER_MATCH_DEVICE_ID` - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [firstAndThirdPartyAudienceId] - Output only. The unique ID of the first - /// and third party audience. Assigned by the system. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [advertiserId] - Required. The ID of the owner advertiser of the updated - /// FirstAndThirdPartyAudience. - /// - /// [updateMask] - Required. The mask to control which fields to update. - /// Updates are only supported for the following fields: * `displayName` * - /// `description` * `membershipDurationDays` - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [FirstAndThirdPartyAudience]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future patch( - FirstAndThirdPartyAudience request, - core.String firstAndThirdPartyAudienceId, { - core.String? advertiserId, - core.String? updateMask, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (updateMask != null) 'updateMask': [updateMask], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/firstAndThirdPartyAudiences/' + - core.Uri.encodeFull('$firstAndThirdPartyAudienceId'); - - final response_ = await _requester.request( - url_, - 'PATCH', - body: body_, - queryParams: queryParams_, - ); - return FirstAndThirdPartyAudience.fromJson( - response_ as core.Map); - } -} - -class FloodlightGroupsResource { - final commons.ApiRequester _requester; - - FloodlightGroupsResource(commons.ApiRequester client) : _requester = client; - - /// Gets a Floodlight group. - /// - /// Request parameters: - /// - /// [floodlightGroupId] - Required. The ID of the Floodlight group to fetch. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [partnerId] - Required. The partner context by which the Floodlight group - /// is being accessed. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [FloodlightGroup]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String floodlightGroupId, { - core.String? partnerId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = - 'v1/floodlightGroups/' + core.Uri.encodeFull('$floodlightGroupId'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return FloodlightGroup.fromJson( - response_ as core.Map); - } - - /// Updates an existing Floodlight group. - /// - /// Returns the updated Floodlight group if successful. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [floodlightGroupId] - Output only. The unique ID of the Floodlight group. - /// Assigned by the system. - /// - /// [partnerId] - Required. The partner context by which the Floodlight group - /// is being accessed. - /// - /// [updateMask] - Required. The mask to control which fields to update. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [FloodlightGroup]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future patch( - FloodlightGroup request, - core.String floodlightGroupId, { - core.String? partnerId, - core.String? updateMask, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (partnerId != null) 'partnerId': [partnerId], - if (updateMask != null) 'updateMask': [updateMask], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = - 'v1/floodlightGroups/' + commons.escapeVariable('$floodlightGroupId'); - - final response_ = await _requester.request( - url_, - 'PATCH', - body: body_, - queryParams: queryParams_, - ); - return FloodlightGroup.fromJson( - response_ as core.Map); - } -} - -class GoogleAudiencesResource { - final commons.ApiRequester _requester; - - GoogleAudiencesResource(commons.ApiRequester client) : _requester = client; - - /// Gets a Google audience. - /// - /// Request parameters: - /// - /// [googleAudienceId] - Required. The ID of the Google audience to fetch. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [advertiserId] - The ID of the advertiser that has access to the fetched - /// Google audience. - /// - /// [partnerId] - The ID of the partner that has access to the fetched Google - /// audience. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [GoogleAudience]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String googleAudienceId, { - core.String? advertiserId, - core.String? partnerId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = - 'v1/googleAudiences/' + core.Uri.encodeFull('$googleAudienceId'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return GoogleAudience.fromJson( - response_ as core.Map); - } - - /// Lists Google audiences. - /// - /// The order is defined by the order_by parameter. - /// - /// Request parameters: - /// - /// [advertiserId] - The ID of the advertiser that has access to the fetched - /// Google audiences. - /// - /// [filter] - Allows filtering by Google audience fields. Supported syntax: * - /// Filter expressions for Google audiences can only contain at most one - /// restriction. * A restriction has the form of `{field} {operator} {value}`. - /// * All fields must use the `HAS (:)` operator. Supported fields: * - /// `displayName` Examples: * All Google audiences for which the display name - /// contains "Google": `displayName:"Google"`. The length of this field should - /// be no more than 500 characters. Reference our \[filter `LIST` - /// requests\](/display-video/api/guides/how-tos/filters) guide for more - /// information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `googleAudienceId` (default) * `displayName` The default sorting order is - /// ascending. To specify descending order for a field, a suffix "desc" should - /// be added to the field name. Example: `displayName desc`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `200`. If - /// unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` - /// if an invalid value is specified. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListGoogleAudiences` method. If not specified, the first - /// page of results will be returned. - /// - /// [partnerId] - The ID of the partner that has access to the fetched Google - /// audiences. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListGoogleAudiencesResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list({ - core.String? advertiserId, - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? partnerId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - const url_ = 'v1/googleAudiences'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListGoogleAudiencesResponse.fromJson( - response_ as core.Map); - } -} - -class GuaranteedOrdersResource { - final commons.ApiRequester _requester; - - GuaranteedOrdersResource(commons.ApiRequester client) : _requester = client; - - /// Creates a new guaranteed order. - /// - /// Returns the newly created guaranteed order if successful. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - The ID of the advertiser that the request is being made - /// within. - /// - /// [partnerId] - The ID of the partner that the request is being made within. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [GuaranteedOrder]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future create( - GuaranteedOrder request, { - core.String? advertiserId, - core.String? partnerId, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - const url_ = 'v1/guaranteedOrders'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return GuaranteedOrder.fromJson( - response_ as core.Map); - } - - /// Edits read advertisers of a guaranteed order. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [guaranteedOrderId] - Required. The ID of the guaranteed order to edit. - /// The ID is of the format `{exchange}-{legacy_guaranteed_order_id}` - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [EditGuaranteedOrderReadAccessorsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future - editGuaranteedOrderReadAccessors( - EditGuaranteedOrderReadAccessorsRequest request, - core.String guaranteedOrderId, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/guaranteedOrders/' + - core.Uri.encodeFull('$guaranteedOrderId') + - ':editGuaranteedOrderReadAccessors'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return EditGuaranteedOrderReadAccessorsResponse.fromJson( - response_ as core.Map); - } - - /// Gets a guaranteed order. - /// - /// Request parameters: - /// - /// [guaranteedOrderId] - Required. The ID of the guaranteed order to fetch. - /// The ID is of the format `{exchange}-{legacy_guaranteed_order_id}` - /// Value must have pattern `^\[^/\]+$`. - /// - /// [advertiserId] - The ID of the advertiser that has access to the - /// guaranteed order. - /// - /// [partnerId] - The ID of the partner that has access to the guaranteed - /// order. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [GuaranteedOrder]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String guaranteedOrderId, { - core.String? advertiserId, - core.String? partnerId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = - 'v1/guaranteedOrders/' + core.Uri.encodeFull('$guaranteedOrderId'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return GuaranteedOrder.fromJson( - response_ as core.Map); - } - - /// Lists guaranteed orders that are accessible to the current user. - /// - /// The order is defined by the order_by parameter. If a filter by - /// entity_status is not specified, guaranteed orders with entity status - /// `ENTITY_STATUS_ARCHIVED` will not be included in the results. - /// - /// Request parameters: - /// - /// [advertiserId] - The ID of the advertiser that has access to the - /// guaranteed order. - /// - /// [filter] - Allows filtering by guaranteed order fields. * Filter - /// expressions are made up of one or more restrictions. * Restrictions can be - /// combined by `AND` or `OR` logical operators. A sequence of restrictions - /// implicitly uses `AND`. * A restriction has the form of `{field} {operator} - /// {value}`. * All fields must use the `EQUALS (=)` operator. Supported - /// fields: * `guaranteed_order_id` * `exchange` * `display_name` * - /// `status.entityStatus` Examples: * All active guaranteed orders: - /// `status.entityStatus="ENTITY_STATUS_ACTIVE"` * Guaranteed orders belonging - /// to Google Ad Manager or Rubicon exchanges: - /// `exchange="EXCHANGE_GOOGLE_AD_MANAGER" OR exchange="EXCHANGE_RUBICON"` The - /// length of this field should be no more than 500 characters. Reference our - /// \[filter `LIST` requests\](/display-video/api/guides/how-tos/filters) - /// guide for more information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `displayName` (default) The default sorting order is ascending. To specify - /// descending order for a field, a suffix "desc" should be added to the field - /// name. For example, `displayName desc`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `200`. If - /// unspecified will default to `100`. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListGuaranteedOrders` method. If not specified, the - /// first page of results will be returned. - /// - /// [partnerId] - The ID of the partner that has access to the guaranteed - /// order. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListGuaranteedOrdersResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list({ - core.String? advertiserId, - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? partnerId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - const url_ = 'v1/guaranteedOrders'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListGuaranteedOrdersResponse.fromJson( - response_ as core.Map); - } - - /// Updates an existing guaranteed order. - /// - /// Returns the updated guaranteed order if successful. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [guaranteedOrderId] - Output only. The unique identifier of the guaranteed - /// order. The guaranteed order IDs have the format - /// `{exchange}-{legacy_guaranteed_order_id}`. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [advertiserId] - The ID of the advertiser that the request is being made - /// within. - /// - /// [partnerId] - The ID of the partner that the request is being made within. - /// - /// [updateMask] - Required. The mask to control which fields to update. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [GuaranteedOrder]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future patch( - GuaranteedOrder request, - core.String guaranteedOrderId, { - core.String? advertiserId, - core.String? partnerId, - core.String? updateMask, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (partnerId != null) 'partnerId': [partnerId], - if (updateMask != null) 'updateMask': [updateMask], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = - 'v1/guaranteedOrders/' + core.Uri.encodeFull('$guaranteedOrderId'); - - final response_ = await _requester.request( - url_, - 'PATCH', - body: body_, - queryParams: queryParams_, - ); - return GuaranteedOrder.fromJson( - response_ as core.Map); - } -} - -class InventorySourceGroupsResource { - final commons.ApiRequester _requester; - - InventorySourceGroupsAssignedInventorySourcesResource - get assignedInventorySources => - InventorySourceGroupsAssignedInventorySourcesResource(_requester); - - InventorySourceGroupsResource(commons.ApiRequester client) - : _requester = client; - - /// Creates a new inventory source group. - /// - /// Returns the newly created inventory source group if successful. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - The ID of the advertiser that owns the inventory source - /// group. The parent partner will not have access to this group. - /// - /// [partnerId] - The ID of the partner that owns the inventory source group. - /// Only this partner will have write access to this group. Only advertisers - /// to which this group is explicitly shared will have read access to this - /// group. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [InventorySourceGroup]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future create( - InventorySourceGroup request, { - core.String? advertiserId, - core.String? partnerId, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - const url_ = 'v1/inventorySourceGroups'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return InventorySourceGroup.fromJson( - response_ as core.Map); - } - - /// Deletes an inventory source group. - /// - /// Request parameters: - /// - /// [inventorySourceGroupId] - Required. The ID of the inventory source group - /// to delete. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [advertiserId] - The ID of the advertiser that owns the inventory source - /// group. The parent partner does not have access to this group. - /// - /// [partnerId] - The ID of the partner that owns the inventory source group. - /// Only this partner has write access to this group. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Empty]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future delete( - core.String inventorySourceGroupId, { - core.String? advertiserId, - core.String? partnerId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/inventorySourceGroups/' + - core.Uri.encodeFull('$inventorySourceGroupId'); - - final response_ = await _requester.request( - url_, - 'DELETE', - queryParams: queryParams_, - ); - return Empty.fromJson(response_ as core.Map); - } - - /// Gets an inventory source group. - /// - /// Request parameters: - /// - /// [inventorySourceGroupId] - Required. The ID of the inventory source group - /// to fetch. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [advertiserId] - The ID of the advertiser that has access to the inventory - /// source group. If an inventory source group is partner-owned, only - /// advertisers to which the group is explicitly shared can access the group. - /// - /// [partnerId] - The ID of the partner that has access to the inventory - /// source group. A partner cannot access an advertiser-owned inventory source - /// group. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [InventorySourceGroup]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String inventorySourceGroupId, { - core.String? advertiserId, - core.String? partnerId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/inventorySourceGroups/' + - core.Uri.encodeFull('$inventorySourceGroupId'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return InventorySourceGroup.fromJson( - response_ as core.Map); - } - - /// Lists inventory source groups that are accessible to the current user. - /// - /// The order is defined by the order_by parameter. - /// - /// Request parameters: - /// - /// [advertiserId] - The ID of the advertiser that has access to the inventory - /// source group. If an inventory source group is partner-owned, only - /// advertisers to which the group is explicitly shared can access the group. - /// - /// [filter] - Allows filtering by inventory source group fields. Supported - /// syntax: * Filter expressions are made up of one or more restrictions. * - /// Restrictions can be combined by the logical operator `OR`. * A restriction - /// has the form of `{field} {operator} {value}`. * All fields must use the - /// `EQUALS (=)` operator. Supported fields: * `inventorySourceGroupId` The - /// length of this field should be no more than 500 characters. Reference our - /// \[filter `LIST` requests\](/display-video/api/guides/how-tos/filters) - /// guide for more information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `displayName` (default) * `inventorySourceGroupId` The default sorting - /// order is ascending. To specify descending order for a field, a suffix - /// "desc" should be added to the field name. For example, `displayName desc`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `200`. If - /// unspecified will default to `100`. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListInventorySources` method. If not specified, the - /// first page of results will be returned. - /// - /// [partnerId] - The ID of the partner that has access to the inventory - /// source group. A partner cannot access advertiser-owned inventory source - /// groups. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListInventorySourceGroupsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list({ - core.String? advertiserId, - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? partnerId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - const url_ = 'v1/inventorySourceGroups'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListInventorySourceGroupsResponse.fromJson( - response_ as core.Map); - } - - /// Updates an inventory source group. - /// - /// Returns the updated inventory source group if successful. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [inventorySourceGroupId] - Output only. The unique ID of the inventory - /// source group. Assigned by the system. - /// - /// [advertiserId] - The ID of the advertiser that owns the inventory source - /// group. The parent partner does not have access to this group. - /// - /// [partnerId] - The ID of the partner that owns the inventory source group. - /// Only this partner has write access to this group. - /// - /// [updateMask] - Required. The mask to control which fields to update. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [InventorySourceGroup]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future patch( - InventorySourceGroup request, - core.String inventorySourceGroupId, { - core.String? advertiserId, - core.String? partnerId, - core.String? updateMask, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (partnerId != null) 'partnerId': [partnerId], - if (updateMask != null) 'updateMask': [updateMask], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/inventorySourceGroups/' + - commons.escapeVariable('$inventorySourceGroupId'); - - final response_ = await _requester.request( - url_, - 'PATCH', - body: body_, - queryParams: queryParams_, - ); - return InventorySourceGroup.fromJson( - response_ as core.Map); - } -} - -class InventorySourceGroupsAssignedInventorySourcesResource { - final commons.ApiRequester _requester; - - InventorySourceGroupsAssignedInventorySourcesResource( - commons.ApiRequester client) - : _requester = client; - - /// Bulk edits multiple assignments between inventory sources and a single - /// inventory source group. - /// - /// The operation will delete the assigned inventory sources provided in - /// BulkEditAssignedInventorySourcesRequest.deleted_assigned_inventory_sources - /// and then create the assigned inventory sources provided in - /// BulkEditAssignedInventorySourcesRequest.created_assigned_inventory_sources. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [inventorySourceGroupId] - Required. The ID of the inventory source group - /// to which the assignments are assigned. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [BulkEditAssignedInventorySourcesResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future bulkEdit( - BulkEditAssignedInventorySourcesRequest request, - core.String inventorySourceGroupId, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/inventorySourceGroups/' + - core.Uri.encodeFull('$inventorySourceGroupId') + - '/assignedInventorySources:bulkEdit'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return BulkEditAssignedInventorySourcesResponse.fromJson( - response_ as core.Map); - } - - /// Creates an assignment between an inventory source and an inventory source - /// group. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [inventorySourceGroupId] - Required. The ID of the inventory source group - /// to which the assignment will be assigned. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [advertiserId] - The ID of the advertiser that owns the parent inventory - /// source group. The parent partner will not have access to this assigned - /// inventory source. - /// - /// [partnerId] - The ID of the partner that owns the parent inventory source - /// group. Only this partner will have write access to this assigned inventory - /// source. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [AssignedInventorySource]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future create( - AssignedInventorySource request, - core.String inventorySourceGroupId, { - core.String? advertiserId, - core.String? partnerId, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/inventorySourceGroups/' + - core.Uri.encodeFull('$inventorySourceGroupId') + - '/assignedInventorySources'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return AssignedInventorySource.fromJson( - response_ as core.Map); - } - - /// Deletes the assignment between an inventory source and an inventory source - /// group. - /// - /// Request parameters: - /// - /// [inventorySourceGroupId] - Required. The ID of the inventory source group - /// to which this assignment is assigned. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [assignedInventorySourceId] - Required. The ID of the assigned inventory - /// source to delete. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [advertiserId] - The ID of the advertiser that owns the parent inventory - /// source group. The parent partner does not have access to this assigned - /// inventory source. - /// - /// [partnerId] - The ID of the partner that owns the parent inventory source - /// group. Only this partner has write access to this assigned inventory - /// source. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Empty]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future delete( - core.String inventorySourceGroupId, - core.String assignedInventorySourceId, { - core.String? advertiserId, - core.String? partnerId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/inventorySourceGroups/' + - core.Uri.encodeFull('$inventorySourceGroupId') + - '/assignedInventorySources/' + - core.Uri.encodeFull('$assignedInventorySourceId'); - - final response_ = await _requester.request( - url_, - 'DELETE', - queryParams: queryParams_, - ); - return Empty.fromJson(response_ as core.Map); - } - - /// Lists inventory sources assigned to an inventory source group. - /// - /// Request parameters: - /// - /// [inventorySourceGroupId] - Required. The ID of the inventory source group - /// to which these assignments are assigned. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [advertiserId] - The ID of the advertiser that has access to the - /// assignment. If the parent inventory source group is partner-owned, only - /// advertisers to which the parent group is explicitly shared can access the - /// assigned inventory source. - /// - /// [filter] - Allows filtering by assigned inventory source fields. Supported - /// syntax: * Filter expressions are made up of one or more restrictions. * - /// Restrictions can be combined by the `OR` logical operator. * A restriction - /// has the form of `{field} {operator} {value}`. * All fields must use the - /// `EQUALS (=)` operator. Supported fields: * `assignedInventorySourceId` The - /// length of this field should be no more than 500 characters. Reference our - /// \[filter `LIST` requests\](/display-video/api/guides/how-tos/filters) - /// guide for more information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `assignedInventorySourceId` (default) The default sorting order is - /// ascending. To specify descending order for a field, a suffix " desc" - /// should be added to the field name. Example: `assignedInventorySourceId - /// desc`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `100`. If - /// unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` - /// if an invalid value is specified. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListAssignedInventorySources` method. If not specified, - /// the first page of results will be returned. - /// - /// [partnerId] - The ID of the partner that has access to the assignment. If - /// the parent inventory source group is advertiser-owned, the assignment - /// cannot be accessed via a partner. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListAssignedInventorySourcesResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list( - core.String inventorySourceGroupId, { - core.String? advertiserId, - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? partnerId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/inventorySourceGroups/' + - core.Uri.encodeFull('$inventorySourceGroupId') + - '/assignedInventorySources'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListAssignedInventorySourcesResponse.fromJson( - response_ as core.Map); - } -} - -class InventorySourcesResource { - final commons.ApiRequester _requester; - - InventorySourcesResource(commons.ApiRequester client) : _requester = client; - - /// Creates a new inventory source. - /// - /// Returns the newly created inventory source if successful. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [advertiserId] - The ID of the advertiser that the request is being made - /// within. - /// - /// [partnerId] - The ID of the partner that the request is being made within. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [InventorySource]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future create( - InventorySource request, { - core.String? advertiserId, - core.String? partnerId, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - const url_ = 'v1/inventorySources'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return InventorySource.fromJson( - response_ as core.Map); - } - - /// Edits read/write accessors of an inventory source. - /// - /// Returns the updated read_write_accessors for the inventory source. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [inventorySourceId] - Required. The ID of inventory source to update. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [InventorySourceAccessors]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future editInventorySourceReadWriteAccessors( - EditInventorySourceReadWriteAccessorsRequest request, - core.String inventorySourceId, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/inventorySources/' + - core.Uri.encodeFull('$inventorySourceId') + - ':editInventorySourceReadWriteAccessors'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return InventorySourceAccessors.fromJson( - response_ as core.Map); - } - - /// Gets an inventory source. - /// - /// Request parameters: - /// - /// [inventorySourceId] - Required. The ID of the inventory source to fetch. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [partnerId] - Required. The ID of the DV360 partner to which the fetched - /// inventory source is permissioned. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [InventorySource]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String inventorySourceId, { - core.String? partnerId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = - 'v1/inventorySources/' + core.Uri.encodeFull('$inventorySourceId'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return InventorySource.fromJson( - response_ as core.Map); - } - - /// Lists inventory sources that are accessible to the current user. - /// - /// The order is defined by the order_by parameter. If a filter by - /// entity_status is not specified, inventory sources with entity status - /// `ENTITY_STATUS_ARCHIVED` will not be included in the results. - /// - /// Request parameters: - /// - /// [advertiserId] - The ID of the advertiser that has access to the inventory - /// source. - /// - /// [filter] - Allows filtering by inventory source fields. Supported syntax: - /// * Filter expressions are made up of one or more restrictions. * - /// Restrictions can be combined by `AND` or `OR` logical operators. A - /// sequence of restrictions implicitly uses `AND`. * A restriction has the - /// form of `{field} {operator} {value}`. * All fields must use the `EQUALS - /// (=)` operator. Supported fields: * `status.entityStatus` * `commitment` * - /// `deliveryMethod` * `rateDetails.rateType` * `exchange` Examples: * All - /// active inventory sources: `status.entityStatus="ENTITY_STATUS_ACTIVE"` * - /// Inventory sources belonging to Google Ad Manager or Rubicon exchanges: - /// `exchange="EXCHANGE_GOOGLE_AD_MANAGER" OR exchange="EXCHANGE_RUBICON"` The - /// length of this field should be no more than 500 characters. Reference our - /// \[filter `LIST` requests\](/display-video/api/guides/how-tos/filters) - /// guide for more information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `displayName` (default) The default sorting order is ascending. To specify - /// descending order for a field, a suffix "desc" should be added to the field - /// name. For example, `displayName desc`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `200`. If - /// unspecified will default to `100`. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListInventorySources` method. If not specified, the - /// first page of results will be returned. - /// - /// [partnerId] - The ID of the partner that has access to the inventory - /// source. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListInventorySourcesResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list({ - core.String? advertiserId, - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? partnerId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if (partnerId != null) 'partnerId': [partnerId], - if ($fields != null) 'fields': [$fields], - }; - - const url_ = 'v1/inventorySources'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListInventorySourcesResponse.fromJson( - response_ as core.Map); - } - - /// Updates an existing inventory source. - /// - /// Returns the updated inventory source if successful. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [inventorySourceId] - Output only. The unique ID of the inventory source. - /// Assigned by the system. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [advertiserId] - The ID of the advertiser that the request is being made - /// within. - /// - /// [partnerId] - The ID of the partner that the request is being made within. - /// - /// [updateMask] - Required. The mask to control which fields to update. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [InventorySource]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future patch( - InventorySource request, - core.String inventorySourceId, { - core.String? advertiserId, - core.String? partnerId, - core.String? updateMask, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (partnerId != null) 'partnerId': [partnerId], - if (updateMask != null) 'updateMask': [updateMask], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = - 'v1/inventorySources/' + core.Uri.encodeFull('$inventorySourceId'); - - final response_ = await _requester.request( - url_, - 'PATCH', - body: body_, - queryParams: queryParams_, - ); - return InventorySource.fromJson( - response_ as core.Map); - } -} - -class MediaResource { - final commons.ApiRequester _requester; - - MediaResource(commons.ApiRequester client) : _requester = client; - - /// Downloads media. - /// - /// Download is supported on the URI `/download/{resource_name=**}?alt=media.` - /// **Note**: Download requests will not be successful without including - /// `alt=media` query string. - /// - /// Request parameters: - /// - /// [resourceName] - Name of the media that is being downloaded. See - /// ReadRequest.resource_name. - /// Value must have pattern `^.*$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// [downloadOptions] - Options for downloading. A download can be either a - /// Metadata (default) or Media download. Partial Media downloads are possible - /// as well. - /// - /// Completes with a - /// - /// - [GoogleBytestreamMedia] for Metadata downloads (see [downloadOptions]). - /// - /// - [commons.Media] for Media downloads (see [downloadOptions]). - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future download( - core.String resourceName, { - core.String? $fields, - commons.DownloadOptions downloadOptions = commons.DownloadOptions.metadata, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'download/' + core.Uri.encodeFull('$resourceName'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - downloadOptions: downloadOptions, - ); - if (downloadOptions.isMetadataDownload) { - return GoogleBytestreamMedia.fromJson( - response_ as core.Map); - } else { - return response_ as commons.Media; - } - } - - /// Uploads media. - /// - /// Upload is supported on the URI - /// `/upload/media/{resource_name=**}?upload_type=media.` **Note**: Upload - /// requests will not be successful without including `upload_type=media` - /// query string. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [resourceName] - Name of the media that is being downloaded. See - /// ReadRequest.resource_name. - /// Value must have pattern `^.*$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// [uploadMedia] - The media to upload. - /// - /// Completes with a [GoogleBytestreamMedia]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future upload( - GoogleBytestreamMedia request, - core.String resourceName, { - core.String? $fields, - commons.Media? uploadMedia, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - core.String url_; - if (uploadMedia == null) { - url_ = 'media/' + core.Uri.encodeFull('$resourceName'); - } else { - url_ = '/upload/media/' + core.Uri.encodeFull('$resourceName'); - } - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - uploadMedia: uploadMedia, - uploadOptions: commons.UploadOptions.defaultOptions, - ); - return GoogleBytestreamMedia.fromJson( - response_ as core.Map); - } -} - -class PartnersResource { - final commons.ApiRequester _requester; - - PartnersChannelsResource get channels => PartnersChannelsResource(_requester); - PartnersTargetingTypesResource get targetingTypes => - PartnersTargetingTypesResource(_requester); - - PartnersResource(commons.ApiRequester client) : _requester = client; - - /// Bulk edits targeting options under a single partner. - /// - /// The operation will delete the assigned targeting options provided in - /// BulkEditPartnerAssignedTargetingOptionsRequest.deleteRequests and then - /// create the assigned targeting options provided in - /// BulkEditPartnerAssignedTargetingOptionsRequest.createRequests . - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [partnerId] - Required. The ID of the partner. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [BulkEditPartnerAssignedTargetingOptionsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future - bulkEditPartnerAssignedTargetingOptions( - BulkEditPartnerAssignedTargetingOptionsRequest request, - core.String partnerId, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/partners/' + - core.Uri.encodeFull('$partnerId') + - ':bulkEditPartnerAssignedTargetingOptions'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return BulkEditPartnerAssignedTargetingOptionsResponse.fromJson( - response_ as core.Map); - } - - /// Gets a partner. - /// - /// Request parameters: - /// - /// [partnerId] - Required. The ID of the partner to fetch. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Partner]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String partnerId, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/partners/' + core.Uri.encodeFull('$partnerId'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return Partner.fromJson(response_ as core.Map); - } - - /// Lists partners that are accessible to the current user. - /// - /// The order is defined by the order_by parameter. - /// - /// Request parameters: - /// - /// [filter] - Allows filtering by partner fields. Supported syntax: * Filter - /// expressions are made up of one or more restrictions. * Restrictions can be - /// combined by `AND` or `OR` logical operators. A sequence of restrictions - /// implicitly uses `AND`. * A restriction has the form of `{field} {operator} - /// {value}`. * All fields must use the `EQUALS (=)` operator. Supported - /// fields: * `entityStatus` Examples: * All active partners: - /// `entityStatus="ENTITY_STATUS_ACTIVE"` The length of this field should be - /// no more than 500 characters. Reference our \[filter `LIST` - /// requests\](/display-video/api/guides/how-tos/filters) guide for more - /// information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `displayName` The default sorting order is ascending. To specify - /// descending order for a field, a suffix "desc" should be added to the field - /// name. For example, `displayName desc`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `200`. If - /// unspecified will default to `100`. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListPartners` method. If not specified, the first page - /// of results will be returned. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListPartnersResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list({ - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if ($fields != null) 'fields': [$fields], - }; - - const url_ = 'v1/partners'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListPartnersResponse.fromJson( - response_ as core.Map); - } -} - -class PartnersChannelsResource { - final commons.ApiRequester _requester; - - PartnersChannelsSitesResource get sites => - PartnersChannelsSitesResource(_requester); - - PartnersChannelsResource(commons.ApiRequester client) : _requester = client; - - /// Creates a new channel. - /// - /// Returns the newly created channel if successful. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [partnerId] - The ID of the partner that owns the created channel. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [advertiserId] - The ID of the advertiser that owns the created channel. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Channel]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future create( - Channel request, - core.String partnerId, { - core.String? advertiserId, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = - 'v1/partners/' + core.Uri.encodeFull('$partnerId') + '/channels'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return Channel.fromJson(response_ as core.Map); - } - - /// Gets a channel for a partner or advertiser. - /// - /// Request parameters: - /// - /// [partnerId] - The ID of the partner that owns the fetched channel. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [channelId] - Required. The ID of the channel to fetch. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [advertiserId] - The ID of the advertiser that owns the fetched channel. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Channel]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String partnerId, - core.String channelId, { - core.String? advertiserId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/partners/' + - core.Uri.encodeFull('$partnerId') + - '/channels/' + - core.Uri.encodeFull('$channelId'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return Channel.fromJson(response_ as core.Map); - } - - /// Lists channels for a partner or advertiser. - /// - /// Request parameters: - /// - /// [partnerId] - The ID of the partner that owns the channels. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [advertiserId] - The ID of the advertiser that owns the channels. - /// - /// [filter] - Allows filtering by channel fields. Supported syntax: * Filter - /// expressions for channel can only contain at most one restriction. * A - /// restriction has the form of `{field} {operator} {value}`. * All fields - /// must use the `HAS (:)` operator. Supported fields: * `displayName` - /// Examples: * All channels for which the display name contains "google": - /// `displayName : "google"`. The length of this field should be no more than - /// 500 characters. Reference our \[filter `LIST` - /// requests\](/display-video/api/guides/how-tos/filters) guide for more - /// information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `displayName` (default) * `channelId` The default sorting order is - /// ascending. To specify descending order for a field, a suffix " desc" - /// should be added to the field name. Example: `displayName desc`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `200`. If - /// unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` - /// if an invalid value is specified. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListChannels` method. If not specified, the first page - /// of results will be returned. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListChannelsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list( - core.String partnerId, { - core.String? advertiserId, - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = - 'v1/partners/' + core.Uri.encodeFull('$partnerId') + '/channels'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListChannelsResponse.fromJson( - response_ as core.Map); - } - - /// Updates a channel. - /// - /// Returns the updated channel if successful. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [partnerId] - The ID of the partner that owns the created channel. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [channelId] - Output only. The unique ID of the channel. Assigned by the - /// system. - /// - /// [advertiserId] - The ID of the advertiser that owns the created channel. - /// - /// [updateMask] - Required. The mask to control which fields to update. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Channel]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future patch( - Channel request, - core.String partnerId, - core.String channelId, { - core.String? advertiserId, - core.String? updateMask, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (updateMask != null) 'updateMask': [updateMask], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/partners/' + - core.Uri.encodeFull('$partnerId') + - '/channels/' + - commons.escapeVariable('$channelId'); - - final response_ = await _requester.request( - url_, - 'PATCH', - body: body_, - queryParams: queryParams_, - ); - return Channel.fromJson(response_ as core.Map); - } -} - -class PartnersChannelsSitesResource { - final commons.ApiRequester _requester; - - PartnersChannelsSitesResource(commons.ApiRequester client) - : _requester = client; - - /// Bulk edits sites under a single channel. - /// - /// The operation will delete the sites provided in - /// BulkEditSitesRequest.deleted_sites and then create the sites provided in - /// BulkEditSitesRequest.created_sites. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [partnerId] - The ID of the partner that owns the parent channel. - /// - /// [channelId] - Required. The ID of the parent channel to which the sites - /// belong. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [BulkEditSitesResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future bulkEdit( - BulkEditSitesRequest request, - core.String partnerId, - core.String channelId, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/partners/' + - commons.escapeVariable('$partnerId') + - '/channels/' + - core.Uri.encodeFull('$channelId') + - '/sites:bulkEdit'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return BulkEditSitesResponse.fromJson( - response_ as core.Map); - } - - /// Creates a site in a channel. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [partnerId] - The ID of the partner that owns the parent channel. - /// - /// [channelId] - Required. The ID of the parent channel in which the site - /// will be created. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [advertiserId] - The ID of the advertiser that owns the parent channel. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Site]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future create( - Site request, - core.String partnerId, - core.String channelId, { - core.String? advertiserId, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/partners/' + - commons.escapeVariable('$partnerId') + - '/channels/' + - core.Uri.encodeFull('$channelId') + - '/sites'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return Site.fromJson(response_ as core.Map); - } - - /// Deletes a site from a channel. - /// - /// Request parameters: - /// - /// [partnerId] - The ID of the partner that owns the parent channel. - /// - /// [channelId] - Required. The ID of the parent channel to which the site - /// belongs. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [urlOrAppId] - Required. The URL or app ID of the site to delete. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [advertiserId] - The ID of the advertiser that owns the parent channel. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Empty]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future delete( - core.String partnerId, - core.String channelId, - core.String urlOrAppId, { - core.String? advertiserId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/partners/' + - commons.escapeVariable('$partnerId') + - '/channels/' + - core.Uri.encodeFull('$channelId') + - '/sites/' + - core.Uri.encodeFull('$urlOrAppId'); - - final response_ = await _requester.request( - url_, - 'DELETE', - queryParams: queryParams_, - ); - return Empty.fromJson(response_ as core.Map); - } - - /// Lists sites in a channel. - /// - /// Request parameters: - /// - /// [partnerId] - The ID of the partner that owns the parent channel. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [channelId] - Required. The ID of the parent channel to which the - /// requested sites belong. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [advertiserId] - The ID of the advertiser that owns the parent channel. - /// - /// [filter] - Allows filtering by site fields. Supported syntax: * Filter - /// expressions for site retrieval can only contain at most one restriction. * - /// A restriction has the form of `{field} {operator} {value}`. * All fields - /// must use the `HAS (:)` operator. Supported fields: * `urlOrAppId` - /// Examples: * All sites for which the URL or app ID contains "google": - /// `urlOrAppId : "google"` The length of this field should be no more than - /// 500 characters. Reference our \[filter `LIST` - /// requests\](/display-video/api/guides/how-tos/filters) guide for more - /// information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `urlOrAppId` (default) The default sorting order is ascending. To specify - /// descending order for a field, a suffix " desc" should be added to the - /// field name. Example: `urlOrAppId desc`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `10000`. If - /// unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` - /// if an invalid value is specified. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListSites` method. If not specified, the first page of - /// results will be returned. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListSitesResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list( - core.String partnerId, - core.String channelId, { - core.String? advertiserId, - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/partners/' + - core.Uri.encodeFull('$partnerId') + - '/channels/' + - core.Uri.encodeFull('$channelId') + - '/sites'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListSitesResponse.fromJson( - response_ as core.Map); - } - - /// Replaces all of the sites under a single channel. - /// - /// The operation will replace the sites under a channel with the sites - /// provided in ReplaceSitesRequest.new_sites. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [partnerId] - The ID of the partner that owns the parent channel. - /// - /// [channelId] - Required. The ID of the parent channel whose sites will be - /// replaced. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ReplaceSitesResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future replace( - ReplaceSitesRequest request, - core.String partnerId, - core.String channelId, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/partners/' + - commons.escapeVariable('$partnerId') + - '/channels/' + - core.Uri.encodeFull('$channelId') + - '/sites:replace'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return ReplaceSitesResponse.fromJson( - response_ as core.Map); - } -} - -class PartnersTargetingTypesResource { - final commons.ApiRequester _requester; - - PartnersTargetingTypesAssignedTargetingOptionsResource - get assignedTargetingOptions => - PartnersTargetingTypesAssignedTargetingOptionsResource(_requester); - - PartnersTargetingTypesResource(commons.ApiRequester client) - : _requester = client; -} - -class PartnersTargetingTypesAssignedTargetingOptionsResource { - final commons.ApiRequester _requester; - - PartnersTargetingTypesAssignedTargetingOptionsResource( - commons.ApiRequester client) - : _requester = client; - - /// Assigns a targeting option to a partner. - /// - /// Returns the assigned targeting option if successful. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [partnerId] - Required. The ID of the partner. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [targetingType] - Required. Identifies the type of this assigned targeting - /// option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` - /// Value must have pattern `^\[^/\]+$`. - /// Possible string values are: - /// - "TARGETING_TYPE_UNSPECIFIED" : Default value when type is not specified - /// or is unknown in this version. - /// - "TARGETING_TYPE_CHANNEL" : Target a channel (a custom group of related - /// websites or apps). - /// - "TARGETING_TYPE_APP_CATEGORY" : Target an app category (for example, - /// education or puzzle games). - /// - "TARGETING_TYPE_APP" : Target a specific app (for example, Angry Birds). - /// - "TARGETING_TYPE_URL" : Target a specific url (for example, quora.com). - /// - "TARGETING_TYPE_DAY_AND_TIME" : Target ads during a chosen time period - /// on a specific day. - /// - "TARGETING_TYPE_AGE_RANGE" : Target ads to a specific age range (for - /// example, 18-24). - /// - "TARGETING_TYPE_REGIONAL_LOCATION_LIST" : Target ads to the specified - /// regions on a regional location list. - /// - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" : Target ads to the specified - /// points of interest on a proximity location list. - /// - "TARGETING_TYPE_GENDER" : Target ads to a specific gender (for example, - /// female or male). - /// - "TARGETING_TYPE_VIDEO_PLAYER_SIZE" : Target a specific video player size - /// for video ads. - /// - "TARGETING_TYPE_USER_REWARDED_CONTENT" : Target user rewarded content - /// for video ads. - /// - "TARGETING_TYPE_PARENTAL_STATUS" : Target ads to a specific parental - /// status (for example, parent or not a parent). - /// - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" : Target video or audio ads - /// in a specific content instream position (for example, pre-roll, mid-roll, - /// or post-roll). - /// - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" : Target ads in a specific - /// content outstream position. - /// - "TARGETING_TYPE_DEVICE_TYPE" : Target ads to a specific device type (for - /// example, tablet or connected TV). - /// - "TARGETING_TYPE_AUDIENCE_GROUP" : Target ads to an audience or groups of - /// audiences. Singleton field, at most one can exist on a single Lineitem at - /// a time. - /// - "TARGETING_TYPE_BROWSER" : Target ads to specific web browsers (for - /// example, Chrome). - /// - "TARGETING_TYPE_HOUSEHOLD_INCOME" : Target ads to a specific household - /// income range (for example, top 10%). - /// - "TARGETING_TYPE_ON_SCREEN_POSITION" : Target ads in a specific on screen - /// position. - /// - "TARGETING_TYPE_THIRD_PARTY_VERIFIER" : Filter web sites through third - /// party verification (for example, IAS or DoubleVerify). - /// - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" : Filter web sites by - /// specific digital content label ratings (for example, DL-MA: suitable only - /// for mature audiences). - /// - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" : Filter website content - /// by sensitive categories (for example, adult). - /// - "TARGETING_TYPE_ENVIRONMENT" : Target ads to a specific environment (for - /// example, web or app). - /// - "TARGETING_TYPE_CARRIER_AND_ISP" : Target ads to a specific network - /// carrier or internet service provider (ISP) (for example, Comcast or - /// Orange). - /// - "TARGETING_TYPE_OPERATING_SYSTEM" : Target ads to a specific operating - /// system (for example, macOS). - /// - "TARGETING_TYPE_DEVICE_MAKE_MODEL" : Target ads to a specific device - /// make or model (for example, Roku or Samsung). - /// - "TARGETING_TYPE_KEYWORD" : Target ads to a specific keyword (for - /// example, dog or retriever). - /// - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" : Target ads to a specific - /// negative keyword list. - /// - "TARGETING_TYPE_VIEWABILITY" : Target ads to a specific viewability (for - /// example, 80% viewable). - /// - "TARGETING_TYPE_CATEGORY" : Target ads to a specific content category - /// (for example, arts & entertainment). - /// - "TARGETING_TYPE_INVENTORY_SOURCE" : Purchase impressions from specific - /// deals and auction packages. - /// - "TARGETING_TYPE_LANGUAGE" : Target ads to a specific language (for - /// example, English or Japanese). - /// - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" : Target ads to ads.txt - /// authorized sellers. If no targeting option of this type is assigned, the - /// resource uses the "Authorized Direct Sellers and Resellers" option by - /// default. - /// - "TARGETING_TYPE_GEO_REGION" : Target ads to a specific regional location - /// (for example, a city or state). - /// - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" : Purchase impressions from a - /// group of deals and auction packages. - /// - "TARGETING_TYPE_EXCHANGE" : Purchase impressions from specific - /// exchanges. - /// - "TARGETING_TYPE_SUB_EXCHANGE" : Purchase impressions from specific - /// sub-exchanges. - /// - "TARGETING_TYPE_POI" : Target ads around a specific point of interest, - /// such as a notable building, a street address, or latitude/longitude - /// coordinates. - /// - "TARGETING_TYPE_BUSINESS_CHAIN" : Target ads around locations of a - /// business chain within a specific geo region. - /// - "TARGETING_TYPE_CONTENT_DURATION" : Target ads to a specific video - /// content duration. - /// - "TARGETING_TYPE_CONTENT_STREAM_TYPE" : Target ads to a specific video - /// content stream type. - /// - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" : Target ads to a specific - /// native content position. - /// - "TARGETING_TYPE_OMID" : Target ads in an Open Measurement enabled - /// inventory. - /// - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" : Target ads to a specific audio - /// content type. - /// - "TARGETING_TYPE_CONTENT_GENRE" : Target ads to a specific content genre. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [AssignedTargetingOption]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future create( - AssignedTargetingOption request, - core.String partnerId, - core.String targetingType, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/partners/' + - core.Uri.encodeFull('$partnerId') + - '/targetingTypes/' + - core.Uri.encodeFull('$targetingType') + - '/assignedTargetingOptions'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return AssignedTargetingOption.fromJson( - response_ as core.Map); - } - - /// Deletes an assigned targeting option from a partner. - /// - /// Request parameters: - /// - /// [partnerId] - Required. The ID of the partner. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [targetingType] - Required. Identifies the type of this assigned targeting - /// option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` - /// Value must have pattern `^\[^/\]+$`. - /// Possible string values are: - /// - "TARGETING_TYPE_UNSPECIFIED" : Default value when type is not specified - /// or is unknown in this version. - /// - "TARGETING_TYPE_CHANNEL" : Target a channel (a custom group of related - /// websites or apps). - /// - "TARGETING_TYPE_APP_CATEGORY" : Target an app category (for example, - /// education or puzzle games). - /// - "TARGETING_TYPE_APP" : Target a specific app (for example, Angry Birds). - /// - "TARGETING_TYPE_URL" : Target a specific url (for example, quora.com). - /// - "TARGETING_TYPE_DAY_AND_TIME" : Target ads during a chosen time period - /// on a specific day. - /// - "TARGETING_TYPE_AGE_RANGE" : Target ads to a specific age range (for - /// example, 18-24). - /// - "TARGETING_TYPE_REGIONAL_LOCATION_LIST" : Target ads to the specified - /// regions on a regional location list. - /// - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" : Target ads to the specified - /// points of interest on a proximity location list. - /// - "TARGETING_TYPE_GENDER" : Target ads to a specific gender (for example, - /// female or male). - /// - "TARGETING_TYPE_VIDEO_PLAYER_SIZE" : Target a specific video player size - /// for video ads. - /// - "TARGETING_TYPE_USER_REWARDED_CONTENT" : Target user rewarded content - /// for video ads. - /// - "TARGETING_TYPE_PARENTAL_STATUS" : Target ads to a specific parental - /// status (for example, parent or not a parent). - /// - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" : Target video or audio ads - /// in a specific content instream position (for example, pre-roll, mid-roll, - /// or post-roll). - /// - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" : Target ads in a specific - /// content outstream position. - /// - "TARGETING_TYPE_DEVICE_TYPE" : Target ads to a specific device type (for - /// example, tablet or connected TV). - /// - "TARGETING_TYPE_AUDIENCE_GROUP" : Target ads to an audience or groups of - /// audiences. Singleton field, at most one can exist on a single Lineitem at - /// a time. - /// - "TARGETING_TYPE_BROWSER" : Target ads to specific web browsers (for - /// example, Chrome). - /// - "TARGETING_TYPE_HOUSEHOLD_INCOME" : Target ads to a specific household - /// income range (for example, top 10%). - /// - "TARGETING_TYPE_ON_SCREEN_POSITION" : Target ads in a specific on screen - /// position. - /// - "TARGETING_TYPE_THIRD_PARTY_VERIFIER" : Filter web sites through third - /// party verification (for example, IAS or DoubleVerify). - /// - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" : Filter web sites by - /// specific digital content label ratings (for example, DL-MA: suitable only - /// for mature audiences). - /// - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" : Filter website content - /// by sensitive categories (for example, adult). - /// - "TARGETING_TYPE_ENVIRONMENT" : Target ads to a specific environment (for - /// example, web or app). - /// - "TARGETING_TYPE_CARRIER_AND_ISP" : Target ads to a specific network - /// carrier or internet service provider (ISP) (for example, Comcast or - /// Orange). - /// - "TARGETING_TYPE_OPERATING_SYSTEM" : Target ads to a specific operating - /// system (for example, macOS). - /// - "TARGETING_TYPE_DEVICE_MAKE_MODEL" : Target ads to a specific device - /// make or model (for example, Roku or Samsung). - /// - "TARGETING_TYPE_KEYWORD" : Target ads to a specific keyword (for - /// example, dog or retriever). - /// - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" : Target ads to a specific - /// negative keyword list. - /// - "TARGETING_TYPE_VIEWABILITY" : Target ads to a specific viewability (for - /// example, 80% viewable). - /// - "TARGETING_TYPE_CATEGORY" : Target ads to a specific content category - /// (for example, arts & entertainment). - /// - "TARGETING_TYPE_INVENTORY_SOURCE" : Purchase impressions from specific - /// deals and auction packages. - /// - "TARGETING_TYPE_LANGUAGE" : Target ads to a specific language (for - /// example, English or Japanese). - /// - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" : Target ads to ads.txt - /// authorized sellers. If no targeting option of this type is assigned, the - /// resource uses the "Authorized Direct Sellers and Resellers" option by - /// default. - /// - "TARGETING_TYPE_GEO_REGION" : Target ads to a specific regional location - /// (for example, a city or state). - /// - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" : Purchase impressions from a - /// group of deals and auction packages. - /// - "TARGETING_TYPE_EXCHANGE" : Purchase impressions from specific - /// exchanges. - /// - "TARGETING_TYPE_SUB_EXCHANGE" : Purchase impressions from specific - /// sub-exchanges. - /// - "TARGETING_TYPE_POI" : Target ads around a specific point of interest, - /// such as a notable building, a street address, or latitude/longitude - /// coordinates. - /// - "TARGETING_TYPE_BUSINESS_CHAIN" : Target ads around locations of a - /// business chain within a specific geo region. - /// - "TARGETING_TYPE_CONTENT_DURATION" : Target ads to a specific video - /// content duration. - /// - "TARGETING_TYPE_CONTENT_STREAM_TYPE" : Target ads to a specific video - /// content stream type. - /// - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" : Target ads to a specific - /// native content position. - /// - "TARGETING_TYPE_OMID" : Target ads in an Open Measurement enabled - /// inventory. - /// - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" : Target ads to a specific audio - /// content type. - /// - "TARGETING_TYPE_CONTENT_GENRE" : Target ads to a specific content genre. - /// - /// [assignedTargetingOptionId] - Required. The ID of the assigned targeting - /// option to delete. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Empty]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future delete( - core.String partnerId, - core.String targetingType, - core.String assignedTargetingOptionId, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/partners/' + - core.Uri.encodeFull('$partnerId') + - '/targetingTypes/' + - core.Uri.encodeFull('$targetingType') + - '/assignedTargetingOptions/' + - core.Uri.encodeFull('$assignedTargetingOptionId'); - - final response_ = await _requester.request( - url_, - 'DELETE', - queryParams: queryParams_, - ); - return Empty.fromJson(response_ as core.Map); - } - - /// Gets a single targeting option assigned to a partner. - /// - /// Request parameters: - /// - /// [partnerId] - Required. The ID of the partner. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [targetingType] - Required. Identifies the type of this assigned targeting - /// option. Supported targeting types: * `TARGETING_TYPE_CHANNEL` - /// Value must have pattern `^\[^/\]+$`. - /// Possible string values are: - /// - "TARGETING_TYPE_UNSPECIFIED" : Default value when type is not specified - /// or is unknown in this version. - /// - "TARGETING_TYPE_CHANNEL" : Target a channel (a custom group of related - /// websites or apps). - /// - "TARGETING_TYPE_APP_CATEGORY" : Target an app category (for example, - /// education or puzzle games). - /// - "TARGETING_TYPE_APP" : Target a specific app (for example, Angry Birds). - /// - "TARGETING_TYPE_URL" : Target a specific url (for example, quora.com). - /// - "TARGETING_TYPE_DAY_AND_TIME" : Target ads during a chosen time period - /// on a specific day. - /// - "TARGETING_TYPE_AGE_RANGE" : Target ads to a specific age range (for - /// example, 18-24). - /// - "TARGETING_TYPE_REGIONAL_LOCATION_LIST" : Target ads to the specified - /// regions on a regional location list. - /// - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" : Target ads to the specified - /// points of interest on a proximity location list. - /// - "TARGETING_TYPE_GENDER" : Target ads to a specific gender (for example, - /// female or male). - /// - "TARGETING_TYPE_VIDEO_PLAYER_SIZE" : Target a specific video player size - /// for video ads. - /// - "TARGETING_TYPE_USER_REWARDED_CONTENT" : Target user rewarded content - /// for video ads. - /// - "TARGETING_TYPE_PARENTAL_STATUS" : Target ads to a specific parental - /// status (for example, parent or not a parent). - /// - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" : Target video or audio ads - /// in a specific content instream position (for example, pre-roll, mid-roll, - /// or post-roll). - /// - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" : Target ads in a specific - /// content outstream position. - /// - "TARGETING_TYPE_DEVICE_TYPE" : Target ads to a specific device type (for - /// example, tablet or connected TV). - /// - "TARGETING_TYPE_AUDIENCE_GROUP" : Target ads to an audience or groups of - /// audiences. Singleton field, at most one can exist on a single Lineitem at - /// a time. - /// - "TARGETING_TYPE_BROWSER" : Target ads to specific web browsers (for - /// example, Chrome). - /// - "TARGETING_TYPE_HOUSEHOLD_INCOME" : Target ads to a specific household - /// income range (for example, top 10%). - /// - "TARGETING_TYPE_ON_SCREEN_POSITION" : Target ads in a specific on screen - /// position. - /// - "TARGETING_TYPE_THIRD_PARTY_VERIFIER" : Filter web sites through third - /// party verification (for example, IAS or DoubleVerify). - /// - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" : Filter web sites by - /// specific digital content label ratings (for example, DL-MA: suitable only - /// for mature audiences). - /// - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" : Filter website content - /// by sensitive categories (for example, adult). - /// - "TARGETING_TYPE_ENVIRONMENT" : Target ads to a specific environment (for - /// example, web or app). - /// - "TARGETING_TYPE_CARRIER_AND_ISP" : Target ads to a specific network - /// carrier or internet service provider (ISP) (for example, Comcast or - /// Orange). - /// - "TARGETING_TYPE_OPERATING_SYSTEM" : Target ads to a specific operating - /// system (for example, macOS). - /// - "TARGETING_TYPE_DEVICE_MAKE_MODEL" : Target ads to a specific device - /// make or model (for example, Roku or Samsung). - /// - "TARGETING_TYPE_KEYWORD" : Target ads to a specific keyword (for - /// example, dog or retriever). - /// - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" : Target ads to a specific - /// negative keyword list. - /// - "TARGETING_TYPE_VIEWABILITY" : Target ads to a specific viewability (for - /// example, 80% viewable). - /// - "TARGETING_TYPE_CATEGORY" : Target ads to a specific content category - /// (for example, arts & entertainment). - /// - "TARGETING_TYPE_INVENTORY_SOURCE" : Purchase impressions from specific - /// deals and auction packages. - /// - "TARGETING_TYPE_LANGUAGE" : Target ads to a specific language (for - /// example, English or Japanese). - /// - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" : Target ads to ads.txt - /// authorized sellers. If no targeting option of this type is assigned, the - /// resource uses the "Authorized Direct Sellers and Resellers" option by - /// default. - /// - "TARGETING_TYPE_GEO_REGION" : Target ads to a specific regional location - /// (for example, a city or state). - /// - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" : Purchase impressions from a - /// group of deals and auction packages. - /// - "TARGETING_TYPE_EXCHANGE" : Purchase impressions from specific - /// exchanges. - /// - "TARGETING_TYPE_SUB_EXCHANGE" : Purchase impressions from specific - /// sub-exchanges. - /// - "TARGETING_TYPE_POI" : Target ads around a specific point of interest, - /// such as a notable building, a street address, or latitude/longitude - /// coordinates. - /// - "TARGETING_TYPE_BUSINESS_CHAIN" : Target ads around locations of a - /// business chain within a specific geo region. - /// - "TARGETING_TYPE_CONTENT_DURATION" : Target ads to a specific video - /// content duration. - /// - "TARGETING_TYPE_CONTENT_STREAM_TYPE" : Target ads to a specific video - /// content stream type. - /// - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" : Target ads to a specific - /// native content position. - /// - "TARGETING_TYPE_OMID" : Target ads in an Open Measurement enabled - /// inventory. - /// - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" : Target ads to a specific audio - /// content type. - /// - "TARGETING_TYPE_CONTENT_GENRE" : Target ads to a specific content genre. - /// - /// [assignedTargetingOptionId] - Required. An identifier unique to the - /// targeting type in this partner that identifies the assigned targeting - /// option being requested. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [AssignedTargetingOption]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String partnerId, - core.String targetingType, - core.String assignedTargetingOptionId, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/partners/' + - core.Uri.encodeFull('$partnerId') + - '/targetingTypes/' + - core.Uri.encodeFull('$targetingType') + - '/assignedTargetingOptions/' + - core.Uri.encodeFull('$assignedTargetingOptionId'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return AssignedTargetingOption.fromJson( - response_ as core.Map); - } - - /// Lists the targeting options assigned to a partner. - /// - /// Request parameters: - /// - /// [partnerId] - Required. The ID of the partner. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [targetingType] - Required. Identifies the type of assigned targeting - /// options to list. Supported targeting types: * `TARGETING_TYPE_CHANNEL` - /// Value must have pattern `^\[^/\]+$`. - /// Possible string values are: - /// - "TARGETING_TYPE_UNSPECIFIED" : Default value when type is not specified - /// or is unknown in this version. - /// - "TARGETING_TYPE_CHANNEL" : Target a channel (a custom group of related - /// websites or apps). - /// - "TARGETING_TYPE_APP_CATEGORY" : Target an app category (for example, - /// education or puzzle games). - /// - "TARGETING_TYPE_APP" : Target a specific app (for example, Angry Birds). - /// - "TARGETING_TYPE_URL" : Target a specific url (for example, quora.com). - /// - "TARGETING_TYPE_DAY_AND_TIME" : Target ads during a chosen time period - /// on a specific day. - /// - "TARGETING_TYPE_AGE_RANGE" : Target ads to a specific age range (for - /// example, 18-24). - /// - "TARGETING_TYPE_REGIONAL_LOCATION_LIST" : Target ads to the specified - /// regions on a regional location list. - /// - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" : Target ads to the specified - /// points of interest on a proximity location list. - /// - "TARGETING_TYPE_GENDER" : Target ads to a specific gender (for example, - /// female or male). - /// - "TARGETING_TYPE_VIDEO_PLAYER_SIZE" : Target a specific video player size - /// for video ads. - /// - "TARGETING_TYPE_USER_REWARDED_CONTENT" : Target user rewarded content - /// for video ads. - /// - "TARGETING_TYPE_PARENTAL_STATUS" : Target ads to a specific parental - /// status (for example, parent or not a parent). - /// - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" : Target video or audio ads - /// in a specific content instream position (for example, pre-roll, mid-roll, - /// or post-roll). - /// - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" : Target ads in a specific - /// content outstream position. - /// - "TARGETING_TYPE_DEVICE_TYPE" : Target ads to a specific device type (for - /// example, tablet or connected TV). - /// - "TARGETING_TYPE_AUDIENCE_GROUP" : Target ads to an audience or groups of - /// audiences. Singleton field, at most one can exist on a single Lineitem at - /// a time. - /// - "TARGETING_TYPE_BROWSER" : Target ads to specific web browsers (for - /// example, Chrome). - /// - "TARGETING_TYPE_HOUSEHOLD_INCOME" : Target ads to a specific household - /// income range (for example, top 10%). - /// - "TARGETING_TYPE_ON_SCREEN_POSITION" : Target ads in a specific on screen - /// position. - /// - "TARGETING_TYPE_THIRD_PARTY_VERIFIER" : Filter web sites through third - /// party verification (for example, IAS or DoubleVerify). - /// - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" : Filter web sites by - /// specific digital content label ratings (for example, DL-MA: suitable only - /// for mature audiences). - /// - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" : Filter website content - /// by sensitive categories (for example, adult). - /// - "TARGETING_TYPE_ENVIRONMENT" : Target ads to a specific environment (for - /// example, web or app). - /// - "TARGETING_TYPE_CARRIER_AND_ISP" : Target ads to a specific network - /// carrier or internet service provider (ISP) (for example, Comcast or - /// Orange). - /// - "TARGETING_TYPE_OPERATING_SYSTEM" : Target ads to a specific operating - /// system (for example, macOS). - /// - "TARGETING_TYPE_DEVICE_MAKE_MODEL" : Target ads to a specific device - /// make or model (for example, Roku or Samsung). - /// - "TARGETING_TYPE_KEYWORD" : Target ads to a specific keyword (for - /// example, dog or retriever). - /// - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" : Target ads to a specific - /// negative keyword list. - /// - "TARGETING_TYPE_VIEWABILITY" : Target ads to a specific viewability (for - /// example, 80% viewable). - /// - "TARGETING_TYPE_CATEGORY" : Target ads to a specific content category - /// (for example, arts & entertainment). - /// - "TARGETING_TYPE_INVENTORY_SOURCE" : Purchase impressions from specific - /// deals and auction packages. - /// - "TARGETING_TYPE_LANGUAGE" : Target ads to a specific language (for - /// example, English or Japanese). - /// - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" : Target ads to ads.txt - /// authorized sellers. If no targeting option of this type is assigned, the - /// resource uses the "Authorized Direct Sellers and Resellers" option by - /// default. - /// - "TARGETING_TYPE_GEO_REGION" : Target ads to a specific regional location - /// (for example, a city or state). - /// - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" : Purchase impressions from a - /// group of deals and auction packages. - /// - "TARGETING_TYPE_EXCHANGE" : Purchase impressions from specific - /// exchanges. - /// - "TARGETING_TYPE_SUB_EXCHANGE" : Purchase impressions from specific - /// sub-exchanges. - /// - "TARGETING_TYPE_POI" : Target ads around a specific point of interest, - /// such as a notable building, a street address, or latitude/longitude - /// coordinates. - /// - "TARGETING_TYPE_BUSINESS_CHAIN" : Target ads around locations of a - /// business chain within a specific geo region. - /// - "TARGETING_TYPE_CONTENT_DURATION" : Target ads to a specific video - /// content duration. - /// - "TARGETING_TYPE_CONTENT_STREAM_TYPE" : Target ads to a specific video - /// content stream type. - /// - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" : Target ads to a specific - /// native content position. - /// - "TARGETING_TYPE_OMID" : Target ads in an Open Measurement enabled - /// inventory. - /// - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" : Target ads to a specific audio - /// content type. - /// - "TARGETING_TYPE_CONTENT_GENRE" : Target ads to a specific content genre. - /// - /// [filter] - Allows filtering by assigned targeting option fields. Supported - /// syntax: * Filter expressions are made up of one or more restrictions. * - /// Restrictions can be combined by the logical operator `OR`. * A restriction - /// has the form of `{field} {operator} {value}`. * All fields must use the - /// `EQUALS (=)` operator. Supported fields: * `assignedTargetingOptionId` - /// Examples: * `AssignedTargetingOption` resource with ID 123456: - /// `assignedTargetingOptionId="123456"` The length of this field should be no - /// more than 500 characters. Reference our \[filter `LIST` - /// requests\](/display-video/api/guides/how-tos/filters) guide for more - /// information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `assignedTargetingOptionId` (default) The default sorting order is - /// ascending. To specify descending order for a field, a suffix "desc" should - /// be added to the field name. Example: `assignedTargetingOptionId desc`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `200`. If - /// unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` - /// if an invalid value is specified. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListPartnerAssignedTargetingOptions` method. If not - /// specified, the first page of results will be returned. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListPartnerAssignedTargetingOptionsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list( - core.String partnerId, - core.String targetingType, { - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/partners/' + - core.Uri.encodeFull('$partnerId') + - '/targetingTypes/' + - core.Uri.encodeFull('$targetingType') + - '/assignedTargetingOptions'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListPartnerAssignedTargetingOptionsResponse.fromJson( - response_ as core.Map); - } -} - -class SdfdownloadtasksResource { - final commons.ApiRequester _requester; - - SdfdownloadtasksOperationsResource get operations => - SdfdownloadtasksOperationsResource(_requester); - - SdfdownloadtasksResource(commons.ApiRequester client) : _requester = client; - - /// Creates an SDF Download Task. - /// - /// Returns an Operation. An SDF Download Task is a long-running, asynchronous - /// operation. The metadata type of this operation is SdfDownloadTaskMetadata. - /// If the request is successful, the response type of the operation is - /// SdfDownloadTask. The response will not include the download files, which - /// must be retrieved with media.download. The state of operation can be - /// retrieved with sdfdownloadtask.operations.get. Any errors can be found in - /// the error.message. Note that error.details is expected to be empty. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Operation]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future create( - CreateSdfDownloadTaskRequest request, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - const url_ = 'v1/sdfdownloadtasks'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return Operation.fromJson(response_ as core.Map); - } -} - -class SdfdownloadtasksOperationsResource { - final commons.ApiRequester _requester; - - SdfdownloadtasksOperationsResource(commons.ApiRequester client) - : _requester = client; - - /// Gets the latest state of an asynchronous SDF download task operation. - /// - /// Clients should poll this method at intervals of 30 seconds. - /// - /// Request parameters: - /// - /// [name] - The name of the operation resource. - /// Value must have pattern `^sdfdownloadtasks/operations/\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Operation]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String name, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/' + core.Uri.encodeFull('$name'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return Operation.fromJson(response_ as core.Map); - } -} - -class TargetingTypesResource { - final commons.ApiRequester _requester; - - TargetingTypesTargetingOptionsResource get targetingOptions => - TargetingTypesTargetingOptionsResource(_requester); - - TargetingTypesResource(commons.ApiRequester client) : _requester = client; -} - -class TargetingTypesTargetingOptionsResource { - final commons.ApiRequester _requester; - - TargetingTypesTargetingOptionsResource(commons.ApiRequester client) - : _requester = client; - - /// Gets a single targeting option. - /// - /// Request parameters: - /// - /// [targetingType] - Required. The type of targeting option to retrieve. - /// Accepted values are: * `TARGETING_TYPE_APP_CATEGORY` * - /// `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_GENDER` * - /// `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * - /// `TARGETING_TYPE_USER_REWARDED_CONTENT` * `TARGETING_TYPE_PARENTAL_STATUS` - /// * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * - /// `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_DEVICE_TYPE` - /// * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * - /// `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_CARRIER_AND_ISP` * - /// `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * - /// `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_CATEGORY` * - /// `TARGETING_TYPE_VIEWABILITY` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * - /// `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_GEO_REGION` * - /// `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * - /// `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_EXCHANGE` - /// * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` - /// * `TARGETING_TYPE_OMID` - /// Value must have pattern `^\[^/\]+$`. - /// Possible string values are: - /// - "TARGETING_TYPE_UNSPECIFIED" : Default value when type is not specified - /// or is unknown in this version. - /// - "TARGETING_TYPE_CHANNEL" : Target a channel (a custom group of related - /// websites or apps). - /// - "TARGETING_TYPE_APP_CATEGORY" : Target an app category (for example, - /// education or puzzle games). - /// - "TARGETING_TYPE_APP" : Target a specific app (for example, Angry Birds). - /// - "TARGETING_TYPE_URL" : Target a specific url (for example, quora.com). - /// - "TARGETING_TYPE_DAY_AND_TIME" : Target ads during a chosen time period - /// on a specific day. - /// - "TARGETING_TYPE_AGE_RANGE" : Target ads to a specific age range (for - /// example, 18-24). - /// - "TARGETING_TYPE_REGIONAL_LOCATION_LIST" : Target ads to the specified - /// regions on a regional location list. - /// - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" : Target ads to the specified - /// points of interest on a proximity location list. - /// - "TARGETING_TYPE_GENDER" : Target ads to a specific gender (for example, - /// female or male). - /// - "TARGETING_TYPE_VIDEO_PLAYER_SIZE" : Target a specific video player size - /// for video ads. - /// - "TARGETING_TYPE_USER_REWARDED_CONTENT" : Target user rewarded content - /// for video ads. - /// - "TARGETING_TYPE_PARENTAL_STATUS" : Target ads to a specific parental - /// status (for example, parent or not a parent). - /// - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" : Target video or audio ads - /// in a specific content instream position (for example, pre-roll, mid-roll, - /// or post-roll). - /// - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" : Target ads in a specific - /// content outstream position. - /// - "TARGETING_TYPE_DEVICE_TYPE" : Target ads to a specific device type (for - /// example, tablet or connected TV). - /// - "TARGETING_TYPE_AUDIENCE_GROUP" : Target ads to an audience or groups of - /// audiences. Singleton field, at most one can exist on a single Lineitem at - /// a time. - /// - "TARGETING_TYPE_BROWSER" : Target ads to specific web browsers (for - /// example, Chrome). - /// - "TARGETING_TYPE_HOUSEHOLD_INCOME" : Target ads to a specific household - /// income range (for example, top 10%). - /// - "TARGETING_TYPE_ON_SCREEN_POSITION" : Target ads in a specific on screen - /// position. - /// - "TARGETING_TYPE_THIRD_PARTY_VERIFIER" : Filter web sites through third - /// party verification (for example, IAS or DoubleVerify). - /// - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" : Filter web sites by - /// specific digital content label ratings (for example, DL-MA: suitable only - /// for mature audiences). - /// - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" : Filter website content - /// by sensitive categories (for example, adult). - /// - "TARGETING_TYPE_ENVIRONMENT" : Target ads to a specific environment (for - /// example, web or app). - /// - "TARGETING_TYPE_CARRIER_AND_ISP" : Target ads to a specific network - /// carrier or internet service provider (ISP) (for example, Comcast or - /// Orange). - /// - "TARGETING_TYPE_OPERATING_SYSTEM" : Target ads to a specific operating - /// system (for example, macOS). - /// - "TARGETING_TYPE_DEVICE_MAKE_MODEL" : Target ads to a specific device - /// make or model (for example, Roku or Samsung). - /// - "TARGETING_TYPE_KEYWORD" : Target ads to a specific keyword (for - /// example, dog or retriever). - /// - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" : Target ads to a specific - /// negative keyword list. - /// - "TARGETING_TYPE_VIEWABILITY" : Target ads to a specific viewability (for - /// example, 80% viewable). - /// - "TARGETING_TYPE_CATEGORY" : Target ads to a specific content category - /// (for example, arts & entertainment). - /// - "TARGETING_TYPE_INVENTORY_SOURCE" : Purchase impressions from specific - /// deals and auction packages. - /// - "TARGETING_TYPE_LANGUAGE" : Target ads to a specific language (for - /// example, English or Japanese). - /// - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" : Target ads to ads.txt - /// authorized sellers. If no targeting option of this type is assigned, the - /// resource uses the "Authorized Direct Sellers and Resellers" option by - /// default. - /// - "TARGETING_TYPE_GEO_REGION" : Target ads to a specific regional location - /// (for example, a city or state). - /// - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" : Purchase impressions from a - /// group of deals and auction packages. - /// - "TARGETING_TYPE_EXCHANGE" : Purchase impressions from specific - /// exchanges. - /// - "TARGETING_TYPE_SUB_EXCHANGE" : Purchase impressions from specific - /// sub-exchanges. - /// - "TARGETING_TYPE_POI" : Target ads around a specific point of interest, - /// such as a notable building, a street address, or latitude/longitude - /// coordinates. - /// - "TARGETING_TYPE_BUSINESS_CHAIN" : Target ads around locations of a - /// business chain within a specific geo region. - /// - "TARGETING_TYPE_CONTENT_DURATION" : Target ads to a specific video - /// content duration. - /// - "TARGETING_TYPE_CONTENT_STREAM_TYPE" : Target ads to a specific video - /// content stream type. - /// - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" : Target ads to a specific - /// native content position. - /// - "TARGETING_TYPE_OMID" : Target ads in an Open Measurement enabled - /// inventory. - /// - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" : Target ads to a specific audio - /// content type. - /// - "TARGETING_TYPE_CONTENT_GENRE" : Target ads to a specific content genre. - /// - /// [targetingOptionId] - Required. The ID of the of targeting option to - /// retrieve. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [advertiserId] - Required. The Advertiser this request is being made in - /// the context of. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [TargetingOption]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String targetingType, - core.String targetingOptionId, { - core.String? advertiserId, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/targetingTypes/' + - core.Uri.encodeFull('$targetingType') + - '/targetingOptions/' + - core.Uri.encodeFull('$targetingOptionId'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return TargetingOption.fromJson( - response_ as core.Map); - } - - /// Lists targeting options of a given type. - /// - /// Request parameters: - /// - /// [targetingType] - Required. The type of targeting option to be listed. - /// Accepted values are: * `TARGETING_TYPE_APP_CATEGORY` * - /// `TARGETING_TYPE_AGE_RANGE` * `TARGETING_TYPE_GENDER` * - /// `TARGETING_TYPE_VIDEO_PLAYER_SIZE` * - /// `TARGETING_TYPE_USER_REWARDED_CONTENT` * `TARGETING_TYPE_PARENTAL_STATUS` - /// * `TARGETING_TYPE_CONTENT_INSTREAM_POSITION` * - /// `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION` * `TARGETING_TYPE_DEVICE_TYPE` - /// * `TARGETING_TYPE_BROWSER` * `TARGETING_TYPE_HOUSEHOLD_INCOME` * - /// `TARGETING_TYPE_ON_SCREEN_POSITION` * `TARGETING_TYPE_CARRIER_AND_ISP` * - /// `TARGETING_TYPE_OPERATING_SYSTEM` * `TARGETING_TYPE_DEVICE_MAKE_MODEL` * - /// `TARGETING_TYPE_ENVIRONMENT` * `TARGETING_TYPE_CATEGORY` * - /// `TARGETING_TYPE_VIEWABILITY` * `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` * - /// `TARGETING_TYPE_LANGUAGE` * `TARGETING_TYPE_GEO_REGION` * - /// `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * - /// `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` * `TARGETING_TYPE_EXCHANGE` - /// * `TARGETING_TYPE_SUB_EXCHANGE` * `TARGETING_TYPE_NATIVE_CONTENT_POSITION` - /// * `TARGETING_TYPE_OMID` - /// Value must have pattern `^\[^/\]+$`. - /// Possible string values are: - /// - "TARGETING_TYPE_UNSPECIFIED" : Default value when type is not specified - /// or is unknown in this version. - /// - "TARGETING_TYPE_CHANNEL" : Target a channel (a custom group of related - /// websites or apps). - /// - "TARGETING_TYPE_APP_CATEGORY" : Target an app category (for example, - /// education or puzzle games). - /// - "TARGETING_TYPE_APP" : Target a specific app (for example, Angry Birds). - /// - "TARGETING_TYPE_URL" : Target a specific url (for example, quora.com). - /// - "TARGETING_TYPE_DAY_AND_TIME" : Target ads during a chosen time period - /// on a specific day. - /// - "TARGETING_TYPE_AGE_RANGE" : Target ads to a specific age range (for - /// example, 18-24). - /// - "TARGETING_TYPE_REGIONAL_LOCATION_LIST" : Target ads to the specified - /// regions on a regional location list. - /// - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" : Target ads to the specified - /// points of interest on a proximity location list. - /// - "TARGETING_TYPE_GENDER" : Target ads to a specific gender (for example, - /// female or male). - /// - "TARGETING_TYPE_VIDEO_PLAYER_SIZE" : Target a specific video player size - /// for video ads. - /// - "TARGETING_TYPE_USER_REWARDED_CONTENT" : Target user rewarded content - /// for video ads. - /// - "TARGETING_TYPE_PARENTAL_STATUS" : Target ads to a specific parental - /// status (for example, parent or not a parent). - /// - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" : Target video or audio ads - /// in a specific content instream position (for example, pre-roll, mid-roll, - /// or post-roll). - /// - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" : Target ads in a specific - /// content outstream position. - /// - "TARGETING_TYPE_DEVICE_TYPE" : Target ads to a specific device type (for - /// example, tablet or connected TV). - /// - "TARGETING_TYPE_AUDIENCE_GROUP" : Target ads to an audience or groups of - /// audiences. Singleton field, at most one can exist on a single Lineitem at - /// a time. - /// - "TARGETING_TYPE_BROWSER" : Target ads to specific web browsers (for - /// example, Chrome). - /// - "TARGETING_TYPE_HOUSEHOLD_INCOME" : Target ads to a specific household - /// income range (for example, top 10%). - /// - "TARGETING_TYPE_ON_SCREEN_POSITION" : Target ads in a specific on screen - /// position. - /// - "TARGETING_TYPE_THIRD_PARTY_VERIFIER" : Filter web sites through third - /// party verification (for example, IAS or DoubleVerify). - /// - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" : Filter web sites by - /// specific digital content label ratings (for example, DL-MA: suitable only - /// for mature audiences). - /// - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" : Filter website content - /// by sensitive categories (for example, adult). - /// - "TARGETING_TYPE_ENVIRONMENT" : Target ads to a specific environment (for - /// example, web or app). - /// - "TARGETING_TYPE_CARRIER_AND_ISP" : Target ads to a specific network - /// carrier or internet service provider (ISP) (for example, Comcast or - /// Orange). - /// - "TARGETING_TYPE_OPERATING_SYSTEM" : Target ads to a specific operating - /// system (for example, macOS). - /// - "TARGETING_TYPE_DEVICE_MAKE_MODEL" : Target ads to a specific device - /// make or model (for example, Roku or Samsung). - /// - "TARGETING_TYPE_KEYWORD" : Target ads to a specific keyword (for - /// example, dog or retriever). - /// - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" : Target ads to a specific - /// negative keyword list. - /// - "TARGETING_TYPE_VIEWABILITY" : Target ads to a specific viewability (for - /// example, 80% viewable). - /// - "TARGETING_TYPE_CATEGORY" : Target ads to a specific content category - /// (for example, arts & entertainment). - /// - "TARGETING_TYPE_INVENTORY_SOURCE" : Purchase impressions from specific - /// deals and auction packages. - /// - "TARGETING_TYPE_LANGUAGE" : Target ads to a specific language (for - /// example, English or Japanese). - /// - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" : Target ads to ads.txt - /// authorized sellers. If no targeting option of this type is assigned, the - /// resource uses the "Authorized Direct Sellers and Resellers" option by - /// default. - /// - "TARGETING_TYPE_GEO_REGION" : Target ads to a specific regional location - /// (for example, a city or state). - /// - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" : Purchase impressions from a - /// group of deals and auction packages. - /// - "TARGETING_TYPE_EXCHANGE" : Purchase impressions from specific - /// exchanges. - /// - "TARGETING_TYPE_SUB_EXCHANGE" : Purchase impressions from specific - /// sub-exchanges. - /// - "TARGETING_TYPE_POI" : Target ads around a specific point of interest, - /// such as a notable building, a street address, or latitude/longitude - /// coordinates. - /// - "TARGETING_TYPE_BUSINESS_CHAIN" : Target ads around locations of a - /// business chain within a specific geo region. - /// - "TARGETING_TYPE_CONTENT_DURATION" : Target ads to a specific video - /// content duration. - /// - "TARGETING_TYPE_CONTENT_STREAM_TYPE" : Target ads to a specific video - /// content stream type. - /// - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" : Target ads to a specific - /// native content position. - /// - "TARGETING_TYPE_OMID" : Target ads in an Open Measurement enabled - /// inventory. - /// - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" : Target ads to a specific audio - /// content type. - /// - "TARGETING_TYPE_CONTENT_GENRE" : Target ads to a specific content genre. - /// - /// [advertiserId] - Required. The Advertiser this request is being made in - /// the context of. - /// - /// [filter] - Allows filtering by targeting option fields. Supported syntax: - /// * Filter expressions are made up of one or more restrictions. * - /// Restrictions can be combined by `OR` logical operators. * A restriction - /// has the form of `{field} {operator} {value}`. * All fields must use the - /// `EQUALS (=)` operator. Supported fields: * `carrierAndIspDetails.type` * - /// `geoRegionDetails.geoRegionType` * `targetingOptionId` Examples: * All - /// `GEO REGION` targeting options that belong to sub type - /// `GEO_REGION_TYPE_COUNTRY` or `GEO_REGION_TYPE_STATE`: - /// `geoRegionDetails.geoRegionType="GEO_REGION_TYPE_COUNTRY" OR - /// geoRegionDetails.geoRegionType="GEO_REGION_TYPE_STATE"` * All `CARRIER AND - /// ISP` targeting options that belong to sub type - /// `CARRIER_AND_ISP_TYPE_CARRIER`: - /// `carrierAndIspDetails.type="CARRIER_AND_ISP_TYPE_CARRIER"` The length of - /// this field should be no more than 500 characters. Reference our \[filter - /// `LIST` requests\](/display-video/api/guides/how-tos/filters) guide for - /// more information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `targetingOptionId` (default) The default sorting order is ascending. To - /// specify descending order for a field, a suffix "desc" should be added to - /// the field name. Example: `targetingOptionId desc`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `200`. If - /// unspecified will default to `100`. Returns error code `INVALID_ARGUMENT` - /// if an invalid value is specified. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListTargetingOptions` method. If not specified, the - /// first page of results will be returned. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListTargetingOptionsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list( - core.String targetingType, { - core.String? advertiserId, - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (advertiserId != null) 'advertiserId': [advertiserId], - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/targetingTypes/' + - core.Uri.encodeFull('$targetingType') + - '/targetingOptions'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListTargetingOptionsResponse.fromJson( - response_ as core.Map); - } - - /// Searches for targeting options of a given type based on the given search - /// terms. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [targetingType] - Required. The type of targeting options to retrieve. - /// Accepted values are: * `TARGETING_TYPE_GEO_REGION` * `TARGETING_TYPE_POI` - /// * `TARGETING_TYPE_BUSINESS_CHAIN` - /// Value must have pattern `^\[^/\]+$`. - /// Possible string values are: - /// - "TARGETING_TYPE_UNSPECIFIED" : Default value when type is not specified - /// or is unknown in this version. - /// - "TARGETING_TYPE_CHANNEL" : Target a channel (a custom group of related - /// websites or apps). - /// - "TARGETING_TYPE_APP_CATEGORY" : Target an app category (for example, - /// education or puzzle games). - /// - "TARGETING_TYPE_APP" : Target a specific app (for example, Angry Birds). - /// - "TARGETING_TYPE_URL" : Target a specific url (for example, quora.com). - /// - "TARGETING_TYPE_DAY_AND_TIME" : Target ads during a chosen time period - /// on a specific day. - /// - "TARGETING_TYPE_AGE_RANGE" : Target ads to a specific age range (for - /// example, 18-24). - /// - "TARGETING_TYPE_REGIONAL_LOCATION_LIST" : Target ads to the specified - /// regions on a regional location list. - /// - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" : Target ads to the specified - /// points of interest on a proximity location list. - /// - "TARGETING_TYPE_GENDER" : Target ads to a specific gender (for example, - /// female or male). - /// - "TARGETING_TYPE_VIDEO_PLAYER_SIZE" : Target a specific video player size - /// for video ads. - /// - "TARGETING_TYPE_USER_REWARDED_CONTENT" : Target user rewarded content - /// for video ads. - /// - "TARGETING_TYPE_PARENTAL_STATUS" : Target ads to a specific parental - /// status (for example, parent or not a parent). - /// - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" : Target video or audio ads - /// in a specific content instream position (for example, pre-roll, mid-roll, - /// or post-roll). - /// - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" : Target ads in a specific - /// content outstream position. - /// - "TARGETING_TYPE_DEVICE_TYPE" : Target ads to a specific device type (for - /// example, tablet or connected TV). - /// - "TARGETING_TYPE_AUDIENCE_GROUP" : Target ads to an audience or groups of - /// audiences. Singleton field, at most one can exist on a single Lineitem at - /// a time. - /// - "TARGETING_TYPE_BROWSER" : Target ads to specific web browsers (for - /// example, Chrome). - /// - "TARGETING_TYPE_HOUSEHOLD_INCOME" : Target ads to a specific household - /// income range (for example, top 10%). - /// - "TARGETING_TYPE_ON_SCREEN_POSITION" : Target ads in a specific on screen - /// position. - /// - "TARGETING_TYPE_THIRD_PARTY_VERIFIER" : Filter web sites through third - /// party verification (for example, IAS or DoubleVerify). - /// - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" : Filter web sites by - /// specific digital content label ratings (for example, DL-MA: suitable only - /// for mature audiences). - /// - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" : Filter website content - /// by sensitive categories (for example, adult). - /// - "TARGETING_TYPE_ENVIRONMENT" : Target ads to a specific environment (for - /// example, web or app). - /// - "TARGETING_TYPE_CARRIER_AND_ISP" : Target ads to a specific network - /// carrier or internet service provider (ISP) (for example, Comcast or - /// Orange). - /// - "TARGETING_TYPE_OPERATING_SYSTEM" : Target ads to a specific operating - /// system (for example, macOS). - /// - "TARGETING_TYPE_DEVICE_MAKE_MODEL" : Target ads to a specific device - /// make or model (for example, Roku or Samsung). - /// - "TARGETING_TYPE_KEYWORD" : Target ads to a specific keyword (for - /// example, dog or retriever). - /// - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" : Target ads to a specific - /// negative keyword list. - /// - "TARGETING_TYPE_VIEWABILITY" : Target ads to a specific viewability (for - /// example, 80% viewable). - /// - "TARGETING_TYPE_CATEGORY" : Target ads to a specific content category - /// (for example, arts & entertainment). - /// - "TARGETING_TYPE_INVENTORY_SOURCE" : Purchase impressions from specific - /// deals and auction packages. - /// - "TARGETING_TYPE_LANGUAGE" : Target ads to a specific language (for - /// example, English or Japanese). - /// - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" : Target ads to ads.txt - /// authorized sellers. If no targeting option of this type is assigned, the - /// resource uses the "Authorized Direct Sellers and Resellers" option by - /// default. - /// - "TARGETING_TYPE_GEO_REGION" : Target ads to a specific regional location - /// (for example, a city or state). - /// - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" : Purchase impressions from a - /// group of deals and auction packages. - /// - "TARGETING_TYPE_EXCHANGE" : Purchase impressions from specific - /// exchanges. - /// - "TARGETING_TYPE_SUB_EXCHANGE" : Purchase impressions from specific - /// sub-exchanges. - /// - "TARGETING_TYPE_POI" : Target ads around a specific point of interest, - /// such as a notable building, a street address, or latitude/longitude - /// coordinates. - /// - "TARGETING_TYPE_BUSINESS_CHAIN" : Target ads around locations of a - /// business chain within a specific geo region. - /// - "TARGETING_TYPE_CONTENT_DURATION" : Target ads to a specific video - /// content duration. - /// - "TARGETING_TYPE_CONTENT_STREAM_TYPE" : Target ads to a specific video - /// content stream type. - /// - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" : Target ads to a specific - /// native content position. - /// - "TARGETING_TYPE_OMID" : Target ads in an Open Measurement enabled - /// inventory. - /// - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" : Target ads to a specific audio - /// content type. - /// - "TARGETING_TYPE_CONTENT_GENRE" : Target ads to a specific content genre. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [SearchTargetingOptionsResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future search( - SearchTargetingOptionsRequest request, - core.String targetingType, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/targetingTypes/' + - core.Uri.encodeFull('$targetingType') + - '/targetingOptions:search'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return SearchTargetingOptionsResponse.fromJson( - response_ as core.Map); - } -} - -class UsersResource { - final commons.ApiRequester _requester; - - UsersResource(commons.ApiRequester client) : _requester = client; - - /// Bulk edits user roles for a user. - /// - /// The operation will delete the assigned user roles provided in - /// BulkEditAssignedUserRolesRequest.deletedAssignedUserRoles and then assign - /// the user roles provided in - /// BulkEditAssignedUserRolesRequest.createdAssignedUserRoles. This method has - /// unique authentication requirements. Read the prerequisites in our - /// \[Managing Users - /// guide\](/display-video/api/guides/users/overview#prerequisites) before - /// using this method. The "Try this method" feature does not work for this - /// method. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [userId] - Required. The ID of the user to which the assigned user roles - /// belong. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [BulkEditAssignedUserRolesResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future bulkEditAssignedUserRoles( - BulkEditAssignedUserRolesRequest request, - core.String userId, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/users/' + - core.Uri.encodeFull('$userId') + - ':bulkEditAssignedUserRoles'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return BulkEditAssignedUserRolesResponse.fromJson( - response_ as core.Map); - } - - /// Creates a new user. - /// - /// Returns the newly created user if successful. This method has unique - /// authentication requirements. Read the prerequisites in our \[Managing - /// Users guide\](/display-video/api/guides/users/overview#prerequisites) - /// before using this method. The "Try this method" feature does not work for - /// this method. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [User]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future create( - User request, { - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - const url_ = 'v1/users'; - - final response_ = await _requester.request( - url_, - 'POST', - body: body_, - queryParams: queryParams_, - ); - return User.fromJson(response_ as core.Map); - } - - /// Deletes a user. - /// - /// This method has unique authentication requirements. Read the prerequisites - /// in our \[Managing Users - /// guide\](/display-video/api/guides/users/overview#prerequisites) before - /// using this method. The "Try this method" feature does not work for this - /// method. - /// - /// Request parameters: - /// - /// [userId] - Required. The ID of the user to delete. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [Empty]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future delete( - core.String userId, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/users/' + core.Uri.encodeFull('$userId'); - - final response_ = await _requester.request( - url_, - 'DELETE', - queryParams: queryParams_, - ); - return Empty.fromJson(response_ as core.Map); - } - - /// Gets a user. - /// - /// This method has unique authentication requirements. Read the prerequisites - /// in our \[Managing Users - /// guide\](/display-video/api/guides/users/overview#prerequisites) before - /// using this method. The "Try this method" feature does not work for this - /// method. - /// - /// Request parameters: - /// - /// [userId] - Required. The ID of the user to fetch. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [User]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future get( - core.String userId, { - core.String? $fields, - }) async { - final queryParams_ = >{ - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/users/' + core.Uri.encodeFull('$userId'); - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return User.fromJson(response_ as core.Map); - } - - /// Lists users that are accessible to the current user. - /// - /// If two users have user roles on the same partner or advertiser, they can - /// access each other. This method has unique authentication requirements. - /// Read the prerequisites in our \[Managing Users - /// guide\](/display-video/api/guides/users/overview#prerequisites) before - /// using this method. The "Try this method" feature does not work for this - /// method. - /// - /// Request parameters: - /// - /// [filter] - Allows filtering by user fields. Supported syntax: * Filter - /// expressions are made up of one or more restrictions. * Restrictions can be - /// combined by the logical operator \`AND\`. * A restriction has the form of - /// \`{field} {operator} {value}\`. * The - /// \`budget.budget_segments.date_range.end_date\` field must use the \`LESS - /// THAN (\<)\` operator. * The \`displayName and \`email\` field must use the - /// \`HAS (:)\` operator. * All other fields must use the \`EQUALS (=)\` - /// operator. Supported fields: * \`assignedUserRole.advertiserId\` * - /// \`assignedUserRole.entityType\` * This is synthetic field of - /// \`AssignedUserRole\` used for filtering. Identifies the type of entity to - /// which the user role is assigned. Valid values are \`Partner\` and - /// \`Advertiser\`. * \`assignedUserRole.parentPartnerId\` * This is a - /// synthetic field of \`AssignedUserRole\` used for filtering. Identifies the - /// parent partner of the entity to which the user role is assigned. * - /// \`assignedUserRole.partnerId\` * \`assignedUserRole.userRole\` * - /// \`displayName\` * \`email\` Examples: * The user with \`displayName\` - /// containing "foo": \`displayName:"foo"\` * The user with \`email\` - /// containing "bar": \`email:"bar"\` * All users with standard user roles: - /// \`assignedUserRole.userRole="STANDARD"\` * All users with user roles for - /// partner 123: \`assignedUserRole.partnerId="123"\` * All users with user - /// roles for advertiser 123: \`assignedUserRole.advertiserId="123"\` * All - /// users with partner level user roles: \`entityType="PARTNER"\` * All users - /// with user roles for partner 123 and advertisers under partner 123: - /// \`parentPartnerId="123"\` The length of this field should be no more than - /// 500 characters. Reference our \[filter \`LIST\` - /// requests\](/display-video/api/guides/how-tos/filters) guide for more - /// information. - /// - /// [orderBy] - Field by which to sort the list. Acceptable values are: * - /// `displayName` (default) The default sorting order is ascending. To specify - /// descending order for a field, a suffix "desc" should be added to the field - /// name. For example, `displayName desc`. - /// - /// [pageSize] - Requested page size. Must be between `1` and `200`. If - /// unspecified will default to `100`. - /// - /// [pageToken] - A token identifying a page of results the server should - /// return. Typically, this is the value of next_page_token returned from the - /// previous call to `ListUsers` method. If not specified, the first page of - /// results will be returned. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [ListUsersResponse]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future list({ - core.String? filter, - core.String? orderBy, - core.int? pageSize, - core.String? pageToken, - core.String? $fields, - }) async { - final queryParams_ = >{ - if (filter != null) 'filter': [filter], - if (orderBy != null) 'orderBy': [orderBy], - if (pageSize != null) 'pageSize': ['${pageSize}'], - if (pageToken != null) 'pageToken': [pageToken], - if ($fields != null) 'fields': [$fields], - }; - - const url_ = 'v1/users'; - - final response_ = await _requester.request( - url_, - 'GET', - queryParams: queryParams_, - ); - return ListUsersResponse.fromJson( - response_ as core.Map); - } - - /// Updates an existing user. - /// - /// Returns the updated user if successful. This method has unique - /// authentication requirements. Read the prerequisites in our \[Managing - /// Users guide\](/display-video/api/guides/users/overview#prerequisites) - /// before using this method. The "Try this method" feature does not work for - /// this method. - /// - /// [request] - The metadata request object. - /// - /// Request parameters: - /// - /// [userId] - Output only. The unique ID of the user. Assigned by the system. - /// Value must have pattern `^\[^/\]+$`. - /// - /// [updateMask] - Required. The mask to control which fields to update. - /// - /// [$fields] - Selector specifying which fields to include in a partial - /// response. - /// - /// Completes with a [User]. - /// - /// Completes with a [commons.ApiRequestError] if the API endpoint returned an - /// error. - /// - /// If the used [http.Client] completes with an error when making a REST call, - /// this method will complete with the same error. - async.Future patch( - User request, - core.String userId, { - core.String? updateMask, - core.String? $fields, - }) async { - final body_ = convert.json.encode(request); - final queryParams_ = >{ - if (updateMask != null) 'updateMask': [updateMask], - if ($fields != null) 'fields': [$fields], - }; - - final url_ = 'v1/users/' + core.Uri.encodeFull('$userId'); - - final response_ = await _requester.request( - url_, - 'PATCH', - body: body_, - queryParams: queryParams_, - ); - return User.fromJson(response_ as core.Map); - } -} - -/// Request message for ManualTriggerService.ActivateManualTrigger. -typedef ActivateManualTriggerRequest = $Empty; - -/// Configuration for custom Active View video viewability metrics. -typedef ActiveViewVideoViewabilityMetricConfig - = $ActiveViewVideoViewabilityMetricConfig; - -/// Details of Adloox settings. -typedef Adloox = $Adloox; - -/// A single advertiser in Display & Video 360 (DV360). -class Advertiser { - /// Ad server related settings of the advertiser. - /// - /// Required. Immutable. - AdvertiserAdServerConfig? adServerConfig; - - /// The unique ID of the advertiser. - /// - /// Assigned by the system. - /// - /// Output only. - core.String? advertiserId; - - /// Creative related settings of the advertiser. - /// - /// Required. - AdvertiserCreativeConfig? creativeConfig; - - /// Settings that control how advertiser data may be accessed. - AdvertiserDataAccessConfig? dataAccessConfig; - - /// The display name of the advertiser. - /// - /// Must be UTF-8 encoded with a maximum size of 240 bytes. - /// - /// Required. - core.String? displayName; - - /// Controls whether or not insertion orders and line items of the advertiser - /// can spend their budgets and bid on inventory. - /// - /// * Accepted values are `ENTITY_STATUS_ACTIVE`, `ENTITY_STATUS_PAUSED` and - /// `ENTITY_STATUS_SCHEDULED_FOR_DELETION`. * If set to - /// `ENTITY_STATUS_SCHEDULED_FOR_DELETION`, the advertiser will be deleted 30 - /// days from when it was first scheduled for deletion. - /// - /// Required. - /// Possible string values are: - /// - "ENTITY_STATUS_UNSPECIFIED" : Default value when status is not specified - /// or is unknown in this version. - /// - "ENTITY_STATUS_ACTIVE" : The entity is enabled to bid and spend budget. - /// - "ENTITY_STATUS_ARCHIVED" : The entity is archived. Bidding and budget - /// spending are disabled. An entity can be deleted after archived. Deleted - /// entities cannot be retrieved. - /// - "ENTITY_STATUS_DRAFT" : The entity is under draft. Bidding and budget - /// spending are disabled. - /// - "ENTITY_STATUS_PAUSED" : Bidding and budget spending are paused for the - /// entity. - /// - "ENTITY_STATUS_SCHEDULED_FOR_DELETION" : The entity is scheduled for - /// deletion. - core.String? entityStatus; - - /// General settings of the advertiser. - /// - /// Required. - AdvertiserGeneralConfig? generalConfig; - - /// Integration details of the advertiser. - /// - /// Only integrationCode is currently applicable to advertiser. Other fields - /// of IntegrationDetails are not supported and will be ignored if provided. - IntegrationDetails? integrationDetails; - - /// The resource name of the advertiser. - /// - /// Output only. - core.String? name; - - /// The unique ID of the partner that the advertiser belongs to. - /// - /// Required. Immutable. - core.String? partnerId; - - /// Whether integration with Mediaocean (Prisma) is enabled. - /// - /// By enabling this, you agree to the following: On behalf of my company, I - /// authorize Mediaocean (Prisma) to send budget segment plans to Google, and - /// I authorize Google to send corresponding reporting and invoices from DV360 - /// to Mediaocean for the purposes of budget planning, billing, and - /// reconciliation for this advertiser. - core.bool? prismaEnabled; - - /// Targeting settings related to ad serving of the advertiser. - AdvertiserTargetingConfig? servingConfig; - - /// The timestamp when the advertiser was last updated. - /// - /// Assigned by the system. - /// - /// Output only. - core.String? updateTime; - - Advertiser({ - this.adServerConfig, - this.advertiserId, - this.creativeConfig, - this.dataAccessConfig, - this.displayName, - this.entityStatus, - this.generalConfig, - this.integrationDetails, - this.name, - this.partnerId, - this.prismaEnabled, - this.servingConfig, - this.updateTime, - }); - - Advertiser.fromJson(core.Map json_) - : this( - adServerConfig: json_.containsKey('adServerConfig') - ? AdvertiserAdServerConfig.fromJson(json_['adServerConfig'] - as core.Map) - : null, - advertiserId: json_.containsKey('advertiserId') - ? json_['advertiserId'] as core.String - : null, - creativeConfig: json_.containsKey('creativeConfig') - ? AdvertiserCreativeConfig.fromJson(json_['creativeConfig'] - as core.Map) - : null, - dataAccessConfig: json_.containsKey('dataAccessConfig') - ? AdvertiserDataAccessConfig.fromJson(json_['dataAccessConfig'] - as core.Map) - : null, - displayName: json_.containsKey('displayName') - ? json_['displayName'] as core.String - : null, - entityStatus: json_.containsKey('entityStatus') - ? json_['entityStatus'] as core.String - : null, - generalConfig: json_.containsKey('generalConfig') - ? AdvertiserGeneralConfig.fromJson( - json_['generalConfig'] as core.Map) - : null, - integrationDetails: json_.containsKey('integrationDetails') - ? IntegrationDetails.fromJson(json_['integrationDetails'] - as core.Map) - : null, - name: json_.containsKey('name') ? json_['name'] as core.String : null, - partnerId: json_.containsKey('partnerId') - ? json_['partnerId'] as core.String - : null, - prismaEnabled: json_.containsKey('prismaEnabled') - ? json_['prismaEnabled'] as core.bool - : null, - servingConfig: json_.containsKey('servingConfig') - ? AdvertiserTargetingConfig.fromJson( - json_['servingConfig'] as core.Map) - : null, - updateTime: json_.containsKey('updateTime') - ? json_['updateTime'] as core.String - : null, - ); - - core.Map toJson() => { - if (adServerConfig != null) 'adServerConfig': adServerConfig!, - if (advertiserId != null) 'advertiserId': advertiserId!, - if (creativeConfig != null) 'creativeConfig': creativeConfig!, - if (dataAccessConfig != null) 'dataAccessConfig': dataAccessConfig!, - if (displayName != null) 'displayName': displayName!, - if (entityStatus != null) 'entityStatus': entityStatus!, - if (generalConfig != null) 'generalConfig': generalConfig!, - if (integrationDetails != null) - 'integrationDetails': integrationDetails!, - if (name != null) 'name': name!, - if (partnerId != null) 'partnerId': partnerId!, - if (prismaEnabled != null) 'prismaEnabled': prismaEnabled!, - if (servingConfig != null) 'servingConfig': servingConfig!, - if (updateTime != null) 'updateTime': updateTime!, - }; -} - -/// Ad server related settings of an advertiser. -class AdvertiserAdServerConfig { - /// The configuration for advertisers that use both Campaign Manager 360 - /// (CM360) and third-party ad servers. - CmHybridConfig? cmHybridConfig; - - /// The configuration for advertisers that use third-party ad servers only. - ThirdPartyOnlyConfig? thirdPartyOnlyConfig; - - AdvertiserAdServerConfig({ - this.cmHybridConfig, - this.thirdPartyOnlyConfig, - }); - - AdvertiserAdServerConfig.fromJson(core.Map json_) - : this( - cmHybridConfig: json_.containsKey('cmHybridConfig') - ? CmHybridConfig.fromJson(json_['cmHybridConfig'] - as core.Map) - : null, - thirdPartyOnlyConfig: json_.containsKey('thirdPartyOnlyConfig') - ? ThirdPartyOnlyConfig.fromJson(json_['thirdPartyOnlyConfig'] - as core.Map) - : null, - ); - - core.Map toJson() => { - if (cmHybridConfig != null) 'cmHybridConfig': cmHybridConfig!, - if (thirdPartyOnlyConfig != null) - 'thirdPartyOnlyConfig': thirdPartyOnlyConfig!, - }; -} - -/// Creatives related settings of an advertiser. -typedef AdvertiserCreativeConfig = $AdvertiserCreativeConfig; - -/// Settings that control how advertiser related data may be accessed. -class AdvertiserDataAccessConfig { - /// Structured Data Files (SDF) settings for the advertiser. - /// - /// If not specified, the SDF settings of the parent partner are used. - AdvertiserSdfConfig? sdfConfig; - - AdvertiserDataAccessConfig({ - this.sdfConfig, - }); - - AdvertiserDataAccessConfig.fromJson(core.Map json_) - : this( - sdfConfig: json_.containsKey('sdfConfig') - ? AdvertiserSdfConfig.fromJson( - json_['sdfConfig'] as core.Map) - : null, - ); - - core.Map toJson() => { - if (sdfConfig != null) 'sdfConfig': sdfConfig!, - }; -} - -/// General settings of an advertiser. -typedef AdvertiserGeneralConfig = $AdvertiserGeneralConfig; - -/// Structured Data Files (SDF) settings of an advertiser. -class AdvertiserSdfConfig { - /// Whether or not this advertiser overrides the SDF configuration of its - /// parent partner. - /// - /// By default, an advertiser inherits the SDF configuration from the parent - /// partner. To override the partner configuration, set this field to `true` - /// and provide the new configuration in sdfConfig. - core.bool? overridePartnerSdfConfig; - - /// The SDF configuration for the advertiser. - /// - /// * Required when overridePartnerSdfConfig is `true`. * Output only when - /// overridePartnerSdfConfig is `false`. - SdfConfig? sdfConfig; - - AdvertiserSdfConfig({ - this.overridePartnerSdfConfig, - this.sdfConfig, - }); - - AdvertiserSdfConfig.fromJson(core.Map json_) - : this( - overridePartnerSdfConfig: - json_.containsKey('overridePartnerSdfConfig') - ? json_['overridePartnerSdfConfig'] as core.bool - : null, - sdfConfig: json_.containsKey('sdfConfig') - ? SdfConfig.fromJson( - json_['sdfConfig'] as core.Map) - : null, - ); - - core.Map toJson() => { - if (overridePartnerSdfConfig != null) - 'overridePartnerSdfConfig': overridePartnerSdfConfig!, - if (sdfConfig != null) 'sdfConfig': sdfConfig!, - }; -} - -/// Targeting settings related to ad serving of an advertiser. -typedef AdvertiserTargetingConfig = $AdvertiserTargetingConfig; - -/// Represents a targetable age range. -/// -/// This will be populated in the details field of an AssignedTargetingOption -/// when targeting_type is `TARGETING_TYPE_AGE_RANGE`. -class AgeRangeAssignedTargetingOptionDetails { - /// The age range of an audience. - /// - /// We only support targeting a continuous age range of an audience. Thus, the - /// age range represented in this field can be 1) targeted solely, or, 2) part - /// of a larger continuous age range. The reach of a continuous age range - /// targeting can be expanded by also targeting an audience of an unknown age. - /// - /// Required. - /// Possible string values are: - /// - "AGE_RANGE_UNSPECIFIED" : Default value when age range is not specified - /// in this version. This enum is a placeholder for default value and does not - /// represent a real age range option. - /// - "AGE_RANGE_18_24" : The age range of the audience is 18 to 24. - /// - "AGE_RANGE_25_34" : The age range of the audience is 25 to 34. - /// - "AGE_RANGE_35_44" : The age range of the audience is 35 to 44. - /// - "AGE_RANGE_45_54" : The age range of the audience is 45 to 54. - /// - "AGE_RANGE_55_64" : The age range of the audience is 55 to 64. - /// - "AGE_RANGE_65_PLUS" : The age range of the audience is 65 and up. - /// - "AGE_RANGE_UNKNOWN" : The age range of the audience is unknown. - core.String? ageRange; - - /// The targeting_option_id of a TargetingOption of type - /// `TARGETING_TYPE_AGE_RANGE`. - /// - /// Required. - core.String? targetingOptionId; - - AgeRangeAssignedTargetingOptionDetails({ - this.ageRange, - this.targetingOptionId, - }); - - AgeRangeAssignedTargetingOptionDetails.fromJson(core.Map json_) - : this( - ageRange: json_.containsKey('ageRange') - ? json_['ageRange'] as core.String - : null, - targetingOptionId: json_.containsKey('targetingOptionId') - ? json_['targetingOptionId'] as core.String - : null, - ); - - core.Map toJson() => { - if (ageRange != null) 'ageRange': ageRange!, - if (targetingOptionId != null) 'targetingOptionId': targetingOptionId!, - }; -} - -/// Represents a targetable age range. -/// -/// This will be populated in the age_range_details field when targeting_type is -/// `TARGETING_TYPE_AGE_RANGE`. -class AgeRangeTargetingOptionDetails { - /// The age range of an audience. - /// - /// Output only. - /// Possible string values are: - /// - "AGE_RANGE_UNSPECIFIED" : Default value when age range is not specified - /// in this version. This enum is a placeholder for default value and does not - /// represent a real age range option. - /// - "AGE_RANGE_18_24" : The age range of the audience is 18 to 24. - /// - "AGE_RANGE_25_34" : The age range of the audience is 25 to 34. - /// - "AGE_RANGE_35_44" : The age range of the audience is 35 to 44. - /// - "AGE_RANGE_45_54" : The age range of the audience is 45 to 54. - /// - "AGE_RANGE_55_64" : The age range of the audience is 55 to 64. - /// - "AGE_RANGE_65_PLUS" : The age range of the audience is 65 and up. - /// - "AGE_RANGE_UNKNOWN" : The age range of the audience is unknown. - core.String? ageRange; - - AgeRangeTargetingOptionDetails({ - this.ageRange, - }); - - AgeRangeTargetingOptionDetails.fromJson(core.Map json_) - : this( - ageRange: json_.containsKey('ageRange') - ? json_['ageRange'] as core.String - : null, - ); - - core.Map toJson() => { - if (ageRange != null) 'ageRange': ageRange!, - }; -} - -/// Details for assigned app targeting option. -/// -/// This will be populated in the details field of an AssignedTargetingOption -/// when targeting_type is `TARGETING_TYPE_APP`. -typedef AppAssignedTargetingOptionDetails = $AppAssignedTargetingOptionDetails; - -/// Details for assigned app category targeting option. -/// -/// This will be populated in the app_category_details field of an -/// AssignedTargetingOption when targeting_type is -/// `TARGETING_TYPE_APP_CATEGORY`. -typedef AppCategoryAssignedTargetingOptionDetails - = $AppCategoryAssignedTargetingOptionDetails; - -/// Represents a targetable collection of apps. -/// -/// A collection lets you target dynamic groups of related apps that are -/// maintained by the platform, for example `All Apps/Google Play/Games`. This -/// will be populated in the app_category_details field when targeting_type is -/// `TARGETING_TYPE_APP_CATEGORY`. -typedef AppCategoryTargetingOptionDetails = $AppCategoryTargetingOptionDetails; - -/// A single asset. -typedef Asset = $Asset; - -/// Asset association for the creative. -class AssetAssociation { - /// The associated asset. - Asset? asset; - - /// The role of this asset for the creative. - /// Possible string values are: - /// - "ASSET_ROLE_UNSPECIFIED" : Asset role is not specified or is unknown in - /// this version. - /// - "ASSET_ROLE_MAIN" : The asset is the main asset of the creative. - /// - "ASSET_ROLE_BACKUP" : The asset is a backup asset of the creative. - /// - "ASSET_ROLE_POLITE_LOAD" : The asset is a polite load asset of the - /// creative. - /// - "ASSET_ROLE_HEADLINE" : Headline of a native creative. The content must - /// be UTF-8 encoded with a length of no more than 25 characters. This role is - /// only supported in following creative_type: * `CREATIVE_TYPE_NATIVE` * - /// `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO` - /// - "ASSET_ROLE_LONG_HEADLINE" : Long headline of a native creative. The - /// content must be UTF-8 encoded with a length of no more than 50 characters. - /// This role is only supported in following creative_type: * - /// `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * - /// `CREATIVE_TYPE_NATIVE_VIDEO` - /// - "ASSET_ROLE_BODY" : Body text of a native creative. The content must be - /// UTF-8 encoded with a length of no more than 90 characters. This role is - /// only supported in following creative_type: * `CREATIVE_TYPE_NATIVE` * - /// `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO` - /// - "ASSET_ROLE_LONG_BODY" : Long body text of a native creative. The - /// content must be UTF-8 encoded with a length of no more than 150 - /// characters. This role is only supported in following creative_type: * - /// `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * - /// `CREATIVE_TYPE_NATIVE_VIDEO` - /// - "ASSET_ROLE_CAPTION_URL" : A short, friendly version of the landing page - /// URL to show in the creative. This URL gives people an idea of where - /// they'll arrive after they click on the creative. The content must be UTF-8 - /// encoded with a length of no more than 30 characters. For example, if the - /// landing page URL is 'http://www.example.com/page', the caption URL can be - /// 'example.com'. The protocol (http://) is optional, but the URL can't - /// contain spaces or special characters. This role is only supported in - /// following creative_type: * `CREATIVE_TYPE_NATIVE` * - /// `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO` - /// - "ASSET_ROLE_CALL_TO_ACTION" : The text to use on the call-to-action - /// button of a native creative. The content must be UTF-8 encoded with a - /// length of no more than 15 characters. This role is only supported in - /// following creative_type: * `CREATIVE_TYPE_NATIVE` * - /// `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO` - /// - "ASSET_ROLE_ADVERTISER_NAME" : The text that identifies the advertiser - /// or brand name. The content must be UTF-8 encoded with a length of no more - /// than 25 characters. This role is only supported in following - /// creative_type: * `CREATIVE_TYPE_NATIVE` * - /// `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO` - /// - "ASSET_ROLE_PRICE" : The purchase price of your app in the Google play - /// store or iOS app store (for example, $5.99). Note that this value is not - /// automatically synced with the actual value listed in the store. It will - /// always be the one provided when save the creative. The content must be - /// UTF-8 encoded with a length of no more than 15 characters. Assets of this - /// role are read-only. - /// - "ASSET_ROLE_ANDROID_APP_ID" : The ID of an Android app in the Google - /// play store. You can find this ID in the App’s Google Play Store URL after - /// ‘id’. For example, in - /// https://play.google.com/store/apps/details?id=com.company.appname the - /// identifier is com.company.appname. Assets of this role are read-only. - /// - "ASSET_ROLE_IOS_APP_ID" : The ID of an iOS app in the Apple app store. - /// This ID number can be found in the Apple App Store URL as the string of - /// numbers directly after "id". For example, in - /// https://apps.apple.com/us/app/gmail-email-by-google/id422689480 the ID is - /// 422689480. Assets of this role are read-only. - /// - "ASSET_ROLE_RATING" : The rating of an app in the Google play store or - /// iOS app store. Note that this value is not automatically synced with the - /// actual rating in the store. It will always be the one provided when save - /// the creative. Assets of this role are read-only. - /// - "ASSET_ROLE_ICON" : The icon of a creative. This role is only supported - /// and required in following creative_type: * `CREATIVE_TYPE_NATIVE` * - /// `CREATIVE_TYPE_NATIVE_SITE_SQUARE` - /// - "ASSET_ROLE_COVER_IMAGE" : The cover image of a native video creative. - /// This role is only supported and required in following creative_type: * - /// `CREATIVE_TYPE_VIDEO` - core.String? role; - - AssetAssociation({ - this.asset, - this.role, - }); - - AssetAssociation.fromJson(core.Map json_) - : this( - asset: json_.containsKey('asset') - ? Asset.fromJson( - json_['asset'] as core.Map) - : null, - role: json_.containsKey('role') ? json_['role'] as core.String : null, - ); - - core.Map toJson() => { - if (asset != null) 'asset': asset!, - if (role != null) 'role': role!, - }; -} - -/// An assignment between a targetable inventory source and an inventory source -/// group. -typedef AssignedInventorySource = $AssignedInventorySource; - -/// An assignment between a location list and a relevant targeting option. -typedef AssignedLocation = $AssignedLocation; - -/// A single assigned targeting option, which defines the state of a targeting -/// option for an entity with targeting settings. -class AssignedTargetingOption { - /// Age range details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_AGE_RANGE`. - AgeRangeAssignedTargetingOptionDetails? ageRangeDetails; - - /// App category details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_APP_CATEGORY`. - AppCategoryAssignedTargetingOptionDetails? appCategoryDetails; - - /// App details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_APP`. - AppAssignedTargetingOptionDetails? appDetails; - - /// The unique ID of the assigned targeting option. - /// - /// The ID is only unique within a given resource and targeting type. It may - /// be reused in other contexts. - /// - /// Output only. - core.String? assignedTargetingOptionId; - - /// Audience targeting details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_AUDIENCE_GROUP`. You can only target one audience group - /// option per resource. - AudienceGroupAssignedTargetingOptionDetails? audienceGroupDetails; - - /// Audio content type details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_AUDIO_CONTENT_TYPE`. - AudioContentTypeAssignedTargetingOptionDetails? audioContentTypeDetails; - - /// Authorized seller status details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`. You can only target one - /// authorized seller status option per resource. If a resource doesn't have - /// an authorized seller status option, all authorized sellers indicated as - /// DIRECT or RESELLER in the ads.txt file are targeted by default. - AuthorizedSellerStatusAssignedTargetingOptionDetails? - authorizedSellerStatusDetails; - - /// Browser details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_BROWSER`. - BrowserAssignedTargetingOptionDetails? browserDetails; - - /// Business chain details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_BUSINESS_CHAIN`. - BusinessChainAssignedTargetingOptionDetails? businessChainDetails; - - /// Carrier and ISP details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_CARRIER_AND_ISP`. - CarrierAndIspAssignedTargetingOptionDetails? carrierAndIspDetails; - - /// Category details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_CATEGORY`. Targeting a category will also target its - /// subcategories. If a category is excluded from targeting and a subcategory - /// is included, the exclusion will take precedence. - CategoryAssignedTargetingOptionDetails? categoryDetails; - - /// Channel details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_CHANNEL`. - ChannelAssignedTargetingOptionDetails? channelDetails; - - /// Content duration details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_CONTENT_DURATION`. - ContentDurationAssignedTargetingOptionDetails? contentDurationDetails; - - /// Content genre details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_CONTENT_GENRE`. - ContentGenreAssignedTargetingOptionDetails? contentGenreDetails; - - /// Content instream position details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`. - ContentInstreamPositionAssignedTargetingOptionDetails? - contentInstreamPositionDetails; - - /// Content outstream position details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`. - ContentOutstreamPositionAssignedTargetingOptionDetails? - contentOutstreamPositionDetails; - - /// Content duration details. - /// - /// This field will be populated when the TargetingType is - /// `TARGETING_TYPE_CONTENT_STREAM_TYPE`. - ContentStreamTypeAssignedTargetingOptionDetails? contentStreamTypeDetails; - - /// Day and time details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_DAY_AND_TIME`. - DayAndTimeAssignedTargetingOptionDetails? dayAndTimeDetails; - - /// Device make and model details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_DEVICE_MAKE_MODEL`. - DeviceMakeModelAssignedTargetingOptionDetails? deviceMakeModelDetails; - - /// Device Type details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_DEVICE_TYPE`. - DeviceTypeAssignedTargetingOptionDetails? deviceTypeDetails; - - /// Digital content label details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION`. Digital content labels - /// are targeting exclusions. Advertiser level digital content label - /// exclusions, if set, are always applied in serving (even though they aren't - /// visible in resource settings). Resource settings can exclude content - /// labels in addition to advertiser exclusions, but can't override them. A - /// line item won't serve if all the digital content labels are excluded. - DigitalContentLabelAssignedTargetingOptionDetails? - digitalContentLabelExclusionDetails; - - /// Environment details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_ENVIRONMENT`. - EnvironmentAssignedTargetingOptionDetails? environmentDetails; - - /// Exchange details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_EXCHANGE`. - ExchangeAssignedTargetingOptionDetails? exchangeDetails; - - /// Gender details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_GENDER`. - GenderAssignedTargetingOptionDetails? genderDetails; - - /// Geographic region details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_GEO_REGION`. - GeoRegionAssignedTargetingOptionDetails? geoRegionDetails; - - /// Household income details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_HOUSEHOLD_INCOME`. - HouseholdIncomeAssignedTargetingOptionDetails? householdIncomeDetails; - - /// The inheritance status of the assigned targeting option. - /// - /// Output only. - /// Possible string values are: - /// - "INHERITANCE_UNSPECIFIED" : The inheritance is unspecified or unknown. - /// - "NOT_INHERITED" : The assigned targeting option is not inherited from - /// higher level entity. - /// - "INHERITED_FROM_PARTNER" : The assigned targeting option is inherited - /// from partner targeting settings. - /// - "INHERITED_FROM_ADVERTISER" : The assigned targeting option is inherited - /// from advertiser targeting settings. - core.String? inheritance; - - /// Inventory source details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_INVENTORY_SOURCE`. - InventorySourceAssignedTargetingOptionDetails? inventorySourceDetails; - - /// Inventory source group details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_INVENTORY_SOURCE_GROUP`. - InventorySourceGroupAssignedTargetingOptionDetails? - inventorySourceGroupDetails; - - /// Keyword details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_KEYWORD`. A maximum of 5000 direct negative keywords can - /// be assigned to a resource. No limit on number of positive keywords that - /// can be assigned. - KeywordAssignedTargetingOptionDetails? keywordDetails; - - /// Language details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_LANGUAGE`. - LanguageAssignedTargetingOptionDetails? languageDetails; - - /// The resource name for this assigned targeting option. - /// - /// Output only. - core.String? name; - - /// Native content position details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_NATIVE_CONTENT_POSITION`. - NativeContentPositionAssignedTargetingOptionDetails? - nativeContentPositionDetails; - - /// Keyword details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. A maximum of 4 negative keyword - /// lists can be assigned to a resource. - NegativeKeywordListAssignedTargetingOptionDetails? negativeKeywordListDetails; - - /// Open Measurement enabled inventory details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_OMID`. - OmidAssignedTargetingOptionDetails? omidDetails; - - /// On screen position details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_ON_SCREEN_POSITION`. - OnScreenPositionAssignedTargetingOptionDetails? onScreenPositionDetails; - - /// Operating system details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_OPERATING_SYSTEM`. - OperatingSystemAssignedTargetingOptionDetails? operatingSystemDetails; - - /// Parental status details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_PARENTAL_STATUS`. - ParentalStatusAssignedTargetingOptionDetails? parentalStatusDetails; - - /// POI details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_POI`. - PoiAssignedTargetingOptionDetails? poiDetails; - - /// Proximity location list details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. - ProximityLocationListAssignedTargetingOptionDetails? - proximityLocationListDetails; - - /// Regional location list details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_REGIONAL_LOCATION_LIST`. - RegionalLocationListAssignedTargetingOptionDetails? - regionalLocationListDetails; - - /// Sensitive category details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`. Sensitive categories are - /// targeting exclusions. Advertiser level sensitive category exclusions, if - /// set, are always applied in serving (even though they aren't visible in - /// resource settings). Resource settings can exclude sensitive categories in - /// addition to advertiser exclusions, but can't override them. - SensitiveCategoryAssignedTargetingOptionDetails? - sensitiveCategoryExclusionDetails; - - /// Sub-exchange details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_SUB_EXCHANGE`. - SubExchangeAssignedTargetingOptionDetails? subExchangeDetails; - - /// Identifies the type of this assigned targeting option. - /// - /// Output only. - /// Possible string values are: - /// - "TARGETING_TYPE_UNSPECIFIED" : Default value when type is not specified - /// or is unknown in this version. - /// - "TARGETING_TYPE_CHANNEL" : Target a channel (a custom group of related - /// websites or apps). - /// - "TARGETING_TYPE_APP_CATEGORY" : Target an app category (for example, - /// education or puzzle games). - /// - "TARGETING_TYPE_APP" : Target a specific app (for example, Angry Birds). - /// - "TARGETING_TYPE_URL" : Target a specific url (for example, quora.com). - /// - "TARGETING_TYPE_DAY_AND_TIME" : Target ads during a chosen time period - /// on a specific day. - /// - "TARGETING_TYPE_AGE_RANGE" : Target ads to a specific age range (for - /// example, 18-24). - /// - "TARGETING_TYPE_REGIONAL_LOCATION_LIST" : Target ads to the specified - /// regions on a regional location list. - /// - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" : Target ads to the specified - /// points of interest on a proximity location list. - /// - "TARGETING_TYPE_GENDER" : Target ads to a specific gender (for example, - /// female or male). - /// - "TARGETING_TYPE_VIDEO_PLAYER_SIZE" : Target a specific video player size - /// for video ads. - /// - "TARGETING_TYPE_USER_REWARDED_CONTENT" : Target user rewarded content - /// for video ads. - /// - "TARGETING_TYPE_PARENTAL_STATUS" : Target ads to a specific parental - /// status (for example, parent or not a parent). - /// - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" : Target video or audio ads - /// in a specific content instream position (for example, pre-roll, mid-roll, - /// or post-roll). - /// - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" : Target ads in a specific - /// content outstream position. - /// - "TARGETING_TYPE_DEVICE_TYPE" : Target ads to a specific device type (for - /// example, tablet or connected TV). - /// - "TARGETING_TYPE_AUDIENCE_GROUP" : Target ads to an audience or groups of - /// audiences. Singleton field, at most one can exist on a single Lineitem at - /// a time. - /// - "TARGETING_TYPE_BROWSER" : Target ads to specific web browsers (for - /// example, Chrome). - /// - "TARGETING_TYPE_HOUSEHOLD_INCOME" : Target ads to a specific household - /// income range (for example, top 10%). - /// - "TARGETING_TYPE_ON_SCREEN_POSITION" : Target ads in a specific on screen - /// position. - /// - "TARGETING_TYPE_THIRD_PARTY_VERIFIER" : Filter web sites through third - /// party verification (for example, IAS or DoubleVerify). - /// - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" : Filter web sites by - /// specific digital content label ratings (for example, DL-MA: suitable only - /// for mature audiences). - /// - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" : Filter website content - /// by sensitive categories (for example, adult). - /// - "TARGETING_TYPE_ENVIRONMENT" : Target ads to a specific environment (for - /// example, web or app). - /// - "TARGETING_TYPE_CARRIER_AND_ISP" : Target ads to a specific network - /// carrier or internet service provider (ISP) (for example, Comcast or - /// Orange). - /// - "TARGETING_TYPE_OPERATING_SYSTEM" : Target ads to a specific operating - /// system (for example, macOS). - /// - "TARGETING_TYPE_DEVICE_MAKE_MODEL" : Target ads to a specific device - /// make or model (for example, Roku or Samsung). - /// - "TARGETING_TYPE_KEYWORD" : Target ads to a specific keyword (for - /// example, dog or retriever). - /// - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" : Target ads to a specific - /// negative keyword list. - /// - "TARGETING_TYPE_VIEWABILITY" : Target ads to a specific viewability (for - /// example, 80% viewable). - /// - "TARGETING_TYPE_CATEGORY" : Target ads to a specific content category - /// (for example, arts & entertainment). - /// - "TARGETING_TYPE_INVENTORY_SOURCE" : Purchase impressions from specific - /// deals and auction packages. - /// - "TARGETING_TYPE_LANGUAGE" : Target ads to a specific language (for - /// example, English or Japanese). - /// - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" : Target ads to ads.txt - /// authorized sellers. If no targeting option of this type is assigned, the - /// resource uses the "Authorized Direct Sellers and Resellers" option by - /// default. - /// - "TARGETING_TYPE_GEO_REGION" : Target ads to a specific regional location - /// (for example, a city or state). - /// - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" : Purchase impressions from a - /// group of deals and auction packages. - /// - "TARGETING_TYPE_EXCHANGE" : Purchase impressions from specific - /// exchanges. - /// - "TARGETING_TYPE_SUB_EXCHANGE" : Purchase impressions from specific - /// sub-exchanges. - /// - "TARGETING_TYPE_POI" : Target ads around a specific point of interest, - /// such as a notable building, a street address, or latitude/longitude - /// coordinates. - /// - "TARGETING_TYPE_BUSINESS_CHAIN" : Target ads around locations of a - /// business chain within a specific geo region. - /// - "TARGETING_TYPE_CONTENT_DURATION" : Target ads to a specific video - /// content duration. - /// - "TARGETING_TYPE_CONTENT_STREAM_TYPE" : Target ads to a specific video - /// content stream type. - /// - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" : Target ads to a specific - /// native content position. - /// - "TARGETING_TYPE_OMID" : Target ads in an Open Measurement enabled - /// inventory. - /// - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" : Target ads to a specific audio - /// content type. - /// - "TARGETING_TYPE_CONTENT_GENRE" : Target ads to a specific content genre. - core.String? targetingType; - - /// Third party verification details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_THIRD_PARTY_VERIFIER`. - ThirdPartyVerifierAssignedTargetingOptionDetails? thirdPartyVerifierDetails; - - /// URL details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_URL`. - UrlAssignedTargetingOptionDetails? urlDetails; - - /// User rewarded content details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_USER_REWARDED_CONTENT`. - UserRewardedContentAssignedTargetingOptionDetails? userRewardedContentDetails; - - /// Video player size details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_VIDEO_PLAYER_SIZE`. - VideoPlayerSizeAssignedTargetingOptionDetails? videoPlayerSizeDetails; - - /// Viewability details. - /// - /// This field will be populated when the targeting_type is - /// `TARGETING_TYPE_VIEWABILITY`. You can only target one viewability option - /// per resource. - ViewabilityAssignedTargetingOptionDetails? viewabilityDetails; - - AssignedTargetingOption({ - this.ageRangeDetails, - this.appCategoryDetails, - this.appDetails, - this.assignedTargetingOptionId, - this.audienceGroupDetails, - this.audioContentTypeDetails, - this.authorizedSellerStatusDetails, - this.browserDetails, - this.businessChainDetails, - this.carrierAndIspDetails, - this.categoryDetails, - this.channelDetails, - this.contentDurationDetails, - this.contentGenreDetails, - this.contentInstreamPositionDetails, - this.contentOutstreamPositionDetails, - this.contentStreamTypeDetails, - this.dayAndTimeDetails, - this.deviceMakeModelDetails, - this.deviceTypeDetails, - this.digitalContentLabelExclusionDetails, - this.environmentDetails, - this.exchangeDetails, - this.genderDetails, - this.geoRegionDetails, - this.householdIncomeDetails, - this.inheritance, - this.inventorySourceDetails, - this.inventorySourceGroupDetails, - this.keywordDetails, - this.languageDetails, - this.name, - this.nativeContentPositionDetails, - this.negativeKeywordListDetails, - this.omidDetails, - this.onScreenPositionDetails, - this.operatingSystemDetails, - this.parentalStatusDetails, - this.poiDetails, - this.proximityLocationListDetails, - this.regionalLocationListDetails, - this.sensitiveCategoryExclusionDetails, - this.subExchangeDetails, - this.targetingType, - this.thirdPartyVerifierDetails, - this.urlDetails, - this.userRewardedContentDetails, - this.videoPlayerSizeDetails, - this.viewabilityDetails, - }); - - AssignedTargetingOption.fromJson(core.Map json_) - : this( - ageRangeDetails: json_.containsKey('ageRangeDetails') - ? AgeRangeAssignedTargetingOptionDetails.fromJson( - json_['ageRangeDetails'] - as core.Map) - : null, - appCategoryDetails: json_.containsKey('appCategoryDetails') - ? AppCategoryAssignedTargetingOptionDetails.fromJson( - json_['appCategoryDetails'] - as core.Map) - : null, - appDetails: json_.containsKey('appDetails') - ? AppAssignedTargetingOptionDetails.fromJson( - json_['appDetails'] as core.Map) - : null, - assignedTargetingOptionId: - json_.containsKey('assignedTargetingOptionId') - ? json_['assignedTargetingOptionId'] as core.String - : null, - audienceGroupDetails: json_.containsKey('audienceGroupDetails') - ? AudienceGroupAssignedTargetingOptionDetails.fromJson( - json_['audienceGroupDetails'] - as core.Map) - : null, - audioContentTypeDetails: json_.containsKey('audioContentTypeDetails') - ? AudioContentTypeAssignedTargetingOptionDetails.fromJson( - json_['audioContentTypeDetails'] - as core.Map) - : null, - authorizedSellerStatusDetails: json_ - .containsKey('authorizedSellerStatusDetails') - ? AuthorizedSellerStatusAssignedTargetingOptionDetails.fromJson( - json_['authorizedSellerStatusDetails'] - as core.Map) - : null, - browserDetails: json_.containsKey('browserDetails') - ? BrowserAssignedTargetingOptionDetails.fromJson( - json_['browserDetails'] - as core.Map) - : null, - businessChainDetails: json_.containsKey('businessChainDetails') - ? BusinessChainAssignedTargetingOptionDetails.fromJson( - json_['businessChainDetails'] - as core.Map) - : null, - carrierAndIspDetails: json_.containsKey('carrierAndIspDetails') - ? CarrierAndIspAssignedTargetingOptionDetails.fromJson( - json_['carrierAndIspDetails'] - as core.Map) - : null, - categoryDetails: json_.containsKey('categoryDetails') - ? CategoryAssignedTargetingOptionDetails.fromJson( - json_['categoryDetails'] - as core.Map) - : null, - channelDetails: json_.containsKey('channelDetails') - ? ChannelAssignedTargetingOptionDetails.fromJson( - json_['channelDetails'] - as core.Map) - : null, - contentDurationDetails: json_.containsKey('contentDurationDetails') - ? ContentDurationAssignedTargetingOptionDetails.fromJson( - json_['contentDurationDetails'] - as core.Map) - : null, - contentGenreDetails: json_.containsKey('contentGenreDetails') - ? ContentGenreAssignedTargetingOptionDetails.fromJson( - json_['contentGenreDetails'] - as core.Map) - : null, - contentInstreamPositionDetails: json_ - .containsKey('contentInstreamPositionDetails') - ? ContentInstreamPositionAssignedTargetingOptionDetails.fromJson( - json_['contentInstreamPositionDetails'] - as core.Map) - : null, - contentOutstreamPositionDetails: json_ - .containsKey('contentOutstreamPositionDetails') - ? ContentOutstreamPositionAssignedTargetingOptionDetails.fromJson( - json_['contentOutstreamPositionDetails'] - as core.Map) - : null, - contentStreamTypeDetails: - json_.containsKey('contentStreamTypeDetails') - ? ContentStreamTypeAssignedTargetingOptionDetails.fromJson( - json_['contentStreamTypeDetails'] - as core.Map) - : null, - dayAndTimeDetails: json_.containsKey('dayAndTimeDetails') - ? DayAndTimeAssignedTargetingOptionDetails.fromJson( - json_['dayAndTimeDetails'] - as core.Map) - : null, - deviceMakeModelDetails: json_.containsKey('deviceMakeModelDetails') - ? DeviceMakeModelAssignedTargetingOptionDetails.fromJson( - json_['deviceMakeModelDetails'] - as core.Map) - : null, - deviceTypeDetails: json_.containsKey('deviceTypeDetails') - ? DeviceTypeAssignedTargetingOptionDetails.fromJson( - json_['deviceTypeDetails'] - as core.Map) - : null, - digitalContentLabelExclusionDetails: - json_.containsKey('digitalContentLabelExclusionDetails') - ? DigitalContentLabelAssignedTargetingOptionDetails.fromJson( - json_['digitalContentLabelExclusionDetails'] - as core.Map) - : null, - environmentDetails: json_.containsKey('environmentDetails') - ? EnvironmentAssignedTargetingOptionDetails.fromJson( - json_['environmentDetails'] - as core.Map) - : null, - exchangeDetails: json_.containsKey('exchangeDetails') - ? ExchangeAssignedTargetingOptionDetails.fromJson( - json_['exchangeDetails'] - as core.Map) - : null, - genderDetails: json_.containsKey('genderDetails') - ? GenderAssignedTargetingOptionDetails.fromJson( - json_['genderDetails'] as core.Map) - : null, - geoRegionDetails: json_.containsKey('geoRegionDetails') - ? GeoRegionAssignedTargetingOptionDetails.fromJson( - json_['geoRegionDetails'] - as core.Map) - : null, - householdIncomeDetails: json_.containsKey('householdIncomeDetails') - ? HouseholdIncomeAssignedTargetingOptionDetails.fromJson( - json_['householdIncomeDetails'] - as core.Map) - : null, - inheritance: json_.containsKey('inheritance') - ? json_['inheritance'] as core.String - : null, - inventorySourceDetails: json_.containsKey('inventorySourceDetails') - ? InventorySourceAssignedTargetingOptionDetails.fromJson( - json_['inventorySourceDetails'] - as core.Map) - : null, - inventorySourceGroupDetails: - json_.containsKey('inventorySourceGroupDetails') - ? InventorySourceGroupAssignedTargetingOptionDetails.fromJson( - json_['inventorySourceGroupDetails'] - as core.Map) - : null, - keywordDetails: json_.containsKey('keywordDetails') - ? KeywordAssignedTargetingOptionDetails.fromJson( - json_['keywordDetails'] - as core.Map) - : null, - languageDetails: json_.containsKey('languageDetails') - ? LanguageAssignedTargetingOptionDetails.fromJson( - json_['languageDetails'] - as core.Map) - : null, - name: json_.containsKey('name') ? json_['name'] as core.String : null, - nativeContentPositionDetails: json_ - .containsKey('nativeContentPositionDetails') - ? NativeContentPositionAssignedTargetingOptionDetails.fromJson( - json_['nativeContentPositionDetails'] - as core.Map) - : null, - negativeKeywordListDetails: - json_.containsKey('negativeKeywordListDetails') - ? NegativeKeywordListAssignedTargetingOptionDetails.fromJson( - json_['negativeKeywordListDetails'] - as core.Map) - : null, - omidDetails: json_.containsKey('omidDetails') - ? OmidAssignedTargetingOptionDetails.fromJson( - json_['omidDetails'] as core.Map) - : null, - onScreenPositionDetails: json_.containsKey('onScreenPositionDetails') - ? OnScreenPositionAssignedTargetingOptionDetails.fromJson( - json_['onScreenPositionDetails'] - as core.Map) - : null, - operatingSystemDetails: json_.containsKey('operatingSystemDetails') - ? OperatingSystemAssignedTargetingOptionDetails.fromJson( - json_['operatingSystemDetails'] - as core.Map) - : null, - parentalStatusDetails: json_.containsKey('parentalStatusDetails') - ? ParentalStatusAssignedTargetingOptionDetails.fromJson( - json_['parentalStatusDetails'] - as core.Map) - : null, - poiDetails: json_.containsKey('poiDetails') - ? PoiAssignedTargetingOptionDetails.fromJson( - json_['poiDetails'] as core.Map) - : null, - proximityLocationListDetails: json_ - .containsKey('proximityLocationListDetails') - ? ProximityLocationListAssignedTargetingOptionDetails.fromJson( - json_['proximityLocationListDetails'] - as core.Map) - : null, - regionalLocationListDetails: - json_.containsKey('regionalLocationListDetails') - ? RegionalLocationListAssignedTargetingOptionDetails.fromJson( - json_['regionalLocationListDetails'] - as core.Map) - : null, - sensitiveCategoryExclusionDetails: - json_.containsKey('sensitiveCategoryExclusionDetails') - ? SensitiveCategoryAssignedTargetingOptionDetails.fromJson( - json_['sensitiveCategoryExclusionDetails'] - as core.Map) - : null, - subExchangeDetails: json_.containsKey('subExchangeDetails') - ? SubExchangeAssignedTargetingOptionDetails.fromJson( - json_['subExchangeDetails'] - as core.Map) - : null, - targetingType: json_.containsKey('targetingType') - ? json_['targetingType'] as core.String - : null, - thirdPartyVerifierDetails: - json_.containsKey('thirdPartyVerifierDetails') - ? ThirdPartyVerifierAssignedTargetingOptionDetails.fromJson( - json_['thirdPartyVerifierDetails'] - as core.Map) - : null, - urlDetails: json_.containsKey('urlDetails') - ? UrlAssignedTargetingOptionDetails.fromJson( - json_['urlDetails'] as core.Map) - : null, - userRewardedContentDetails: - json_.containsKey('userRewardedContentDetails') - ? UserRewardedContentAssignedTargetingOptionDetails.fromJson( - json_['userRewardedContentDetails'] - as core.Map) - : null, - videoPlayerSizeDetails: json_.containsKey('videoPlayerSizeDetails') - ? VideoPlayerSizeAssignedTargetingOptionDetails.fromJson( - json_['videoPlayerSizeDetails'] - as core.Map) - : null, - viewabilityDetails: json_.containsKey('viewabilityDetails') - ? ViewabilityAssignedTargetingOptionDetails.fromJson( - json_['viewabilityDetails'] - as core.Map) - : null, - ); - - core.Map toJson() => { - if (ageRangeDetails != null) 'ageRangeDetails': ageRangeDetails!, - if (appCategoryDetails != null) - 'appCategoryDetails': appCategoryDetails!, - if (appDetails != null) 'appDetails': appDetails!, - if (assignedTargetingOptionId != null) - 'assignedTargetingOptionId': assignedTargetingOptionId!, - if (audienceGroupDetails != null) - 'audienceGroupDetails': audienceGroupDetails!, - if (audioContentTypeDetails != null) - 'audioContentTypeDetails': audioContentTypeDetails!, - if (authorizedSellerStatusDetails != null) - 'authorizedSellerStatusDetails': authorizedSellerStatusDetails!, - if (browserDetails != null) 'browserDetails': browserDetails!, - if (businessChainDetails != null) - 'businessChainDetails': businessChainDetails!, - if (carrierAndIspDetails != null) - 'carrierAndIspDetails': carrierAndIspDetails!, - if (categoryDetails != null) 'categoryDetails': categoryDetails!, - if (channelDetails != null) 'channelDetails': channelDetails!, - if (contentDurationDetails != null) - 'contentDurationDetails': contentDurationDetails!, - if (contentGenreDetails != null) - 'contentGenreDetails': contentGenreDetails!, - if (contentInstreamPositionDetails != null) - 'contentInstreamPositionDetails': contentInstreamPositionDetails!, - if (contentOutstreamPositionDetails != null) - 'contentOutstreamPositionDetails': contentOutstreamPositionDetails!, - if (contentStreamTypeDetails != null) - 'contentStreamTypeDetails': contentStreamTypeDetails!, - if (dayAndTimeDetails != null) 'dayAndTimeDetails': dayAndTimeDetails!, - if (deviceMakeModelDetails != null) - 'deviceMakeModelDetails': deviceMakeModelDetails!, - if (deviceTypeDetails != null) 'deviceTypeDetails': deviceTypeDetails!, - if (digitalContentLabelExclusionDetails != null) - 'digitalContentLabelExclusionDetails': - digitalContentLabelExclusionDetails!, - if (environmentDetails != null) - 'environmentDetails': environmentDetails!, - if (exchangeDetails != null) 'exchangeDetails': exchangeDetails!, - if (genderDetails != null) 'genderDetails': genderDetails!, - if (geoRegionDetails != null) 'geoRegionDetails': geoRegionDetails!, - if (householdIncomeDetails != null) - 'householdIncomeDetails': householdIncomeDetails!, - if (inheritance != null) 'inheritance': inheritance!, - if (inventorySourceDetails != null) - 'inventorySourceDetails': inventorySourceDetails!, - if (inventorySourceGroupDetails != null) - 'inventorySourceGroupDetails': inventorySourceGroupDetails!, - if (keywordDetails != null) 'keywordDetails': keywordDetails!, - if (languageDetails != null) 'languageDetails': languageDetails!, - if (name != null) 'name': name!, - if (nativeContentPositionDetails != null) - 'nativeContentPositionDetails': nativeContentPositionDetails!, - if (negativeKeywordListDetails != null) - 'negativeKeywordListDetails': negativeKeywordListDetails!, - if (omidDetails != null) 'omidDetails': omidDetails!, - if (onScreenPositionDetails != null) - 'onScreenPositionDetails': onScreenPositionDetails!, - if (operatingSystemDetails != null) - 'operatingSystemDetails': operatingSystemDetails!, - if (parentalStatusDetails != null) - 'parentalStatusDetails': parentalStatusDetails!, - if (poiDetails != null) 'poiDetails': poiDetails!, - if (proximityLocationListDetails != null) - 'proximityLocationListDetails': proximityLocationListDetails!, - if (regionalLocationListDetails != null) - 'regionalLocationListDetails': regionalLocationListDetails!, - if (sensitiveCategoryExclusionDetails != null) - 'sensitiveCategoryExclusionDetails': - sensitiveCategoryExclusionDetails!, - if (subExchangeDetails != null) - 'subExchangeDetails': subExchangeDetails!, - if (targetingType != null) 'targetingType': targetingType!, - if (thirdPartyVerifierDetails != null) - 'thirdPartyVerifierDetails': thirdPartyVerifierDetails!, - if (urlDetails != null) 'urlDetails': urlDetails!, - if (userRewardedContentDetails != null) - 'userRewardedContentDetails': userRewardedContentDetails!, - if (videoPlayerSizeDetails != null) - 'videoPlayerSizeDetails': videoPlayerSizeDetails!, - if (viewabilityDetails != null) - 'viewabilityDetails': viewabilityDetails!, - }; -} - -/// A single assigned user role, which defines a user's authorized interaction -/// with a specified partner or advertiser. -typedef AssignedUserRole = $AssignedUserRole; - -/// Assigned audience group targeting option details. -/// -/// This will be populated in the details field of an AssignedTargetingOption -/// when targeting_type is `TARGETING_TYPE_AUDIENCE_GROUP`. The relation between -/// each group is UNION, except for -/// excluded_first_and_third_party_audience_group and -/// excluded_google_audience_group, of which COMPLEMENT is used as an -/// INTERSECTION with other groups. -class AudienceGroupAssignedTargetingOptionDetails { - /// The first and third party audience ids and recencies of the excluded first - /// and third party audience group. - /// - /// Used for negative targeting. The COMPLEMENT of the UNION of this group and - /// other excluded audience groups is used as an INTERSECTION to any positive - /// audience targeting. All items are logically ‘OR’ of each other. - FirstAndThirdPartyAudienceGroup? excludedFirstAndThirdPartyAudienceGroup; - - /// The Google audience ids of the excluded Google audience group. - /// - /// Used for negative targeting. The COMPLEMENT of the UNION of this group and - /// other excluded audience groups is used as an INTERSECTION to any positive - /// audience targeting. Only contains Affinity, In-market and Installed-apps - /// type Google audiences. All items are logically ‘OR’ of each other. - GoogleAudienceGroup? excludedGoogleAudienceGroup; - - /// The combined audience ids of the included combined audience group. - /// - /// Contains combined audience ids only. - CombinedAudienceGroup? includedCombinedAudienceGroup; - - /// The custom list ids of the included custom list group. - /// - /// Contains custom list ids only. - CustomListGroup? includedCustomListGroup; - - /// The first and third party audience ids and recencies of included first and - /// third party audience groups. - /// - /// Each first and third party audience group contains first and third party - /// audience ids only. The relation between each first and third party - /// audience group is INTERSECTION, and the result is UNION'ed with other - /// audience groups. Repeated groups with same settings will be ignored. - core.List? - includedFirstAndThirdPartyAudienceGroups; - - /// The Google audience ids of the included Google audience group. - /// - /// Contains Google audience ids only. - GoogleAudienceGroup? includedGoogleAudienceGroup; - - AudienceGroupAssignedTargetingOptionDetails({ - this.excludedFirstAndThirdPartyAudienceGroup, - this.excludedGoogleAudienceGroup, - this.includedCombinedAudienceGroup, - this.includedCustomListGroup, - this.includedFirstAndThirdPartyAudienceGroups, - this.includedGoogleAudienceGroup, - }); - - AudienceGroupAssignedTargetingOptionDetails.fromJson(core.Map json_) - : this( - excludedFirstAndThirdPartyAudienceGroup: - json_.containsKey('excludedFirstAndThirdPartyAudienceGroup') - ? FirstAndThirdPartyAudienceGroup.fromJson( - json_['excludedFirstAndThirdPartyAudienceGroup'] - as core.Map) - : null, - excludedGoogleAudienceGroup: - json_.containsKey('excludedGoogleAudienceGroup') - ? GoogleAudienceGroup.fromJson( - json_['excludedGoogleAudienceGroup'] - as core.Map) - : null, - includedCombinedAudienceGroup: - json_.containsKey('includedCombinedAudienceGroup') - ? CombinedAudienceGroup.fromJson( - json_['includedCombinedAudienceGroup'] - as core.Map) - : null, - includedCustomListGroup: json_.containsKey('includedCustomListGroup') - ? CustomListGroup.fromJson(json_['includedCustomListGroup'] - as core.Map) - : null, - includedFirstAndThirdPartyAudienceGroups: json_ - .containsKey('includedFirstAndThirdPartyAudienceGroups') - ? (json_['includedFirstAndThirdPartyAudienceGroups'] as core.List) - .map((value) => FirstAndThirdPartyAudienceGroup.fromJson( - value as core.Map)) - .toList() - : null, - includedGoogleAudienceGroup: - json_.containsKey('includedGoogleAudienceGroup') - ? GoogleAudienceGroup.fromJson( - json_['includedGoogleAudienceGroup'] - as core.Map) - : null, - ); - - core.Map toJson() => { - if (excludedFirstAndThirdPartyAudienceGroup != null) - 'excludedFirstAndThirdPartyAudienceGroup': - excludedFirstAndThirdPartyAudienceGroup!, - if (excludedGoogleAudienceGroup != null) - 'excludedGoogleAudienceGroup': excludedGoogleAudienceGroup!, - if (includedCombinedAudienceGroup != null) - 'includedCombinedAudienceGroup': includedCombinedAudienceGroup!, - if (includedCustomListGroup != null) - 'includedCustomListGroup': includedCustomListGroup!, - if (includedFirstAndThirdPartyAudienceGroups != null) - 'includedFirstAndThirdPartyAudienceGroups': - includedFirstAndThirdPartyAudienceGroups!, - if (includedGoogleAudienceGroup != null) - 'includedGoogleAudienceGroup': includedGoogleAudienceGroup!, - }; -} - -/// Details for audio content type assigned targeting option. -/// -/// This will be populated in the audio_content_type_details field when -/// targeting_type is `TARGETING_TYPE_AUDIO_CONTENT_TYPE`. Explicitly targeting -/// all options is not supported. Remove all audio content type targeting -/// options to achieve this effect. -class AudioContentTypeAssignedTargetingOptionDetails { - /// The audio content type. - /// - /// Required. - /// Possible string values are: - /// - "AUDIO_CONTENT_TYPE_UNSPECIFIED" : Audio content type is not specified - /// in this version. This enum is a place holder for a default value and does - /// not represent a real content stream type. - /// - "AUDIO_CONTENT_TYPE_UNKNOWN" : The audio content type is unknown. - /// - "AUDIO_CONTENT_TYPE_MUSIC" : The audio content type is music. - /// - "AUDIO_CONTENT_TYPE_BROADCAST" : The audio content type is broadcast. - /// - "AUDIO_CONTENT_TYPE_PODCAST" : The audio content type is podcast. - core.String? audioContentType; - - /// The targeting_option_id field when targeting_type is - /// `TARGETING_TYPE_AUDIO_CONTENT_TYPE`. - /// - /// Required. - core.String? targetingOptionId; - - AudioContentTypeAssignedTargetingOptionDetails({ - this.audioContentType, - this.targetingOptionId, - }); - - AudioContentTypeAssignedTargetingOptionDetails.fromJson(core.Map json_) - : this( - audioContentType: json_.containsKey('audioContentType') - ? json_['audioContentType'] as core.String - : null, - targetingOptionId: json_.containsKey('targetingOptionId') - ? json_['targetingOptionId'] as core.String - : null, - ); - - core.Map toJson() => { - if (audioContentType != null) 'audioContentType': audioContentType!, - if (targetingOptionId != null) 'targetingOptionId': targetingOptionId!, - }; -} - -/// Represents a targetable audio content type. -/// -/// This will be populated in the audio_content_type_details field when -/// targeting_type is `TARGETING_TYPE_AUDIO_CONTENT_TYPE`. -typedef AudioContentTypeTargetingOptionDetails - = $AudioContentTypeTargetingOptionDetails; - -/// The length an audio or a video has been played. -typedef AudioVideoOffset = $AudioVideoOffset; - -/// Response message for AdvertiserService.AuditAdvertiser. -typedef AuditAdvertiserResponse = $AuditAdvertiserResponse; - -/// Represents an assigned authorized seller status. -/// -/// This will be populated in the details field of an AssignedTargetingOption -/// when targeting_type is `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`. If a -/// resource does not have an `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS` assigned -/// targeting option, it is using the "Authorized Direct Sellers and Resellers" -/// option. -typedef AuthorizedSellerStatusAssignedTargetingOptionDetails - = $AuthorizedSellerStatusAssignedTargetingOptionDetails; - -/// Represents a targetable authorized seller status. -/// -/// This will be populated in the authorized_seller_status_details field when -/// targeting_type is `TARGETING_TYPE_AUTHORIZED_SELLER_STATUS`. -typedef AuthorizedSellerStatusTargetingOptionDetails - = $AuthorizedSellerStatusTargetingOptionDetails; - -/// Settings that control the bid strategy. -/// -/// Bid strategy determines the bid price. -class BiddingStrategy { - /// A strategy that uses a fixed bid price. - FixedBidStrategy? fixedBid; - - /// A strategy that automatically adjusts the bid to optimize to your - /// performance goal while spending the full budget. - /// - /// At insertion order level, the markup_type of line items cannot be set to - /// `PARTNER_REVENUE_MODEL_MARKUP_TYPE_CPM`. In addition, when - /// performance_goal_type is one of: * - /// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPA` * - /// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CPC` * - /// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_AV_VIEWED` , the line_item_type of - /// the insertion order line items must be either: * - /// `LINE_ITEM_TYPE_DISPLAY_DEFAULT` * `LINE_ITEM_TYPE_VIDEO_DEFAULT` , and - /// when performance_goal_type is either: * - /// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_CIVA` * - /// `BIDDING_STRATEGY_PERFORMANCE_GOAL_TYPE_IVO_TEN` the line_item_type of the - /// insertion order line items must be `LINE_ITEM_TYPE_VIDEO_DEFAULT`. - MaximizeSpendBidStrategy? maximizeSpendAutoBid; - - /// A strategy that automatically adjusts the bid to meet or beat a specified - /// performance goal. - /// - /// It is to be used only for a line item entity. - PerformanceGoalBidStrategy? performanceGoalAutoBid; - - BiddingStrategy({ - this.fixedBid, - this.maximizeSpendAutoBid, - this.performanceGoalAutoBid, - }); - - BiddingStrategy.fromJson(core.Map json_) - : this( - fixedBid: json_.containsKey('fixedBid') - ? FixedBidStrategy.fromJson( - json_['fixedBid'] as core.Map) - : null, - maximizeSpendAutoBid: json_.containsKey('maximizeSpendAutoBid') - ? MaximizeSpendBidStrategy.fromJson(json_['maximizeSpendAutoBid'] - as core.Map) - : null, - performanceGoalAutoBid: json_.containsKey('performanceGoalAutoBid') - ? PerformanceGoalBidStrategy.fromJson( - json_['performanceGoalAutoBid'] - as core.Map) - : null, - ); - - core.Map toJson() => { - if (fixedBid != null) 'fixedBid': fixedBid!, - if (maximizeSpendAutoBid != null) - 'maximizeSpendAutoBid': maximizeSpendAutoBid!, - if (performanceGoalAutoBid != null) - 'performanceGoalAutoBid': performanceGoalAutoBid!, - }; -} - -/// Details for assigned browser targeting option. -/// -/// This will be populated in the details field of an AssignedTargetingOption -/// when targeting_type is `TARGETING_TYPE_BROWSER`. -typedef BrowserAssignedTargetingOptionDetails - = $BrowserAssignedTargetingOptionDetails; - -/// Represents a targetable browser. -/// -/// This will be populated in the browser_details field when targeting_type is -/// `TARGETING_TYPE_BROWSER`. -typedef BrowserTargetingOptionDetails = $BrowserTargetingOptionDetails; - -/// Summarized information of an individual campaign budget. -class BudgetSummary { - /// Corresponds to the external_budget_id of a campaign budget. - /// - /// If the value is not set in the campaign budget, this field will be empty. - core.String? externalBudgetId; - - /// The sum of charges made under this budget before taxes, in micros of the - /// invoice's currency. - /// - /// For example, if currency_code is `USD`, then 1000000 represents one US - /// dollar. - core.String? preTaxAmountMicros; - - /// Relevant client, product, and estimate codes from the Mediaocean Prisma - /// tool. - /// - /// Only applicable for campaign budgets with an external_budget_source of - /// EXTERNAL_BUDGET_SOURCE_MEDIA_OCEAN. - PrismaCpeCode? prismaCpeCode; - - /// The amount of tax applied to charges under this budget, in micros of the - /// invoice's currency. - /// - /// For example, if currency_code is `USD`, then 1000000 represents one US - /// dollar. - core.String? taxAmountMicros; - - /// The total sum of charges made under this budget, including tax, in micros - /// of the invoice's currency. - /// - /// For example, if currency_code is `USD`, then 1000000 represents one US - /// dollar. - core.String? totalAmountMicros; - - BudgetSummary({ - this.externalBudgetId, - this.preTaxAmountMicros, - this.prismaCpeCode, - this.taxAmountMicros, - this.totalAmountMicros, - }); - - BudgetSummary.fromJson(core.Map json_) - : this( - externalBudgetId: json_.containsKey('externalBudgetId') - ? json_['externalBudgetId'] as core.String - : null, - preTaxAmountMicros: json_.containsKey('preTaxAmountMicros') - ? json_['preTaxAmountMicros'] as core.String - : null, - prismaCpeCode: json_.containsKey('prismaCpeCode') - ? PrismaCpeCode.fromJson( - json_['prismaCpeCode'] as core.Map) - : null, - taxAmountMicros: json_.containsKey('taxAmountMicros') - ? json_['taxAmountMicros'] as core.String - : null, - totalAmountMicros: json_.containsKey('totalAmountMicros') - ? json_['totalAmountMicros'] as core.String - : null, - ); - - core.Map toJson() => { - if (externalBudgetId != null) 'externalBudgetId': externalBudgetId!, - if (preTaxAmountMicros != null) - 'preTaxAmountMicros': preTaxAmountMicros!, - if (prismaCpeCode != null) 'prismaCpeCode': prismaCpeCode!, - if (taxAmountMicros != null) 'taxAmountMicros': taxAmountMicros!, - if (totalAmountMicros != null) 'totalAmountMicros': totalAmountMicros!, - }; -} - -/// Request message for BulkEditAdvertiserAssignedTargetingOptions. -class BulkEditAdvertiserAssignedTargetingOptionsRequest { - /// The assigned targeting options to create in batch, specified as a list of - /// `CreateAssignedTargetingOptionsRequest`. - /// - /// Supported targeting types: * `TARGETING_TYPE_CHANNEL` * - /// `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * - /// `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` - core.List? createRequests; - - /// The assigned targeting options to delete in batch, specified as a list of - /// `DeleteAssignedTargetingOptionsRequest`. - /// - /// Supported targeting types: * `TARGETING_TYPE_CHANNEL` * - /// `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION` * `TARGETING_TYPE_OMID` * - /// `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION` - core.List? deleteRequests; - - BulkEditAdvertiserAssignedTargetingOptionsRequest({ - this.createRequests, - this.deleteRequests, - }); - - BulkEditAdvertiserAssignedTargetingOptionsRequest.fromJson(core.Map json_) - : this( - createRequests: json_.containsKey('createRequests') - ? (json_['createRequests'] as core.List) - .map((value) => - CreateAssignedTargetingOptionsRequest.fromJson( - value as core.Map)) - .toList() - : null, - deleteRequests: json_.containsKey('deleteRequests') - ? (json_['deleteRequests'] as core.List) - .map((value) => - DeleteAssignedTargetingOptionsRequest.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (createRequests != null) 'createRequests': createRequests!, - if (deleteRequests != null) 'deleteRequests': deleteRequests!, - }; -} - -class BulkEditAdvertiserAssignedTargetingOptionsResponse { - /// The list of assigned targeting options that have been successfully - /// created. - /// - /// This list will be absent if empty. - core.List? createdAssignedTargetingOptions; - - BulkEditAdvertiserAssignedTargetingOptionsResponse({ - this.createdAssignedTargetingOptions, - }); - - BulkEditAdvertiserAssignedTargetingOptionsResponse.fromJson(core.Map json_) - : this( - createdAssignedTargetingOptions: - json_.containsKey('createdAssignedTargetingOptions') - ? (json_['createdAssignedTargetingOptions'] as core.List) - .map((value) => AssignedTargetingOption.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (createdAssignedTargetingOptions != null) - 'createdAssignedTargetingOptions': createdAssignedTargetingOptions!, - }; -} - -/// Request message for AssignedInventorySourceService.BulkEdit. -class BulkEditAssignedInventorySourcesRequest { - /// The ID of the advertiser that owns the parent inventory source group. - /// - /// The parent partner does not have access to these assigned inventory - /// sources. - core.String? advertiserId; - - /// The assigned inventory sources to create in bulk, specified as a list of - /// AssignedInventorySources. - core.List? createdAssignedInventorySources; - - /// The IDs of the assigned inventory sources to delete in bulk, specified as - /// a list of assigned_inventory_source_ids. - core.List? deletedAssignedInventorySources; - - /// The ID of the partner that owns the inventory source group. - /// - /// Only this partner has write access to these assigned inventory sources. - core.String? partnerId; - - BulkEditAssignedInventorySourcesRequest({ - this.advertiserId, - this.createdAssignedInventorySources, - this.deletedAssignedInventorySources, - this.partnerId, - }); - - BulkEditAssignedInventorySourcesRequest.fromJson(core.Map json_) - : this( - advertiserId: json_.containsKey('advertiserId') - ? json_['advertiserId'] as core.String - : null, - createdAssignedInventorySources: - json_.containsKey('createdAssignedInventorySources') - ? (json_['createdAssignedInventorySources'] as core.List) - .map((value) => AssignedInventorySource.fromJson( - value as core.Map)) - .toList() - : null, - deletedAssignedInventorySources: - json_.containsKey('deletedAssignedInventorySources') - ? (json_['deletedAssignedInventorySources'] as core.List) - .map((value) => value as core.String) - .toList() - : null, - partnerId: json_.containsKey('partnerId') - ? json_['partnerId'] as core.String - : null, - ); - - core.Map toJson() => { - if (advertiserId != null) 'advertiserId': advertiserId!, - if (createdAssignedInventorySources != null) - 'createdAssignedInventorySources': createdAssignedInventorySources!, - if (deletedAssignedInventorySources != null) - 'deletedAssignedInventorySources': deletedAssignedInventorySources!, - if (partnerId != null) 'partnerId': partnerId!, - }; -} - -/// Response message for AssignedInventorySourceService.BulkEdit. -class BulkEditAssignedInventorySourcesResponse { - /// The list of assigned inventory sources that have been successfully - /// created. - /// - /// This list will be absent if empty. - core.List? assignedInventorySources; - - BulkEditAssignedInventorySourcesResponse({ - this.assignedInventorySources, - }); - - BulkEditAssignedInventorySourcesResponse.fromJson(core.Map json_) - : this( - assignedInventorySources: - json_.containsKey('assignedInventorySources') - ? (json_['assignedInventorySources'] as core.List) - .map((value) => AssignedInventorySource.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (assignedInventorySources != null) - 'assignedInventorySources': assignedInventorySources!, - }; -} - -/// Request message for AssignedLocationService.BulkEditAssignedLocations. -class BulkEditAssignedLocationsRequest { - /// The assigned locations to create in bulk, specified as a list of - /// AssignedLocation resources. - core.List? createdAssignedLocations; - - /// The IDs of the assigned locations to delete in bulk, specified as a list - /// of assignedLocationId values. - core.List? deletedAssignedLocations; - - BulkEditAssignedLocationsRequest({ - this.createdAssignedLocations, - this.deletedAssignedLocations, - }); - - BulkEditAssignedLocationsRequest.fromJson(core.Map json_) - : this( - createdAssignedLocations: - json_.containsKey('createdAssignedLocations') - ? (json_['createdAssignedLocations'] as core.List) - .map((value) => AssignedLocation.fromJson( - value as core.Map)) - .toList() - : null, - deletedAssignedLocations: - json_.containsKey('deletedAssignedLocations') - ? (json_['deletedAssignedLocations'] as core.List) - .map((value) => value as core.String) - .toList() - : null, - ); - - core.Map toJson() => { - if (createdAssignedLocations != null) - 'createdAssignedLocations': createdAssignedLocations!, - if (deletedAssignedLocations != null) - 'deletedAssignedLocations': deletedAssignedLocations!, - }; -} - -class BulkEditAssignedLocationsResponse { - /// The list of assigned locations that have been successfully created. - /// - /// This list will be absent if empty. - core.List? assignedLocations; - - BulkEditAssignedLocationsResponse({ - this.assignedLocations, - }); - - BulkEditAssignedLocationsResponse.fromJson(core.Map json_) - : this( - assignedLocations: json_.containsKey('assignedLocations') - ? (json_['assignedLocations'] as core.List) - .map((value) => AssignedLocation.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (assignedLocations != null) 'assignedLocations': assignedLocations!, - }; -} - -/// Request message for BulkEditAssignedUserRoles. -class BulkEditAssignedUserRolesRequest { - /// The assigned user roles to create in batch, specified as a list of - /// AssignedUserRoles. - core.List? createdAssignedUserRoles; - - /// The assigned user roles to delete in batch, specified as a list of - /// assigned_user_role_ids. - /// - /// The format of assigned_user_role_id is `entityType-entityid`, for example - /// `partner-123`. - core.List? deletedAssignedUserRoles; - - BulkEditAssignedUserRolesRequest({ - this.createdAssignedUserRoles, - this.deletedAssignedUserRoles, - }); - - BulkEditAssignedUserRolesRequest.fromJson(core.Map json_) - : this( - createdAssignedUserRoles: - json_.containsKey('createdAssignedUserRoles') - ? (json_['createdAssignedUserRoles'] as core.List) - .map((value) => AssignedUserRole.fromJson( - value as core.Map)) - .toList() - : null, - deletedAssignedUserRoles: - json_.containsKey('deletedAssignedUserRoles') - ? (json_['deletedAssignedUserRoles'] as core.List) - .map((value) => value as core.String) - .toList() - : null, - ); - - core.Map toJson() => { - if (createdAssignedUserRoles != null) - 'createdAssignedUserRoles': createdAssignedUserRoles!, - if (deletedAssignedUserRoles != null) - 'deletedAssignedUserRoles': deletedAssignedUserRoles!, - }; -} - -class BulkEditAssignedUserRolesResponse { - /// The list of assigned user roles that have been successfully created. - /// - /// This list will be absent if empty. - core.List? createdAssignedUserRoles; - - BulkEditAssignedUserRolesResponse({ - this.createdAssignedUserRoles, - }); - - BulkEditAssignedUserRolesResponse.fromJson(core.Map json_) - : this( - createdAssignedUserRoles: - json_.containsKey('createdAssignedUserRoles') - ? (json_['createdAssignedUserRoles'] as core.List) - .map((value) => AssignedUserRole.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (createdAssignedUserRoles != null) - 'createdAssignedUserRoles': createdAssignedUserRoles!, - }; -} - -/// Request message for BulkEditLineItemAssignedTargetingOptions. -class BulkEditLineItemAssignedTargetingOptionsRequest { - /// The assigned targeting options to create in batch, specified as a list of - /// `CreateAssignedTargetingOptionsRequest`. - core.List? createRequests; - - /// The assigned targeting options to delete in batch, specified as a list of - /// `DeleteAssignedTargetingOptionsRequest`. - core.List? deleteRequests; - - BulkEditLineItemAssignedTargetingOptionsRequest({ - this.createRequests, - this.deleteRequests, - }); - - BulkEditLineItemAssignedTargetingOptionsRequest.fromJson(core.Map json_) - : this( - createRequests: json_.containsKey('createRequests') - ? (json_['createRequests'] as core.List) - .map((value) => - CreateAssignedTargetingOptionsRequest.fromJson( - value as core.Map)) - .toList() - : null, - deleteRequests: json_.containsKey('deleteRequests') - ? (json_['deleteRequests'] as core.List) - .map((value) => - DeleteAssignedTargetingOptionsRequest.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (createRequests != null) 'createRequests': createRequests!, - if (deleteRequests != null) 'deleteRequests': deleteRequests!, - }; -} - -class BulkEditLineItemAssignedTargetingOptionsResponse { - /// The list of assigned targeting options that have been successfully - /// created. - /// - /// This list will be absent if empty. - core.List? createdAssignedTargetingOptions; - - BulkEditLineItemAssignedTargetingOptionsResponse({ - this.createdAssignedTargetingOptions, - }); - - BulkEditLineItemAssignedTargetingOptionsResponse.fromJson(core.Map json_) - : this( - createdAssignedTargetingOptions: - json_.containsKey('createdAssignedTargetingOptions') - ? (json_['createdAssignedTargetingOptions'] as core.List) - .map((value) => AssignedTargetingOption.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (createdAssignedTargetingOptions != null) - 'createdAssignedTargetingOptions': createdAssignedTargetingOptions!, - }; -} - -/// Request message for NegativeKeywordService.BulkEditNegativeKeywords. -class BulkEditNegativeKeywordsRequest { - /// The negative keywords to create in batch, specified as a list of - /// NegativeKeywords. - core.List? createdNegativeKeywords; - - /// The negative keywords to delete in batch, specified as a list of - /// keyword_values. - core.List? deletedNegativeKeywords; - - BulkEditNegativeKeywordsRequest({ - this.createdNegativeKeywords, - this.deletedNegativeKeywords, - }); - - BulkEditNegativeKeywordsRequest.fromJson(core.Map json_) - : this( - createdNegativeKeywords: json_.containsKey('createdNegativeKeywords') - ? (json_['createdNegativeKeywords'] as core.List) - .map((value) => NegativeKeyword.fromJson( - value as core.Map)) - .toList() - : null, - deletedNegativeKeywords: json_.containsKey('deletedNegativeKeywords') - ? (json_['deletedNegativeKeywords'] as core.List) - .map((value) => value as core.String) - .toList() - : null, - ); - - core.Map toJson() => { - if (createdNegativeKeywords != null) - 'createdNegativeKeywords': createdNegativeKeywords!, - if (deletedNegativeKeywords != null) - 'deletedNegativeKeywords': deletedNegativeKeywords!, - }; -} - -/// Response message for NegativeKeywordService.BulkEditNegativeKeywords. -class BulkEditNegativeKeywordsResponse { - /// The list of negative keywords that have been successfully created. - /// - /// This list will be absent if empty. - core.List? negativeKeywords; - - BulkEditNegativeKeywordsResponse({ - this.negativeKeywords, - }); - - BulkEditNegativeKeywordsResponse.fromJson(core.Map json_) - : this( - negativeKeywords: json_.containsKey('negativeKeywords') - ? (json_['negativeKeywords'] as core.List) - .map((value) => NegativeKeyword.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (negativeKeywords != null) 'negativeKeywords': negativeKeywords!, - }; -} - -/// Request message for BulkEditPartnerAssignedTargetingOptions. -class BulkEditPartnerAssignedTargetingOptionsRequest { - /// The assigned targeting options to create in batch, specified as a list of - /// `CreateAssignedTargetingOptionsRequest`. - /// - /// Supported targeting types: * `TARGETING_TYPE_CHANNEL` - core.List? createRequests; - - /// The assigned targeting options to delete in batch, specified as a list of - /// `DeleteAssignedTargetingOptionsRequest`. - /// - /// Supported targeting types: * `TARGETING_TYPE_CHANNEL` - core.List? deleteRequests; - - BulkEditPartnerAssignedTargetingOptionsRequest({ - this.createRequests, - this.deleteRequests, - }); - - BulkEditPartnerAssignedTargetingOptionsRequest.fromJson(core.Map json_) - : this( - createRequests: json_.containsKey('createRequests') - ? (json_['createRequests'] as core.List) - .map((value) => - CreateAssignedTargetingOptionsRequest.fromJson( - value as core.Map)) - .toList() - : null, - deleteRequests: json_.containsKey('deleteRequests') - ? (json_['deleteRequests'] as core.List) - .map((value) => - DeleteAssignedTargetingOptionsRequest.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (createRequests != null) 'createRequests': createRequests!, - if (deleteRequests != null) 'deleteRequests': deleteRequests!, - }; -} - -class BulkEditPartnerAssignedTargetingOptionsResponse { - /// The list of assigned targeting options that have been successfully - /// created. - /// - /// This list will be absent if empty. - core.List? createdAssignedTargetingOptions; - - BulkEditPartnerAssignedTargetingOptionsResponse({ - this.createdAssignedTargetingOptions, - }); - - BulkEditPartnerAssignedTargetingOptionsResponse.fromJson(core.Map json_) - : this( - createdAssignedTargetingOptions: - json_.containsKey('createdAssignedTargetingOptions') - ? (json_['createdAssignedTargetingOptions'] as core.List) - .map((value) => AssignedTargetingOption.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (createdAssignedTargetingOptions != null) - 'createdAssignedTargetingOptions': createdAssignedTargetingOptions!, - }; -} - -/// Request message for SiteService.BulkEditSites. -class BulkEditSitesRequest { - /// The ID of the advertiser that owns the parent channel. - core.String? advertiserId; - - /// The sites to create in batch, specified as a list of Sites. - core.List? createdSites; - - /// The sites to delete in batch, specified as a list of site url_or_app_ids. - core.List? deletedSites; - - /// The ID of the partner that owns the parent channel. - core.String? partnerId; - - BulkEditSitesRequest({ - this.advertiserId, - this.createdSites, - this.deletedSites, - this.partnerId, - }); - - BulkEditSitesRequest.fromJson(core.Map json_) - : this( - advertiserId: json_.containsKey('advertiserId') - ? json_['advertiserId'] as core.String - : null, - createdSites: json_.containsKey('createdSites') - ? (json_['createdSites'] as core.List) - .map((value) => Site.fromJson( - value as core.Map)) - .toList() - : null, - deletedSites: json_.containsKey('deletedSites') - ? (json_['deletedSites'] as core.List) - .map((value) => value as core.String) - .toList() - : null, - partnerId: json_.containsKey('partnerId') - ? json_['partnerId'] as core.String - : null, - ); - - core.Map toJson() => { - if (advertiserId != null) 'advertiserId': advertiserId!, - if (createdSites != null) 'createdSites': createdSites!, - if (deletedSites != null) 'deletedSites': deletedSites!, - if (partnerId != null) 'partnerId': partnerId!, - }; -} - -/// Response message for SiteService.BulkEditSites. -class BulkEditSitesResponse { - /// The list of sites that have been successfully created. - /// - /// This list will be absent if empty. - core.List? sites; - - BulkEditSitesResponse({ - this.sites, - }); - - BulkEditSitesResponse.fromJson(core.Map json_) - : this( - sites: json_.containsKey('sites') - ? (json_['sites'] as core.List) - .map((value) => Site.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (sites != null) 'sites': sites!, - }; -} - -class BulkListAdvertiserAssignedTargetingOptionsResponse { - /// The list of assigned targeting options. - /// - /// This list will be absent if empty. - core.List? assignedTargetingOptions; - - /// A token identifying the next page of results. - /// - /// This value should be specified as the pageToken in a subsequent - /// BulkListAdvertiserAssignedTargetingOptionsRequest to fetch the next page - /// of results. This token will be absent if there are no more - /// assigned_targeting_options to return. - core.String? nextPageToken; - - BulkListAdvertiserAssignedTargetingOptionsResponse({ - this.assignedTargetingOptions, - this.nextPageToken, - }); - - BulkListAdvertiserAssignedTargetingOptionsResponse.fromJson(core.Map json_) - : this( - assignedTargetingOptions: - json_.containsKey('assignedTargetingOptions') - ? (json_['assignedTargetingOptions'] as core.List) - .map((value) => AssignedTargetingOption.fromJson( - value as core.Map)) - .toList() - : null, - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - ); - - core.Map toJson() => { - if (assignedTargetingOptions != null) - 'assignedTargetingOptions': assignedTargetingOptions!, - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - }; -} - -class BulkListCampaignAssignedTargetingOptionsResponse { - /// The list of assigned targeting options. - /// - /// This list will be absent if empty. - core.List? assignedTargetingOptions; - - /// A token identifying the next page of results. - /// - /// This value should be specified as the pageToken in a subsequent - /// BulkListCampaignAssignedTargetingOptionsRequest to fetch the next page of - /// results. This token will be absent if there are no more - /// assigned_targeting_options to return. - core.String? nextPageToken; - - BulkListCampaignAssignedTargetingOptionsResponse({ - this.assignedTargetingOptions, - this.nextPageToken, - }); - - BulkListCampaignAssignedTargetingOptionsResponse.fromJson(core.Map json_) - : this( - assignedTargetingOptions: - json_.containsKey('assignedTargetingOptions') - ? (json_['assignedTargetingOptions'] as core.List) - .map((value) => AssignedTargetingOption.fromJson( - value as core.Map)) - .toList() - : null, - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - ); - - core.Map toJson() => { - if (assignedTargetingOptions != null) - 'assignedTargetingOptions': assignedTargetingOptions!, - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - }; -} - -class BulkListInsertionOrderAssignedTargetingOptionsResponse { - /// The list of assigned targeting options. - /// - /// This list will be absent if empty. - core.List? assignedTargetingOptions; - - /// A token identifying the next page of results. - /// - /// This value should be specified as the pageToken in a subsequent - /// BulkListInsertionOrderAssignedTargetingOptionsRequest to fetch the next - /// page of results. This token will be absent if there are no more - /// assigned_targeting_options to return. - core.String? nextPageToken; - - BulkListInsertionOrderAssignedTargetingOptionsResponse({ - this.assignedTargetingOptions, - this.nextPageToken, - }); - - BulkListInsertionOrderAssignedTargetingOptionsResponse.fromJson( - core.Map json_) - : this( - assignedTargetingOptions: - json_.containsKey('assignedTargetingOptions') - ? (json_['assignedTargetingOptions'] as core.List) - .map((value) => AssignedTargetingOption.fromJson( - value as core.Map)) - .toList() - : null, - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - ); - - core.Map toJson() => { - if (assignedTargetingOptions != null) - 'assignedTargetingOptions': assignedTargetingOptions!, - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - }; -} - -class BulkListLineItemAssignedTargetingOptionsResponse { - /// The list of assigned targeting options. - /// - /// This list will be absent if empty. - core.List? assignedTargetingOptions; - - /// A token identifying the next page of results. - /// - /// This value should be specified as the pageToken in a subsequent - /// BulkListLineItemAssignedTargetingOptionsRequest to fetch the next page of - /// results. This token will be absent if there are no more - /// assigned_targeting_options to return. - core.String? nextPageToken; - - BulkListLineItemAssignedTargetingOptionsResponse({ - this.assignedTargetingOptions, - this.nextPageToken, - }); - - BulkListLineItemAssignedTargetingOptionsResponse.fromJson(core.Map json_) - : this( - assignedTargetingOptions: - json_.containsKey('assignedTargetingOptions') - ? (json_['assignedTargetingOptions'] as core.List) - .map((value) => AssignedTargetingOption.fromJson( - value as core.Map)) - .toList() - : null, - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - ); - - core.Map toJson() => { - if (assignedTargetingOptions != null) - 'assignedTargetingOptions': assignedTargetingOptions!, - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - }; -} - -/// Details for assigned Business chain targeting option. -/// -/// This will be populated in the details field of an AssignedTargetingOption -/// when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. -typedef BusinessChainAssignedTargetingOptionDetails - = $BusinessChainAssignedTargetingOptionDetails; - -/// Search terms for Business Chain targeting options. -/// -/// At least one of the field should be populated. -typedef BusinessChainSearchTerms = $BusinessChainSearchTerms; - -/// Represents a targetable business chain within a geo region. -/// -/// This will be populated in the business_chain_details field when -/// targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. -typedef BusinessChainTargetingOptionDetails - = $BusinessChainTargetingOptionDetails; - -/// A single campaign. -class Campaign { - /// The unique ID of the advertiser the campaign belongs to. - /// - /// Output only. - core.String? advertiserId; - - /// The list of budgets available to this campaign. - /// - /// If this field is not set, the campaign uses an unlimited budget. - core.List? campaignBudgets; - - /// The planned spend and duration of the campaign. - /// - /// Required. - CampaignFlight? campaignFlight; - - /// The goal of the campaign. - /// - /// Required. - CampaignGoal? campaignGoal; - - /// The unique ID of the campaign. - /// - /// Assigned by the system. - /// - /// Output only. - core.String? campaignId; - - /// The display name of the campaign. - /// - /// Must be UTF-8 encoded with a maximum size of 240 bytes. - /// - /// Required. - core.String? displayName; - - /// Controls whether or not the insertion orders under this campaign can spend - /// their budgets and bid on inventory. - /// - /// * Accepted values are `ENTITY_STATUS_ACTIVE`, `ENTITY_STATUS_ARCHIVED`, - /// and `ENTITY_STATUS_PAUSED`. * For CreateCampaign method, - /// `ENTITY_STATUS_ARCHIVED` is not allowed. - /// - /// Required. - /// Possible string values are: - /// - "ENTITY_STATUS_UNSPECIFIED" : Default value when status is not specified - /// or is unknown in this version. - /// - "ENTITY_STATUS_ACTIVE" : The entity is enabled to bid and spend budget. - /// - "ENTITY_STATUS_ARCHIVED" : The entity is archived. Bidding and budget - /// spending are disabled. An entity can be deleted after archived. Deleted - /// entities cannot be retrieved. - /// - "ENTITY_STATUS_DRAFT" : The entity is under draft. Bidding and budget - /// spending are disabled. - /// - "ENTITY_STATUS_PAUSED" : Bidding and budget spending are paused for the - /// entity. - /// - "ENTITY_STATUS_SCHEDULED_FOR_DELETION" : The entity is scheduled for - /// deletion. - core.String? entityStatus; - - /// The frequency cap setting of the campaign. - /// - /// Required. - FrequencyCap? frequencyCap; - - /// The resource name of the campaign. - /// - /// Output only. - core.String? name; - - /// The timestamp when the campaign was last updated. - /// - /// Assigned by the system. - /// - /// Output only. - core.String? updateTime; - - Campaign({ - this.advertiserId, - this.campaignBudgets, - this.campaignFlight, - this.campaignGoal, - this.campaignId, - this.displayName, - this.entityStatus, - this.frequencyCap, - this.name, - this.updateTime, - }); - - Campaign.fromJson(core.Map json_) - : this( - advertiserId: json_.containsKey('advertiserId') - ? json_['advertiserId'] as core.String - : null, - campaignBudgets: json_.containsKey('campaignBudgets') - ? (json_['campaignBudgets'] as core.List) - .map((value) => CampaignBudget.fromJson( - value as core.Map)) - .toList() - : null, - campaignFlight: json_.containsKey('campaignFlight') - ? CampaignFlight.fromJson(json_['campaignFlight'] - as core.Map) - : null, - campaignGoal: json_.containsKey('campaignGoal') - ? CampaignGoal.fromJson( - json_['campaignGoal'] as core.Map) - : null, - campaignId: json_.containsKey('campaignId') - ? json_['campaignId'] as core.String - : null, - displayName: json_.containsKey('displayName') - ? json_['displayName'] as core.String - : null, - entityStatus: json_.containsKey('entityStatus') - ? json_['entityStatus'] as core.String - : null, - frequencyCap: json_.containsKey('frequencyCap') - ? FrequencyCap.fromJson( - json_['frequencyCap'] as core.Map) - : null, - name: json_.containsKey('name') ? json_['name'] as core.String : null, - updateTime: json_.containsKey('updateTime') - ? json_['updateTime'] as core.String - : null, - ); - - core.Map toJson() => { - if (advertiserId != null) 'advertiserId': advertiserId!, - if (campaignBudgets != null) 'campaignBudgets': campaignBudgets!, - if (campaignFlight != null) 'campaignFlight': campaignFlight!, - if (campaignGoal != null) 'campaignGoal': campaignGoal!, - if (campaignId != null) 'campaignId': campaignId!, - if (displayName != null) 'displayName': displayName!, - if (entityStatus != null) 'entityStatus': entityStatus!, - if (frequencyCap != null) 'frequencyCap': frequencyCap!, - if (name != null) 'name': name!, - if (updateTime != null) 'updateTime': updateTime!, - }; -} - -/// Settings that control how the campaign budget is allocated. -class CampaignBudget { - /// The total amount the linked insertion order segments can budget. - /// - /// The amount is in micros. Must be greater than 0. For example, 500000000 - /// represents 500 standard units of the currency. - /// - /// Required. - core.String? budgetAmountMicros; - - /// The unique ID of the campaign budget. - /// - /// Assigned by the system. Do not set for new budgets. Must be included when - /// updating or adding budgets to campaign_budgets. Otherwise, a new ID will - /// be generated and assigned. - core.String? budgetId; - - /// Specifies whether the budget is measured in currency or impressions. - /// - /// Required. Immutable. - /// Possible string values are: - /// - "BUDGET_UNIT_UNSPECIFIED" : Type value is not specified or is unknown in - /// this version. - /// - "BUDGET_UNIT_CURRENCY" : Budgeting in currency amounts. - /// - "BUDGET_UNIT_IMPRESSIONS" : Budgeting in impression amounts. - core.String? budgetUnit; - - /// The date range for the campaign budget. - /// - /// Linked budget segments may have a different date range. They are resolved - /// relative to the parent advertiser's time zone. Both `start_date` and - /// `end_date` must be before the year 2037. - /// - /// Required. - DateRange? dateRange; - - /// The display name of the budget. - /// - /// Must be UTF-8 encoded with a maximum size of 240 bytes. - /// - /// Required. - core.String? displayName; - - /// The ID identifying this budget to the external source. - /// - /// If this field is set and the invoice detail level of the corresponding - /// billing profile is set to "Budget level PO", all impressions served - /// against this budget will include this ID on the invoice. Must be unique - /// under the campaign. - /// - /// Immutable. - core.String? externalBudgetId; - - /// The external source of the budget. - /// - /// Required. - /// Possible string values are: - /// - "EXTERNAL_BUDGET_SOURCE_UNSPECIFIED" : External budget source value is - /// not specified or unknown in this version. - /// - "EXTERNAL_BUDGET_SOURCE_NONE" : Budget has no external source. - /// - "EXTERNAL_BUDGET_SOURCE_MEDIA_OCEAN" : Budget source is Mediaocean. - core.String? externalBudgetSource; - - /// The ID used to group budgets to be included the same invoice. - /// - /// If this field is set and the invoice level of the corresponding billing - /// profile is set to "Budget invoice grouping ID", all external_budget_id - /// sharing the same invoice_grouping_id will be grouped in the same invoice. - /// - /// Immutable. - core.String? invoiceGroupingId; - - /// Additional metadata for use by the Mediaocean Prisma tool. - /// - /// Required for Mediaocean budgets. Only applicable to prisma_enabled - /// advertisers. - PrismaConfig? prismaConfig; - - CampaignBudget({ - this.budgetAmountMicros, - this.budgetId, - this.budgetUnit, - this.dateRange, - this.displayName, - this.externalBudgetId, - this.externalBudgetSource, - this.invoiceGroupingId, - this.prismaConfig, - }); - - CampaignBudget.fromJson(core.Map json_) - : this( - budgetAmountMicros: json_.containsKey('budgetAmountMicros') - ? json_['budgetAmountMicros'] as core.String - : null, - budgetId: json_.containsKey('budgetId') - ? json_['budgetId'] as core.String - : null, - budgetUnit: json_.containsKey('budgetUnit') - ? json_['budgetUnit'] as core.String - : null, - dateRange: json_.containsKey('dateRange') - ? DateRange.fromJson( - json_['dateRange'] as core.Map) - : null, - displayName: json_.containsKey('displayName') - ? json_['displayName'] as core.String - : null, - externalBudgetId: json_.containsKey('externalBudgetId') - ? json_['externalBudgetId'] as core.String - : null, - externalBudgetSource: json_.containsKey('externalBudgetSource') - ? json_['externalBudgetSource'] as core.String - : null, - invoiceGroupingId: json_.containsKey('invoiceGroupingId') - ? json_['invoiceGroupingId'] as core.String - : null, - prismaConfig: json_.containsKey('prismaConfig') - ? PrismaConfig.fromJson( - json_['prismaConfig'] as core.Map) - : null, - ); - - core.Map toJson() => { - if (budgetAmountMicros != null) - 'budgetAmountMicros': budgetAmountMicros!, - if (budgetId != null) 'budgetId': budgetId!, - if (budgetUnit != null) 'budgetUnit': budgetUnit!, - if (dateRange != null) 'dateRange': dateRange!, - if (displayName != null) 'displayName': displayName!, - if (externalBudgetId != null) 'externalBudgetId': externalBudgetId!, - if (externalBudgetSource != null) - 'externalBudgetSource': externalBudgetSource!, - if (invoiceGroupingId != null) 'invoiceGroupingId': invoiceGroupingId!, - if (prismaConfig != null) 'prismaConfig': prismaConfig!, - }; -} - -/// Settings that track the planned spend and duration of a campaign. -class CampaignFlight { - /// The dates that the campaign is expected to run. - /// - /// They are resolved relative to the parent advertiser's time zone. * The - /// dates specified here will not affect serving. They are used to generate - /// alerts and warnings. For example, if the flight date of any child - /// insertion order is outside the range of these dates, the user interface - /// will show a warning. * `start_date` is required and must be the current - /// date or later. * `end_date` is optional. If specified, it must be the - /// `start_date` or later. * Any specified date must be before the year 2037. - /// - /// Required. - DateRange? plannedDates; - - /// The amount the campaign is expected to spend for its given planned_dates. - /// - /// This will not limit serving, but will be used for tracking spend in the - /// DV360 UI. The amount is in micros. Must be greater than or equal to 0. For - /// example, 500000000 represents 500 standard units of the currency. - core.String? plannedSpendAmountMicros; - - CampaignFlight({ - this.plannedDates, - this.plannedSpendAmountMicros, - }); - - CampaignFlight.fromJson(core.Map json_) - : this( - plannedDates: json_.containsKey('plannedDates') - ? DateRange.fromJson( - json_['plannedDates'] as core.Map) - : null, - plannedSpendAmountMicros: - json_.containsKey('plannedSpendAmountMicros') - ? json_['plannedSpendAmountMicros'] as core.String - : null, - ); - - core.Map toJson() => { - if (plannedDates != null) 'plannedDates': plannedDates!, - if (plannedSpendAmountMicros != null) - 'plannedSpendAmountMicros': plannedSpendAmountMicros!, - }; -} - -/// Settings that control the goal of a campaign. -class CampaignGoal { - /// The type of the campaign goal. - /// - /// Required. - /// Possible string values are: - /// - "CAMPAIGN_GOAL_TYPE_UNSPECIFIED" : Goal value is not specified or - /// unknown in this version. - /// - "CAMPAIGN_GOAL_TYPE_APP_INSTALL" : Drive app installs or engagements. - /// - "CAMPAIGN_GOAL_TYPE_BRAND_AWARENESS" : Raise awareness of a brand or - /// product. - /// - "CAMPAIGN_GOAL_TYPE_OFFLINE_ACTION" : Drive offline or in-store sales. - /// - "CAMPAIGN_GOAL_TYPE_ONLINE_ACTION" : Drive online action or visits. - core.String? campaignGoalType; - - /// The performance goal of the campaign. - /// - /// Acceptable values for performance_goal_type are: * - /// `PERFORMANCE_GOAL_TYPE_CPM` * `PERFORMANCE_GOAL_TYPE_CPC` * - /// `PERFORMANCE_GOAL_TYPE_CPA` * `PERFORMANCE_GOAL_TYPE_CPIAVC` * - /// `PERFORMANCE_GOAL_TYPE_CTR` * `PERFORMANCE_GOAL_TYPE_VIEWABILITY` * - /// `PERFORMANCE_GOAL_TYPE_OTHER` - /// - /// Required. - PerformanceGoal? performanceGoal; - - CampaignGoal({ - this.campaignGoalType, - this.performanceGoal, - }); - - CampaignGoal.fromJson(core.Map json_) - : this( - campaignGoalType: json_.containsKey('campaignGoalType') - ? json_['campaignGoalType'] as core.String - : null, - performanceGoal: json_.containsKey('performanceGoal') - ? PerformanceGoal.fromJson(json_['performanceGoal'] - as core.Map) - : null, - ); - - core.Map toJson() => { - if (campaignGoalType != null) 'campaignGoalType': campaignGoalType!, - if (performanceGoal != null) 'performanceGoal': performanceGoal!, - }; -} - -/// Details for assigned carrier and ISP targeting option. -/// -/// This will be populated in the details field of an AssignedTargetingOption -/// when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. -typedef CarrierAndIspAssignedTargetingOptionDetails - = $CarrierAndIspAssignedTargetingOptionDetails; - -/// Represents a targetable carrier or ISP. -/// -/// This will be populated in the carrier_and_isp_details field of a -/// TargetingOption when targeting_type is `TARGETING_TYPE_CARRIER_AND_ISP`. -typedef CarrierAndIspTargetingOptionDetails - = $CarrierAndIspTargetingOptionDetails; - -/// Assigned category targeting option details. -/// -/// This will be populated in the category_details field when targeting_type is -/// `TARGETING_TYPE_CATEGORY`. -typedef CategoryAssignedTargetingOptionDetails - = $CategoryAssignedTargetingOptionDetails; - -/// Represents a targetable category. -/// -/// This will be populated in the category_details field of a TargetingOption -/// when targeting_type is `TARGETING_TYPE_CATEGORY`. -typedef CategoryTargetingOptionDetails = $CategoryTargetingOptionDetails; - -/// A single channel. -/// -/// Channels are custom groups of related websites and apps. -typedef Channel = $Channel00; - -/// Details for assigned channel targeting option. -/// -/// This will be populated in the details field of an AssignedTargetingOption -/// when targeting_type is `TARGETING_TYPE_CHANNEL`. -typedef ChannelAssignedTargetingOptionDetails - = $ChannelAssignedTargetingOptionDetails; - -/// Settings for advertisers that use both Campaign Manager 360 (CM360) and -/// third-party ad servers. -typedef CmHybridConfig = $CmHybridConfig; - -/// A Campaign Manager 360 tracking ad. -typedef CmTrackingAd = $CmTrackingAd; - -/// Describes a combined audience resource. -typedef CombinedAudience = $CombinedAudience; - -/// Details of combined audience group. -/// -/// All combined audience targeting settings are logically ‘OR’ of each other. -class CombinedAudienceGroup { - /// All combined audience targeting settings in combined audience group. - /// - /// Repeated settings with same id will be ignored. The number of combined - /// audience settings should be no more than five, error will be thrown - /// otherwise. - /// - /// Required. - core.List? settings; - - CombinedAudienceGroup({ - this.settings, - }); - - CombinedAudienceGroup.fromJson(core.Map json_) - : this( - settings: json_.containsKey('settings') - ? (json_['settings'] as core.List) - .map((value) => CombinedAudienceTargetingSetting.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (settings != null) 'settings': settings!, - }; -} - -/// Details of combined audience targeting setting. -typedef CombinedAudienceTargetingSetting = $CombinedAudienceTargetingSetting; - -/// User consent status. -typedef Consent = $Consent; - -/// Contact information defining a Customer Match audience member. -typedef ContactInfo = $ContactInfo; - -/// Wrapper message for a list of contact information defining Customer Match -/// audience members. -class ContactInfoList { - /// Input only. - /// - /// User consent status. - Consent? consent; - - /// A list of ContactInfo objects defining Customer Match audience members. - /// - /// The size of members after splitting the contact_infos mustn't be greater - /// than 500,000. - core.List? contactInfos; - - ContactInfoList({ - this.consent, - this.contactInfos, - }); - - ContactInfoList.fromJson(core.Map json_) - : this( - consent: json_.containsKey('consent') - ? Consent.fromJson( - json_['consent'] as core.Map) - : null, - contactInfos: json_.containsKey('contactInfos') - ? (json_['contactInfos'] as core.List) - .map((value) => ContactInfo.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (consent != null) 'consent': consent!, - if (contactInfos != null) 'contactInfos': contactInfos!, - }; -} - -/// Details for content duration assigned targeting option. -/// -/// This will be populated in the content_duration_details field when -/// targeting_type is `TARGETING_TYPE_CONTENT_DURATION`. Explicitly targeting -/// all options is not supported. Remove all content duration targeting options -/// to achieve this effect. -typedef ContentDurationAssignedTargetingOptionDetails - = $ContentDurationAssignedTargetingOptionDetails; - -/// Represents a targetable content duration. -/// -/// This will be populated in the content_duration_details field when -/// targeting_type is `TARGETING_TYPE_CONTENT_DURATION`. -typedef ContentDurationTargetingOptionDetails - = $ContentDurationTargetingOptionDetails; - -/// Details for content genre assigned targeting option. -/// -/// This will be populated in the content_genre_details field when -/// targeting_type is `TARGETING_TYPE_CONTENT_GENRE`. Explicitly targeting all -/// options is not supported. Remove all content genre targeting options to -/// achieve this effect. -typedef ContentGenreAssignedTargetingOptionDetails - = $ContentGenreAssignedTargetingOptionDetails; - -/// Represents a targetable content genre. -/// -/// This will be populated in the content_genre_details field when -/// targeting_type is `TARGETING_TYPE_CONTENT_GENRE`. -typedef ContentGenreTargetingOptionDetails - = $ContentGenreTargetingOptionDetails; - -/// Assigned content instream position targeting option details. -/// -/// This will be populated in the content_instream_position_details field when -/// targeting_type is `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`. -class ContentInstreamPositionAssignedTargetingOptionDetails { - /// The ad type to target. - /// - /// Only applicable to insertion order targeting and new line items supporting - /// the specified ad type will inherit this targeting option by default. - /// Possible values are: * `AD_TYPE_VIDEO`, the setting will be inherited by - /// new line item when line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. * - /// `AD_TYPE_AUDIO`, the setting will be inherited by new line item when - /// line_item_type is `LINE_ITEM_TYPE_AUDIO_DEFAULT`. - /// - /// Output only. - /// Possible string values are: - /// - "AD_TYPE_UNSPECIFIED" : Ad type is not specified or is unknown in this - /// version. - /// - "AD_TYPE_DISPLAY" : Display creatives, e.g. image and HTML5. - /// - "AD_TYPE_VIDEO" : Video creatives, e.g. video ads that play during - /// streaming content in video players. - /// - "AD_TYPE_AUDIO" : Audio creatives, e.g. audio ads that play during audio - /// content. - core.String? adType; - - /// The content instream position for video or audio ads. - /// - /// Required. - /// Possible string values are: - /// - "CONTENT_INSTREAM_POSITION_UNSPECIFIED" : Content instream position is - /// not specified in this version. This enum is a place holder for a default - /// value and does not represent a real in stream ad position. - /// - "CONTENT_INSTREAM_POSITION_PRE_ROLL" : Ads that play before streaming - /// content. - /// - "CONTENT_INSTREAM_POSITION_MID_ROLL" : Ads that play between the - /// beginning and end of streaming content. - /// - "CONTENT_INSTREAM_POSITION_POST_ROLL" : Ads that play at the end of - /// streaming content. - /// - "CONTENT_INSTREAM_POSITION_UNKNOWN" : Ads instream position is unknown. - core.String? contentInstreamPosition; - - /// The targeting_option_id field when targeting_type is - /// `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`. - /// - /// Required. - core.String? targetingOptionId; - - ContentInstreamPositionAssignedTargetingOptionDetails({ - this.adType, - this.contentInstreamPosition, - this.targetingOptionId, - }); - - ContentInstreamPositionAssignedTargetingOptionDetails.fromJson(core.Map json_) - : this( - adType: json_.containsKey('adType') - ? json_['adType'] as core.String - : null, - contentInstreamPosition: json_.containsKey('contentInstreamPosition') - ? json_['contentInstreamPosition'] as core.String - : null, - targetingOptionId: json_.containsKey('targetingOptionId') - ? json_['targetingOptionId'] as core.String - : null, - ); - - core.Map toJson() => { - if (adType != null) 'adType': adType!, - if (contentInstreamPosition != null) - 'contentInstreamPosition': contentInstreamPosition!, - if (targetingOptionId != null) 'targetingOptionId': targetingOptionId!, - }; -} - -/// Represents a targetable content instream position, which could be used by -/// video and audio ads. -/// -/// This will be populated in the content_instream_position_details field when -/// targeting_type is `TARGETING_TYPE_CONTENT_INSTREAM_POSITION`. -typedef ContentInstreamPositionTargetingOptionDetails - = $ContentInstreamPositionTargetingOptionDetails; - -/// Assigned content outstream position targeting option details. -/// -/// This will be populated in the content_outstream_position_details field when -/// targeting_type is `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`. -class ContentOutstreamPositionAssignedTargetingOptionDetails { - /// The ad type to target. - /// - /// Only applicable to insertion order targeting and new line items supporting - /// the specified ad type will inherit this targeting option by default. - /// Possible values are: * `AD_TYPE_DISPLAY`, the setting will be inherited by - /// new line item when line_item_type is `LINE_ITEM_TYPE_DISPLAY_DEFAULT`. * - /// `AD_TYPE_VIDEO`, the setting will be inherited by new line item when - /// line_item_type is `LINE_ITEM_TYPE_VIDEO_DEFAULT`. - /// - /// Output only. - /// Possible string values are: - /// - "AD_TYPE_UNSPECIFIED" : Ad type is not specified or is unknown in this - /// version. - /// - "AD_TYPE_DISPLAY" : Display creatives, e.g. image and HTML5. - /// - "AD_TYPE_VIDEO" : Video creatives, e.g. video ads that play during - /// streaming content in video players. - /// - "AD_TYPE_AUDIO" : Audio creatives, e.g. audio ads that play during audio - /// content. - core.String? adType; - - /// The content outstream position. - /// - /// Required. - /// Possible string values are: - /// - "CONTENT_OUTSTREAM_POSITION_UNSPECIFIED" : Content outstream position is - /// not specified in this version. This enum is a place holder for a default - /// value and does not represent a real content outstream position. - /// - "CONTENT_OUTSTREAM_POSITION_UNKNOWN" : The ad position is unknown in the - /// content outstream. - /// - "CONTENT_OUTSTREAM_POSITION_IN_ARTICLE" : Ads that appear between the - /// paragraphs of your pages. - /// - "CONTENT_OUTSTREAM_POSITION_IN_BANNER" : Ads that display on the top and - /// the sides of a page. - /// - "CONTENT_OUTSTREAM_POSITION_IN_FEED" : Ads that appear in a scrollable - /// stream of content. A feed is typically editorial (e.g. a list of articles - /// or news) or listings (e.g. a list of products or services). - /// - "CONTENT_OUTSTREAM_POSITION_INTERSTITIAL" : Ads shown before or between - /// content loads. - core.String? contentOutstreamPosition; - - /// The targeting_option_id field when targeting_type is - /// `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`. - /// - /// Required. - core.String? targetingOptionId; - - ContentOutstreamPositionAssignedTargetingOptionDetails({ - this.adType, - this.contentOutstreamPosition, - this.targetingOptionId, - }); - - ContentOutstreamPositionAssignedTargetingOptionDetails.fromJson( - core.Map json_) - : this( - adType: json_.containsKey('adType') - ? json_['adType'] as core.String - : null, - contentOutstreamPosition: - json_.containsKey('contentOutstreamPosition') - ? json_['contentOutstreamPosition'] as core.String - : null, - targetingOptionId: json_.containsKey('targetingOptionId') - ? json_['targetingOptionId'] as core.String - : null, - ); - - core.Map toJson() => { - if (adType != null) 'adType': adType!, - if (contentOutstreamPosition != null) - 'contentOutstreamPosition': contentOutstreamPosition!, - if (targetingOptionId != null) 'targetingOptionId': targetingOptionId!, - }; -} - -/// Represents a targetable content outstream position, which could be used by -/// display and video ads. -/// -/// This will be populated in the content_outstream_position_details field when -/// targeting_type is `TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION`. -typedef ContentOutstreamPositionTargetingOptionDetails - = $ContentOutstreamPositionTargetingOptionDetails; - -/// Details for content stream type assigned targeting option. -/// -/// This will be populated in the content_stream_type_details field when -/// targeting_type is `TARGETING_TYPE_CONTENT_STREAM_TYPE`. Explicitly targeting -/// all options is not supported. Remove all content stream type targeting -/// options to achieve this effect. -typedef ContentStreamTypeAssignedTargetingOptionDetails - = $ContentStreamTypeAssignedTargetingOptionDetails; - -/// Represents a targetable content stream type. -/// -/// This will be populated in the content_stream_type_details field when -/// targeting_type is `TARGETING_TYPE_CONTENT_STREAM_TYPE`. -typedef ContentStreamTypeTargetingOptionDetails - = $ContentStreamTypeTargetingOptionDetails; - -/// Settings that control how conversions are counted. -/// -/// All post-click conversions will be counted. A percentage value can be set -/// for post-view conversions counting. -class ConversionCountingConfig { - /// The Floodlight activity configs used to track conversions. - /// - /// The number of conversions counted is the sum of all of the conversions - /// counted by all of the Floodlight activity IDs specified in this field. - core.List? floodlightActivityConfigs; - - /// The percentage of post-view conversions to count, in millis (1/1000 of a - /// percent). - /// - /// Must be between 0 and 100000 inclusive. For example, to track 50% of the - /// post-click conversions, set a value of 50000. - core.String? postViewCountPercentageMillis; - - ConversionCountingConfig({ - this.floodlightActivityConfigs, - this.postViewCountPercentageMillis, - }); - - ConversionCountingConfig.fromJson(core.Map json_) - : this( - floodlightActivityConfigs: - json_.containsKey('floodlightActivityConfigs') - ? (json_['floodlightActivityConfigs'] as core.List) - .map((value) => TrackingFloodlightActivityConfig.fromJson( - value as core.Map)) - .toList() - : null, - postViewCountPercentageMillis: - json_.containsKey('postViewCountPercentageMillis') - ? json_['postViewCountPercentageMillis'] as core.String - : null, - ); - - core.Map toJson() => { - if (floodlightActivityConfigs != null) - 'floodlightActivityConfigs': floodlightActivityConfigs!, - if (postViewCountPercentageMillis != null) - 'postViewCountPercentageMillis': postViewCountPercentageMillis!, - }; -} - -/// Counter event of the creative. -typedef CounterEvent = $CounterEvent; - -/// A request message for CreateAsset. -typedef CreateAssetRequest = $CreateAssetRequest; - -/// A response message for CreateAsset. -class CreateAssetResponse { - /// The uploaded asset, if successful. - Asset? asset; - - CreateAssetResponse({ - this.asset, - }); - - CreateAssetResponse.fromJson(core.Map json_) - : this( - asset: json_.containsKey('asset') - ? Asset.fromJson( - json_['asset'] as core.Map) - : null, - ); - - core.Map toJson() => { - if (asset != null) 'asset': asset!, - }; -} - -/// A request listing which assigned targeting options of a given targeting type -/// should be created and added. -class CreateAssignedTargetingOptionsRequest { - /// The assigned targeting options to create and add. - /// - /// Required. - core.List? assignedTargetingOptions; - - /// Identifies the type of this assigned targeting option. - /// - /// Required. - /// Possible string values are: - /// - "TARGETING_TYPE_UNSPECIFIED" : Default value when type is not specified - /// or is unknown in this version. - /// - "TARGETING_TYPE_CHANNEL" : Target a channel (a custom group of related - /// websites or apps). - /// - "TARGETING_TYPE_APP_CATEGORY" : Target an app category (for example, - /// education or puzzle games). - /// - "TARGETING_TYPE_APP" : Target a specific app (for example, Angry Birds). - /// - "TARGETING_TYPE_URL" : Target a specific url (for example, quora.com). - /// - "TARGETING_TYPE_DAY_AND_TIME" : Target ads during a chosen time period - /// on a specific day. - /// - "TARGETING_TYPE_AGE_RANGE" : Target ads to a specific age range (for - /// example, 18-24). - /// - "TARGETING_TYPE_REGIONAL_LOCATION_LIST" : Target ads to the specified - /// regions on a regional location list. - /// - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" : Target ads to the specified - /// points of interest on a proximity location list. - /// - "TARGETING_TYPE_GENDER" : Target ads to a specific gender (for example, - /// female or male). - /// - "TARGETING_TYPE_VIDEO_PLAYER_SIZE" : Target a specific video player size - /// for video ads. - /// - "TARGETING_TYPE_USER_REWARDED_CONTENT" : Target user rewarded content - /// for video ads. - /// - "TARGETING_TYPE_PARENTAL_STATUS" : Target ads to a specific parental - /// status (for example, parent or not a parent). - /// - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" : Target video or audio ads - /// in a specific content instream position (for example, pre-roll, mid-roll, - /// or post-roll). - /// - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" : Target ads in a specific - /// content outstream position. - /// - "TARGETING_TYPE_DEVICE_TYPE" : Target ads to a specific device type (for - /// example, tablet or connected TV). - /// - "TARGETING_TYPE_AUDIENCE_GROUP" : Target ads to an audience or groups of - /// audiences. Singleton field, at most one can exist on a single Lineitem at - /// a time. - /// - "TARGETING_TYPE_BROWSER" : Target ads to specific web browsers (for - /// example, Chrome). - /// - "TARGETING_TYPE_HOUSEHOLD_INCOME" : Target ads to a specific household - /// income range (for example, top 10%). - /// - "TARGETING_TYPE_ON_SCREEN_POSITION" : Target ads in a specific on screen - /// position. - /// - "TARGETING_TYPE_THIRD_PARTY_VERIFIER" : Filter web sites through third - /// party verification (for example, IAS or DoubleVerify). - /// - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" : Filter web sites by - /// specific digital content label ratings (for example, DL-MA: suitable only - /// for mature audiences). - /// - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" : Filter website content - /// by sensitive categories (for example, adult). - /// - "TARGETING_TYPE_ENVIRONMENT" : Target ads to a specific environment (for - /// example, web or app). - /// - "TARGETING_TYPE_CARRIER_AND_ISP" : Target ads to a specific network - /// carrier or internet service provider (ISP) (for example, Comcast or - /// Orange). - /// - "TARGETING_TYPE_OPERATING_SYSTEM" : Target ads to a specific operating - /// system (for example, macOS). - /// - "TARGETING_TYPE_DEVICE_MAKE_MODEL" : Target ads to a specific device - /// make or model (for example, Roku or Samsung). - /// - "TARGETING_TYPE_KEYWORD" : Target ads to a specific keyword (for - /// example, dog or retriever). - /// - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" : Target ads to a specific - /// negative keyword list. - /// - "TARGETING_TYPE_VIEWABILITY" : Target ads to a specific viewability (for - /// example, 80% viewable). - /// - "TARGETING_TYPE_CATEGORY" : Target ads to a specific content category - /// (for example, arts & entertainment). - /// - "TARGETING_TYPE_INVENTORY_SOURCE" : Purchase impressions from specific - /// deals and auction packages. - /// - "TARGETING_TYPE_LANGUAGE" : Target ads to a specific language (for - /// example, English or Japanese). - /// - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" : Target ads to ads.txt - /// authorized sellers. If no targeting option of this type is assigned, the - /// resource uses the "Authorized Direct Sellers and Resellers" option by - /// default. - /// - "TARGETING_TYPE_GEO_REGION" : Target ads to a specific regional location - /// (for example, a city or state). - /// - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" : Purchase impressions from a - /// group of deals and auction packages. - /// - "TARGETING_TYPE_EXCHANGE" : Purchase impressions from specific - /// exchanges. - /// - "TARGETING_TYPE_SUB_EXCHANGE" : Purchase impressions from specific - /// sub-exchanges. - /// - "TARGETING_TYPE_POI" : Target ads around a specific point of interest, - /// such as a notable building, a street address, or latitude/longitude - /// coordinates. - /// - "TARGETING_TYPE_BUSINESS_CHAIN" : Target ads around locations of a - /// business chain within a specific geo region. - /// - "TARGETING_TYPE_CONTENT_DURATION" : Target ads to a specific video - /// content duration. - /// - "TARGETING_TYPE_CONTENT_STREAM_TYPE" : Target ads to a specific video - /// content stream type. - /// - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" : Target ads to a specific - /// native content position. - /// - "TARGETING_TYPE_OMID" : Target ads in an Open Measurement enabled - /// inventory. - /// - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" : Target ads to a specific audio - /// content type. - /// - "TARGETING_TYPE_CONTENT_GENRE" : Target ads to a specific content genre. - core.String? targetingType; - - CreateAssignedTargetingOptionsRequest({ - this.assignedTargetingOptions, - this.targetingType, - }); - - CreateAssignedTargetingOptionsRequest.fromJson(core.Map json_) - : this( - assignedTargetingOptions: - json_.containsKey('assignedTargetingOptions') - ? (json_['assignedTargetingOptions'] as core.List) - .map((value) => AssignedTargetingOption.fromJson( - value as core.Map)) - .toList() - : null, - targetingType: json_.containsKey('targetingType') - ? json_['targetingType'] as core.String - : null, - ); - - core.Map toJson() => { - if (assignedTargetingOptions != null) - 'assignedTargetingOptions': assignedTargetingOptions!, - if (targetingType != null) 'targetingType': targetingType!, - }; -} - -/// Request message for \[SdfDownloadTaskService.CreateSdfDownloadTask\]. -class CreateSdfDownloadTaskRequest { - /// The ID of the advertiser to download SDF for. - core.String? advertiserId; - - /// Filters on entities by their entity IDs. - IdFilter? idFilter; - - /// Filters on Inventory Sources by their IDs. - InventorySourceFilter? inventorySourceFilter; - - /// Filters on selected file types. - /// - /// The entities in each file are filtered by a chosen set of filter entities. - /// The filter entities must be the same type as, or a parent type of, the - /// selected file types. - ParentEntityFilter? parentEntityFilter; - - /// The ID of the partner to download SDF for. - core.String? partnerId; - - /// The SDF version of the downloaded file. - /// - /// If set to `SDF_VERSION_UNSPECIFIED`, this will default to the version - /// specified by the advertiser or partner identified by `root_id`. An - /// advertiser inherits its SDF version from its partner unless configured - /// otherwise. - /// - /// Required. - /// Possible string values are: - /// - "SDF_VERSION_UNSPECIFIED" : SDF version value is not specified or is - /// unknown in this version. - /// - "SDF_VERSION_3_1" : SDF version 3.1 - /// - "SDF_VERSION_4" : SDF version 4 - /// - "SDF_VERSION_4_1" : SDF version 4.1 - /// - "SDF_VERSION_4_2" : SDF version 4.2 - /// - "SDF_VERSION_5" : SDF version 5. - /// - "SDF_VERSION_5_1" : SDF version 5.1 - /// - "SDF_VERSION_5_2" : SDF version 5.2 - /// - "SDF_VERSION_5_3" : SDF version 5.3 - /// - "SDF_VERSION_5_4" : SDF version 5.4 - /// - "SDF_VERSION_5_5" : SDF version 5.5 - /// - "SDF_VERSION_6" : SDF version 6 - /// - "SDF_VERSION_7" : SDF version 7. Read the \[v7 migration - /// guide\](/display-video/api/structured-data-file/v7-migration-guide) before - /// migrating to this version. Currently in beta. Only available for use by a - /// subset of users. - core.String? version; - - CreateSdfDownloadTaskRequest({ - this.advertiserId, - this.idFilter, - this.inventorySourceFilter, - this.parentEntityFilter, - this.partnerId, - this.version, - }); - - CreateSdfDownloadTaskRequest.fromJson(core.Map json_) - : this( - advertiserId: json_.containsKey('advertiserId') - ? json_['advertiserId'] as core.String - : null, - idFilter: json_.containsKey('idFilter') - ? IdFilter.fromJson( - json_['idFilter'] as core.Map) - : null, - inventorySourceFilter: json_.containsKey('inventorySourceFilter') - ? InventorySourceFilter.fromJson(json_['inventorySourceFilter'] - as core.Map) - : null, - parentEntityFilter: json_.containsKey('parentEntityFilter') - ? ParentEntityFilter.fromJson(json_['parentEntityFilter'] - as core.Map) - : null, - partnerId: json_.containsKey('partnerId') - ? json_['partnerId'] as core.String - : null, - version: json_.containsKey('version') - ? json_['version'] as core.String - : null, - ); - - core.Map toJson() => { - if (advertiserId != null) 'advertiserId': advertiserId!, - if (idFilter != null) 'idFilter': idFilter!, - if (inventorySourceFilter != null) - 'inventorySourceFilter': inventorySourceFilter!, - if (parentEntityFilter != null) - 'parentEntityFilter': parentEntityFilter!, - if (partnerId != null) 'partnerId': partnerId!, - if (version != null) 'version': version!, - }; -} - -/// A single Creative. -class Creative { - /// Additional dimensions. - /// - /// Applicable when creative_type is one of: * `CREATIVE_TYPE_STANDARD` * - /// `CREATIVE_TYPE_EXPANDABLE` * `CREATIVE_TYPE_NATIVE` * - /// `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_LIGHTBOX` * - /// `CREATIVE_TYPE_PUBLISHER_HOSTED` If this field is specified, width_pixels - /// and height_pixels are both required and must be greater than or equal to - /// 0. - core.List? additionalDimensions; - - /// The unique ID of the advertiser the creative belongs to. - /// - /// Output only. - core.String? advertiserId; - - /// Third-party HTML tracking tag to be appended to the creative tag. - core.String? appendedTag; - - /// Assets associated to this creative. - /// - /// Required. - core.List? assets; - - /// The unique ID of the Campaign Manager 360 placement associated with the - /// creative. - /// - /// This field is only applicable for creatives that are synced from Campaign - /// Manager. - /// - /// Output only. - core.String? cmPlacementId; - - /// The Campaign Manager 360 tracking ad associated with the creative. - /// - /// Optional for the following creative_type when created by an advertiser - /// that uses both Campaign Manager 360 and third-party ad serving: * - /// `CREATIVE_TYPE_NATIVE` * `CREATIVE_TYPE_NATIVE_SITE_SQUARE` Output only - /// for other cases. - CmTrackingAd? cmTrackingAd; - - /// The IDs of companion creatives for a video creative. - /// - /// You can assign existing display creatives (with image or HTML5 assets) to - /// serve surrounding the publisher's video player. Companions display around - /// the video player while the video is playing and remain after the video has - /// completed. Creatives contain additional dimensions can not be companion - /// creatives. This field is only supported for following creative_type: * - /// `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_VIDEO` - core.List? companionCreativeIds; - - /// Counter events for a rich media creative. - /// - /// Counters track the number of times that a user interacts with any part of - /// a rich media creative in a specified way (mouse-overs, mouse-outs, clicks, - /// taps, data loading, keyboard entries, etc.). Any event that can be - /// captured in the creative can be recorded as a counter. Leave it empty or - /// unset for creatives containing image assets only. - core.List? counterEvents; - - /// The timestamp when the creative was created. - /// - /// Assigned by the system. - /// - /// Output only. - core.String? createTime; - - /// A list of attributes of the creative that is generated by the system. - /// - /// Output only. - core.List? creativeAttributes; - - /// The unique ID of the creative. - /// - /// Assigned by the system. - /// - /// Output only. - core.String? creativeId; - - /// The type of the creative. - /// - /// Required. Immutable. - /// Possible string values are: - /// - "CREATIVE_TYPE_UNSPECIFIED" : Type value is not specified or is unknown - /// in this version. - /// - "CREATIVE_TYPE_STANDARD" : Standard display creative. Create and update - /// methods are supported for this creative type if the hosting_source is one - /// of the following: * `HOSTING_SOURCE_HOSTED` * `HOSTING_SOURCE_THIRD_PARTY` - /// - "CREATIVE_TYPE_EXPANDABLE" : Expandable creative. Create and update - /// methods are supported for this creative type if the hosting_source is - /// `HOSTING_SOURCE_THIRD_PARTY` - /// - "CREATIVE_TYPE_VIDEO" : Video creative. Create and update methods are - /// supported for this creative type if the hosting_source is one of the - /// following: * `HOSTING_SOURCE_HOSTED` * `HOSTING_SOURCE_THIRD_PARTY` - /// - "CREATIVE_TYPE_NATIVE" : Native creative rendered by publishers with - /// assets from advertiser. Create and update methods are supported for this - /// creative type if the hosting_source is `HOSTING_SOURCE_HOSTED` - /// - "CREATIVE_TYPE_TEMPLATED_APP_INSTALL" : Templated app install mobile - /// creative (banner). Create and update methods are **not** supported for - /// this creative type. - /// - "CREATIVE_TYPE_NATIVE_SITE_SQUARE" : Square native creative. Create and - /// update methods are supported for this creative type if the hosting_source - /// is `HOSTING_SOURCE_HOSTED` - /// - "CREATIVE_TYPE_TEMPLATED_APP_INSTALL_INTERSTITIAL" : Interstitial - /// creative including both display and video. Create and update methods are - /// **not** supported for this creative type. - /// - "CREATIVE_TYPE_LIGHTBOX" : Responsive and expandable Lightbox creative. - /// Create and update methods are **not** supported for this creative type. - /// - "CREATIVE_TYPE_NATIVE_APP_INSTALL" : Native app install creative. Create - /// and update methods are **not** supported for this creative type. - /// - "CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE" : Square native app install - /// creative. Create and update methods are **not** supported for this - /// creative type. - /// - "CREATIVE_TYPE_AUDIO" : Audio creative. Create and update methods are - /// supported for this creative type if the hosting_source is - /// `HOSTING_SOURCE_HOSTED` - /// - "CREATIVE_TYPE_PUBLISHER_HOSTED" : Publisher hosted creative. Create and - /// update methods are **not** supported for this creative type. - /// - "CREATIVE_TYPE_NATIVE_VIDEO" : Native video creative. Create and update - /// methods are supported for this creative type if the hosting_source is - /// `HOSTING_SOURCE_HOSTED` - /// - "CREATIVE_TYPE_TEMPLATED_APP_INSTALL_VIDEO" : Templated app install - /// mobile video creative. Create and update methods are **not** supported for - /// this creative type. - core.String? creativeType; - - /// Primary dimensions of the creative. - /// - /// Applicable to all creative types. The value of width_pixels and - /// height_pixels defaults to `0` when creative_type is one of: * - /// `CREATIVE_TYPE_VIDEO` * `CREATIVE_TYPE_AUDIO` * - /// `CREATIVE_TYPE_NATIVE_VIDEO` - /// - /// Required. - Dimensions? dimensions; - - /// The display name of the creative. - /// - /// Must be UTF-8 encoded with a maximum size of 240 bytes. - /// - /// Required. - core.String? displayName; - - /// Indicates whether the creative is dynamic. - /// - /// Output only. - core.bool? dynamic; - - /// Controls whether or not the creative can serve. - /// - /// Accepted values are: * `ENTITY_STATUS_ACTIVE` * `ENTITY_STATUS_ARCHIVED` * - /// `ENTITY_STATUS_PAUSED` - /// - /// Required. - /// Possible string values are: - /// - "ENTITY_STATUS_UNSPECIFIED" : Default value when status is not specified - /// or is unknown in this version. - /// - "ENTITY_STATUS_ACTIVE" : The entity is enabled to bid and spend budget. - /// - "ENTITY_STATUS_ARCHIVED" : The entity is archived. Bidding and budget - /// spending are disabled. An entity can be deleted after archived. Deleted - /// entities cannot be retrieved. - /// - "ENTITY_STATUS_DRAFT" : The entity is under draft. Bidding and budget - /// spending are disabled. - /// - "ENTITY_STATUS_PAUSED" : Bidding and budget spending are paused for the - /// entity. - /// - "ENTITY_STATUS_SCHEDULED_FOR_DELETION" : The entity is scheduled for - /// deletion. - core.String? entityStatus; - - /// Exit events for this creative. - /// - /// An exit (also known as a click tag) is any area in your creative that - /// someone can click or tap to open an advertiser's landing page. Every - /// creative must include at least one exit. You can add an exit to your - /// creative in any of the following ways: * Use Google Web Designer's tap - /// area. * Define a JavaScript variable called "clickTag". * Use the Enabler - /// (Enabler.exit()) to track exits in rich media formats. - /// - /// Required. - core.List? exitEvents; - - /// Indicates the creative will automatically expand on hover. - /// - /// Optional and only valid for third-party expandable creatives. Third-party - /// expandable creatives are creatives with following hosting source: * - /// `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * - /// `CREATIVE_TYPE_EXPANDABLE` - /// - /// Optional. - core.bool? expandOnHover; - - /// Specifies the expanding direction of the creative. - /// - /// Required and only valid for third-party expandable creatives. Third-party - /// expandable creatives are creatives with following hosting source: * - /// `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * - /// `CREATIVE_TYPE_EXPANDABLE` - /// - /// Optional. - /// Possible string values are: - /// - "EXPANDING_DIRECTION_UNSPECIFIED" : The expanding direction is not - /// specified. - /// - "EXPANDING_DIRECTION_NONE" : Does not expand in any direction. - /// - "EXPANDING_DIRECTION_UP" : Expands up. - /// - "EXPANDING_DIRECTION_DOWN" : Expands down. - /// - "EXPANDING_DIRECTION_LEFT" : Expands left. - /// - "EXPANDING_DIRECTION_RIGHT" : Expands right. - /// - "EXPANDING_DIRECTION_UP_AND_LEFT" : Expands up and to the left side. - /// - "EXPANDING_DIRECTION_UP_AND_RIGHT" : Expands up and to the right side. - /// - "EXPANDING_DIRECTION_DOWN_AND_LEFT" : Expands down and to the left side. - /// - "EXPANDING_DIRECTION_DOWN_AND_RIGHT" : Expands down and to the right - /// side. - /// - "EXPANDING_DIRECTION_UP_OR_DOWN" : Expands either up or down. - /// - "EXPANDING_DIRECTION_LEFT_OR_RIGHT" : Expands to either the left or the - /// right side. - /// - "EXPANDING_DIRECTION_ANY_DIAGONAL" : Can expand in any diagonal - /// direction. - core.String? expandingDirection; - - /// Indicates where the creative is hosted. - /// - /// Required. - /// Possible string values are: - /// - "HOSTING_SOURCE_UNSPECIFIED" : Hosting source is not specified or is - /// unknown in this version. - /// - "HOSTING_SOURCE_CM" : A creative synced from Campaign Manager 360. - /// Create and update methods are **not** supported for this hosting type. - /// - "HOSTING_SOURCE_THIRD_PARTY" : A creative hosted by a third-party ad - /// server (3PAS). Create and update methods are supported for this hosting - /// type if the creative_type is one of the following: * `CREATIVE_TYPE_AUDIO` - /// * `CREATIVE_TYPE_EXPANDABLE` * `CREATIVE_TYPE_STANDARD` * - /// `CREATIVE_TYPE_VIDEO` - /// - "HOSTING_SOURCE_HOSTED" : A creative created in DV360 and hosted by - /// Campaign Manager 360. Create and update methods are supported for this - /// hosting type if the creative_type is one of the following: * - /// `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_NATIVE` * - /// `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO` * - /// `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_VIDEO` - /// - "HOSTING_SOURCE_RICH_MEDIA" : A rich media creative created in Studio - /// and hosted by Campaign Manager 360. Create and update methods are **not** - /// supported for this hosting type. - core.String? hostingSource; - - /// Indicates the third-party VAST tag creative requires HTML5 Video support. - /// - /// Output only and only valid for third-party VAST tag creatives. Third-party - /// VAST tag creatives are creatives with following hosting_source: * - /// `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * - /// `CREATIVE_TYPE_VIDEO` - /// - /// Output only. - core.bool? html5Video; - - /// Indicates whether Integral Ad Science (IAS) campaign monitoring is - /// enabled. - /// - /// To enable this for the creative, make sure the - /// Advertiser.creative_config.ias_client_id has been set to your IAS client - /// ID. - core.bool? iasCampaignMonitoring; - - /// ID information used to link this creative to an external system. - /// - /// Must be UTF-8 encoded with a length of no more than 10,000 characters. - core.String? integrationCode; - - /// JavaScript measurement URL from supported third-party verification - /// providers (ComScore, DoubleVerify, IAS, Moat). - /// - /// HTML script tags are not supported. This field is only writeable in - /// following creative_type: * `CREATIVE_TYPE_NATIVE` * - /// `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO` - core.String? jsTrackerUrl; - - /// The IDs of the line items this creative is associated with. - /// - /// To associate a creative to a line item, use LineItem.creative_ids instead. - /// - /// Output only. - core.List? lineItemIds; - - /// Media duration of the creative. - /// - /// Applicable when creative_type is one of: * `CREATIVE_TYPE_VIDEO` * - /// `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_NATIVE_VIDEO` * - /// `CREATIVE_TYPE_PUBLISHER_HOSTED` - /// - /// Output only. - core.String? mediaDuration; - - /// Indicates the third-party audio creative supports MP3. - /// - /// Output only and only valid for third-party audio creatives. Third-party - /// audio creatives are creatives with following hosting_source: * - /// `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * - /// `CREATIVE_TYPE_AUDIO` - /// - /// Output only. - core.bool? mp3Audio; - - /// The resource name of the creative. - /// - /// Output only. - core.String? name; - - /// User notes for this creative. - /// - /// Must be UTF-8 encoded with a length of no more than 20,000 characters. - core.String? notes; - - /// Specifies the OBA icon for a video creative. - /// - /// This field is only supported in following creative_type: * - /// `CREATIVE_TYPE_VIDEO` - ObaIcon? obaIcon; - - /// Indicates the third-party audio creative supports OGG. - /// - /// Output only and only valid for third-party audio creatives. Third-party - /// audio creatives are creatives with following hosting_source: * - /// `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * - /// `CREATIVE_TYPE_AUDIO` - /// - /// Output only. - core.bool? oggAudio; - - /// Amount of time to play the video before counting a view. - /// - /// This field is required when skippable is true. This field is only - /// supported for the following creative_type: * `CREATIVE_TYPE_VIDEO` - AudioVideoOffset? progressOffset; - - /// Indicates that the creative relies on HTML5 to render properly. - /// - /// Optional and only valid for third-party tag creatives. Third-party tag - /// creatives are creatives with following hosting_source: * - /// `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * - /// `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_EXPANDABLE` - /// - /// Optional. - core.bool? requireHtml5; - - /// Indicates that the creative requires MRAID (Mobile Rich Media Ad Interface - /// Definitions system). - /// - /// Set this if the creative relies on mobile gestures for interactivity, such - /// as swiping or tapping. Optional and only valid for third-party tag - /// creatives. Third-party tag creatives are creatives with following - /// hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following - /// creative_type: * `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_EXPANDABLE` - /// - /// Optional. - core.bool? requireMraid; - - /// Indicates that the creative will wait for a return ping for attribution. - /// - /// Only valid when using a Campaign Manager 360 tracking ad with a - /// third-party ad server parameter and the ${DC_DBM_TOKEN} macro. Optional - /// and only valid for third-party tag creatives or third-party VAST tag - /// creatives. Third-party tag creatives are creatives with following - /// hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following - /// creative_type: * `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_EXPANDABLE` - /// Third-party VAST tag creatives are creatives with following - /// hosting_source: * `HOSTING_SOURCE_THIRD_PARTY` combined with following - /// creative_type: * `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_VIDEO` - /// - /// Optional. - core.bool? requirePingForAttribution; - - /// The current status of the creative review process. - /// - /// Output only. - ReviewStatusInfo? reviewStatus; - - /// Amount of time to play the video before the skip button appears. - /// - /// This field is required when skippable is true. This field is only - /// supported for the following creative_type: * `CREATIVE_TYPE_VIDEO` - AudioVideoOffset? skipOffset; - - /// Whether the user can choose to skip a video creative. - /// - /// This field is only supported for the following creative_type: * - /// `CREATIVE_TYPE_VIDEO` - core.bool? skippable; - - /// The original third-party tag used for the creative. - /// - /// Required and only valid for third-party tag creatives. Third-party tag - /// creatives are creatives with following hosting_source: * - /// `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * - /// `CREATIVE_TYPE_STANDARD` * `CREATIVE_TYPE_EXPANDABLE` - /// - /// Optional. - core.String? thirdPartyTag; - - /// Tracking URLs from third parties to track interactions with a video - /// creative. - /// - /// This field is only supported for the following creative_type: * - /// `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_VIDEO` * - /// `CREATIVE_TYPE_NATIVE_VIDEO` - core.List? thirdPartyUrls; - - /// Timer custom events for a rich media creative. - /// - /// Timers track the time during which a user views and interacts with a - /// specified part of a rich media creative. A creative can have multiple - /// timer events, each timed independently. Leave it empty or unset for - /// creatives containing image assets only. - core.List? timerEvents; - - /// Tracking URLs for analytics providers or third-party ad technology - /// vendors. - /// - /// The URLs must start with https (except on inventory that doesn't require - /// SSL compliance). If using macros in your URL, use only macros supported by - /// Display & Video 360. Standard URLs only, no IMG or SCRIPT tags. This field - /// is only writeable in following creative_type: * `CREATIVE_TYPE_NATIVE` * - /// `CREATIVE_TYPE_NATIVE_SITE_SQUARE` * `CREATIVE_TYPE_NATIVE_VIDEO` - core.List? trackerUrls; - - /// Audio/Video transcodes. - /// - /// Display & Video 360 transcodes the main asset into a number of alternative - /// versions that use different file formats or have different properties - /// (resolution, audio bit rate, and video bit rate), each designed for - /// specific video players or bandwidths. These transcodes give a publisher's - /// system more options to choose from for each impression on your video and - /// ensures that the appropriate file serves based on the viewer’s connection - /// and screen size. This field is only supported in following creative_type: - /// * `CREATIVE_TYPE_VIDEO` * `CREATIVE_TYPE_NATIVE_VIDEO` * - /// `CREATIVE_TYPE_AUDIO` - /// - /// Output only. - core.List? transcodes; - - /// An optional creative identifier provided by a registry that is unique - /// across all platforms. - /// - /// Universal Ad ID is part of the VAST 4.0 standard. It can be modified after - /// the creative is created. This field is only supported for the following - /// creative_type: * `CREATIVE_TYPE_VIDEO` - /// - /// Optional. - UniversalAdId? universalAdId; - - /// The timestamp when the creative was last updated, either by the user or - /// system (e.g. creative review). - /// - /// Assigned by the system. - /// - /// Output only. - core.String? updateTime; - - /// The URL of the VAST tag for a third-party VAST tag creative. - /// - /// Required and only valid for third-party VAST tag creatives. Third-party - /// VAST tag creatives are creatives with following hosting_source: * - /// `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * - /// `CREATIVE_TYPE_AUDIO` * `CREATIVE_TYPE_VIDEO` - /// - /// Optional. - core.String? vastTagUrl; - - /// Indicates the third-party VAST tag creative requires VPAID (Digital Video - /// Player-Ad Interface). - /// - /// Output only and only valid for third-party VAST tag creatives. Third-party - /// VAST tag creatives are creatives with following hosting_source: * - /// `HOSTING_SOURCE_THIRD_PARTY` combined with following creative_type: * - /// `CREATIVE_TYPE_VIDEO` - /// - /// Output only. - core.bool? vpaid; - - Creative({ - this.additionalDimensions, - this.advertiserId, - this.appendedTag, - this.assets, - this.cmPlacementId, - this.cmTrackingAd, - this.companionCreativeIds, - this.counterEvents, - this.createTime, - this.creativeAttributes, - this.creativeId, - this.creativeType, - this.dimensions, - this.displayName, - this.dynamic, - this.entityStatus, - this.exitEvents, - this.expandOnHover, - this.expandingDirection, - this.hostingSource, - this.html5Video, - this.iasCampaignMonitoring, - this.integrationCode, - this.jsTrackerUrl, - this.lineItemIds, - this.mediaDuration, - this.mp3Audio, - this.name, - this.notes, - this.obaIcon, - this.oggAudio, - this.progressOffset, - this.requireHtml5, - this.requireMraid, - this.requirePingForAttribution, - this.reviewStatus, - this.skipOffset, - this.skippable, - this.thirdPartyTag, - this.thirdPartyUrls, - this.timerEvents, - this.trackerUrls, - this.transcodes, - this.universalAdId, - this.updateTime, - this.vastTagUrl, - this.vpaid, - }); - - Creative.fromJson(core.Map json_) - : this( - additionalDimensions: json_.containsKey('additionalDimensions') - ? (json_['additionalDimensions'] as core.List) - .map((value) => Dimensions.fromJson( - value as core.Map)) - .toList() - : null, - advertiserId: json_.containsKey('advertiserId') - ? json_['advertiserId'] as core.String - : null, - appendedTag: json_.containsKey('appendedTag') - ? json_['appendedTag'] as core.String - : null, - assets: json_.containsKey('assets') - ? (json_['assets'] as core.List) - .map((value) => AssetAssociation.fromJson( - value as core.Map)) - .toList() - : null, - cmPlacementId: json_.containsKey('cmPlacementId') - ? json_['cmPlacementId'] as core.String - : null, - cmTrackingAd: json_.containsKey('cmTrackingAd') - ? CmTrackingAd.fromJson( - json_['cmTrackingAd'] as core.Map) - : null, - companionCreativeIds: json_.containsKey('companionCreativeIds') - ? (json_['companionCreativeIds'] as core.List) - .map((value) => value as core.String) - .toList() - : null, - counterEvents: json_.containsKey('counterEvents') - ? (json_['counterEvents'] as core.List) - .map((value) => CounterEvent.fromJson( - value as core.Map)) - .toList() - : null, - createTime: json_.containsKey('createTime') - ? json_['createTime'] as core.String - : null, - creativeAttributes: json_.containsKey('creativeAttributes') - ? (json_['creativeAttributes'] as core.List) - .map((value) => value as core.String) - .toList() - : null, - creativeId: json_.containsKey('creativeId') - ? json_['creativeId'] as core.String - : null, - creativeType: json_.containsKey('creativeType') - ? json_['creativeType'] as core.String - : null, - dimensions: json_.containsKey('dimensions') - ? Dimensions.fromJson( - json_['dimensions'] as core.Map) - : null, - displayName: json_.containsKey('displayName') - ? json_['displayName'] as core.String - : null, - dynamic: json_.containsKey('dynamic') - ? json_['dynamic'] as core.bool - : null, - entityStatus: json_.containsKey('entityStatus') - ? json_['entityStatus'] as core.String - : null, - exitEvents: json_.containsKey('exitEvents') - ? (json_['exitEvents'] as core.List) - .map((value) => ExitEvent.fromJson( - value as core.Map)) - .toList() - : null, - expandOnHover: json_.containsKey('expandOnHover') - ? json_['expandOnHover'] as core.bool - : null, - expandingDirection: json_.containsKey('expandingDirection') - ? json_['expandingDirection'] as core.String - : null, - hostingSource: json_.containsKey('hostingSource') - ? json_['hostingSource'] as core.String - : null, - html5Video: json_.containsKey('html5Video') - ? json_['html5Video'] as core.bool - : null, - iasCampaignMonitoring: json_.containsKey('iasCampaignMonitoring') - ? json_['iasCampaignMonitoring'] as core.bool - : null, - integrationCode: json_.containsKey('integrationCode') - ? json_['integrationCode'] as core.String - : null, - jsTrackerUrl: json_.containsKey('jsTrackerUrl') - ? json_['jsTrackerUrl'] as core.String - : null, - lineItemIds: json_.containsKey('lineItemIds') - ? (json_['lineItemIds'] as core.List) - .map((value) => value as core.String) - .toList() - : null, - mediaDuration: json_.containsKey('mediaDuration') - ? json_['mediaDuration'] as core.String - : null, - mp3Audio: json_.containsKey('mp3Audio') - ? json_['mp3Audio'] as core.bool - : null, - name: json_.containsKey('name') ? json_['name'] as core.String : null, - notes: - json_.containsKey('notes') ? json_['notes'] as core.String : null, - obaIcon: json_.containsKey('obaIcon') - ? ObaIcon.fromJson( - json_['obaIcon'] as core.Map) - : null, - oggAudio: json_.containsKey('oggAudio') - ? json_['oggAudio'] as core.bool - : null, - progressOffset: json_.containsKey('progressOffset') - ? AudioVideoOffset.fromJson(json_['progressOffset'] - as core.Map) - : null, - requireHtml5: json_.containsKey('requireHtml5') - ? json_['requireHtml5'] as core.bool - : null, - requireMraid: json_.containsKey('requireMraid') - ? json_['requireMraid'] as core.bool - : null, - requirePingForAttribution: - json_.containsKey('requirePingForAttribution') - ? json_['requirePingForAttribution'] as core.bool - : null, - reviewStatus: json_.containsKey('reviewStatus') - ? ReviewStatusInfo.fromJson( - json_['reviewStatus'] as core.Map) - : null, - skipOffset: json_.containsKey('skipOffset') - ? AudioVideoOffset.fromJson( - json_['skipOffset'] as core.Map) - : null, - skippable: json_.containsKey('skippable') - ? json_['skippable'] as core.bool - : null, - thirdPartyTag: json_.containsKey('thirdPartyTag') - ? json_['thirdPartyTag'] as core.String - : null, - thirdPartyUrls: json_.containsKey('thirdPartyUrls') - ? (json_['thirdPartyUrls'] as core.List) - .map((value) => ThirdPartyUrl.fromJson( - value as core.Map)) - .toList() - : null, - timerEvents: json_.containsKey('timerEvents') - ? (json_['timerEvents'] as core.List) - .map((value) => TimerEvent.fromJson( - value as core.Map)) - .toList() - : null, - trackerUrls: json_.containsKey('trackerUrls') - ? (json_['trackerUrls'] as core.List) - .map((value) => value as core.String) - .toList() - : null, - transcodes: json_.containsKey('transcodes') - ? (json_['transcodes'] as core.List) - .map((value) => Transcode.fromJson( - value as core.Map)) - .toList() - : null, - universalAdId: json_.containsKey('universalAdId') - ? UniversalAdId.fromJson( - json_['universalAdId'] as core.Map) - : null, - updateTime: json_.containsKey('updateTime') - ? json_['updateTime'] as core.String - : null, - vastTagUrl: json_.containsKey('vastTagUrl') - ? json_['vastTagUrl'] as core.String - : null, - vpaid: - json_.containsKey('vpaid') ? json_['vpaid'] as core.bool : null, - ); - - core.Map toJson() => { - if (additionalDimensions != null) - 'additionalDimensions': additionalDimensions!, - if (advertiserId != null) 'advertiserId': advertiserId!, - if (appendedTag != null) 'appendedTag': appendedTag!, - if (assets != null) 'assets': assets!, - if (cmPlacementId != null) 'cmPlacementId': cmPlacementId!, - if (cmTrackingAd != null) 'cmTrackingAd': cmTrackingAd!, - if (companionCreativeIds != null) - 'companionCreativeIds': companionCreativeIds!, - if (counterEvents != null) 'counterEvents': counterEvents!, - if (createTime != null) 'createTime': createTime!, - if (creativeAttributes != null) - 'creativeAttributes': creativeAttributes!, - if (creativeId != null) 'creativeId': creativeId!, - if (creativeType != null) 'creativeType': creativeType!, - if (dimensions != null) 'dimensions': dimensions!, - if (displayName != null) 'displayName': displayName!, - if (dynamic != null) 'dynamic': dynamic!, - if (entityStatus != null) 'entityStatus': entityStatus!, - if (exitEvents != null) 'exitEvents': exitEvents!, - if (expandOnHover != null) 'expandOnHover': expandOnHover!, - if (expandingDirection != null) - 'expandingDirection': expandingDirection!, - if (hostingSource != null) 'hostingSource': hostingSource!, - if (html5Video != null) 'html5Video': html5Video!, - if (iasCampaignMonitoring != null) - 'iasCampaignMonitoring': iasCampaignMonitoring!, - if (integrationCode != null) 'integrationCode': integrationCode!, - if (jsTrackerUrl != null) 'jsTrackerUrl': jsTrackerUrl!, - if (lineItemIds != null) 'lineItemIds': lineItemIds!, - if (mediaDuration != null) 'mediaDuration': mediaDuration!, - if (mp3Audio != null) 'mp3Audio': mp3Audio!, - if (name != null) 'name': name!, - if (notes != null) 'notes': notes!, - if (obaIcon != null) 'obaIcon': obaIcon!, - if (oggAudio != null) 'oggAudio': oggAudio!, - if (progressOffset != null) 'progressOffset': progressOffset!, - if (requireHtml5 != null) 'requireHtml5': requireHtml5!, - if (requireMraid != null) 'requireMraid': requireMraid!, - if (requirePingForAttribution != null) - 'requirePingForAttribution': requirePingForAttribution!, - if (reviewStatus != null) 'reviewStatus': reviewStatus!, - if (skipOffset != null) 'skipOffset': skipOffset!, - if (skippable != null) 'skippable': skippable!, - if (thirdPartyTag != null) 'thirdPartyTag': thirdPartyTag!, - if (thirdPartyUrls != null) 'thirdPartyUrls': thirdPartyUrls!, - if (timerEvents != null) 'timerEvents': timerEvents!, - if (trackerUrls != null) 'trackerUrls': trackerUrls!, - if (transcodes != null) 'transcodes': transcodes!, - if (universalAdId != null) 'universalAdId': universalAdId!, - if (updateTime != null) 'updateTime': updateTime!, - if (vastTagUrl != null) 'vastTagUrl': vastTagUrl!, - if (vpaid != null) 'vpaid': vpaid!, - }; -} - -/// Creative requirements configuration for the inventory source. -class CreativeConfig { - /// The type of creative that can be assigned to the inventory source. - /// - /// Only the following types are supported: * `CREATIVE_TYPE_STANDARD` * - /// `CREATIVE_TYPE_VIDEO` - /// Possible string values are: - /// - "CREATIVE_TYPE_UNSPECIFIED" : Type value is not specified or is unknown - /// in this version. - /// - "CREATIVE_TYPE_STANDARD" : Standard display creative. Create and update - /// methods are supported for this creative type if the hosting_source is one - /// of the following: * `HOSTING_SOURCE_HOSTED` * `HOSTING_SOURCE_THIRD_PARTY` - /// - "CREATIVE_TYPE_EXPANDABLE" : Expandable creative. Create and update - /// methods are supported for this creative type if the hosting_source is - /// `HOSTING_SOURCE_THIRD_PARTY` - /// - "CREATIVE_TYPE_VIDEO" : Video creative. Create and update methods are - /// supported for this creative type if the hosting_source is one of the - /// following: * `HOSTING_SOURCE_HOSTED` * `HOSTING_SOURCE_THIRD_PARTY` - /// - "CREATIVE_TYPE_NATIVE" : Native creative rendered by publishers with - /// assets from advertiser. Create and update methods are supported for this - /// creative type if the hosting_source is `HOSTING_SOURCE_HOSTED` - /// - "CREATIVE_TYPE_TEMPLATED_APP_INSTALL" : Templated app install mobile - /// creative (banner). Create and update methods are **not** supported for - /// this creative type. - /// - "CREATIVE_TYPE_NATIVE_SITE_SQUARE" : Square native creative. Create and - /// update methods are supported for this creative type if the hosting_source - /// is `HOSTING_SOURCE_HOSTED` - /// - "CREATIVE_TYPE_TEMPLATED_APP_INSTALL_INTERSTITIAL" : Interstitial - /// creative including both display and video. Create and update methods are - /// **not** supported for this creative type. - /// - "CREATIVE_TYPE_LIGHTBOX" : Responsive and expandable Lightbox creative. - /// Create and update methods are **not** supported for this creative type. - /// - "CREATIVE_TYPE_NATIVE_APP_INSTALL" : Native app install creative. Create - /// and update methods are **not** supported for this creative type. - /// - "CREATIVE_TYPE_NATIVE_APP_INSTALL_SQUARE" : Square native app install - /// creative. Create and update methods are **not** supported for this - /// creative type. - /// - "CREATIVE_TYPE_AUDIO" : Audio creative. Create and update methods are - /// supported for this creative type if the hosting_source is - /// `HOSTING_SOURCE_HOSTED` - /// - "CREATIVE_TYPE_PUBLISHER_HOSTED" : Publisher hosted creative. Create and - /// update methods are **not** supported for this creative type. - /// - "CREATIVE_TYPE_NATIVE_VIDEO" : Native video creative. Create and update - /// methods are supported for this creative type if the hosting_source is - /// `HOSTING_SOURCE_HOSTED` - /// - "CREATIVE_TYPE_TEMPLATED_APP_INSTALL_VIDEO" : Templated app install - /// mobile video creative. Create and update methods are **not** supported for - /// this creative type. - core.String? creativeType; - - /// The configuration for display creatives. - /// - /// Applicable when creative_type is `CREATIVE_TYPE_STANDARD`. - InventorySourceDisplayCreativeConfig? displayCreativeConfig; - - /// The configuration for video creatives. - /// - /// Applicable when creative_type is `CREATIVE_TYPE_VIDEO`. - InventorySourceVideoCreativeConfig? videoCreativeConfig; - - CreativeConfig({ - this.creativeType, - this.displayCreativeConfig, - this.videoCreativeConfig, - }); - - CreativeConfig.fromJson(core.Map json_) - : this( - creativeType: json_.containsKey('creativeType') - ? json_['creativeType'] as core.String - : null, - displayCreativeConfig: json_.containsKey('displayCreativeConfig') - ? InventorySourceDisplayCreativeConfig.fromJson( - json_['displayCreativeConfig'] - as core.Map) - : null, - videoCreativeConfig: json_.containsKey('videoCreativeConfig') - ? InventorySourceVideoCreativeConfig.fromJson( - json_['videoCreativeConfig'] - as core.Map) - : null, - ); - - core.Map toJson() => { - if (creativeType != null) 'creativeType': creativeType!, - if (displayCreativeConfig != null) - 'displayCreativeConfig': displayCreativeConfig!, - if (videoCreativeConfig != null) - 'videoCreativeConfig': videoCreativeConfig!, - }; -} - -/// A single custom bidding algorithm. -class CustomBiddingAlgorithm { - /// The unique ID of the advertiser that owns the custom bidding algorithm. - /// - /// Immutable. - core.String? advertiserId; - - /// The unique ID of the custom bidding algorithm. - /// - /// Assigned by the system. - /// - /// Output only. - core.String? customBiddingAlgorithmId; - - /// The status of custom bidding algorithm. - /// - /// Output only. - /// Possible string values are: - /// - "STATE_UNSPECIFIED" : State is not specified or is unknown in this - /// version. - /// - "ENABLED" : Algorithm is enabled, either recently used, currently used - /// or scheduled to be used. The algorithm is actively scoring impressions. - /// - "DORMANT" : Algorithm has not been used recently. Although the algorithm - /// still acts as `ENABLED`, it will eventually be suspended if not used. - /// - "SUSPENDED" : Algorithm is susepended from scoring impressions and - /// doesn't have a serving model trained. If the algorithm is assigned to a - /// line item or otherwise updated, it will switch back to the `ENABLED` state - /// and require time to prepare the serving model again. - core.String? customBiddingAlgorithmState; - - /// The type of custom bidding algorithm. - /// - /// Required. Immutable. - /// Possible string values are: - /// - "CUSTOM_BIDDING_ALGORITHM_TYPE_UNSPECIFIED" : Algorithm type is not - /// specified or is unknown in this version. - /// - "SCRIPT_BASED" : Algorithm generated through customer-uploaded custom - /// bidding script files. - /// - "ADS_DATA_HUB_BASED" : Algorithm created through Ads Data Hub product. - /// - "GOAL_BUILDER_BASED" : Algorithm created through goal builder in DV3 UI. - core.String? customBiddingAlgorithmType; - - /// The display name of the custom bidding algorithm. - /// - /// Must be UTF-8 encoded with a maximum size of 240 bytes. - /// - /// Required. - core.String? displayName; - - /// Controls whether or not the custom bidding algorithm can be used as a - /// bidding strategy. - /// - /// Accepted values are: * `ENTITY_STATUS_ACTIVE` * `ENTITY_STATUS_ARCHIVED` - /// Possible string values are: - /// - "ENTITY_STATUS_UNSPECIFIED" : Default value when status is not specified - /// or is unknown in this version. - /// - "ENTITY_STATUS_ACTIVE" : The entity is enabled to bid and spend budget. - /// - "ENTITY_STATUS_ARCHIVED" : The entity is archived. Bidding and budget - /// spending are disabled. An entity can be deleted after archived. Deleted - /// entities cannot be retrieved. - /// - "ENTITY_STATUS_DRAFT" : The entity is under draft. Bidding and budget - /// spending are disabled. - /// - "ENTITY_STATUS_PAUSED" : Bidding and budget spending are paused for the - /// entity. - /// - "ENTITY_STATUS_SCHEDULED_FOR_DELETION" : The entity is scheduled for - /// deletion. - core.String? entityStatus; - - /// The state of custom bidding model readiness for each advertiser who has - /// access. - /// - /// This field may only include the state of the queried advertiser if the - /// algorithm - /// \[`owner`\](/display-video/api/reference/rest/v1/customBiddingAlgorithms#CustomBiddingAlgorithm.FIELDS.oneof_owner) - /// is a partner and is being retrieved using an advertiser - /// \[`accessor`\](/display-video/api/reference/rest/v1/customBiddingAlgorithms/list#body.QUERY_PARAMETERS.oneof_accessor). - /// - /// Output only. - core.List? modelReadiness; - - /// The resource name of the custom bidding algorithm. - /// - /// Output only. - core.String? name; - - /// The unique ID of the partner that owns the custom bidding algorithm. - /// - /// Immutable. - core.String? partnerId; - - /// The IDs of the advertisers who have access to this algorithm. - /// - /// If advertiser_id is set, this field will only consist of that value. This - /// field will not be set if the algorithm - /// \[`owner`\](/display-video/api/reference/rest/v1/customBiddingAlgorithms#CustomBiddingAlgorithm.FIELDS.oneof_owner) - /// is a partner and is being retrieved using an advertiser - /// \[`accessor`\](/display-video/api/reference/rest/v1/customBiddingAlgorithms/list#body.QUERY_PARAMETERS.oneof_accessor). - core.List? sharedAdvertiserIds; - - CustomBiddingAlgorithm({ - this.advertiserId, - this.customBiddingAlgorithmId, - this.customBiddingAlgorithmState, - this.customBiddingAlgorithmType, - this.displayName, - this.entityStatus, - this.modelReadiness, - this.name, - this.partnerId, - this.sharedAdvertiserIds, - }); - - CustomBiddingAlgorithm.fromJson(core.Map json_) - : this( - advertiserId: json_.containsKey('advertiserId') - ? json_['advertiserId'] as core.String - : null, - customBiddingAlgorithmId: - json_.containsKey('customBiddingAlgorithmId') - ? json_['customBiddingAlgorithmId'] as core.String - : null, - customBiddingAlgorithmState: - json_.containsKey('customBiddingAlgorithmState') - ? json_['customBiddingAlgorithmState'] as core.String - : null, - customBiddingAlgorithmType: - json_.containsKey('customBiddingAlgorithmType') - ? json_['customBiddingAlgorithmType'] as core.String - : null, - displayName: json_.containsKey('displayName') - ? json_['displayName'] as core.String - : null, - entityStatus: json_.containsKey('entityStatus') - ? json_['entityStatus'] as core.String - : null, - modelReadiness: json_.containsKey('modelReadiness') - ? (json_['modelReadiness'] as core.List) - .map((value) => CustomBiddingModelReadinessState.fromJson( - value as core.Map)) - .toList() - : null, - name: json_.containsKey('name') ? json_['name'] as core.String : null, - partnerId: json_.containsKey('partnerId') - ? json_['partnerId'] as core.String - : null, - sharedAdvertiserIds: json_.containsKey('sharedAdvertiserIds') - ? (json_['sharedAdvertiserIds'] as core.List) - .map((value) => value as core.String) - .toList() - : null, - ); - - core.Map toJson() => { - if (advertiserId != null) 'advertiserId': advertiserId!, - if (customBiddingAlgorithmId != null) - 'customBiddingAlgorithmId': customBiddingAlgorithmId!, - if (customBiddingAlgorithmState != null) - 'customBiddingAlgorithmState': customBiddingAlgorithmState!, - if (customBiddingAlgorithmType != null) - 'customBiddingAlgorithmType': customBiddingAlgorithmType!, - if (displayName != null) 'displayName': displayName!, - if (entityStatus != null) 'entityStatus': entityStatus!, - if (modelReadiness != null) 'modelReadiness': modelReadiness!, - if (name != null) 'name': name!, - if (partnerId != null) 'partnerId': partnerId!, - if (sharedAdvertiserIds != null) - 'sharedAdvertiserIds': sharedAdvertiserIds!, - }; -} - -/// The custom bidding algorithm model readiness state for a single shared -/// advertiser. -class CustomBiddingModelReadinessState { - /// The unique ID of the relevant advertiser. - core.String? advertiserId; - - /// The readiness state of custom bidding model. - /// Possible string values are: - /// - "READINESS_STATE_UNSPECIFIED" : State is not specified or is unknown in - /// this version. - /// - "READINESS_STATE_ACTIVE" : The model is trained and ready for serving. - /// - "READINESS_STATE_INSUFFICIENT_DATA" : There is not enough data to train - /// the serving model. - /// - "READINESS_STATE_TRAINING" : The model is training and not ready for - /// serving. - /// - "READINESS_STATE_NO_VALID_SCRIPT" : A valid custom bidding script has - /// not been provided with which to train the model. This state will only be - /// applied to algorithms whose `custom_bidding_algorithm_type` is - /// `SCRIPT_BASED`. - core.String? readinessState; - - CustomBiddingModelReadinessState({ - this.advertiserId, - this.readinessState, - }); - - CustomBiddingModelReadinessState.fromJson(core.Map json_) - : this( - advertiserId: json_.containsKey('advertiserId') - ? json_['advertiserId'] as core.String - : null, - readinessState: json_.containsKey('readinessState') - ? json_['readinessState'] as core.String - : null, - ); - - core.Map toJson() => { - if (advertiserId != null) 'advertiserId': advertiserId!, - if (readinessState != null) 'readinessState': readinessState!, - }; -} - -/// A single custom bidding script. -class CustomBiddingScript { - /// Whether the script is currently being used for scoring by the parent - /// algorithm. - /// - /// Output only. - core.bool? active; - - /// The time when the script was created. - /// - /// Output only. - core.String? createTime; - - /// The unique ID of the custom bidding algorithm the script belongs to. - /// - /// Output only. - core.String? customBiddingAlgorithmId; - - /// The unique ID of the custom bidding script. - /// - /// Output only. - core.String? customBiddingScriptId; - - /// Error details of a rejected custom bidding script. - /// - /// This field will only be populated when state is REJECTED. - /// - /// Output only. - core.List? errors; - - /// The resource name of the custom bidding script. - /// - /// Output only. - core.String? name; - - /// The reference to the uploaded script file. - CustomBiddingScriptRef? script; - - /// The state of the custom bidding script. - /// - /// Output only. - /// Possible string values are: - /// - "STATE_UNSPECIFIED" : The script state is not specified or is unknown in - /// this version. - /// - "ACCEPTED" : The script has been accepted for scoring impressions. - /// - "REJECTED" : The script has been rejected by backend pipelines. It may - /// have errors. - /// - "PENDING" : The script is being processed for backend pipelines. - core.String? state; - - CustomBiddingScript({ - this.active, - this.createTime, - this.customBiddingAlgorithmId, - this.customBiddingScriptId, - this.errors, - this.name, - this.script, - this.state, - }); - - CustomBiddingScript.fromJson(core.Map json_) - : this( - active: - json_.containsKey('active') ? json_['active'] as core.bool : null, - createTime: json_.containsKey('createTime') - ? json_['createTime'] as core.String - : null, - customBiddingAlgorithmId: - json_.containsKey('customBiddingAlgorithmId') - ? json_['customBiddingAlgorithmId'] as core.String - : null, - customBiddingScriptId: json_.containsKey('customBiddingScriptId') - ? json_['customBiddingScriptId'] as core.String - : null, - errors: json_.containsKey('errors') - ? (json_['errors'] as core.List) - .map((value) => ScriptError.fromJson( - value as core.Map)) - .toList() - : null, - name: json_.containsKey('name') ? json_['name'] as core.String : null, - script: json_.containsKey('script') - ? CustomBiddingScriptRef.fromJson( - json_['script'] as core.Map) - : null, - state: - json_.containsKey('state') ? json_['state'] as core.String : null, - ); - - core.Map toJson() => { - if (active != null) 'active': active!, - if (createTime != null) 'createTime': createTime!, - if (customBiddingAlgorithmId != null) - 'customBiddingAlgorithmId': customBiddingAlgorithmId!, - if (customBiddingScriptId != null) - 'customBiddingScriptId': customBiddingScriptId!, - if (errors != null) 'errors': errors!, - if (name != null) 'name': name!, - if (script != null) 'script': script!, - if (state != null) 'state': state!, - }; -} - -/// The reference to the uploaded custom bidding script file. -typedef CustomBiddingScriptRef = $CustomBiddingScriptRef; - -/// Describes a custom list entity, such as a custom affinity or custom intent -/// audience list. -typedef CustomList = $CustomList; - -/// Details of custom list group. -/// -/// All custom list targeting settings are logically ‘OR’ of each other. -class CustomListGroup { - /// All custom list targeting settings in custom list group. - /// - /// Repeated settings with same id will be ignored. - /// - /// Required. - core.List? settings; - - CustomListGroup({ - this.settings, - }); - - CustomListGroup.fromJson(core.Map json_) - : this( - settings: json_.containsKey('settings') - ? (json_['settings'] as core.List) - .map((value) => CustomListTargetingSetting.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (settings != null) 'settings': settings!, - }; -} - -/// Details of custom list targeting setting. -typedef CustomListTargetingSetting = $CustomListTargetingSetting; - -/// Represents a whole or partial calendar date, such as a birthday. -/// -/// The time of day and time zone are either specified elsewhere or are -/// insignificant. The date is relative to the Gregorian Calendar. This can -/// represent one of the following: * A full date, with non-zero year, month, -/// and day values. * A month and day, with a zero year (for example, an -/// anniversary). * A year on its own, with a zero month and a zero day. * A -/// year and month, with a zero day (for example, a credit card expiration -/// date). Related types: * google.type.TimeOfDay * google.type.DateTime * -/// google.protobuf.Timestamp -typedef Date = $Date; - -/// A date range. -class DateRange { - /// The upper bound of the date range, inclusive. - /// - /// Must specify a positive value for `year`, `month`, and `day`. - Date? endDate; - - /// The lower bound of the date range, inclusive. - /// - /// Must specify a positive value for `year`, `month`, and `day`. - Date? startDate; - - DateRange({ - this.endDate, - this.startDate, - }); - - DateRange.fromJson(core.Map json_) - : this( - endDate: json_.containsKey('endDate') - ? Date.fromJson( - json_['endDate'] as core.Map) - : null, - startDate: json_.containsKey('startDate') - ? Date.fromJson( - json_['startDate'] as core.Map) - : null, - ); - - core.Map toJson() => { - if (endDate != null) 'endDate': endDate!, - if (startDate != null) 'startDate': startDate!, - }; -} - -/// Representation of a segment of time defined on a specific day of the week -/// and with a start and end time. -/// -/// The time represented by `start_hour` must be before the time represented by -/// `end_hour`. -typedef DayAndTimeAssignedTargetingOptionDetails - = $DayAndTimeAssignedTargetingOptionDetails; - -/// Request message for ManualTriggerService.DeactivateManualTrigger. -typedef DeactivateManualTriggerRequest = $Empty; - -/// A request listing which assigned targeting options of a given targeting type -/// should be deleted. -class DeleteAssignedTargetingOptionsRequest { - /// The assigned targeting option IDs to delete. - /// - /// Required. - core.List? assignedTargetingOptionIds; - - /// Identifies the type of this assigned targeting option. - /// - /// Required. - /// Possible string values are: - /// - "TARGETING_TYPE_UNSPECIFIED" : Default value when type is not specified - /// or is unknown in this version. - /// - "TARGETING_TYPE_CHANNEL" : Target a channel (a custom group of related - /// websites or apps). - /// - "TARGETING_TYPE_APP_CATEGORY" : Target an app category (for example, - /// education or puzzle games). - /// - "TARGETING_TYPE_APP" : Target a specific app (for example, Angry Birds). - /// - "TARGETING_TYPE_URL" : Target a specific url (for example, quora.com). - /// - "TARGETING_TYPE_DAY_AND_TIME" : Target ads during a chosen time period - /// on a specific day. - /// - "TARGETING_TYPE_AGE_RANGE" : Target ads to a specific age range (for - /// example, 18-24). - /// - "TARGETING_TYPE_REGIONAL_LOCATION_LIST" : Target ads to the specified - /// regions on a regional location list. - /// - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" : Target ads to the specified - /// points of interest on a proximity location list. - /// - "TARGETING_TYPE_GENDER" : Target ads to a specific gender (for example, - /// female or male). - /// - "TARGETING_TYPE_VIDEO_PLAYER_SIZE" : Target a specific video player size - /// for video ads. - /// - "TARGETING_TYPE_USER_REWARDED_CONTENT" : Target user rewarded content - /// for video ads. - /// - "TARGETING_TYPE_PARENTAL_STATUS" : Target ads to a specific parental - /// status (for example, parent or not a parent). - /// - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" : Target video or audio ads - /// in a specific content instream position (for example, pre-roll, mid-roll, - /// or post-roll). - /// - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" : Target ads in a specific - /// content outstream position. - /// - "TARGETING_TYPE_DEVICE_TYPE" : Target ads to a specific device type (for - /// example, tablet or connected TV). - /// - "TARGETING_TYPE_AUDIENCE_GROUP" : Target ads to an audience or groups of - /// audiences. Singleton field, at most one can exist on a single Lineitem at - /// a time. - /// - "TARGETING_TYPE_BROWSER" : Target ads to specific web browsers (for - /// example, Chrome). - /// - "TARGETING_TYPE_HOUSEHOLD_INCOME" : Target ads to a specific household - /// income range (for example, top 10%). - /// - "TARGETING_TYPE_ON_SCREEN_POSITION" : Target ads in a specific on screen - /// position. - /// - "TARGETING_TYPE_THIRD_PARTY_VERIFIER" : Filter web sites through third - /// party verification (for example, IAS or DoubleVerify). - /// - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" : Filter web sites by - /// specific digital content label ratings (for example, DL-MA: suitable only - /// for mature audiences). - /// - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" : Filter website content - /// by sensitive categories (for example, adult). - /// - "TARGETING_TYPE_ENVIRONMENT" : Target ads to a specific environment (for - /// example, web or app). - /// - "TARGETING_TYPE_CARRIER_AND_ISP" : Target ads to a specific network - /// carrier or internet service provider (ISP) (for example, Comcast or - /// Orange). - /// - "TARGETING_TYPE_OPERATING_SYSTEM" : Target ads to a specific operating - /// system (for example, macOS). - /// - "TARGETING_TYPE_DEVICE_MAKE_MODEL" : Target ads to a specific device - /// make or model (for example, Roku or Samsung). - /// - "TARGETING_TYPE_KEYWORD" : Target ads to a specific keyword (for - /// example, dog or retriever). - /// - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" : Target ads to a specific - /// negative keyword list. - /// - "TARGETING_TYPE_VIEWABILITY" : Target ads to a specific viewability (for - /// example, 80% viewable). - /// - "TARGETING_TYPE_CATEGORY" : Target ads to a specific content category - /// (for example, arts & entertainment). - /// - "TARGETING_TYPE_INVENTORY_SOURCE" : Purchase impressions from specific - /// deals and auction packages. - /// - "TARGETING_TYPE_LANGUAGE" : Target ads to a specific language (for - /// example, English or Japanese). - /// - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" : Target ads to ads.txt - /// authorized sellers. If no targeting option of this type is assigned, the - /// resource uses the "Authorized Direct Sellers and Resellers" option by - /// default. - /// - "TARGETING_TYPE_GEO_REGION" : Target ads to a specific regional location - /// (for example, a city or state). - /// - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" : Purchase impressions from a - /// group of deals and auction packages. - /// - "TARGETING_TYPE_EXCHANGE" : Purchase impressions from specific - /// exchanges. - /// - "TARGETING_TYPE_SUB_EXCHANGE" : Purchase impressions from specific - /// sub-exchanges. - /// - "TARGETING_TYPE_POI" : Target ads around a specific point of interest, - /// such as a notable building, a street address, or latitude/longitude - /// coordinates. - /// - "TARGETING_TYPE_BUSINESS_CHAIN" : Target ads around locations of a - /// business chain within a specific geo region. - /// - "TARGETING_TYPE_CONTENT_DURATION" : Target ads to a specific video - /// content duration. - /// - "TARGETING_TYPE_CONTENT_STREAM_TYPE" : Target ads to a specific video - /// content stream type. - /// - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" : Target ads to a specific - /// native content position. - /// - "TARGETING_TYPE_OMID" : Target ads in an Open Measurement enabled - /// inventory. - /// - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" : Target ads to a specific audio - /// content type. - /// - "TARGETING_TYPE_CONTENT_GENRE" : Target ads to a specific content genre. - core.String? targetingType; - - DeleteAssignedTargetingOptionsRequest({ - this.assignedTargetingOptionIds, - this.targetingType, - }); - - DeleteAssignedTargetingOptionsRequest.fromJson(core.Map json_) - : this( - assignedTargetingOptionIds: - json_.containsKey('assignedTargetingOptionIds') - ? (json_['assignedTargetingOptionIds'] as core.List) - .map((value) => value as core.String) - .toList() - : null, - targetingType: json_.containsKey('targetingType') - ? json_['targetingType'] as core.String - : null, - ); - - core.Map toJson() => { - if (assignedTargetingOptionIds != null) - 'assignedTargetingOptionIds': assignedTargetingOptionIds!, - if (targetingType != null) 'targetingType': targetingType!, - }; -} - -/// Assigned device make and model targeting option details. -/// -/// This will be populated in the device_make_model_details field when -/// targeting_type is `TARGETING_TYPE_DEVICE_MAKE_MODEL`. -typedef DeviceMakeModelAssignedTargetingOptionDetails - = $DeviceMakeModelAssignedTargetingOptionDetails; - -/// Represents a targetable device make and model. -/// -/// This will be populated in the device_make_model_details field of a -/// TargetingOption when targeting_type is `TARGETING_TYPE_DEVICE_MAKE_MODEL`. -typedef DeviceMakeModelTargetingOptionDetails - = $DeviceMakeModelTargetingOptionDetails; - -/// Targeting details for device type. -/// -/// This will be populated in the details field of an AssignedTargetingOption -/// when targeting_type is `TARGETING_TYPE_DEVICE_TYPE`. -class DeviceTypeAssignedTargetingOptionDetails { - /// The display name of the device type. - /// - /// Required. - /// Possible string values are: - /// - "DEVICE_TYPE_UNSPECIFIED" : Default value when device type is not - /// specified in this version. This enum is a placeholder for default value - /// and does not represent a real device type option. - /// - "DEVICE_TYPE_COMPUTER" : Computer. - /// - "DEVICE_TYPE_CONNECTED_TV" : Connected TV. - /// - "DEVICE_TYPE_SMART_PHONE" : Smart phone. - /// - "DEVICE_TYPE_TABLET" : Tablet. - core.String? deviceType; - - /// ID of the device type. - /// - /// Required. - core.String? targetingOptionId; - - DeviceTypeAssignedTargetingOptionDetails({ - this.deviceType, - this.targetingOptionId, - }); - - DeviceTypeAssignedTargetingOptionDetails.fromJson(core.Map json_) - : this( - deviceType: json_.containsKey('deviceType') - ? json_['deviceType'] as core.String - : null, - targetingOptionId: json_.containsKey('targetingOptionId') - ? json_['targetingOptionId'] as core.String - : null, - ); - - core.Map toJson() => { - if (deviceType != null) 'deviceType': deviceType!, - if (targetingOptionId != null) 'targetingOptionId': targetingOptionId!, - }; -} - -/// Represents a targetable device type. -/// -/// This will be populated in the device_type_details field of a TargetingOption -/// when targeting_type is `TARGETING_TYPE_DEVICE_TYPE`. -typedef DeviceTypeTargetingOptionDetails = $DeviceTypeTargetingOptionDetails; - -/// Targeting details for digital content label. -/// -/// This will be populated in the details field of an AssignedTargetingOption -/// when targeting_type is `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION`. -class DigitalContentLabelAssignedTargetingOptionDetails { - /// The display name of the digital content label rating tier. - /// - /// Output only. - /// Possible string values are: - /// - "CONTENT_RATING_TIER_UNSPECIFIED" : Content label is not specified in - /// this version. This enum is a place holder for a default value and does not - /// represent a real content rating. - /// - "CONTENT_RATING_TIER_UNRATED" : Content that has not been labeled. - /// - "CONTENT_RATING_TIER_GENERAL" : Content suitable for general audiences. - /// - "CONTENT_RATING_TIER_PARENTAL_GUIDANCE" : Content suitable for most - /// audiences with parental guidance. - /// - "CONTENT_RATING_TIER_TEENS" : Content suitable for teen and older - /// audiences. - /// - "CONTENT_RATING_TIER_MATURE" : Content suitable only for mature - /// audiences. - core.String? contentRatingTier; - - /// ID of the digital content label to be EXCLUDED. - /// - /// Required. - core.String? excludedTargetingOptionId; - - DigitalContentLabelAssignedTargetingOptionDetails({ - this.contentRatingTier, - this.excludedTargetingOptionId, - }); - - DigitalContentLabelAssignedTargetingOptionDetails.fromJson(core.Map json_) - : this( - contentRatingTier: json_.containsKey('contentRatingTier') - ? json_['contentRatingTier'] as core.String - : null, - excludedTargetingOptionId: - json_.containsKey('excludedTargetingOptionId') - ? json_['excludedTargetingOptionId'] as core.String - : null, - ); - - core.Map toJson() => { - if (contentRatingTier != null) 'contentRatingTier': contentRatingTier!, - if (excludedTargetingOptionId != null) - 'excludedTargetingOptionId': excludedTargetingOptionId!, - }; -} - -/// Represents a targetable digital content label rating tier. -/// -/// This will be populated in the digital_content_label_details field of the -/// TargetingOption when targeting_type is -/// `TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION`. -class DigitalContentLabelTargetingOptionDetails { - /// An enum for the content label brand safety tiers. - /// - /// Output only. - /// Possible string values are: - /// - "CONTENT_RATING_TIER_UNSPECIFIED" : Content label is not specified in - /// this version. This enum is a place holder for a default value and does not - /// represent a real content rating. - /// - "CONTENT_RATING_TIER_UNRATED" : Content that has not been labeled. - /// - "CONTENT_RATING_TIER_GENERAL" : Content suitable for general audiences. - /// - "CONTENT_RATING_TIER_PARENTAL_GUIDANCE" : Content suitable for most - /// audiences with parental guidance. - /// - "CONTENT_RATING_TIER_TEENS" : Content suitable for teen and older - /// audiences. - /// - "CONTENT_RATING_TIER_MATURE" : Content suitable only for mature - /// audiences. - core.String? contentRatingTier; - - DigitalContentLabelTargetingOptionDetails({ - this.contentRatingTier, - }); - - DigitalContentLabelTargetingOptionDetails.fromJson(core.Map json_) - : this( - contentRatingTier: json_.containsKey('contentRatingTier') - ? json_['contentRatingTier'] as core.String - : null, - ); - - core.Map toJson() => { - if (contentRatingTier != null) 'contentRatingTier': contentRatingTier!, - }; -} - -/// Dimensions. -typedef Dimensions = $Dimensions; - -/// Details of DoubleVerify settings. -class DoubleVerify { - /// Avoid bidding on apps with the star ratings. - DoubleVerifyAppStarRating? appStarRating; - - /// Avoid bidding on apps with the age rating. - core.List? avoidedAgeRatings; - - /// DV Brand Safety Controls. - DoubleVerifyBrandSafetyCategories? brandSafetyCategories; - - /// The custom segment ID provided by DoubleVerify. - /// - /// The ID must start with "51" and consist of eight digits. Custom segment ID - /// cannot be specified along with any of the following fields: * - /// brand_safety_categories * avoided_age_ratings * app_star_rating * - /// fraud_invalid_traffic - core.String? customSegmentId; - - /// Display viewability settings (applicable to display line items only). - DoubleVerifyDisplayViewability? displayViewability; - - /// Avoid Sites and Apps with historical Fraud & IVT Rates. - DoubleVerifyFraudInvalidTraffic? fraudInvalidTraffic; - - /// Video viewability settings (applicable to video line items only). - DoubleVerifyVideoViewability? videoViewability; - - DoubleVerify({ - this.appStarRating, - this.avoidedAgeRatings, - this.brandSafetyCategories, - this.customSegmentId, - this.displayViewability, - this.fraudInvalidTraffic, - this.videoViewability, - }); - - DoubleVerify.fromJson(core.Map json_) - : this( - appStarRating: json_.containsKey('appStarRating') - ? DoubleVerifyAppStarRating.fromJson( - json_['appStarRating'] as core.Map) - : null, - avoidedAgeRatings: json_.containsKey('avoidedAgeRatings') - ? (json_['avoidedAgeRatings'] as core.List) - .map((value) => value as core.String) - .toList() - : null, - brandSafetyCategories: json_.containsKey('brandSafetyCategories') - ? DoubleVerifyBrandSafetyCategories.fromJson( - json_['brandSafetyCategories'] - as core.Map) - : null, - customSegmentId: json_.containsKey('customSegmentId') - ? json_['customSegmentId'] as core.String - : null, - displayViewability: json_.containsKey('displayViewability') - ? DoubleVerifyDisplayViewability.fromJson( - json_['displayViewability'] - as core.Map) - : null, - fraudInvalidTraffic: json_.containsKey('fraudInvalidTraffic') - ? DoubleVerifyFraudInvalidTraffic.fromJson( - json_['fraudInvalidTraffic'] - as core.Map) - : null, - videoViewability: json_.containsKey('videoViewability') - ? DoubleVerifyVideoViewability.fromJson(json_['videoViewability'] - as core.Map) - : null, - ); - - core.Map toJson() => { - if (appStarRating != null) 'appStarRating': appStarRating!, - if (avoidedAgeRatings != null) 'avoidedAgeRatings': avoidedAgeRatings!, - if (brandSafetyCategories != null) - 'brandSafetyCategories': brandSafetyCategories!, - if (customSegmentId != null) 'customSegmentId': customSegmentId!, - if (displayViewability != null) - 'displayViewability': displayViewability!, - if (fraudInvalidTraffic != null) - 'fraudInvalidTraffic': fraudInvalidTraffic!, - if (videoViewability != null) 'videoViewability': videoViewability!, - }; -} - -/// Details of DoubleVerify star ratings settings. -typedef DoubleVerifyAppStarRating = $DoubleVerifyAppStarRating; - -/// Settings for brand safety controls. -typedef DoubleVerifyBrandSafetyCategories = $DoubleVerifyBrandSafetyCategories; - -/// Details of DoubleVerify display viewability settings. -typedef DoubleVerifyDisplayViewability = $DoubleVerifyDisplayViewability; - -/// DoubleVerify Fraud & Invalid Traffic settings. -typedef DoubleVerifyFraudInvalidTraffic = $DoubleVerifyFraudInvalidTraffic; - -/// Details of DoubleVerify video viewability settings. -typedef DoubleVerifyVideoViewability = $DoubleVerifyVideoViewability; - -/// Request message for -/// FirstAndThirdPartyAudienceService.EditCustomerMatchMembers. -class EditCustomerMatchMembersRequest { - /// Input only. - /// - /// A list of contact information to define the members to be added. - ContactInfoList? addedContactInfoList; - - /// Input only. - /// - /// A list of mobile device IDs to define the members to be added. - MobileDeviceIdList? addedMobileDeviceIdList; - - /// The ID of the owner advertiser of the updated Customer Match - /// FirstAndThirdPartyAudience. - /// - /// Required. - core.String? advertiserId; - - EditCustomerMatchMembersRequest({ - this.addedContactInfoList, - this.addedMobileDeviceIdList, - this.advertiserId, - }); - - EditCustomerMatchMembersRequest.fromJson(core.Map json_) - : this( - addedContactInfoList: json_.containsKey('addedContactInfoList') - ? ContactInfoList.fromJson(json_['addedContactInfoList'] - as core.Map) - : null, - addedMobileDeviceIdList: json_.containsKey('addedMobileDeviceIdList') - ? MobileDeviceIdList.fromJson(json_['addedMobileDeviceIdList'] - as core.Map) - : null, - advertiserId: json_.containsKey('advertiserId') - ? json_['advertiserId'] as core.String - : null, - ); - - core.Map toJson() => { - if (addedContactInfoList != null) - 'addedContactInfoList': addedContactInfoList!, - if (addedMobileDeviceIdList != null) - 'addedMobileDeviceIdList': addedMobileDeviceIdList!, - if (advertiserId != null) 'advertiserId': advertiserId!, - }; -} - -/// The response of FirstAndThirdPartyAudienceService.EditCustomerMatchMembers. -typedef EditCustomerMatchMembersResponse = $EditCustomerMatchMembersResponse; - -/// Request message for GuaranteedOrderService.EditGuaranteedOrderReadAccessors. -typedef EditGuaranteedOrderReadAccessorsRequest - = $EditGuaranteedOrderReadAccessorsRequest; -typedef EditGuaranteedOrderReadAccessorsResponse - = $EditGuaranteedOrderReadAccessorsResponse; - -/// Request message for -/// InventorySourceService.EditInventorySourceReadWriteAccessors. -class EditInventorySourceReadWriteAccessorsRequest { - /// The advertisers to add or remove from the list of advertisers that have - /// read/write access to the inventory source. - /// - /// This change will remove an existing partner read/write accessor. - EditInventorySourceReadWriteAccessorsRequestAdvertisersUpdate? - advertisersUpdate; - - /// Set the partner context as read/write accessor of the inventory source. - /// - /// This will remove all other current read/write advertiser accessors. - core.bool? assignPartner; - - /// The partner context by which the accessors change is being made. - /// - /// Required. - core.String? partnerId; - - EditInventorySourceReadWriteAccessorsRequest({ - this.advertisersUpdate, - this.assignPartner, - this.partnerId, - }); - - EditInventorySourceReadWriteAccessorsRequest.fromJson(core.Map json_) - : this( - advertisersUpdate: json_.containsKey('advertisersUpdate') - ? EditInventorySourceReadWriteAccessorsRequestAdvertisersUpdate - .fromJson(json_['advertisersUpdate'] - as core.Map) - : null, - assignPartner: json_.containsKey('assignPartner') - ? json_['assignPartner'] as core.bool - : null, - partnerId: json_.containsKey('partnerId') - ? json_['partnerId'] as core.String - : null, - ); - - core.Map toJson() => { - if (advertisersUpdate != null) 'advertisersUpdate': advertisersUpdate!, - if (assignPartner != null) 'assignPartner': assignPartner!, - if (partnerId != null) 'partnerId': partnerId!, - }; -} - -/// Update to the list of advertisers with read/write access to the inventory -/// source. -typedef EditInventorySourceReadWriteAccessorsRequestAdvertisersUpdate - = $EditInventorySourceReadWriteAccessorsRequestAdvertisersUpdate; - -/// 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); } -typedef Empty = $Empty; - -/// Assigned environment targeting option details. -/// -/// This will be populated in the details field of an AssignedTargetingOption -/// when targeting_type is `TARGETING_TYPE_ENVIRONMENT`. -class EnvironmentAssignedTargetingOptionDetails { - /// The serving environment. - /// - /// Required. - /// Possible string values are: - /// - "ENVIRONMENT_UNSPECIFIED" : Default value when environment is not - /// specified in this version. This enum is a placeholder for default value - /// and does not represent a real environment option. - /// - "ENVIRONMENT_WEB_OPTIMIZED" : Target inventory displayed in browsers. - /// This includes inventory that was designed for the device it was viewed on, - /// such as mobile websites viewed on a mobile device. - /// ENVIRONMENT_WEB_NOT_OPTIMIZED, if targeted, should be deleted prior to the - /// deletion of this targeting option. - /// - "ENVIRONMENT_WEB_NOT_OPTIMIZED" : Target inventory displayed in - /// browsers. This includes inventory that was not designed for the device but - /// viewed on it, such as websites optimized for desktop but viewed on a - /// mobile device. ENVIRONMENT_WEB_OPTIMIZED should be targeted prior to the - /// addition of this targeting option. - /// - "ENVIRONMENT_APP" : Target inventory displayed in apps. - core.String? environment; - - /// The targeting_option_id of a TargetingOption of type - /// `TARGETING_TYPE_ENVIRONMENT` (e.g., "508010" for targeting the - /// `ENVIRONMENT_WEB_OPTIMIZED` option). - /// - /// Required. - core.String? targetingOptionId; - - EnvironmentAssignedTargetingOptionDetails({ - this.environment, - this.targetingOptionId, - }); - - EnvironmentAssignedTargetingOptionDetails.fromJson(core.Map json_) - : this( - environment: json_.containsKey('environment') - ? json_['environment'] as core.String - : null, - targetingOptionId: json_.containsKey('targetingOptionId') - ? json_['targetingOptionId'] as core.String - : null, - ); - - core.Map toJson() => { - if (environment != null) 'environment': environment!, - if (targetingOptionId != null) 'targetingOptionId': targetingOptionId!, - }; -} - -/// Represents a targetable environment. -/// -/// This will be populated in the environment_details field of a TargetingOption -/// when targeting_type is `TARGETING_TYPE_ENVIRONMENT`. -typedef EnvironmentTargetingOptionDetails = $EnvironmentTargetingOptionDetails; - -/// Details for assigned exchange targeting option. -/// -/// This will be populated in the details field of an AssignedTargetingOption -/// when targeting_type is `TARGETING_TYPE_EXCHANGE`. -class ExchangeAssignedTargetingOptionDetails { - /// The targeting_option_id of a TargetingOption of type - /// `TARGETING_TYPE_EXCHANGE`. - /// - /// Required. - core.String? targetingOptionId; - - ExchangeAssignedTargetingOptionDetails({ - this.targetingOptionId, - }); - - ExchangeAssignedTargetingOptionDetails.fromJson(core.Map json_) - : this( - targetingOptionId: json_.containsKey('targetingOptionId') - ? json_['targetingOptionId'] as core.String - : null, - ); - - core.Map toJson() => { - if (targetingOptionId != null) 'targetingOptionId': targetingOptionId!, - }; -} - -/// Settings that control which exchanges are enabled for a partner. -class ExchangeConfig { - /// All enabled exchanges in the partner. - /// - /// Duplicate enabled exchanges will be ignored. - core.List? enabledExchanges; - - ExchangeConfig({ - this.enabledExchanges, - }); - - ExchangeConfig.fromJson(core.Map json_) - : this( - enabledExchanges: json_.containsKey('enabledExchanges') - ? (json_['enabledExchanges'] as core.List) - .map((value) => ExchangeConfigEnabledExchange.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (enabledExchanges != null) 'enabledExchanges': enabledExchanges!, - }; -} - -/// An enabled exchange in the partner. -typedef ExchangeConfigEnabledExchange = $ExchangeConfigEnabledExchange; - -/// Exchange review status for the creative. -typedef ExchangeReviewStatus = $ExchangeReviewStatus; - -/// Represents a targetable exchange. -/// -/// This will be populated in the exchange_details field of a TargetingOption -/// when targeting_type is `TARGETING_TYPE_EXCHANGE`. -typedef ExchangeTargetingOptionDetails = $ExchangeTargetingOptionDetails; - -/// Exit event of the creative. -typedef ExitEvent = $ExitEvent; - -/// Describes a first or third party audience list used for targeting. -/// -/// First party audiences are created via usage of client data. Third party -/// audiences are provided by Third Party data providers and can only be -/// licensed to customers. -class FirstAndThirdPartyAudience { - /// The estimated audience size for the Display network in the past month. - /// - /// If the size is less than 1000, the number will be hidden and 0 will be - /// returned due to privacy reasons. Otherwise, the number will be rounded off - /// to two significant digits. Only returned in GET request. - /// - /// Output only. - core.String? activeDisplayAudienceSize; - - /// The app_id matches with the type of the mobile_device_ids being uploaded. - /// - /// Only applicable to audience_type `CUSTOMER_MATCH_DEVICE_ID` - core.String? appId; - - /// The source of the audience. - /// - /// Output only. - /// Possible string values are: - /// - "AUDIENCE_SOURCE_UNSPECIFIED" : Default value when audience source is - /// not specified or is unknown. - /// - "DISPLAY_VIDEO_360" : Originated from Display & Video 360. - /// - "CAMPAIGN_MANAGER" : Originated from Campaign Manager 360. - /// - "AD_MANAGER" : Originated from Google Ad Manager. - /// - "SEARCH_ADS_360" : Originated from Search Ads 360. - /// - "YOUTUBE" : Originated from Youtube. - /// - "ADS_DATA_HUB" : Originated from Ads Data Hub. - core.String? audienceSource; - - /// The type of the audience. - /// Possible string values are: - /// - "AUDIENCE_TYPE_UNSPECIFIED" : Default value when type is not specified - /// or is unknown. - /// - "CUSTOMER_MATCH_CONTACT_INFO" : Audience was generated through matching - /// customers to known contact information. - /// - "CUSTOMER_MATCH_DEVICE_ID" : Audience was generated through matching - /// customers to known Mobile device IDs. - /// - "CUSTOMER_MATCH_USER_ID" : Audience was generated through matching - /// customers to known User IDs. - /// - "ACTIVITY_BASED" : Audience was created based on campaign activity. - /// - "FREQUENCY_CAP" : Audience was created based on excluding the number of - /// impressions they were served. - /// - "TAG_BASED" : Audience was created based on custom variables attached to - /// pixel. - /// - "YOUTUBE_USERS" : Audience was created based on past interactions with - /// videos, YouTube ads, or YouTube channel. - /// - "LICENSED" : Subtype of third party audience type. - core.String? audienceType; - - /// Input only. - /// - /// A list of contact information to define the initial audience members. Only - /// applicable to audience_type `CUSTOMER_MATCH_CONTACT_INFO` - ContactInfoList? contactInfoList; - - /// The user-provided description of the audience. - /// - /// Only applicable to first party audiences. - core.String? description; - - /// The estimated audience size for the Display network. - /// - /// If the size is less than 1000, the number will be hidden and 0 will be - /// returned due to privacy reasons. Otherwise, the number will be rounded off - /// to two significant digits. Only returned in GET request. - /// - /// Output only. - core.String? displayAudienceSize; - - /// The estimated desktop audience size in Display network. - /// - /// If the size is less than 1000, the number will be hidden and 0 will be - /// returned due to privacy reasons. Otherwise, the number will be rounded off - /// to two significant digits. Only applicable to first party audiences. Only - /// returned in GET request. - /// - /// Output only. - core.String? displayDesktopAudienceSize; - - /// The estimated mobile app audience size in Display network. - /// - /// If the size is less than 1000, the number will be hidden and 0 will be - /// returned due to privacy reasons. Otherwise, the number will be rounded off - /// to two significant digits. Only applicable to first party audiences. Only - /// returned in GET request. - /// - /// Output only. - core.String? displayMobileAppAudienceSize; - - /// The estimated mobile web audience size in Display network. - /// - /// If the size is less than 1000, the number will be hidden and 0 will be - /// returned due to privacy reasons. Otherwise, the number will be rounded off - /// to two significant digits. Only applicable to first party audiences. Only - /// returned in GET request. - /// - /// Output only. - core.String? displayMobileWebAudienceSize; - - /// The display name of the first and third party audience. - core.String? displayName; - - /// The unique ID of the first and third party audience. - /// - /// Assigned by the system. - /// - /// Output only. - core.String? firstAndThirdPartyAudienceId; - - /// Whether the audience is a first or third party audience. - /// Possible string values are: - /// - "FIRST_AND_THIRD_PARTY_AUDIENCE_TYPE_UNSPECIFIED" : Default value when - /// type is not specified or is unknown. - /// - "FIRST_AND_THIRD_PARTY_AUDIENCE_TYPE_FIRST_PARTY" : Audience that is - /// created via usage of client data. - /// - "FIRST_AND_THIRD_PARTY_AUDIENCE_TYPE_THIRD_PARTY" : Audience that is - /// provided by Third Party data providers. - core.String? firstAndThirdPartyAudienceType; - - /// The estimated audience size for Gmail network. - /// - /// If the size is less than 1000, the number will be hidden and 0 will be - /// returned due to privacy reasons. Otherwise, the number will be rounded off - /// to two significant digits. Only applicable to first party audiences. Only - /// returned in GET request. - /// - /// Output only. - core.String? gmailAudienceSize; - - /// The duration in days that an entry remains in the audience after the - /// qualifying event. - /// - /// If the audience has no expiration, set the value of this field to 10000. - /// Otherwise, the set value must be greater than 0 and less than or equal to - /// 540. Only applicable to first party audiences. This field is required if - /// one of the following audience_type is used: * - /// `CUSTOMER_MATCH_CONTACT_INFO` * `CUSTOMER_MATCH_DEVICE_ID` - core.String? membershipDurationDays; - - /// Input only. - /// - /// A list of mobile device IDs to define the initial audience members. Only - /// applicable to audience_type `CUSTOMER_MATCH_DEVICE_ID` - MobileDeviceIdList? mobileDeviceIdList; - - /// The resource name of the first and third party audience. - /// - /// Output only. - core.String? name; - - /// The estimated audience size for YouTube network. - /// - /// If the size is less than 1000, the number will be hidden and 0 will be - /// returned due to privacy reasons. Otherwise, the number will be rounded off - /// to two significant digits. Only applicable to first party audiences. Only - /// returned in GET request. - /// - /// Output only. - core.String? youtubeAudienceSize; - - FirstAndThirdPartyAudience({ - this.activeDisplayAudienceSize, - this.appId, - this.audienceSource, - this.audienceType, - this.contactInfoList, - this.description, - this.displayAudienceSize, - this.displayDesktopAudienceSize, - this.displayMobileAppAudienceSize, - this.displayMobileWebAudienceSize, - this.displayName, - this.firstAndThirdPartyAudienceId, - this.firstAndThirdPartyAudienceType, - this.gmailAudienceSize, - this.membershipDurationDays, - this.mobileDeviceIdList, - this.name, - this.youtubeAudienceSize, - }); - - FirstAndThirdPartyAudience.fromJson(core.Map json_) - : this( - activeDisplayAudienceSize: - json_.containsKey('activeDisplayAudienceSize') - ? json_['activeDisplayAudienceSize'] as core.String - : null, - appId: - json_.containsKey('appId') ? json_['appId'] as core.String : null, - audienceSource: json_.containsKey('audienceSource') - ? json_['audienceSource'] as core.String - : null, - audienceType: json_.containsKey('audienceType') - ? json_['audienceType'] as core.String - : null, - contactInfoList: json_.containsKey('contactInfoList') - ? ContactInfoList.fromJson(json_['contactInfoList'] - as core.Map) - : null, - description: json_.containsKey('description') - ? json_['description'] as core.String - : null, - displayAudienceSize: json_.containsKey('displayAudienceSize') - ? json_['displayAudienceSize'] as core.String - : null, - displayDesktopAudienceSize: - json_.containsKey('displayDesktopAudienceSize') - ? json_['displayDesktopAudienceSize'] as core.String - : null, - displayMobileAppAudienceSize: - json_.containsKey('displayMobileAppAudienceSize') - ? json_['displayMobileAppAudienceSize'] as core.String - : null, - displayMobileWebAudienceSize: - json_.containsKey('displayMobileWebAudienceSize') - ? json_['displayMobileWebAudienceSize'] as core.String - : null, - displayName: json_.containsKey('displayName') - ? json_['displayName'] as core.String - : null, - firstAndThirdPartyAudienceId: - json_.containsKey('firstAndThirdPartyAudienceId') - ? json_['firstAndThirdPartyAudienceId'] as core.String - : null, - firstAndThirdPartyAudienceType: - json_.containsKey('firstAndThirdPartyAudienceType') - ? json_['firstAndThirdPartyAudienceType'] as core.String - : null, - gmailAudienceSize: json_.containsKey('gmailAudienceSize') - ? json_['gmailAudienceSize'] as core.String - : null, - membershipDurationDays: json_.containsKey('membershipDurationDays') - ? json_['membershipDurationDays'] as core.String - : null, - mobileDeviceIdList: json_.containsKey('mobileDeviceIdList') - ? MobileDeviceIdList.fromJson(json_['mobileDeviceIdList'] - as core.Map) - : null, - name: json_.containsKey('name') ? json_['name'] as core.String : null, - youtubeAudienceSize: json_.containsKey('youtubeAudienceSize') - ? json_['youtubeAudienceSize'] as core.String - : null, - ); - - core.Map toJson() => { - if (activeDisplayAudienceSize != null) - 'activeDisplayAudienceSize': activeDisplayAudienceSize!, - if (appId != null) 'appId': appId!, - if (audienceSource != null) 'audienceSource': audienceSource!, - if (audienceType != null) 'audienceType': audienceType!, - if (contactInfoList != null) 'contactInfoList': contactInfoList!, - if (description != null) 'description': description!, - if (displayAudienceSize != null) - 'displayAudienceSize': displayAudienceSize!, - if (displayDesktopAudienceSize != null) - 'displayDesktopAudienceSize': displayDesktopAudienceSize!, - if (displayMobileAppAudienceSize != null) - 'displayMobileAppAudienceSize': displayMobileAppAudienceSize!, - if (displayMobileWebAudienceSize != null) - 'displayMobileWebAudienceSize': displayMobileWebAudienceSize!, - if (displayName != null) 'displayName': displayName!, - if (firstAndThirdPartyAudienceId != null) - 'firstAndThirdPartyAudienceId': firstAndThirdPartyAudienceId!, - if (firstAndThirdPartyAudienceType != null) - 'firstAndThirdPartyAudienceType': firstAndThirdPartyAudienceType!, - if (gmailAudienceSize != null) 'gmailAudienceSize': gmailAudienceSize!, - if (membershipDurationDays != null) - 'membershipDurationDays': membershipDurationDays!, - if (mobileDeviceIdList != null) - 'mobileDeviceIdList': mobileDeviceIdList!, - if (name != null) 'name': name!, - if (youtubeAudienceSize != null) - 'youtubeAudienceSize': youtubeAudienceSize!, - }; -} - -/// Details of first and third party audience group. -/// -/// All first and third party audience targeting settings are logically ‘OR’ of -/// each other. -class FirstAndThirdPartyAudienceGroup { - /// All first and third party audience targeting settings in first and third - /// party audience group. - /// - /// Repeated settings with same id are not allowed. - /// - /// Required. - core.List? settings; - - FirstAndThirdPartyAudienceGroup({ - this.settings, - }); - - FirstAndThirdPartyAudienceGroup.fromJson(core.Map json_) - : this( - settings: json_.containsKey('settings') - ? (json_['settings'] as core.List) - .map((value) => - FirstAndThirdPartyAudienceTargetingSetting.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (settings != null) 'settings': settings!, - }; -} - -/// Details of first and third party audience targeting setting. -typedef FirstAndThirdPartyAudienceTargetingSetting - = $FirstAndThirdPartyAudienceTargetingSetting; - -/// A strategy that uses a fixed bidding price. -typedef FixedBidStrategy = $FixedBidStrategy; - -/// A single Floodlight group. -class FloodlightGroup { - /// The Active View video viewability metric configuration for the Floodlight - /// group. - ActiveViewVideoViewabilityMetricConfig? activeViewConfig; - - /// User-defined custom variables owned by the Floodlight group. - /// - /// Use custom Floodlight variables to create reporting data that is tailored - /// to your unique business needs. Custom Floodlight variables use the keys - /// `U1=`, `U2=`, and so on, and can take any values that you choose to pass - /// to them. You can use them to track virtually any type of data that you - /// collect about your customers, such as the genre of movie that a customer - /// purchases, the country to which the item is shipped, and so on. Custom - /// Floodlight variables may not be used to pass any data that could be used - /// or recognized as personally identifiable information (PII). Example: - /// `custom_variables { fields { "U1": value { number_value: 123.4 }, "U2": - /// value { string_value: "MyVariable2" }, "U3": value { string_value: - /// "MyVariable3" } } }` Acceptable values for keys are "U1" through "U100", - /// inclusive. String values must be less than 64 characters long, and cannot - /// contain the following characters: `"<>`. - /// - /// The values for Object must be JSON objects. It can consist of `num`, - /// `String`, `bool` and `null` as well as `Map` and `List` values. - core.Map? customVariables; - - /// The display name of the Floodlight group. - /// - /// Required. - core.String? displayName; - - /// The unique ID of the Floodlight group. - /// - /// Assigned by the system. - /// - /// Output only. - core.String? floodlightGroupId; - - /// The lookback window for the Floodlight group. - /// - /// Both click_days and impression_days are required. Acceptable values for - /// both are `0` to `90`, inclusive. - /// - /// Required. - LookbackWindow? lookbackWindow; - - /// The resource name of the Floodlight group. - /// - /// Output only. - core.String? name; - - /// The web tag type enabled for the Floodlight group. - /// - /// Required. - /// Possible string values are: - /// - "WEB_TAG_TYPE_UNSPECIFIED" : Type value is not specified or is unknown - /// in this version. - /// - "WEB_TAG_TYPE_NONE" : No tag type. - /// - "WEB_TAG_TYPE_IMAGE" : Image tag. - /// - "WEB_TAG_TYPE_DYNAMIC" : Dynamic tag. - core.String? webTagType; - - FloodlightGroup({ - this.activeViewConfig, - this.customVariables, - this.displayName, - this.floodlightGroupId, - this.lookbackWindow, - this.name, - this.webTagType, - }); - - FloodlightGroup.fromJson(core.Map json_) - : this( - activeViewConfig: json_.containsKey('activeViewConfig') - ? ActiveViewVideoViewabilityMetricConfig.fromJson( - json_['activeViewConfig'] - as core.Map) - : null, - customVariables: json_.containsKey('customVariables') - ? json_['customVariables'] as core.Map - : null, - displayName: json_.containsKey('displayName') - ? json_['displayName'] as core.String - : null, - floodlightGroupId: json_.containsKey('floodlightGroupId') - ? json_['floodlightGroupId'] as core.String - : null, - lookbackWindow: json_.containsKey('lookbackWindow') - ? LookbackWindow.fromJson(json_['lookbackWindow'] - as core.Map) - : null, - name: json_.containsKey('name') ? json_['name'] as core.String : null, - webTagType: json_.containsKey('webTagType') - ? json_['webTagType'] as core.String - : null, - ); - - core.Map toJson() => { - if (activeViewConfig != null) 'activeViewConfig': activeViewConfig!, - if (customVariables != null) 'customVariables': customVariables!, - if (displayName != null) 'displayName': displayName!, - if (floodlightGroupId != null) 'floodlightGroupId': floodlightGroupId!, - if (lookbackWindow != null) 'lookbackWindow': lookbackWindow!, - if (name != null) 'name': name!, - if (webTagType != null) 'webTagType': webTagType!, - }; -} - -/// Settings that control the number of times a user may be shown with the same -/// ad during a given time period. -class FrequencyCap { - /// The maximum number of times a user may be shown the same ad during this - /// period. - /// - /// Must be greater than 0. Required when unlimited is `false` and max_views - /// is not set. - core.int? maxImpressions; - - /// The time unit in which the frequency cap will be applied. - /// - /// Required when unlimited is `false`. - /// Possible string values are: - /// - "TIME_UNIT_UNSPECIFIED" : Time unit value is not specified or is unknown - /// in this version. - /// - "TIME_UNIT_LIFETIME" : The frequency cap will be applied to the whole - /// life time of the line item. - /// - "TIME_UNIT_MONTHS" : The frequency cap will be applied to a number of - /// months. - /// - "TIME_UNIT_WEEKS" : The frequency cap will be applied to a number of - /// weeks. - /// - "TIME_UNIT_DAYS" : The frequency cap will be applied to a number of - /// days. - /// - "TIME_UNIT_HOURS" : The frequency cap will be applied to a number of - /// hours. - /// - "TIME_UNIT_MINUTES" : The frequency cap will be applied to a number of - /// minutes. - core.String? timeUnit; - - /// The number of time_unit the frequency cap will last. - /// - /// Required when unlimited is `false`. The following restrictions apply based - /// on the value of time_unit: * `TIME_UNIT_LIFETIME` - this field is output - /// only and will default to 1 * `TIME_UNIT_MONTHS` - must be between 1 and 2 - /// * `TIME_UNIT_WEEKS` - must be between 1 and 4 * `TIME_UNIT_DAYS` - must be - /// between 1 and 6 * `TIME_UNIT_HOURS` - must be between 1 and 23 * - /// `TIME_UNIT_MINUTES` - must be between 1 and 59 - core.int? timeUnitCount; - - /// Whether unlimited frequency capping is applied. - /// - /// When this field is set to `true`, the remaining frequency cap fields are - /// not applicable. - core.bool? unlimited; - - FrequencyCap({ - this.maxImpressions, - this.timeUnit, - this.timeUnitCount, - this.unlimited, - }); - - FrequencyCap.fromJson(core.Map json_) - : this( - maxImpressions: json_.containsKey('maxImpressions') - ? json_['maxImpressions'] as core.int - : null, - timeUnit: json_.containsKey('timeUnit') - ? json_['timeUnit'] as core.String - : null, - timeUnitCount: json_.containsKey('timeUnitCount') - ? json_['timeUnitCount'] as core.int - : null, - unlimited: json_.containsKey('unlimited') - ? json_['unlimited'] as core.bool - : null, - ); - - core.Map toJson() => { - if (maxImpressions != null) 'maxImpressions': maxImpressions!, - if (timeUnit != null) 'timeUnit': timeUnit!, - if (timeUnitCount != null) 'timeUnitCount': timeUnitCount!, - if (unlimited != null) 'unlimited': unlimited!, - }; -} - -/// Details for assigned gender targeting option. -/// -/// This will be populated in the details field of an AssignedTargetingOption -/// when targeting_type is `TARGETING_TYPE_GENDER`. -class GenderAssignedTargetingOptionDetails { - /// The gender of the audience. - /// - /// Required. - /// Possible string values are: - /// - "GENDER_UNSPECIFIED" : Default value when gender is not specified in - /// this version. This enum is a place holder for default value and does not - /// represent a real gender option. - /// - "GENDER_MALE" : The audience gender is male. - /// - "GENDER_FEMALE" : The audience gender is female. - /// - "GENDER_UNKNOWN" : The audience gender is unknown. - core.String? gender; - - /// The targeting_option_id of a TargetingOption of type - /// `TARGETING_TYPE_GENDER`. - /// - /// Required. - core.String? targetingOptionId; - - GenderAssignedTargetingOptionDetails({ - this.gender, - this.targetingOptionId, - }); - - GenderAssignedTargetingOptionDetails.fromJson(core.Map json_) - : this( - gender: json_.containsKey('gender') - ? json_['gender'] as core.String - : null, - targetingOptionId: json_.containsKey('targetingOptionId') - ? json_['targetingOptionId'] as core.String - : null, - ); - - core.Map toJson() => { - if (gender != null) 'gender': gender!, - if (targetingOptionId != null) 'targetingOptionId': targetingOptionId!, - }; -} - -/// Represents a targetable gender. -/// -/// This will be populated in the gender_details field of a TargetingOption when -/// targeting_type is `TARGETING_TYPE_GENDER`. -typedef GenderTargetingOptionDetails = $GenderTargetingOptionDetails; - -/// Request message for LineItemService.GenerateDefaultLineItem. -class GenerateDefaultLineItemRequest { - /// The display name of the line item. - /// - /// Must be UTF-8 encoded with a maximum size of 240 bytes. - /// - /// Required. - core.String? displayName; - - /// The unique ID of the insertion order that the line item belongs to. - /// - /// Required. - core.String? insertionOrderId; - - /// The type of the line item. - /// - /// Required. - /// Possible string values are: - /// - "LINE_ITEM_TYPE_UNSPECIFIED" : Type value is not specified or is unknown - /// in this version. Line items of this type and their targeting cannot be - /// created or updated using the API. - /// - "LINE_ITEM_TYPE_DISPLAY_DEFAULT" : Image, HTML5, native, or rich media - /// ads. - /// - "LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INSTALL" : Display ads that drive - /// installs of an app. - /// - "LINE_ITEM_TYPE_VIDEO_DEFAULT" : Video ads sold on a CPM basis for a - /// variety of environments. - /// - "LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INSTALL" : Video ads that drive - /// installs of an app. - /// - "LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INVENTORY" : Display ads served on - /// mobile app inventory. Line items of this type and their targeting cannot - /// be created or updated using the API. - /// - "LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INVENTORY" : Video ads served on mobile - /// app inventory. Line items of this type and their targeting cannot be - /// created or updated using the API. - /// - "LINE_ITEM_TYPE_AUDIO_DEFAULT" : RTB Audio ads sold for a variety of - /// environments. - /// - "LINE_ITEM_TYPE_VIDEO_OVER_THE_TOP" : Over-the-top ads present in OTT - /// insertion orders. This type is only applicable to line items with an - /// insertion order of insertion_order_type `OVER_THE_TOP`. - /// - "LINE_ITEM_TYPE_DISPLAY_OUT_OF_HOME" : Display ads served on - /// digital-out-of-home inventory. Line items of this type and their targeting - /// cannot be created or updated using the API. - /// - "LINE_ITEM_TYPE_VIDEO_OUT_OF_HOME" : Video ads served on - /// digital-out-of-home inventory. Line items of this type and their targeting - /// cannot be created or updated using the API. - core.String? lineItemType; - - /// The mobile app promoted by the line item. - /// - /// This is applicable only when line_item_type is either - /// `LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INSTALL` or - /// `LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INSTALL`. - MobileApp? mobileApp; - - GenerateDefaultLineItemRequest({ - this.displayName, - this.insertionOrderId, - this.lineItemType, - this.mobileApp, - }); - - GenerateDefaultLineItemRequest.fromJson(core.Map json_) - : this( - displayName: json_.containsKey('displayName') - ? json_['displayName'] as core.String - : null, - insertionOrderId: json_.containsKey('insertionOrderId') - ? json_['insertionOrderId'] as core.String - : null, - lineItemType: json_.containsKey('lineItemType') - ? json_['lineItemType'] as core.String - : null, - mobileApp: json_.containsKey('mobileApp') - ? MobileApp.fromJson( - json_['mobileApp'] as core.Map) - : null, - ); - - core.Map toJson() => { - if (displayName != null) 'displayName': displayName!, - if (insertionOrderId != null) 'insertionOrderId': insertionOrderId!, - if (lineItemType != null) 'lineItemType': lineItemType!, - if (mobileApp != null) 'mobileApp': mobileApp!, - }; -} - -/// Details for assigned geographic region targeting option. -/// -/// This will be populated in the details field of an AssignedTargetingOption -/// when targeting_type is `TARGETING_TYPE_GEO_REGION`. -typedef GeoRegionAssignedTargetingOptionDetails - = $GeoRegionAssignedTargetingOptionDetails; - -/// Search terms for geo region targeting options. -typedef GeoRegionSearchTerms = $GeoRegionSearchTerms; - -/// Represents a targetable geographic region. -/// -/// This will be populated in the geo_region_details field when targeting_type -/// is `TARGETING_TYPE_GEO_REGION`. -typedef GeoRegionTargetingOptionDetails = $GeoRegionTargetingOptionDetails; - -/// Describes a Google audience resource. -/// -/// Includes Google audience lists. -typedef GoogleAudience = $GoogleAudience; - -/// Details of Google audience group. -/// -/// All Google audience targeting settings are logically ‘OR’ of each other. -class GoogleAudienceGroup { - /// All Google audience targeting settings in Google audience group. - /// - /// Repeated settings with same id will be ignored. - /// - /// Required. - core.List? settings; - - GoogleAudienceGroup({ - this.settings, - }); - - GoogleAudienceGroup.fromJson(core.Map json_) - : this( - settings: json_.containsKey('settings') - ? (json_['settings'] as core.List) - .map((value) => GoogleAudienceTargetingSetting.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (settings != null) 'settings': settings!, - }; -} - -/// Details of Google audience targeting setting. -typedef GoogleAudienceTargetingSetting = $GoogleAudienceTargetingSetting; - -/// Media resource. -typedef GoogleBytestreamMedia = $Media; - -/// A guaranteed order. -/// -/// Guaranteed orders are parent entity of guaranteed inventory sources. When -/// creating a guaranteed inventory source, a guaranteed order ID must be -/// assigned to the inventory source. -class GuaranteedOrder { - /// The ID of default advertiser of the guaranteed order. - /// - /// The default advertiser is either the read_write_advertiser_id or, if that - /// is not set, the first advertiser listed in read_advertiser_ids. Otherwise, - /// there is no default advertiser. - /// - /// Output only. - core.String? defaultAdvertiserId; - - /// The ID of the default campaign that is assigned to the guaranteed order. - /// - /// The default campaign must belong to the default advertiser. - core.String? defaultCampaignId; - - /// The display name of the guaranteed order. - /// - /// Must be UTF-8 encoded with a maximum size of 240 bytes. - /// - /// Required. - core.String? displayName; - - /// The exchange where the guaranteed order originated. - /// - /// Required. Immutable. - /// Possible string values are: - /// - "EXCHANGE_UNSPECIFIED" : Exchange is not specified or is unknown in this - /// version. - /// - "EXCHANGE_GOOGLE_AD_MANAGER" : Google Ad Manager. - /// - "EXCHANGE_APPNEXUS" : AppNexus. - /// - "EXCHANGE_BRIGHTROLL" : BrightRoll Exchange for Video from Yahoo!. - /// - "EXCHANGE_ADFORM" : Adform. - /// - "EXCHANGE_ADMETA" : Admeta. - /// - "EXCHANGE_ADMIXER" : Admixer. - /// - "EXCHANGE_ADSMOGO" : AdsMogo. - /// - "EXCHANGE_ADSWIZZ" : AdsWizz. - /// - "EXCHANGE_BIDSWITCH" : BidSwitch. - /// - "EXCHANGE_BRIGHTROLL_DISPLAY" : BrightRoll Exchange for Display from - /// Yahoo!. - /// - "EXCHANGE_CADREON" : Cadreon. - /// - "EXCHANGE_DAILYMOTION" : Dailymotion. - /// - "EXCHANGE_FIVE" : Five. - /// - "EXCHANGE_FLUCT" : Fluct. - /// - "EXCHANGE_FREEWHEEL" : FreeWheel SSP. - /// - "EXCHANGE_GENIEE" : Geniee. - /// - "EXCHANGE_GUMGUM" : GumGum. - /// - "EXCHANGE_IMOBILE" : i-mobile. - /// - "EXCHANGE_IBILLBOARD" : iBILLBOARD. - /// - "EXCHANGE_IMPROVE_DIGITAL" : Improve Digital. - /// - "EXCHANGE_INDEX" : Index Exchange. - /// - "EXCHANGE_KARGO" : Kargo. - /// - "EXCHANGE_MICROAD" : MicroAd. - /// - "EXCHANGE_MOPUB" : MoPub. - /// - "EXCHANGE_NEND" : Nend. - /// - "EXCHANGE_ONE_BY_AOL_DISPLAY" : ONE by AOL: Display Market Place. - /// - "EXCHANGE_ONE_BY_AOL_MOBILE" : ONE by AOL: Mobile. - /// - "EXCHANGE_ONE_BY_AOL_VIDEO" : ONE by AOL: Video. - /// - "EXCHANGE_OOYALA" : Ooyala. - /// - "EXCHANGE_OPENX" : OpenX. - /// - "EXCHANGE_PERMODO" : Permodo. - /// - "EXCHANGE_PLATFORMONE" : Platform One. - /// - "EXCHANGE_PLATFORMID" : PlatformId. - /// - "EXCHANGE_PUBMATIC" : PubMatic. - /// - "EXCHANGE_PULSEPOINT" : PulsePoint. - /// - "EXCHANGE_REVENUEMAX" : RevenueMax. - /// - "EXCHANGE_RUBICON" : Rubicon. - /// - "EXCHANGE_SMARTCLIP" : SmartClip. - /// - "EXCHANGE_SMARTRTB" : SmartRTB+. - /// - "EXCHANGE_SMARTSTREAMTV" : SmartstreamTv. - /// - "EXCHANGE_SOVRN" : Sovrn. - /// - "EXCHANGE_SPOTXCHANGE" : SpotXchange. - /// - "EXCHANGE_STROER" : Ströer SSP. - /// - "EXCHANGE_TEADSTV" : TeadsTv. - /// - "EXCHANGE_TELARIA" : Telaria. - /// - "EXCHANGE_TVN" : TVN. - /// - "EXCHANGE_UNITED" : United. - /// - "EXCHANGE_YIELDLAB" : Yieldlab. - /// - "EXCHANGE_YIELDMO" : Yieldmo. - /// - "EXCHANGE_UNRULYX" : UnrulyX. - /// - "EXCHANGE_OPEN8" : Open8. - /// - "EXCHANGE_TRITON" : Triton. - /// - "EXCHANGE_TRIPLELIFT" : TripleLift. - /// - "EXCHANGE_TABOOLA" : Taboola. - /// - "EXCHANGE_INMOBI" : InMobi. - /// - "EXCHANGE_SMAATO" : Smaato. - /// - "EXCHANGE_AJA" : Aja. - /// - "EXCHANGE_SUPERSHIP" : Supership. - /// - "EXCHANGE_NEXSTAR_DIGITAL" : Nexstar Digital. - /// - "EXCHANGE_WAZE" : Waze. - /// - "EXCHANGE_SOUNDCAST" : SoundCast. - /// - "EXCHANGE_SHARETHROUGH" : Sharethrough. - /// - "EXCHANGE_FYBER" : Fyber. - /// - "EXCHANGE_RED_FOR_PUBLISHERS" : Red For Publishers. - /// - "EXCHANGE_MEDIANET" : Media.net. - /// - "EXCHANGE_TAPJOY" : Tapjoy. - /// - "EXCHANGE_VISTAR" : Vistar. - /// - "EXCHANGE_DAX" : DAX. - /// - "EXCHANGE_JCD" : JCD. - /// - "EXCHANGE_PLACE_EXCHANGE" : Place Exchange. - /// - "EXCHANGE_APPLOVIN" : AppLovin. - /// - "EXCHANGE_CONNATIX" : Connatix. - /// - "EXCHANGE_RESET_DIGITAL" : Reset Digital. - /// - "EXCHANGE_HIVESTACK" : Hivestack. - core.String? exchange; - - /// The unique identifier of the guaranteed order. - /// - /// The guaranteed order IDs have the format - /// `{exchange}-{legacy_guaranteed_order_id}`. - /// - /// Output only. - core.String? guaranteedOrderId; - - /// The legacy ID of the guaranteed order. - /// - /// Assigned by the original exchange. The legacy ID is unique within one - /// exchange, but is not guaranteed to be unique across all guaranteed orders. - /// This ID is used in SDF and UI. - /// - /// Output only. - core.String? legacyGuaranteedOrderId; - - /// The resource name of the guaranteed order. - /// - /// Output only. - core.String? name; - - /// The publisher name of the guaranteed order. - /// - /// Must be UTF-8 encoded with a maximum size of 240 bytes. - /// - /// Required. - core.String? publisherName; - - /// Whether all advertisers of read_write_partner_id have read access to the - /// guaranteed order. - /// - /// Only applicable if read_write_partner_id is set. If True, overrides - /// read_advertiser_ids. - core.bool? readAccessInherited; - - /// The IDs of advertisers with read access to the guaranteed order. - /// - /// This field must not include the advertiser assigned to - /// read_write_advertiser_id if it is set. All advertisers in this field must - /// belong to read_write_partner_id or the same partner as - /// read_write_advertiser_id. - core.List? readAdvertiserIds; - - /// The advertiser with read/write access to the guaranteed order. - /// - /// This is also the default advertiser of the guaranteed order. - core.String? readWriteAdvertiserId; - - /// The partner with read/write access to the guaranteed order. - core.String? readWritePartnerId; - - /// The status settings of the guaranteed order. - GuaranteedOrderStatus? status; - - /// The timestamp when the guaranteed order was last updated. - /// - /// Assigned by the system. - /// - /// Output only. - core.String? updateTime; - - GuaranteedOrder({ - this.defaultAdvertiserId, - this.defaultCampaignId, - this.displayName, - this.exchange, - this.guaranteedOrderId, - this.legacyGuaranteedOrderId, - this.name, - this.publisherName, - this.readAccessInherited, - this.readAdvertiserIds, - this.readWriteAdvertiserId, - this.readWritePartnerId, - this.status, - this.updateTime, - }); - - GuaranteedOrder.fromJson(core.Map json_) - : this( - defaultAdvertiserId: json_.containsKey('defaultAdvertiserId') - ? json_['defaultAdvertiserId'] as core.String - : null, - defaultCampaignId: json_.containsKey('defaultCampaignId') - ? json_['defaultCampaignId'] as core.String - : null, - displayName: json_.containsKey('displayName') - ? json_['displayName'] as core.String - : null, - exchange: json_.containsKey('exchange') - ? json_['exchange'] as core.String - : null, - guaranteedOrderId: json_.containsKey('guaranteedOrderId') - ? json_['guaranteedOrderId'] as core.String - : null, - legacyGuaranteedOrderId: json_.containsKey('legacyGuaranteedOrderId') - ? json_['legacyGuaranteedOrderId'] as core.String - : null, - name: json_.containsKey('name') ? json_['name'] as core.String : null, - publisherName: json_.containsKey('publisherName') - ? json_['publisherName'] as core.String - : null, - readAccessInherited: json_.containsKey('readAccessInherited') - ? json_['readAccessInherited'] as core.bool - : null, - readAdvertiserIds: json_.containsKey('readAdvertiserIds') - ? (json_['readAdvertiserIds'] as core.List) - .map((value) => value as core.String) - .toList() - : null, - readWriteAdvertiserId: json_.containsKey('readWriteAdvertiserId') - ? json_['readWriteAdvertiserId'] as core.String - : null, - readWritePartnerId: json_.containsKey('readWritePartnerId') - ? json_['readWritePartnerId'] as core.String - : null, - status: json_.containsKey('status') - ? GuaranteedOrderStatus.fromJson( - json_['status'] as core.Map) - : null, - updateTime: json_.containsKey('updateTime') - ? json_['updateTime'] as core.String - : null, - ); - - core.Map toJson() => { - if (defaultAdvertiserId != null) - 'defaultAdvertiserId': defaultAdvertiserId!, - if (defaultCampaignId != null) 'defaultCampaignId': defaultCampaignId!, - if (displayName != null) 'displayName': displayName!, - if (exchange != null) 'exchange': exchange!, - if (guaranteedOrderId != null) 'guaranteedOrderId': guaranteedOrderId!, - if (legacyGuaranteedOrderId != null) - 'legacyGuaranteedOrderId': legacyGuaranteedOrderId!, - if (name != null) 'name': name!, - if (publisherName != null) 'publisherName': publisherName!, - if (readAccessInherited != null) - 'readAccessInherited': readAccessInherited!, - if (readAdvertiserIds != null) 'readAdvertiserIds': readAdvertiserIds!, - if (readWriteAdvertiserId != null) - 'readWriteAdvertiserId': readWriteAdvertiserId!, - if (readWritePartnerId != null) - 'readWritePartnerId': readWritePartnerId!, - if (status != null) 'status': status!, - if (updateTime != null) 'updateTime': updateTime!, - }; -} - -/// The status settings of the guaranteed order. -typedef GuaranteedOrderStatus = $GuaranteedOrderStatus; - -/// Details for assigned household income targeting option. -/// -/// This will be populated in the details field of an AssignedTargetingOption -/// when targeting_type is `TARGETING_TYPE_HOUSEHOLD_INCOME`. -class HouseholdIncomeAssignedTargetingOptionDetails { - /// The household income of the audience. - /// - /// Required. - /// Possible string values are: - /// - "HOUSEHOLD_INCOME_UNSPECIFIED" : Default value when household income is - /// not specified in this version. This enum is a placeholder for default - /// value and does not represent a real household income option. - /// - "HOUSEHOLD_INCOME_UNKNOWN" : The household income of the audience is - /// unknown. - /// - "HOUSEHOLD_INCOME_LOWER_50_PERCENT" : The audience is in the lower 50% - /// of U.S. household incomes. - /// - "HOUSEHOLD_INCOME_TOP_41_TO_50_PERCENT" : The audience is in the top - /// 41-50% of U.S. household incomes. - /// - "HOUSEHOLD_INCOME_TOP_31_TO_40_PERCENT" : The audience is in the top - /// 31-40% of U.S. household incomes. - /// - "HOUSEHOLD_INCOME_TOP_21_TO_30_PERCENT" : The audience is in the top - /// 21-30% of U.S. household incomes. - /// - "HOUSEHOLD_INCOME_TOP_11_TO_20_PERCENT" : The audience is in the top - /// 11-20% of U.S. household incomes. - /// - "HOUSEHOLD_INCOME_TOP_10_PERCENT" : The audience is in the top 10% of - /// U.S. household incomes. - core.String? householdIncome; - - /// The targeting_option_id of a TargetingOption of type - /// `TARGETING_TYPE_HOUSEHOLD_INCOME`. - /// - /// Required. - core.String? targetingOptionId; - - HouseholdIncomeAssignedTargetingOptionDetails({ - this.householdIncome, - this.targetingOptionId, - }); - - HouseholdIncomeAssignedTargetingOptionDetails.fromJson(core.Map json_) - : this( - householdIncome: json_.containsKey('householdIncome') - ? json_['householdIncome'] as core.String - : null, - targetingOptionId: json_.containsKey('targetingOptionId') - ? json_['targetingOptionId'] as core.String - : null, - ); - - core.Map toJson() => { - if (householdIncome != null) 'householdIncome': householdIncome!, - if (targetingOptionId != null) 'targetingOptionId': targetingOptionId!, - }; -} - -/// Represents a targetable household income. -/// -/// This will be populated in the household_income_details field of a -/// TargetingOption when targeting_type is `TARGETING_TYPE_HOUSEHOLD_INCOME`. -typedef HouseholdIncomeTargetingOptionDetails - = $HouseholdIncomeTargetingOptionDetails; - -/// A filtering option that filters entities by their entity IDs. -typedef IdFilter = $IdFilter; - -/// A single insertion order. -class InsertionOrder { - /// The unique ID of the advertiser the insertion order belongs to. - /// - /// Output only. - core.String? advertiserId; - - /// The bidding strategy of the insertion order. - /// - /// By default, fixed_bid is set. - BiddingStrategy? bidStrategy; - - /// The billable outcome of the insertion order. - /// - /// Outcome based buying is deprecated. `BILLABLE_OUTCOME_PAY_PER_IMPRESSION` - /// is the only valid value. - /// - /// Immutable. - /// Possible string values are: - /// - "BILLABLE_OUTCOME_UNSPECIFIED" : Unspecified billable outcome. - /// - "BILLABLE_OUTCOME_PAY_PER_IMPRESSION" : Pay per impressions. - /// - "BILLABLE_OUTCOME_PAY_PER_CLICK" : Pay per click. - /// - "BILLABLE_OUTCOME_PAY_PER_VIEWABLE_IMPRESSION" : Pay per active view. - core.String? billableOutcome; - - /// The budget allocation settings of the insertion order. - /// - /// Required. - InsertionOrderBudget? budget; - - /// The unique ID of the campaign that the insertion order belongs to. - /// - /// Required. Immutable. - core.String? campaignId; - - /// The display name of the insertion order. - /// - /// Must be UTF-8 encoded with a maximum size of 240 bytes. - /// - /// Required. - core.String? displayName; - - /// Controls whether or not the insertion order can spend its budget and bid - /// on inventory. - /// - /// * For CreateInsertionOrder method, only `ENTITY_STATUS_DRAFT` is allowed. - /// To activate an insertion order, use UpdateInsertionOrder method and update - /// the status to `ENTITY_STATUS_ACTIVE` after creation. * An insertion order - /// cannot be changed back to `ENTITY_STATUS_DRAFT` status from any other - /// status. * An insertion order cannot be set to `ENTITY_STATUS_ACTIVE` if - /// its parent campaign is not active. - /// - /// Required. - /// Possible string values are: - /// - "ENTITY_STATUS_UNSPECIFIED" : Default value when status is not specified - /// or is unknown in this version. - /// - "ENTITY_STATUS_ACTIVE" : The entity is enabled to bid and spend budget. - /// - "ENTITY_STATUS_ARCHIVED" : The entity is archived. Bidding and budget - /// spending are disabled. An entity can be deleted after archived. Deleted - /// entities cannot be retrieved. - /// - "ENTITY_STATUS_DRAFT" : The entity is under draft. Bidding and budget - /// spending are disabled. - /// - "ENTITY_STATUS_PAUSED" : Bidding and budget spending are paused for the - /// entity. - /// - "ENTITY_STATUS_SCHEDULED_FOR_DELETION" : The entity is scheduled for - /// deletion. - core.String? entityStatus; - - /// The frequency capping setting of the insertion order. - /// - /// Required. - FrequencyCap? frequencyCap; - - /// The unique ID of the insertion order. - /// - /// Assigned by the system. - /// - /// Output only. - core.String? insertionOrderId; - - /// The type of insertion order. - /// - /// If this field is unspecified in creation, the value defaults to `RTB`. - /// Possible string values are: - /// - "INSERTION_ORDER_TYPE_UNSPECIFIED" : Insertion order type is not - /// specified or is unknown. - /// - "RTB" : Real-time bidding. - /// - "OVER_THE_TOP" : Over-the-top. - core.String? insertionOrderType; - - /// Additional integration details of the insertion order. - IntegrationDetails? integrationDetails; - - /// The resource name of the insertion order. - /// - /// Output only. - core.String? name; - - /// The budget spending speed setting of the insertion order. - /// - /// Required. - Pacing? pacing; - - /// The partner costs associated with the insertion order. - /// - /// If absent or empty in CreateInsertionOrder method, the newly created - /// insertion order will inherit partner costs from the partner settings. - core.List? partnerCosts; - - /// Performance goal of the insertion order. - /// - /// Required. - PerformanceGoal? performanceGoal; - - /// The reservation type of the insertion order. - /// - /// Output only. - /// Possible string values are: - /// - "RESERVATION_TYPE_UNSPECIFIED" : Reservation type value is not specified - /// or is unknown in this version. - /// - "RESERVATION_TYPE_NOT_GUARANTEED" : Not created through a guaranteed - /// inventory source. - /// - "RESERVATION_TYPE_PROGRAMMATIC_GUARANTEED" : Created through a - /// programmatic guaranteed inventory source. - /// - "RESERVATION_TYPE_TAG_GUARANTEED" : Created through a tag guaranteed - /// inventory source. - core.String? reservationType; - - /// The timestamp when the insertion order was last updated. - /// - /// Assigned by the system. - /// - /// Output only. - core.String? updateTime; - - InsertionOrder({ - this.advertiserId, - this.bidStrategy, - this.billableOutcome, - this.budget, - this.campaignId, - this.displayName, - this.entityStatus, - this.frequencyCap, - this.insertionOrderId, - this.insertionOrderType, - this.integrationDetails, - this.name, - this.pacing, - this.partnerCosts, - this.performanceGoal, - this.reservationType, - this.updateTime, - }); - - InsertionOrder.fromJson(core.Map json_) - : this( - advertiserId: json_.containsKey('advertiserId') - ? json_['advertiserId'] as core.String - : null, - bidStrategy: json_.containsKey('bidStrategy') - ? BiddingStrategy.fromJson( - json_['bidStrategy'] as core.Map) - : null, - billableOutcome: json_.containsKey('billableOutcome') - ? json_['billableOutcome'] as core.String - : null, - budget: json_.containsKey('budget') - ? InsertionOrderBudget.fromJson( - json_['budget'] as core.Map) - : null, - campaignId: json_.containsKey('campaignId') - ? json_['campaignId'] as core.String - : null, - displayName: json_.containsKey('displayName') - ? json_['displayName'] as core.String - : null, - entityStatus: json_.containsKey('entityStatus') - ? json_['entityStatus'] as core.String - : null, - frequencyCap: json_.containsKey('frequencyCap') - ? FrequencyCap.fromJson( - json_['frequencyCap'] as core.Map) - : null, - insertionOrderId: json_.containsKey('insertionOrderId') - ? json_['insertionOrderId'] as core.String - : null, - insertionOrderType: json_.containsKey('insertionOrderType') - ? json_['insertionOrderType'] as core.String - : null, - integrationDetails: json_.containsKey('integrationDetails') - ? IntegrationDetails.fromJson(json_['integrationDetails'] - as core.Map) - : null, - name: json_.containsKey('name') ? json_['name'] as core.String : null, - pacing: json_.containsKey('pacing') - ? Pacing.fromJson( - json_['pacing'] as core.Map) - : null, - partnerCosts: json_.containsKey('partnerCosts') - ? (json_['partnerCosts'] as core.List) - .map((value) => PartnerCost.fromJson( - value as core.Map)) - .toList() - : null, - performanceGoal: json_.containsKey('performanceGoal') - ? PerformanceGoal.fromJson(json_['performanceGoal'] - as core.Map) - : null, - reservationType: json_.containsKey('reservationType') - ? json_['reservationType'] as core.String - : null, - updateTime: json_.containsKey('updateTime') - ? json_['updateTime'] as core.String - : null, - ); - - core.Map toJson() => { - if (advertiserId != null) 'advertiserId': advertiserId!, - if (bidStrategy != null) 'bidStrategy': bidStrategy!, - if (billableOutcome != null) 'billableOutcome': billableOutcome!, - if (budget != null) 'budget': budget!, - if (campaignId != null) 'campaignId': campaignId!, - if (displayName != null) 'displayName': displayName!, - if (entityStatus != null) 'entityStatus': entityStatus!, - if (frequencyCap != null) 'frequencyCap': frequencyCap!, - if (insertionOrderId != null) 'insertionOrderId': insertionOrderId!, - if (insertionOrderType != null) - 'insertionOrderType': insertionOrderType!, - if (integrationDetails != null) - 'integrationDetails': integrationDetails!, - if (name != null) 'name': name!, - if (pacing != null) 'pacing': pacing!, - if (partnerCosts != null) 'partnerCosts': partnerCosts!, - if (performanceGoal != null) 'performanceGoal': performanceGoal!, - if (reservationType != null) 'reservationType': reservationType!, - if (updateTime != null) 'updateTime': updateTime!, - }; -} - -/// Settings that control how insertion order budget is allocated. -class InsertionOrderBudget { - /// The type of automation used to manage bid and budget for the insertion - /// order. - /// - /// If this field is unspecified in creation, the value defaults to - /// `INSERTION_ORDER_AUTOMATION_TYPE_NONE`. - /// Possible string values are: - /// - "INSERTION_ORDER_AUTOMATION_TYPE_UNSPECIFIED" : Insertion order - /// automation option is not specified or is unknown in this version. - /// - "INSERTION_ORDER_AUTOMATION_TYPE_BUDGET" : Automatic budget allocation. - /// Allow the system to automatically shift budget to owning line items to - /// optimize performance defined by kpi. No automation on bid settings. - /// - "INSERTION_ORDER_AUTOMATION_TYPE_NONE" : No automation of bid or budget - /// on insertion order level. Bid and budget must be manually configured at - /// the line item level. - /// - "INSERTION_ORDER_AUTOMATION_TYPE_BID_BUDGET" : Allow the system to - /// automatically adjust bids and shift budget to owning line items to - /// optimize performance defined by kpi. - core.String? automationType; - - /// The list of budget segments. - /// - /// Use a budget segment to specify a specific budget for a given period of - /// time an insertion order is running. - /// - /// Required. - core.List? budgetSegments; - - /// The budget unit specifies whether the budget is currency based or - /// impression based. - /// - /// Required. Immutable. - /// Possible string values are: - /// - "BUDGET_UNIT_UNSPECIFIED" : Type value is not specified or is unknown in - /// this version. - /// - "BUDGET_UNIT_CURRENCY" : Budgeting in currency amounts. - /// - "BUDGET_UNIT_IMPRESSIONS" : Budgeting in impression amounts. - core.String? budgetUnit; - - InsertionOrderBudget({ - this.automationType, - this.budgetSegments, - this.budgetUnit, - }); - - InsertionOrderBudget.fromJson(core.Map json_) - : this( - automationType: json_.containsKey('automationType') - ? json_['automationType'] as core.String - : null, - budgetSegments: json_.containsKey('budgetSegments') - ? (json_['budgetSegments'] as core.List) - .map((value) => InsertionOrderBudgetSegment.fromJson( - value as core.Map)) - .toList() - : null, - budgetUnit: json_.containsKey('budgetUnit') - ? json_['budgetUnit'] as core.String - : null, - ); - - core.Map toJson() => { - if (automationType != null) 'automationType': automationType!, - if (budgetSegments != null) 'budgetSegments': budgetSegments!, - if (budgetUnit != null) 'budgetUnit': budgetUnit!, - }; -} - -/// Settings that control the budget of a single budget segment. -class InsertionOrderBudgetSegment { - /// The budget amount the insertion order will spend for the given date_range. - /// - /// The amount is in micros. Must be greater than 0. For example, 500000000 - /// represents 500 standard units of the currency. - /// - /// Required. - core.String? budgetAmountMicros; - - /// The budget_id of the campaign budget that this insertion order budget - /// segment is a part of. - core.String? campaignBudgetId; - - /// The start and end date settings of the budget segment. - /// - /// They are resolved relative to the parent advertiser's time zone. * When - /// creating a new budget segment, both `start_date` and `end_date` must be in - /// the future. * An existing budget segment with a `start_date` in the past - /// has a mutable `end_date` but an immutable `start_date`. * `end_date` must - /// be the `start_date` or later, both before the year 2037. - /// - /// Required. - DateRange? dateRange; - - /// The budget segment description. - /// - /// It can be used to enter Purchase Order information for each budget segment - /// and have that information printed on the invoices. Must be UTF-8 encoded. - core.String? description; - - InsertionOrderBudgetSegment({ - this.budgetAmountMicros, - this.campaignBudgetId, - this.dateRange, - this.description, - }); - - InsertionOrderBudgetSegment.fromJson(core.Map json_) - : this( - budgetAmountMicros: json_.containsKey('budgetAmountMicros') - ? json_['budgetAmountMicros'] as core.String - : null, - campaignBudgetId: json_.containsKey('campaignBudgetId') - ? json_['campaignBudgetId'] as core.String - : null, - dateRange: json_.containsKey('dateRange') - ? DateRange.fromJson( - json_['dateRange'] as core.Map) - : null, - description: json_.containsKey('description') - ? json_['description'] as core.String - : null, - ); - - core.Map toJson() => { - if (budgetAmountMicros != null) - 'budgetAmountMicros': budgetAmountMicros!, - if (campaignBudgetId != null) 'campaignBudgetId': campaignBudgetId!, - if (dateRange != null) 'dateRange': dateRange!, - if (description != null) 'description': description!, - }; -} - -/// Details of Integral Ad Science settings. -typedef IntegralAdScience = $IntegralAdScience; - -/// Integration details of an entry. -typedef IntegrationDetails = $IntegrationDetails; - -/// An inventory source. -class InventorySource { - /// Whether the inventory source has a guaranteed or non-guaranteed delivery. - /// Possible string values are: - /// - "INVENTORY_SOURCE_COMMITMENT_UNSPECIFIED" : The commitment is not - /// specified or is unknown in this version. - /// - "INVENTORY_SOURCE_COMMITMENT_GUARANTEED" : The commitment is guaranteed - /// delivery. - /// - "INVENTORY_SOURCE_COMMITMENT_NON_GUARANTEED" : The commitment is - /// non-guaranteed delivery. - core.String? commitment; - - /// The creative requirements of the inventory source. - /// - /// Not applicable for auction packages. - core.List? creativeConfigs; - - /// The ID in the exchange space that uniquely identifies the inventory - /// source. - /// - /// Must be unique across buyers within each exchange but not necessarily - /// unique across exchanges. - core.String? dealId; - - /// The delivery method of the inventory source. - /// - /// * For non-guaranteed inventory sources, the only acceptable value is - /// `INVENTORY_SOURCE_DELIVERY_METHOD_PROGRAMMATIC`. * For guaranteed - /// inventory sources, acceptable values are - /// `INVENTORY_SOURCE_DELIVERY_METHOD_TAG` and - /// `INVENTORY_SOURCE_DELIVERY_METHOD_PROGRAMMATIC`. - /// Possible string values are: - /// - "INVENTORY_SOURCE_DELIVERY_METHOD_UNSPECIFIED" : The delivery method is - /// not specified or is unknown in this version. - /// - "INVENTORY_SOURCE_DELIVERY_METHOD_PROGRAMMATIC" : The delivery method is - /// programmatic. - /// - "INVENTORY_SOURCE_DELIVERY_METHOD_TAG" : The delivery method is tag. - core.String? deliveryMethod; - - /// The display name of the inventory source. - /// - /// Must be UTF-8 encoded with a maximum size of 240 bytes. - core.String? displayName; - - /// The exchange to which the inventory source belongs. - /// Possible string values are: - /// - "EXCHANGE_UNSPECIFIED" : Exchange is not specified or is unknown in this - /// version. - /// - "EXCHANGE_GOOGLE_AD_MANAGER" : Google Ad Manager. - /// - "EXCHANGE_APPNEXUS" : AppNexus. - /// - "EXCHANGE_BRIGHTROLL" : BrightRoll Exchange for Video from Yahoo!. - /// - "EXCHANGE_ADFORM" : Adform. - /// - "EXCHANGE_ADMETA" : Admeta. - /// - "EXCHANGE_ADMIXER" : Admixer. - /// - "EXCHANGE_ADSMOGO" : AdsMogo. - /// - "EXCHANGE_ADSWIZZ" : AdsWizz. - /// - "EXCHANGE_BIDSWITCH" : BidSwitch. - /// - "EXCHANGE_BRIGHTROLL_DISPLAY" : BrightRoll Exchange for Display from - /// Yahoo!. - /// - "EXCHANGE_CADREON" : Cadreon. - /// - "EXCHANGE_DAILYMOTION" : Dailymotion. - /// - "EXCHANGE_FIVE" : Five. - /// - "EXCHANGE_FLUCT" : Fluct. - /// - "EXCHANGE_FREEWHEEL" : FreeWheel SSP. - /// - "EXCHANGE_GENIEE" : Geniee. - /// - "EXCHANGE_GUMGUM" : GumGum. - /// - "EXCHANGE_IMOBILE" : i-mobile. - /// - "EXCHANGE_IBILLBOARD" : iBILLBOARD. - /// - "EXCHANGE_IMPROVE_DIGITAL" : Improve Digital. - /// - "EXCHANGE_INDEX" : Index Exchange. - /// - "EXCHANGE_KARGO" : Kargo. - /// - "EXCHANGE_MICROAD" : MicroAd. - /// - "EXCHANGE_MOPUB" : MoPub. - /// - "EXCHANGE_NEND" : Nend. - /// - "EXCHANGE_ONE_BY_AOL_DISPLAY" : ONE by AOL: Display Market Place. - /// - "EXCHANGE_ONE_BY_AOL_MOBILE" : ONE by AOL: Mobile. - /// - "EXCHANGE_ONE_BY_AOL_VIDEO" : ONE by AOL: Video. - /// - "EXCHANGE_OOYALA" : Ooyala. - /// - "EXCHANGE_OPENX" : OpenX. - /// - "EXCHANGE_PERMODO" : Permodo. - /// - "EXCHANGE_PLATFORMONE" : Platform One. - /// - "EXCHANGE_PLATFORMID" : PlatformId. - /// - "EXCHANGE_PUBMATIC" : PubMatic. - /// - "EXCHANGE_PULSEPOINT" : PulsePoint. - /// - "EXCHANGE_REVENUEMAX" : RevenueMax. - /// - "EXCHANGE_RUBICON" : Rubicon. - /// - "EXCHANGE_SMARTCLIP" : SmartClip. - /// - "EXCHANGE_SMARTRTB" : SmartRTB+. - /// - "EXCHANGE_SMARTSTREAMTV" : SmartstreamTv. - /// - "EXCHANGE_SOVRN" : Sovrn. - /// - "EXCHANGE_SPOTXCHANGE" : SpotXchange. - /// - "EXCHANGE_STROER" : Ströer SSP. - /// - "EXCHANGE_TEADSTV" : TeadsTv. - /// - "EXCHANGE_TELARIA" : Telaria. - /// - "EXCHANGE_TVN" : TVN. - /// - "EXCHANGE_UNITED" : United. - /// - "EXCHANGE_YIELDLAB" : Yieldlab. - /// - "EXCHANGE_YIELDMO" : Yieldmo. - /// - "EXCHANGE_UNRULYX" : UnrulyX. - /// - "EXCHANGE_OPEN8" : Open8. - /// - "EXCHANGE_TRITON" : Triton. - /// - "EXCHANGE_TRIPLELIFT" : TripleLift. - /// - "EXCHANGE_TABOOLA" : Taboola. - /// - "EXCHANGE_INMOBI" : InMobi. - /// - "EXCHANGE_SMAATO" : Smaato. - /// - "EXCHANGE_AJA" : Aja. - /// - "EXCHANGE_SUPERSHIP" : Supership. - /// - "EXCHANGE_NEXSTAR_DIGITAL" : Nexstar Digital. - /// - "EXCHANGE_WAZE" : Waze. - /// - "EXCHANGE_SOUNDCAST" : SoundCast. - /// - "EXCHANGE_SHARETHROUGH" : Sharethrough. - /// - "EXCHANGE_FYBER" : Fyber. - /// - "EXCHANGE_RED_FOR_PUBLISHERS" : Red For Publishers. - /// - "EXCHANGE_MEDIANET" : Media.net. - /// - "EXCHANGE_TAPJOY" : Tapjoy. - /// - "EXCHANGE_VISTAR" : Vistar. - /// - "EXCHANGE_DAX" : DAX. - /// - "EXCHANGE_JCD" : JCD. - /// - "EXCHANGE_PLACE_EXCHANGE" : Place Exchange. - /// - "EXCHANGE_APPLOVIN" : AppLovin. - /// - "EXCHANGE_CONNATIX" : Connatix. - /// - "EXCHANGE_RESET_DIGITAL" : Reset Digital. - /// - "EXCHANGE_HIVESTACK" : Hivestack. - core.String? exchange; - - /// The ID of the guaranteed order that this inventory source belongs to. - /// - /// Only applicable when commitment is - /// `INVENTORY_SOURCE_COMMITMENT_GUARANTEED`. - /// - /// Immutable. - core.String? guaranteedOrderId; - - /// The unique ID of the inventory source. - /// - /// Assigned by the system. - /// - /// Output only. - core.String? inventorySourceId; - - /// The product type of the inventory source, denoting the way through which - /// it sells inventory. - /// - /// Output only. - /// Possible string values are: - /// - "INVENTORY_SOURCE_PRODUCT_TYPE_UNSPECIFIED" : The product type is not - /// specified or is unknown in this version. Modifying inventory sources of - /// this product type are not supported via API. - /// - "PREFERRED_DEAL" : The inventory source sells inventory through - /// Preferred Deal. - /// - "PRIVATE_AUCTION" : The inventory source sells inventory through Private - /// Auction. - /// - "PROGRAMMATIC_GUARANTEED" : The inventory source sells inventory through - /// Programmatic Guaranteed. - /// - "TAG_GUARANTEED" : The inventory source sells inventory through Tag - /// Guaranteed. - /// - "YOUTUBE_RESERVE" : The inventory source sells inventory through YouTube - /// Reserve. - /// - "INSTANT_RESERVE" : The inventory source sells inventory through Instant - /// Reserve. Modifying inventory sources of this product type are not - /// supported via API. - /// - "GUARANTEED_PACKAGE" : The inventory source sells inventory through - /// Guaranteed Package. Modifying inventory sources of this product type are - /// not supported via API. - /// - "PROGRAMMATIC_TV" : The inventory source sells inventory through - /// Programmtic TV. Modifying inventory sources of this product type are not - /// supported via API. - /// - "AUCTION_PACKAGE" : The inventory source sells inventory through Auction - /// Package. Modifying inventory sources of this product type are not - /// supported via API. - core.String? inventorySourceProductType; - - /// Denotes the type of the inventory source. - /// Possible string values are: - /// - "INVENTORY_SOURCE_TYPE_UNSPECIFIED" : The inventory source type is not - /// specified or is unknown in this version. - /// - "INVENTORY_SOURCE_TYPE_PRIVATE" : Private inventory source. - /// - "INVENTORY_SOURCE_TYPE_AUCTION_PACKAGE" : Auction package. - core.String? inventorySourceType; - - /// The resource name of the inventory source. - /// - /// Output only. - core.String? name; - - /// The publisher/seller name of the inventory source. - core.String? publisherName; - - /// The rate details of the inventory source. - /// - /// Required. - RateDetails? rateDetails; - - /// The IDs of advertisers with read-only access to the inventory source. - /// - /// Output only. - core.List? readAdvertiserIds; - - /// The IDs of partners with read-only access to the inventory source. - /// - /// All advertisers of partners in this field inherit read-only access to the - /// inventory source. - /// - /// Output only. - core.List? readPartnerIds; - - /// The partner or advertisers that have read/write access to the inventory - /// source. - /// - /// Output only when commitment is `INVENTORY_SOURCE_COMMITMENT_GUARANTEED`, - /// in which case the read/write accessors are inherited from the parent - /// guaranteed order. Required when commitment is - /// `INVENTORY_SOURCE_COMMITMENT_NON_GUARANTEED`. If commitment is - /// `INVENTORY_SOURCE_COMMITMENT_NON_GUARANTEED` and a partner is set in this - /// field, all advertisers under this partner will automatically have - /// read-only access to the inventory source. These advertisers will not be - /// included in read_advertiser_ids. - InventorySourceAccessors? readWriteAccessors; - - /// The status settings of the inventory source. - InventorySourceStatus? status; - - /// The time range when this inventory source starts and stops serving. - TimeRange? timeRange; - - /// The timestamp when the inventory source was last updated. - /// - /// Assigned by the system. - /// - /// Output only. - core.String? updateTime; - - InventorySource({ - this.commitment, - this.creativeConfigs, - this.dealId, - this.deliveryMethod, - this.displayName, - this.exchange, - this.guaranteedOrderId, - this.inventorySourceId, - this.inventorySourceProductType, - this.inventorySourceType, - this.name, - this.publisherName, - this.rateDetails, - this.readAdvertiserIds, - this.readPartnerIds, - this.readWriteAccessors, - this.status, - this.timeRange, - this.updateTime, - }); - - InventorySource.fromJson(core.Map json_) - : this( - commitment: json_.containsKey('commitment') - ? json_['commitment'] as core.String - : null, - creativeConfigs: json_.containsKey('creativeConfigs') - ? (json_['creativeConfigs'] as core.List) - .map((value) => CreativeConfig.fromJson( - value as core.Map)) - .toList() - : null, - dealId: json_.containsKey('dealId') - ? json_['dealId'] as core.String - : null, - deliveryMethod: json_.containsKey('deliveryMethod') - ? json_['deliveryMethod'] as core.String - : null, - displayName: json_.containsKey('displayName') - ? json_['displayName'] as core.String - : null, - exchange: json_.containsKey('exchange') - ? json_['exchange'] as core.String - : null, - guaranteedOrderId: json_.containsKey('guaranteedOrderId') - ? json_['guaranteedOrderId'] as core.String - : null, - inventorySourceId: json_.containsKey('inventorySourceId') - ? json_['inventorySourceId'] as core.String - : null, - inventorySourceProductType: - json_.containsKey('inventorySourceProductType') - ? json_['inventorySourceProductType'] as core.String - : null, - inventorySourceType: json_.containsKey('inventorySourceType') - ? json_['inventorySourceType'] as core.String - : null, - name: json_.containsKey('name') ? json_['name'] as core.String : null, - publisherName: json_.containsKey('publisherName') - ? json_['publisherName'] as core.String - : null, - rateDetails: json_.containsKey('rateDetails') - ? RateDetails.fromJson( - json_['rateDetails'] as core.Map) - : null, - readAdvertiserIds: json_.containsKey('readAdvertiserIds') - ? (json_['readAdvertiserIds'] as core.List) - .map((value) => value as core.String) - .toList() - : null, - readPartnerIds: json_.containsKey('readPartnerIds') - ? (json_['readPartnerIds'] as core.List) - .map((value) => value as core.String) - .toList() - : null, - readWriteAccessors: json_.containsKey('readWriteAccessors') - ? InventorySourceAccessors.fromJson(json_['readWriteAccessors'] - as core.Map) - : null, - status: json_.containsKey('status') - ? InventorySourceStatus.fromJson( - json_['status'] as core.Map) - : null, - timeRange: json_.containsKey('timeRange') - ? TimeRange.fromJson( - json_['timeRange'] as core.Map) - : null, - updateTime: json_.containsKey('updateTime') - ? json_['updateTime'] as core.String - : null, - ); - - core.Map toJson() => { - if (commitment != null) 'commitment': commitment!, - if (creativeConfigs != null) 'creativeConfigs': creativeConfigs!, - if (dealId != null) 'dealId': dealId!, - if (deliveryMethod != null) 'deliveryMethod': deliveryMethod!, - if (displayName != null) 'displayName': displayName!, - if (exchange != null) 'exchange': exchange!, - if (guaranteedOrderId != null) 'guaranteedOrderId': guaranteedOrderId!, - if (inventorySourceId != null) 'inventorySourceId': inventorySourceId!, - if (inventorySourceProductType != null) - 'inventorySourceProductType': inventorySourceProductType!, - if (inventorySourceType != null) - 'inventorySourceType': inventorySourceType!, - if (name != null) 'name': name!, - if (publisherName != null) 'publisherName': publisherName!, - if (rateDetails != null) 'rateDetails': rateDetails!, - if (readAdvertiserIds != null) 'readAdvertiserIds': readAdvertiserIds!, - if (readPartnerIds != null) 'readPartnerIds': readPartnerIds!, - if (readWriteAccessors != null) - 'readWriteAccessors': readWriteAccessors!, - if (status != null) 'status': status!, - if (timeRange != null) 'timeRange': timeRange!, - if (updateTime != null) 'updateTime': updateTime!, - }; -} - -/// The partner or advertisers with access to the inventory source. -class InventorySourceAccessors { - /// The advertisers with access to the inventory source. - /// - /// All advertisers must belong to the same partner. - InventorySourceAccessorsAdvertiserAccessors? advertisers; - - /// The partner with access to the inventory source. - InventorySourceAccessorsPartnerAccessor? partner; - - InventorySourceAccessors({ - this.advertisers, - this.partner, - }); - - InventorySourceAccessors.fromJson(core.Map json_) - : this( - advertisers: json_.containsKey('advertisers') - ? InventorySourceAccessorsAdvertiserAccessors.fromJson( - json_['advertisers'] as core.Map) - : null, - partner: json_.containsKey('partner') - ? InventorySourceAccessorsPartnerAccessor.fromJson( - json_['partner'] as core.Map) - : null, - ); - - core.Map toJson() => { - if (advertisers != null) 'advertisers': advertisers!, - if (partner != null) 'partner': partner!, - }; -} - -/// The advertisers with access to the inventory source. -typedef InventorySourceAccessorsAdvertiserAccessors - = $InventorySourceAccessorsAdvertiserAccessors; - -/// The partner with access to the inventory source. -typedef InventorySourceAccessorsPartnerAccessor - = $InventorySourceAccessorsPartnerAccessor; - -/// Targeting details for inventory source. -/// -/// This will be populated in the details field of an AssignedTargetingOption -/// when targeting_type is `TARGETING_TYPE_INVENTORY_SOURCE`. -typedef InventorySourceAssignedTargetingOptionDetails - = $InventorySourceAssignedTargetingOptionDetails; - -/// The configuration for display creatives. -class InventorySourceDisplayCreativeConfig { - /// The size requirements for display creatives that can be assigned to the - /// inventory source. - Dimensions? creativeSize; - - InventorySourceDisplayCreativeConfig({ - this.creativeSize, - }); - - InventorySourceDisplayCreativeConfig.fromJson(core.Map json_) - : this( - creativeSize: json_.containsKey('creativeSize') - ? Dimensions.fromJson( - json_['creativeSize'] as core.Map) - : null, - ); - - core.Map toJson() => { - if (creativeSize != null) 'creativeSize': creativeSize!, - }; -} - -/// A filtering option for filtering on Inventory Source entities. -typedef InventorySourceFilter = $InventorySourceFilter; - -/// A collection of targetable inventory sources. -typedef InventorySourceGroup = $InventorySourceGroup; - -/// Targeting details for inventory source group. -/// -/// This will be populated in the details field of an AssignedTargetingOption -/// when targeting_type is `TARGETING_TYPE_INVENTORY_SOURCE_GROUP`. -typedef InventorySourceGroupAssignedTargetingOptionDetails - = $InventorySourceGroupAssignedTargetingOptionDetails; - -/// The status related settings of the inventory source. -typedef InventorySourceStatus = $InventorySourceStatus; - -/// The configuration for video creatives. -typedef InventorySourceVideoCreativeConfig - = $InventorySourceVideoCreativeConfig; - -/// A single invoice. -class Invoice { - /// The budget grouping ID for this invoice. - /// - /// This field will only be set if the invoice level of the corresponding - /// billing profile was set to "Budget invoice grouping ID". - core.String? budgetInvoiceGroupingId; - - /// The list of summarized information for each budget associated with this - /// invoice. - /// - /// This field will only be set if the invoice detail level of the - /// corresponding billing profile was set to "Budget level PO". - core.List? budgetSummaries; - - /// The ID of the original invoice being adjusted by this invoice, if - /// applicable. - /// - /// May appear on the invoice PDF as `Reference invoice number`. If - /// replaced_invoice_ids is set, this field will be empty. - core.String? correctedInvoiceId; - - /// The currency used in the invoice in ISO 4217 format. - core.String? currencyCode; - - /// The display name of the invoice. - core.String? displayName; - - /// The date when the invoice is due. - Date? dueDate; - - /// The unique ID of the invoice. - core.String? invoiceId; - - /// The type of invoice document. - /// Possible string values are: - /// - "INVOICE_TYPE_UNSPECIFIED" : Not specified or is unknown in this - /// version. - /// - "INVOICE_TYPE_CREDIT" : The invoice has a negative amount. - /// - "INVOICE_TYPE_INVOICE" : The invoice has a positive amount. - core.String? invoiceType; - - /// The date when the invoice was issued. - Date? issueDate; - - /// The resource name of the invoice. - core.String? name; - - /// The total amount of costs or adjustments not tied to a particular budget, - /// in micros of the invoice's currency. - /// - /// For example, if currency_code is `USD`, then 1000000 represents one US - /// dollar. - core.String? nonBudgetMicros; - - /// The ID of the payments account the invoice belongs to. - /// - /// Appears on the invoice PDF as `Billing Account Number`. - core.String? paymentsAccountId; - - /// The ID of the payments profile the invoice belongs to. - /// - /// Appears on the invoice PDF as `Billing ID`. - core.String? paymentsProfileId; - - /// The URL to download a PDF copy of the invoice. - /// - /// This URL is user specific and requires a valid OAuth 2.0 access token to - /// access. The access token must be provided in an `Authorization: Bearer` - /// HTTP header and be authorized for one of the following scopes: * - /// `https://www.googleapis.com/auth/display-video-mediaplanning` * - /// `https://www.googleapis.com/auth/display-video` The URL will be valid for - /// 7 days after retrieval of this invoice object or until this invoice is - /// retrieved again. - core.String? pdfUrl; - - /// Purchase order number associated with the invoice. - core.String? purchaseOrderNumber; - - /// The ID(s) of any originally issued invoice that is being cancelled by this - /// invoice, if applicable. - /// - /// Multiple invoices may be listed if those invoices are being consolidated - /// into a single invoice. May appear on invoice PDF as `Replaced invoice - /// numbers`. If corrected_invoice_id is set, this field will be empty. - core.List? replacedInvoiceIds; - - /// The service start and end dates which are covered by this invoice. - DateRange? serviceDateRange; - - /// The pre-tax subtotal amount, in micros of the invoice's currency. - /// - /// For example, if currency_code is `USD`, then 1000000 represents one US - /// dollar. - core.String? subtotalAmountMicros; - - /// The invoice total amount, in micros of the invoice's currency. - /// - /// For example, if currency_code is `USD`, then 1000000 represents one US - /// dollar. - core.String? totalAmountMicros; - - /// The sum of all taxes in invoice, in micros of the invoice's currency. - /// - /// For example, if currency_code is `USD`, then 1000000 represents one US - /// dollar. - core.String? totalTaxAmountMicros; - - Invoice({ - this.budgetInvoiceGroupingId, - this.budgetSummaries, - this.correctedInvoiceId, - this.currencyCode, - this.displayName, - this.dueDate, - this.invoiceId, - this.invoiceType, - this.issueDate, - this.name, - this.nonBudgetMicros, - this.paymentsAccountId, - this.paymentsProfileId, - this.pdfUrl, - this.purchaseOrderNumber, - this.replacedInvoiceIds, - this.serviceDateRange, - this.subtotalAmountMicros, - this.totalAmountMicros, - this.totalTaxAmountMicros, - }); - - Invoice.fromJson(core.Map json_) - : this( - budgetInvoiceGroupingId: json_.containsKey('budgetInvoiceGroupingId') - ? json_['budgetInvoiceGroupingId'] as core.String - : null, - budgetSummaries: json_.containsKey('budgetSummaries') - ? (json_['budgetSummaries'] as core.List) - .map((value) => BudgetSummary.fromJson( - value as core.Map)) - .toList() - : null, - correctedInvoiceId: json_.containsKey('correctedInvoiceId') - ? json_['correctedInvoiceId'] as core.String - : null, - currencyCode: json_.containsKey('currencyCode') - ? json_['currencyCode'] as core.String - : null, - displayName: json_.containsKey('displayName') - ? json_['displayName'] as core.String - : null, - dueDate: json_.containsKey('dueDate') - ? Date.fromJson( - json_['dueDate'] as core.Map) - : null, - invoiceId: json_.containsKey('invoiceId') - ? json_['invoiceId'] as core.String - : null, - invoiceType: json_.containsKey('invoiceType') - ? json_['invoiceType'] as core.String - : null, - issueDate: json_.containsKey('issueDate') - ? Date.fromJson( - json_['issueDate'] as core.Map) - : null, - name: json_.containsKey('name') ? json_['name'] as core.String : null, - nonBudgetMicros: json_.containsKey('nonBudgetMicros') - ? json_['nonBudgetMicros'] as core.String - : null, - paymentsAccountId: json_.containsKey('paymentsAccountId') - ? json_['paymentsAccountId'] as core.String - : null, - paymentsProfileId: json_.containsKey('paymentsProfileId') - ? json_['paymentsProfileId'] as core.String - : null, - pdfUrl: json_.containsKey('pdfUrl') - ? json_['pdfUrl'] as core.String - : null, - purchaseOrderNumber: json_.containsKey('purchaseOrderNumber') - ? json_['purchaseOrderNumber'] as core.String - : null, - replacedInvoiceIds: json_.containsKey('replacedInvoiceIds') - ? (json_['replacedInvoiceIds'] as core.List) - .map((value) => value as core.String) - .toList() - : null, - serviceDateRange: json_.containsKey('serviceDateRange') - ? DateRange.fromJson(json_['serviceDateRange'] - as core.Map) - : null, - subtotalAmountMicros: json_.containsKey('subtotalAmountMicros') - ? json_['subtotalAmountMicros'] as core.String - : null, - totalAmountMicros: json_.containsKey('totalAmountMicros') - ? json_['totalAmountMicros'] as core.String - : null, - totalTaxAmountMicros: json_.containsKey('totalTaxAmountMicros') - ? json_['totalTaxAmountMicros'] as core.String - : null, - ); - - core.Map toJson() => { - if (budgetInvoiceGroupingId != null) - 'budgetInvoiceGroupingId': budgetInvoiceGroupingId!, - if (budgetSummaries != null) 'budgetSummaries': budgetSummaries!, - if (correctedInvoiceId != null) - 'correctedInvoiceId': correctedInvoiceId!, - if (currencyCode != null) 'currencyCode': currencyCode!, - if (displayName != null) 'displayName': displayName!, - if (dueDate != null) 'dueDate': dueDate!, - if (invoiceId != null) 'invoiceId': invoiceId!, - if (invoiceType != null) 'invoiceType': invoiceType!, - if (issueDate != null) 'issueDate': issueDate!, - if (name != null) 'name': name!, - if (nonBudgetMicros != null) 'nonBudgetMicros': nonBudgetMicros!, - if (paymentsAccountId != null) 'paymentsAccountId': paymentsAccountId!, - if (paymentsProfileId != null) 'paymentsProfileId': paymentsProfileId!, - if (pdfUrl != null) 'pdfUrl': pdfUrl!, - if (purchaseOrderNumber != null) - 'purchaseOrderNumber': purchaseOrderNumber!, - if (replacedInvoiceIds != null) - 'replacedInvoiceIds': replacedInvoiceIds!, - if (serviceDateRange != null) 'serviceDateRange': serviceDateRange!, - if (subtotalAmountMicros != null) - 'subtotalAmountMicros': subtotalAmountMicros!, - if (totalAmountMicros != null) 'totalAmountMicros': totalAmountMicros!, - if (totalTaxAmountMicros != null) - 'totalTaxAmountMicros': totalTaxAmountMicros!, - }; -} - -/// Details for assigned keyword targeting option. -/// -/// This will be populated in the details field of an AssignedTargetingOption -/// when targeting_type is `TARGETING_TYPE_KEYWORD`. -typedef KeywordAssignedTargetingOptionDetails - = $KeywordAssignedTargetingOptionDetails; - -/// Details for assigned language targeting option. -/// -/// This will be populated in the details field of an AssignedTargetingOption -/// when targeting_type is `TARGETING_TYPE_LANGUAGE`. -typedef LanguageAssignedTargetingOptionDetails - = $LanguageAssignedTargetingOptionDetails; - -/// Represents a targetable language. -/// -/// This will be populated in the language_details field when targeting_type is -/// `TARGETING_TYPE_LANGUAGE`. -typedef LanguageTargetingOptionDetails = $LanguageTargetingOptionDetails; - -/// A single line item. -class LineItem { - /// The unique ID of the advertiser the line item belongs to. - /// - /// Output only. - core.String? advertiserId; - - /// The bidding strategy of the line item. - /// - /// Required. - BiddingStrategy? bidStrategy; - - /// The budget allocation setting of the line item. - /// - /// Required. - LineItemBudget? budget; - - /// The unique ID of the campaign that the line item belongs to. - /// - /// Output only. - core.String? campaignId; - - /// The conversion tracking setting of the line item. - ConversionCountingConfig? conversionCounting; - - /// The IDs of the creatives associated with the line item. - core.List? creativeIds; - - /// The display name of the line item. - /// - /// Must be UTF-8 encoded with a maximum size of 240 bytes. - /// - /// Required. - core.String? displayName; - - /// Controls whether or not the line item can spend its budget and bid on - /// inventory. - /// - /// * For CreateLineItem method, only `ENTITY_STATUS_DRAFT` is allowed. To - /// activate a line item, use UpdateLineItem method and update the status to - /// `ENTITY_STATUS_ACTIVE` after creation. * A line item cannot be changed - /// back to `ENTITY_STATUS_DRAFT` status from any other status. * If the line - /// item's parent insertion order is not active, the line item can't spend its - /// budget even if its own status is `ENTITY_STATUS_ACTIVE`. - /// - /// Required. - /// Possible string values are: - /// - "ENTITY_STATUS_UNSPECIFIED" : Default value when status is not specified - /// or is unknown in this version. - /// - "ENTITY_STATUS_ACTIVE" : The entity is enabled to bid and spend budget. - /// - "ENTITY_STATUS_ARCHIVED" : The entity is archived. Bidding and budget - /// spending are disabled. An entity can be deleted after archived. Deleted - /// entities cannot be retrieved. - /// - "ENTITY_STATUS_DRAFT" : The entity is under draft. Bidding and budget - /// spending are disabled. - /// - "ENTITY_STATUS_PAUSED" : Bidding and budget spending are paused for the - /// entity. - /// - "ENTITY_STATUS_SCHEDULED_FOR_DELETION" : The entity is scheduled for - /// deletion. - core.String? entityStatus; - - /// Whether to exclude new exchanges from automatically being targeted by the - /// line item. - /// - /// This field is false by default. - core.bool? excludeNewExchanges; - - /// The start and end time of the line item's flight. - /// - /// Required. - LineItemFlight? flight; - - /// The impression frequency cap settings of the line item. - /// - /// The max_impressions field in this settings object must be used if - /// assigning a limited cap. - /// - /// Required. - FrequencyCap? frequencyCap; - - /// The unique ID of the insertion order that the line item belongs to. - /// - /// Required. Immutable. - core.String? insertionOrderId; - - /// Integration details of the line item. - IntegrationDetails? integrationDetails; - - /// The IDs of the private inventory sources assigned to the line item. - core.List? inventorySourceIds; - - /// The unique ID of the line item. - /// - /// Assigned by the system. - /// - /// Output only. - core.String? lineItemId; - - /// The type of the line item. - /// - /// Required. Immutable. - /// Possible string values are: - /// - "LINE_ITEM_TYPE_UNSPECIFIED" : Type value is not specified or is unknown - /// in this version. Line items of this type and their targeting cannot be - /// created or updated using the API. - /// - "LINE_ITEM_TYPE_DISPLAY_DEFAULT" : Image, HTML5, native, or rich media - /// ads. - /// - "LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INSTALL" : Display ads that drive - /// installs of an app. - /// - "LINE_ITEM_TYPE_VIDEO_DEFAULT" : Video ads sold on a CPM basis for a - /// variety of environments. - /// - "LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INSTALL" : Video ads that drive - /// installs of an app. - /// - "LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INVENTORY" : Display ads served on - /// mobile app inventory. Line items of this type and their targeting cannot - /// be created or updated using the API. - /// - "LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INVENTORY" : Video ads served on mobile - /// app inventory. Line items of this type and their targeting cannot be - /// created or updated using the API. - /// - "LINE_ITEM_TYPE_AUDIO_DEFAULT" : RTB Audio ads sold for a variety of - /// environments. - /// - "LINE_ITEM_TYPE_VIDEO_OVER_THE_TOP" : Over-the-top ads present in OTT - /// insertion orders. This type is only applicable to line items with an - /// insertion order of insertion_order_type `OVER_THE_TOP`. - /// - "LINE_ITEM_TYPE_DISPLAY_OUT_OF_HOME" : Display ads served on - /// digital-out-of-home inventory. Line items of this type and their targeting - /// cannot be created or updated using the API. - /// - "LINE_ITEM_TYPE_VIDEO_OUT_OF_HOME" : Video ads served on - /// digital-out-of-home inventory. Line items of this type and their targeting - /// cannot be created or updated using the API. - core.String? lineItemType; - - /// The mobile app promoted by the line item. - /// - /// This is applicable only when line_item_type is either - /// `LINE_ITEM_TYPE_DISPLAY_MOBILE_APP_INSTALL` or - /// `LINE_ITEM_TYPE_VIDEO_MOBILE_APP_INSTALL`. - MobileApp? mobileApp; - - /// The resource name of the line item. - /// - /// Output only. - core.String? name; - - /// The budget spending speed setting of the line item. - /// - /// Required. - Pacing? pacing; - - /// The partner costs associated with the line item. - /// - /// If absent or empty in CreateLineItem method, the newly created line item - /// will inherit partner costs from its parent insertion order. - core.List? partnerCosts; - - /// The partner revenue model setting of the line item. - /// - /// Required. - PartnerRevenueModel? partnerRevenueModel; - - /// The reservation type of the line item. - /// - /// Output only. - /// Possible string values are: - /// - "RESERVATION_TYPE_UNSPECIFIED" : Reservation type value is not specified - /// or is unknown in this version. - /// - "RESERVATION_TYPE_NOT_GUARANTEED" : Not created through a guaranteed - /// inventory source. - /// - "RESERVATION_TYPE_PROGRAMMATIC_GUARANTEED" : Created through a - /// programmatic guaranteed inventory source. - /// - "RESERVATION_TYPE_TAG_GUARANTEED" : Created through a tag guaranteed - /// inventory source. - core.String? reservationType; - - /// The \[optimized - /// targeting\](//support.google.com/displayvideo/answer/12060859) settings of - /// the line item. - /// - /// This config is only applicable for display, video, or audio line items - /// that use automated bidding and positively target eligible audience lists. - TargetingExpansionConfig? targetingExpansion; - - /// The timestamp when the line item was last updated. - /// - /// Assigned by the system. - /// - /// Output only. - core.String? updateTime; - - /// The warning messages generated by the line item. - /// - /// These warnings do not block saving the line item, but some may block the - /// line item from running. - /// - /// Output only. - core.List? warningMessages; - - LineItem({ - this.advertiserId, - this.bidStrategy, - this.budget, - this.campaignId, - this.conversionCounting, - this.creativeIds, - this.displayName, - this.entityStatus, - this.excludeNewExchanges, - this.flight, - this.frequencyCap, - this.insertionOrderId, - this.integrationDetails, - this.inventorySourceIds, - this.lineItemId, - this.lineItemType, - this.mobileApp, - this.name, - this.pacing, - this.partnerCosts, - this.partnerRevenueModel, - this.reservationType, - this.targetingExpansion, - this.updateTime, - this.warningMessages, - }); - - LineItem.fromJson(core.Map json_) - : this( - advertiserId: json_.containsKey('advertiserId') - ? json_['advertiserId'] as core.String - : null, - bidStrategy: json_.containsKey('bidStrategy') - ? BiddingStrategy.fromJson( - json_['bidStrategy'] as core.Map) - : null, - budget: json_.containsKey('budget') - ? LineItemBudget.fromJson( - json_['budget'] as core.Map) - : null, - campaignId: json_.containsKey('campaignId') - ? json_['campaignId'] as core.String - : null, - conversionCounting: json_.containsKey('conversionCounting') - ? ConversionCountingConfig.fromJson(json_['conversionCounting'] - as core.Map) - : null, - creativeIds: json_.containsKey('creativeIds') - ? (json_['creativeIds'] as core.List) - .map((value) => value as core.String) - .toList() - : null, - displayName: json_.containsKey('displayName') - ? json_['displayName'] as core.String - : null, - entityStatus: json_.containsKey('entityStatus') - ? json_['entityStatus'] as core.String - : null, - excludeNewExchanges: json_.containsKey('excludeNewExchanges') - ? json_['excludeNewExchanges'] as core.bool - : null, - flight: json_.containsKey('flight') - ? LineItemFlight.fromJson( - json_['flight'] as core.Map) - : null, - frequencyCap: json_.containsKey('frequencyCap') - ? FrequencyCap.fromJson( - json_['frequencyCap'] as core.Map) - : null, - insertionOrderId: json_.containsKey('insertionOrderId') - ? json_['insertionOrderId'] as core.String - : null, - integrationDetails: json_.containsKey('integrationDetails') - ? IntegrationDetails.fromJson(json_['integrationDetails'] - as core.Map) - : null, - inventorySourceIds: json_.containsKey('inventorySourceIds') - ? (json_['inventorySourceIds'] as core.List) - .map((value) => value as core.String) - .toList() - : null, - lineItemId: json_.containsKey('lineItemId') - ? json_['lineItemId'] as core.String - : null, - lineItemType: json_.containsKey('lineItemType') - ? json_['lineItemType'] as core.String - : null, - mobileApp: json_.containsKey('mobileApp') - ? MobileApp.fromJson( - json_['mobileApp'] as core.Map) - : null, - name: json_.containsKey('name') ? json_['name'] as core.String : null, - pacing: json_.containsKey('pacing') - ? Pacing.fromJson( - json_['pacing'] as core.Map) - : null, - partnerCosts: json_.containsKey('partnerCosts') - ? (json_['partnerCosts'] as core.List) - .map((value) => PartnerCost.fromJson( - value as core.Map)) - .toList() - : null, - partnerRevenueModel: json_.containsKey('partnerRevenueModel') - ? PartnerRevenueModel.fromJson(json_['partnerRevenueModel'] - as core.Map) - : null, - reservationType: json_.containsKey('reservationType') - ? json_['reservationType'] as core.String - : null, - targetingExpansion: json_.containsKey('targetingExpansion') - ? TargetingExpansionConfig.fromJson(json_['targetingExpansion'] - as core.Map) - : null, - updateTime: json_.containsKey('updateTime') - ? json_['updateTime'] as core.String - : null, - warningMessages: json_.containsKey('warningMessages') - ? (json_['warningMessages'] as core.List) - .map((value) => value as core.String) - .toList() - : null, - ); - - core.Map toJson() => { - if (advertiserId != null) 'advertiserId': advertiserId!, - if (bidStrategy != null) 'bidStrategy': bidStrategy!, - if (budget != null) 'budget': budget!, - if (campaignId != null) 'campaignId': campaignId!, - if (conversionCounting != null) - 'conversionCounting': conversionCounting!, - if (creativeIds != null) 'creativeIds': creativeIds!, - if (displayName != null) 'displayName': displayName!, - if (entityStatus != null) 'entityStatus': entityStatus!, - if (excludeNewExchanges != null) - 'excludeNewExchanges': excludeNewExchanges!, - if (flight != null) 'flight': flight!, - if (frequencyCap != null) 'frequencyCap': frequencyCap!, - if (insertionOrderId != null) 'insertionOrderId': insertionOrderId!, - if (integrationDetails != null) - 'integrationDetails': integrationDetails!, - if (inventorySourceIds != null) - 'inventorySourceIds': inventorySourceIds!, - if (lineItemId != null) 'lineItemId': lineItemId!, - if (lineItemType != null) 'lineItemType': lineItemType!, - if (mobileApp != null) 'mobileApp': mobileApp!, - if (name != null) 'name': name!, - if (pacing != null) 'pacing': pacing!, - if (partnerCosts != null) 'partnerCosts': partnerCosts!, - if (partnerRevenueModel != null) - 'partnerRevenueModel': partnerRevenueModel!, - if (reservationType != null) 'reservationType': reservationType!, - if (targetingExpansion != null) - 'targetingExpansion': targetingExpansion!, - if (updateTime != null) 'updateTime': updateTime!, - if (warningMessages != null) 'warningMessages': warningMessages!, - }; -} - -/// Settings that control how budget is allocated. -typedef LineItemBudget = $LineItemBudget; - -/// Settings that control the active duration of a line item. -class LineItemFlight { - /// The flight start and end dates of the line item. - /// - /// They are resolved relative to the parent advertiser's time zone. * - /// Required when flight_date_type is `LINE_ITEM_FLIGHT_DATE_TYPE_CUSTOM`. - /// Output only otherwise. * When creating a new flight, both `start_date` and - /// `end_date` must be in the future. * An existing flight with a `start_date` - /// in the past has a mutable `end_date` but an immutable `start_date`. * - /// `end_date` must be the `start_date` or later, both before the year 2037. - DateRange? dateRange; - - /// The type of the line item's flight dates. - /// - /// Required. - /// Possible string values are: - /// - "LINE_ITEM_FLIGHT_DATE_TYPE_UNSPECIFIED" : Type value is not specified - /// or is unknown in this version. - /// - "LINE_ITEM_FLIGHT_DATE_TYPE_INHERITED" : The line item's flight dates - /// are inherited from its parent insertion order. - /// - "LINE_ITEM_FLIGHT_DATE_TYPE_CUSTOM" : The line item uses its own custom - /// flight dates. - /// - "LINE_ITEM_FLIGHT_DATE_TYPE_TRIGGER" : The line item uses a trigger. - /// **Warning:** Line Items using manual triggers no longer serve in Display & - /// Video 360. This value will sunset on August 1, 2023. Read our \[feature - /// deprecation - /// announcement\](/display-video/api/deprecations#features.manual_triggers) - /// for more information. - core.String? flightDateType; - - /// The ID of the manual trigger associated with the line item. - /// - /// * Required when flight_date_type is `LINE_ITEM_FLIGHT_DATE_TYPE_TRIGGER`. - /// Must not be set otherwise. * When set, the line item's flight dates are - /// inherited from its parent insertion order. * Active line items will spend - /// when the selected trigger is activated within the parent insertion order's - /// flight dates. **Warning:** Line Items using manual triggers no longer - /// serve in Display & Video 360. This field will sunset on August 1, 2023. - /// Read our \[feature deprecation - /// announcement\](/display-video/api/deprecations#features.manual_triggers) - /// for more information. - core.String? triggerId; - - LineItemFlight({ - this.dateRange, - this.flightDateType, - this.triggerId, - }); - - LineItemFlight.fromJson(core.Map json_) - : this( - dateRange: json_.containsKey('dateRange') - ? DateRange.fromJson( - json_['dateRange'] as core.Map) - : null, - flightDateType: json_.containsKey('flightDateType') - ? json_['flightDateType'] as core.String - : null, - triggerId: json_.containsKey('triggerId') - ? json_['triggerId'] as core.String - : null, - ); - - core.Map toJson() => { - if (dateRange != null) 'dateRange': dateRange!, - if (flightDateType != null) 'flightDateType': flightDateType!, - if (triggerId != null) 'triggerId': triggerId!, - }; -} - -/// Response message for ListAdvertiserAssignedTargetingOptions. -class ListAdvertiserAssignedTargetingOptionsResponse { - /// The list of assigned targeting options. - /// - /// This list will be absent if empty. - core.List? assignedTargetingOptions; - - /// A token identifying the next page of results. - /// - /// This value should be specified as the pageToken in a subsequent - /// ListAdvertiserAssignedTargetingOptionsRequest to fetch the next page of - /// results. This token will be absent if there are no more - /// assigned_targeting_options to return. - core.String? nextPageToken; - - ListAdvertiserAssignedTargetingOptionsResponse({ - this.assignedTargetingOptions, - this.nextPageToken, - }); - - ListAdvertiserAssignedTargetingOptionsResponse.fromJson(core.Map json_) - : this( - assignedTargetingOptions: - json_.containsKey('assignedTargetingOptions') - ? (json_['assignedTargetingOptions'] as core.List) - .map((value) => AssignedTargetingOption.fromJson( - value as core.Map)) - .toList() - : null, - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - ); - - core.Map toJson() => { - if (assignedTargetingOptions != null) - 'assignedTargetingOptions': assignedTargetingOptions!, - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - }; -} - -class ListAdvertisersResponse { - /// The list of advertisers. - /// - /// This list will be absent if empty. - core.List? advertisers; - - /// A token to retrieve the next page of results. - /// - /// Pass this value in the page_token field in the subsequent call to - /// `ListAdvertisers` method to retrieve the next page of results. - core.String? nextPageToken; - - ListAdvertisersResponse({ - this.advertisers, - this.nextPageToken, - }); - - ListAdvertisersResponse.fromJson(core.Map json_) - : this( - advertisers: json_.containsKey('advertisers') - ? (json_['advertisers'] as core.List) - .map((value) => Advertiser.fromJson( - value as core.Map)) - .toList() - : null, - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - ); - - core.Map toJson() => { - if (advertisers != null) 'advertisers': advertisers!, - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - }; -} - -/// Response message for -/// AssignedInventorySourceService.ListAssignedInventorySources. -class ListAssignedInventorySourcesResponse { - /// The list of assigned inventory sources. - /// - /// This list will be absent if empty. - core.List? assignedInventorySources; - - /// A token to retrieve the next page of results. - /// - /// Pass this value in the page_token field in the subsequent call to - /// `ListAssignedInventorySources` method to retrieve the next page of - /// results. - core.String? nextPageToken; - - ListAssignedInventorySourcesResponse({ - this.assignedInventorySources, - this.nextPageToken, - }); - - ListAssignedInventorySourcesResponse.fromJson(core.Map json_) - : this( - assignedInventorySources: - json_.containsKey('assignedInventorySources') - ? (json_['assignedInventorySources'] as core.List) - .map((value) => AssignedInventorySource.fromJson( - value as core.Map)) - .toList() - : null, - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - ); - - core.Map toJson() => { - if (assignedInventorySources != null) - 'assignedInventorySources': assignedInventorySources!, - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - }; -} - -/// Response message for AssignedLocationService.ListAssignedLocations. -class ListAssignedLocationsResponse { - /// The list of assigned locations. - /// - /// This list will be absent if empty. - core.List? assignedLocations; - - /// A token to retrieve the next page of results. - /// - /// Pass this value in the page_token field in the subsequent call to - /// `ListAssignedLocations` method to retrieve the next page of results. - core.String? nextPageToken; - - ListAssignedLocationsResponse({ - this.assignedLocations, - this.nextPageToken, - }); - - ListAssignedLocationsResponse.fromJson(core.Map json_) - : this( - assignedLocations: json_.containsKey('assignedLocations') - ? (json_['assignedLocations'] as core.List) - .map((value) => AssignedLocation.fromJson( - value as core.Map)) - .toList() - : null, - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - ); - - core.Map toJson() => { - if (assignedLocations != null) 'assignedLocations': assignedLocations!, - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - }; -} - -/// Response message for ListCampaignAssignedTargetingOptions. -class ListCampaignAssignedTargetingOptionsResponse { - /// The list of assigned targeting options. - /// - /// This list will be absent if empty. - core.List? assignedTargetingOptions; - - /// A token identifying the next page of results. - /// - /// This value should be specified as the pageToken in a subsequent - /// ListCampaignAssignedTargetingOptionsRequest to fetch the next page of - /// results. This token will be absent if there are no more - /// assigned_targeting_options to return. - core.String? nextPageToken; - - ListCampaignAssignedTargetingOptionsResponse({ - this.assignedTargetingOptions, - this.nextPageToken, - }); - - ListCampaignAssignedTargetingOptionsResponse.fromJson(core.Map json_) - : this( - assignedTargetingOptions: - json_.containsKey('assignedTargetingOptions') - ? (json_['assignedTargetingOptions'] as core.List) - .map((value) => AssignedTargetingOption.fromJson( - value as core.Map)) - .toList() - : null, - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - ); - - core.Map toJson() => { - if (assignedTargetingOptions != null) - 'assignedTargetingOptions': assignedTargetingOptions!, - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - }; -} - -class ListCampaignsResponse { - /// The list of campaigns. - /// - /// This list will be absent if empty. - core.List? campaigns; - - /// A token to retrieve the next page of results. - /// - /// Pass this value in the page_token field in the subsequent call to - /// `ListCampaigns` method to retrieve the next page of results. - core.String? nextPageToken; - - ListCampaignsResponse({ - this.campaigns, - this.nextPageToken, - }); - - ListCampaignsResponse.fromJson(core.Map json_) - : this( - campaigns: json_.containsKey('campaigns') - ? (json_['campaigns'] as core.List) - .map((value) => Campaign.fromJson( - value as core.Map)) - .toList() - : null, - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - ); - - core.Map toJson() => { - if (campaigns != null) 'campaigns': campaigns!, - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - }; -} - -class ListChannelsResponse { - /// The list of channels. - /// - /// This list will be absent if empty. - core.List? channels; - - /// A token to retrieve the next page of results. - /// - /// Pass this value in the page_token field in the subsequent call to - /// `ListChannels` method to retrieve the next page of results. - core.String? nextPageToken; - - ListChannelsResponse({ - this.channels, - this.nextPageToken, - }); - - ListChannelsResponse.fromJson(core.Map json_) - : this( - channels: json_.containsKey('channels') - ? (json_['channels'] as core.List) - .map((value) => Channel.fromJson( - value as core.Map)) - .toList() - : null, - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - ); - - core.Map toJson() => { - if (channels != null) 'channels': channels!, - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - }; -} - -class ListCombinedAudiencesResponse { - /// The list of combined audiences. - /// - /// This list will be absent if empty. - core.List? combinedAudiences; - - /// A token to retrieve the next page of results. - /// - /// Pass this value in the page_token field in the subsequent call to - /// `ListCombinedAudiences` method to retrieve the next page of results. - core.String? nextPageToken; - - ListCombinedAudiencesResponse({ - this.combinedAudiences, - this.nextPageToken, - }); - - ListCombinedAudiencesResponse.fromJson(core.Map json_) - : this( - combinedAudiences: json_.containsKey('combinedAudiences') - ? (json_['combinedAudiences'] as core.List) - .map((value) => CombinedAudience.fromJson( - value as core.Map)) - .toList() - : null, - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - ); - - core.Map toJson() => { - if (combinedAudiences != null) 'combinedAudiences': combinedAudiences!, - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - }; -} - -class ListCreativesResponse { - /// The list of creatives. - /// - /// This list will be absent if empty. - core.List? creatives; - - /// A token to retrieve the next page of results. - /// - /// Pass this value in the page_token field in the subsequent call to - /// `ListCreativesRequest` method to retrieve the next page of results. If - /// this field is null, it means this is the last page. - core.String? nextPageToken; - - ListCreativesResponse({ - this.creatives, - this.nextPageToken, - }); - - ListCreativesResponse.fromJson(core.Map json_) - : this( - creatives: json_.containsKey('creatives') - ? (json_['creatives'] as core.List) - .map((value) => Creative.fromJson( - value as core.Map)) - .toList() - : null, - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - ); - - core.Map toJson() => { - if (creatives != null) 'creatives': creatives!, - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - }; -} - -class ListCustomBiddingAlgorithmsResponse { - /// The list of custom bidding algorithms. - /// - /// This list will be absent if empty. - core.List? customBiddingAlgorithms; - - /// A token to retrieve the next page of results. - /// - /// Pass this value in the page_token field in the subsequent call to - /// `ListCustomBiddingAlgorithmsRequest` method to retrieve the next page of - /// results. If this field is null, it means this is the last page. - core.String? nextPageToken; - - ListCustomBiddingAlgorithmsResponse({ - this.customBiddingAlgorithms, - this.nextPageToken, - }); - - ListCustomBiddingAlgorithmsResponse.fromJson(core.Map json_) - : this( - customBiddingAlgorithms: json_.containsKey('customBiddingAlgorithms') - ? (json_['customBiddingAlgorithms'] as core.List) - .map((value) => CustomBiddingAlgorithm.fromJson( - value as core.Map)) - .toList() - : null, - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - ); - - core.Map toJson() => { - if (customBiddingAlgorithms != null) - 'customBiddingAlgorithms': customBiddingAlgorithms!, - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - }; -} - -class ListCustomBiddingScriptsResponse { - /// The list of custom bidding scripts. - /// - /// This list will be absent if empty. - core.List? customBiddingScripts; - - /// A token to retrieve the next page of results. - /// - /// Pass this value in the page_token field in the subsequent call to - /// `ListCustomBiddingScriptsRequest` method to retrieve the next page of - /// results. If this field is null, it means this is the last page. - core.String? nextPageToken; - - ListCustomBiddingScriptsResponse({ - this.customBiddingScripts, - this.nextPageToken, - }); - - ListCustomBiddingScriptsResponse.fromJson(core.Map json_) - : this( - customBiddingScripts: json_.containsKey('customBiddingScripts') - ? (json_['customBiddingScripts'] as core.List) - .map((value) => CustomBiddingScript.fromJson( - value as core.Map)) - .toList() - : null, - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - ); - - core.Map toJson() => { - if (customBiddingScripts != null) - 'customBiddingScripts': customBiddingScripts!, - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - }; -} - -class ListCustomListsResponse { - /// The list of custom lists. - /// - /// This list will be absent if empty. - core.List? customLists; - - /// A token to retrieve the next page of results. - /// - /// Pass this value in the page_token field in the subsequent call to - /// `ListCustomLists` method to retrieve the next page of results. - core.String? nextPageToken; - - ListCustomListsResponse({ - this.customLists, - this.nextPageToken, - }); - - ListCustomListsResponse.fromJson(core.Map json_) - : this( - customLists: json_.containsKey('customLists') - ? (json_['customLists'] as core.List) - .map((value) => CustomList.fromJson( - value as core.Map)) - .toList() - : null, - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - ); - - core.Map toJson() => { - if (customLists != null) 'customLists': customLists!, - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - }; -} - -class ListFirstAndThirdPartyAudiencesResponse { - /// The list of first and third party audiences. - /// - /// Audience size properties will not be included. This list will be absent if - /// empty. - core.List? firstAndThirdPartyAudiences; - - /// A token to retrieve the next page of results. - /// - /// Pass this value in the page_token field in the subsequent call to - /// `ListFirstAndThirdPartyAudiences` method to retrieve the next page of - /// results. - core.String? nextPageToken; - - ListFirstAndThirdPartyAudiencesResponse({ - this.firstAndThirdPartyAudiences, - this.nextPageToken, - }); - - ListFirstAndThirdPartyAudiencesResponse.fromJson(core.Map json_) - : this( - firstAndThirdPartyAudiences: - json_.containsKey('firstAndThirdPartyAudiences') - ? (json_['firstAndThirdPartyAudiences'] as core.List) - .map((value) => FirstAndThirdPartyAudience.fromJson( - value as core.Map)) - .toList() - : null, - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - ); - - core.Map toJson() => { - if (firstAndThirdPartyAudiences != null) - 'firstAndThirdPartyAudiences': firstAndThirdPartyAudiences!, - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - }; -} - -class ListGoogleAudiencesResponse { - /// The list of Google audiences. - /// - /// This list will be absent if empty. - core.List? googleAudiences; - - /// A token to retrieve the next page of results. - /// - /// Pass this value in the page_token field in the subsequent call to - /// `ListGoogleAudiences` method to retrieve the next page of results. - core.String? nextPageToken; - - ListGoogleAudiencesResponse({ - this.googleAudiences, - this.nextPageToken, - }); - - ListGoogleAudiencesResponse.fromJson(core.Map json_) - : this( - googleAudiences: json_.containsKey('googleAudiences') - ? (json_['googleAudiences'] as core.List) - .map((value) => GoogleAudience.fromJson( - value as core.Map)) - .toList() - : null, - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - ); - - core.Map toJson() => { - if (googleAudiences != null) 'googleAudiences': googleAudiences!, - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - }; -} - -class ListGuaranteedOrdersResponse { - /// The list of guaranteed orders. - /// - /// This list will be absent if empty. - core.List? guaranteedOrders; - - /// A token to retrieve the next page of results. - /// - /// Pass this value in the page_token field in the subsequent call to - /// `ListGuaranteedOrders` method to retrieve the next page of results. - core.String? nextPageToken; - - ListGuaranteedOrdersResponse({ - this.guaranteedOrders, - this.nextPageToken, - }); - - ListGuaranteedOrdersResponse.fromJson(core.Map json_) - : this( - guaranteedOrders: json_.containsKey('guaranteedOrders') - ? (json_['guaranteedOrders'] as core.List) - .map((value) => GuaranteedOrder.fromJson( - value as core.Map)) - .toList() - : null, - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - ); - - core.Map toJson() => { - if (guaranteedOrders != null) 'guaranteedOrders': guaranteedOrders!, - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - }; -} - -class ListInsertionOrderAssignedTargetingOptionsResponse { - /// The list of assigned targeting options. - /// - /// This list will be absent if empty. - core.List? assignedTargetingOptions; - - /// A token identifying the next page of results. - /// - /// This value should be specified as the pageToken in a subsequent - /// ListInsertionOrderAssignedTargetingOptionsRequest to fetch the next page - /// of results. This token will be absent if there are no more - /// assigned_targeting_options to return. - core.String? nextPageToken; - - ListInsertionOrderAssignedTargetingOptionsResponse({ - this.assignedTargetingOptions, - this.nextPageToken, - }); - - ListInsertionOrderAssignedTargetingOptionsResponse.fromJson(core.Map json_) - : this( - assignedTargetingOptions: - json_.containsKey('assignedTargetingOptions') - ? (json_['assignedTargetingOptions'] as core.List) - .map((value) => AssignedTargetingOption.fromJson( - value as core.Map)) - .toList() - : null, - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - ); - - core.Map toJson() => { - if (assignedTargetingOptions != null) - 'assignedTargetingOptions': assignedTargetingOptions!, - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - }; -} - -class ListInsertionOrdersResponse { - /// The list of insertion orders. - /// - /// This list will be absent if empty. - core.List? insertionOrders; - - /// A token to retrieve the next page of results. - /// - /// Pass this value in the page_token field in the subsequent call to - /// `ListInsertionOrders` method to retrieve the next page of results. - core.String? nextPageToken; - - ListInsertionOrdersResponse({ - this.insertionOrders, - this.nextPageToken, - }); - - ListInsertionOrdersResponse.fromJson(core.Map json_) - : this( - insertionOrders: json_.containsKey('insertionOrders') - ? (json_['insertionOrders'] as core.List) - .map((value) => InsertionOrder.fromJson( - value as core.Map)) - .toList() - : null, - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - ); - - core.Map toJson() => { - if (insertionOrders != null) 'insertionOrders': insertionOrders!, - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - }; -} - -/// Response message for InventorySourceGroupService.ListInventorySourceGroups. -class ListInventorySourceGroupsResponse { - /// The list of inventory source groups. - /// - /// This list will be absent if empty. - core.List? inventorySourceGroups; - - /// A token to retrieve the next page of results. - /// - /// Pass this value in the page_token field in the subsequent call to - /// `ListInventorySourceGroups` method to retrieve the next page of results. - core.String? nextPageToken; - - ListInventorySourceGroupsResponse({ - this.inventorySourceGroups, - this.nextPageToken, - }); - - ListInventorySourceGroupsResponse.fromJson(core.Map json_) - : this( - inventorySourceGroups: json_.containsKey('inventorySourceGroups') - ? (json_['inventorySourceGroups'] as core.List) - .map((value) => InventorySourceGroup.fromJson( - value as core.Map)) - .toList() - : null, - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - ); - - core.Map toJson() => { - if (inventorySourceGroups != null) - 'inventorySourceGroups': inventorySourceGroups!, - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - }; -} - -class ListInventorySourcesResponse { - /// The list of inventory sources. - /// - /// This list will be absent if empty. - core.List? inventorySources; - - /// A token to retrieve the next page of results. - /// - /// Pass this value in the page_token field in the subsequent call to - /// `ListInventorySources` method to retrieve the next page of results. - core.String? nextPageToken; - - ListInventorySourcesResponse({ - this.inventorySources, - this.nextPageToken, - }); - - ListInventorySourcesResponse.fromJson(core.Map json_) - : this( - inventorySources: json_.containsKey('inventorySources') - ? (json_['inventorySources'] as core.List) - .map((value) => InventorySource.fromJson( - value as core.Map)) - .toList() - : null, - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - ); - - core.Map toJson() => { - if (inventorySources != null) 'inventorySources': inventorySources!, - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - }; -} - -class ListInvoicesResponse { - /// The list of invoices. - /// - /// This list will be absent if empty. - core.List? invoices; - - /// A token to retrieve the next page of results. - /// - /// Pass this value in the page_token field in the subsequent call to - /// `ListInvoices` method to retrieve the next page of results. This token - /// will be absent if there are no more invoices to return. - core.String? nextPageToken; - - ListInvoicesResponse({ - this.invoices, - this.nextPageToken, - }); - - ListInvoicesResponse.fromJson(core.Map json_) - : this( - invoices: json_.containsKey('invoices') - ? (json_['invoices'] as core.List) - .map((value) => Invoice.fromJson( - value as core.Map)) - .toList() - : null, - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - ); - - core.Map toJson() => { - if (invoices != null) 'invoices': invoices!, - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - }; -} - -/// Response message for ListLineItemAssignedTargetingOptions. -class ListLineItemAssignedTargetingOptionsResponse { - /// The list of assigned targeting options. - /// - /// This list will be absent if empty. - core.List? assignedTargetingOptions; - - /// A token identifying the next page of results. - /// - /// This value should be specified as the pageToken in a subsequent - /// ListLineItemAssignedTargetingOptionsRequest to fetch the next page of - /// results. This token will be absent if there are no more - /// assigned_targeting_options to return. - core.String? nextPageToken; - - ListLineItemAssignedTargetingOptionsResponse({ - this.assignedTargetingOptions, - this.nextPageToken, - }); - - ListLineItemAssignedTargetingOptionsResponse.fromJson(core.Map json_) - : this( - assignedTargetingOptions: - json_.containsKey('assignedTargetingOptions') - ? (json_['assignedTargetingOptions'] as core.List) - .map((value) => AssignedTargetingOption.fromJson( - value as core.Map)) - .toList() - : null, - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - ); - - core.Map toJson() => { - if (assignedTargetingOptions != null) - 'assignedTargetingOptions': assignedTargetingOptions!, - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - }; -} - -class ListLineItemsResponse { - /// The list of line items. - /// - /// This list will be absent if empty. - core.List? lineItems; - - /// A token to retrieve the next page of results. - /// - /// Pass this value in the page_token field in the subsequent call to - /// `ListLineItems` method to retrieve the next page of results. - core.String? nextPageToken; - - ListLineItemsResponse({ - this.lineItems, - this.nextPageToken, - }); - - ListLineItemsResponse.fromJson(core.Map json_) - : this( - lineItems: json_.containsKey('lineItems') - ? (json_['lineItems'] as core.List) - .map((value) => LineItem.fromJson( - value as core.Map)) - .toList() - : null, - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - ); - - core.Map toJson() => { - if (lineItems != null) 'lineItems': lineItems!, - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - }; -} - -class ListLocationListsResponse { - /// The list of location lists. - /// - /// This list will be absent if empty. - core.List? locationLists; - - /// A token to retrieve the next page of results. - /// - /// Pass this value in the page_token field in the subsequent call to - /// `ListLocationLists` method to retrieve the next page of results. - core.String? nextPageToken; - - ListLocationListsResponse({ - this.locationLists, - this.nextPageToken, - }); - - ListLocationListsResponse.fromJson(core.Map json_) - : this( - locationLists: json_.containsKey('locationLists') - ? (json_['locationLists'] as core.List) - .map((value) => LocationList.fromJson( - value as core.Map)) - .toList() - : null, - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - ); - - core.Map toJson() => { - if (locationLists != null) 'locationLists': locationLists!, - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - }; -} - -class ListManualTriggersResponse { - /// The list of manual triggers. - /// - /// This list will be absent if empty. - core.List? manualTriggers; - - /// A token to retrieve the next page of results. - /// - /// Pass this value in the page_token field in the subsequent call to - /// `ListManualTriggers` method to retrieve the next page of results. - core.String? nextPageToken; - - ListManualTriggersResponse({ - this.manualTriggers, - this.nextPageToken, - }); - - ListManualTriggersResponse.fromJson(core.Map json_) - : this( - manualTriggers: json_.containsKey('manualTriggers') - ? (json_['manualTriggers'] as core.List) - .map((value) => ManualTrigger.fromJson( - value as core.Map)) - .toList() - : null, - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - ); - - core.Map toJson() => { - if (manualTriggers != null) 'manualTriggers': manualTriggers!, - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - }; -} - -/// Response message for NegativeKeywordListService.ListNegativeKeywordLists. -class ListNegativeKeywordListsResponse { - /// The list of negative keyword lists. - /// - /// This list will be absent if empty. - core.List? negativeKeywordLists; - - /// A token to retrieve the next page of results. - /// - /// Pass this value in the page_token field in the subsequent call to - /// `ListNegativeKeywordLists` method to retrieve the next page of results. - core.String? nextPageToken; - - ListNegativeKeywordListsResponse({ - this.negativeKeywordLists, - this.nextPageToken, - }); - - ListNegativeKeywordListsResponse.fromJson(core.Map json_) - : this( - negativeKeywordLists: json_.containsKey('negativeKeywordLists') - ? (json_['negativeKeywordLists'] as core.List) - .map((value) => NegativeKeywordList.fromJson( - value as core.Map)) - .toList() - : null, - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - ); - - core.Map toJson() => { - if (negativeKeywordLists != null) - 'negativeKeywordLists': negativeKeywordLists!, - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - }; -} - -/// Response message for NegativeKeywordService.ListNegativeKeywords. -class ListNegativeKeywordsResponse { - /// The list of negative keywords. - /// - /// This list will be absent if empty. - core.List? negativeKeywords; - - /// A token to retrieve the next page of results. - /// - /// Pass this value in the page_token field in the subsequent call to - /// `ListNegativeKeywords` method to retrieve the next page of results. - core.String? nextPageToken; - - ListNegativeKeywordsResponse({ - this.negativeKeywords, - this.nextPageToken, - }); - - ListNegativeKeywordsResponse.fromJson(core.Map json_) - : this( - negativeKeywords: json_.containsKey('negativeKeywords') - ? (json_['negativeKeywords'] as core.List) - .map((value) => NegativeKeyword.fromJson( - value as core.Map)) - .toList() - : null, - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - ); - - core.Map toJson() => { - if (negativeKeywords != null) 'negativeKeywords': negativeKeywords!, - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - }; -} - -class ListPartnerAssignedTargetingOptionsResponse { - /// The list of assigned targeting options. - /// - /// This list will be absent if empty. - core.List? assignedTargetingOptions; - - /// A token identifying the next page of results. - /// - /// This value should be specified as the pageToken in a subsequent - /// ListPartnerAssignedTargetingOptionsRequest to fetch the next page of - /// results. This token will be absent if there are no more - /// assigned_targeting_options to return. - core.String? nextPageToken; - - ListPartnerAssignedTargetingOptionsResponse({ - this.assignedTargetingOptions, - this.nextPageToken, - }); - - ListPartnerAssignedTargetingOptionsResponse.fromJson(core.Map json_) - : this( - assignedTargetingOptions: - json_.containsKey('assignedTargetingOptions') - ? (json_['assignedTargetingOptions'] as core.List) - .map((value) => AssignedTargetingOption.fromJson( - value as core.Map)) - .toList() - : null, - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - ); - - core.Map toJson() => { - if (assignedTargetingOptions != null) - 'assignedTargetingOptions': assignedTargetingOptions!, - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - }; -} - -class ListPartnersResponse { - /// A token to retrieve the next page of results. - /// - /// Pass this value in the page_token field in the subsequent call to - /// `ListPartners` method to retrieve the next page of results. - core.String? nextPageToken; - - /// The list of partners. - /// - /// This list will be absent if empty. - core.List? partners; - - ListPartnersResponse({ - this.nextPageToken, - this.partners, - }); - - ListPartnersResponse.fromJson(core.Map json_) - : this( - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - partners: json_.containsKey('partners') - ? (json_['partners'] as core.List) - .map((value) => Partner.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - if (partners != null) 'partners': partners!, - }; -} - -/// Response message for SiteService.ListSites. -class ListSitesResponse { - /// A token to retrieve the next page of results. - /// - /// Pass this value in the page_token field in the subsequent call to - /// `ListSites` method to retrieve the next page of results. - core.String? nextPageToken; - - /// The list of sites. - /// - /// This list will be absent if empty. - core.List? sites; - - ListSitesResponse({ - this.nextPageToken, - this.sites, - }); - - ListSitesResponse.fromJson(core.Map json_) - : this( - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - sites: json_.containsKey('sites') - ? (json_['sites'] as core.List) - .map((value) => Site.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - if (sites != null) 'sites': sites!, - }; -} - -/// Response message for ListTargetingOptions. -class ListTargetingOptionsResponse { - /// A token to retrieve the next page of results. - /// - /// Pass this value in the page_token field in the subsequent call to - /// `ListTargetingOptions` method to retrieve the next page of results. - core.String? nextPageToken; - - /// The list of targeting options. - /// - /// This list will be absent if empty. - core.List? targetingOptions; - - ListTargetingOptionsResponse({ - this.nextPageToken, - this.targetingOptions, - }); - - ListTargetingOptionsResponse.fromJson(core.Map json_) - : this( - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - targetingOptions: json_.containsKey('targetingOptions') - ? (json_['targetingOptions'] as core.List) - .map((value) => TargetingOption.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - if (targetingOptions != null) 'targetingOptions': targetingOptions!, - }; -} - -class ListUsersResponse { - /// A token to retrieve the next page of results. - /// - /// Pass this value in the page_token field in the subsequent call to - /// `ListUsers` method to retrieve the next page of results. This token will - /// be absent if there are no more results to return. - core.String? nextPageToken; - - /// The list of users. - /// - /// This list will be absent if empty. - core.List? users; - - ListUsersResponse({ - this.nextPageToken, - this.users, - }); - - ListUsersResponse.fromJson(core.Map json_) - : this( - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - users: json_.containsKey('users') - ? (json_['users'] as core.List) - .map((value) => User.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - if (users != null) 'users': users!, - }; -} - -/// A list of locations used for targeting. -typedef LocationList = $LocationList; - -/// Specifies how many days into the past to look when determining whether to -/// record a conversion. -typedef LookbackWindow = $LookbackWindow; -typedef LookupInvoiceCurrencyResponse = $LookupInvoiceCurrencyResponse; - -/// A single manual trigger in Display & Video 360. -/// -/// **Warning:** Line Items using manual triggers no longer serve in Display & -/// Video 360. This resource will sunset on August 1, 2023. Read our \[feature -/// deprecation -/// announcement\](/display-video/api/deprecations#features.manual_triggers) for -/// more information. -typedef ManualTrigger = $ManualTrigger; - -/// A strategy that automatically adjusts the bid to optimize a specified -/// performance goal while spending the full budget. -typedef MaximizeSpendBidStrategy = $MaximizeSpendBidStrategy; - -/// Measurement settings of a partner. -typedef MeasurementConfig = $MeasurementConfig; - -/// A mobile app promoted by a mobile app install line item. -typedef MobileApp = $MobileApp; - -/// Wrapper message for a list of mobile device IDs defining Customer Match -/// audience members. -class MobileDeviceIdList { - /// Input only. - /// - /// User consent status. - Consent? consent; - - /// A list of mobile device IDs defining Customer Match audience members. - /// - /// The size of mobile_device_ids mustn't be greater than 500,000. - core.List? mobileDeviceIds; - - MobileDeviceIdList({ - this.consent, - this.mobileDeviceIds, - }); - - MobileDeviceIdList.fromJson(core.Map json_) - : this( - consent: json_.containsKey('consent') - ? Consent.fromJson( - json_['consent'] as core.Map) - : null, - mobileDeviceIds: json_.containsKey('mobileDeviceIds') - ? (json_['mobileDeviceIds'] as core.List) - .map((value) => value as core.String) - .toList() - : null, - ); - - core.Map toJson() => { - if (consent != null) 'consent': consent!, - if (mobileDeviceIds != null) 'mobileDeviceIds': mobileDeviceIds!, - }; -} - -/// Represents an amount of money with its currency type. -typedef Money = $Money; - -/// Details for native content position assigned targeting option. -/// -/// This will be populated in the native_content_position_details field when -/// targeting_type is `TARGETING_TYPE_NATIVE_CONTENT_POSITION`. Explicitly -/// targeting all options is not supported. Remove all native content position -/// targeting options to achieve this effect. -class NativeContentPositionAssignedTargetingOptionDetails { - /// The content position. - /// - /// Required. - /// Possible string values are: - /// - "NATIVE_CONTENT_POSITION_UNSPECIFIED" : Native content position is not - /// specified in this version. This enum is a place holder for a default value - /// and does not represent a real native content position. - /// - "NATIVE_CONTENT_POSITION_UNKNOWN" : The native content position is - /// unknown. - /// - "NATIVE_CONTENT_POSITION_IN_ARTICLE" : Native content position is - /// in-article, i.e., ads appear between the paragraphs of pages. - /// - "NATIVE_CONTENT_POSITION_IN_FEED" : Native content position is in-feed, - /// i.e., ads appear in a scrollable stream of content. A feed is typically - /// editorial (e.g. a list of articles or news) or listings (e.g. a list of - /// products or services). - /// - "NATIVE_CONTENT_POSITION_PERIPHERAL" : Native content position is - /// peripheral, i.e., ads appear outside of core content on pages, such as the - /// right- or left-hand side of the page. - /// - "NATIVE_CONTENT_POSITION_RECOMMENDATION" : Native content position is - /// recommendation, i.e., ads appear in sections for recommended content. - core.String? contentPosition; - - /// The targeting_option_id field when targeting_type is - /// `TARGETING_TYPE_NATIVE_CONTENT_POSITION`. - /// - /// Required. - core.String? targetingOptionId; - - NativeContentPositionAssignedTargetingOptionDetails({ - this.contentPosition, - this.targetingOptionId, - }); - - NativeContentPositionAssignedTargetingOptionDetails.fromJson(core.Map json_) - : this( - contentPosition: json_.containsKey('contentPosition') - ? json_['contentPosition'] as core.String - : null, - targetingOptionId: json_.containsKey('targetingOptionId') - ? json_['targetingOptionId'] as core.String - : null, - ); - - core.Map toJson() => { - if (contentPosition != null) 'contentPosition': contentPosition!, - if (targetingOptionId != null) 'targetingOptionId': targetingOptionId!, - }; -} - -/// Represents a targetable native content position. -/// -/// This will be populated in the native_content_position_details field when -/// targeting_type is `TARGETING_TYPE_NATIVE_CONTENT_POSITION`. -typedef NativeContentPositionTargetingOptionDetails - = $NativeContentPositionTargetingOptionDetails; - -/// A negatively targeted keyword that belongs to a negative keyword list. -typedef NegativeKeyword = $NegativeKeyword; - -/// A list of negative keywords used for targeting. -typedef NegativeKeywordList = $NegativeKeywordList; - -/// Targeting details for negative keyword list. -/// -/// This will be populated in the details field of an AssignedTargetingOption -/// when targeting_type is `TARGETING_TYPE_NEGATIVE_KEYWORD_LIST`. -typedef NegativeKeywordListAssignedTargetingOptionDetails - = $NegativeKeywordListAssignedTargetingOptionDetails; - -/// OBA Icon for a Creative -class ObaIcon { - /// The click tracking URL of the OBA icon. - /// - /// Only URLs of the following domains are allowed: * https://info.evidon.com - /// * https://l.betrad.com - /// - /// Required. - core.String? clickTrackingUrl; - - /// The dimensions of the OBA icon. - Dimensions? dimensions; - - /// The landing page URL of the OBA icon. - /// - /// Only URLs of the following domains are allowed: * https://info.evidon.com - /// * https://l.betrad.com - /// - /// Required. - core.String? landingPageUrl; - - /// The position of the OBA icon on the creative. - /// Possible string values are: - /// - "OBA_ICON_POSITION_UNSPECIFIED" : The OBA icon position is not - /// specified. - /// - "OBA_ICON_POSITION_UPPER_RIGHT" : At the upper right side of the - /// creative. - /// - "OBA_ICON_POSITION_UPPER_LEFT" : At the upper left side of the creative. - /// - "OBA_ICON_POSITION_LOWER_RIGHT" : At the lower right side of the - /// creative. - /// - "OBA_ICON_POSITION_LOWER_LEFT" : At the lower left side of the creative. - core.String? position; - - /// The program of the OBA icon. - /// - /// For example: “AdChoices”. - core.String? program; - - /// The MIME type of the OBA icon resource. - core.String? resourceMimeType; - - /// The URL of the OBA icon resource. - core.String? resourceUrl; - - /// The view tracking URL of the OBA icon. - /// - /// Only URLs of the following domains are allowed: * https://info.evidon.com - /// * https://l.betrad.com - /// - /// Required. - core.String? viewTrackingUrl; - - ObaIcon({ - this.clickTrackingUrl, - this.dimensions, - this.landingPageUrl, - this.position, - this.program, - this.resourceMimeType, - this.resourceUrl, - this.viewTrackingUrl, - }); - - ObaIcon.fromJson(core.Map json_) - : this( - clickTrackingUrl: json_.containsKey('clickTrackingUrl') - ? json_['clickTrackingUrl'] as core.String - : null, - dimensions: json_.containsKey('dimensions') - ? Dimensions.fromJson( - json_['dimensions'] as core.Map) - : null, - landingPageUrl: json_.containsKey('landingPageUrl') - ? json_['landingPageUrl'] as core.String - : null, - position: json_.containsKey('position') - ? json_['position'] as core.String - : null, - program: json_.containsKey('program') - ? json_['program'] as core.String - : null, - resourceMimeType: json_.containsKey('resourceMimeType') - ? json_['resourceMimeType'] as core.String - : null, - resourceUrl: json_.containsKey('resourceUrl') - ? json_['resourceUrl'] as core.String - : null, - viewTrackingUrl: json_.containsKey('viewTrackingUrl') - ? json_['viewTrackingUrl'] as core.String - : null, - ); - - core.Map toJson() => { - if (clickTrackingUrl != null) 'clickTrackingUrl': clickTrackingUrl!, - if (dimensions != null) 'dimensions': dimensions!, - if (landingPageUrl != null) 'landingPageUrl': landingPageUrl!, - if (position != null) 'position': position!, - if (program != null) 'program': program!, - if (resourceMimeType != null) 'resourceMimeType': resourceMimeType!, - if (resourceUrl != null) 'resourceUrl': resourceUrl!, - if (viewTrackingUrl != null) 'viewTrackingUrl': viewTrackingUrl!, - }; -} - -/// Represents a targetable Open Measurement enabled inventory type. -/// -/// This will be populated in the details field of an AssignedTargetingOption -/// when targeting_type is `TARGETING_TYPE_OMID`. -class OmidAssignedTargetingOptionDetails { - /// The type of Open Measurement enabled inventory. - /// - /// Required. - /// Possible string values are: - /// - "OMID_UNSPECIFIED" : Default value when omid targeting is not specified - /// in this version. - /// - "OMID_FOR_MOBILE_DISPLAY_ADS" : Open Measurement enabled mobile display - /// inventory. - core.String? omid; - - /// The targeting_option_id of a TargetingOption of type - /// `TARGETING_TYPE_OMID`. - /// - /// Required. - core.String? targetingOptionId; - - OmidAssignedTargetingOptionDetails({ - this.omid, - this.targetingOptionId, - }); - - OmidAssignedTargetingOptionDetails.fromJson(core.Map json_) - : this( - omid: json_.containsKey('omid') ? json_['omid'] as core.String : null, - targetingOptionId: json_.containsKey('targetingOptionId') - ? json_['targetingOptionId'] as core.String - : null, - ); - - core.Map toJson() => { - if (omid != null) 'omid': omid!, - if (targetingOptionId != null) 'targetingOptionId': targetingOptionId!, - }; -} - -/// Represents a targetable Open Measurement enabled inventory type. -/// -/// This will be populated in the omid_details field when targeting_type is -/// `TARGETING_TYPE_OMID`. -typedef OmidTargetingOptionDetails = $OmidTargetingOptionDetails; - -/// On screen position targeting option details. -/// -/// This will be populated in the on_screen_position_details field when -/// targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. -typedef OnScreenPositionAssignedTargetingOptionDetails - = $OnScreenPositionAssignedTargetingOptionDetails; - -/// Represents a targetable on screen position, which could be used by display -/// and video ads. -/// -/// This will be populated in the on_screen_position_details field when -/// targeting_type is `TARGETING_TYPE_ON_SCREEN_POSITION`. -typedef OnScreenPositionTargetingOptionDetails - = $OnScreenPositionTargetingOptionDetails; - -/// Assigned operating system targeting option details. -/// -/// This will be populated in the operating_system_details field when -/// targeting_type is `TARGETING_TYPE_OPERATING_SYSTEM`. -typedef OperatingSystemAssignedTargetingOptionDetails - = $OperatingSystemAssignedTargetingOptionDetails; - -/// Represents a targetable operating system. -/// -/// This will be populated in the operating_system_details field of a -/// TargetingOption when targeting_type is `TARGETING_TYPE_OPERATING_SYSTEM`. -typedef OperatingSystemTargetingOptionDetails - = $OperatingSystemTargetingOptionDetails; - -/// This resource represents a long-running operation that is the result of a -/// network API call. -class Operation { - /// If the value is `false`, it means the operation is still in progress. - /// - /// If `true`, the operation is completed, and either `error` or `response` is - /// available. - core.bool? done; - - /// The error result of the operation in case of failure or cancellation. - Status? error; - - /// Service-specific metadata associated with the operation. - /// - /// It typically contains progress information and common metadata such as - /// create time. Some services might not provide such metadata. Any method - /// that returns a long-running operation should document the metadata type, - /// if any. - /// - /// The values for Object must be JSON objects. It can consist of `num`, - /// `String`, `bool` and `null` as well as `Map` and `List` values. - core.Map? metadata; - - /// The server-assigned name, which is only unique within the same service - /// that originally returns it. - /// - /// If you use the default HTTP mapping, the `name` should be a resource name - /// ending with `operations/{unique_id}`. - core.String? name; - - /// The normal, successful response of the operation. - /// - /// If the original method returns no data on success, such as `Delete`, the - /// response is `google.protobuf.Empty`. If the original method is standard - /// `Get`/`Create`/`Update`, the response should be the resource. For other - /// methods, the response should have the type `XxxResponse`, where `Xxx` is - /// the original method name. For example, if the original method name is - /// `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`. - /// - /// The values for Object must be JSON objects. It can consist of `num`, - /// `String`, `bool` and `null` as well as `Map` and `List` values. - core.Map? response; - - Operation({ - this.done, - this.error, - this.metadata, - this.name, - this.response, - }); - - Operation.fromJson(core.Map json_) - : this( - done: json_.containsKey('done') ? json_['done'] as core.bool : null, - error: json_.containsKey('error') - ? Status.fromJson( - json_['error'] as core.Map) - : null, - metadata: json_.containsKey('metadata') - ? json_['metadata'] as core.Map - : null, - name: json_.containsKey('name') ? json_['name'] as core.String : null, - response: json_.containsKey('response') - ? json_['response'] as core.Map - : null, - ); - - core.Map toJson() => { - if (done != null) 'done': done!, - if (error != null) 'error': error!, - if (metadata != null) 'metadata': metadata!, - if (name != null) 'name': name!, - if (response != null) 'response': response!, - }; -} - -/// Settings that control the rate at which a budget is spent. -typedef Pacing = $Pacing; - -/// A filtering option that filters on selected file types belonging to a chosen -/// set of filter entities. -typedef ParentEntityFilter = $ParentEntityFilter; - -/// Details for assigned parental status targeting option. -/// -/// This will be populated in the details field of an AssignedTargetingOption -/// when targeting_type is `TARGETING_TYPE_PARENTAL_STATUS`. -class ParentalStatusAssignedTargetingOptionDetails { - /// The parental status of the audience. - /// - /// Required. - /// Possible string values are: - /// - "PARENTAL_STATUS_UNSPECIFIED" : Default value when parental status is - /// not specified in this version. This enum is a place holder for default - /// value and does not represent a real parental status option. - /// - "PARENTAL_STATUS_PARENT" : The audience is a parent. - /// - "PARENTAL_STATUS_NOT_A_PARENT" : The audience is not a parent. - /// - "PARENTAL_STATUS_UNKNOWN" : The parental status of the audience is - /// unknown. - core.String? parentalStatus; - - /// The targeting_option_id of a TargetingOption of type - /// `TARGETING_TYPE_PARENTAL_STATUS`. - /// - /// Required. - core.String? targetingOptionId; - - ParentalStatusAssignedTargetingOptionDetails({ - this.parentalStatus, - this.targetingOptionId, - }); - - ParentalStatusAssignedTargetingOptionDetails.fromJson(core.Map json_) - : this( - parentalStatus: json_.containsKey('parentalStatus') - ? json_['parentalStatus'] as core.String - : null, - targetingOptionId: json_.containsKey('targetingOptionId') - ? json_['targetingOptionId'] as core.String - : null, - ); - - core.Map toJson() => { - if (parentalStatus != null) 'parentalStatus': parentalStatus!, - if (targetingOptionId != null) 'targetingOptionId': targetingOptionId!, - }; -} - -/// Represents a targetable parental status. -/// -/// This will be populated in the parental_status_details field of a -/// TargetingOption when targeting_type is `TARGETING_TYPE_PARENTAL_STATUS`. -typedef ParentalStatusTargetingOptionDetails - = $ParentalStatusTargetingOptionDetails; - -/// A single partner in Display & Video 360 (DV360). -class Partner { - /// Ad server related settings of the partner. - PartnerAdServerConfig? adServerConfig; - - /// Settings that control how partner data may be accessed. - PartnerDataAccessConfig? dataAccessConfig; - - /// The display name of the partner. - /// - /// Must be UTF-8 encoded with a maximum size of 240 bytes. - core.String? displayName; - - /// The status of the partner. - /// - /// Output only. - /// Possible string values are: - /// - "ENTITY_STATUS_UNSPECIFIED" : Default value when status is not specified - /// or is unknown in this version. - /// - "ENTITY_STATUS_ACTIVE" : The entity is enabled to bid and spend budget. - /// - "ENTITY_STATUS_ARCHIVED" : The entity is archived. Bidding and budget - /// spending are disabled. An entity can be deleted after archived. Deleted - /// entities cannot be retrieved. - /// - "ENTITY_STATUS_DRAFT" : The entity is under draft. Bidding and budget - /// spending are disabled. - /// - "ENTITY_STATUS_PAUSED" : Bidding and budget spending are paused for the - /// entity. - /// - "ENTITY_STATUS_SCHEDULED_FOR_DELETION" : The entity is scheduled for - /// deletion. - core.String? entityStatus; - - /// Settings that control which exchanges are enabled for the partner. - ExchangeConfig? exchangeConfig; - - /// General settings of the partner. - PartnerGeneralConfig? generalConfig; - - /// The resource name of the partner. - /// - /// Output only. - core.String? name; - - /// The unique ID of the partner. - /// - /// Assigned by the system. - /// - /// Output only. - core.String? partnerId; - - /// The timestamp when the partner was last updated. - /// - /// Assigned by the system. - /// - /// Output only. - core.String? updateTime; - - Partner({ - this.adServerConfig, - this.dataAccessConfig, - this.displayName, - this.entityStatus, - this.exchangeConfig, - this.generalConfig, - this.name, - this.partnerId, - this.updateTime, - }); - - Partner.fromJson(core.Map json_) - : this( - adServerConfig: json_.containsKey('adServerConfig') - ? PartnerAdServerConfig.fromJson(json_['adServerConfig'] - as core.Map) - : null, - dataAccessConfig: json_.containsKey('dataAccessConfig') - ? PartnerDataAccessConfig.fromJson(json_['dataAccessConfig'] - as core.Map) - : null, - displayName: json_.containsKey('displayName') - ? json_['displayName'] as core.String - : null, - entityStatus: json_.containsKey('entityStatus') - ? json_['entityStatus'] as core.String - : null, - exchangeConfig: json_.containsKey('exchangeConfig') - ? ExchangeConfig.fromJson(json_['exchangeConfig'] - as core.Map) - : null, - generalConfig: json_.containsKey('generalConfig') - ? PartnerGeneralConfig.fromJson( - json_['generalConfig'] as core.Map) - : null, - name: json_.containsKey('name') ? json_['name'] as core.String : null, - partnerId: json_.containsKey('partnerId') - ? json_['partnerId'] as core.String - : null, - updateTime: json_.containsKey('updateTime') - ? json_['updateTime'] as core.String - : null, - ); - - core.Map toJson() => { - if (adServerConfig != null) 'adServerConfig': adServerConfig!, - if (dataAccessConfig != null) 'dataAccessConfig': dataAccessConfig!, - if (displayName != null) 'displayName': displayName!, - if (entityStatus != null) 'entityStatus': entityStatus!, - if (exchangeConfig != null) 'exchangeConfig': exchangeConfig!, - if (generalConfig != null) 'generalConfig': generalConfig!, - if (name != null) 'name': name!, - if (partnerId != null) 'partnerId': partnerId!, - if (updateTime != null) 'updateTime': updateTime!, - }; -} - -/// Ad server related settings of a partner. -class PartnerAdServerConfig { - /// Measurement settings of a partner. - MeasurementConfig? measurementConfig; - - PartnerAdServerConfig({ - this.measurementConfig, - }); - - PartnerAdServerConfig.fromJson(core.Map json_) - : this( - measurementConfig: json_.containsKey('measurementConfig') - ? MeasurementConfig.fromJson(json_['measurementConfig'] - as core.Map) - : null, - ); - - core.Map toJson() => { - if (measurementConfig != null) 'measurementConfig': measurementConfig!, - }; -} - -/// Settings that control a partner cost. -/// -/// A partner cost is any type of expense involved in running a campaign, other -/// than the costs of purchasing impressions (which is called the media cost) -/// and using third-party audience segment data (data fee). Some examples of -/// partner costs include the fees for using DV360, a third-party ad server, or -/// a third-party ad serving verification service. -typedef PartnerCost = $PartnerCost; - -/// Settings that control how partner related data may be accessed. -class PartnerDataAccessConfig { - /// Structured Data Files (SDF) settings for the partner. - /// - /// The SDF configuration for the partner. - SdfConfig? sdfConfig; - - PartnerDataAccessConfig({ - this.sdfConfig, - }); - - PartnerDataAccessConfig.fromJson(core.Map json_) - : this( - sdfConfig: json_.containsKey('sdfConfig') - ? SdfConfig.fromJson( - json_['sdfConfig'] as core.Map) - : null, - ); - - core.Map toJson() => { - if (sdfConfig != null) 'sdfConfig': sdfConfig!, - }; -} - -/// General settings of a partner. -typedef PartnerGeneralConfig = $PartnerGeneralConfig; - -/// Settings that control how partner revenue is calculated. -typedef PartnerRevenueModel = $PartnerRevenueModel; - -/// Settings that control the performance goal of a campaign. -typedef PerformanceGoal = $PerformanceGoal; - -/// A strategy that automatically adjusts the bid to meet or beat a specified -/// performance goal. -typedef PerformanceGoalBidStrategy = $PerformanceGoalBidStrategy; - -/// Details for assigned POI targeting option. -/// -/// This will be populated in the details field of an AssignedTargetingOption -/// when targeting_type is `TARGETING_TYPE_POI`. -typedef PoiAssignedTargetingOptionDetails = $PoiAssignedTargetingOptionDetails; - -/// Search terms for POI targeting options. -typedef PoiSearchTerms = $PoiSearchTerms; - -/// Represents a targetable point of interest(POI). -/// -/// This will be populated in the poi_details field when targeting_type is -/// `TARGETING_TYPE_POI`. -typedef PoiTargetingOptionDetails = $PoiTargetingOptionDetails; - -/// Settings specific to the Mediaocean Prisma tool. -class PrismaConfig { - /// Relevant client, product, and estimate codes from the Mediaocean Prisma - /// tool. - /// - /// Required. - PrismaCpeCode? prismaCpeCode; - - /// The Prisma type. - /// - /// Required. - /// Possible string values are: - /// - "PRISMA_TYPE_UNSPECIFIED" : Type is not specified or unknown in this - /// version. - /// - "PRISMA_TYPE_DISPLAY" : Display type. - /// - "PRISMA_TYPE_SEARCH" : Search type. - /// - "PRISMA_TYPE_VIDEO" : Video type. - /// - "PRISMA_TYPE_AUDIO" : Audio type. - /// - "PRISMA_TYPE_SOCIAL" : Social type. - /// - "PRISMA_TYPE_FEE" : Fee type. - core.String? prismaType; - - /// The entity allocated this budget (DSP, site, etc.). - /// - /// Required. - core.String? supplier; - - PrismaConfig({ - this.prismaCpeCode, - this.prismaType, - this.supplier, - }); - - PrismaConfig.fromJson(core.Map json_) - : this( - prismaCpeCode: json_.containsKey('prismaCpeCode') - ? PrismaCpeCode.fromJson( - json_['prismaCpeCode'] as core.Map) - : null, - prismaType: json_.containsKey('prismaType') - ? json_['prismaType'] as core.String - : null, - supplier: json_.containsKey('supplier') - ? json_['supplier'] as core.String - : null, - ); - - core.Map toJson() => { - if (prismaCpeCode != null) 'prismaCpeCode': prismaCpeCode!, - if (prismaType != null) 'prismaType': prismaType!, - if (supplier != null) 'supplier': supplier!, - }; -} - -/// Google Payments Center supports searching and filtering on the component -/// fields of this code. -typedef PrismaCpeCode = $PrismaCpeCode; - -/// Targeting details for proximity location list. -/// -/// This will be populated in the details field of an AssignedTargetingOption -/// when targeting_type is `TARGETING_TYPE_PROXIMITY_LOCATION_LIST`. -class ProximityLocationListAssignedTargetingOptionDetails { - /// ID of the proximity location list. - /// - /// Should refer to the location_list_id field of a LocationList resource - /// whose type is `TARGETING_LOCATION_TYPE_PROXIMITY`. - /// - /// Required. - core.String? proximityLocationListId; - - /// Radius range for proximity location list. - /// - /// This represents the size of the area around a chosen location that will be - /// targeted. `All` proximity location targeting under a single resource must - /// have the same radius range value. Set this value to match any existing - /// targeting. If updated, this field will change the radius range for all - /// proximity targeting under the resource. - /// - /// Required. - /// Possible string values are: - /// - "PROXIMITY_RADIUS_RANGE_UNSPECIFIED" : The targeted radius range is not - /// specified or is unknown. Default value when radius range is not specified - /// in this version. This enum is a placeholder for default value and does not - /// represent a real radius range option. - /// - "PROXIMITY_RADIUS_RANGE_SMALL" : The targeted radius range is small. - /// - "PROXIMITY_RADIUS_RANGE_MEDIUM" : The targeted radius range is medium. - /// - "PROXIMITY_RADIUS_RANGE_LARGE" : The targeted radius range is large. - core.String? proximityRadiusRange; - - ProximityLocationListAssignedTargetingOptionDetails({ - this.proximityLocationListId, - this.proximityRadiusRange, - }); - - ProximityLocationListAssignedTargetingOptionDetails.fromJson(core.Map json_) - : this( - proximityLocationListId: json_.containsKey('proximityLocationListId') - ? json_['proximityLocationListId'] as core.String - : null, - proximityRadiusRange: json_.containsKey('proximityRadiusRange') - ? json_['proximityRadiusRange'] as core.String - : null, - ); - - core.Map toJson() => { - if (proximityLocationListId != null) - 'proximityLocationListId': proximityLocationListId!, - if (proximityRadiusRange != null) - 'proximityRadiusRange': proximityRadiusRange!, - }; -} - -/// Publisher review status for the creative. -typedef PublisherReviewStatus = $PublisherReviewStatus; - -/// The rate related settings of the inventory source. -class RateDetails { - /// The rate type. - /// - /// Acceptable values are `INVENTORY_SOURCE_RATE_TYPE_CPM_FIXED`, - /// `INVENTORY_SOURCE_RATE_TYPE_CPM_FLOOR`, and - /// `INVENTORY_SOURCE_RATE_TYPE_CPD`. - /// Possible string values are: - /// - "INVENTORY_SOURCE_RATE_TYPE_UNSPECIFIED" : The rate type is not - /// specified or is unknown in this version. - /// - "INVENTORY_SOURCE_RATE_TYPE_CPM_FIXED" : The rate type is CPM (Fixed). - /// - "INVENTORY_SOURCE_RATE_TYPE_CPM_FLOOR" : The rate type is CPM (Floor). - /// - "INVENTORY_SOURCE_RATE_TYPE_CPD" : The rate type is Cost per Day. - /// - "INVENTORY_SOURCE_RATE_TYPE_FLAT" : The rate type is Flat. - core.String? inventorySourceRateType; - - /// The amount that the buyer has committed to spending on the inventory - /// source up front. - /// - /// Only applicable for guaranteed inventory sources. - /// - /// Output only. - Money? minimumSpend; - - /// The rate for the inventory source. - Money? rate; - - /// Required for guaranteed inventory sources. - /// - /// The number of impressions guaranteed by the seller. - core.String? unitsPurchased; - - RateDetails({ - this.inventorySourceRateType, - this.minimumSpend, - this.rate, - this.unitsPurchased, - }); - - RateDetails.fromJson(core.Map json_) - : this( - inventorySourceRateType: json_.containsKey('inventorySourceRateType') - ? json_['inventorySourceRateType'] as core.String - : null, - minimumSpend: json_.containsKey('minimumSpend') - ? Money.fromJson( - json_['minimumSpend'] as core.Map) - : null, - rate: json_.containsKey('rate') - ? Money.fromJson( - json_['rate'] as core.Map) - : null, - unitsPurchased: json_.containsKey('unitsPurchased') - ? json_['unitsPurchased'] as core.String - : null, - ); - - core.Map toJson() => { - if (inventorySourceRateType != null) - 'inventorySourceRateType': inventorySourceRateType!, - if (minimumSpend != null) 'minimumSpend': minimumSpend!, - if (rate != null) 'rate': rate!, - if (unitsPurchased != null) 'unitsPurchased': unitsPurchased!, - }; -} - -/// Targeting details for regional location list. -/// -/// This will be populated in the details field of an AssignedTargetingOption -/// when targeting_type is `TARGETING_TYPE_REGIONAL_LOCATION_LIST`. -typedef RegionalLocationListAssignedTargetingOptionDetails - = $RegionalLocationListAssignedTargetingOptionDetails; - -/// Request message for NegativeKeywordService.ReplaceNegativeKeywords. -class ReplaceNegativeKeywordsRequest { - /// The negative keywords that will replace the existing keywords in the - /// negative keyword list, specified as a list of NegativeKeywords. - core.List? newNegativeKeywords; - - ReplaceNegativeKeywordsRequest({ - this.newNegativeKeywords, - }); - - ReplaceNegativeKeywordsRequest.fromJson(core.Map json_) - : this( - newNegativeKeywords: json_.containsKey('newNegativeKeywords') - ? (json_['newNegativeKeywords'] as core.List) - .map((value) => NegativeKeyword.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (newNegativeKeywords != null) - 'newNegativeKeywords': newNegativeKeywords!, - }; -} - -/// Response message for NegativeKeywordService.ReplaceNegativeKeywords. -class ReplaceNegativeKeywordsResponse { - /// The full list of negative keywords now present in the negative keyword - /// list. - core.List? negativeKeywords; - - ReplaceNegativeKeywordsResponse({ - this.negativeKeywords, - }); - - ReplaceNegativeKeywordsResponse.fromJson(core.Map json_) - : this( - negativeKeywords: json_.containsKey('negativeKeywords') - ? (json_['negativeKeywords'] as core.List) - .map((value) => NegativeKeyword.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (negativeKeywords != null) 'negativeKeywords': negativeKeywords!, - }; -} - -/// Request message for SiteService.ReplaceSites. -class ReplaceSitesRequest { - /// The ID of the advertiser that owns the parent channel. - core.String? advertiserId; - - /// The sites that will replace the existing sites assigned to the channel, - /// specified as a list of Sites. - core.List? newSites; - - /// The ID of the partner that owns the parent channel. - core.String? partnerId; - - ReplaceSitesRequest({ - this.advertiserId, - this.newSites, - this.partnerId, - }); - - ReplaceSitesRequest.fromJson(core.Map json_) - : this( - advertiserId: json_.containsKey('advertiserId') - ? json_['advertiserId'] as core.String - : null, - newSites: json_.containsKey('newSites') - ? (json_['newSites'] as core.List) - .map((value) => Site.fromJson( - value as core.Map)) - .toList() - : null, - partnerId: json_.containsKey('partnerId') - ? json_['partnerId'] as core.String - : null, - ); - - core.Map toJson() => { - if (advertiserId != null) 'advertiserId': advertiserId!, - if (newSites != null) 'newSites': newSites!, - if (partnerId != null) 'partnerId': partnerId!, - }; -} - -/// Response message for SiteService.ReplaceSites. -class ReplaceSitesResponse { - /// The list of sites in the channel after replacing. - core.List? sites; - - ReplaceSitesResponse({ - this.sites, - }); - - ReplaceSitesResponse.fromJson(core.Map json_) - : this( - sites: json_.containsKey('sites') - ? (json_['sites'] as core.List) - .map((value) => Site.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (sites != null) 'sites': sites!, - }; -} - -/// Review statuses for the creative. -class ReviewStatusInfo { - /// Represents the basic approval needed for a creative to begin serving. - /// - /// Summary of creative_and_landing_page_review_status and - /// content_and_policy_review_status. - /// Possible string values are: - /// - "APPROVAL_STATUS_UNSPECIFIED" : Type value is not specified or is - /// unknown in this version. - /// - "APPROVAL_STATUS_PENDING_NOT_SERVABLE" : The creative is still under - /// review and not servable. - /// - "APPROVAL_STATUS_PENDING_SERVABLE" : The creative has passed creative & - /// landing page review and is servable, but is awaiting additional content & - /// policy review. - /// - "APPROVAL_STATUS_APPROVED_SERVABLE" : Both creative & landing page - /// review and content & policy review are approved. The creative is servable. - /// - "APPROVAL_STATUS_REJECTED_NOT_SERVABLE" : There is an issue with the - /// creative that must be fixed before it can serve. - core.String? approvalStatus; - - /// Content and policy review status for the creative. - /// Possible string values are: - /// - "REVIEW_STATUS_UNSPECIFIED" : Type value is not specified or is unknown - /// in this version. - /// - "REVIEW_STATUS_APPROVED" : The creative is approved. - /// - "REVIEW_STATUS_REJECTED" : The creative is rejected. - /// - "REVIEW_STATUS_PENDING" : The creative is pending review. - core.String? contentAndPolicyReviewStatus; - - /// Creative and landing page review status for the creative. - /// Possible string values are: - /// - "REVIEW_STATUS_UNSPECIFIED" : Type value is not specified or is unknown - /// in this version. - /// - "REVIEW_STATUS_APPROVED" : The creative is approved. - /// - "REVIEW_STATUS_REJECTED" : The creative is rejected. - /// - "REVIEW_STATUS_PENDING" : The creative is pending review. - core.String? creativeAndLandingPageReviewStatus; - - /// Exchange review statuses for the creative. - core.List? exchangeReviewStatuses; - - /// Publisher review statuses for the creative. - core.List? publisherReviewStatuses; - - ReviewStatusInfo({ - this.approvalStatus, - this.contentAndPolicyReviewStatus, - this.creativeAndLandingPageReviewStatus, - this.exchangeReviewStatuses, - this.publisherReviewStatuses, - }); - - ReviewStatusInfo.fromJson(core.Map json_) - : this( - approvalStatus: json_.containsKey('approvalStatus') - ? json_['approvalStatus'] as core.String - : null, - contentAndPolicyReviewStatus: - json_.containsKey('contentAndPolicyReviewStatus') - ? json_['contentAndPolicyReviewStatus'] as core.String - : null, - creativeAndLandingPageReviewStatus: - json_.containsKey('creativeAndLandingPageReviewStatus') - ? json_['creativeAndLandingPageReviewStatus'] as core.String - : null, - exchangeReviewStatuses: json_.containsKey('exchangeReviewStatuses') - ? (json_['exchangeReviewStatuses'] as core.List) - .map((value) => ExchangeReviewStatus.fromJson( - value as core.Map)) - .toList() - : null, - publisherReviewStatuses: json_.containsKey('publisherReviewStatuses') - ? (json_['publisherReviewStatuses'] as core.List) - .map((value) => PublisherReviewStatus.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (approvalStatus != null) 'approvalStatus': approvalStatus!, - if (contentAndPolicyReviewStatus != null) - 'contentAndPolicyReviewStatus': contentAndPolicyReviewStatus!, - if (creativeAndLandingPageReviewStatus != null) - 'creativeAndLandingPageReviewStatus': - creativeAndLandingPageReviewStatus!, - if (exchangeReviewStatuses != null) - 'exchangeReviewStatuses': exchangeReviewStatuses!, - if (publisherReviewStatuses != null) - 'publisherReviewStatuses': publisherReviewStatuses!, - }; -} - -/// An error message for a custom bidding script. -typedef ScriptError = $ScriptError; - -/// Structured Data File (SDF) related settings. -typedef SdfConfig = $SdfConfig; - -/// Request message for SearchTargetingOptions. -class SearchTargetingOptionsRequest { - /// The Advertiser this request is being made in the context of. - /// - /// Required. - core.String? advertiserId; - - /// Search terms for Business Chain targeting options. - /// - /// Can only be used when targeting_type is `TARGETING_TYPE_BUSINESS_CHAIN`. - BusinessChainSearchTerms? businessChainSearchTerms; - - /// Search terms for geo region targeting options. - /// - /// Can only be used when targeting_type is `TARGETING_TYPE_GEO_REGION`. - GeoRegionSearchTerms? geoRegionSearchTerms; - - /// Requested page size. - /// - /// Must be between `1` and `200`. If unspecified will default to `100`. - /// Returns error code `INVALID_ARGUMENT` if an invalid value is specified. - core.int? pageSize; - - /// A token identifying a page of results the server should return. - /// - /// Typically, this is the value of next_page_token returned from the previous - /// call to `SearchTargetingOptions` method. If not specified, the first page - /// of results will be returned. - core.String? pageToken; - - /// Search terms for POI targeting options. - /// - /// Can only be used when targeting_type is `TARGETING_TYPE_POI`. - PoiSearchTerms? poiSearchTerms; - - SearchTargetingOptionsRequest({ - this.advertiserId, - this.businessChainSearchTerms, - this.geoRegionSearchTerms, - this.pageSize, - this.pageToken, - this.poiSearchTerms, - }); - - SearchTargetingOptionsRequest.fromJson(core.Map json_) - : this( - advertiserId: json_.containsKey('advertiserId') - ? json_['advertiserId'] as core.String - : null, - businessChainSearchTerms: - json_.containsKey('businessChainSearchTerms') - ? BusinessChainSearchTerms.fromJson( - json_['businessChainSearchTerms'] - as core.Map) - : null, - geoRegionSearchTerms: json_.containsKey('geoRegionSearchTerms') - ? GeoRegionSearchTerms.fromJson(json_['geoRegionSearchTerms'] - as core.Map) - : null, - pageSize: json_.containsKey('pageSize') - ? json_['pageSize'] as core.int - : null, - pageToken: json_.containsKey('pageToken') - ? json_['pageToken'] as core.String - : null, - poiSearchTerms: json_.containsKey('poiSearchTerms') - ? PoiSearchTerms.fromJson(json_['poiSearchTerms'] - as core.Map) - : null, - ); - - core.Map toJson() => { - if (advertiserId != null) 'advertiserId': advertiserId!, - if (businessChainSearchTerms != null) - 'businessChainSearchTerms': businessChainSearchTerms!, - if (geoRegionSearchTerms != null) - 'geoRegionSearchTerms': geoRegionSearchTerms!, - if (pageSize != null) 'pageSize': pageSize!, - if (pageToken != null) 'pageToken': pageToken!, - if (poiSearchTerms != null) 'poiSearchTerms': poiSearchTerms!, - }; -} - -/// Response message for SearchTargetingOptions. -class SearchTargetingOptionsResponse { - /// A token to retrieve the next page of results. - /// - /// Pass this value in the page_token field in the subsequent call to - /// `SearchTargetingOptions` method to retrieve the next page of results. - core.String? nextPageToken; - - /// The list of targeting options that match the search criteria. - /// - /// This list will be absent if empty. - core.List? targetingOptions; - - SearchTargetingOptionsResponse({ - this.nextPageToken, - this.targetingOptions, - }); - - SearchTargetingOptionsResponse.fromJson(core.Map json_) - : this( - nextPageToken: json_.containsKey('nextPageToken') - ? json_['nextPageToken'] as core.String - : null, - targetingOptions: json_.containsKey('targetingOptions') - ? (json_['targetingOptions'] as core.List) - .map((value) => TargetingOption.fromJson( - value as core.Map)) - .toList() - : null, - ); - - core.Map toJson() => { - if (nextPageToken != null) 'nextPageToken': nextPageToken!, - if (targetingOptions != null) 'targetingOptions': targetingOptions!, - }; -} - -/// Targeting details for sensitive category. -/// -/// This will be populated in the details field of an AssignedTargetingOption -/// when targeting_type is `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`. -class SensitiveCategoryAssignedTargetingOptionDetails { - /// ID of the sensitive category to be EXCLUDED. - /// - /// Required. - core.String? excludedTargetingOptionId; - - /// An enum for the DV360 Sensitive category content classifier. - /// - /// Output only. - /// Possible string values are: - /// - "SENSITIVE_CATEGORY_UNSPECIFIED" : This enum is only a placeholder and - /// doesn't specify a DV360 sensitive category. - /// - "SENSITIVE_CATEGORY_ADULT" : Adult or pornographic text, image, or video - /// content. - /// - "SENSITIVE_CATEGORY_DEROGATORY" : Content that may be construed as - /// biased against individuals, groups, or organizations based on criteria - /// such as race, religion, disability, sex, age, veteran status, sexual - /// orientation, gender identity, or political affiliation. May also indicate - /// discussion of such content, for instance, in an academic or journalistic - /// context. - /// - "SENSITIVE_CATEGORY_DOWNLOADS_SHARING" : Content related to audio, - /// video, or software downloads. - /// - "SENSITIVE_CATEGORY_WEAPONS" : Contains content related to personal - /// weapons, including knives, guns, small firearms, and ammunition. Selecting - /// either "weapons" or "sensitive social issues" will result in selecting - /// both. - /// - "SENSITIVE_CATEGORY_GAMBLING" : Contains content related to betting or - /// wagering in a real-world or online setting. - /// - "SENSITIVE_CATEGORY_VIOLENCE" : Content which may be considered - /// graphically violent, gory, gruesome, or shocking, such as street fighting - /// videos, accident photos, descriptions of torture, etc. - /// - "SENSITIVE_CATEGORY_SUGGESTIVE" : Adult content, as well as suggestive - /// content that's not explicitly pornographic. This category includes all - /// pages categorized as adult. - /// - "SENSITIVE_CATEGORY_PROFANITY" : Prominent use of words considered - /// indecent, such as curse words and sexual slang. Pages with only very - /// occasional usage, such as news sites that might include such words in a - /// quotation, are not included. - /// - "SENSITIVE_CATEGORY_ALCOHOL" : Contains content related to alcoholic - /// beverages, alcohol brands, recipes, etc. - /// - "SENSITIVE_CATEGORY_DRUGS" : Contains content related to the - /// recreational use of legal or illegal drugs, as well as to drug - /// paraphernalia or cultivation. - /// - "SENSITIVE_CATEGORY_TOBACCO" : Contains content related to tobacco and - /// tobacco accessories, including lighters, humidors, ashtrays, etc. - /// - "SENSITIVE_CATEGORY_POLITICS" : Political news and media, including - /// discussions of social, governmental, and public policy. - /// - "SENSITIVE_CATEGORY_RELIGION" : Content related to religious thought or - /// beliefs. - /// - "SENSITIVE_CATEGORY_TRAGEDY" : Content related to death, disasters, - /// accidents, war, etc. - /// - "SENSITIVE_CATEGORY_TRANSPORTATION_ACCIDENTS" : Content related to motor - /// vehicle, aviation or other transportation accidents. - /// - "SENSITIVE_CATEGORY_SENSITIVE_SOCIAL_ISSUES" : Issues that evoke strong, - /// opposing views and spark debate. These include issues that are - /// controversial in most countries and markets (such as abortion), as well as - /// those that are controversial in specific countries and markets (such as - /// immigration reform in the United States). - /// - "SENSITIVE_CATEGORY_SHOCKING" : Content which may be considered shocking - /// or disturbing, such as violent news stories, stunts, or toilet humor. - core.String? sensitiveCategory; - - SensitiveCategoryAssignedTargetingOptionDetails({ - this.excludedTargetingOptionId, - this.sensitiveCategory, - }); - - SensitiveCategoryAssignedTargetingOptionDetails.fromJson(core.Map json_) - : this( - excludedTargetingOptionId: - json_.containsKey('excludedTargetingOptionId') - ? json_['excludedTargetingOptionId'] as core.String - : null, - sensitiveCategory: json_.containsKey('sensitiveCategory') - ? json_['sensitiveCategory'] as core.String - : null, - ); - - core.Map toJson() => { - if (excludedTargetingOptionId != null) - 'excludedTargetingOptionId': excludedTargetingOptionId!, - if (sensitiveCategory != null) 'sensitiveCategory': sensitiveCategory!, - }; -} - -/// Represents a targetable sensitive category. -/// -/// This will be populated in the sensitive_category_details field of the -/// TargetingOption when targeting_type is -/// `TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION`. -class SensitiveCategoryTargetingOptionDetails { - /// An enum for the DV360 Sensitive category content classifier. - /// - /// Output only. - /// Possible string values are: - /// - "SENSITIVE_CATEGORY_UNSPECIFIED" : This enum is only a placeholder and - /// doesn't specify a DV360 sensitive category. - /// - "SENSITIVE_CATEGORY_ADULT" : Adult or pornographic text, image, or video - /// content. - /// - "SENSITIVE_CATEGORY_DEROGATORY" : Content that may be construed as - /// biased against individuals, groups, or organizations based on criteria - /// such as race, religion, disability, sex, age, veteran status, sexual - /// orientation, gender identity, or political affiliation. May also indicate - /// discussion of such content, for instance, in an academic or journalistic - /// context. - /// - "SENSITIVE_CATEGORY_DOWNLOADS_SHARING" : Content related to audio, - /// video, or software downloads. - /// - "SENSITIVE_CATEGORY_WEAPONS" : Contains content related to personal - /// weapons, including knives, guns, small firearms, and ammunition. Selecting - /// either "weapons" or "sensitive social issues" will result in selecting - /// both. - /// - "SENSITIVE_CATEGORY_GAMBLING" : Contains content related to betting or - /// wagering in a real-world or online setting. - /// - "SENSITIVE_CATEGORY_VIOLENCE" : Content which may be considered - /// graphically violent, gory, gruesome, or shocking, such as street fighting - /// videos, accident photos, descriptions of torture, etc. - /// - "SENSITIVE_CATEGORY_SUGGESTIVE" : Adult content, as well as suggestive - /// content that's not explicitly pornographic. This category includes all - /// pages categorized as adult. - /// - "SENSITIVE_CATEGORY_PROFANITY" : Prominent use of words considered - /// indecent, such as curse words and sexual slang. Pages with only very - /// occasional usage, such as news sites that might include such words in a - /// quotation, are not included. - /// - "SENSITIVE_CATEGORY_ALCOHOL" : Contains content related to alcoholic - /// beverages, alcohol brands, recipes, etc. - /// - "SENSITIVE_CATEGORY_DRUGS" : Contains content related to the - /// recreational use of legal or illegal drugs, as well as to drug - /// paraphernalia or cultivation. - /// - "SENSITIVE_CATEGORY_TOBACCO" : Contains content related to tobacco and - /// tobacco accessories, including lighters, humidors, ashtrays, etc. - /// - "SENSITIVE_CATEGORY_POLITICS" : Political news and media, including - /// discussions of social, governmental, and public policy. - /// - "SENSITIVE_CATEGORY_RELIGION" : Content related to religious thought or - /// beliefs. - /// - "SENSITIVE_CATEGORY_TRAGEDY" : Content related to death, disasters, - /// accidents, war, etc. - /// - "SENSITIVE_CATEGORY_TRANSPORTATION_ACCIDENTS" : Content related to motor - /// vehicle, aviation or other transportation accidents. - /// - "SENSITIVE_CATEGORY_SENSITIVE_SOCIAL_ISSUES" : Issues that evoke strong, - /// opposing views and spark debate. These include issues that are - /// controversial in most countries and markets (such as abortion), as well as - /// those that are controversial in specific countries and markets (such as - /// immigration reform in the United States). - /// - "SENSITIVE_CATEGORY_SHOCKING" : Content which may be considered shocking - /// or disturbing, such as violent news stories, stunts, or toilet humor. - core.String? sensitiveCategory; - - SensitiveCategoryTargetingOptionDetails({ - this.sensitiveCategory, - }); - - SensitiveCategoryTargetingOptionDetails.fromJson(core.Map json_) - : this( - sensitiveCategory: json_.containsKey('sensitiveCategory') - ? json_['sensitiveCategory'] as core.String - : null, - ); - - core.Map toJson() => { - if (sensitiveCategory != null) 'sensitiveCategory': sensitiveCategory!, - }; -} - -/// A single site. -/// -/// Sites are apps or websites belonging to a channel. -typedef Site = $Site; - -/// 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). -typedef Status = $Status; - -/// Details for assigned sub-exchange targeting option. -/// -/// This will be populated in the details field of an AssignedTargetingOption -/// when targeting_type is `TARGETING_TYPE_SUB_EXCHANGE`. -typedef SubExchangeAssignedTargetingOptionDetails - = $SubExchangeAssignedTargetingOptionDetails; - -/// Represents a targetable sub-exchange. -/// -/// This will be populated in the sub_exchange_details field of a -/// TargetingOption when targeting_type is `TARGETING_TYPE_SUB_EXCHANGE`. -typedef SubExchangeTargetingOptionDetails = $SubExchangeTargetingOptionDetails; - -/// Settings that control the \[optimized -/// targeting\](//support.google.com/displayvideo/answer/12060859) settings of -/// the line item. -typedef TargetingExpansionConfig = $TargetingExpansionConfig; - -/// Represents a single targeting option, which is a targetable concept in -/// DV360. -class TargetingOption { - /// Age range details. - AgeRangeTargetingOptionDetails? ageRangeDetails; - - /// App category details. - AppCategoryTargetingOptionDetails? appCategoryDetails; - - /// Audio content type details. - AudioContentTypeTargetingOptionDetails? audioContentTypeDetails; - - /// Authorized seller status resource details. - AuthorizedSellerStatusTargetingOptionDetails? authorizedSellerStatusDetails; - - /// Browser details. - BrowserTargetingOptionDetails? browserDetails; - - /// Business chain resource details. - BusinessChainTargetingOptionDetails? businessChainDetails; - - /// Carrier and ISP details. - CarrierAndIspTargetingOptionDetails? carrierAndIspDetails; - - /// Category resource details. - CategoryTargetingOptionDetails? categoryDetails; - - /// Content duration resource details. - ContentDurationTargetingOptionDetails? contentDurationDetails; - - /// Content genre resource details. - ContentGenreTargetingOptionDetails? contentGenreDetails; - - /// Content instream position details. - ContentInstreamPositionTargetingOptionDetails? contentInstreamPositionDetails; - - /// Content outstream position details. - ContentOutstreamPositionTargetingOptionDetails? - contentOutstreamPositionDetails; - - /// Content stream type resource details. - ContentStreamTypeTargetingOptionDetails? contentStreamTypeDetails; - - /// Device make and model resource details. - DeviceMakeModelTargetingOptionDetails? deviceMakeModelDetails; - - /// Device type details. - DeviceTypeTargetingOptionDetails? deviceTypeDetails; - - /// Digital content label details. - DigitalContentLabelTargetingOptionDetails? digitalContentLabelDetails; - - /// Environment details. - EnvironmentTargetingOptionDetails? environmentDetails; - - /// Exchange details. - ExchangeTargetingOptionDetails? exchangeDetails; - - /// Gender details. - GenderTargetingOptionDetails? genderDetails; - - /// Geographic region resource details. - GeoRegionTargetingOptionDetails? geoRegionDetails; - - /// Household income details. - HouseholdIncomeTargetingOptionDetails? householdIncomeDetails; - - /// Language resource details. - LanguageTargetingOptionDetails? languageDetails; - - /// The resource name for this targeting option. - /// - /// Output only. - core.String? name; - - /// Native content position details. - NativeContentPositionTargetingOptionDetails? nativeContentPositionDetails; - - /// Open Measurement enabled inventory details. - OmidTargetingOptionDetails? omidDetails; - - /// On screen position details. - OnScreenPositionTargetingOptionDetails? onScreenPositionDetails; - - /// Operating system resources details. - OperatingSystemTargetingOptionDetails? operatingSystemDetails; - - /// Parental status details. - ParentalStatusTargetingOptionDetails? parentalStatusDetails; - - /// POI resource details. - PoiTargetingOptionDetails? poiDetails; - - /// Sensitive Category details. - SensitiveCategoryTargetingOptionDetails? sensitiveCategoryDetails; - - /// Sub-exchange details. - SubExchangeTargetingOptionDetails? subExchangeDetails; - - /// A unique identifier for this targeting option. - /// - /// The tuple {`targeting_type`, `targeting_option_id`} will be unique. - /// - /// Output only. - core.String? targetingOptionId; - - /// The type of this targeting option. - /// - /// Output only. - /// Possible string values are: - /// - "TARGETING_TYPE_UNSPECIFIED" : Default value when type is not specified - /// or is unknown in this version. - /// - "TARGETING_TYPE_CHANNEL" : Target a channel (a custom group of related - /// websites or apps). - /// - "TARGETING_TYPE_APP_CATEGORY" : Target an app category (for example, - /// education or puzzle games). - /// - "TARGETING_TYPE_APP" : Target a specific app (for example, Angry Birds). - /// - "TARGETING_TYPE_URL" : Target a specific url (for example, quora.com). - /// - "TARGETING_TYPE_DAY_AND_TIME" : Target ads during a chosen time period - /// on a specific day. - /// - "TARGETING_TYPE_AGE_RANGE" : Target ads to a specific age range (for - /// example, 18-24). - /// - "TARGETING_TYPE_REGIONAL_LOCATION_LIST" : Target ads to the specified - /// regions on a regional location list. - /// - "TARGETING_TYPE_PROXIMITY_LOCATION_LIST" : Target ads to the specified - /// points of interest on a proximity location list. - /// - "TARGETING_TYPE_GENDER" : Target ads to a specific gender (for example, - /// female or male). - /// - "TARGETING_TYPE_VIDEO_PLAYER_SIZE" : Target a specific video player size - /// for video ads. - /// - "TARGETING_TYPE_USER_REWARDED_CONTENT" : Target user rewarded content - /// for video ads. - /// - "TARGETING_TYPE_PARENTAL_STATUS" : Target ads to a specific parental - /// status (for example, parent or not a parent). - /// - "TARGETING_TYPE_CONTENT_INSTREAM_POSITION" : Target video or audio ads - /// in a specific content instream position (for example, pre-roll, mid-roll, - /// or post-roll). - /// - "TARGETING_TYPE_CONTENT_OUTSTREAM_POSITION" : Target ads in a specific - /// content outstream position. - /// - "TARGETING_TYPE_DEVICE_TYPE" : Target ads to a specific device type (for - /// example, tablet or connected TV). - /// - "TARGETING_TYPE_AUDIENCE_GROUP" : Target ads to an audience or groups of - /// audiences. Singleton field, at most one can exist on a single Lineitem at - /// a time. - /// - "TARGETING_TYPE_BROWSER" : Target ads to specific web browsers (for - /// example, Chrome). - /// - "TARGETING_TYPE_HOUSEHOLD_INCOME" : Target ads to a specific household - /// income range (for example, top 10%). - /// - "TARGETING_TYPE_ON_SCREEN_POSITION" : Target ads in a specific on screen - /// position. - /// - "TARGETING_TYPE_THIRD_PARTY_VERIFIER" : Filter web sites through third - /// party verification (for example, IAS or DoubleVerify). - /// - "TARGETING_TYPE_DIGITAL_CONTENT_LABEL_EXCLUSION" : Filter web sites by - /// specific digital content label ratings (for example, DL-MA: suitable only - /// for mature audiences). - /// - "TARGETING_TYPE_SENSITIVE_CATEGORY_EXCLUSION" : Filter website content - /// by sensitive categories (for example, adult). - /// - "TARGETING_TYPE_ENVIRONMENT" : Target ads to a specific environment (for - /// example, web or app). - /// - "TARGETING_TYPE_CARRIER_AND_ISP" : Target ads to a specific network - /// carrier or internet service provider (ISP) (for example, Comcast or - /// Orange). - /// - "TARGETING_TYPE_OPERATING_SYSTEM" : Target ads to a specific operating - /// system (for example, macOS). - /// - "TARGETING_TYPE_DEVICE_MAKE_MODEL" : Target ads to a specific device - /// make or model (for example, Roku or Samsung). - /// - "TARGETING_TYPE_KEYWORD" : Target ads to a specific keyword (for - /// example, dog or retriever). - /// - "TARGETING_TYPE_NEGATIVE_KEYWORD_LIST" : Target ads to a specific - /// negative keyword list. - /// - "TARGETING_TYPE_VIEWABILITY" : Target ads to a specific viewability (for - /// example, 80% viewable). - /// - "TARGETING_TYPE_CATEGORY" : Target ads to a specific content category - /// (for example, arts & entertainment). - /// - "TARGETING_TYPE_INVENTORY_SOURCE" : Purchase impressions from specific - /// deals and auction packages. - /// - "TARGETING_TYPE_LANGUAGE" : Target ads to a specific language (for - /// example, English or Japanese). - /// - "TARGETING_TYPE_AUTHORIZED_SELLER_STATUS" : Target ads to ads.txt - /// authorized sellers. If no targeting option of this type is assigned, the - /// resource uses the "Authorized Direct Sellers and Resellers" option by - /// default. - /// - "TARGETING_TYPE_GEO_REGION" : Target ads to a specific regional location - /// (for example, a city or state). - /// - "TARGETING_TYPE_INVENTORY_SOURCE_GROUP" : Purchase impressions from a - /// group of deals and auction packages. - /// - "TARGETING_TYPE_EXCHANGE" : Purchase impressions from specific - /// exchanges. - /// - "TARGETING_TYPE_SUB_EXCHANGE" : Purchase impressions from specific - /// sub-exchanges. - /// - "TARGETING_TYPE_POI" : Target ads around a specific point of interest, - /// such as a notable building, a street address, or latitude/longitude - /// coordinates. - /// - "TARGETING_TYPE_BUSINESS_CHAIN" : Target ads around locations of a - /// business chain within a specific geo region. - /// - "TARGETING_TYPE_CONTENT_DURATION" : Target ads to a specific video - /// content duration. - /// - "TARGETING_TYPE_CONTENT_STREAM_TYPE" : Target ads to a specific video - /// content stream type. - /// - "TARGETING_TYPE_NATIVE_CONTENT_POSITION" : Target ads to a specific - /// native content position. - /// - "TARGETING_TYPE_OMID" : Target ads in an Open Measurement enabled - /// inventory. - /// - "TARGETING_TYPE_AUDIO_CONTENT_TYPE" : Target ads to a specific audio - /// content type. - /// - "TARGETING_TYPE_CONTENT_GENRE" : Target ads to a specific content genre. - core.String? targetingType; - - /// User rewarded content details. - UserRewardedContentTargetingOptionDetails? userRewardedContentDetails; - - /// Video player size details. - VideoPlayerSizeTargetingOptionDetails? videoPlayerSizeDetails; - - /// Viewability resource details. - ViewabilityTargetingOptionDetails? viewabilityDetails; - - TargetingOption({ - this.ageRangeDetails, - this.appCategoryDetails, - this.audioContentTypeDetails, - this.authorizedSellerStatusDetails, - this.browserDetails, - this.businessChainDetails, - this.carrierAndIspDetails, - this.categoryDetails, - this.contentDurationDetails, - this.contentGenreDetails, - this.contentInstreamPositionDetails, - this.contentOutstreamPositionDetails, - this.contentStreamTypeDetails, - this.deviceMakeModelDetails, - this.deviceTypeDetails, - this.digitalContentLabelDetails, - this.environmentDetails, - this.exchangeDetails, - this.genderDetails, - this.geoRegionDetails, - this.householdIncomeDetails, - this.languageDetails, - this.name, - this.nativeContentPositionDetails, - this.omidDetails, - this.onScreenPositionDetails, - this.operatingSystemDetails, - this.parentalStatusDetails, - this.poiDetails, - this.sensitiveCategoryDetails, - this.subExchangeDetails, - this.targetingOptionId, - this.targetingType, - this.userRewardedContentDetails, - this.videoPlayerSizeDetails, - this.viewabilityDetails, - }); - - TargetingOption.fromJson(core.Map json_) - : this( - ageRangeDetails: json_.containsKey('ageRangeDetails') - ? AgeRangeTargetingOptionDetails.fromJson(json_['ageRangeDetails'] - as core.Map) - : null, - appCategoryDetails: json_.containsKey('appCategoryDetails') - ? AppCategoryTargetingOptionDetails.fromJson( - json_['appCategoryDetails'] - as core.Map) - : null, - audioContentTypeDetails: json_.containsKey('audioContentTypeDetails') - ? AudioContentTypeTargetingOptionDetails.fromJson( - json_['audioContentTypeDetails'] - as core.Map) - : null, - authorizedSellerStatusDetails: - json_.containsKey('authorizedSellerStatusDetails') - ? AuthorizedSellerStatusTargetingOptionDetails.fromJson( - json_['authorizedSellerStatusDetails'] - as core.Map) - : null, - browserDetails: json_.containsKey('browserDetails') - ? BrowserTargetingOptionDetails.fromJson(json_['browserDetails'] - as core.Map) - : null, - businessChainDetails: json_.containsKey('businessChainDetails') - ? BusinessChainTargetingOptionDetails.fromJson( - json_['businessChainDetails'] - as core.Map) - : null, - carrierAndIspDetails: json_.containsKey('carrierAndIspDetails') - ? CarrierAndIspTargetingOptionDetails.fromJson( - json_['carrierAndIspDetails'] - as core.Map) - : null, - categoryDetails: json_.containsKey('categoryDetails') - ? CategoryTargetingOptionDetails.fromJson(json_['categoryDetails'] - as core.Map) - : null, - contentDurationDetails: json_.containsKey('contentDurationDetails') - ? ContentDurationTargetingOptionDetails.fromJson( - json_['contentDurationDetails'] - as core.Map) - : null, - contentGenreDetails: json_.containsKey('contentGenreDetails') - ? ContentGenreTargetingOptionDetails.fromJson( - json_['contentGenreDetails'] - as core.Map) - : null, - contentInstreamPositionDetails: - json_.containsKey('contentInstreamPositionDetails') - ? ContentInstreamPositionTargetingOptionDetails.fromJson( - json_['contentInstreamPositionDetails'] - as core.Map) - : null, - contentOutstreamPositionDetails: - json_.containsKey('contentOutstreamPositionDetails') - ? ContentOutstreamPositionTargetingOptionDetails.fromJson( - json_['contentOutstreamPositionDetails'] - as core.Map) - : null, - contentStreamTypeDetails: - json_.containsKey('contentStreamTypeDetails') - ? ContentStreamTypeTargetingOptionDetails.fromJson( - json_['contentStreamTypeDetails'] - as core.Map) - : null, - deviceMakeModelDetails: json_.containsKey('deviceMakeModelDetails') - ? DeviceMakeModelTargetingOptionDetails.fromJson( - json_['deviceMakeModelDetails'] - as core.Map) - : null, - deviceTypeDetails: json_.containsKey('deviceTypeDetails') - ? DeviceTypeTargetingOptionDetails.fromJson( - json_['deviceTypeDetails'] - as core.Map) - : null, - digitalContentLabelDetails: - json_.containsKey('digitalContentLabelDetails') - ? DigitalContentLabelTargetingOptionDetails.fromJson( - json_['digitalContentLabelDetails'] - as core.Map) - : null, - environmentDetails: json_.containsKey('environmentDetails') - ? EnvironmentTargetingOptionDetails.fromJson( - json_['environmentDetails'] - as core.Map) - : null, - exchangeDetails: json_.containsKey('exchangeDetails') - ? ExchangeTargetingOptionDetails.fromJson(json_['exchangeDetails'] - as core.Map) - : null, - genderDetails: json_.containsKey('genderDetails') - ? GenderTargetingOptionDetails.fromJson( - json_['genderDetails'] as core.Map) - : null, - geoRegionDetails: json_.containsKey('geoRegionDetails') - ? GeoRegionTargetingOptionDetails.fromJson( - json_['geoRegionDetails'] - as core.Map) - : null, - householdIncomeDetails: json_.containsKey('householdIncomeDetails') - ? HouseholdIncomeTargetingOptionDetails.fromJson( - json_['householdIncomeDetails'] - as core.Map) - : null, - languageDetails: json_.containsKey('languageDetails') - ? LanguageTargetingOptionDetails.fromJson(json_['languageDetails'] - as core.Map) - : null, - name: json_.containsKey('name') ? json_['name'] as core.String : null, - nativeContentPositionDetails: - json_.containsKey('nativeContentPositionDetails') - ? NativeContentPositionTargetingOptionDetails.fromJson( - json_['nativeContentPositionDetails'] - as core.Map) - : null, - omidDetails: json_.containsKey('omidDetails') - ? OmidTargetingOptionDetails.fromJson( - json_['omidDetails'] as core.Map) - : null, - onScreenPositionDetails: json_.containsKey('onScreenPositionDetails') - ? OnScreenPositionTargetingOptionDetails.fromJson( - json_['onScreenPositionDetails'] - as core.Map) - : null, - operatingSystemDetails: json_.containsKey('operatingSystemDetails') - ? OperatingSystemTargetingOptionDetails.fromJson( - json_['operatingSystemDetails'] - as core.Map) - : null, - parentalStatusDetails: json_.containsKey('parentalStatusDetails') - ? ParentalStatusTargetingOptionDetails.fromJson( - json_['parentalStatusDetails'] - as core.Map) - : null, - poiDetails: json_.containsKey('poiDetails') - ? PoiTargetingOptionDetails.fromJson( - json_['poiDetails'] as core.Map) - : null, - sensitiveCategoryDetails: - json_.containsKey('sensitiveCategoryDetails') - ? SensitiveCategoryTargetingOptionDetails.fromJson( - json_['sensitiveCategoryDetails'] - as core.Map) - : null, - subExchangeDetails: json_.containsKey('subExchangeDetails') - ? SubExchangeTargetingOptionDetails.fromJson( - json_['subExchangeDetails'] - as core.Map) - : null, - targetingOptionId: json_.containsKey('targetingOptionId') - ? json_['targetingOptionId'] as core.String - : null, - targetingType: json_.containsKey('targetingType') - ? json_['targetingType'] as core.String - : null, - userRewardedContentDetails: - json_.containsKey('userRewardedContentDetails') - ? UserRewardedContentTargetingOptionDetails.fromJson( - json_['userRewardedContentDetails'] - as core.Map) - : null, - videoPlayerSizeDetails: json_.containsKey('videoPlayerSizeDetails') - ? VideoPlayerSizeTargetingOptionDetails.fromJson( - json_['videoPlayerSizeDetails'] - as core.Map) - : null, - viewabilityDetails: json_.containsKey('viewabilityDetails') - ? ViewabilityTargetingOptionDetails.fromJson( - json_['viewabilityDetails'] - as core.Map) - : null, - ); - - core.Map toJson() => { - if (ageRangeDetails != null) 'ageRangeDetails': ageRangeDetails!, - if (appCategoryDetails != null) - 'appCategoryDetails': appCategoryDetails!, - if (audioContentTypeDetails != null) - 'audioContentTypeDetails': audioContentTypeDetails!, - if (authorizedSellerStatusDetails != null) - 'authorizedSellerStatusDetails': authorizedSellerStatusDetails!, - if (browserDetails != null) 'browserDetails': browserDetails!, - if (businessChainDetails != null) - 'businessChainDetails': businessChainDetails!, - if (carrierAndIspDetails != null) - 'carrierAndIspDetails': carrierAndIspDetails!, - if (categoryDetails != null) 'categoryDetails': categoryDetails!, - if (contentDurationDetails != null) - 'contentDurationDetails': contentDurationDetails!, - if (contentGenreDetails != null) - 'contentGenreDetails': contentGenreDetails!, - if (contentInstreamPositionDetails != null) - 'contentInstreamPositionDetails': contentInstreamPositionDetails!, - if (contentOutstreamPositionDetails != null) - 'contentOutstreamPositionDetails': contentOutstreamPositionDetails!, - if (contentStreamTypeDetails != null) - 'contentStreamTypeDetails': contentStreamTypeDetails!, - if (deviceMakeModelDetails != null) - 'deviceMakeModelDetails': deviceMakeModelDetails!, - if (deviceTypeDetails != null) 'deviceTypeDetails': deviceTypeDetails!, - if (digitalContentLabelDetails != null) - 'digitalContentLabelDetails': digitalContentLabelDetails!, - if (environmentDetails != null) - 'environmentDetails': environmentDetails!, - if (exchangeDetails != null) 'exchangeDetails': exchangeDetails!, - if (genderDetails != null) 'genderDetails': genderDetails!, - if (geoRegionDetails != null) 'geoRegionDetails': geoRegionDetails!, - if (householdIncomeDetails != null) - 'householdIncomeDetails': householdIncomeDetails!, - if (languageDetails != null) 'languageDetails': languageDetails!, - if (name != null) 'name': name!, - if (nativeContentPositionDetails != null) - 'nativeContentPositionDetails': nativeContentPositionDetails!, - if (omidDetails != null) 'omidDetails': omidDetails!, - if (onScreenPositionDetails != null) - 'onScreenPositionDetails': onScreenPositionDetails!, - if (operatingSystemDetails != null) - 'operatingSystemDetails': operatingSystemDetails!, - if (parentalStatusDetails != null) - 'parentalStatusDetails': parentalStatusDetails!, - if (poiDetails != null) 'poiDetails': poiDetails!, - if (sensitiveCategoryDetails != null) - 'sensitiveCategoryDetails': sensitiveCategoryDetails!, - if (subExchangeDetails != null) - 'subExchangeDetails': subExchangeDetails!, - if (targetingOptionId != null) 'targetingOptionId': targetingOptionId!, - if (targetingType != null) 'targetingType': targetingType!, - if (userRewardedContentDetails != null) - 'userRewardedContentDetails': userRewardedContentDetails!, - if (videoPlayerSizeDetails != null) - 'videoPlayerSizeDetails': videoPlayerSizeDetails!, - if (viewabilityDetails != null) - 'viewabilityDetails': viewabilityDetails!, - }; -} - -/// Settings for advertisers that use third-party ad servers only. -typedef ThirdPartyOnlyConfig = $ThirdPartyOnlyConfig; - -/// Tracking URLs from third parties to track interactions with an audio or a -/// video creative. -typedef ThirdPartyUrl = $ThirdPartyUrl; - -/// Assigned third party verifier targeting option details. -/// -/// This will be populated in the details field of an AssignedTargetingOption -/// when targeting_type is `TARGETING_TYPE_THIRD_PARTY_VERIFIER`. -class ThirdPartyVerifierAssignedTargetingOptionDetails { - /// Third party brand verifier -- Adloox. - Adloox? adloox; - - /// Third party brand verifier -- DoubleVerify. - DoubleVerify? doubleVerify; - - /// Third party brand verifier -- Integral Ad Science. - IntegralAdScience? integralAdScience; - - ThirdPartyVerifierAssignedTargetingOptionDetails({ - this.adloox, - this.doubleVerify, - this.integralAdScience, - }); - - ThirdPartyVerifierAssignedTargetingOptionDetails.fromJson(core.Map json_) - : this( - adloox: json_.containsKey('adloox') - ? Adloox.fromJson( - json_['adloox'] as core.Map) - : null, - doubleVerify: json_.containsKey('doubleVerify') - ? DoubleVerify.fromJson( - json_['doubleVerify'] as core.Map) - : null, - integralAdScience: json_.containsKey('integralAdScience') - ? IntegralAdScience.fromJson(json_['integralAdScience'] - as core.Map) - : null, - ); - - core.Map toJson() => { - if (adloox != null) 'adloox': adloox!, - if (doubleVerify != null) 'doubleVerify': doubleVerify!, - if (integralAdScience != null) 'integralAdScience': integralAdScience!, - }; -} - -/// A time range. -typedef TimeRange = $TimeRange; - -/// Timer event of the creative. -typedef TimerEvent = $TimerEvent; - -/// Settings that control the behavior of a single Floodlight activity config. -typedef TrackingFloodlightActivityConfig = $TrackingFloodlightActivityConfig; - -/// Represents information about the transcoded audio or video file. -class Transcode { - /// The bit rate for the audio stream of the transcoded video, or the bit rate - /// for the transcoded audio, in kilobits per second. - core.String? audioBitRateKbps; - - /// The sample rate for the audio stream of the transcoded video, or the - /// sample rate for the transcoded audio, in hertz. - core.String? audioSampleRateHz; - - /// The transcoding bit rate of the transcoded video, in kilobits per second. - core.String? bitRateKbps; - - /// The dimensions of the transcoded video. - Dimensions? dimensions; - - /// The size of the transcoded file, in bytes. - core.String? fileSizeBytes; - - /// The frame rate of the transcoded video, in frames per second. - core.double? frameRate; - - /// The MIME type of the transcoded file. - core.String? mimeType; - - /// The name of the transcoded file. - core.String? name; - - /// Indicates if the transcoding was successful. - core.bool? transcoded; - - Transcode({ - this.audioBitRateKbps, - this.audioSampleRateHz, - this.bitRateKbps, - this.dimensions, - this.fileSizeBytes, - this.frameRate, - this.mimeType, - this.name, - this.transcoded, - }); - - Transcode.fromJson(core.Map json_) - : this( - audioBitRateKbps: json_.containsKey('audioBitRateKbps') - ? json_['audioBitRateKbps'] as core.String - : null, - audioSampleRateHz: json_.containsKey('audioSampleRateHz') - ? json_['audioSampleRateHz'] as core.String - : null, - bitRateKbps: json_.containsKey('bitRateKbps') - ? json_['bitRateKbps'] as core.String - : null, - dimensions: json_.containsKey('dimensions') - ? Dimensions.fromJson( - json_['dimensions'] as core.Map) - : null, - fileSizeBytes: json_.containsKey('fileSizeBytes') - ? json_['fileSizeBytes'] as core.String - : null, - frameRate: json_.containsKey('frameRate') - ? (json_['frameRate'] as core.num).toDouble() - : null, - mimeType: json_.containsKey('mimeType') - ? json_['mimeType'] as core.String - : null, - name: json_.containsKey('name') ? json_['name'] as core.String : null, - transcoded: json_.containsKey('transcoded') - ? json_['transcoded'] as core.bool - : null, - ); - - core.Map toJson() => { - if (audioBitRateKbps != null) 'audioBitRateKbps': audioBitRateKbps!, - if (audioSampleRateHz != null) 'audioSampleRateHz': audioSampleRateHz!, - if (bitRateKbps != null) 'bitRateKbps': bitRateKbps!, - if (dimensions != null) 'dimensions': dimensions!, - if (fileSizeBytes != null) 'fileSizeBytes': fileSizeBytes!, - if (frameRate != null) 'frameRate': frameRate!, - if (mimeType != null) 'mimeType': mimeType!, - if (name != null) 'name': name!, - if (transcoded != null) 'transcoded': transcoded!, - }; -} - -/// A creative identifier provided by a registry that is unique across all -/// platforms. -/// -/// This is part of the VAST 4.0 standard. -typedef UniversalAdId = $UniversalAdId; - -/// Details for assigned URL targeting option. -/// -/// This will be populated in the details field of an AssignedTargetingOption -/// when targeting_type is `TARGETING_TYPE_URL`. -typedef UrlAssignedTargetingOptionDetails = $UrlAssignedTargetingOptionDetails; - -/// A single user in Display & Video 360. -class User { - /// The assigned user roles. - /// - /// Required in CreateUser. Output only in UpdateUser. Can only be updated - /// through BulkEditAssignedUserRoles. - core.List? assignedUserRoles; - - /// The display name of the user. - /// - /// Must be UTF-8 encoded with a maximum size of 240 bytes. - /// - /// Required. - core.String? displayName; - - /// The email address used to identify the user. - /// - /// Required. Immutable. - core.String? email; - - /// The resource name of the user. - /// - /// Output only. - core.String? name; - - /// The unique ID of the user. - /// - /// Assigned by the system. - /// - /// Output only. - core.String? userId; - - User({ - this.assignedUserRoles, - this.displayName, - this.email, - this.name, - this.userId, - }); - - User.fromJson(core.Map json_) - : this( - assignedUserRoles: json_.containsKey('assignedUserRoles') - ? (json_['assignedUserRoles'] as core.List) - .map((value) => AssignedUserRole.fromJson( - value as core.Map)) - .toList() - : null, - displayName: json_.containsKey('displayName') - ? json_['displayName'] as core.String - : null, - email: - json_.containsKey('email') ? json_['email'] as core.String : null, - name: json_.containsKey('name') ? json_['name'] as core.String : null, - userId: json_.containsKey('userId') - ? json_['userId'] as core.String - : null, - ); - - core.Map toJson() => { - if (assignedUserRoles != null) 'assignedUserRoles': assignedUserRoles!, - if (displayName != null) 'displayName': displayName!, - if (email != null) 'email': email!, - if (name != null) 'name': name!, - if (userId != null) 'userId': userId!, - }; -} - -/// User rewarded content targeting option details. -/// -/// This will be populated in the user_rewarded_content_details field when -/// targeting_type is `TARGETING_TYPE_USER_REWARDED_CONTENT`. -typedef UserRewardedContentAssignedTargetingOptionDetails - = $UserRewardedContentAssignedTargetingOptionDetails; - -/// Represents a targetable user rewarded content status for video ads only. -/// -/// This will be populated in the user_rewarded_content_details field when -/// targeting_type is `TARGETING_TYPE_USER_REWARDED_CONTENT`. -typedef UserRewardedContentTargetingOptionDetails - = $UserRewardedContentTargetingOptionDetails; - -/// Video player size targeting option details. -/// -/// This will be populated in the video_player_size_details field when -/// targeting_type is `TARGETING_TYPE_VIDEO_PLAYER_SIZE`. Explicitly targeting -/// all options is not supported. Remove all video player size targeting options -/// to achieve this effect. -class VideoPlayerSizeAssignedTargetingOptionDetails { - /// The targeting_option_id field when targeting_type is - /// `TARGETING_TYPE_VIDEO_PLAYER_SIZE`. - /// - /// Required. - core.String? targetingOptionId; - - /// The video player size. - /// - /// Required. - /// Possible string values are: - /// - "VIDEO_PLAYER_SIZE_UNSPECIFIED" : Video player size is not specified in - /// this version. This enum is a place holder for a default value and does not - /// represent a real video player size. - /// - "VIDEO_PLAYER_SIZE_SMALL" : The dimensions of the video player are less - /// than 400×300 (desktop), or up to 20% of screen covered (mobile). - /// - "VIDEO_PLAYER_SIZE_LARGE" : The dimensions of the video player are - /// between 400x300 and 1280x720 pixels (desktop), or 20% to 90% of the screen - /// covered (mobile). - /// - "VIDEO_PLAYER_SIZE_HD" : The dimensions of the video player are 1280×720 - /// or greater (desktop), or over 90% of the screen covered (mobile). - /// - "VIDEO_PLAYER_SIZE_UNKNOWN" : The dimensions of the video player are - /// unknown. - core.String? videoPlayerSize; - - VideoPlayerSizeAssignedTargetingOptionDetails({ - this.targetingOptionId, - this.videoPlayerSize, - }); - - VideoPlayerSizeAssignedTargetingOptionDetails.fromJson(core.Map json_) - : this( - targetingOptionId: json_.containsKey('targetingOptionId') - ? json_['targetingOptionId'] as core.String - : null, - videoPlayerSize: json_.containsKey('videoPlayerSize') - ? json_['videoPlayerSize'] as core.String - : null, - ); - - core.Map toJson() => { - if (targetingOptionId != null) 'targetingOptionId': targetingOptionId!, - if (videoPlayerSize != null) 'videoPlayerSize': videoPlayerSize!, - }; -} - -/// Represents a targetable video player size. -/// -/// This will be populated in the video_player_size_details field when -/// targeting_type is `TARGETING_TYPE_VIDEO_PLAYER_SIZE`. -typedef VideoPlayerSizeTargetingOptionDetails - = $VideoPlayerSizeTargetingOptionDetails; - -/// Assigned viewability targeting option details. -/// -/// This will be populated in the viewability_details field of an -/// AssignedTargetingOption when targeting_type is `TARGETING_TYPE_VIEWABILITY`. -class ViewabilityAssignedTargetingOptionDetails { - /// The targeting_option_id of a TargetingOption of type - /// `TARGETING_TYPE_VIEWABILITY` (e.g., "509010" for targeting the - /// `VIEWABILITY_10_PERCENT_OR_MORE` option). - /// - /// Required. - core.String? targetingOptionId; - - /// The predicted viewability percentage. - /// - /// Required. - /// Possible string values are: - /// - "VIEWABILITY_UNSPECIFIED" : Default value when viewability is not - /// specified in this version. This enum is a placeholder for default value - /// and does not represent a real viewability option. - /// - "VIEWABILITY_10_PERCENT_OR_MORE" : Bid only on impressions that are at - /// least 10% likely to be viewable. - /// - "VIEWABILITY_20_PERCENT_OR_MORE" : Bid only on impressions that are at - /// least 20% likely to be viewable. - /// - "VIEWABILITY_30_PERCENT_OR_MORE" : Bid only on impressions that are at - /// least 30% likely to be viewable. - /// - "VIEWABILITY_40_PERCENT_OR_MORE" : Bid only on impressions that are at - /// least 40% likely to be viewable. - /// - "VIEWABILITY_50_PERCENT_OR_MORE" : Bid only on impressions that are at - /// least 50% likely to be viewable. - /// - "VIEWABILITY_60_PERCENT_OR_MORE" : Bid only on impressions that are at - /// least 60% likely to be viewable. - /// - "VIEWABILITY_70_PERCENT_OR_MORE" : Bid only on impressions that are at - /// least 70% likely to be viewable. - /// - "VIEWABILITY_80_PERCENT_OR_MORE" : Bid only on impressions that are at - /// least 80% likely to be viewable. - /// - "VIEWABILITY_90_PERCENT_OR_MORE" : Bid only on impressions that are at - /// least 90% likely to be viewable. - core.String? viewability; - - ViewabilityAssignedTargetingOptionDetails({ - this.targetingOptionId, - this.viewability, - }); - - ViewabilityAssignedTargetingOptionDetails.fromJson(core.Map json_) - : this( - targetingOptionId: json_.containsKey('targetingOptionId') - ? json_['targetingOptionId'] as core.String - : null, - viewability: json_.containsKey('viewability') - ? json_['viewability'] as core.String - : null, - ); - - core.Map toJson() => { - if (targetingOptionId != null) 'targetingOptionId': targetingOptionId!, - if (viewability != null) 'viewability': viewability!, - }; -} - -/// Represents a targetable viewability. -/// -/// This will be populated in the viewability_details field of a TargetingOption -/// when targeting_type is `TARGETING_TYPE_VIEWABILITY`. -typedef ViewabilityTargetingOptionDetails = $ViewabilityTargetingOptionDetails; diff --git a/generated/googleapis/lib/displayvideo/v2.dart b/generated/googleapis/lib/displayvideo/v2.dart index db3ac2af0..405473741 100644 --- a/generated/googleapis/lib/displayvideo/v2.dart +++ b/generated/googleapis/lib/displayvideo/v2.dart @@ -52,6 +52,7 @@ /// - [CustomListsResource] /// - [FirstAndThirdPartyAudiencesResource] /// - [FloodlightGroupsResource] +/// - [FloodlightGroupsFloodlightActivitiesResource] /// - [GoogleAudiencesResource] /// - [GuaranteedOrdersResource] /// - [InventorySourceGroupsResource] @@ -231,8 +232,11 @@ class AdvertisersResource { /// Creates a new advertiser. /// - /// Returns the newly created advertiser if successful. This method can take - /// up to 180 seconds to complete. + /// Returns the newly created advertiser if successful. **This method + /// regularly experiences high latency.** We recommend \[increasing your + /// default + /// timeout\](/display-video/api/guides/best-practices/timeouts#client_library_timeout) + /// to avoid errors. /// /// [request] - The metadata request object. /// @@ -720,7 +724,10 @@ class AdvertisersCampaignsResource { /// /// A deleted campaign cannot be recovered. The campaign should be archived /// first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, to be able to - /// delete it. + /// delete it. **This method regularly experiences high latency.** We + /// recommend \[increasing your default + /// timeout\](/display-video/api/guides/best-practices/timeouts#client_library_timeout) + /// to avoid errors. /// /// Request parameters: /// @@ -1921,7 +1928,10 @@ class AdvertisersChannelsSitesResource { /// Replaces all of the sites under a single channel. /// /// The operation will replace the sites under a channel with the sites - /// provided in ReplaceSitesRequest.new_sites. + /// provided in ReplaceSitesRequest.new_sites. **This method regularly + /// experiences high latency.** We recommend \[increasing your default + /// timeout\](/display-video/api/guides/best-practices/timeouts#client_library_timeout) + /// to avoid errors. /// /// [request] - The metadata request object. /// @@ -1979,7 +1989,9 @@ class AdvertisersCreativesResource { /// Creates a new creative. /// - /// Returns the newly created creative if successful. + /// Returns the newly created creative if successful. A \["Standard" user + /// role\](//support.google.com/displayvideo/answer/2723011) or greater for + /// the parent advertiser or partner is required to make this request. /// /// [request] - The metadata request object. /// @@ -2025,7 +2037,9 @@ class AdvertisersCreativesResource { /// /// Returns error code `NOT_FOUND` if the creative does not exist. The /// creative should be archived first, i.e. set entity_status to - /// `ENTITY_STATUS_ARCHIVED`, before it can be deleted. + /// `ENTITY_STATUS_ARCHIVED`, before it can be deleted. A \["Standard" user + /// role\](//support.google.com/displayvideo/answer/2723011) or greater for + /// the parent advertiser or partner is required to make this request. /// /// Request parameters: /// @@ -2212,7 +2226,9 @@ class AdvertisersCreativesResource { /// Updates an existing creative. /// - /// Returns the updated creative if successful. + /// Returns the updated creative if successful. A \["Standard" user + /// role\](//support.google.com/displayvideo/answer/2723011) or greater for + /// the parent advertiser or partner is required to make this request. /// /// [request] - The metadata request object. /// @@ -3595,7 +3611,8 @@ class AdvertisersLineItemsResource { /// BulkEditAssignedTargetingOptionsRequest.create_requests. Requests to this /// endpoint cannot be made concurrently with the following requests updating /// the same line item: * lineItems.bulkUpdate * lineItems.patch * - /// assignedTargetingOptions.create * assignedTargetingOptions.delete + /// assignedTargetingOptions.create * assignedTargetingOptions.delete YouTube + /// & Partners line items cannot be created or updated using the API. /// /// [request] - The metadata request object. /// @@ -3731,7 +3748,8 @@ class AdvertisersLineItemsResource { /// Requests to this endpoint cannot be made concurrently with the following /// requests updating the same line item: * BulkEditAssignedTargetingOptions * /// UpdateLineItem * assignedTargetingOptions.create * - /// assignedTargetingOptions.delete + /// assignedTargetingOptions.delete YouTube & Partners line items cannot be + /// created or updated using the API. /// /// [request] - The metadata request object. /// @@ -3777,7 +3795,8 @@ class AdvertisersLineItemsResource { /// Creates a new line item. /// - /// Returns the newly created line item if successful. + /// Returns the newly created line item if successful. YouTube & Partners line + /// items cannot be created or updated using the API. /// /// [request] - The metadata request object. /// @@ -3823,7 +3842,8 @@ class AdvertisersLineItemsResource { /// /// Returns error code `NOT_FOUND` if the line item does not exist. The line /// item should be archived first, i.e. set entity_status to - /// `ENTITY_STATUS_ARCHIVED`, to be able to delete it. + /// `ENTITY_STATUS_ARCHIVED`, to be able to delete it. YouTube & Partners line + /// items cannot be created or updated using the API. /// /// Request parameters: /// @@ -3867,7 +3887,12 @@ class AdvertisersLineItemsResource { /// Duplicates a line item. /// - /// Returns the ID of the created line item if successful. + /// Returns the ID of the created line item if successful. YouTube & Partners + /// line items cannot be created or updated using the API. **This method + /// regularly experiences high latency.** We recommend \[increasing your + /// default + /// timeout\](/display-video/api/guides/best-practices/timeouts#client_library_timeout) + /// to avoid errors. /// /// [request] - The metadata request object. /// @@ -3923,7 +3948,8 @@ class AdvertisersLineItemsResource { /// Returns the newly created line item if successful. There are default /// values based on the three fields: * The insertion order's /// insertion_order_type * The insertion order's automation_type * The given - /// line_item_type + /// line_item_type YouTube & Partners line items cannot be created or updated + /// using the API. /// /// [request] - The metadata request object. /// @@ -4102,7 +4128,12 @@ class AdvertisersLineItemsResource { /// Returns the updated line item if successful. Requests to this endpoint /// cannot be made concurrently with the following requests updating the same /// line item: * BulkEditAssignedTargetingOptions * BulkUpdateLineItems * - /// assignedTargetingOptions.create * assignedTargetingOptions.delete + /// assignedTargetingOptions.create * assignedTargetingOptions.delete YouTube + /// & Partners line items cannot be created or updated using the API. **This + /// method regularly experiences high latency.** We recommend \[increasing + /// your default + /// timeout\](/display-video/api/guides/best-practices/timeouts#client_library_timeout) + /// to avoid errors. /// /// [request] - The metadata request object. /// @@ -4181,7 +4212,8 @@ class AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsResource { /// endpoint cannot be made concurrently with the following requests updating /// the same line item: * lineItems.bulkEditAssignedTargetingOptions * /// lineItems.bulkUpdate * lineItems.patch * - /// DeleteLineItemAssignedTargetingOption + /// DeleteLineItemAssignedTargetingOption YouTube & Partners line items cannot + /// be created or updated using the API. /// /// [request] - The metadata request object. /// @@ -4378,7 +4410,8 @@ class AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsResource { /// Requests to this endpoint cannot be made concurrently with the following /// requests updating the same line item: * /// lineItems.bulkEditAssignedTargetingOptions * lineItems.bulkUpdate * - /// lineItems.patch * CreateLineItemAssignedTargetingOption + /// lineItems.patch * CreateLineItemAssignedTargetingOption YouTube & Partners + /// line items cannot be created or updated using the API. /// /// Request parameters: /// @@ -8816,6 +8849,9 @@ class FirstAndThirdPartyAudiencesResource { class FloodlightGroupsResource { final commons.ApiRequester _requester; + FloodlightGroupsFloodlightActivitiesResource get floodlightActivities => + FloodlightGroupsFloodlightActivitiesResource(_requester); + FloodlightGroupsResource(commons.ApiRequester client) : _requester = client; /// Gets a Floodlight group. @@ -8914,6 +8950,128 @@ class FloodlightGroupsResource { } } +class FloodlightGroupsFloodlightActivitiesResource { + final commons.ApiRequester _requester; + + FloodlightGroupsFloodlightActivitiesResource(commons.ApiRequester client) + : _requester = client; + + /// Gets a Floodlight activity. + /// + /// Request parameters: + /// + /// [floodlightGroupId] - Required. The ID of the parent Floodlight group to + /// which the requested Floodlight activity belongs. + /// Value must have pattern `^\[^/\]+$`. + /// + /// [floodlightActivityId] - Required. The ID of the Floodlight activity to + /// fetch. + /// Value must have pattern `^\[^/\]+$`. + /// + /// [partnerId] - Required. The ID of the partner through which the Floodlight + /// activity is being accessed. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [FloodlightActivity]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String floodlightGroupId, + core.String floodlightActivityId, { + core.String? partnerId, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (partnerId != null) 'partnerId': [partnerId], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v2/floodlightGroups/' + + core.Uri.encodeFull('$floodlightGroupId') + + '/floodlightActivities/' + + core.Uri.encodeFull('$floodlightActivityId'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return FloodlightActivity.fromJson( + response_ as core.Map); + } + + /// Lists Floodlight activities in a Floodlight group. + /// + /// Request parameters: + /// + /// [floodlightGroupId] - Required. The ID of the parent Floodlight group to + /// which the requested Floodlight activities belong. + /// Value must have pattern `^\[^/\]+$`. + /// + /// [orderBy] - Optional. Field by which to sort the list. Acceptable values + /// are: * `displayName` (default) * `floodlightActivityId` The default + /// sorting order is ascending. To specify descending order for a field, a + /// suffix "desc" should be added to the field name. Example: `displayName + /// desc`. + /// + /// [pageSize] - Optional. Requested page size. Must be between `1` and `100`. + /// If unspecified will default to `100`. Returns error code + /// `INVALID_ARGUMENT` if an invalid value is specified. + /// + /// [pageToken] - Optional. A token identifying a page of results the server + /// should return. Typically, this is the value of next_page_token returned + /// from the previous call to `ListFloodlightActivities` method. If not + /// specified, the first page of results will be returned. + /// + /// [partnerId] - Required. The ID of the partner through which the Floodlight + /// activities are being accessed. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [ListFloodlightActivitiesResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future list( + core.String floodlightGroupId, { + core.String? orderBy, + core.int? pageSize, + core.String? pageToken, + core.String? partnerId, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (orderBy != null) 'orderBy': [orderBy], + if (pageSize != null) 'pageSize': ['${pageSize}'], + if (pageToken != null) 'pageToken': [pageToken], + if (partnerId != null) 'partnerId': [partnerId], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v2/floodlightGroups/' + + core.Uri.encodeFull('$floodlightGroupId') + + '/floodlightActivities'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return ListFloodlightActivitiesResponse.fromJson( + response_ as core.Map); + } +} + class GoogleAudiencesResource { final commons.ApiRequester _requester; @@ -10916,7 +11074,10 @@ class PartnersChannelsSitesResource { /// Replaces all of the sites under a single channel. /// /// The operation will replace the sites under a channel with the sites - /// provided in ReplaceSitesRequest.new_sites. + /// provided in ReplaceSitesRequest.new_sites. **This method regularly + /// experiences high latency.** We recommend \[increasing your default + /// timeout\](/display-video/api/guides/best-practices/timeouts#client_library_timeout) + /// to avoid errors. /// /// [request] - The metadata request object. /// @@ -12653,7 +12814,7 @@ class Advertiser { /// Billing related settings of the advertiser. /// - /// Required. + /// Optional. Required. AdvertiserBillingConfig? billingConfig; /// Creative related settings of the advertiser. @@ -15884,7 +16045,10 @@ typedef ContactInfo = $ContactInfo; class ContactInfoList { /// Input only. /// - /// User consent status. + /// The consent setting for the users in contact_infos. Leaving this field + /// unset indicates that consent is not specified. If ad_user_data or + /// ad_personalization fields are set to `CONSENT_STATUS_DENIED`, the request + /// will return an error. Consent? consent; /// A list of ContactInfo objects defining Customer Match audience members. @@ -17761,10 +17925,22 @@ class EditCustomerMatchMembersRequest { /// Required. core.String? advertiserId; + /// Input only. + /// + /// A list of contact information to define the members to be removed. + ContactInfoList? removedContactInfoList; + + /// Input only. + /// + /// A list of mobile device IDs to define the members to be removed. + MobileDeviceIdList? removedMobileDeviceIdList; + EditCustomerMatchMembersRequest({ this.addedContactInfoList, this.addedMobileDeviceIdList, this.advertiserId, + this.removedContactInfoList, + this.removedMobileDeviceIdList, }); EditCustomerMatchMembersRequest.fromJson(core.Map json_) @@ -17780,6 +17956,15 @@ class EditCustomerMatchMembersRequest { advertiserId: json_.containsKey('advertiserId') ? json_['advertiserId'] as core.String : null, + removedContactInfoList: json_.containsKey('removedContactInfoList') + ? ContactInfoList.fromJson(json_['removedContactInfoList'] + as core.Map) + : null, + removedMobileDeviceIdList: json_ + .containsKey('removedMobileDeviceIdList') + ? MobileDeviceIdList.fromJson(json_['removedMobileDeviceIdList'] + as core.Map) + : null, ); core.Map toJson() => { @@ -17788,6 +17973,10 @@ class EditCustomerMatchMembersRequest { if (addedMobileDeviceIdList != null) 'addedMobileDeviceIdList': addedMobileDeviceIdList!, if (advertiserId != null) 'advertiserId': advertiserId!, + if (removedContactInfoList != null) + 'removedContactInfoList': removedContactInfoList!, + if (removedMobileDeviceIdList != null) + 'removedMobileDeviceIdList': removedMobileDeviceIdList!, }; } @@ -18243,6 +18432,118 @@ typedef FirstAndThirdPartyAudienceTargetingSetting /// A strategy that uses a fixed bidding price. typedef FixedBidStrategy = $FixedBidStrategy; +/// A single Floodlight activity. +class FloodlightActivity { + /// IDs of the advertisers that have access to the parent Floodlight group. + /// + /// Only advertisers under the provided partner ID will be listed in this + /// field. + /// + /// Output only. + core.List? advertiserIds; + + /// The display name of the Floodlight activity. + /// + /// Required. + core.String? displayName; + + /// The unique ID of the Floodlight activity. + /// + /// Assigned by the system. + /// + /// Output only. + core.String? floodlightActivityId; + + /// The ID of the parent Floodlight group. + /// + /// Required. Immutable. + core.String? floodlightGroupId; + + /// The resource name of the Floodlight activity. + /// + /// Output only. + core.String? name; + + /// A list of configuration objects designating whether remarketing for this + /// Floodlight Activity is enabled and available for a specifc advertiser. + /// + /// If enabled, this Floodlight Activity generates a remarketing user list + /// that is able to be used in targeting under the advertiser. + /// + /// Output only. + core.List? remarketingConfigs; + + /// Whether the Floodlight activity is served. + /// + /// Optional. + /// Possible string values are: + /// - "FLOODLIGHT_ACTIVITY_SERVING_STATUS_UNSPECIFIED" : Type value is not + /// specified or is unknown in this version. + /// - "FLOODLIGHT_ACTIVITY_SERVING_STATUS_ENABLED" : Enabled. + /// - "FLOODLIGHT_ACTIVITY_SERVING_STATUS_DISABLED" : Disabled. + core.String? servingStatus; + + /// Whether tags are required to be compliant. + /// + /// Output only. + core.bool? sslRequired; + + FloodlightActivity({ + this.advertiserIds, + this.displayName, + this.floodlightActivityId, + this.floodlightGroupId, + this.name, + this.remarketingConfigs, + this.servingStatus, + this.sslRequired, + }); + + FloodlightActivity.fromJson(core.Map json_) + : this( + advertiserIds: json_.containsKey('advertiserIds') + ? (json_['advertiserIds'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + displayName: json_.containsKey('displayName') + ? json_['displayName'] as core.String + : null, + floodlightActivityId: json_.containsKey('floodlightActivityId') + ? json_['floodlightActivityId'] as core.String + : null, + floodlightGroupId: json_.containsKey('floodlightGroupId') + ? json_['floodlightGroupId'] as core.String + : null, + name: json_.containsKey('name') ? json_['name'] as core.String : null, + remarketingConfigs: json_.containsKey('remarketingConfigs') + ? (json_['remarketingConfigs'] as core.List) + .map((value) => RemarketingConfig.fromJson( + value as core.Map)) + .toList() + : null, + servingStatus: json_.containsKey('servingStatus') + ? json_['servingStatus'] as core.String + : null, + sslRequired: json_.containsKey('sslRequired') + ? json_['sslRequired'] as core.bool + : null, + ); + + core.Map toJson() => { + if (advertiserIds != null) 'advertiserIds': advertiserIds!, + if (displayName != null) 'displayName': displayName!, + if (floodlightActivityId != null) + 'floodlightActivityId': floodlightActivityId!, + if (floodlightGroupId != null) 'floodlightGroupId': floodlightGroupId!, + if (name != null) 'name': name!, + if (remarketingConfigs != null) + 'remarketingConfigs': remarketingConfigs!, + if (servingStatus != null) 'servingStatus': servingStatus!, + if (sslRequired != null) 'sslRequired': sslRequired!, + }; +} + /// A single Floodlight group. class FloodlightGroup { /// The Active View video viewability metric configuration for the Floodlight @@ -18660,6 +18961,12 @@ class GuaranteedOrder { /// - "EXCHANGE_CONNATIX" : Connatix. /// - "EXCHANGE_RESET_DIGITAL" : Reset Digital. /// - "EXCHANGE_HIVESTACK" : Hivestack. + /// - "EXCHANGE_APPLOVIN_GBID" : AppLovin MAX. + /// - "EXCHANGE_FYBER_GBID" : DT Fairbid. + /// - "EXCHANGE_UNITY_GBID" : Unity LevelPlay. + /// - "EXCHANGE_CHARTBOOST_GBID" : Chartboost Mediation. + /// - "EXCHANGE_ADMOST_GBID" : AdMost. + /// - "EXCHANGE_TOPON_GBID" : TopOn. core.String? exchange; /// The unique identifier of the guaranteed order. @@ -19414,6 +19721,12 @@ class InventorySource { /// - "EXCHANGE_CONNATIX" : Connatix. /// - "EXCHANGE_RESET_DIGITAL" : Reset Digital. /// - "EXCHANGE_HIVESTACK" : Hivestack. + /// - "EXCHANGE_APPLOVIN_GBID" : AppLovin MAX. + /// - "EXCHANGE_FYBER_GBID" : DT Fairbid. + /// - "EXCHANGE_UNITY_GBID" : Unity LevelPlay. + /// - "EXCHANGE_CHARTBOOST_GBID" : Chartboost Mediation. + /// - "EXCHANGE_ADMOST_GBID" : AdMost. + /// - "EXCHANGE_TOPON_GBID" : TopOn. core.String? exchange; /// The ID of the guaranteed order that this inventory source belongs to. @@ -20961,6 +21274,43 @@ class ListFirstAndThirdPartyAudiencesResponse { }; } +class ListFloodlightActivitiesResponse { + /// The list of Floodlight activities. + /// + /// This list will be absent if empty. + core.List? floodlightActivities; + + /// A token to retrieve the next page of results. + /// + /// Pass this value in the page_token field in the subsequent call to + /// `ListFloodlightActivities` method to retrieve the next page of results. + core.String? nextPageToken; + + ListFloodlightActivitiesResponse({ + this.floodlightActivities, + this.nextPageToken, + }); + + ListFloodlightActivitiesResponse.fromJson(core.Map json_) + : this( + floodlightActivities: json_.containsKey('floodlightActivities') + ? (json_['floodlightActivities'] as core.List) + .map((value) => FloodlightActivity.fromJson( + value as core.Map)) + .toList() + : null, + nextPageToken: json_.containsKey('nextPageToken') + ? json_['nextPageToken'] as core.String + : null, + ); + + core.Map toJson() => { + if (floodlightActivities != null) + 'floodlightActivities': floodlightActivities!, + if (nextPageToken != null) 'nextPageToken': nextPageToken!, + }; +} + class ListGoogleAudiencesResponse { /// The list of Google audiences. /// @@ -21759,7 +22109,100 @@ typedef LookupInvoiceCurrencyResponse = $LookupInvoiceCurrencyResponse; /// deprecation /// announcement\](/display-video/api/deprecations#features.manual_triggers) for /// more information. -typedef ManualTrigger = $ManualTrigger; +class ManualTrigger { + /// The maximum duration of each activation in minutes. + /// + /// Must be between 1 and 360 inclusive. After this duration, the trigger will + /// be automatically deactivated. + /// + /// Required. + core.String? activationDurationMinutes; + + /// The unique ID of the advertiser that the manual trigger belongs to. + /// + /// Required. Immutable. + core.String? advertiserId; + + /// The display name of the manual trigger. + /// + /// Must be UTF-8 encoded with a maximum size of 240 bytes. + /// + /// Required. + core.String? displayName; + + /// The timestamp of the trigger's latest activation. + /// + /// Output only. + core.String? latestActivationTime; + + /// The resource name of the manual trigger. + /// + /// Output only. + core.String? name; + + /// The state of the manual trigger. + /// + /// Will be set to the `INACTIVE` state upon creation. + /// + /// Output only. + /// Possible string values are: + /// - "STATE_UNSPECIFIED" : Default value when state is not specified or is + /// unknown in this version. + /// - "INACTIVE" : The trigger is currently inactive and ready to be + /// activated. + /// - "ACTIVE" : The trigger is currently active (activated). + core.String? state; + + /// The unique ID of the manual trigger. + /// + /// Output only. + core.String? triggerId; + + ManualTrigger({ + this.activationDurationMinutes, + this.advertiserId, + this.displayName, + this.latestActivationTime, + this.name, + this.state, + this.triggerId, + }); + + ManualTrigger.fromJson(core.Map json_) + : this( + activationDurationMinutes: + json_.containsKey('activationDurationMinutes') + ? json_['activationDurationMinutes'] as core.String + : null, + advertiserId: json_.containsKey('advertiserId') + ? json_['advertiserId'] as core.String + : null, + displayName: json_.containsKey('displayName') + ? json_['displayName'] as core.String + : null, + latestActivationTime: json_.containsKey('latestActivationTime') + ? json_['latestActivationTime'] as core.String + : null, + name: json_.containsKey('name') ? json_['name'] as core.String : null, + state: + json_.containsKey('state') ? json_['state'] as core.String : null, + triggerId: json_.containsKey('triggerId') + ? json_['triggerId'] as core.String + : null, + ); + + core.Map toJson() => { + if (activationDurationMinutes != null) + 'activationDurationMinutes': activationDurationMinutes!, + if (advertiserId != null) 'advertiserId': advertiserId!, + if (displayName != null) 'displayName': displayName!, + if (latestActivationTime != null) + 'latestActivationTime': latestActivationTime!, + if (name != null) 'name': name!, + if (state != null) 'state': state!, + if (triggerId != null) 'triggerId': triggerId!, + }; +} /// Details for a Masthead Ad. class MastheadAd { @@ -21898,7 +22341,10 @@ typedef MobileApp = $MobileApp; class MobileDeviceIdList { /// Input only. /// - /// User consent status. + /// The consent setting for the users in mobile_device_ids. Leaving this field + /// unset indicates that consent is not specified. If ad_user_data or + /// ad_personalization fields are set to `CONSENT_STATUS_DENIED`, the request + /// will return an error. Consent? consent; /// A list of mobile device IDs defining Customer Match audience members. @@ -22660,6 +23106,10 @@ class RateDetails { typedef RegionalLocationListAssignedTargetingOptionDetails = $RegionalLocationListAssignedTargetingOptionDetails; +/// Settings that control the whether remarketing is enabled for the given +/// identified advertiser. +typedef RemarketingConfig = $RemarketingConfig; + /// Request message for NegativeKeywordService.ReplaceNegativeKeywords. class ReplaceNegativeKeywordsRequest { /// The negative keywords that will replace the existing keywords in the @@ -23051,7 +23501,67 @@ typedef TargetFrequency = $TargetFrequency; /// Settings that control the \[optimized /// targeting\](//support.google.com/displayvideo/answer/12060859) settings of /// the line item. -typedef TargetingExpansionConfig = $TargetingExpansionConfig; +class TargetingExpansionConfig { + /// Whether to exclude first-party audiences from use in targeting expansion. + /// + /// This field was deprecated with the launch of \[optimized + /// targeting\](//support.google.com/displayvideo/answer/12060859). This field + /// will be set to `false`. If this field is set to `true` when deprecated, + /// all positive first-party audience targeting assigned to this line item + /// will be replaced with negative targeting of the same first-party audiences + /// to ensure the continued exclusion of those audiences. + @core.Deprecated( + 'Not supported. Member documentation may have more information.', + ) + core.bool? excludeFirstPartyAudience; + + /// Whether optimized targeting is turned on. + /// + /// This field supports the following values: * `NO_EXPANSION`: optimized + /// targeting is turned off * `LEAST_EXPANSION`: optimized targeting is turned + /// on If this field is set to any other value, it will automatically be set + /// to `LEAST_EXPANSION`. `NO_EXPANSION` will be the default value for the + /// field and will be automatically assigned if you do not set the field. + /// + /// Required. + /// Possible string values are: + /// - "TARGETING_EXPANSION_LEVEL_UNSPECIFIED" : The optimized targeting + /// setting is not specified or is unknown in this version. + /// - "NO_EXPANSION" : Optimized targeting is off. + /// - "LEAST_EXPANSION" : Optimized targeting is on. + /// - "SOME_EXPANSION" : If used, will automatically be set to + /// `LEAST_EXPANSION`. + /// - "BALANCED_EXPANSION" : If used, will automatically be set to + /// `LEAST_EXPANSION`. + /// - "MORE_EXPANSION" : If used, will automatically be set to + /// `LEAST_EXPANSION`. + /// - "MOST_EXPANSION" : If used, will automatically be set to + /// `LEAST_EXPANSION`. + core.String? targetingExpansionLevel; + + TargetingExpansionConfig({ + this.excludeFirstPartyAudience, + this.targetingExpansionLevel, + }); + + TargetingExpansionConfig.fromJson(core.Map json_) + : this( + excludeFirstPartyAudience: + json_.containsKey('excludeFirstPartyAudience') + ? json_['excludeFirstPartyAudience'] as core.bool + : null, + targetingExpansionLevel: json_.containsKey('targetingExpansionLevel') + ? json_['targetingExpansionLevel'] as core.String + : null, + ); + + core.Map toJson() => { + if (excludeFirstPartyAudience != null) + 'excludeFirstPartyAudience': excludeFirstPartyAudience!, + if (targetingExpansionLevel != null) + 'targetingExpansionLevel': targetingExpansionLevel!, + }; +} /// Represents a single targeting option, which is a targetable concept in /// DV360. @@ -23740,6 +24250,11 @@ class User { /// Required. Immutable. core.String? email; + /// The timestamp when the user last logged in DV360 UI. + /// + /// Output only. + core.String? lastLoginTime; + /// The resource name of the user. /// /// Output only. @@ -23756,6 +24271,7 @@ class User { this.assignedUserRoles, this.displayName, this.email, + this.lastLoginTime, this.name, this.userId, }); @@ -23773,6 +24289,9 @@ class User { : null, email: json_.containsKey('email') ? json_['email'] as core.String : null, + lastLoginTime: json_.containsKey('lastLoginTime') + ? json_['lastLoginTime'] as core.String + : null, name: json_.containsKey('name') ? json_['name'] as core.String : null, userId: json_.containsKey('userId') ? json_['userId'] as core.String @@ -23783,6 +24302,7 @@ class User { if (assignedUserRoles != null) 'assignedUserRoles': assignedUserRoles!, if (displayName != null) 'displayName': displayName!, if (email != null) 'email': email!, + if (lastLoginTime != null) 'lastLoginTime': lastLoginTime!, if (name != null) 'name': name!, if (userId != null) 'userId': userId!, }; @@ -24428,6 +24948,11 @@ typedef YoutubeAndPartnersBiddingStrategy = $YoutubeAndPartnersBiddingStrategy; /// Settings that control what YouTube related inventories the YouTube and /// Partners line item will target. class YoutubeAndPartnersInventorySourceConfig { + /// Whether to target inventory in video apps available with Google TV. + /// + /// Optional. + core.bool? includeGoogleTv; + /// Whether to target inventory on the YouTube search results page. core.bool? includeYoutubeSearch; @@ -24440,6 +24965,7 @@ class YoutubeAndPartnersInventorySourceConfig { core.bool? includeYoutubeVideos; YoutubeAndPartnersInventorySourceConfig({ + this.includeGoogleTv, this.includeYoutubeSearch, this.includeYoutubeVideoPartners, this.includeYoutubeVideos, @@ -24447,6 +24973,9 @@ class YoutubeAndPartnersInventorySourceConfig { YoutubeAndPartnersInventorySourceConfig.fromJson(core.Map json_) : this( + includeGoogleTv: json_.containsKey('includeGoogleTv') + ? json_['includeGoogleTv'] as core.bool + : null, includeYoutubeSearch: json_.containsKey('includeYoutubeSearch') ? json_['includeYoutubeSearch'] as core.bool : null, @@ -24460,6 +24989,7 @@ class YoutubeAndPartnersInventorySourceConfig { ); core.Map toJson() => { + if (includeGoogleTv != null) 'includeGoogleTv': includeGoogleTv!, if (includeYoutubeSearch != null) 'includeYoutubeSearch': includeYoutubeSearch!, if (includeYoutubeVideoPartners != null) @@ -24518,17 +25048,25 @@ class YoutubeAndPartnersSettings { YoutubeAndPartnersInventorySourceConfig? inventorySourceSettings; /// The ID of the form to generate leads. + /// + /// Optional. core.String? leadFormId; /// The ID of the merchant which is linked to the line item for product feed. + /// + /// Optional. core.String? linkedMerchantId; /// The IDs of the videos appear below the primary video ad when the ad is /// playing in the YouTube app on mobile devices. + /// + /// Optional. core.List? relatedVideoIds; /// The average number of times you want ads from this line item to show to /// the same person over a certain period of time. + /// + /// Optional. TargetFrequency? targetFrequency; /// The third-party measurement settings of the line item. @@ -24538,6 +25076,8 @@ class YoutubeAndPartnersSettings { thirdPartyMeasurementSettings; /// The settings related to VideoAdSequence. + /// + /// Optional. VideoAdSequenceSettings? videoAdSequenceSettings; /// The view frequency cap settings of the line item. diff --git a/generated/googleapis/lib/displayvideo/v3.dart b/generated/googleapis/lib/displayvideo/v3.dart index d252e538b..0f451b4cd 100644 --- a/generated/googleapis/lib/displayvideo/v3.dart +++ b/generated/googleapis/lib/displayvideo/v3.dart @@ -52,6 +52,7 @@ /// - [CustomListsResource] /// - [FirstAndThirdPartyAudiencesResource] /// - [FloodlightGroupsResource] +/// - [FloodlightGroupsFloodlightActivitiesResource] /// - [GoogleAudiencesResource] /// - [GuaranteedOrdersResource] /// - [InventorySourceGroupsResource] @@ -229,8 +230,11 @@ class AdvertisersResource { /// Creates a new advertiser. /// - /// Returns the newly created advertiser if successful. This method can take - /// up to 180 seconds to complete. + /// Returns the newly created advertiser if successful. **This method + /// regularly experiences high latency.** We recommend \[increasing your + /// default + /// timeout\](/display-video/api/guides/best-practices/timeouts#client_library_timeout) + /// to avoid errors. /// /// [request] - The metadata request object. /// @@ -1459,7 +1463,10 @@ class AdvertisersCampaignsResource { /// /// A deleted campaign cannot be recovered. The campaign should be archived /// first, i.e. set entity_status to `ENTITY_STATUS_ARCHIVED`, to be able to - /// delete it. + /// delete it. **This method regularly experiences high latency.** We + /// recommend \[increasing your default + /// timeout\](/display-video/api/guides/best-practices/timeouts#client_library_timeout) + /// to avoid errors. /// /// Request parameters: /// @@ -2660,7 +2667,10 @@ class AdvertisersChannelsSitesResource { /// Replaces all of the sites under a single channel. /// /// The operation will replace the sites under a channel with the sites - /// provided in ReplaceSitesRequest.new_sites. + /// provided in ReplaceSitesRequest.new_sites. **This method regularly + /// experiences high latency.** We recommend \[increasing your default + /// timeout\](/display-video/api/guides/best-practices/timeouts#client_library_timeout) + /// to avoid errors. /// /// [request] - The metadata request object. /// @@ -2718,7 +2728,9 @@ class AdvertisersCreativesResource { /// Creates a new creative. /// - /// Returns the newly created creative if successful. + /// Returns the newly created creative if successful. A \["Standard" user + /// role\](//support.google.com/displayvideo/answer/2723011) or greater for + /// the parent advertiser or partner is required to make this request. /// /// [request] - The metadata request object. /// @@ -2764,7 +2776,9 @@ class AdvertisersCreativesResource { /// /// Returns error code `NOT_FOUND` if the creative does not exist. The /// creative should be archived first, i.e. set entity_status to - /// `ENTITY_STATUS_ARCHIVED`, before it can be deleted. + /// `ENTITY_STATUS_ARCHIVED`, before it can be deleted. A \["Standard" user + /// role\](//support.google.com/displayvideo/answer/2723011) or greater for + /// the parent advertiser or partner is required to make this request. /// /// Request parameters: /// @@ -2951,7 +2965,9 @@ class AdvertisersCreativesResource { /// Updates an existing creative. /// - /// Returns the updated creative if successful. + /// Returns the updated creative if successful. A \["Standard" user + /// role\](//support.google.com/displayvideo/answer/2723011) or greater for + /// the parent advertiser or partner is required to make this request. /// /// [request] - The metadata request object. /// @@ -4334,7 +4350,8 @@ class AdvertisersLineItemsResource { /// BulkEditAssignedTargetingOptionsRequest.create_requests. Requests to this /// endpoint cannot be made concurrently with the following requests updating /// the same line item: * lineItems.bulkUpdate * lineItems.patch * - /// assignedTargetingOptions.create * assignedTargetingOptions.delete + /// assignedTargetingOptions.create * assignedTargetingOptions.delete YouTube + /// & Partners line items cannot be created or updated using the API. /// /// [request] - The metadata request object. /// @@ -4470,7 +4487,8 @@ class AdvertisersLineItemsResource { /// Requests to this endpoint cannot be made concurrently with the following /// requests updating the same line item: * BulkEditAssignedTargetingOptions * /// UpdateLineItem * assignedTargetingOptions.create * - /// assignedTargetingOptions.delete + /// assignedTargetingOptions.delete YouTube & Partners line items cannot be + /// created or updated using the API. /// /// [request] - The metadata request object. /// @@ -4516,7 +4534,8 @@ class AdvertisersLineItemsResource { /// Creates a new line item. /// - /// Returns the newly created line item if successful. + /// Returns the newly created line item if successful. YouTube & Partners line + /// items cannot be created or updated using the API. /// /// [request] - The metadata request object. /// @@ -4562,7 +4581,8 @@ class AdvertisersLineItemsResource { /// /// Returns error code `NOT_FOUND` if the line item does not exist. The line /// item should be archived first, i.e. set entity_status to - /// `ENTITY_STATUS_ARCHIVED`, to be able to delete it. + /// `ENTITY_STATUS_ARCHIVED`, to be able to delete it. YouTube & Partners line + /// items cannot be created or updated using the API. /// /// Request parameters: /// @@ -4606,7 +4626,12 @@ class AdvertisersLineItemsResource { /// Duplicates a line item. /// - /// Returns the ID of the created line item if successful. + /// Returns the ID of the created line item if successful. YouTube & Partners + /// line items cannot be created or updated using the API. **This method + /// regularly experiences high latency.** We recommend \[increasing your + /// default + /// timeout\](/display-video/api/guides/best-practices/timeouts#client_library_timeout) + /// to avoid errors. /// /// [request] - The metadata request object. /// @@ -4662,7 +4687,8 @@ class AdvertisersLineItemsResource { /// Returns the newly created line item if successful. There are default /// values based on the three fields: * The insertion order's /// insertion_order_type * The insertion order's automation_type * The given - /// line_item_type + /// line_item_type YouTube & Partners line items cannot be created or updated + /// using the API. /// /// [request] - The metadata request object. /// @@ -4841,7 +4867,12 @@ class AdvertisersLineItemsResource { /// Returns the updated line item if successful. Requests to this endpoint /// cannot be made concurrently with the following requests updating the same /// line item: * BulkEditAssignedTargetingOptions * BulkUpdateLineItems * - /// assignedTargetingOptions.create * assignedTargetingOptions.delete + /// assignedTargetingOptions.create * assignedTargetingOptions.delete YouTube + /// & Partners line items cannot be created or updated using the API. **This + /// method regularly experiences high latency.** We recommend \[increasing + /// your default + /// timeout\](/display-video/api/guides/best-practices/timeouts#client_library_timeout) + /// to avoid errors. /// /// [request] - The metadata request object. /// @@ -4920,7 +4951,8 @@ class AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsResource { /// endpoint cannot be made concurrently with the following requests updating /// the same line item: * lineItems.bulkEditAssignedTargetingOptions * /// lineItems.bulkUpdate * lineItems.patch * - /// DeleteLineItemAssignedTargetingOption + /// DeleteLineItemAssignedTargetingOption YouTube & Partners line items cannot + /// be created or updated using the API. /// /// [request] - The metadata request object. /// @@ -5117,7 +5149,8 @@ class AdvertisersLineItemsTargetingTypesAssignedTargetingOptionsResource { /// Requests to this endpoint cannot be made concurrently with the following /// requests updating the same line item: * /// lineItems.bulkEditAssignedTargetingOptions * lineItems.bulkUpdate * - /// lineItems.patch * CreateLineItemAssignedTargetingOption + /// lineItems.patch * CreateLineItemAssignedTargetingOption YouTube & Partners + /// line items cannot be created or updated using the API. /// /// Request parameters: /// @@ -8699,6 +8732,9 @@ class FirstAndThirdPartyAudiencesResource { class FloodlightGroupsResource { final commons.ApiRequester _requester; + FloodlightGroupsFloodlightActivitiesResource get floodlightActivities => + FloodlightGroupsFloodlightActivitiesResource(_requester); + FloodlightGroupsResource(commons.ApiRequester client) : _requester = client; /// Gets a Floodlight group. @@ -8797,6 +8833,128 @@ class FloodlightGroupsResource { } } +class FloodlightGroupsFloodlightActivitiesResource { + final commons.ApiRequester _requester; + + FloodlightGroupsFloodlightActivitiesResource(commons.ApiRequester client) + : _requester = client; + + /// Gets a Floodlight activity. + /// + /// Request parameters: + /// + /// [floodlightGroupId] - Required. The ID of the parent Floodlight group to + /// which the requested Floodlight activity belongs. + /// Value must have pattern `^\[^/\]+$`. + /// + /// [floodlightActivityId] - Required. The ID of the Floodlight activity to + /// fetch. + /// Value must have pattern `^\[^/\]+$`. + /// + /// [partnerId] - Required. The ID of the partner through which the Floodlight + /// activity is being accessed. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [FloodlightActivity]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String floodlightGroupId, + core.String floodlightActivityId, { + core.String? partnerId, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (partnerId != null) 'partnerId': [partnerId], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v3/floodlightGroups/' + + core.Uri.encodeFull('$floodlightGroupId') + + '/floodlightActivities/' + + core.Uri.encodeFull('$floodlightActivityId'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return FloodlightActivity.fromJson( + response_ as core.Map); + } + + /// Lists Floodlight activities in a Floodlight group. + /// + /// Request parameters: + /// + /// [floodlightGroupId] - Required. The ID of the parent Floodlight group to + /// which the requested Floodlight activities belong. + /// Value must have pattern `^\[^/\]+$`. + /// + /// [orderBy] - Optional. Field by which to sort the list. Acceptable values + /// are: * `displayName` (default) * `floodlightActivityId` The default + /// sorting order is ascending. To specify descending order for a field, a + /// suffix "desc" should be added to the field name. Example: `displayName + /// desc`. + /// + /// [pageSize] - Optional. Requested page size. Must be between `1` and `100`. + /// If unspecified will default to `100`. Returns error code + /// `INVALID_ARGUMENT` if an invalid value is specified. + /// + /// [pageToken] - Optional. A token identifying a page of results the server + /// should return. Typically, this is the value of next_page_token returned + /// from the previous call to `ListFloodlightActivities` method. If not + /// specified, the first page of results will be returned. + /// + /// [partnerId] - Required. The ID of the partner through which the Floodlight + /// activities are being accessed. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [ListFloodlightActivitiesResponse]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future list( + core.String floodlightGroupId, { + core.String? orderBy, + core.int? pageSize, + core.String? pageToken, + core.String? partnerId, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (orderBy != null) 'orderBy': [orderBy], + if (pageSize != null) 'pageSize': ['${pageSize}'], + if (pageToken != null) 'pageToken': [pageToken], + if (partnerId != null) 'partnerId': [partnerId], + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v3/floodlightGroups/' + + core.Uri.encodeFull('$floodlightGroupId') + + '/floodlightActivities'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return ListFloodlightActivitiesResponse.fromJson( + response_ as core.Map); + } +} + class GoogleAudiencesResource { final commons.ApiRequester _requester; @@ -10806,7 +10964,10 @@ class PartnersChannelsSitesResource { /// Replaces all of the sites under a single channel. /// /// The operation will replace the sites under a channel with the sites - /// provided in ReplaceSitesRequest.new_sites. + /// provided in ReplaceSitesRequest.new_sites. **This method regularly + /// experiences high latency.** We recommend \[increasing your default + /// timeout\](/display-video/api/guides/best-practices/timeouts#client_library_timeout) + /// to avoid errors. /// /// [request] - The metadata request object. /// @@ -12881,7 +13042,7 @@ class Advertiser { /// Billing related settings of the advertiser. /// - /// Required. + /// Optional. Required. AdvertiserBillingConfig? billingConfig; /// Creative related settings of the advertiser. @@ -16123,7 +16284,10 @@ typedef ContactInfo = $ContactInfo; class ContactInfoList { /// Input only. /// - /// User consent status. + /// The consent setting for the users in contact_infos. Leaving this field + /// unset indicates that consent is not specified. If ad_user_data or + /// ad_personalization fields are set to `CONSENT_STATUS_DENIED`, the request + /// will return an error. Consent? consent; /// A list of ContactInfo objects defining Customer Match audience members. @@ -18165,10 +18329,22 @@ class EditCustomerMatchMembersRequest { /// Required. core.String? advertiserId; + /// Input only. + /// + /// A list of contact information to define the members to be removed. + ContactInfoList? removedContactInfoList; + + /// Input only. + /// + /// A list of mobile device IDs to define the members to be removed. + MobileDeviceIdList? removedMobileDeviceIdList; + EditCustomerMatchMembersRequest({ this.addedContactInfoList, this.addedMobileDeviceIdList, this.advertiserId, + this.removedContactInfoList, + this.removedMobileDeviceIdList, }); EditCustomerMatchMembersRequest.fromJson(core.Map json_) @@ -18184,6 +18360,15 @@ class EditCustomerMatchMembersRequest { advertiserId: json_.containsKey('advertiserId') ? json_['advertiserId'] as core.String : null, + removedContactInfoList: json_.containsKey('removedContactInfoList') + ? ContactInfoList.fromJson(json_['removedContactInfoList'] + as core.Map) + : null, + removedMobileDeviceIdList: json_ + .containsKey('removedMobileDeviceIdList') + ? MobileDeviceIdList.fromJson(json_['removedMobileDeviceIdList'] + as core.Map) + : null, ); core.Map toJson() => { @@ -18192,6 +18377,10 @@ class EditCustomerMatchMembersRequest { if (addedMobileDeviceIdList != null) 'addedMobileDeviceIdList': addedMobileDeviceIdList!, if (advertiserId != null) 'advertiserId': advertiserId!, + if (removedContactInfoList != null) + 'removedContactInfoList': removedContactInfoList!, + if (removedMobileDeviceIdList != null) + 'removedMobileDeviceIdList': removedMobileDeviceIdList!, }; } @@ -18647,6 +18836,118 @@ typedef FirstAndThirdPartyAudienceTargetingSetting /// A strategy that uses a fixed bidding price. typedef FixedBidStrategy = $FixedBidStrategy; +/// A single Floodlight activity. +class FloodlightActivity { + /// IDs of the advertisers that have access to the parent Floodlight group. + /// + /// Only advertisers under the provided partner ID will be listed in this + /// field. + /// + /// Output only. + core.List? advertiserIds; + + /// The display name of the Floodlight activity. + /// + /// Required. + core.String? displayName; + + /// The unique ID of the Floodlight activity. + /// + /// Assigned by the system. + /// + /// Output only. + core.String? floodlightActivityId; + + /// The ID of the parent Floodlight group. + /// + /// Required. Immutable. + core.String? floodlightGroupId; + + /// The resource name of the Floodlight activity. + /// + /// Output only. + core.String? name; + + /// A list of configuration objects designating whether remarketing for this + /// Floodlight Activity is enabled and available for a specifc advertiser. + /// + /// If enabled, this Floodlight Activity generates a remarketing user list + /// that is able to be used in targeting under the advertiser. + /// + /// Output only. + core.List? remarketingConfigs; + + /// Whether the Floodlight activity is served. + /// + /// Optional. + /// Possible string values are: + /// - "FLOODLIGHT_ACTIVITY_SERVING_STATUS_UNSPECIFIED" : Type value is not + /// specified or is unknown in this version. + /// - "FLOODLIGHT_ACTIVITY_SERVING_STATUS_ENABLED" : Enabled. + /// - "FLOODLIGHT_ACTIVITY_SERVING_STATUS_DISABLED" : Disabled. + core.String? servingStatus; + + /// Whether tags are required to be compliant. + /// + /// Output only. + core.bool? sslRequired; + + FloodlightActivity({ + this.advertiserIds, + this.displayName, + this.floodlightActivityId, + this.floodlightGroupId, + this.name, + this.remarketingConfigs, + this.servingStatus, + this.sslRequired, + }); + + FloodlightActivity.fromJson(core.Map json_) + : this( + advertiserIds: json_.containsKey('advertiserIds') + ? (json_['advertiserIds'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + displayName: json_.containsKey('displayName') + ? json_['displayName'] as core.String + : null, + floodlightActivityId: json_.containsKey('floodlightActivityId') + ? json_['floodlightActivityId'] as core.String + : null, + floodlightGroupId: json_.containsKey('floodlightGroupId') + ? json_['floodlightGroupId'] as core.String + : null, + name: json_.containsKey('name') ? json_['name'] as core.String : null, + remarketingConfigs: json_.containsKey('remarketingConfigs') + ? (json_['remarketingConfigs'] as core.List) + .map((value) => RemarketingConfig.fromJson( + value as core.Map)) + .toList() + : null, + servingStatus: json_.containsKey('servingStatus') + ? json_['servingStatus'] as core.String + : null, + sslRequired: json_.containsKey('sslRequired') + ? json_['sslRequired'] as core.bool + : null, + ); + + core.Map toJson() => { + if (advertiserIds != null) 'advertiserIds': advertiserIds!, + if (displayName != null) 'displayName': displayName!, + if (floodlightActivityId != null) + 'floodlightActivityId': floodlightActivityId!, + if (floodlightGroupId != null) 'floodlightGroupId': floodlightGroupId!, + if (name != null) 'name': name!, + if (remarketingConfigs != null) + 'remarketingConfigs': remarketingConfigs!, + if (servingStatus != null) 'servingStatus': servingStatus!, + if (sslRequired != null) 'sslRequired': sslRequired!, + }; +} + /// A single Floodlight group. class FloodlightGroup { /// The Active View video viewability metric configuration for the Floodlight @@ -19064,6 +19365,12 @@ class GuaranteedOrder { /// - "EXCHANGE_CONNATIX" : Connatix. /// - "EXCHANGE_RESET_DIGITAL" : Reset Digital. /// - "EXCHANGE_HIVESTACK" : Hivestack. + /// - "EXCHANGE_APPLOVIN_GBID" : AppLovin MAX. + /// - "EXCHANGE_FYBER_GBID" : DT Fairbid. + /// - "EXCHANGE_UNITY_GBID" : Unity LevelPlay. + /// - "EXCHANGE_CHARTBOOST_GBID" : Chartboost Mediation. + /// - "EXCHANGE_ADMOST_GBID" : AdMost. + /// - "EXCHANGE_TOPON_GBID" : TopOn. core.String? exchange; /// The unique identifier of the guaranteed order. @@ -19803,6 +20110,12 @@ class InventorySource { /// - "EXCHANGE_CONNATIX" : Connatix. /// - "EXCHANGE_RESET_DIGITAL" : Reset Digital. /// - "EXCHANGE_HIVESTACK" : Hivestack. + /// - "EXCHANGE_APPLOVIN_GBID" : AppLovin MAX. + /// - "EXCHANGE_FYBER_GBID" : DT Fairbid. + /// - "EXCHANGE_UNITY_GBID" : Unity LevelPlay. + /// - "EXCHANGE_CHARTBOOST_GBID" : Chartboost Mediation. + /// - "EXCHANGE_ADMOST_GBID" : AdMost. + /// - "EXCHANGE_TOPON_GBID" : TopOn. core.String? exchange; /// The ID of the guaranteed order that this inventory source belongs to. @@ -21587,6 +21900,43 @@ class ListFirstAndThirdPartyAudiencesResponse { }; } +class ListFloodlightActivitiesResponse { + /// The list of Floodlight activities. + /// + /// This list will be absent if empty. + core.List? floodlightActivities; + + /// A token to retrieve the next page of results. + /// + /// Pass this value in the page_token field in the subsequent call to + /// `ListFloodlightActivities` method to retrieve the next page of results. + core.String? nextPageToken; + + ListFloodlightActivitiesResponse({ + this.floodlightActivities, + this.nextPageToken, + }); + + ListFloodlightActivitiesResponse.fromJson(core.Map json_) + : this( + floodlightActivities: json_.containsKey('floodlightActivities') + ? (json_['floodlightActivities'] as core.List) + .map((value) => FloodlightActivity.fromJson( + value as core.Map)) + .toList() + : null, + nextPageToken: json_.containsKey('nextPageToken') + ? json_['nextPageToken'] as core.String + : null, + ); + + core.Map toJson() => { + if (floodlightActivities != null) + 'floodlightActivities': floodlightActivities!, + if (nextPageToken != null) 'nextPageToken': nextPageToken!, + }; +} + class ListGoogleAudiencesResponse { /// The list of Google audiences. /// @@ -22366,7 +22716,10 @@ typedef MobileApp = $MobileApp; class MobileDeviceIdList { /// Input only. /// - /// User consent status. + /// The consent setting for the users in mobile_device_ids. Leaving this field + /// unset indicates that consent is not specified. If ad_user_data or + /// ad_personalization fields are set to `CONSENT_STATUS_DENIED`, the request + /// will return an error. Consent? consent; /// A list of mobile device IDs defining Customer Match audience members. @@ -23158,6 +23511,10 @@ class RateDetails { typedef RegionalLocationListAssignedTargetingOptionDetails = $RegionalLocationListAssignedTargetingOptionDetails; +/// Settings that control the whether remarketing is enabled for the given +/// identified advertiser. +typedef RemarketingConfig = $RemarketingConfig; + /// Request message for NegativeKeywordService.ReplaceNegativeKeywords. class ReplaceNegativeKeywordsRequest { /// The negative keywords that will replace the existing keywords in the @@ -24386,6 +24743,11 @@ class User { /// Required. Immutable. core.String? email; + /// The timestamp when the user last logged in DV360 UI. + /// + /// Output only. + core.String? lastLoginTime; + /// The resource name of the user. /// /// Output only. @@ -24402,6 +24764,7 @@ class User { this.assignedUserRoles, this.displayName, this.email, + this.lastLoginTime, this.name, this.userId, }); @@ -24419,6 +24782,9 @@ class User { : null, email: json_.containsKey('email') ? json_['email'] as core.String : null, + lastLoginTime: json_.containsKey('lastLoginTime') + ? json_['lastLoginTime'] as core.String + : null, name: json_.containsKey('name') ? json_['name'] as core.String : null, userId: json_.containsKey('userId') ? json_['userId'] as core.String @@ -24429,6 +24795,7 @@ class User { if (assignedUserRoles != null) 'assignedUserRoles': assignedUserRoles!, if (displayName != null) 'displayName': displayName!, if (email != null) 'email': email!, + if (lastLoginTime != null) 'lastLoginTime': lastLoginTime!, if (name != null) 'name': name!, if (userId != null) 'userId': userId!, }; @@ -24717,9 +25084,16 @@ typedef YoutubeAndPartnersBiddingStrategy = $YoutubeAndPartnersBiddingStrategy; /// Settings that control what YouTube related inventories the YouTube and /// Partners line item will target. class YoutubeAndPartnersInventorySourceConfig { + /// Whether to target inventory in video apps available with Google TV. + /// + /// Optional. + core.bool? includeGoogleTv; + /// Whether to target inventory on YouTube. /// /// This includes both search, channels and videos. + /// + /// Optional. core.bool? includeYoutube; /// Whether to target inventory on a collection of partner sites and apps that @@ -24727,12 +25101,16 @@ class YoutubeAndPartnersInventorySourceConfig { core.bool? includeYoutubeVideoPartners; YoutubeAndPartnersInventorySourceConfig({ + this.includeGoogleTv, this.includeYoutube, this.includeYoutubeVideoPartners, }); YoutubeAndPartnersInventorySourceConfig.fromJson(core.Map json_) : this( + includeGoogleTv: json_.containsKey('includeGoogleTv') + ? json_['includeGoogleTv'] as core.bool + : null, includeYoutube: json_.containsKey('includeYoutube') ? json_['includeYoutube'] as core.bool : null, @@ -24743,6 +25121,7 @@ class YoutubeAndPartnersInventorySourceConfig { ); core.Map toJson() => { + if (includeGoogleTv != null) 'includeGoogleTv': includeGoogleTv!, if (includeYoutube != null) 'includeYoutube': includeYoutube!, if (includeYoutubeVideoPartners != null) 'includeYoutubeVideoPartners': includeYoutubeVideoPartners!, @@ -24793,17 +25172,25 @@ class YoutubeAndPartnersSettings { YoutubeAndPartnersInventorySourceConfig? inventorySourceSettings; /// The ID of the form to generate leads. + /// + /// Optional. core.String? leadFormId; /// The ID of the merchant which is linked to the line item for product feed. + /// + /// Optional. core.String? linkedMerchantId; /// The IDs of the videos appear below the primary video ad when the ad is /// playing in the YouTube app on mobile devices. + /// + /// Optional. core.List? relatedVideoIds; /// The average number of times you want ads from this line item to show to /// the same person over a certain period of time. + /// + /// Optional. TargetFrequency? targetFrequency; /// The third-party measurement configs of the line item. @@ -24812,6 +25199,8 @@ class YoutubeAndPartnersSettings { ThirdPartyMeasurementConfigs? thirdPartyMeasurementConfigs; /// The settings related to VideoAdSequence. + /// + /// Optional. VideoAdSequenceSettings? videoAdSequenceSettings; /// The view frequency cap settings of the line item. diff --git a/generated/googleapis/lib/dlp/v2.dart b/generated/googleapis/lib/dlp/v2.dart index 47dc34573..f1f689524 100644 --- a/generated/googleapis/lib/dlp/v2.dart +++ b/generated/googleapis/lib/dlp/v2.dart @@ -10,11 +10,11 @@ // ignore_for_file: unnecessary_lambdas // ignore_for_file: unnecessary_string_interpolations -/// Cloud Data Loss Prevention (DLP) - v2 +/// Sensitive Data Protection (DLP) - v2 /// -/// Provides methods for detection, risk analysis, and de-identification of -/// privacy-sensitive fragments in text, images, and Google Cloud Platform -/// storage repositories. +/// Discover and protect your sensitive data. A fully managed service designed +/// to help you discover, classify, and protect your valuable data assets with +/// ease. /// /// For more information, see /// @@ -66,9 +66,10 @@ import '../src/user_agent.dart'; export 'package:_discoveryapis_commons/_discoveryapis_commons.dart' show ApiRequestError, DetailedApiRequestError; -/// Provides methods for detection, risk analysis, and de-identification of -/// privacy-sensitive fragments in text, images, and Google Cloud Platform -/// storage repositories. +/// Discover and protect your sensitive data. +/// +/// A fully managed service designed to help you discover, classify, and protect +/// your valuable data assets with ease. class DLPApi { /// See, edit, configure, and delete your Google Cloud data and see the email /// address for your Google Account. @@ -4786,7 +4787,7 @@ class ProjectsLocationsDlpJobsResource { /// /// Request parameters: /// - /// [name] - Required. The name of the DlpJob resource to be cancelled. + /// [name] - Required. The name of the DlpJob resource to be finished. /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/dlpJobs/\[^/\]+$`. /// @@ -6719,12 +6720,15 @@ class GooglePrivacyDlpV2BigQueryOptions { /// The rest are omitted. The number of rows scanned is rounded down. Must be /// between 0 and 100, inclusively. Both 0 and 100 means no limit. Defaults to /// 0. Only one of rows_limit and rows_limit_percent can be specified. Cannot - /// be used in conjunction with TimespanConfig. + /// be used in conjunction with TimespanConfig. Caution: A + /// [known issue](https://cloud.google.com/dlp/docs/known-issues#bq-sampling) + /// is causing the `rowsLimitPercent` field to behave unexpectedly. We + /// recommend using `rowsLimit` instead. core.int? rowsLimitPercent; - /// + /// How to sample the data. /// Possible string values are: - /// - "SAMPLE_METHOD_UNSPECIFIED" + /// - "SAMPLE_METHOD_UNSPECIFIED" : No sampling. /// - "TOP" : Scan groups of rows in the order BigQuery provides (default). /// Multiple groups of rows may be scanned in parallel, so results may not /// appear in the same order the rows are read. @@ -7427,9 +7431,9 @@ class GooglePrivacyDlpV2CloudStorageOptions { /// inclusively. Both 0 and 100 means no limit. Defaults to 0. core.int? filesLimitPercent; - /// + /// How to sample the data. /// Possible string values are: - /// - "SAMPLE_METHOD_UNSPECIFIED" + /// - "SAMPLE_METHOD_UNSPECIFIED" : No sampling. /// - "TOP" : Scan from the top (default). /// - "RANDOM_START" : For each file larger than bytes_limit_per_file, /// randomly pick the offset to start scanning. The scanned bytes are @@ -7794,6 +7798,7 @@ class GooglePrivacyDlpV2Container { }; } +/// Type of content to inspect. class GooglePrivacyDlpV2ContentItem { /// Content data to inspect or redact. /// @@ -11294,6 +11299,7 @@ class GooglePrivacyDlpV2ImageTransformation { /// A type of transformation that is applied over images. class GooglePrivacyDlpV2ImageTransformations { + /// List of transforms to make. core.List? transforms; GooglePrivacyDlpV2ImageTransformations({ @@ -14404,7 +14410,10 @@ class GooglePrivacyDlpV2RecordCondition { /// Message for a unique key indicating a record that contains a finding. class GooglePrivacyDlpV2RecordKey { + /// Datastore key GooglePrivacyDlpV2BigQueryKey? bigQueryKey; + + /// Bigquery key GooglePrivacyDlpV2DatastoreKey? datastoreKey; /// Values of identifying columns in the given row. @@ -15298,6 +15307,8 @@ class GooglePrivacyDlpV2StorageConfig { /// Hybrid inspection options. GooglePrivacyDlpV2HybridOptions? hybridOptions; + + /// Configuration of the timespan of the items to include in scanning. GooglePrivacyDlpV2TimespanConfig? timespanConfig; GooglePrivacyDlpV2StorageConfig({ @@ -15348,6 +15359,7 @@ class GooglePrivacyDlpV2StorageConfig { /// Storage metadata label to indicate which metadata entry contains findings. class GooglePrivacyDlpV2StorageMetadataLabel { + /// Label name. core.String? key; GooglePrivacyDlpV2StorageMetadataLabel({ diff --git a/generated/googleapis/lib/dns/v1.dart b/generated/googleapis/lib/dns/v1.dart index 238ddc985..686e45103 100644 --- a/generated/googleapis/lib/dns/v1.dart +++ b/generated/googleapis/lib/dns/v1.dart @@ -2760,14 +2760,31 @@ class GoogleIamV1Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -2776,12 +2793,19 @@ class GoogleIamV1Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; GoogleIamV1Binding({ @@ -4256,6 +4280,9 @@ class Quota { /// network. core.int? managedZonesPerNetwork; + /// Maximum number of nameservers per delegation, meant to prevent abuse + core.int? nameserversPerDelegation; + /// Maximum allowed number of networks to which a privately scoped zone can be /// attached. core.int? networksPerManagedZone; @@ -4316,6 +4343,7 @@ class Quota { this.managedZones, this.managedZonesPerGkeCluster, this.managedZonesPerNetwork, + this.nameserversPerDelegation, this.networksPerManagedZone, this.networksPerPolicy, this.networksPerResponsePolicy, @@ -4363,6 +4391,10 @@ class Quota { managedZonesPerNetwork: json_.containsKey('managedZonesPerNetwork') ? json_['managedZonesPerNetwork'] as core.int : null, + nameserversPerDelegation: + json_.containsKey('nameserversPerDelegation') + ? json_['nameserversPerDelegation'] as core.int + : null, networksPerManagedZone: json_.containsKey('networksPerManagedZone') ? json_['networksPerManagedZone'] as core.int : null, @@ -4436,6 +4468,8 @@ class Quota { 'managedZonesPerGkeCluster': managedZonesPerGkeCluster!, if (managedZonesPerNetwork != null) 'managedZonesPerNetwork': managedZonesPerNetwork!, + if (nameserversPerDelegation != null) + 'nameserversPerDelegation': nameserversPerDelegation!, if (networksPerManagedZone != null) 'networksPerManagedZone': networksPerManagedZone!, if (networksPerPolicy != null) 'networksPerPolicy': networksPerPolicy!, @@ -4472,12 +4506,19 @@ class Quota { /// geolocation or by weighted random selection. class RRSetRoutingPolicy { RRSetRoutingPolicyGeoPolicy? geo; + + /// The selfLink attribute of the HealthCheck resource to use for this + /// RRSetRoutingPolicy. + /// + /// https://cloud.google.com/compute/docs/reference/rest/v1/healthChecks + core.String? healthCheck; core.String? kind; RRSetRoutingPolicyPrimaryBackupPolicy? primaryBackup; RRSetRoutingPolicyWrrPolicy? wrr; RRSetRoutingPolicy({ this.geo, + this.healthCheck, this.kind, this.primaryBackup, this.wrr, @@ -4489,6 +4530,9 @@ class RRSetRoutingPolicy { ? RRSetRoutingPolicyGeoPolicy.fromJson( json_['geo'] as core.Map) : null, + healthCheck: json_.containsKey('healthCheck') + ? json_['healthCheck'] as core.String + : null, kind: json_.containsKey('kind') ? json_['kind'] as core.String : null, primaryBackup: json_.containsKey('primaryBackup') ? RRSetRoutingPolicyPrimaryBackupPolicy.fromJson( @@ -4502,6 +4546,7 @@ class RRSetRoutingPolicy { core.Map toJson() => { if (geo != null) 'geo': geo!, + if (healthCheck != null) 'healthCheck': healthCheck!, if (kind != null) 'kind': kind!, if (primaryBackup != null) 'primaryBackup': primaryBackup!, if (wrr != null) 'wrr': wrr!, @@ -4622,16 +4667,30 @@ class RRSetRoutingPolicyGeoPolicyGeoPolicyItem { /// HealthCheckTargets describes endpoints to health-check when responding to /// Routing Policy queries. /// -/// Only the healthy endpoints will be included in the response. +/// Only the healthy endpoints will be included in the response. Only one of +/// internal_load_balancer and external_endpoints should be set. class RRSetRoutingPolicyHealthCheckTargets { + /// The Internet IP addresses to be health checked. + /// + /// The format matches the format of ResourceRecordSet.rrdata as defined in + /// RFC 1035 (section 5) and RFC 1034 (section 3.6.1) + core.List? externalEndpoints; + + /// Configuration for internal load balancers to be health checked. core.List? internalLoadBalancers; RRSetRoutingPolicyHealthCheckTargets({ + this.externalEndpoints, this.internalLoadBalancers, }); RRSetRoutingPolicyHealthCheckTargets.fromJson(core.Map json_) : this( + externalEndpoints: json_.containsKey('externalEndpoints') + ? (json_['externalEndpoints'] as core.List) + .map((value) => value as core.String) + .toList() + : null, internalLoadBalancers: json_.containsKey('internalLoadBalancers') ? (json_['internalLoadBalancers'] as core.List) .map((value) => RRSetRoutingPolicyLoadBalancerTarget.fromJson( @@ -4641,6 +4700,7 @@ class RRSetRoutingPolicyHealthCheckTargets { ); core.Map toJson() => { + if (externalEndpoints != null) 'externalEndpoints': externalEndpoints!, if (internalLoadBalancers != null) 'internalLoadBalancers': internalLoadBalancers!, }; diff --git a/generated/googleapis/lib/documentai/v1.dart b/generated/googleapis/lib/documentai/v1.dart index b89e0c5d5..393f7a6a7 100644 --- a/generated/googleapis/lib/documentai/v1.dart +++ b/generated/googleapis/lib/documentai/v1.dart @@ -1550,6 +1550,16 @@ class GoogleCloudDocumentaiV1BatchProcessRequest { /// The input documents for the BatchProcessDocuments method. GoogleCloudDocumentaiV1BatchDocumentsInputConfig? inputDocuments; + /// The labels with user-defined metadata for the request. + /// + /// Label keys and values can be no longer than 63 characters (Unicode + /// codepoints) and can only contain lowercase letters, numeric characters, + /// underscores, and dashes. International characters are allowed. Label + /// values are optional. Label keys must start with a letter. + /// + /// Optional. + core.Map? labels; + /// Inference-time options for the process API GoogleCloudDocumentaiV1ProcessOptions? processOptions; @@ -1561,6 +1571,7 @@ class GoogleCloudDocumentaiV1BatchProcessRequest { GoogleCloudDocumentaiV1BatchProcessRequest({ this.documentOutputConfig, this.inputDocuments, + this.labels, this.processOptions, this.skipHumanReview, }); @@ -1577,6 +1588,14 @@ class GoogleCloudDocumentaiV1BatchProcessRequest { json_['inputDocuments'] as core.Map) : null, + labels: json_.containsKey('labels') + ? (json_['labels'] as core.Map).map( + (key, value) => core.MapEntry( + key, + value as core.String, + ), + ) + : null, processOptions: json_.containsKey('processOptions') ? GoogleCloudDocumentaiV1ProcessOptions.fromJson( json_['processOptions'] @@ -1591,6 +1610,7 @@ class GoogleCloudDocumentaiV1BatchProcessRequest { if (documentOutputConfig != null) 'documentOutputConfig': documentOutputConfig!, if (inputDocuments != null) 'inputDocuments': inputDocuments!, + if (labels != null) 'labels': labels!, if (processOptions != null) 'processOptions': processOptions!, if (skipHumanReview != null) 'skipHumanReview': skipHumanReview!, }; @@ -4891,7 +4911,7 @@ class GoogleCloudDocumentaiV1ProcessOptions { GoogleCloudDocumentaiV1ProcessOptionsIndividualPageSelector? individualPageSelector; - /// Only applicable to `OCR_PROCESSOR`. + /// Only applicable to `OCR_PROCESSOR` and `FORM_PARSER_PROCESSOR`. /// /// Returns error if set on other processor types. GoogleCloudDocumentaiV1OcrConfig? ocrConfig; @@ -4971,6 +4991,16 @@ class GoogleCloudDocumentaiV1ProcessRequest { /// An inline document proto. GoogleCloudDocumentaiV1Document? inlineDocument; + /// The labels with user-defined metadata for the request. + /// + /// Label keys and values can be no longer than 63 characters (Unicode + /// codepoints) and can only contain lowercase letters, numeric characters, + /// underscores, and dashes. International characters are allowed. Label + /// values are optional. Label keys must start with a letter. + /// + /// Optional. + core.Map? labels; + /// Inference-time options for the process API GoogleCloudDocumentaiV1ProcessOptions? processOptions; @@ -4986,6 +5016,7 @@ class GoogleCloudDocumentaiV1ProcessRequest { this.fieldMask, this.gcsDocument, this.inlineDocument, + this.labels, this.processOptions, this.rawDocument, this.skipHumanReview, @@ -5004,6 +5035,14 @@ class GoogleCloudDocumentaiV1ProcessRequest { ? GoogleCloudDocumentaiV1Document.fromJson(json_['inlineDocument'] as core.Map) : null, + labels: json_.containsKey('labels') + ? (json_['labels'] as core.Map).map( + (key, value) => core.MapEntry( + key, + value as core.String, + ), + ) + : null, processOptions: json_.containsKey('processOptions') ? GoogleCloudDocumentaiV1ProcessOptions.fromJson( json_['processOptions'] @@ -5022,6 +5061,7 @@ class GoogleCloudDocumentaiV1ProcessRequest { if (fieldMask != null) 'fieldMask': fieldMask!, if (gcsDocument != null) 'gcsDocument': gcsDocument!, if (inlineDocument != null) 'inlineDocument': inlineDocument!, + if (labels != null) 'labels': labels!, if (processOptions != null) 'processOptions': processOptions!, if (rawDocument != null) 'rawDocument': rawDocument!, if (skipHumanReview != null) 'skipHumanReview': skipHumanReview!, @@ -5354,6 +5394,17 @@ class GoogleCloudDocumentaiV1ProcessorVersion { /// The most recently invoked evaluation for the processor version. GoogleCloudDocumentaiV1EvaluationReference? latestEvaluation; + /// The model type of this processor version. + /// + /// Output only. + /// Possible string values are: + /// - "MODEL_TYPE_UNSPECIFIED" : The processor version has unspecified model + /// type. + /// - "MODEL_TYPE_GENERATIVE" : The processor version has generative model + /// type. + /// - "MODEL_TYPE_CUSTOM" : The processor version has custom model type. + core.String? modelType; + /// The resource name of the processor version. /// /// Format: @@ -5385,6 +5436,7 @@ class GoogleCloudDocumentaiV1ProcessorVersion { this.kmsKeyName, this.kmsKeyVersionName, this.latestEvaluation, + this.modelType, this.name, this.state, }); @@ -5421,6 +5473,9 @@ class GoogleCloudDocumentaiV1ProcessorVersion { json_['latestEvaluation'] as core.Map) : null, + modelType: json_.containsKey('modelType') + ? json_['modelType'] as core.String + : null, name: json_.containsKey('name') ? json_['name'] as core.String : null, state: json_.containsKey('state') ? json_['state'] as core.String : null, @@ -5435,6 +5490,7 @@ class GoogleCloudDocumentaiV1ProcessorVersion { if (kmsKeyName != null) 'kmsKeyName': kmsKeyName!, if (kmsKeyVersionName != null) 'kmsKeyVersionName': kmsKeyVersionName!, if (latestEvaluation != null) 'latestEvaluation': latestEvaluation!, + if (modelType != null) 'modelType': modelType!, if (name != null) 'name': name!, if (state != null) 'state': state!, }; diff --git a/generated/googleapis/lib/domains/v1.dart b/generated/googleapis/lib/domains/v1.dart index 297394c30..bdfda73c8 100644 --- a/generated/googleapis/lib/domains/v1.dart +++ b/generated/googleapis/lib/domains/v1.dart @@ -1394,14 +1394,31 @@ class Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -1410,12 +1427,19 @@ class Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; Binding({ @@ -1664,7 +1688,7 @@ class ContactSettings { /// `PUBLIC_CONTACT_DATA_ACKNOWLEDGEMENT` in the `contact_notices` field of /// the request. /// - "PRIVATE_CONTACT_DATA" : Deprecated: For more information, see - /// [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) + /// [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). /// None of the data from `ContactSettings` is publicly available. Instead, /// proxy contact data is published for your domain. Email sent to the proxy /// email address is forwarded to the registrant's email address. Cloud @@ -1780,7 +1804,8 @@ class DnsSettings { core.List? glueRecords; /// Deprecated: For more information, see - /// [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) + /// [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). + /// /// The free DNS zone provided by [Google Domains](https://domains.google/). @core.Deprecated( 'Not supported. Member documentation may have more information.', @@ -1955,9 +1980,10 @@ class DsRecord { } /// Deprecated: For more information, see -/// [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) +/// [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). +/// /// Request for the `ExportRegistration` method. -typedef ExportRegistrationRequest = $Shared02; +typedef ExportRegistrationRequest = $Shared01; /// Represents a textual expression in the Common Expression Language (CEL) /// syntax. @@ -2036,12 +2062,12 @@ class GlueRecord { } /// Deprecated: For more information, see -/// [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) -/// Configuration for using the free DNS zone provided by Google Domains as a -/// `Registration`'s `dns_provider`. +/// [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). /// -/// You cannot configure the DNS zone itself using the API. To configure the DNS -/// zone, go to [Google Domains](https://domains.google/). +/// Configuration for using the free DNS zone provided by Google Domains as a +/// `Registration`'s `dns_provider`. You cannot configure the DNS zone itself +/// using the API. To configure the DNS zone, go to +/// [Google Domains](https://domains.google/). class GoogleDomainsDns { /// The list of DS records published for this domain. /// @@ -2107,7 +2133,8 @@ class GoogleDomainsDns { } /// Deprecated: For more information, see -/// [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) +/// [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). +/// /// Request for the `ImportDomain` method. class ImportDomainRequest { /// The domain name. @@ -2253,35 +2280,35 @@ class ManagementSettings { /// The desired renewal method for this `Registration`. /// /// The actual `renewal_method` is automatically updated to reflect this - /// choice. If unset or equal to `RENEWAL_METHOD_UNSPECIFIED`, it will be - /// treated as if it were set to `AUTOMATIC_RENEWAL`. Can't be set to - /// `RENEWAL_DISABLED` during resource creation and can only be updated when - /// the `Registration` resource has state `ACTIVE` or `SUSPENDED`. When - /// `preferred_renewal_method` is set to `AUTOMATIC_RENEWAL` the actual - /// `renewal_method` can be set to `RENEWAL_DISABLED` in case of e.g. problems - /// with the Billing Account or reported domain abuse. In such cases check the - /// `issues` field on the `Registration`. After the problem is resolved the - /// `renewal_method` will be automatically updated to - /// `preferred_renewal_method` in a few hours. + /// choice. If unset or equal to `RENEWAL_METHOD_UNSPECIFIED`, the actual + /// `renewalMethod` is treated as if it were set to `AUTOMATIC_RENEWAL`. You + /// cannot use `RENEWAL_DISABLED` during resource creation, and you can update + /// the renewal status only when the `Registration` resource has state + /// `ACTIVE` or `SUSPENDED`. When `preferred_renewal_method` is set to + /// `AUTOMATIC_RENEWAL`, the actual `renewal_method` can be set to + /// `RENEWAL_DISABLED` in case of problems with the billing account or + /// reported domain abuse. In such cases, check the `issues` field on the + /// `Registration`. After the problem is resolved, the `renewal_method` is + /// automatically updated to `preferred_renewal_method` in a few hours. /// /// Optional. /// Possible string values are: /// - "RENEWAL_METHOD_UNSPECIFIED" : The renewal method is undefined. /// - "AUTOMATIC_RENEWAL" : The domain is automatically renewed each year. /// - "MANUAL_RENEWAL" : Deprecated: For more information, see - /// [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) - /// This option was never used. Use RENEWAL_DISABLED instead. + /// [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). + /// This option was never used. Use `RENEWAL_DISABLED` instead. /// - "RENEWAL_DISABLED" : The domain won't be renewed and will expire at its /// expiration time. core.String? preferredRenewalMethod; /// The actual renewal method for this `Registration`. /// - /// When `preferred_renewal_method` is set to `AUTOMATIC_RENEWAL` the actual - /// `renewal_method` can be equal to `RENEWAL_DISABLED` in case of e.g. - /// problems with the Billing Account or reported domain abuse. In such cases - /// check the `issues` field on the `Registration`. After the problem is - /// resolved the `renewal_method` will be automatically updated to + /// When `preferred_renewal_method` is set to `AUTOMATIC_RENEWAL`, the actual + /// `renewal_method` can be equal to `RENEWAL_DISABLED`—for example, when + /// there are problems with the billing account or reported domain abuse. In + /// such cases, check the `issues` field on the `Registration`. After the + /// problem is resolved, the `renewal_method` is automatically updated to /// `preferred_renewal_method` in a few hours. /// /// Output only. @@ -2289,8 +2316,8 @@ class ManagementSettings { /// - "RENEWAL_METHOD_UNSPECIFIED" : The renewal method is undefined. /// - "AUTOMATIC_RENEWAL" : The domain is automatically renewed each year. /// - "MANUAL_RENEWAL" : Deprecated: For more information, see - /// [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) - /// This option was never used. Use RENEWAL_DISABLED instead. + /// [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). + /// This option was never used. Use `RENEWAL_DISABLED` instead. /// - "RENEWAL_DISABLED" : The domain won't be renewed and will expire at its /// expiration time. core.String? renewalMethod; @@ -2811,8 +2838,8 @@ class Registration { /// - "IMPORT_PENDING" : The domain is being imported from Google Domains to /// Cloud Domains. /// - "ACTIVE" : The domain is registered and operational. The domain renews - /// automatically as long as it remains in this state and the RenewalMethod is - /// set to AUTOMATIC_RENEWAL. + /// automatically as long as it remains in this state and the `RenewalMethod` + /// is set to `AUTOMATIC_RENEWAL`. /// - "SUSPENDED" : The domain is suspended and inoperative. For more details, /// see the `issues` field. /// - "EXPORTED" : The domain is no longer managed with Cloud Domains. It may @@ -2830,10 +2857,10 @@ class Registration { core.List? supportedPrivacy; /// Deprecated: For more information, see - /// [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) - /// The reason the domain transfer failed. + /// [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). /// - /// Only set for domains in TRANSFER_FAILED state. + /// The reason the domain transfer failed. Only set for domains in + /// TRANSFER_FAILED state. /// /// Output only. /// Possible string values are: @@ -2963,7 +2990,8 @@ class Registration { typedef ResetAuthorizationCodeRequest = $Empty; /// Deprecated: For more information, see -/// [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) +/// [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). +/// /// Response for the `RetrieveImportableDomains` method. class RetrieveImportableDomainsResponse { /// A list of domains that the calling user manages in Google Domains. @@ -3023,7 +3051,8 @@ class RetrieveRegisterParametersResponse { } /// Deprecated: For more information, see -/// [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) +/// [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). +/// /// Response for the `RetrieveTransferParameters` method. class RetrieveTransferParametersResponse { /// Parameters to use when calling the `TransferDomain` method. @@ -3125,7 +3154,8 @@ typedef TestIamPermissionsRequest = $TestIamPermissionsRequest00; typedef TestIamPermissionsResponse = $PermissionsResponse; /// Deprecated: For more information, see -/// [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) +/// [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). +/// /// Request for the `TransferDomain` method. class TransferDomainRequest { /// The domain's transfer authorization code. @@ -3203,7 +3233,8 @@ class TransferDomainRequest { } /// Deprecated: For more information, see -/// [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations) +/// [Cloud Domains feature deprecation](https://cloud.google.com/domains/docs/deprecations/feature-deprecations). +/// /// Parameters required to transfer a domain from another registrar. class TransferParameters { /// The registrar that currently manages the domain. diff --git a/generated/googleapis/lib/doubleclicksearch/v2.dart b/generated/googleapis/lib/doubleclicksearch/v2.dart index 1e24f71ad..7736d733e 100644 --- a/generated/googleapis/lib/doubleclicksearch/v2.dart +++ b/generated/googleapis/lib/doubleclicksearch/v2.dart @@ -712,7 +712,12 @@ class Conversion { /// DS ad ID. core.String? adId; - /// Ad user data consent for this conversion. + /// Represents consent for core platform services (CPS) preferences in + /// settings. + /// + /// No default value. Acceptable values are: GRANTED: The desired consent + /// status is to grant. Read the CPS preferences from GTE settings. DENIED: + /// The desired consent status is to deny; CPS list is empty. /// Possible string values are: /// - "UNKNOWN" : Not specified. /// - "GRANTED" : Granted. diff --git a/generated/googleapis/lib/drive/v2.dart b/generated/googleapis/lib/drive/v2.dart index ef75335a9..b15e1cc7d 100644 --- a/generated/googleapis/lib/drive/v2.dart +++ b/generated/googleapis/lib/drive/v2.dart @@ -6185,6 +6185,14 @@ class ContentRestriction { /// Only populated if readOnly is true. core.DateTime? restrictionDate; + /// Whether the content restriction was applied by the system, for example due + /// to an esignature. + /// + /// Users cannot modify or remove system restricted content restrictions. + /// + /// Output only. + core.bool? systemRestricted; + /// The type of the content restriction. /// /// Currently the only possible value is `globalContentRestriction`. @@ -6198,6 +6206,7 @@ class ContentRestriction { this.reason, this.restrictingUser, this.restrictionDate, + this.systemRestricted, this.type, }); @@ -6219,6 +6228,9 @@ class ContentRestriction { restrictionDate: json_.containsKey('restrictionDate') ? core.DateTime.parse(json_['restrictionDate'] as core.String) : null, + systemRestricted: json_.containsKey('systemRestricted') + ? json_['systemRestricted'] as core.bool + : null, type: json_.containsKey('type') ? json_['type'] as core.String : null, ); @@ -6229,6 +6241,7 @@ class ContentRestriction { if (restrictingUser != null) 'restrictingUser': restrictingUser!, if (restrictionDate != null) 'restrictionDate': restrictionDate!.toUtc().toIso8601String(), + if (systemRestricted != null) 'systemRestricted': systemRestricted!, if (type != null) 'type': type!, }; } diff --git a/generated/googleapis/lib/drive/v3.dart b/generated/googleapis/lib/drive/v3.dart index e2bac2413..ccdb99eea 100644 --- a/generated/googleapis/lib/drive/v3.dart +++ b/generated/googleapis/lib/drive/v3.dart @@ -19,6 +19,7 @@ /// Create an instance of [DriveApi] to access these resources: /// /// - [AboutResource] +/// - [AppsResource] /// - [ChangesResource] /// - [ChannelsResource] /// - [CommentsResource] @@ -60,6 +61,10 @@ class DriveApi { static const driveAppdataScope = 'https://www.googleapis.com/auth/drive.appdata'; + /// View your Google Drive apps + static const driveAppsReadonlyScope = + 'https://www.googleapis.com/auth/drive.apps.readonly'; + /// See, edit, create, and delete only the specific Google Drive files you use /// with this app static const driveFileScope = 'https://www.googleapis.com/auth/drive.file'; @@ -87,6 +92,7 @@ class DriveApi { final commons.ApiRequester _requester; AboutResource get about => AboutResource(_requester); + AppsResource get apps => AppsResource(_requester); ChangesResource get changes => ChangesResource(_requester); ChannelsResource get channels => ChannelsResource(_requester); CommentsResource get comments => CommentsResource(_requester); @@ -142,6 +148,101 @@ class AboutResource { } } +class AppsResource { + final commons.ApiRequester _requester; + + AppsResource(commons.ApiRequester client) : _requester = client; + + /// Gets a specific app. + /// + /// Request parameters: + /// + /// [appId] - The ID of the app. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [App]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future get( + core.String appId, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'apps/' + commons.escapeVariable('$appId'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return App.fromJson(response_ as core.Map); + } + + /// Lists a user's installed apps. + /// + /// Request parameters: + /// + /// [appFilterExtensions] - A comma-separated list of file extensions to limit + /// returned results. All results within the given app query scope which can + /// open any of the given file extensions are included in the response. If + /// `appFilterMimeTypes` are provided as well, the result is a union of the + /// two resulting app lists. + /// + /// [appFilterMimeTypes] - A comma-separated list of file extensions to limit + /// returned results. All results within the given app query scope which can + /// open any of the given MIME types will be included in the response. If + /// `appFilterExtensions` are provided as well, the result is a union of the + /// two resulting app lists. + /// + /// [languageCode] - A language or locale code, as defined by BCP 47, with + /// some extensions from Unicode's LDML format + /// (http://www.unicode.org/reports/tr35/). + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [AppList]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future list({ + core.String? appFilterExtensions, + core.String? appFilterMimeTypes, + core.String? languageCode, + core.String? $fields, + }) async { + final queryParams_ = >{ + if (appFilterExtensions != null) + 'appFilterExtensions': [appFilterExtensions], + if (appFilterMimeTypes != null) + 'appFilterMimeTypes': [appFilterMimeTypes], + if (languageCode != null) 'languageCode': [languageCode], + if ($fields != null) 'fields': [$fields], + }; + + const url_ = 'apps'; + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return AppList.fromJson(response_ as core.Map); + } +} + class ChangesResource { final commons.ApiRequester _requester; @@ -3249,6 +3350,336 @@ class About { }; } +/// The `apps` resource provides a list of apps that a user has installed, with +/// information about each app's supported MIME types, file extensions, and +/// other details. +/// +/// Some resource methods (such as `apps.get`) require an `appId`. Use the +/// `apps.list` method to retrieve the ID for an installed application. +class App { + /// Whether the app is authorized to access data on the user's Drive. + core.bool? authorized; + + /// The template URL to create a file with this app in a given folder. + /// + /// The template contains the {folderId} to be replaced by the folder ID house + /// the new file. + core.String? createInFolderTemplate; + + /// The URL to create a file with this app. + core.String? createUrl; + + /// Whether the app has Drive-wide scope. + /// + /// An app with Drive-wide scope can access all files in the user's Drive. + core.bool? hasDriveWideScope; + + /// The various icons for the app. + core.List? icons; + + /// The ID of the app. + core.String? id; + + /// Whether the app is installed. + core.bool? installed; + + /// Identifies what kind of resource this is. + /// + /// Value: the fixed string "drive#app". + /// + /// Output only. + core.String? kind; + + /// A long description of the app. + core.String? longDescription; + + /// The name of the app. + core.String? name; + + /// The type of object this app creates such as a Chart. + /// + /// If empty, the app name should be used instead. + core.String? objectType; + + /// The template URL for opening files with this app. + /// + /// The template contains {ids} or {exportIds} to be replaced by the actual + /// file IDs. For more information, see Open Files for the full documentation. + core.String? openUrlTemplate; + + /// The list of primary file extensions. + core.List? primaryFileExtensions; + + /// The list of primary MIME types. + core.List? primaryMimeTypes; + + /// The ID of the product listing for this app. + core.String? productId; + + /// A link to the product listing for this app. + core.String? productUrl; + + /// The list of secondary file extensions. + core.List? secondaryFileExtensions; + + /// The list of secondary MIME types. + core.List? secondaryMimeTypes; + + /// A short description of the app. + core.String? shortDescription; + + /// Whether this app supports creating objects. + core.bool? supportsCreate; + + /// Whether this app supports importing from Google Docs. + core.bool? supportsImport; + + /// Whether this app supports opening more than one file. + core.bool? supportsMultiOpen; + + /// Whether this app supports creating files when offline. + core.bool? supportsOfflineCreate; + + /// Whether the app is selected as the default handler for the types it + /// supports. + core.bool? useByDefault; + + App({ + this.authorized, + this.createInFolderTemplate, + this.createUrl, + this.hasDriveWideScope, + this.icons, + this.id, + this.installed, + this.kind, + this.longDescription, + this.name, + this.objectType, + this.openUrlTemplate, + this.primaryFileExtensions, + this.primaryMimeTypes, + this.productId, + this.productUrl, + this.secondaryFileExtensions, + this.secondaryMimeTypes, + this.shortDescription, + this.supportsCreate, + this.supportsImport, + this.supportsMultiOpen, + this.supportsOfflineCreate, + this.useByDefault, + }); + + App.fromJson(core.Map json_) + : this( + authorized: json_.containsKey('authorized') + ? json_['authorized'] as core.bool + : null, + createInFolderTemplate: json_.containsKey('createInFolderTemplate') + ? json_['createInFolderTemplate'] as core.String + : null, + createUrl: json_.containsKey('createUrl') + ? json_['createUrl'] as core.String + : null, + hasDriveWideScope: json_.containsKey('hasDriveWideScope') + ? json_['hasDriveWideScope'] as core.bool + : null, + icons: json_.containsKey('icons') + ? (json_['icons'] as core.List) + .map((value) => AppIcons.fromJson( + value as core.Map)) + .toList() + : null, + id: json_.containsKey('id') ? json_['id'] as core.String : null, + installed: json_.containsKey('installed') + ? json_['installed'] as core.bool + : null, + kind: json_.containsKey('kind') ? json_['kind'] as core.String : null, + longDescription: json_.containsKey('longDescription') + ? json_['longDescription'] as core.String + : null, + name: json_.containsKey('name') ? json_['name'] as core.String : null, + objectType: json_.containsKey('objectType') + ? json_['objectType'] as core.String + : null, + openUrlTemplate: json_.containsKey('openUrlTemplate') + ? json_['openUrlTemplate'] as core.String + : null, + primaryFileExtensions: json_.containsKey('primaryFileExtensions') + ? (json_['primaryFileExtensions'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + primaryMimeTypes: json_.containsKey('primaryMimeTypes') + ? (json_['primaryMimeTypes'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + productId: json_.containsKey('productId') + ? json_['productId'] as core.String + : null, + productUrl: json_.containsKey('productUrl') + ? json_['productUrl'] as core.String + : null, + secondaryFileExtensions: json_.containsKey('secondaryFileExtensions') + ? (json_['secondaryFileExtensions'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + secondaryMimeTypes: json_.containsKey('secondaryMimeTypes') + ? (json_['secondaryMimeTypes'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + shortDescription: json_.containsKey('shortDescription') + ? json_['shortDescription'] as core.String + : null, + supportsCreate: json_.containsKey('supportsCreate') + ? json_['supportsCreate'] as core.bool + : null, + supportsImport: json_.containsKey('supportsImport') + ? json_['supportsImport'] as core.bool + : null, + supportsMultiOpen: json_.containsKey('supportsMultiOpen') + ? json_['supportsMultiOpen'] as core.bool + : null, + supportsOfflineCreate: json_.containsKey('supportsOfflineCreate') + ? json_['supportsOfflineCreate'] as core.bool + : null, + useByDefault: json_.containsKey('useByDefault') + ? json_['useByDefault'] as core.bool + : null, + ); + + core.Map toJson() => { + if (authorized != null) 'authorized': authorized!, + if (createInFolderTemplate != null) + 'createInFolderTemplate': createInFolderTemplate!, + if (createUrl != null) 'createUrl': createUrl!, + if (hasDriveWideScope != null) 'hasDriveWideScope': hasDriveWideScope!, + if (icons != null) 'icons': icons!, + if (id != null) 'id': id!, + if (installed != null) 'installed': installed!, + if (kind != null) 'kind': kind!, + if (longDescription != null) 'longDescription': longDescription!, + if (name != null) 'name': name!, + if (objectType != null) 'objectType': objectType!, + if (openUrlTemplate != null) 'openUrlTemplate': openUrlTemplate!, + if (primaryFileExtensions != null) + 'primaryFileExtensions': primaryFileExtensions!, + if (primaryMimeTypes != null) 'primaryMimeTypes': primaryMimeTypes!, + if (productId != null) 'productId': productId!, + if (productUrl != null) 'productUrl': productUrl!, + if (secondaryFileExtensions != null) + 'secondaryFileExtensions': secondaryFileExtensions!, + if (secondaryMimeTypes != null) + 'secondaryMimeTypes': secondaryMimeTypes!, + if (shortDescription != null) 'shortDescription': shortDescription!, + if (supportsCreate != null) 'supportsCreate': supportsCreate!, + if (supportsImport != null) 'supportsImport': supportsImport!, + if (supportsMultiOpen != null) 'supportsMultiOpen': supportsMultiOpen!, + if (supportsOfflineCreate != null) + 'supportsOfflineCreate': supportsOfflineCreate!, + if (useByDefault != null) 'useByDefault': useByDefault!, + }; +} + +class AppIcons { + /// Category of the icon. + /// + /// Allowed values are: * `application` - The icon for the application. * + /// `document` - The icon for a file associated with the app. * + /// `documentShared` - The icon for a shared file associated with the app. + core.String? category; + + /// URL for the icon. + core.String? iconUrl; + + /// Size of the icon. + /// + /// Represented as the maximum of the width and height. + core.int? size; + + AppIcons({ + this.category, + this.iconUrl, + this.size, + }); + + AppIcons.fromJson(core.Map json_) + : this( + category: json_.containsKey('category') + ? json_['category'] as core.String + : null, + iconUrl: json_.containsKey('iconUrl') + ? json_['iconUrl'] as core.String + : null, + size: json_.containsKey('size') ? json_['size'] as core.int : null, + ); + + core.Map toJson() => { + if (category != null) 'category': category!, + if (iconUrl != null) 'iconUrl': iconUrl!, + if (size != null) 'size': size!, + }; +} + +/// A list of third-party applications which the user has installed or given +/// access to Google Drive. +class AppList { + /// The list of app IDs that the user has specified to use by default. + /// + /// The list is in reverse-priority order (lowest to highest). + core.List? defaultAppIds; + + /// The list of apps. + core.List? items; + + /// Identifies what kind of resource this is. + /// + /// Value: the fixed string "drive#appList". + /// + /// Output only. + core.String? kind; + + /// A link back to this list. + core.String? selfLink; + + AppList({ + this.defaultAppIds, + this.items, + this.kind, + this.selfLink, + }); + + AppList.fromJson(core.Map json_) + : this( + defaultAppIds: json_.containsKey('defaultAppIds') + ? (json_['defaultAppIds'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + items: json_.containsKey('items') + ? (json_['items'] as core.List) + .map((value) => App.fromJson( + value as core.Map)) + .toList() + : null, + kind: json_.containsKey('kind') ? json_['kind'] as core.String : null, + selfLink: json_.containsKey('selfLink') + ? json_['selfLink'] as core.String + : null, + ); + + core.Map toJson() => { + if (defaultAppIds != null) 'defaultAppIds': defaultAppIds!, + if (items != null) 'items': items!, + if (kind != null) 'kind': kind!, + if (selfLink != null) 'selfLink': selfLink!, + }; +} + /// A change to a file or shared drive. class Change { /// The type of the change. @@ -3692,6 +4123,14 @@ class ContentRestriction { /// Only populated if readOnly is true. core.DateTime? restrictionTime; + /// Whether the content restriction was applied by the system, for example due + /// to an esignature. + /// + /// Users cannot modify or remove system restricted content restrictions. + /// + /// Output only. + core.bool? systemRestricted; + /// The type of the content restriction. /// /// Currently the only possible value is `globalContentRestriction`. @@ -3705,6 +4144,7 @@ class ContentRestriction { this.reason, this.restrictingUser, this.restrictionTime, + this.systemRestricted, this.type, }); @@ -3726,6 +4166,9 @@ class ContentRestriction { restrictionTime: json_.containsKey('restrictionTime') ? core.DateTime.parse(json_['restrictionTime'] as core.String) : null, + systemRestricted: json_.containsKey('systemRestricted') + ? json_['systemRestricted'] as core.bool + : null, type: json_.containsKey('type') ? json_['type'] as core.String : null, ); @@ -3736,6 +4179,7 @@ class ContentRestriction { if (restrictingUser != null) 'restrictingUser': restrictingUser!, if (restrictionTime != null) 'restrictionTime': restrictionTime!.toUtc().toIso8601String(), + if (systemRestricted != null) 'systemRestricted': systemRestricted!, if (type != null) 'type': type!, }; } @@ -4054,6 +4498,10 @@ class DriveCapabilities { /// A set of restrictions that apply to this shared drive or items inside this /// shared drive. +/// +/// Note that restrictions can't be set when creating a shared drive. To add a +/// restriction, first create a shared drive and then use `drives.update` to add +/// restrictions. class DriveRestrictions { /// Whether administrative privileges on this shared drive are required to /// modify restrictions. @@ -4187,6 +4635,10 @@ class Drive { /// A set of restrictions that apply to this shared drive or items inside this /// shared drive. + /// + /// Note that restrictions can't be set when creating a shared drive. To add a + /// restriction, first create a shared drive and then use `drives.update` to + /// add restrictions. DriveRestrictions? restrictions; /// The ID of the theme from which the background image and color will be set. diff --git a/generated/googleapis/lib/driveactivity/v2.dart b/generated/googleapis/lib/driveactivity/v2.dart index 3442a08a3..beaaabc7f 100644 --- a/generated/googleapis/lib/driveactivity/v2.dart +++ b/generated/googleapis/lib/driveactivity/v2.dart @@ -1226,7 +1226,7 @@ class FieldValueChange { } /// This item is deprecated; please see `DriveFile` instead. -typedef File = $Shared02; +typedef File = $Shared01; /// A comment on a file. class FileComment { diff --git a/generated/googleapis/lib/drivelabels/v2.dart b/generated/googleapis/lib/drivelabels/v2.dart index 980bfa244..aa4371501 100644 --- a/generated/googleapis/lib/drivelabels/v2.dart +++ b/generated/googleapis/lib/drivelabels/v2.dart @@ -2214,9 +2214,6 @@ class GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateFieldTypeRequest { /// Update field to Integer. GoogleAppsDriveLabelsV2FieldIntegerOptions? integerOptions; - /// Update field to Long Text. - GoogleAppsDriveLabelsV2FieldLongTextOptions? longTextOptions; - /// Update field to Selection. GoogleAppsDriveLabelsV2FieldSelectionOptions? selectionOptions; @@ -2237,7 +2234,6 @@ class GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateFieldTypeRequest { this.dateOptions, this.id, this.integerOptions, - this.longTextOptions, this.selectionOptions, this.textOptions, this.updateMask, @@ -2257,11 +2253,6 @@ class GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateFieldTypeRequest { json_['integerOptions'] as core.Map) : null, - longTextOptions: json_.containsKey('longTextOptions') - ? GoogleAppsDriveLabelsV2FieldLongTextOptions.fromJson( - json_['longTextOptions'] - as core.Map) - : null, selectionOptions: json_.containsKey('selectionOptions') ? GoogleAppsDriveLabelsV2FieldSelectionOptions.fromJson( json_['selectionOptions'] @@ -2284,7 +2275,6 @@ class GoogleAppsDriveLabelsV2DeltaUpdateLabelRequestUpdateFieldTypeRequest { if (dateOptions != null) 'dateOptions': dateOptions!, if (id != null) 'id': id!, if (integerOptions != null) 'integerOptions': integerOptions!, - if (longTextOptions != null) 'longTextOptions': longTextOptions!, if (selectionOptions != null) 'selectionOptions': selectionOptions!, if (textOptions != null) 'textOptions': textOptions!, if (updateMask != null) 'updateMask': updateMask!, @@ -3369,9 +3359,6 @@ class GoogleAppsDriveLabelsV2FieldListOptions { }; } -/// Options the Long Text field type. -typedef GoogleAppsDriveLabelsV2FieldLongTextOptions = $TextOptions; - /// The basic properties of the field. class GoogleAppsDriveLabelsV2FieldProperties { /// The display text to show in the UI identifying this field. @@ -3908,7 +3895,37 @@ class GoogleAppsDriveLabelsV2FieldSelectionOptionsChoiceSchemaCapabilities { } /// Options for the Text field type. -typedef GoogleAppsDriveLabelsV2FieldTextOptions = $TextOptions; +class GoogleAppsDriveLabelsV2FieldTextOptions { + /// The maximum valid length of values for the text field. + /// + /// Output only. + core.int? maxLength; + + /// The minimum valid length of values for the text field. + /// + /// Output only. + core.int? minLength; + + GoogleAppsDriveLabelsV2FieldTextOptions({ + this.maxLength, + this.minLength, + }); + + GoogleAppsDriveLabelsV2FieldTextOptions.fromJson(core.Map json_) + : this( + maxLength: json_.containsKey('maxLength') + ? json_['maxLength'] as core.int + : null, + minLength: json_.containsKey('minLength') + ? json_['minLength'] as core.int + : null, + ); + + core.Map toJson() => { + if (maxLength != null) 'maxLength': maxLength!, + if (minLength != null) 'minLength': minLength!, + }; +} /// Options for the user field type. class GoogleAppsDriveLabelsV2FieldUserOptions { diff --git a/generated/googleapis/lib/eventarc/v1.dart b/generated/googleapis/lib/eventarc/v1.dart index 6a3e26663..6ebc64b3d 100644 --- a/generated/googleapis/lib/eventarc/v1.dart +++ b/generated/googleapis/lib/eventarc/v1.dart @@ -1793,14 +1793,31 @@ class Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -1809,12 +1826,19 @@ class Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; Binding({ diff --git a/generated/googleapis/lib/file/v1.dart b/generated/googleapis/lib/file/v1.dart index 2a85b9ca8..83a53297d 100644 --- a/generated/googleapis/lib/file/v1.dart +++ b/generated/googleapis/lib/file/v1.dart @@ -713,8 +713,8 @@ class ProjectsLocationsInstancesResource { /// Request parameters: /// /// [name] - Required. - /// projects/{project_id}/locations/{location_id}/instances/{instance_id}. The - /// resource name of the instance, in the format + /// `projects/{project_id}/locations/{location_id}/instances/{instance_id}`. + /// The resource name of the instance, in the format /// Value must have pattern /// `^projects/\[^/\]+/locations/\[^/\]+/instances/\[^/\]+$`. /// @@ -1211,6 +1211,11 @@ class Backup { /// Output only. core.String? name; + /// Reserved for future use. + /// + /// Output only. + core.bool? satisfiesPzi; + /// Reserved for future use. /// /// Output only. @@ -1281,6 +1286,7 @@ class Backup { this.kmsKey, this.labels, this.name, + this.satisfiesPzi, this.satisfiesPzs, this.sourceFileShare, this.sourceInstance, @@ -1315,6 +1321,9 @@ class Backup { ) : null, name: json_.containsKey('name') ? json_['name'] as core.String : null, + satisfiesPzi: json_.containsKey('satisfiesPzi') + ? json_['satisfiesPzi'] as core.bool + : null, satisfiesPzs: json_.containsKey('satisfiesPzs') ? json_['satisfiesPzs'] as core.bool : null, @@ -1342,6 +1351,7 @@ class Backup { if (kmsKey != null) 'kmsKey': kmsKey!, if (labels != null) 'labels': labels!, if (name != null) 'name': name!, + if (satisfiesPzi != null) 'satisfiesPzi': satisfiesPzi!, if (satisfiesPzs != null) 'satisfiesPzs': satisfiesPzs!, if (sourceFileShare != null) 'sourceFileShare': sourceFileShare!, if (sourceInstance != null) 'sourceInstance': sourceInstance!, @@ -1370,7 +1380,13 @@ class FileShareConfig { /// Filestore defines 1 GB as 1024^3 bytes. core.String? capacityGb; - /// The name of the file share (must be 16 characters or less). + /// The name of the file share. + /// + /// Must use 1-16 characters for the basic service tier and 1-63 characters + /// for all other service tiers. Must use lowercase letters, numbers, or + /// underscores `[a-z0-9_]`. Must start with a letter. Immutable. + /// + /// Required. core.String? name; /// Nfs Export Options. @@ -1451,6 +1467,11 @@ class Instance { /// For this version, only a single network is supported. core.List? networks; + /// Reserved for future use. + /// + /// Output only. + core.bool? satisfiesPzi; + /// Reserved for future use. /// /// Output only. @@ -1519,6 +1540,7 @@ class Instance { this.labels, this.name, this.networks, + this.satisfiesPzi, this.satisfiesPzs, this.state, this.statusMessage, @@ -1559,6 +1581,9 @@ class Instance { value as core.Map)) .toList() : null, + satisfiesPzi: json_.containsKey('satisfiesPzi') + ? json_['satisfiesPzi'] as core.bool + : null, satisfiesPzs: json_.containsKey('satisfiesPzs') ? json_['satisfiesPzs'] as core.bool : null, @@ -1584,6 +1609,7 @@ class Instance { if (labels != null) 'labels': labels!, if (name != null) 'name': name!, if (networks != null) 'networks': networks!, + if (satisfiesPzi != null) 'satisfiesPzi': satisfiesPzi!, if (satisfiesPzs != null) 'satisfiesPzs': satisfiesPzs!, if (state != null) 'state': state!, if (statusMessage != null) 'statusMessage': statusMessage!, @@ -2084,7 +2110,7 @@ class RestoreInstanceRequest { class RevertInstanceRequest { /// The snapshot resource ID, in the format 'my-snapshot', where the specified /// ID is the {snapshot_id} of the fully qualified name like - /// projects/{project_id}/locations/{location_id}/instances/{instance_id}/snapshots/{snapshot_id} + /// `projects/{project_id}/locations/{location_id}/instances/{instance_id}/snapshots/{snapshot_id}` /// /// Required. core.String? targetSnapshotId; diff --git a/generated/googleapis/lib/firebaseappdistribution/v1.dart b/generated/googleapis/lib/firebaseappdistribution/v1.dart index 74c7ea902..e29fa1c66 100644 --- a/generated/googleapis/lib/firebaseappdistribution/v1.dart +++ b/generated/googleapis/lib/firebaseappdistribution/v1.dart @@ -1351,84 +1351,7 @@ class ProjectsTestersResource { } /// Information to read/write to blobstore2. -class GdataBlobstore2Info { - /// The blob generation id. - core.String? blobGeneration; - - /// The blob id, e.g., /blobstore/prod/playground/scotty - core.String? blobId; - - /// Read handle passed from Bigstore -\> Scotty for a GCS download. - /// - /// This is a signed, serialized blobstore2.ReadHandle proto which must never - /// be set outside of Bigstore, and is not applicable to non-GCS media - /// downloads. - core.String? downloadReadHandle; - core.List get downloadReadHandleAsBytes => - convert.base64.decode(downloadReadHandle!); - - set downloadReadHandleAsBytes(core.List bytes_) { - downloadReadHandle = - convert.base64.encode(bytes_).replaceAll('/', '_').replaceAll('+', '-'); - } - - /// The blob read token. - /// - /// Needed to read blobs that have not been replicated. Might not be available - /// until the final call. - core.String? readToken; - - /// Metadata passed from Blobstore -\> Scotty for a new GCS upload. - /// - /// This is a signed, serialized blobstore2.BlobMetadataContainer proto which - /// must never be consumed outside of Bigstore, and is not applicable to - /// non-GCS media uploads. - core.String? uploadMetadataContainer; - core.List get uploadMetadataContainerAsBytes => - convert.base64.decode(uploadMetadataContainer!); - - set uploadMetadataContainerAsBytes(core.List bytes_) { - uploadMetadataContainer = - convert.base64.encode(bytes_).replaceAll('/', '_').replaceAll('+', '-'); - } - - GdataBlobstore2Info({ - this.blobGeneration, - this.blobId, - this.downloadReadHandle, - this.readToken, - this.uploadMetadataContainer, - }); - - GdataBlobstore2Info.fromJson(core.Map json_) - : this( - blobGeneration: json_.containsKey('blobGeneration') - ? json_['blobGeneration'] as core.String - : null, - blobId: json_.containsKey('blobId') - ? json_['blobId'] as core.String - : null, - downloadReadHandle: json_.containsKey('downloadReadHandle') - ? json_['downloadReadHandle'] as core.String - : null, - readToken: json_.containsKey('readToken') - ? json_['readToken'] as core.String - : null, - uploadMetadataContainer: json_.containsKey('uploadMetadataContainer') - ? json_['uploadMetadataContainer'] as core.String - : null, - ); - - core.Map toJson() => { - if (blobGeneration != null) 'blobGeneration': blobGeneration!, - if (blobId != null) 'blobId': blobId!, - if (downloadReadHandle != null) - 'downloadReadHandle': downloadReadHandle!, - if (readToken != null) 'readToken': readToken!, - if (uploadMetadataContainer != null) - 'uploadMetadataContainer': uploadMetadataContainer!, - }; -} +typedef GdataBlobstore2Info = $Blobstore2Info; /// A sequence of media data references representing composite data. /// @@ -1595,64 +1518,7 @@ class GdataCompositeMedia { /// Scotty's best_guess, but this extended information provides the backend with /// more information so that it can make a better decision if needed. This is /// only used on media upload requests from Scotty. -class GdataContentTypeInfo { - /// Scotty's best guess of what the content type of the file is. - core.String? bestGuess; - - /// The content type of the file derived by looking at specific bytes (i.e. - /// "magic bytes") of the actual file. - core.String? fromBytes; - - /// The content type of the file derived from the file extension of the - /// original file name used by the client. - core.String? fromFileName; - - /// The content type of the file as specified in the request headers, - /// multipart headers, or RUPIO start request. - core.String? fromHeader; - - /// The content type of the file derived from the file extension of the URL - /// path. - /// - /// The URL path is assumed to represent a file name (which is typically only - /// true for agents that are providing a REST API). - core.String? fromUrlPath; - - GdataContentTypeInfo({ - this.bestGuess, - this.fromBytes, - this.fromFileName, - this.fromHeader, - this.fromUrlPath, - }); - - GdataContentTypeInfo.fromJson(core.Map json_) - : this( - bestGuess: json_.containsKey('bestGuess') - ? json_['bestGuess'] as core.String - : null, - fromBytes: json_.containsKey('fromBytes') - ? json_['fromBytes'] as core.String - : null, - fromFileName: json_.containsKey('fromFileName') - ? json_['fromFileName'] as core.String - : null, - fromHeader: json_.containsKey('fromHeader') - ? json_['fromHeader'] as core.String - : null, - fromUrlPath: json_.containsKey('fromUrlPath') - ? json_['fromUrlPath'] as core.String - : null, - ); - - core.Map toJson() => { - if (bestGuess != null) 'bestGuess': bestGuess!, - if (fromBytes != null) 'fromBytes': fromBytes!, - if (fromFileName != null) 'fromFileName': fromFileName!, - if (fromHeader != null) 'fromHeader': fromHeader!, - if (fromUrlPath != null) 'fromUrlPath': fromUrlPath!, - }; -} +typedef GdataContentTypeInfo = $ContentTypeInfo; /// Backend response for a Diff get checksums response. /// @@ -1841,68 +1707,10 @@ class GdataDiffUploadResponse { /// /// For details on the Scotty Diff protocol, visit /// http://go/scotty-diff-protocol. -class GdataDiffVersionResponse { - /// The total size of the server object. - core.String? objectSizeBytes; - - /// The version of the object stored at the server. - core.String? objectVersion; - - GdataDiffVersionResponse({ - this.objectSizeBytes, - this.objectVersion, - }); - - GdataDiffVersionResponse.fromJson(core.Map json_) - : this( - objectSizeBytes: json_.containsKey('objectSizeBytes') - ? json_['objectSizeBytes'] as core.String - : null, - objectVersion: json_.containsKey('objectVersion') - ? json_['objectVersion'] as core.String - : null, - ); - - core.Map toJson() => { - if (objectSizeBytes != null) 'objectSizeBytes': objectSizeBytes!, - if (objectVersion != null) 'objectVersion': objectVersion!, - }; -} +typedef GdataDiffVersionResponse = $DiffVersionResponse; /// Parameters specific to media downloads. -class GdataDownloadParameters { - /// A boolean to be returned in the response to Scotty. - /// - /// Allows/disallows gzip encoding of the payload content when the server - /// thinks it's advantageous (hence, does not guarantee compression) which - /// allows Scotty to GZip the response to the client. - core.bool? allowGzipCompression; - - /// Determining whether or not Apiary should skip the inclusion of any - /// Content-Range header on its response to Scotty. - core.bool? ignoreRange; - - GdataDownloadParameters({ - this.allowGzipCompression, - this.ignoreRange, - }); - - GdataDownloadParameters.fromJson(core.Map json_) - : this( - allowGzipCompression: json_.containsKey('allowGzipCompression') - ? json_['allowGzipCompression'] as core.bool - : null, - ignoreRange: json_.containsKey('ignoreRange') - ? json_['ignoreRange'] as core.bool - : null, - ); - - core.Map toJson() => { - if (allowGzipCompression != null) - 'allowGzipCompression': allowGzipCompression!, - if (ignoreRange != null) 'ignoreRange': ignoreRange!, - }; -} +typedef GdataDownloadParameters = $DownloadParameters; /// A reference to data stored on the filesystem, on GFS or in blobstore. class GdataMedia { @@ -2309,46 +2117,7 @@ class GdataMedia { /// This is a copy of the tech.blob.ObjectId proto, which could not be used /// directly here due to transitive closure issues with JavaScript support; see /// http://b/8801763. -class GdataObjectId { - /// The name of the bucket to which this object belongs. - core.String? bucketName; - - /// Generation of the object. - /// - /// Generations are monotonically increasing across writes, allowing them to - /// be be compared to determine which generation is newer. If this is omitted - /// in a request, then you are requesting the live object. See - /// http://go/bigstore-versions - core.String? generation; - - /// The name of the object. - core.String? objectName; - - GdataObjectId({ - this.bucketName, - this.generation, - this.objectName, - }); - - GdataObjectId.fromJson(core.Map json_) - : this( - bucketName: json_.containsKey('bucketName') - ? json_['bucketName'] as core.String - : null, - generation: json_.containsKey('generation') - ? json_['generation'] as core.String - : null, - objectName: json_.containsKey('objectName') - ? json_['objectName'] as core.String - : null, - ); - - core.Map toJson() => { - if (bucketName != null) 'bucketName': bucketName!, - if (generation != null) 'generation': generation!, - if (objectName != null) 'objectName': objectName!, - }; -} +typedef GdataObjectId = $ObjectId; /// Android App Bundle (AAB) information for a Firebase app. class GoogleFirebaseAppdistroV1AabInfo { diff --git a/generated/googleapis/lib/firebaseremoteconfig/v1.dart b/generated/googleapis/lib/firebaseremoteconfig/v1.dart index 4cf613863..233ca8d40 100644 --- a/generated/googleapis/lib/firebaseremoteconfig/v1.dart +++ b/generated/googleapis/lib/firebaseremoteconfig/v1.dart @@ -238,6 +238,52 @@ class ProjectsNamespacesResource { return FetchRemoteConfigResponse.fromJson( response_ as core.Map); } + + /// Get a project's server-side Remote Config template. + /// + /// Note that this request proto is structured differently from other request + /// messages in this proto, however this is consistent and compliant with the + /// new API guidance + /// (https://google.aip.dev/122#fields-representing-resource-names) and the + /// standard going forward. + /// + /// Request parameters: + /// + /// [name] - Required. The name of the template to get. Format: + /// projects/{project}/namespaces/{namespace}/serverRemoteConfig Project is a + /// Firebase project ID or project number. Namespace is the namespace ID + /// (e.g.: firebase-server) + /// Value must have pattern + /// `^projects/\[^/\]+/namespaces/\[^/\]+/serverRemoteConfig$`. + /// + /// [$fields] - Selector specifying which fields to include in a partial + /// response. + /// + /// Completes with a [ServerRemoteConfig]. + /// + /// Completes with a [commons.ApiRequestError] if the API endpoint returned an + /// error. + /// + /// If the used [http.Client] completes with an error when making a REST call, + /// this method will complete with the same error. + async.Future getServerRemoteConfig( + core.String name, { + core.String? $fields, + }) async { + final queryParams_ = >{ + if ($fields != null) 'fields': [$fields], + }; + + final url_ = 'v1/' + core.Uri.encodeFull('$name'); + + final response_ = await _requester.request( + url_, + 'GET', + queryParams: queryParams_, + ); + return ServerRemoteConfig.fromJson( + response_ as core.Map); + } } class ProjectsRemoteConfigResource { @@ -1276,6 +1322,209 @@ class RollbackRemoteConfigRequest { }; } +/// A ServerRemoteConfig represents the raw data-plane version of a control +/// plane Remote Config template. +/// +/// This raw template will be evaluated by the Admin SDK (RC Server SDK) to form +/// the config. +class ServerRemoteConfig { + /// A list of conditions in descending order by priority. + core.List? conditions; + + /// Map of parameter keys to their optional default values and optional + /// conditional values. + core.Map? parameters; + + /// Contains all metadata about a particular version of the server Remote + /// Config template. + /// + /// Note that we are reusing the control plane version proto here. + Version? version; + + ServerRemoteConfig({ + this.conditions, + this.parameters, + this.version, + }); + + ServerRemoteConfig.fromJson(core.Map json_) + : this( + conditions: json_.containsKey('conditions') + ? (json_['conditions'] as core.List) + .map((value) => ServerRemoteConfigCondition.fromJson( + value as core.Map)) + .toList() + : null, + parameters: json_.containsKey('parameters') + ? (json_['parameters'] as core.Map) + .map( + (key, value) => core.MapEntry( + key, + ServerRemoteConfigParameter.fromJson( + value as core.Map), + ), + ) + : null, + version: json_.containsKey('version') + ? Version.fromJson( + json_['version'] as core.Map) + : null, + ); + + core.Map toJson() => { + if (conditions != null) 'conditions': conditions!, + if (parameters != null) 'parameters': parameters!, + if (version != null) 'version': version!, + }; +} + +/// A condition targeting a specific group of users and servers. +/// +/// Same as the condition in the control plane. +class ServerRemoteConfigCondition { + /// The logic of this condition. + /// + /// See the documentation regarding \[Condition + /// Expressions\](/docs/remote-config/condition-reference) for the expected + /// syntax of this field. + /// + /// Required. + core.String? expression; + + /// A non-empty and unique name of this condition. + /// + /// Required. + core.String? name; + + ServerRemoteConfigCondition({ + this.expression, + this.name, + }); + + ServerRemoteConfigCondition.fromJson(core.Map json_) + : this( + expression: json_.containsKey('expression') + ? json_['expression'] as core.String + : null, + name: json_.containsKey('name') ? json_['name'] as core.String : null, + ); + + core.Map toJson() => { + if (expression != null) 'expression': expression!, + if (name != null) 'name': name!, + }; +} + +/// A parameter value associated with a parameter key in +/// \[google.firebase.remoteconfig.v1.ServerRemoteConfig.parameters\]. +/// +/// At minimum, a `default_value` or a `conditional_values` entry should be +/// present for the parameter to have any effect. +class ServerRemoteConfigParameter { + /// Optional - a (condition name, value) map. + /// + /// The condition_name of the highest priority (the one listed first in the + /// RemoteConfig's conditions list) determines the value of this parameter. + core.Map? conditionalValues; + + /// Optional - value to set the parameter to, when none of the named + /// conditions evaluate to true. + ServerRemoteConfigParameterValue? defaultValue; + + /// A description for this Parameter. + /// + /// Its length must be less than or equal to 256 characters. A description may + /// contain any Unicode characters. + /// + /// Optional. + core.String? description; + + /// The data type for all values of this parameter in the current version of + /// the template. + /// + /// Defaults to `ParameterValueType.STRING` if unspecified. + /// Possible string values are: + /// - "PARAMETER_VALUE_TYPE_UNSPECIFIED" : Catch-all for unrecognized enum + /// values. + /// - "STRING" : Represents String values. + /// - "BOOLEAN" : Represents Boolean values ("true" or "false"). + /// - "NUMBER" : Represents both positive and negative integer and float + /// values. + /// - "JSON" : Represents JSON values. + core.String? valueType; + + ServerRemoteConfigParameter({ + this.conditionalValues, + this.defaultValue, + this.description, + this.valueType, + }); + + ServerRemoteConfigParameter.fromJson(core.Map json_) + : this( + conditionalValues: json_.containsKey('conditionalValues') + ? (json_['conditionalValues'] + as core.Map) + .map( + (key, value) => core.MapEntry( + key, + ServerRemoteConfigParameterValue.fromJson( + value as core.Map), + ), + ) + : null, + defaultValue: json_.containsKey('defaultValue') + ? ServerRemoteConfigParameterValue.fromJson( + json_['defaultValue'] as core.Map) + : null, + description: json_.containsKey('description') + ? json_['description'] as core.String + : null, + valueType: json_.containsKey('valueType') + ? json_['valueType'] as core.String + : null, + ); + + core.Map toJson() => { + if (conditionalValues != null) 'conditionalValues': conditionalValues!, + if (defaultValue != null) 'defaultValue': defaultValue!, + if (description != null) 'description': description!, + if (valueType != null) 'valueType': valueType!, + }; +} + +/// A ServerRemoteConfigParameterValue resource contains the value that a +/// parameter may have. +/// +/// Currently, there is no support for managed values like ABT or P13n. +class ServerRemoteConfigParameterValue { + /// If true, the parameter is omitted from the parameter values returned to + /// the server. + core.bool? useInAppDefault; + + /// The string value that the parameter is set to. + core.String? value; + + ServerRemoteConfigParameterValue({ + this.useInAppDefault, + this.value, + }); + + ServerRemoteConfigParameterValue.fromJson(core.Map json_) + : this( + useInAppDefault: json_.containsKey('useInAppDefault') + ? json_['useInAppDefault'] as core.bool + : null, + value: + json_.containsKey('value') ? json_['value'] as core.String : null, + ); + + core.Map toJson() => { + if (useInAppDefault != null) 'useInAppDefault': useInAppDefault!, + if (value != null) 'value': value!, + }; +} + /// Contains all metadata about a particular version of the Remote Config /// template. /// diff --git a/generated/googleapis/lib/firebaserules/v1.dart b/generated/googleapis/lib/firebaserules/v1.dart index 05cfda81d..a2b5e4159 100644 --- a/generated/googleapis/lib/firebaserules/v1.dart +++ b/generated/googleapis/lib/firebaserules/v1.dart @@ -1142,6 +1142,14 @@ class Result { /// `Ruleset` is an immutable copy of `Source` with a globally unique identifier /// and a creation time. class Ruleset { + /// Intended resource to which this Ruleset should be released. + /// + /// May be left blank to signify the resource associated with the default + /// release. Expected format: firestore.googleapis.com/projects//databases/ + /// + /// Immutable. + core.String? attachmentPoint; + /// Time the `Ruleset` was created. /// /// Output only. @@ -1166,6 +1174,7 @@ class Ruleset { Source? source; Ruleset({ + this.attachmentPoint, this.createTime, this.metadata, this.name, @@ -1174,6 +1183,9 @@ class Ruleset { Ruleset.fromJson(core.Map json_) : this( + attachmentPoint: json_.containsKey('attachmentPoint') + ? json_['attachmentPoint'] as core.String + : null, createTime: json_.containsKey('createTime') ? json_['createTime'] as core.String : null, @@ -1189,6 +1201,7 @@ class Ruleset { ); core.Map toJson() => { + if (attachmentPoint != null) 'attachmentPoint': attachmentPoint!, if (createTime != null) 'createTime': createTime!, if (metadata != null) 'metadata': metadata!, if (name != null) 'name': name!, diff --git a/generated/googleapis/lib/firestore/v1.dart b/generated/googleapis/lib/firestore/v1.dart index 92b3ce6e8..a50a5a94b 100644 --- a/generated/googleapis/lib/firestore/v1.dart +++ b/generated/googleapis/lib/firestore/v1.dart @@ -731,7 +731,7 @@ class ProjectsDatabasesCollectionGroupsFieldsResource { /// Currently, FirestoreAdmin.ListFields only supports listing fields that /// have been explicitly overridden. To issue this query, call /// FirestoreAdmin.ListFields with the filter set to - /// \`indexConfig.usesAncestorConfig:false or \`ttlConfig:*\`. + /// `indexConfig.usesAncestorConfig:false` or `ttlConfig:*`. /// /// Request parameters: /// @@ -2982,6 +2982,24 @@ class Document { /// /// Output only. core.String? createTime; + + /// The document's fields. + /// + /// The map keys represent field names. Field names matching the regular + /// expression `__.*__` are reserved. Reserved field names are forbidden + /// except in certain documented contexts. The field names, represented as + /// UTF-8, must not exceed 1,500 bytes and cannot be empty. Field paths may be + /// used in other contexts to refer to structured fields defined here. For + /// `map_value`, the field path is represented by a dot-delimited (`.`) string + /// of segments. Each segment is either a simple field name (defined below) or + /// a quoted field name. For example, the structured field `"foo" : { + /// map_value: { "x&y" : { string_value: "hello" }}}` would be represented by + /// the field path `` foo.`x&y` ``. A simple field name contains only + /// characters `a` to `z`, `A` to `Z`, `0` to `9`, or `_`, and must not start + /// with `0` to `9`. For example, `foo_bar_17`. A quoted field name starts and + /// ends with `` ` `` and may contain any character. Some characters, + /// including `` ` ``, must be escaped using a `\`. For example, `` `x&y` `` + /// represents `x&y` and `` `bak\`tik` `` represents `` bak`tik ``. core.Map? fields; /// The resource name of the document, for example @@ -3542,6 +3560,57 @@ class GoogleFirestoreAdminV1BackupSchedule { }; } +/// The CMEK (Customer Managed Encryption Key) configuration for a Firestore +/// database. +/// +/// If not present, the database is secured by the default Google encryption +/// key. +class GoogleFirestoreAdminV1CmekConfig { + /// Currently in-use + /// [KMS key versions](https://cloud.google.com/kms/docs/resource-hierarchy#key_versions). + /// + /// During [key rotation](https://cloud.google.com/kms/docs/key-rotation), + /// there can be multiple in-use key versions. The expected format is + /// `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{key_version}`. + /// + /// Output only. + core.List? activeKeyVersion; + + /// Only keys in the same location as this database are allowed to be used for + /// encryption. + /// + /// For Firestore's nam5 multi-region, this corresponds to Cloud KMS + /// multi-region us. For Firestore's eur3 multi-region, this corresponds to + /// Cloud KMS multi-region europe. See + /// https://cloud.google.com/kms/docs/locations. The expected format is + /// `projects/{project_id}/locations/{kms_location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}`. + /// + /// Required. + core.String? kmsKeyName; + + GoogleFirestoreAdminV1CmekConfig({ + this.activeKeyVersion, + this.kmsKeyName, + }); + + GoogleFirestoreAdminV1CmekConfig.fromJson(core.Map json_) + : this( + activeKeyVersion: json_.containsKey('activeKeyVersion') + ? (json_['activeKeyVersion'] as core.List) + .map((value) => value as core.String) + .toList() + : null, + kmsKeyName: json_.containsKey('kmsKeyName') + ? json_['kmsKeyName'] as core.String + : null, + ); + + core.Map toJson() => { + if (activeKeyVersion != null) 'activeKeyVersion': activeKeyVersion!, + if (kmsKeyName != null) 'kmsKeyName': kmsKeyName!, + }; +} + /// Represent a recurring schedule that runs at a specific time every day. /// /// The time zone is UTC. @@ -3561,6 +3630,11 @@ class GoogleFirestoreAdminV1Database { /// Firestore API. core.String? appEngineIntegrationMode; + /// Presence indicates CMEK is enabled for this database. + /// + /// Optional. + GoogleFirestoreAdminV1CmekConfig? cmekConfig; + /// The concurrency control mode to use for this database. /// Possible string values are: /// - "CONCURRENCY_MODE_UNSPECIFIED" : Not used. @@ -3678,6 +3752,7 @@ class GoogleFirestoreAdminV1Database { GoogleFirestoreAdminV1Database({ this.appEngineIntegrationMode, + this.cmekConfig, this.concurrencyMode, this.createTime, this.deleteProtectionState, @@ -3699,6 +3774,10 @@ class GoogleFirestoreAdminV1Database { json_.containsKey('appEngineIntegrationMode') ? json_['appEngineIntegrationMode'] as core.String : null, + cmekConfig: json_.containsKey('cmekConfig') + ? GoogleFirestoreAdminV1CmekConfig.fromJson( + json_['cmekConfig'] as core.Map) + : null, concurrencyMode: json_.containsKey('concurrencyMode') ? json_['concurrencyMode'] as core.String : null, @@ -3736,6 +3815,7 @@ class GoogleFirestoreAdminV1Database { core.Map toJson() => { if (appEngineIntegrationMode != null) 'appEngineIntegrationMode': appEngineIntegrationMode!, + if (cmekConfig != null) 'cmekConfig': cmekConfig!, if (concurrencyMode != null) 'concurrencyMode': concurrencyMode!, if (createTime != null) 'createTime': createTime!, if (deleteProtectionState != null) @@ -3756,6 +3836,41 @@ class GoogleFirestoreAdminV1Database { }; } +/// A consistent snapshot of a database at a specific point in time. +class GoogleFirestoreAdminV1DatabaseSnapshot { + /// A name of the form `projects/{project_id}/databases/{database_id}` + /// + /// Required. + core.String? database; + + /// The timestamp at which the database snapshot is taken. + /// + /// The requested timestamp must be a whole minute within the PITR window. + /// + /// Required. + core.String? snapshotTime; + + GoogleFirestoreAdminV1DatabaseSnapshot({ + this.database, + this.snapshotTime, + }); + + GoogleFirestoreAdminV1DatabaseSnapshot.fromJson(core.Map json_) + : this( + database: json_.containsKey('database') + ? json_['database'] as core.String + : null, + snapshotTime: json_.containsKey('snapshotTime') + ? json_['snapshotTime'] as core.String + : null, + ); + + core.Map toJson() => { + if (database != null) 'database': database!, + if (snapshotTime != null) 'snapshotTime': snapshotTime!, + }; +} + /// The request for FirestoreAdmin.ExportDocuments. class GoogleFirestoreAdminV1ExportDocumentsRequest { /// Which collection ids to export. @@ -4379,9 +4494,16 @@ class GoogleFirestoreAdminV1RestoreDatabaseRequest { /// Required. core.String? databaseId; + /// Database snapshot to restore from. + /// + /// The source database must exist and have enabled PITR. The restored + /// database will be created in the same location as the source database. + GoogleFirestoreAdminV1DatabaseSnapshot? databaseSnapshot; + GoogleFirestoreAdminV1RestoreDatabaseRequest({ this.backup, this.databaseId, + this.databaseSnapshot, }); GoogleFirestoreAdminV1RestoreDatabaseRequest.fromJson(core.Map json_) @@ -4392,11 +4514,17 @@ class GoogleFirestoreAdminV1RestoreDatabaseRequest { databaseId: json_.containsKey('databaseId') ? json_['databaseId'] as core.String : null, + databaseSnapshot: json_.containsKey('databaseSnapshot') + ? GoogleFirestoreAdminV1DatabaseSnapshot.fromJson( + json_['databaseSnapshot'] + as core.Map) + : null, ); core.Map toJson() => { if (backup != null) 'backup': backup!, if (databaseId != null) 'databaseId': databaseId!, + if (databaseSnapshot != null) 'databaseSnapshot': databaseSnapshot!, }; } @@ -5466,6 +5594,9 @@ class StructuredAggregationQuery { } /// A Firestore query. +/// +/// The query stages are executed in the following order: 1. from 2. where 3. +/// select 4. order_by + start_at + end_at 5. offset 6. limit class StructuredQuery { /// A potential prefix of a position in the result set to end the query at. /// diff --git a/generated/googleapis/lib/gkebackup/v1.dart b/generated/googleapis/lib/gkebackup/v1.dart index 091072bed..04efd61a1 100644 --- a/generated/googleapis/lib/gkebackup/v1.dart +++ b/generated/googleapis/lib/gkebackup/v1.dart @@ -3267,14 +3267,31 @@ class Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -3283,12 +3300,19 @@ class Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; Binding({ @@ -4243,7 +4267,7 @@ class ResourceFilter { /// Represents both a request to Restore some portion of a Backup into a target /// GKE cluster and a record of the restore operation itself. /// -/// Next id: 19 +/// Next id: 20 class Restore { /// A reference to the Backup used as the source from which this Restore will /// restore. @@ -4462,7 +4486,7 @@ class Restore { /// Configuration of a restore. /// -/// Next id: 12 +/// Next id: 14 class RestoreConfig { /// Restore all namespaced resources in the Backup if set to "True". /// diff --git a/generated/googleapis/lib/gkehub/v1.dart b/generated/googleapis/lib/gkehub/v1.dart index ccd91a514..ef657c23a 100644 --- a/generated/googleapis/lib/gkehub/v1.dart +++ b/generated/googleapis/lib/gkehub/v1.dart @@ -2987,14 +2987,31 @@ class Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -3003,12 +3020,19 @@ class Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; Binding({ @@ -3412,45 +3436,26 @@ class ClusterUpgradeMembershipGKEUpgradeState { /// Per-membership state for this feature. class ClusterUpgradeMembershipState { - /// Project number or id of the fleet. - /// - /// It is set only for Memberships that are part of fleet-based Rollout - /// Sequencing. - core.String? fleet; - /// Whether this membership is ignored by the feature. /// /// For example, manually upgraded clusters can be ignored if they are newer /// than the default versions of its release channel. ClusterUpgradeIgnoredMembership? ignored; - /// Fully qualified scope names that this clusters is bound to which also have - /// rollout sequencing enabled. - core.List? scopes; - /// Actual upgrade state against desired. core.List? upgrades; ClusterUpgradeMembershipState({ - this.fleet, this.ignored, - this.scopes, this.upgrades, }); ClusterUpgradeMembershipState.fromJson(core.Map json_) : this( - fleet: - json_.containsKey('fleet') ? json_['fleet'] as core.String : null, ignored: json_.containsKey('ignored') ? ClusterUpgradeIgnoredMembership.fromJson( json_['ignored'] as core.Map) : null, - scopes: json_.containsKey('scopes') - ? (json_['scopes'] as core.List) - .map((value) => value as core.String) - .toList() - : null, upgrades: json_.containsKey('upgrades') ? (json_['upgrades'] as core.List) .map((value) => @@ -3461,9 +3466,7 @@ class ClusterUpgradeMembershipState { ); core.Map toJson() => { - if (fleet != null) 'fleet': fleet!, if (ignored != null) 'ignored': ignored!, - if (scopes != null) 'scopes': scopes!, if (upgrades != null) 'upgrades': upgrades!, }; } @@ -3553,6 +3556,9 @@ class CommonFeatureSpec { /// ClusterUpgrade (fleet-based) feature spec. ClusterUpgradeFleetSpec? clusterupgrade; + /// DataplaneV2 feature spec. + DataplaneV2FeatureSpec? dataplanev2; + /// FleetObservability feature spec. FleetObservabilityFeatureSpec? fleetobservability; @@ -3562,6 +3568,7 @@ class CommonFeatureSpec { CommonFeatureSpec({ this.appdevexperience, this.clusterupgrade, + this.dataplanev2, this.fleetobservability, this.multiclusteringress, }); @@ -3576,6 +3583,10 @@ class CommonFeatureSpec { ? ClusterUpgradeFleetSpec.fromJson(json_['clusterupgrade'] as core.Map) : null, + dataplanev2: json_.containsKey('dataplanev2') + ? DataplaneV2FeatureSpec.fromJson( + json_['dataplanev2'] as core.Map) + : null, fleetobservability: json_.containsKey('fleetobservability') ? FleetObservabilityFeatureSpec.fromJson( json_['fleetobservability'] @@ -3591,6 +3602,7 @@ class CommonFeatureSpec { core.Map toJson() => { if (appdevexperience != null) 'appdevexperience': appdevexperience!, if (clusterupgrade != null) 'clusterupgrade': clusterupgrade!, + if (dataplanev2 != null) 'dataplanev2': dataplanev2!, if (fleetobservability != null) 'fleetobservability': fleetobservability!, if (multiclusteringress != null) @@ -3733,8 +3745,7 @@ class ConfigManagementConfigSync { /// The GSA should have the Monitoring Metric Writer /// (roles/monitoring.metricWriter) IAM role. The Kubernetes ServiceAccount /// `default` in the namespace `config-management-monitoring` should be bound - /// to the GSA. This field is required when automatic Feature management is - /// enabled. + /// to the GSA. core.String? metricsGcpServiceAccountEmail; /// OCI repo configuration for the cluster @@ -3924,6 +3935,36 @@ class ConfigManagementConfigSyncState { /// Errors pertaining to the installation of Config Sync. core.List? errors; + /// The state of the Reposync CRD + /// Possible string values are: + /// - "CRD_STATE_UNSPECIFIED" : CRD's state cannot be determined + /// - "NOT_INSTALLED" : CRD is not installed + /// - "INSTALLED" : CRD is installed + /// - "TERMINATING" : CRD is terminating (i.e., it has been deleted and is + /// cleaning up) + /// - "INSTALLING" : CRD is installing + core.String? reposyncCrd; + + /// The state of the RootSync CRD + /// Possible string values are: + /// - "CRD_STATE_UNSPECIFIED" : CRD's state cannot be determined + /// - "NOT_INSTALLED" : CRD is not installed + /// - "INSTALLED" : CRD is installed + /// - "TERMINATING" : CRD is terminating (i.e., it has been deleted and is + /// cleaning up) + /// - "INSTALLING" : CRD is installing + core.String? rootsyncCrd; + + /// The state of CS This field summarizes the other fields in this message. + /// Possible string values are: + /// - "STATE_UNSPECIFIED" : CS's state cannot be determined. + /// - "CONFIG_SYNC_NOT_INSTALLED" : CS is not installed. + /// - "CONFIG_SYNC_INSTALLED" : The expected CS version is installed + /// successfully. + /// - "CONFIG_SYNC_ERROR" : CS encounters errors. + /// - "CONFIG_SYNC_PENDING" : CS is installing or terminating. + core.String? state; + /// The state of ConfigSync's process to sync configs to a cluster ConfigManagementSyncState? syncState; @@ -3933,6 +3974,9 @@ class ConfigManagementConfigSyncState { ConfigManagementConfigSyncState({ this.deploymentState, this.errors, + this.reposyncCrd, + this.rootsyncCrd, + this.state, this.syncState, this.version, }); @@ -3950,6 +3994,14 @@ class ConfigManagementConfigSyncState { value as core.Map)) .toList() : null, + reposyncCrd: json_.containsKey('reposyncCrd') + ? json_['reposyncCrd'] as core.String + : null, + rootsyncCrd: json_.containsKey('rootsyncCrd') + ? json_['rootsyncCrd'] as core.String + : null, + state: + json_.containsKey('state') ? json_['state'] as core.String : null, syncState: json_.containsKey('syncState') ? ConfigManagementSyncState.fromJson( json_['syncState'] as core.Map) @@ -3963,6 +4015,9 @@ class ConfigManagementConfigSyncState { core.Map toJson() => { if (deploymentState != null) 'deploymentState': deploymentState!, if (errors != null) 'errors': errors!, + if (reposyncCrd != null) 'reposyncCrd': reposyncCrd!, + if (rootsyncCrd != null) 'rootsyncCrd': rootsyncCrd!, + if (state != null) 'state': state!, if (syncState != null) 'syncState': syncState!, if (version != null) 'version': version!, }; @@ -4426,6 +4481,14 @@ class ConfigManagementMembershipSpec { /// Hierarchy Controller configuration for the cluster. ConfigManagementHierarchyControllerConfig? hierarchyController; + /// Enables automatic Feature management. + /// Possible string values are: + /// - "MANAGEMENT_UNSPECIFIED" : Unspecified + /// - "MANAGEMENT_AUTOMATIC" : Google will manage the Feature for the cluster. + /// - "MANAGEMENT_MANUAL" : User will manually manage the Feature for the + /// cluster. + core.String? management; + /// Policy Controller configuration for the cluster. ConfigManagementPolicyController? policyController; @@ -4436,6 +4499,7 @@ class ConfigManagementMembershipSpec { this.cluster, this.configSync, this.hierarchyController, + this.management, this.policyController, this.version, }); @@ -4454,6 +4518,9 @@ class ConfigManagementMembershipSpec { json_['hierarchyController'] as core.Map) : null, + management: json_.containsKey('management') + ? json_['management'] as core.String + : null, policyController: json_.containsKey('policyController') ? ConfigManagementPolicyController.fromJson( json_['policyController'] @@ -4469,6 +4536,7 @@ class ConfigManagementMembershipSpec { if (configSync != null) 'configSync': configSync!, if (hierarchyController != null) 'hierarchyController': hierarchyController!, + if (management != null) 'management': management!, if (policyController != null) 'policyController': policyController!, if (version != null) 'version': version!, }; @@ -4803,7 +4871,7 @@ class ConfigManagementPolicyControllerMigration { /// /// For example, to specify metrics should be exported to Cloud Monitoring and /// Prometheus, specify backends: \["cloudmonitoring", "prometheus"\] -typedef ConfigManagementPolicyControllerMonitoring = $Shared08; +typedef ConfigManagementPolicyControllerMonitoring = $Shared09; /// State for PolicyControllerState. class ConfigManagementPolicyControllerState { @@ -5026,6 +5094,27 @@ class ConnectAgentResource { }; } +/// **Dataplane V2**: Spec +class DataplaneV2FeatureSpec { + /// Enable dataplane-v2 based encryption for multiple clusters. + core.bool? enableEncryption; + + DataplaneV2FeatureSpec({ + this.enableEncryption, + }); + + DataplaneV2FeatureSpec.fromJson(core.Map json_) + : this( + enableEncryption: json_.containsKey('enableEncryption') + ? json_['enableEncryption'] as core.bool + : null, + ); + + core.Map toJson() => { + if (enableEncryption != null) 'enableEncryption': enableEncryption!, + }; +} + /// DefaultClusterConfig describes the default cluster configurations to be /// applied to all clusters born-in-fleet. class DefaultClusterConfig { @@ -8243,7 +8332,7 @@ class PolicyControllerMembershipState { /// /// For example, to specify metrics should be exported to Cloud Monitoring and /// Prometheus, specify backends: \["cloudmonitoring", "prometheus"\] -typedef PolicyControllerMonitoringConfig = $Shared08; +typedef PolicyControllerMonitoringConfig = $Shared09; /// OnClusterState represents the state of a sub-component of Policy Controller. class PolicyControllerOnClusterState { @@ -8423,6 +8512,11 @@ class PolicyControllerPolicyControllerDeploymentConfig { core.String? podAffinity; /// Pod anti-affinity enablement. + /// + /// Deprecated: use `pod_affinity` instead. + @core.Deprecated( + 'Not supported. Member documentation may have more information.', + ) core.bool? podAntiAffinity; /// Pod tolerations of node taints. @@ -9027,43 +9121,7 @@ class ScopeLifecycleState { /// SecurityPostureConfig defines the flags needed to enable/disable features /// for the Security Posture API. -class SecurityPostureConfig { - /// Sets which mode to use for Security Posture features. - /// Possible string values are: - /// - "MODE_UNSPECIFIED" : Default value not specified. - /// - "DISABLED" : Disables Security Posture features on the cluster. - /// - "BASIC" : Applies Security Posture features on the cluster. - core.String? mode; - - /// Sets which mode to use for vulnerability scanning. - /// Possible string values are: - /// - "VULNERABILITY_MODE_UNSPECIFIED" : Default value not specified. - /// - "VULNERABILITY_DISABLED" : Disables vulnerability scanning on the - /// cluster. - /// - "VULNERABILITY_BASIC" : Applies basic vulnerability scanning on the - /// cluster. - /// - "VULNERABILITY_ENTERPRISE" : Applies the Security Posture's - /// vulnerability on cluster Enterprise level features. - core.String? vulnerabilityMode; - - SecurityPostureConfig({ - this.mode, - this.vulnerabilityMode, - }); - - SecurityPostureConfig.fromJson(core.Map json_) - : this( - mode: json_.containsKey('mode') ? json_['mode'] as core.String : null, - vulnerabilityMode: json_.containsKey('vulnerabilityMode') - ? json_['vulnerabilityMode'] as core.String - : null, - ); - - core.Map toJson() => { - if (mode != null) 'mode': mode!, - if (vulnerabilityMode != null) 'vulnerabilityMode': vulnerabilityMode!, - }; -} +typedef SecurityPostureConfig = $SecurityPostureConfig; /// Status of control plane management. class ServiceMeshControlPlaneManagement { diff --git a/generated/googleapis/lib/gkeonprem/v1.dart b/generated/googleapis/lib/gkeonprem/v1.dart index 2fe3f249e..238043554 100644 --- a/generated/googleapis/lib/gkeonprem/v1.dart +++ b/generated/googleapis/lib/gkeonprem/v1.dart @@ -4443,8 +4443,6 @@ class BareMetalAdminApiServerArgument { } /// Resource that represents a bare metal admin cluster. -/// -/// LINT.IfChange class BareMetalAdminCluster { /// Annotations on the bare metal admin cluster. /// @@ -5402,8 +5400,6 @@ class BareMetalBgpPeerConfig { } /// Resource that represents a bare metal user cluster. -/// -/// LINT.IfChange class BareMetalCluster { /// The admin cluster this bare metal user cluster belongs to. /// @@ -7003,14 +6999,31 @@ class Binding { /// `group:{emailid}`: An email address that represents a Google group. For /// example, `admins@example.com`. * `domain:{domain}`: The G Suite domain /// (primary) that represents all the users of that domain. For example, - /// `google.com` or `example.com`. * `deleted:user:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a user that has - /// been recently deleted. For example, - /// `alice@example.com?uid=123456789012345678901`. If the user is recovered, - /// this value reverts to `user:{emailid}` and the recovered user retains the - /// role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: - /// An email address (plus unique identifier) representing a service account - /// that has been recently deleted. For example, + /// `google.com` or `example.com`. * + /// `principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workforce identity pool. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/group/{group_id}`: + /// All workforce identities in a group. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All workforce identities with a specific attribute value. * + /// `principalSet://iam.googleapis.com/locations/global/workforcePools/{pool_id} + /// / * `: All identities in a workforce identity pool. * + /// `principal://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/subject/{subject_attribute_value}`: + /// A single identity in a workload identity pool. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/group/{group_id}`: + /// A workload identity pool group. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id}/attribute.{attribute_name}/{attribute_value}`: + /// All identities in a workload identity pool with a certain attribute. * + /// `principalSet://iam.googleapis.com/projects/{project_number}/locations/global/workloadIdentityPools/{pool_id} + /// / * `: All identities in a workload identity pool. * + /// `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique + /// identifier) representing a user that has been recently deleted. For + /// example, `alice@example.com?uid=123456789012345678901`. If the user is + /// recovered, this value reverts to `user:{emailid}` and the recovered user + /// retains the role in the binding. * + /// `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus + /// unique identifier) representing a service account that has been recently + /// deleted. For example, /// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`. If /// the service account is undeleted, this value reverts to /// `serviceAccount:{emailid}` and the undeleted service account retains the @@ -7019,12 +7032,19 @@ class Binding { /// recently deleted. For example, /// `admins@example.com?uid=123456789012345678901`. If the group is recovered, /// this value reverts to `group:{emailid}` and the recovered group retains - /// the role in the binding. + /// the role in the binding. * + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/{pool_id}/subject/{subject_attribute_value}`: + /// Deleted single identity in a workforce identity pool. For example, + /// `deleted:principal://iam.googleapis.com/locations/global/workforcePools/my-pool-id/subject/my-subject-attribute-value`. core.List? members; /// Role that is assigned to the list of `members`, or principals. /// - /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. + /// For example, `roles/viewer`, `roles/editor`, or `roles/owner`. For an + /// overview of the IAM roles and permissions, see the + /// [IAM documentation](https://cloud.google.com/iam/docs/roles-overview). For + /// a list of the available pre-defined roles, see + /// [here](https://cloud.google.com/iam/docs/understanding-roles). core.String? role; Binding({ @@ -9168,6 +9188,9 @@ class VmwareAdminVCenterConfig { /// The name of the vCenter resource pool for the admin cluster. core.String? resourcePool; + /// The name of the vCenter storage policy for the user cluster. + core.String? storagePolicyName; + VmwareAdminVCenterConfig({ this.address, this.caCertData, @@ -9177,6 +9200,7 @@ class VmwareAdminVCenterConfig { this.datastore, this.folder, this.resourcePool, + this.storagePolicyName, }); VmwareAdminVCenterConfig.fromJson(core.Map json_) @@ -9205,6 +9229,9 @@ class VmwareAdminVCenterConfig { resourcePool: json_.containsKey('resourcePool') ? json_['resourcePool'] as core.String : null, + storagePolicyName: json_.containsKey('storagePolicyName') + ? json_['storagePolicyName'] as core.String + : null, ); core.Map toJson() => { @@ -9216,6 +9243,7 @@ class VmwareAdminVCenterConfig { if (datastore != null) 'datastore': datastore!, if (folder != null) 'folder': folder!, if (resourcePool != null) 'resourcePool': resourcePool!, + if (storagePolicyName != null) 'storagePolicyName': storagePolicyName!, }; } @@ -9363,6 +9391,9 @@ class VmwareCluster { /// Configuration for auto repairing. VmwareAutoRepairConfig? autoRepairConfig; + /// Binary Authorization related configurations. + BinaryAuthorization? binaryAuthorization; + /// VMware user cluster control plane nodes must have either 1 or 3 replicas. VmwareControlPlaneNodeConfig? controlPlaneNode; @@ -9503,6 +9534,7 @@ class VmwareCluster { this.antiAffinityGroups, this.authorization, this.autoRepairConfig, + this.binaryAuthorization, this.controlPlaneNode, this.createTime, this.dataplaneV2, @@ -9559,6 +9591,10 @@ class VmwareCluster { ? VmwareAutoRepairConfig.fromJson(json_['autoRepairConfig'] as core.Map) : null, + binaryAuthorization: json_.containsKey('binaryAuthorization') + ? BinaryAuthorization.fromJson(json_['binaryAuthorization'] + as core.Map) + : null, controlPlaneNode: json_.containsKey('controlPlaneNode') ? VmwareControlPlaneNodeConfig.fromJson(json_['controlPlaneNode'] as core.Map) @@ -9648,6 +9684,8 @@ class VmwareCluster { 'antiAffinityGroups': antiAffinityGroups!, if (authorization != null) 'authorization': authorization!, if (autoRepairConfig != null) 'autoRepairConfig': autoRepairConfig!, + if (binaryAuthorization != null) + 'binaryAuthorization': binaryAuthorization!, if (controlPlaneNode != null) 'controlPlaneNode': controlPlaneNode!, if (createTime != null) 'createTime': createTime!, if (dataplaneV2 != null) 'dataplaneV2': dataplaneV2!, @@ -9823,12 +9861,16 @@ class VmwareDataplaneV2Config { /// Enables Dataplane V2. core.bool? dataplaneV2Enabled; + /// Configure ForwardMode for Dataplane v2. + core.String? forwardMode; + /// Enable Dataplane V2 for clusters with Windows nodes. core.bool? windowsDataplaneV2Enabled; VmwareDataplaneV2Config({ this.advancedNetworking, this.dataplaneV2Enabled, + this.forwardMode, this.windowsDataplaneV2Enabled, }); @@ -9840,6 +9882,9 @@ class VmwareDataplaneV2Config { dataplaneV2Enabled: json_.containsKey('dataplaneV2Enabled') ? json_['dataplaneV2Enabled'] as core.bool : null, + forwardMode: json_.containsKey('forwardMode') + ? json_['forwardMode'] as core.String + : null, windowsDataplaneV2Enabled: json_.containsKey('windowsDataplaneV2Enabled') ? json_['windowsDataplaneV2Enabled'] as core.bool @@ -9851,6 +9896,7 @@ class VmwareDataplaneV2Config { 'advancedNetworking': advancedNetworking!, if (dataplaneV2Enabled != null) 'dataplaneV2Enabled': dataplaneV2Enabled!, + if (forwardMode != null) 'forwardMode': forwardMode!, if (windowsDataplaneV2Enabled != null) 'windowsDataplaneV2Enabled': windowsDataplaneV2Enabled!, }; @@ -10188,8 +10234,6 @@ class VmwareNetworkConfig { /// vcenter_network specifies vCenter network name. /// /// Inherited from the admin cluster. - /// - /// Output only. core.String? vcenterNetwork; VmwareNetworkConfig({ diff --git a/generated/googleapis/lib/gmail/v1.dart b/generated/googleapis/lib/gmail/v1.dart index b07c551b6..b2ea95487 100644 --- a/generated/googleapis/lib/gmail/v1.dart +++ b/generated/googleapis/lib/gmail/v1.dart @@ -5374,11 +5374,9 @@ class ListLabelsResponse { /// `messageListVisibility`, `labelListVisibility`, and `type`. The labels.get /// method can fetch additional label details. core.List